|
@@ -8,8 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.zanxiang.common.utils.StringUtils;
|
|
|
import com.zanxiang.common.utils.bean.BeanUtils;
|
|
|
-import com.zanxiang.manage.domain.dto.GameDTO;
|
|
|
-import com.zanxiang.manage.domain.dto.UserDTO;
|
|
|
+import com.zanxiang.manage.domain.dto.*;
|
|
|
import com.zanxiang.manage.domain.params.GameUserListParam;
|
|
|
import com.zanxiang.manage.domain.vo.GameUserListVO;
|
|
|
import com.zanxiang.manage.domain.vo.GameUserVO;
|
|
@@ -22,10 +21,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @author : lingfeng
|
|
@@ -46,11 +42,14 @@ public class GameUserServiceImpl extends ServiceImpl<GameUserMapper, GameUser> i
|
|
|
private GameCategoryService gameCategoryService;
|
|
|
|
|
|
@Autowired
|
|
|
- private ChannelService channelService;
|
|
|
+ private PromoChannelService promoChannelService;
|
|
|
|
|
|
@Autowired
|
|
|
private CpService cpService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PromoAccountService promoAccountService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询玩家游戏列表
|
|
|
*
|
|
@@ -65,36 +64,46 @@ public class GameUserServiceImpl extends ServiceImpl<GameUserMapper, GameUser> i
|
|
|
if (gameMap != null && gameMap.isEmpty()) {
|
|
|
return new Page<>();
|
|
|
}
|
|
|
+ //渠道列表
|
|
|
+ List<Long> agentIdList;
|
|
|
+ if (param.getChannelId() != null) {
|
|
|
+ agentIdList = Collections.singletonList(param.getChannelId());
|
|
|
+ } else {
|
|
|
+ agentIdList = promoChannelService.listByAccountOrPitcherId(param.getAccountId(), param.getPitcherId());
|
|
|
+ }
|
|
|
+ //根据条件, 匹配渠道
|
|
|
+ if (agentIdList != null && agentIdList.isEmpty()) {
|
|
|
+ return new Page<>();
|
|
|
+ }
|
|
|
//玩家条件处理
|
|
|
- Map<Long, UserDTO> userMap = userService.userCondition(param.getUserId(), param.getChannelId(), param.getUserName(), param.getNickname(), null);
|
|
|
+ Map<Long, UserDTO> userMap = userService.userCondition(param.getUserId(), agentIdList, param.getUserName(),
|
|
|
+ param.getNickname(), null, param.getAdId());
|
|
|
//根据条件, 匹配不到玩家
|
|
|
if (userMap != null && userMap.isEmpty()) {
|
|
|
return new Page<>();
|
|
|
}
|
|
|
//相关用户id
|
|
|
Set<Long> userIdSet = userMap == null ? null : userMap.keySet();
|
|
|
- Map<Long, String> channelMap = channelService.choiceMap();
|
|
|
- Map<Long, String> cpMap = cpService.choiceMap();
|
|
|
- Map<Long, String> categoryMap = gameCategoryService.choiceMap();
|
|
|
+ Map<Long, PromoChannelDTO> channelMap = promoChannelService.promoChannelMap();
|
|
|
+ Map<Long, CpDTO> cpMap = cpService.cpMap();
|
|
|
+ Map<Long, GameCategoryDTO> gameCategoryMap = gameCategoryService.gameCategoryMap();
|
|
|
+ Map<Long, PromoAccountDTO> promoAccountMap = promoAccountService.promoAccountMap();
|
|
|
//执行查询
|
|
|
return page(param.toPage(), new QueryWrapper<GameUser>().lambda()
|
|
|
.in(CollectionUtils.isNotEmpty(userIdSet), GameUser::getUserId, userIdSet)
|
|
|
.in(gameMap != null, GameUser::getGameId, gameMap != null ? gameMap.keySet() : null)
|
|
|
- // todo : 归因推广账号
|
|
|
- // todo : 归因投放人员
|
|
|
.ge(param.getBeginDate() != null, GameUser::getCreateTime, param.getBeginDate() == null ? null : LocalDateTime.of(param.getBeginDate(), LocalTime.MIN))
|
|
|
.le(param.getEndDate() != null, GameUser::getCreateTime, param.getEndDate() == null ? null : LocalDateTime.of(param.getEndDate(), LocalTime.MAX))
|
|
|
.ge(param.getRechargeBeginDate() != null, GameUser::getLastRechargeTime, param.getRechargeBeginDate() == null ? null : LocalDateTime.of(param.getRechargeBeginDate(), LocalTime.MIN))
|
|
|
.le(param.getRechargeEndDate() != null, GameUser::getLastRechargeTime, param.getRechargeEndDate() == null ? null : LocalDateTime.of(param.getRechargeEndDate(), LocalTime.MAX))
|
|
|
.eq(param.getCustomerId() != null, GameUser::getCustomerId, param.getCustomerId())
|
|
|
- // todo : 归因广告
|
|
|
.eq(param.getIsGs() != null, GameUser::getIsGs, param.getIsGs())
|
|
|
.gt(Objects.equals(param.getIsRecharge(), Boolean.TRUE), GameUser::getRechargeCount, 0)
|
|
|
.eq(Objects.equals(param.getIsRecharge(), Boolean.FALSE), GameUser::getRechargeCount, 0)
|
|
|
.eq(param.getVipLevel() != null && param.getVipLevel() <= 10, GameUser::getRoleVipMax, param.getVipLevel())
|
|
|
.gt(param.getVipLevel() != null && param.getVipLevel() > 10, GameUser::getRoleVipMax, param.getVipLevel())
|
|
|
.orderByDesc(GameUser::getCreateTime)
|
|
|
- ).convert(u -> this.toVo(u, userMap, gameMap, channelMap, cpMap, categoryMap));
|
|
|
+ ).convert(u -> this.toVo(u, userMap, gameMap, promoAccountMap, channelMap, cpMap, gameCategoryMap));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -105,8 +114,8 @@ public class GameUserServiceImpl extends ServiceImpl<GameUserMapper, GameUser> i
|
|
|
* @param gameMap : 游戏信息
|
|
|
* @return : 返回游戏玩家信息
|
|
|
*/
|
|
|
- private GameUserListVO toVo(GameUser gameUser, Map<Long, UserDTO> userMap, Map<Long, GameDTO> gameMap,
|
|
|
- Map<Long, String> channelMap, Map<Long, String> cpMap, Map<Long, String> categoryMap) {
|
|
|
+ private GameUserListVO toVo(GameUser gameUser, Map<Long, UserDTO> userMap, Map<Long, GameDTO> gameMap, Map<Long, PromoAccountDTO> promoAccountMap,
|
|
|
+ Map<Long, PromoChannelDTO> channelMap, Map<Long, CpDTO> cpMap, Map<Long, GameCategoryDTO> gameCategoryMap) {
|
|
|
GameUserListVO gameUserListVO = BeanUtils.copy(gameUser, GameUserListVO.class);
|
|
|
if (Objects.isNull(gameUserListVO)) {
|
|
|
return null;
|
|
@@ -119,7 +128,8 @@ public class GameUserServiceImpl extends ServiceImpl<GameUserMapper, GameUser> i
|
|
|
gameUserListVO.setNickname(userDTO.getNickname());
|
|
|
gameUserListVO.setUsername(userDTO.getUsername());
|
|
|
gameUserListVO.setAgentId(userDTO.getAgentId());
|
|
|
- gameUserListVO.setChannel(channelMap.get(userDTO.getAgentId()));
|
|
|
+ gameUserListVO.setChannel(channelMap.get(userDTO.getAgentId()) == null ? null : channelMap.get(userDTO.getAgentId()).getChannel());
|
|
|
+ gameUserListVO.setAdId(userDTO.getAdId());
|
|
|
}
|
|
|
GameDTO gameDTO = StringUtils.isEmpty(gameMap) ? null : gameMap.get(gameUserListVO.getGameId());
|
|
|
if (gameDTO == null) {
|
|
@@ -127,9 +137,21 @@ public class GameUserServiceImpl extends ServiceImpl<GameUserMapper, GameUser> i
|
|
|
}
|
|
|
if (gameDTO != null) {
|
|
|
gameUserListVO.setCpId(gameDTO.getCpId());
|
|
|
- gameUserListVO.setCpName(cpMap.get(gameDTO.getCpId()));
|
|
|
gameUserListVO.setGameCategoryId(gameDTO.getCategory());
|
|
|
- gameUserListVO.setGameCategoryName(categoryMap.get(gameDTO.getCategory()));
|
|
|
+ gameUserListVO.setCpName(cpMap.get(gameDTO.getCpId()) == null ? null : cpMap.get(gameDTO.getCpId()).getCpName());
|
|
|
+ gameUserListVO.setGameCategoryName(gameCategoryMap.get(gameDTO.getCategory()) == null ? null : gameCategoryMap.get(gameDTO.getCategory()).getName());
|
|
|
+ }
|
|
|
+ PromoChannelDTO promoChannelDTO = channelMap.get(gameUserListVO.getAgentId());
|
|
|
+ if (promoChannelDTO != null) {
|
|
|
+ PromoAccountDTO promoAccountDTO = promoAccountMap.get(promoChannelDTO.getAccountId());
|
|
|
+ if (promoAccountDTO != null) {
|
|
|
+ gameUserListVO.setPitcherId(promoAccountDTO.getPitcherId());
|
|
|
+ gameUserListVO.setPitcherName(promoAccountDTO.getPitcherName());
|
|
|
+ gameUserListVO.setAccountId(promoAccountDTO.getId());
|
|
|
+ gameUserListVO.setAccountName(promoAccountDTO.getName());
|
|
|
+ gameUserListVO.setMediaId(promoAccountDTO.getMediaId());
|
|
|
+ gameUserListVO.setMediaName(promoAccountDTO.getMediaName());
|
|
|
+ }
|
|
|
}
|
|
|
return gameUserListVO;
|
|
|
}
|