|
@@ -9,11 +9,13 @@ import com.mybatisflex.core.row.Row;
|
|
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
|
|
import com.zanxiang.game.gs.data.serve.dao.mapper.game.parent.AdsRoleAmountDataParentMapper;
|
|
|
import com.zanxiang.game.gs.data.serve.pojo.dto.BigRDTO;
|
|
|
+import com.zanxiang.game.gs.data.serve.pojo.dto.RoleManageDTO;
|
|
|
import com.zanxiang.game.gs.data.serve.pojo.dto.RoleRemoveGameMonitorDTO;
|
|
|
import com.zanxiang.game.gs.data.serve.pojo.entity.game.parent.AdsRoleAmountDataParent;
|
|
|
import com.zanxiang.game.gs.data.serve.pojo.entity.game.parent.AdsRoleAmountDataTodayParent;
|
|
|
import com.zanxiang.game.gs.data.serve.pojo.vo.BigRVO;
|
|
|
import com.zanxiang.game.gs.data.serve.pojo.vo.PageVO;
|
|
|
+import com.zanxiang.game.gs.data.serve.pojo.vo.RoleManageVO;
|
|
|
import com.zanxiang.game.gs.data.serve.pojo.vo.RoleRemoveGameMonitorVO;
|
|
|
import com.zanxiang.game.gs.data.serve.service.*;
|
|
|
import com.zanxiang.module.util.DateUtil;
|
|
@@ -28,7 +30,6 @@ import java.time.LocalTime;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
-import java.util.function.Consumer;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.mybatisflex.core.query.QueryMethods.*;
|
|
@@ -110,7 +111,7 @@ public class AdsRoleAmountDataParentServiceImpl extends ServiceImpl<AdsRoleAmoun
|
|
|
String column = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, dto.getSortFiled());
|
|
|
dto.setSortFiled(column);
|
|
|
}
|
|
|
- QueryWrapper bigRWrapper = getRoleRemoveGameRWrapper(dto);
|
|
|
+ QueryWrapper bigRWrapper = getRoleRemoveGameWrapper(dto);
|
|
|
|
|
|
Page<RoleRemoveGameMonitorVO> paginate = getMapper().paginateAs(dto.getPageNum(), dto.getPageSize(), bigRWrapper, RoleRemoveGameMonitorVO.class);
|
|
|
if (0 == paginate.getTotalRow()) {
|
|
@@ -141,7 +142,104 @@ public class AdsRoleAmountDataParentServiceImpl extends ServiceImpl<AdsRoleAmoun
|
|
|
return new PageVO<>(paginate);
|
|
|
}
|
|
|
|
|
|
- private static QueryWrapper getRoleRemoveGameRWrapper(RoleRemoveGameMonitorDTO dto) {
|
|
|
+ @Override
|
|
|
+ public PageVO<RoleManageVO, Row> roleManage(RoleManageDTO dto) {
|
|
|
+ if (StringUtils.isBlank(dto.getSortFiled())) {
|
|
|
+ dto.setSortFiled(ADS_ROLE_AMOUNT_DATA_PARENT.TOTAL_AMOUNT.getName());
|
|
|
+ } else {
|
|
|
+ String column = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, dto.getSortFiled());
|
|
|
+ dto.setSortFiled(column);
|
|
|
+ }
|
|
|
+ QueryWrapper wrapper = getRoleManageWrapper(dto);
|
|
|
+
|
|
|
+ Page<RoleManageVO> paginate = getMapper().paginateAs(dto.getPageNum(), dto.getPageSize(), wrapper, RoleManageVO.class);
|
|
|
+ if (0 == paginate.getTotalRow()) {
|
|
|
+ return PageVO.empty(dto);
|
|
|
+ }
|
|
|
+ List<RoleManageVO> records = paginate.getRecords();
|
|
|
+ Set<String> serverIdList = records.stream().map(RoleManageVO::getEndServerId).collect(Collectors.toSet());
|
|
|
+ Set<Integer> parentGameIdList = records.stream().map(RoleManageVO::getParentGameId).collect(Collectors.toSet());
|
|
|
+ Set<Long> gsIdList = records.stream().map(RoleManageVO::getGsId).collect(Collectors.toSet());
|
|
|
+ //父游戏名称
|
|
|
+ Map<Integer, String> parentGameMap = gameService.gameNameMap(dto.getSourceSystem(), parentGameIdList);
|
|
|
+ //区服名称
|
|
|
+ Map<Long, Map<String, String>> serverMap = serverSonMergeService.gameServerMap(dto.getSourceSystem(), serverIdList);
|
|
|
+ //GS名称查询
|
|
|
+ Map<Long, String> sysUserMap = CollectionUtils.isEmpty(gsIdList) ? null : sysUserService.getSysUserMap(gsIdList);
|
|
|
+ records.forEach(record -> {
|
|
|
+ Long gsId = record.getGsId();
|
|
|
+ record.setGsName(0 == gsId ? null : sysUserMap != null ? sysUserMap.get(gsId) : null);
|
|
|
+ record.setParentGameName(parentGameMap.get(record.getParentGameId()));
|
|
|
+ record.setEndServerName(null == serverMap.get(record.getSuperGameId()) ? null : serverMap.get(record.getSuperGameId()).get(record.getEndServerId()));
|
|
|
+ if (null != record.getGsStartTime()) {
|
|
|
+ record.setGsServeDays(record.getGsEndTime().isBefore(LocalDate.now()) ? DateUtil.intervalOfDays(record.getGsStartTime(), record.getGsEndTime())
|
|
|
+ : DateUtil.intervalOfDays(record.getGsStartTime(), LocalDate.now()));
|
|
|
+ record.setServeStatus(record.getGsEndTime().isBefore(LocalDate.now()));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return new PageVO<>(paginate);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static QueryWrapper getRoleManageWrapper(RoleManageDTO dto) {
|
|
|
+ return QueryWrapper.create()
|
|
|
+ .select(ADS_ROLE_AMOUNT_DATA_PARENT.GS_ID)
|
|
|
+ .select(ADS_ROLE_AMOUNT_DATA_PARENT.GAME_ID)
|
|
|
+ .select(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_ID)
|
|
|
+ .select(ADS_ROLE_AMOUNT_DATA_PARENT.GS_START_TIME)
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_NAME).as(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_NAME.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.SERVER_ID).as(ADS_ROLE_AMOUNT_DATA_PARENT.SERVER_ID.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.PARENT_GAME_ID).as(ADS_ROLE_AMOUNT_DATA_PARENT.PARENT_GAME_ID.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.ASSOCIATION_USER_ID).as(ADS_ROLE_AMOUNT_DATA_PARENT.ASSOCIATION_USER_ID.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_LEVEL).as(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_LEVEL.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_VIP).as(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_VIP.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.COMBAT_NUM).as(ADS_ROLE_AMOUNT_DATA_PARENT.COMBAT_NUM.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.COUNTRY).as(ADS_ROLE_AMOUNT_DATA_PARENT.COUNTRY.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_TIME).as(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_TIME.getName()))
|
|
|
+ .select(dateDiff(currentDate(), max(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_TIME)).as("role_create_day_diff"))
|
|
|
+ .select(dateDiff(currentDate(), max(ADS_ROLE_AMOUNT_DATA_PARENT.ACTIVE_TIME)).as("role_active_day_diff"))
|
|
|
+ .select(dateDiff(currentDate(), max(ADS_ROLE_AMOUNT_DATA_PARENT.LAST_ORDER_TIME)).as("last_order_day_diff"))
|
|
|
+ .select(dateDiff(max(ADS_ROLE_AMOUNT_DATA_PARENT.LAST_ORDER_TIME), max(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_TIME)).as("role_create_pay_day_diff"))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.FIRST_AMOUNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.FIRST_AMOUNT.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_HOUR_AMOUNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_HOUR_AMOUNT.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.LAST_AMOUNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.LAST_AMOUNT.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.LAST_ORDER_TIME).as(ADS_ROLE_AMOUNT_DATA_PARENT.LAST_ORDER_TIME.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.PRODUCT_NAME).as(ADS_ROLE_AMOUNT_DATA_PARENT.PRODUCT_NAME.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.TOTAL_AMOUNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.TOTAL_AMOUNT.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.TOTAL_CNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.TOTAL_CNT.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.ACTIVE_TIME).as(ADS_ROLE_AMOUNT_DATA_PARENT.ACTIVE_TIME.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.APP_AMOUNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.APP_AMOUNT.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.PROPORTION).as(ADS_ROLE_AMOUNT_DATA_PARENT.PROPORTION.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.CONCAT_GAME).as(ADS_ROLE_AMOUNT_DATA_PARENT.CONCAT_GAME.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.GS_AMOUNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.GS_AMOUNT.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.GS_COUNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.GS_COUNT.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.GS_END_TIME).as(ADS_ROLE_AMOUNT_DATA_PARENT.GS_END_TIME.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.SOURCE_SERVER_ID).as(ADS_ROLE_AMOUNT_DATA_PARENT.SOURCE_SERVER_ID.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.END_SERVER_ID).as(ADS_ROLE_AMOUNT_DATA_PARENT.END_SERVER_ID.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.SUPER_GAME_ID).as(ADS_ROLE_AMOUNT_DATA_PARENT.SUPER_GAME_ID.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.GS_ID_SERVER).as(ADS_ROLE_AMOUNT_DATA_PARENT.GS_ID_SERVER.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.SERVER_AMOUNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.SERVER_AMOUNT.getName()))
|
|
|
+ .select(max(ADS_ROLE_AMOUNT_DATA_PARENT.SERVER_COUNT).as(ADS_ROLE_AMOUNT_DATA_PARENT.SERVER_COUNT.getName()))
|
|
|
+ .from(ADS_ROLE_AMOUNT_DATA_PARENT)
|
|
|
+ .ge(AdsRoleAmountDataParent::getRoleTime, null == dto.getRoleCreateDayBegin() ? null : LocalDateTime.of(dto.getRoleCreateDayBegin(), LocalTime.MIDNIGHT), null != dto.getRoleCreateDayBegin())
|
|
|
+ .le(AdsRoleAmountDataParent::getRoleTime, null == dto.getRoleCreateDayEnd() ? null : LocalDateTime.of(dto.getRoleCreateDayEnd(), LocalTime.MAX), null != dto.getRoleCreateDayEnd())
|
|
|
+ .in(AdsRoleAmountDataParent::getGsId, dto.getGsIdList(), CollectionUtils.isNotEmpty(dto.getGsIdList()))
|
|
|
+ .eq(AdsRoleAmountDataParent::getParentGameId, dto.getParentGameId(), null != dto.getParentGameId())
|
|
|
+ .like(AdsRoleAmountDataParent::getRoleName, dto.getRoleName(), StringUtils.isNotBlank(dto.getRoleName()))
|
|
|
+ .eq(AdsRoleAmountDataParent::getSuperGameId, dto.getSuperGameId(), null != dto.getSuperGameId())
|
|
|
+ .in(AdsRoleAmountDataParent::getEndServerId, dto.getServerIdList(), CollectionUtils.isNotEmpty(dto.getServerIdList()))
|
|
|
+ .ge(AdsRoleAmountDataParent::getGsStartTime, dto.getServeDayBegin(), null != dto.getServeDayBegin())
|
|
|
+ .le(AdsRoleAmountDataParent::getGsEndTime, dto.getServeDayEnd(), null != dto.getServeDayEnd())
|
|
|
+ .ne(AdsRoleAmountDataParent::getGsId, 0)
|
|
|
+ .ge(AdsRoleAmountDataParent::getGsEndTime, LocalDate.now(), null != dto.getServeStatus() && 1 == dto.getServeStatus())
|
|
|
+ .le(AdsRoleAmountDataParent::getGsEndTime, LocalDate.now(), null != dto.getServeStatus() && 2 == dto.getServeStatus())
|
|
|
+ .groupBy(ADS_ROLE_AMOUNT_DATA_PARENT.GAME_ID)
|
|
|
+ .groupBy(ADS_ROLE_AMOUNT_DATA_PARENT.GS_ID)
|
|
|
+ .groupBy(ADS_ROLE_AMOUNT_DATA_PARENT.GS_START_TIME)
|
|
|
+ .groupBy(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_ID)
|
|
|
+ .orderBy(dto.getSortFiled(), dto.getSortAsc());
|
|
|
+ }
|
|
|
+
|
|
|
+ private static QueryWrapper getRoleRemoveGameWrapper(RoleRemoveGameMonitorDTO dto) {
|
|
|
return QueryWrapper.create()
|
|
|
.select(ADS_ROLE_AMOUNT_DATA_PARENT.GS_ID)
|
|
|
.select(ADS_ROLE_AMOUNT_DATA_PARENT.GAME_ID)
|
|
@@ -199,7 +297,7 @@ public class AdsRoleAmountDataParentServiceImpl extends ServiceImpl<AdsRoleAmoun
|
|
|
.groupBy(ADS_ROLE_AMOUNT_DATA_PARENT.GS_ID)
|
|
|
.groupBy(ADS_ROLE_AMOUNT_DATA_PARENT.GS_START_TIME)
|
|
|
.groupBy(ADS_ROLE_AMOUNT_DATA_PARENT.ROLE_ID)
|
|
|
- .having(QueryCondition.createEmpty().and("system_remove_game_status = ?", 0))
|
|
|
+ .having(QueryCondition.createEmpty().and("system_remove_game_status = ?", 1))
|
|
|
.orderBy(dto.getSortFiled(), dto.getSortAsc());
|
|
|
}
|
|
|
|