GameInfoController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. package com.YuyeTech.TPlat.controller;
  2. import com.YuyeTech.TPlat.VO.ResultVO;
  3. import com.YuyeTech.TPlat.config.GameConfig;
  4. import com.YuyeTech.TPlat.dataobject.GameCategory;
  5. import com.YuyeTech.TPlat.form.GameInfoForm;
  6. import com.YuyeTech.TPlat.service.GameCategoryService;
  7. import com.YuyeTech.TPlat.service.RecommendService;
  8. import com.YuyeTech.TPlat.dataobject.GameInfo;
  9. import com.YuyeTech.TPlat.dto.GameDTO;
  10. import com.YuyeTech.TPlat.service.GameInfoService;
  11. import com.YuyeTech.TPlat.utils.AliyunOSSUtil;
  12. import com.YuyeTech.TPlat.utils.ResultVOUtil;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.beans.BeanUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.data.domain.PageRequest;
  17. import org.springframework.data.domain.Sort;
  18. import org.springframework.util.StringUtils;
  19. import org.springframework.web.bind.annotation.*;
  20. import org.springframework.web.multipart.MultipartFile;
  21. import org.springframework.web.multipart.MultipartHttpServletRequest;
  22. import javax.servlet.http.HttpServletRequest;
  23. import javax.validation.Valid;
  24. import java.util.Iterator;
  25. import java.util.List;
  26. import java.util.Map;
  27. /**
  28. * @author:slambb
  29. * @date:2020/1/10
  30. */
  31. @RestController
  32. @RequestMapping("/game")
  33. @Slf4j
  34. public class GameInfoController {
  35. @Autowired
  36. private GameInfoService gameInfoService;
  37. @Autowired
  38. private GameCategoryService gameCategoryService;
  39. @Autowired
  40. private AliyunOSSUtil aliyunOSSUtil;
  41. @Autowired
  42. private RecommendService recommendService;
  43. @Autowired
  44. private GameConfig gameConfig;
  45. @GetMapping("/list")
  46. public ResultVO getAllGame(
  47. ) {
  48. List<GameInfo> gameInfos = gameInfoService.findAll();
  49. for (GameInfo gameInfo : gameInfos) {
  50. //修改url,添加访问域名
  51. String gameIcon = gameInfo.getGameIcon();
  52. if (gameIcon != null) {
  53. String urlIcon = aliyunOSSUtil.addDomainName(gameIcon);
  54. gameInfo.setGameIcon(urlIcon);
  55. }
  56. String gamePicture = gameInfo.getGamePicture();
  57. if (gamePicture != null) {
  58. String urlPicture = aliyunOSSUtil.addDomainName(gamePicture);
  59. gameInfo.setGamePicture(urlPicture);
  60. }
  61. }
  62. return ResultVOUtil.success(gameInfos);
  63. }
  64. @GetMapping("/detail")
  65. public ResultVO getGameDetail(
  66. @RequestParam(value = "gameId") String gameId
  67. ) {
  68. Map map = gameInfoService.findByGameDetail(gameId);
  69. return ResultVOUtil.success(map);
  70. }
  71. @PostMapping("/add_dontLogin")
  72. public ResultVO addGameInfo(@Valid GameInfoForm gameInfoForm, HttpServletRequest request) {
  73. //文件上传
  74. if (request instanceof MultipartHttpServletRequest) {
  75. MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request;
  76. List<MultipartFile> files = mrequest.getFiles("gamePicture");
  77. Iterator<MultipartFile> iter = files.iterator();
  78. while (iter.hasNext()) {
  79. MultipartFile photo = iter.next();
  80. // 现在有文件上传
  81. if (photo != null) {
  82. System.out.println("【*** 文件上传 ***】 name= test");
  83. System.out.println("【*** 文件上传 ***】 photoName="
  84. + photo.getName());
  85. System.out.println("【*** 文件上传 ***】 photoContentType="
  86. + photo.getContentType());
  87. System.out.println("【*** 文件上传 ***】 photoSize="
  88. + photo.getSize());
  89. // try {
  90. // photo.getInputStream();
  91. // } catch (IOException e) {
  92. // e.printStackTrace();
  93. // }
  94. }
  95. }
  96. }
  97. //1.向gameInfo 添加数据
  98. GameInfo gameInfo = new GameInfo();
  99. BeanUtils.copyProperties(gameInfoForm, gameInfo);
  100. GameInfo gameInfoTemp = gameInfoService.addGameInfo(gameInfo);
  101. //TODO 2. pictures 里面添加图片,获取图片id,
  102. //TODO 3. 把游戏id,和图片id,关联起来。在关系表中添加数据 gamePicture
  103. return ResultVOUtil.success(gameInfoTemp);
  104. }
  105. /**
  106. * 获取游戏推荐列表
  107. * @return
  108. */
  109. @GetMapping("/recommend_list")
  110. public ResultVO getRecommendAllGame(@RequestParam(value = "recommendType", required = false) Integer recommendType,
  111. @RequestParam(value = "userId", required = false) String userId,
  112. @RequestParam(value = "endTime", required = false) String endTime,
  113. @RequestParam(value = "page", defaultValue = "1") Integer page,
  114. @RequestParam(value = "size", defaultValue = "10") Integer size) {
  115. if(StringUtils.isEmpty(endTime)){
  116. endTime = gameConfig.getEndTime();
  117. }
  118. //查询对应游戏数据
  119. PageRequest request = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.ASC,"createTime"));
  120. Map map = recommendService.findByRecommendType(userId,recommendType,endTime,request);
  121. return ResultVOUtil.success(map);
  122. }
  123. @GetMapping("/recommend_list_platform")
  124. public ResultVO getRecommendAllGame(@RequestParam(value = "recommendType", required = false) Integer recommendType,
  125. @RequestParam(value = "userId", required = false) String userId,
  126. @RequestParam(value = "platform", required = false) Integer platform,
  127. @RequestParam(value = "endTime", required = false) String endTime,
  128. @RequestParam(value = "page", defaultValue = "1") Integer page,
  129. @RequestParam(value = "size", defaultValue = "10") Integer size) {
  130. if(StringUtils.isEmpty(endTime)){
  131. endTime = gameConfig.getEndTime();
  132. }
  133. //查询对应游戏数据
  134. PageRequest request = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.ASC,"createTime"));
  135. Map map = recommendService.findByRecommendTypeAndPlatform(userId,recommendType,platform,endTime,request);
  136. return ResultVOUtil.success(map);
  137. }
  138. /**
  139. * 获取游戏分类
  140. * @return
  141. */
  142. @GetMapping("/game_category_list")
  143. public ResultVO getGameCategory(){
  144. List<GameCategory> gameCategoryList = gameCategoryService.findAll();
  145. return ResultVOUtil.success(gameCategoryList);
  146. }
  147. /**
  148. * 根据游戏类目,获取游戏列表
  149. * @return
  150. */
  151. @GetMapping("/list_from_category")
  152. public ResultVO getGameListFromCategory(@RequestParam(value = "categoryType", required = false) Integer categoryType,
  153. @RequestParam(value = "userId", required = false) String userId,
  154. @RequestParam(value = "endTime", required = false) String endTime,
  155. @RequestParam(value = "page", defaultValue = "1") Integer page,
  156. @RequestParam(value = "size", defaultValue = "10") Integer size){
  157. if(StringUtils.isEmpty(endTime)){
  158. endTime = gameConfig.getEndTime();
  159. }
  160. //查询对应游戏数据
  161. PageRequest request = PageRequest.of(page - 1, size);
  162. List<GameDTO> gameDTOList = gameInfoService.findList(userId,categoryType,endTime,request);
  163. return ResultVOUtil.success(gameDTOList);
  164. }
  165. /**
  166. * 根据游戏类目,获取游戏列表
  167. * @return
  168. */
  169. @GetMapping("/list_from_category_platform")
  170. public ResultVO getGameListFromCategoryAndPlatform(@RequestParam(value = "categoryType", required = false) Integer categoryType,
  171. @RequestParam(value = "userId", required = false) String userId,
  172. @RequestParam(value = "platform",required = false) Integer platform,
  173. @RequestParam(value = "endTime", required = false) String endTime,
  174. @RequestParam(value = "page", defaultValue = "1") Integer page,
  175. @RequestParam(value = "size", defaultValue = "10") Integer size){
  176. if(StringUtils.isEmpty(endTime)){
  177. endTime = gameConfig.getEndTime();
  178. }
  179. //查询对应游戏数据
  180. PageRequest request = PageRequest.of(page - 1, size);
  181. List<GameDTO> gameDTOList = gameInfoService.findListByTypeAndPlatform(userId,categoryType,platform,endTime,request);
  182. return ResultVOUtil.success(gameDTOList);
  183. }
  184. @GetMapping("/list_by_ranking_show")
  185. public ResultVO getGameListByRankingShow(@RequestParam(value = "userId", required = false) String userId,
  186. @RequestParam(value = "rankingShow", required = false) Integer rankingShow,
  187. @RequestParam(value = "page", defaultValue = "1") Integer page,
  188. @RequestParam(value = "size", defaultValue = "10") Integer size){
  189. //查询对应游戏数据
  190. PageRequest request = PageRequest.of(page - 1, size);
  191. List<GameDTO> gameDTOList = gameInfoService.findAllByRankingShow(userId,rankingShow,request);
  192. return ResultVOUtil.success(gameDTOList);
  193. }
  194. @GetMapping("/list_by_ranking_show_and_platform")
  195. public ResultVO getGameListByRankingShowAndPlatform(@RequestParam(value = "userId", required = false) String userId,
  196. @RequestParam(value = "rankingShow", required = false) Integer rankingShow,
  197. @RequestParam(value = "platform", required = false) Integer platform,
  198. @RequestParam(value = "page", defaultValue = "1") Integer page,
  199. @RequestParam(value = "size", defaultValue = "10") Integer size){
  200. //查询对应游戏数据
  201. PageRequest request = PageRequest.of(page - 1, size);
  202. List<GameDTO> gameDTOList = gameInfoService.findAllByRankingShowAndPlatform(userId,rankingShow,platform,request);
  203. return ResultVOUtil.success(gameDTOList);
  204. }
  205. }