AppUserAgentController.java 18 KB

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