AppUserAgentController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. package com.game.business.controller;
  2. import java.util.*;
  3. import java.util.stream.Collectors;
  4. import javax.servlet.http.HttpServletResponse;
  5. import cn.hutool.core.util.IdUtil;
  6. import cn.hutool.core.util.RandomUtil;
  7. import com.game.business.domain.*;
  8. import com.game.business.dto.AppUserAgentDTO;
  9. import com.game.business.dto.AppUserDTO;
  10. import com.game.business.service.IAppGameCommissionService;
  11. import com.game.business.service.IAppGameService;
  12. import com.game.business.service.IAppUserService;
  13. import com.game.business.util.Md5Utils;
  14. import com.game.business.vo.AppGameBettingDetailsCountVO;
  15. import com.game.business.vo.AppGameCommissionVO;
  16. import com.game.business.vo.AppUserAgentVO;
  17. import com.game.business.vo.AppUserPAgentVO;
  18. import com.game.common.annotation.Anonymous;
  19. import com.game.common.core.domain.*;
  20. import com.game.common.utils.StringUtils;
  21. import org.springframework.beans.BeanUtils;
  22. import org.springframework.security.access.prepost.PreAuthorize;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.web.bind.annotation.*;
  25. import com.game.common.annotation.Log;
  26. import com.game.common.core.controller.BaseController;
  27. import com.game.common.enums.BusinessType;
  28. import io.swagger.annotations.Api;
  29. import io.swagger.annotations.ApiOperation;
  30. import com.game.business.service.IAppUserAgentService;
  31. import com.game.common.utils.poi.ExcelUtil;
  32. import com.game.common.core.page.TableDataInfo;
  33. import springfox.documentation.annotations.ApiIgnore;
  34. /**
  35. * 用户代理表Controller
  36. *
  37. * @author game
  38. * @date 2024-06-25
  39. */
  40. @RestController
  41. @RequestMapping("/business/agent")
  42. @Api(value = "AppUserAgentController", description = "用户代理表接口", tags = {"用户代理表接口"})
  43. public class AppUserAgentController extends BaseController
  44. {
  45. @Autowired
  46. private IAppUserAgentService appUserAgentService;
  47. @Autowired
  48. private IAppGameCommissionService appGameCommissionService;
  49. @Autowired
  50. private IAppGameService appGameService;
  51. @Autowired
  52. private IAppUserService appUserService;
  53. @Anonymous
  54. @PostMapping("/addAgent")
  55. @ApiOperation(value = "添加代理", notes = "添加代理")
  56. public HttpRet<AppUserAgentVO> addAgent(@RequestBody AppUserDTO appUserDTO)
  57. {
  58. if(appUserService.getMobileCount(appUserDTO.getUserName())){
  59. return HttpRet.fail("用户手机号码已存在。");
  60. }
  61. AppUser appUser = getAppUser(appUserDTO.getUserName(), appUserDTO.getPassWord());
  62. appUserService.insertAppUser(appUser);
  63. AppUserAgent pUserAgent = new AppUserAgent();
  64. pUserAgent.setUserId(appUserDTO.getUserId());
  65. List<AppUserAgent> pList = appUserAgentService.selectAppUserAgentList(pUserAgent);
  66. if(pList == null || pList.isEmpty()){
  67. return HttpRet.fail("上级代理不存在或不是代理。");
  68. }
  69. AppUserAgent dbPuserAgent = pList.get(0);
  70. AppUserAgent appUserAgent = new AppUserAgent();
  71. appUserAgent.setId(IdUtil.getSnowflakeNextId());
  72. appUserAgent.setTopId(dbPuserAgent.getTopId() == null ? dbPuserAgent.getUserId() : dbPuserAgent.getTopId());
  73. appUserAgent.setPid(dbPuserAgent.getUserId());
  74. appUserAgent.setUserId(appUser.getUserid());
  75. appUserAgent.setAuditStatus("1");
  76. appUserAgent.setLiveRate(0L);
  77. appUserAgent.setDividendGuaranteeRate(0L);
  78. appUserAgent.setCreateTime(new Date());
  79. appUserAgentService.insertAppUserAgent(appUserAgent);
  80. AppUserAgentVO appUserAgentVO = new AppUserAgentVO();
  81. BeanUtils.copyProperties(appUserAgent, appUserAgentVO);
  82. appUserAgentVO.setUserId(appUser.getUserid());
  83. appUserAgentVO.setNickName(appUser.getUsername());
  84. appUserAgentVO.setAvatar("");
  85. List<AppGameCommissionVO> gameCommissionVOList = new ArrayList<>();
  86. List<AppGame> gameList = appGameService.selectAppGameList(new AppGame());
  87. if(gameList != null && !gameList.isEmpty()){
  88. for (int i = 0; i < gameList.size(); i++) {
  89. AppGame appGame = gameList.get(i);
  90. AppGameCommissionVO appGameCommissionVO = new AppGameCommissionVO();
  91. appGameCommissionVO.setPid(dbPuserAgent.getUserId());
  92. appGameCommissionVO.setUserId(appUser.getUserid());
  93. appGameCommissionVO.setGameRate(0L);
  94. appGameCommissionVO.setGameId(appGame.getId());
  95. appGameCommissionVO.setGameName(appGame.getName());
  96. appGameCommissionVO.setLogoUrl(appGame.getLogoUrl());
  97. appGameCommissionVO.setGamePath(appGame.getGamePath());
  98. gameCommissionVOList.add(appGameCommissionVO);
  99. }
  100. }
  101. appUserAgentVO.setCommissions(gameCommissionVOList);
  102. return HttpRet.success("添加成功", appUserAgentVO);
  103. }
  104. @Anonymous
  105. @PostMapping("/updateConfig")
  106. @ApiOperation(value = "修改代理配置", notes = "修改代理配置")
  107. public HttpRet addAgent(@RequestBody AppUserAgentDTO appUserAgent)
  108. {
  109. if(appUserAgent == null){
  110. return HttpRet.fail("代理数据为空。");
  111. }
  112. AppUserAgent dbUserAgent = new AppUserAgent();
  113. BeanUtils.copyProperties(appUserAgent, dbUserAgent);
  114. dbUserAgent.setUpdateTime(new Date());
  115. appUserAgentService.updateAppUserAgent(dbUserAgent);
  116. if(appUserAgent.getCommissions() != null && !appUserAgent.getCommissions().isEmpty()){
  117. List<AppGameCommission> commissionList = appUserAgent.getCommissions();
  118. for(AppGameCommission commission : commissionList){
  119. if(commission.getId() == null){
  120. if(commission.getPid() == null){
  121. commission.setPid(appUserAgent.getPid());
  122. commission.setId(IdUtil.getSnowflakeNextId());
  123. appGameCommissionService.insertAppGameCommission(commission);
  124. }
  125. }else{
  126. appGameCommissionService.updateAppGameCommission(commission);
  127. }
  128. }
  129. }
  130. return HttpRet.success("修改成功");
  131. }
  132. /**
  133. * 获取代理成员设置
  134. */
  135. @Anonymous
  136. @PostMapping(value = "/getUserAgent")
  137. @ApiOperation(value = "获取代理成员设置", notes = "获取代理成员设置")
  138. public HttpRet<AppUserPAgentVO> getListByGameId(@RequestParam(name = "pid") Long pid, @RequestParam(name = "userId") Long userId)
  139. {
  140. AppUserPAgentVO appUserPAgentVO = new AppUserPAgentVO();
  141. AppUser appUser = appUserService.selectAppUserByUserid(userId);
  142. if(appUser == null ){
  143. return HttpRet.fail("用户信息不存在。");
  144. }
  145. AppUserAgent userAgent = new AppUserAgent();
  146. userAgent.setPid(pid);
  147. userAgent.setUserId(userId);
  148. List<AppUserAgent> userAgents = appUserAgentService.selectAppUserAgentList(userAgent);
  149. if(userAgents == null || userAgents.isEmpty()){
  150. return HttpRet.fail("代理信息不存在。");
  151. }
  152. AppUserAgent userPAgent = new AppUserAgent();
  153. userPAgent.setUserId(pid);
  154. List<AppUserAgent> userpAgents = appUserAgentService.selectAppUserAgentList(userPAgent);
  155. if(userpAgents == null || userpAgents.isEmpty()){
  156. return HttpRet.fail("上级代理信息不存在。");
  157. }
  158. AppUserAgentVO appUserAgentVO = new AppUserAgentVO();
  159. BeanUtils.copyProperties(userAgents.get(0), appUserAgentVO);
  160. appUserAgentVO.setUserId(appUser.getUserid());
  161. appUserAgentVO.setNickName(StringUtils.isEmpty(appUser.getNickname()) ? appUser.getUsername() : appUser.getNickname());
  162. appUserAgentVO.setAvatar(appUser.getAvatar());
  163. AppGameCommission appGameCommission = new AppGameCommission();
  164. appGameCommission.setPid(pid);
  165. appGameCommission.setUserId(userId);
  166. List<AppGameCommission> gameCommissions = appGameCommissionService.selectAppGameCommissionList(appGameCommission);
  167. Map<Long, List<AppGameCommission>> idGameMap;
  168. if(gameCommissions != null && !gameCommissions.isEmpty()){
  169. idGameMap = gameCommissions.stream().collect(Collectors.groupingBy(AppGameCommission::getGameId));
  170. }else{
  171. idGameMap = new HashMap<>();
  172. }
  173. AppUserAgentVO appUserpAgentVO = new AppUserAgentVO();
  174. BeanUtils.copyProperties(userpAgents.get(0), appUserpAgentVO);
  175. Map<Long, List<AppGameCommission>> idGamePMap = new HashMap<>();
  176. if(appUserpAgentVO.getPid() != null){
  177. AppGameCommission appGamePCommission = new AppGameCommission();
  178. appGamePCommission.setPid(appUserpAgentVO.getPid());
  179. appGamePCommission.setUserId(appUserpAgentVO.getUserId());
  180. List<AppGameCommission> gamePCommissions = appGameCommissionService.selectAppGameCommissionList(appGamePCommission);
  181. if(gamePCommissions != null && !gamePCommissions.isEmpty()){
  182. idGamePMap = gamePCommissions.stream().collect(Collectors.groupingBy(AppGameCommission::getGameId));
  183. }
  184. }
  185. if(appUserpAgentVO.getLiveRate() == null){
  186. appUserpAgentVO.setLiveRate(100L);
  187. }
  188. if(appUserpAgentVO.getDividendGuaranteeRate() == null){
  189. appUserpAgentVO.setDividendGuaranteeRate(100L);
  190. }
  191. List<AppGameCommissionVO> gameCommissionVOList = new ArrayList<>();
  192. List<AppGameCommissionVO> gamePCommissionVOList = new ArrayList<>();
  193. List<AppGame> gameList = appGameService.selectAppGameList(new AppGame());
  194. if(gameList != null && !gameList.isEmpty()){
  195. for (int i = 0; i < gameList.size(); i++) {
  196. AppGame appGame = gameList.get(i);
  197. AppGameCommissionVO appGameCommissionVO = new AppGameCommissionVO();
  198. if(idGameMap.containsKey(appGame.getId())){
  199. AppGameCommission gameCommission = idGameMap.get(appGame.getId()).get(0);
  200. BeanUtils.copyProperties(gameCommission, appGameCommissionVO);
  201. }else{
  202. appGameCommissionVO.setGameRate(0L);
  203. }
  204. appGameCommissionVO.setGameId(appGame.getId());
  205. appGameCommissionVO.setGameName(appGame.getName());
  206. appGameCommissionVO.setLogoUrl(appGame.getLogoUrl());
  207. appGameCommissionVO.setGamePath(appGame.getGamePath());
  208. gameCommissionVOList.add(appGameCommissionVO);
  209. AppGameCommissionVO appGamePCommissionVO = new AppGameCommissionVO();
  210. if(idGamePMap.containsKey(appGame.getId())){
  211. AppGameCommission gameCommission = idGamePMap.get(appGame.getId()).get(0);
  212. BeanUtils.copyProperties(gameCommission, appGamePCommissionVO);
  213. }else{
  214. appGamePCommissionVO.setGameRate(100L);
  215. }
  216. appGamePCommissionVO.setGameId(appGame.getId());
  217. gamePCommissionVOList.add(appGamePCommissionVO);
  218. }
  219. }
  220. appUserAgentVO.setCommissions(gameCommissionVOList);
  221. appUserPAgentVO.setAppUserAgent(appUserAgentVO);
  222. appUserpAgentVO.setCommissions(gamePCommissionVOList);
  223. appUserPAgentVO.setAppUserPAgent(appUserpAgentVO);
  224. return HttpRet.success("查询成功", appUserPAgentVO);
  225. }
  226. /**
  227. * 新增用户
  228. * @return 用户id
  229. * @author jiang
  230. * @date 2021/9/25 16:28
  231. */
  232. public AppUser getAppUser(String userName, String password) {
  233. AppUser appUser = new AppUser();
  234. appUser.setUserid(IdUtil.getSnowflakeNextId());
  235. if (StringUtils.isNotBlank(password)) {
  236. appUser.setPassword(Md5Utils.md5(Md5Utils.md5(password) + appUser.getSalt()));
  237. }
  238. appUser.setUsername(userName);
  239. appUser.setAvatar(null);
  240. appUser.setSex(0L);
  241. appUser.setSignature("这家伙很懒...");
  242. appUser.setSalt(RandomUtil.randomString(8));
  243. // 基础信息
  244. // appUser.setMobile(mobile);
  245. appUser.setRegType(0L);
  246. appUser.setOpenid(null);
  247. appUser.setRegisterIp("127.0.0.1");
  248. appUser.setRegType(0L);
  249. appUser.setCreateTime(new Date());
  250. appUser.setLoginType("1");
  251. appUser.setUserType(2L);
  252. appUser.setBirthday("1990-01-01");
  253. appUser.setStatus(0L);
  254. appUser.setDelFlag(0L);
  255. appUser.setIshot(1L);
  256. appUser.setIsRecommend(0L);
  257. appUser.setIssuper(1L);
  258. appUser.setRole(0L);
  259. appUser.setCity("墨西哥");
  260. appUser.setAddress("墨西哥");
  261. appUser.setLat(114.31);
  262. appUser.setLng(30.52);
  263. // 用户开关
  264. appUser.setGiftGlobalBroadcast(1L);
  265. appUser.setIsShowHomePage(1L);
  266. // 金币相关
  267. appUser.setCoin(0.00);
  268. appUser.setVotes(0.00);
  269. appUser.setAmount(0.00);
  270. appUser.setTotalAmount(0.00);
  271. appUser.setVotestotal(0.00);
  272. appUser.setTotalCharge(0.00);
  273. appUser.setTotalAmountCash(0.00);
  274. appUser.setTotalCash(0.00);
  275. appUser.setConsumption(0.00);
  276. // 等级积分相关
  277. appUser.setUserPoint(0L);
  278. appUser.setAnchorPoint(0L);
  279. appUser.setCharmPoint(0L);
  280. appUser.setUserGrade(1L);
  281. appUser.setAnchorGrade(1L);
  282. appUser.setWealthGrade(1L);
  283. appUser.setNobleGrade(0L);
  284. appUser.setCharmGrade(0L);
  285. appUser.setIsShowHomePage(1L);
  286. appUser.setIpaddr("墨西哥");
  287. appUser.setAppVersion(null);
  288. appUser.setAppVersionCode(null);
  289. appUser.setPhoneSystem(null);
  290. appUser.setPhoneFirm(null);
  291. appUser.setPhoneModel(null);
  292. appUser.setPhoneUuid(null);
  293. appUser.setSource(null);
  294. appUser.setIszombie(1L);
  295. appUser.setIszombiep(1L);
  296. return appUser;
  297. }
  298. }