diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/lucky/Lucky24RecordAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/lucky/Lucky24RecordAdminService.java index 8e11ff940..075de67e1 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/lucky/Lucky24RecordAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/lucky/Lucky24RecordAdminService.java @@ -6,11 +6,13 @@ import com.accompany.admin.vo.luckybag.Lucky24PersonalStatVo; import com.accompany.admin.vo.luckybag.Lucky24PlatformStatVo; import com.accompany.admin.vo.luckybag.Lucky24RecordAdminVo; import com.accompany.business.constant.Lucky24PoolTypeEnum; +import com.accompany.business.dto.lucky.Lucky24GiftConfig; import com.accompany.business.model.Gift; import com.accompany.business.model.lucky.Lucky24Pool; import com.accompany.business.mybatismapper.lucky.Lucky24PoolMapper; import com.accompany.business.mybatismapper.lucky.Lucky24StatMapper; import com.accompany.business.service.gift.GiftService; +import com.accompany.business.service.gift.Lucky24GiftSendService; import com.accompany.business.service.user.UsersService; import com.accompany.common.result.PageResult; import com.accompany.common.status.BusiStatus; @@ -70,6 +72,8 @@ public class Lucky24RecordAdminService { private Lucky24PoolMapper poolMapper; @Autowired private GiftService giftService; + @Autowired + private Lucky24GiftSendService lucky24GiftSendService; private final Map> fieldExtractors = Map.of( "totalInput", Lucky24PersonalStat::getTotalInput, @@ -165,25 +169,39 @@ public class Lucky24RecordAdminService { } @SneakyThrows - public Lucky24PersonalStatVo getPersonal(Integer partitionId, Long erbanNo, String date, String userRechargeLevel, Integer poolType, + public Lucky24PersonalStatVo getPersonal(Integer partitionId, List followUidList, Long erbanNo, String date, String userRechargeLevel, Integer poolType, String sortCol, String sortOrder, int pageNo, int pageSize) { Page page = new Page<>(pageNo, pageSize); Long uid = null; - if (null != erbanNo){ + List uidList = new ArrayList<>(); + + if (!CollectionUtils.isEmpty(followUidList)){ + List followUsers = usersService.listUsersFromDbInUids(followUidList); + + List partitionFollowUidList = followUsers.stream().filter(u->u.getPartitionId().equals(partitionId)).map(Users::getUid).toList(); + if (CollectionUtils.isEmpty(partitionFollowUidList)){ + return new Lucky24PersonalStatVo(new PageResult<>(page)); + } + + uidList.addAll(followUsers.stream().filter(u->u.getPartitionId().equals(partitionId)).map(Users::getUid).toList()); + + } else if (null != erbanNo){ Users u = usersService.getUserByErbanNo(erbanNo); if (null == u || !u.getPartitionId().equals(partitionId)){ return new Lucky24PersonalStatVo(new PageResult<>(page)); } + uid = u.getUid(); + uidList.add(u.getUid()); } PartitionInfo partitionInfo = partitionInfoService.getById(partitionId); String zonedDateStr = DateTimeUtil.getZonedTodayStr(partitionInfo.getZoneId()); if (StringUtils.hasText(date)){ - List list = zonedDateStr.equals(date)? listPersonal(partitionId, partitionInfo.getZoneId(), uid, date, userRechargeLevel, poolType): - statMapper.listPersonalStat(partitionId, uid, userRechargeLevel, poolType, date, date); + List list = zonedDateStr.equals(date)? listPersonal(partitionId, partitionInfo.getZoneId(), uidList, date, userRechargeLevel, poolType): + statMapper.listPersonalStat(partitionId, uidList, userRechargeLevel, poolType, date, date); if (CollectionUtils.isEmpty(list)) { return new Lucky24PersonalStatVo(new PageResult<>(page)); @@ -228,7 +246,8 @@ public class Lucky24RecordAdminService { return new Lucky24PersonalStatVo(totalInput, totalOutput, totalProductionRatio, new PageResult<>(page)); } - List uidList = subList.stream().map(Lucky24PersonalStat::getUid).collect(Collectors.toList()); + uidList = subList.stream().map(Lucky24PersonalStat::getUid).collect(Collectors.toList()); + Map usersMap = usersService.getUsersMapByUids(uidList); Map userRechargeLevelMap = userRechargeLevelService.mapLevelByUid(uidList); for (Lucky24PersonalStat stat: subList) { @@ -265,10 +284,10 @@ public class Lucky24RecordAdminService { CountDownLatch cdl = new CountDownLatch(2); - Long finalUid = uid; + List finalUidList = uidList; bizExecutor.execute(()->{ try { - List list = listPersonal(partitionId, partitionInfo.getZoneId(), finalUid, zonedDateStr, userRechargeLevel, poolType); + List list = listPersonal(partitionId, partitionInfo.getZoneId(), finalUidList, zonedDateStr, userRechargeLevel, poolType); for (Lucky24PersonalStat stat: list) { statMap.put(stat.getDate(), stat); @@ -290,7 +309,7 @@ public class Lucky24RecordAdminService { try { String historyStartDate = dateStrList.get(0); String historyEndDate = dateStrList.get(dateStrList.size() - 1); - List statList = statMapper.listPersonalStat(partitionId, finalUid, userRechargeLevel, poolType, historyStartDate, historyEndDate); + List statList = statMapper.listPersonalStat(partitionId, finalUidList, userRechargeLevel, poolType, historyStartDate, historyEndDate); if (!CollectionUtils.isEmpty(statList)) { for (Lucky24PersonalStat stat: statList) { statMap.put(stat.getDate(), stat); @@ -324,6 +343,7 @@ public class Lucky24RecordAdminService { int endIndex = pageNo <= 0 || pageSize <= 0? dateStrList.size(): Math.min(startIndex + pageSize, dateStrList.size()); page.setTotal(dateStrList.size()); + Long finalUid = uid; List subDateStrList = dateStrList.subList(startIndex, endIndex); page.setRecords(subDateStrList.parallelStream().map(dateStr->{ Lucky24PersonalStat stat = statMap.get(dateStr); @@ -339,7 +359,22 @@ public class Lucky24RecordAdminService { return new Lucky24PersonalStatVo(totalInput, totalOutput, totalProductionRatio, new PageResult<>(page)); } - private List listPersonal(int partitionId, String zonedId, Long uid, String date, String userRechargeLevel, Integer poolType) { + @SneakyThrows + public Lucky24PersonalStatVo getFollowUserPersonal(Integer partitionId, String date, String userRechargeLevel, Integer poolType, + String sortCol, String sortOrder, + int pageNo, int pageSize) { + Lucky24GiftConfig config = lucky24GiftSendService.getConfig(); + List followUidList= config.getFollowUidList(); + if (CollectionUtils.isEmpty(followUidList)){ + return new Lucky24PersonalStatVo(new PageResult<>(new Page<>(pageNo, pageSize))); + } + + List uidList = config.getFollowUidList().stream().sorted().toList(); + + return getPersonal(partitionId, uidList, null, date, userRechargeLevel, poolType, sortCol, sortOrder, pageNo, pageSize); + } + + private List listPersonal(int partitionId, String zonedId, List uidList, String date, String userRechargeLevel, Integer poolType) { List poolTypeList = null == poolType ? Arrays.stream(Lucky24PoolTypeEnum.values()).map(Lucky24PoolTypeEnum::getType).sorted().toList(): Collections.singletonList(poolType); @@ -351,9 +386,10 @@ public class Lucky24RecordAdminService { Date endTime = DateTimeUtil.getEndTimeOfDay(DateTimeUtil.convertStrToDate(date, DateTimeUtil.DEFAULT_DATE_PATTERN)); ZonedDateTime zonedEndTime = endTime.toInstant().atZone(ZoneId.systemDefault()); Date systemEndTime = Date.from(zonedEndTime.withZoneSameLocal(zoneId).toInstant()); + return null == poolType? - recordMapper.listPersonal(date, partitionId, poolTypeList, systemStartTime, systemEndTime, uid, userRechargeLevel): - recordMapper.listPersonalByPoolType(date, partitionId, poolTypeList, systemStartTime, systemEndTime, uid, userRechargeLevel); + recordMapper.listPersonal(date, partitionId, poolTypeList, systemStartTime, systemEndTime, uidList, userRechargeLevel): + recordMapper.listPersonalByPoolType(date, partitionId, poolTypeList, systemStartTime, systemEndTime, uidList, userRechargeLevel); } public Page pageRecord(Long uid, String date, Integer poolType, int pageNo, int pageSize) { @@ -465,11 +501,13 @@ public class Lucky24RecordAdminService { Long uid = u.getUid(); String userRechargeLevel = userRechargeLevelService.getLevelByUid(uid); + List uidList = Collections.singletonList(uid); + PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(u.getPartitionId()); String zonedDateStr = DateTimeUtil.getZonedTodayStr(partitionEnum.getZoneId()); if (startDate.equals(endDate)){ - List list = zonedDateStr.equals(endDate)? listPersonal(partitionEnum.getId(), partitionEnum.getZoneId(), uid, zonedDateStr, null, null): - statMapper.listPersonalStat(partitionEnum.getId(), uid, null, null, startDate, endDate); + List list = zonedDateStr.equals(endDate)? listPersonal(partitionEnum.getId(), partitionEnum.getZoneId(), uidList, zonedDateStr, null, null): + statMapper.listPersonalStat(partitionEnum.getId(), uidList, null, null, startDate, endDate); if (CollectionUtils.isEmpty(list)) { return Collections.emptyList(); @@ -486,19 +524,11 @@ public class Lucky24RecordAdminService { } if (!endDate.equals(zonedDateStr)){ - List statList = statMapper.listPersonalStat(partitionEnum.getId(), uid, null, null, startDate, endDate); + List statList = statMapper.listPersonalStat(partitionEnum.getId(), uidList, null, null, startDate, endDate); if (CollectionUtils.isEmpty(statList)){ return Collections.emptyList(); } -// List voList = new ArrayList<>(statList.stream().map(stat -> { -// BigDecimal receiverReward = BigDecimal.valueOf(stat.getTotalInput()).multiply(receiverRewardRatio); -// BigDecimal production = BigDecimal.valueOf(stat.getTotalInput()).multiply(inputRatio).subtract(BigDecimal.valueOf(stat.getTotalInput())); -// BigDecimal productionRatio = stat.getTotalOutput() > 0L ?(receiverReward.add(BigDecimal.valueOf(stat.getTotalInput()))) -// .divide(BigDecimal.valueOf(stat.getTotalOutput()), 4, RoundingMode.HALF_UP): BigDecimal.ZERO; -// return new Lucky24OperatorPersonalStatVo(stat.getDate(), partitionEnum.getId(), uid, erbanNo, userRechargeLevel, stat.getTotalInput(), stat.getTotalOutput(), receiverReward.longValue(), production, productionRatio); -// }).sorted(Comparator.comparing(Lucky24OperatorPersonalStatVo::getDate).reversed()).toList()); - long totalInput = statList.stream().mapToLong(Lucky24PersonalStat::getTotalInput).sum(); long totalOutput = statList.stream().mapToLong(Lucky24PersonalStat::getTotalOutput).sum(); BigDecimal receiverReward = BigDecimal.valueOf(totalInput).multiply(receiverRewardRatio); @@ -518,7 +548,7 @@ public class Lucky24RecordAdminService { bizExecutor.execute(()->{ try { - List list = listPersonal(partitionEnum.getId(), partitionEnum.getZoneId(), uid, zonedDateStr, null, null); + List list = listPersonal(partitionEnum.getId(), partitionEnum.getZoneId(), uidList, zonedDateStr, null, null); for (Lucky24PersonalStat stat: list) { statMap.put(stat.getDate(), stat); } @@ -533,7 +563,7 @@ public class Lucky24RecordAdminService { try { String historyStartDate = dateStrList.get(0); String historyEndDate = dateStrList.get(dateStrList.size() - 1); - List statList = statMapper.listPersonalStat(partitionEnum.getId(), uid, null, null, historyStartDate, historyEndDate); + List statList = statMapper.listPersonalStat(partitionEnum.getId(), uidList, null, null, historyStartDate, historyEndDate); if (CollectionUtils.isEmpty(statList)){ return; } @@ -551,20 +581,6 @@ public class Lucky24RecordAdminService { dateStrList.add(endDate); -// List voList = new ArrayList<>(dateStrList.stream().map(dateStr -> { -// Lucky24PersonalStat stat = statMap.get(dateStr); -// if (null == stat){ -// return new Lucky24OperatorPersonalStatVo(dateStr, partitionEnum.getId(), uid, erbanNo, userRechargeLevel, -// BigDecimal.ZERO.longValue(), BigDecimal.ZERO.longValue(), BigDecimal.ZERO.longValue(), BigDecimal.ZERO, BigDecimal.ZERO); -// } -// -// BigDecimal receiverReward = BigDecimal.valueOf(stat.getTotalInput()).multiply(receiverRewardRatio); -// BigDecimal production = BigDecimal.valueOf(stat.getTotalInput()).multiply(inputRatio).subtract(BigDecimal.valueOf(stat.getTotalInput())); -// BigDecimal productionRatio = stat.getTotalOutput() > 0L? -// (receiverReward.add(BigDecimal.valueOf(stat.getTotalInput()))).divide(BigDecimal.valueOf(stat.getTotalOutput()), 4, RoundingMode.HALF_UP): BigDecimal.ZERO; -// return new Lucky24OperatorPersonalStatVo(stat.getDate(), partitionEnum.getId(), uid, erbanNo, userRechargeLevel, stat.getTotalInput(), stat.getTotalOutput(), receiverReward.longValue(), production, productionRatio); -// }).sorted(Comparator.comparing(Lucky24OperatorPersonalStatVo::getDate).reversed()).toList()); - long totalInput = dateStrList.stream().filter(statMap::containsKey).map(statMap::get).mapToLong(Lucky24PersonalStat::getTotalInput).sum(); long totalOutput = dateStrList.stream().filter(statMap::containsKey).map(statMap::get).mapToLong(Lucky24PersonalStat::getTotalOutput).sum(); BigDecimal receiverReward = BigDecimal.valueOf(totalInput).multiply(receiverRewardRatio); diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/lucky/Lucky24FollowUserRecordAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/lucky/Lucky24FollowUserRecordAdminController.java new file mode 100644 index 000000000..5d13d0751 --- /dev/null +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/lucky/Lucky24FollowUserRecordAdminController.java @@ -0,0 +1,86 @@ +package com.accompany.admin.controller.lucky; + +import com.accompany.admin.controller.BaseController; +import com.accompany.admin.service.lucky.Lucky24RecordAdminService; +import com.accompany.admin.vo.luckybag.Lucky24PersonalStatVo; +import com.accompany.common.result.BusiResult; +import com.accompany.common.status.BusiStatus; +import com.accompany.core.exception.ServiceException; +import com.accompany.sharding.vo.Lucky24PersonalStat; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.support.ExcelTypeEnum; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.SneakyThrows; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; + +@Api(tags = "幸运24") +@RestController +@RequestMapping("/admin/lucky24/followUserRecord") +public class Lucky24FollowUserRecordAdminController extends BaseController { + + @Autowired + private Lucky24RecordAdminService service; + + @ApiOperation("个人数据") + @ApiImplicitParams({ + @ApiImplicitParam(value = "partitionId", name = "分区ID", required = true), + @ApiImplicitParam(value = "erbanNo", name = "用户ID"), + @ApiImplicitParam(value = "date", name = "开始日期", required = true), + @ApiImplicitParam(value = "userRechargeLevel", name = "用户充值等级", required = false), + @ApiImplicitParam(value = "poolType", name = "数组类型", required = true), + @ApiImplicitParam(value = "sortCol", name = "排序列", required = true), + @ApiImplicitParam(value = "sortOrder", name = "排序方式", required = true), + @ApiImplicitParam(value = "pageNo", name = "页号", required = true), + @ApiImplicitParam(value = "pageSize", name = "页长", required = true), + }) + @GetMapping("/personal") + public BusiResult personal(Integer partitionId, String date, Integer poolType, + String sortCol, String sortOrder, + int pageNo, int pageSize) { + if (null == partitionId || !StringUtils.hasText(date)) { + throw new ServiceException(BusiStatus.PARAMERROR); + } + Lucky24PersonalStatVo vo = service.getFollowUserPersonal(partitionId, date, null, poolType, sortCol, sortOrder, pageNo, pageSize); + return BusiResult.success(vo); + } + + @SneakyThrows + @ApiOperation("导出个人数据") + @ApiImplicitParams({ + @ApiImplicitParam(value = "partitionId", name = "分区ID", required = true), + @ApiImplicitParam(value = "erbanNo", name = "用户ID"), + @ApiImplicitParam(value = "date", name = "开始日期", required = true), + @ApiImplicitParam(value = "userRechargeLevel", name = "用户充值等级", required = false), + @ApiImplicitParam(value = "poolType", name = "数组类型", required = true), + @ApiImplicitParam(value = "sortCol", name = "排序列", required = true), + @ApiImplicitParam(value = "sortOrder", name = "排序方式", required = true) + }) + @GetMapping("/personal/export") + public void exportPersonal(HttpServletResponse response, + Integer partitionId, String date, Integer poolType, + String sortCol, String sortOrder) { + if (null == partitionId || !StringUtils.hasText(date)) { + throw new ServiceException(BusiStatus.PARAMERROR); + } + Lucky24PersonalStatVo vo = service.getFollowUserPersonal(partitionId, date, null, poolType, sortCol, sortOrder, 1, -1); + + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 + String excelName = URLEncoder.encode("幸运24关注用户个人数据", StandardCharsets.UTF_8); + response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue()); + EasyExcel.write(response.getOutputStream(), Lucky24PersonalStat.class).sheet("幸运24关注用户个人数据").doWrite(vo.getDataPage().getRows()); + } + +} diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/lucky/Lucky24RecordAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/lucky/Lucky24RecordAdminController.java index c3a0405e9..ae821fc4e 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/lucky/Lucky24RecordAdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/lucky/Lucky24RecordAdminController.java @@ -72,7 +72,7 @@ public class Lucky24RecordAdminController extends BaseController { if (null == partitionId || (null == erbanNo && !StringUtils.hasText(date))) { throw new ServiceException(BusiStatus.PARAMERROR); } - Lucky24PersonalStatVo vo = service.getPersonal(partitionId, erbanNo, date, userRechargeLevel, poolType, sortCol, sortOrder, pageNo, pageSize); + Lucky24PersonalStatVo vo = service.getPersonal(partitionId, null, erbanNo, date, userRechargeLevel, poolType, sortCol, sortOrder, pageNo, pageSize); return BusiResult.success(vo); } @@ -94,7 +94,7 @@ public class Lucky24RecordAdminController extends BaseController { if (null == partitionId || (null == erbanNo && !StringUtils.hasText(date))) { throw new ServiceException(BusiStatus.PARAMERROR); } - Lucky24PersonalStatVo vo = service.getPersonal(partitionId, erbanNo, date, userRechargeLevel, poolType, sortCol, sortOrder, 1, -1); + Lucky24PersonalStatVo vo = service.getPersonal(partitionId, null, erbanNo, date, userRechargeLevel, poolType, sortCol, sortOrder, 1, -1); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); diff --git a/accompany-base/accompany-sharding/accompany-sharding-service/src/main/java/com/accompany/sharding/mapper/Lucky24RecordMapper.java b/accompany-base/accompany-sharding/accompany-sharding-service/src/main/java/com/accompany/sharding/mapper/Lucky24RecordMapper.java index 9e8fad059..05c6d945e 100644 --- a/accompany-base/accompany-sharding/accompany-sharding-service/src/main/java/com/accompany/sharding/mapper/Lucky24RecordMapper.java +++ b/accompany-base/accompany-sharding/accompany-sharding-service/src/main/java/com/accompany/sharding/mapper/Lucky24RecordMapper.java @@ -37,11 +37,11 @@ public interface Lucky24RecordMapper extends BaseMapper { List listPersonal(@Param("zoneDate")String zoneDate, @Param("partitionId") Integer partitionId, @Param("poolTypeList")List poolTypeList, @Param("startTime") Date startTime, @Param("endTime") Date endTime, - @Param("uid") Long uid, @Param("userRechargeLevel") String userRechargeLevel); + @Param("uidList") List uidList, @Param("userRechargeLevel") String userRechargeLevel); List listPersonalByPoolType(@Param("zoneDate")String zoneDate, @Param("partitionId") Integer partitionId, @Param("poolTypeList")List poolTypeList, @Param("startTime") Date startTime, @Param("endTime") Date endTime, - @Param("uid") Long uid, @Param("userRechargeLevel") String userRechargeLevel); + @Param("uidList") List uidList, @Param("userRechargeLevel") String userRechargeLevel); } diff --git a/accompany-base/accompany-sharding/accompany-sharding-service/src/main/resources/sharding/sqlmappers/Lucky24RecordMapper.xml b/accompany-base/accompany-sharding/accompany-sharding-service/src/main/resources/sharding/sqlmappers/Lucky24RecordMapper.xml index 7b8cdd468..6bff3fa64 100644 --- a/accompany-base/accompany-sharding/accompany-sharding-service/src/main/resources/sharding/sqlmappers/Lucky24RecordMapper.xml +++ b/accompany-base/accompany-sharding/accompany-sharding-service/src/main/resources/sharding/sqlmappers/Lucky24RecordMapper.xml @@ -247,8 +247,8 @@ where r.partition_id = #{partitionId} and r.pool_type in #{poolType} and r.create_time between #{startTime} and #{endTime} - - and r.uid = #{uid} + + and r.uid in #{uid} group by r.uid @@ -274,8 +274,8 @@ where r.partition_id = #{partitionId} and r.pool_type in #{poolType} and r.create_time between #{startTime} and #{endTime} - - and r.uid = #{uid} + + and r.uid in #{uid} group by r.pool_type, r.uid diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24StatMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24StatMapper.java index e059b5abc..0ff9ad36e 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24StatMapper.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24StatMapper.java @@ -16,7 +16,7 @@ public interface Lucky24StatMapper { @Param("startDate") String startDate, @Param("endDate") String endDate); List listPersonalStat(@Param("partitionId") Integer partitionId, - @Param("uid") Long uid, @Param("userRechargeLevel") String userRechargeLevel, @Param("poolType") Integer poolType, + @Param("uidList") List uidList, @Param("userRechargeLevel") String userRechargeLevel, @Param("poolType") Integer poolType, @Param("startDate") String startDate, @Param("endDate") String endDate); } diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24StatMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24StatMapper.xml index ee6a17f0e..5ba62068e 100644 --- a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24StatMapper.xml +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24StatMapper.xml @@ -36,8 +36,8 @@ inner join user_recharge_level url on s.uid = url.uid where s.date between #{startDate} and #{endDate} and s.partition_id = #{partitionId} - - and s.uid = #{uid} + + and s.uid in #{uid} and s.pool_type = #{poolType}