package com.game.business.controller; import java.util.*; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.RandomUtil; import com.game.business.domain.*; import com.game.business.dto.AppUserAgentDTO; import com.game.business.dto.AppUserDTO; import com.game.business.service.IAppGameCommissionService; import com.game.business.service.IAppGameService; import com.game.business.service.IAppUserService; import com.game.business.util.Md5Utils; import com.game.business.vo.AppGameBettingDetailsCountVO; import com.game.business.vo.AppGameCommissionVO; import com.game.business.vo.AppUserAgentVO; import com.game.business.vo.AppUserPAgentVO; import com.game.common.annotation.Anonymous; import com.game.common.core.domain.*; import com.game.common.utils.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.game.common.annotation.Log; import com.game.common.core.controller.BaseController; import com.game.common.enums.BusinessType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.game.business.service.IAppUserAgentService; import com.game.common.utils.poi.ExcelUtil; import com.game.common.core.page.TableDataInfo; import springfox.documentation.annotations.ApiIgnore; /** * 用户代理表Controller * * @author game * @date 2024-06-25 */ @RestController @RequestMapping("/business/agent") @Api(value = "AppUserAgentController", description = "用户代理表接口", tags = {"用户代理表接口"}) public class AppUserAgentController extends BaseController { @Autowired private IAppUserAgentService appUserAgentService; @Autowired private IAppGameCommissionService appGameCommissionService; @Autowired private IAppGameService appGameService; @Autowired private IAppUserService appUserService; @Anonymous @PostMapping("/addAgent") @ApiOperation(value = "添加代理", notes = "添加代理") public HttpRet addAgent(@RequestBody AppUserDTO appUserDTO) { if(appUserService.getMobileCount(appUserDTO.getUserName())){ return HttpRet.fail("用户手机号码已存在。"); } AppUser appUser = getAppUser(appUserDTO.getUserName(), appUserDTO.getPassWord()); appUserService.insertAppUser(appUser); AppUserAgent pUserAgent = new AppUserAgent(); pUserAgent.setUserId(appUserDTO.getUserId()); List pList = appUserAgentService.selectAppUserAgentList(pUserAgent); if(pList == null || pList.isEmpty()){ return HttpRet.fail("上级代理不存在或不是代理。"); } AppUserAgent dbPuserAgent = pList.get(0); AppUserAgent appUserAgent = new AppUserAgent(); appUserAgent.setId(IdUtil.getSnowflakeNextId()); appUserAgent.setTopId(dbPuserAgent.getTopId() == null ? dbPuserAgent.getUserId() : dbPuserAgent.getTopId()); appUserAgent.setPid(dbPuserAgent.getUserId()); appUserAgent.setUserId(appUser.getUserid()); appUserAgent.setAuditStatus("1"); appUserAgent.setLiveRate(0L); appUserAgent.setDividendGuaranteeRate(0L); appUserAgent.setCreateTime(new Date()); appUserAgentService.insertAppUserAgent(appUserAgent); AppUserAgentVO appUserAgentVO = new AppUserAgentVO(); BeanUtils.copyProperties(appUserAgent, appUserAgentVO); appUserAgentVO.setUserId(appUser.getUserid()); appUserAgentVO.setNickName(appUser.getUsername()); appUserAgentVO.setAvatar(""); List gameCommissionVOList = new ArrayList<>(); List gameList = appGameService.selectAppGameList(new AppGame()); if(gameList != null && !gameList.isEmpty()){ for (int i = 0; i < gameList.size(); i++) { AppGame appGame = gameList.get(i); AppGameCommissionVO appGameCommissionVO = new AppGameCommissionVO(); appGameCommissionVO.setPid(dbPuserAgent.getUserId()); appGameCommissionVO.setUserId(appUser.getUserid()); appGameCommissionVO.setGameRate(0L); appGameCommissionVO.setGameId(appGame.getId()); appGameCommissionVO.setGameName(appGame.getName()); appGameCommissionVO.setLogoUrl(appGame.getLogoUrl()); appGameCommissionVO.setGamePath(appGame.getGamePath()); gameCommissionVOList.add(appGameCommissionVO); } } appUserAgentVO.setCommissions(gameCommissionVOList); return HttpRet.success("添加成功", appUserAgentVO); } @Anonymous @PostMapping("/updateConfig") @ApiOperation(value = "修改代理配置", notes = "修改代理配置") public HttpRet addAgent(@RequestBody AppUserAgentDTO appUserAgent) { if(appUserAgent == null){ return HttpRet.fail("代理数据为空。"); } AppUserAgent dbUserAgent = new AppUserAgent(); BeanUtils.copyProperties(appUserAgent, dbUserAgent); dbUserAgent.setUpdateTime(new Date()); appUserAgentService.updateAppUserAgent(dbUserAgent); if(appUserAgent.getCommissions() != null && !appUserAgent.getCommissions().isEmpty()){ List commissionList = appUserAgent.getCommissions(); for(AppGameCommission commission : commissionList){ if(commission.getId() == null){ if(commission.getPid() == null){ commission.setPid(appUserAgent.getPid()); commission.setId(IdUtil.getSnowflakeNextId()); appGameCommissionService.insertAppGameCommission(commission); } }else{ appGameCommissionService.updateAppGameCommission(commission); } } } return HttpRet.success("修改成功"); } /** * 获取代理成员设置 */ @Anonymous @PostMapping(value = "/getUserAgent") @ApiOperation(value = "获取代理成员设置", notes = "获取代理成员设置") public HttpRet getListByGameId(@RequestParam(name = "pid") Long pid, @RequestParam(name = "userId") Long userId) { AppUserPAgentVO appUserPAgentVO = new AppUserPAgentVO(); AppUser appUser = appUserService.selectAppUserByUserid(userId); if(appUser == null ){ return HttpRet.fail("用户信息不存在。"); } AppUserAgent userAgent = new AppUserAgent(); userAgent.setPid(pid); userAgent.setUserId(userId); List userAgents = appUserAgentService.selectAppUserAgentList(userAgent); if(userAgents == null || userAgents.isEmpty()){ return HttpRet.fail("代理信息不存在。"); } AppUserAgent userPAgent = new AppUserAgent(); userPAgent.setUserId(pid); List userpAgents = appUserAgentService.selectAppUserAgentList(userPAgent); if(userpAgents == null || userpAgents.isEmpty()){ return HttpRet.fail("上级代理信息不存在。"); } AppUserAgentVO appUserAgentVO = new AppUserAgentVO(); BeanUtils.copyProperties(userAgents.get(0), appUserAgentVO); appUserAgentVO.setUserId(appUser.getUserid()); appUserAgentVO.setNickName(StringUtils.isEmpty(appUser.getNickname()) ? appUser.getUsername() : appUser.getNickname()); appUserAgentVO.setAvatar(appUser.getAvatar()); AppGameCommission appGameCommission = new AppGameCommission(); appGameCommission.setPid(pid); appGameCommission.setUserId(userId); List gameCommissions = appGameCommissionService.selectAppGameCommissionList(appGameCommission); Map> idGameMap; if(gameCommissions != null && !gameCommissions.isEmpty()){ idGameMap = gameCommissions.stream().collect(Collectors.groupingBy(AppGameCommission::getGameId)); }else{ idGameMap = new HashMap<>(); } AppUserAgentVO appUserpAgentVO = new AppUserAgentVO(); BeanUtils.copyProperties(userpAgents.get(0), appUserpAgentVO); Map> idGamePMap = new HashMap<>(); if(appUserpAgentVO.getPid() != null){ AppGameCommission appGamePCommission = new AppGameCommission(); appGamePCommission.setPid(appUserpAgentVO.getPid()); appGamePCommission.setUserId(appUserpAgentVO.getUserId()); List gamePCommissions = appGameCommissionService.selectAppGameCommissionList(appGamePCommission); if(gamePCommissions != null && !gamePCommissions.isEmpty()){ idGamePMap = gamePCommissions.stream().collect(Collectors.groupingBy(AppGameCommission::getGameId)); } } if(appUserpAgentVO.getLiveRate() == null){ appUserpAgentVO.setLiveRate(100L); } if(appUserpAgentVO.getDividendGuaranteeRate() == null){ appUserpAgentVO.setDividendGuaranteeRate(100L); } List gameCommissionVOList = new ArrayList<>(); List gamePCommissionVOList = new ArrayList<>(); List gameList = appGameService.selectAppGameList(new AppGame()); if(gameList != null && !gameList.isEmpty()){ for (int i = 0; i < gameList.size(); i++) { AppGame appGame = gameList.get(i); AppGameCommissionVO appGameCommissionVO = new AppGameCommissionVO(); if(idGameMap.containsKey(appGame.getId())){ AppGameCommission gameCommission = idGameMap.get(appGame.getId()).get(0); BeanUtils.copyProperties(gameCommission, appGameCommissionVO); }else{ appGameCommissionVO.setGameRate(0L); } appGameCommissionVO.setGameId(appGame.getId()); appGameCommissionVO.setGameName(appGame.getName()); appGameCommissionVO.setLogoUrl(appGame.getLogoUrl()); appGameCommissionVO.setGamePath(appGame.getGamePath()); gameCommissionVOList.add(appGameCommissionVO); AppGameCommissionVO appGamePCommissionVO = new AppGameCommissionVO(); if(idGamePMap.containsKey(appGame.getId())){ AppGameCommission gameCommission = idGamePMap.get(appGame.getId()).get(0); BeanUtils.copyProperties(gameCommission, appGamePCommissionVO); }else{ appGamePCommissionVO.setGameRate(100L); } appGamePCommissionVO.setGameId(appGame.getId()); gamePCommissionVOList.add(appGamePCommissionVO); } } appUserAgentVO.setCommissions(gameCommissionVOList); appUserPAgentVO.setAppUserAgent(appUserAgentVO); appUserpAgentVO.setCommissions(gamePCommissionVOList); appUserPAgentVO.setAppUserPAgent(appUserpAgentVO); return HttpRet.success("查询成功", appUserPAgentVO); } /** * 新增用户 * @return 用户id * @author jiang * @date 2021/9/25 16:28 */ public AppUser getAppUser(String userName, String password) { AppUser appUser = new AppUser(); appUser.setUserid(IdUtil.getSnowflakeNextId()); if (StringUtils.isNotBlank(password)) { appUser.setPassword(Md5Utils.md5(Md5Utils.md5(password) + appUser.getSalt())); } appUser.setUsername(userName); appUser.setAvatar(null); appUser.setSex(0L); appUser.setSignature("这家伙很懒..."); appUser.setSalt(RandomUtil.randomString(8)); // 基础信息 // appUser.setMobile(mobile); appUser.setRegType(0L); appUser.setOpenid(null); appUser.setRegisterIp("127.0.0.1"); appUser.setRegType(0L); appUser.setCreateTime(new Date()); appUser.setLoginType("1"); appUser.setUserType(2L); appUser.setBirthday("1990-01-01"); appUser.setStatus(0L); appUser.setDelFlag(0L); appUser.setIshot(1L); appUser.setIsRecommend(0L); appUser.setIssuper(1L); appUser.setRole(0L); appUser.setCity("墨西哥"); appUser.setAddress("墨西哥"); appUser.setLat(114.31); appUser.setLng(30.52); // 用户开关 appUser.setGiftGlobalBroadcast(1L); appUser.setIsShowHomePage(1L); // 金币相关 appUser.setCoin(0.00); appUser.setVotes(0.00); appUser.setAmount(0.00); appUser.setTotalAmount(0.00); appUser.setVotestotal(0.00); appUser.setTotalCharge(0.00); appUser.setTotalAmountCash(0.00); appUser.setTotalCash(0.00); appUser.setConsumption(0.00); // 等级积分相关 appUser.setUserPoint(0L); appUser.setAnchorPoint(0L); appUser.setCharmPoint(0L); appUser.setUserGrade(1L); appUser.setAnchorGrade(1L); appUser.setWealthGrade(1L); appUser.setNobleGrade(0L); appUser.setCharmGrade(0L); appUser.setIsShowHomePage(1L); appUser.setIpaddr("墨西哥"); appUser.setAppVersion(null); appUser.setAppVersionCode(null); appUser.setPhoneSystem(null); appUser.setPhoneFirm(null); appUser.setPhoneModel(null); appUser.setPhoneUuid(null); appUser.setSource(null); appUser.setIszombie(1L); appUser.setIszombiep(1L); return appUser; } }