From f6d62430f42958a7466d9fb31dd65c8a23bf29eb Mon Sep 17 00:00:00 2001 From: khalil Date: Mon, 18 Nov 2024 21:13:13 +0800 Subject: [PATCH] =?UTF-8?q?lucky24-=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1-?= =?UTF-8?q?=E9=9A=94=E5=A4=A9=E7=BB=9F=E8=AE=A1=E5=89=8D=E5=A4=A9=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lucky/Lucky24PoolAdminService.java | 26 +++---- .../lucky/Lucky24RecordAdminController.java | 16 ++-- .../luckybag/Lucky24PersonalStat.java} | 6 +- .../luckybag/Lucky24PlatformStat.java} | 6 +- .../lucky/Lucky24RecordMapper.java | 12 +-- .../lucky/Lucky24StatMapper.java | 30 +++++++ .../service/lucky/Lucky24RecordService.java | 19 ++++- .../sqlmappers/Lucky24RecordMapper.xml | 36 --------- .../sqlmappers/Lucky24StatMapper.xml | 78 +++++++++++++++++++ .../scheduler/task/luckyBag/Lucky24Task.java | 5 +- 10 files changed, 156 insertions(+), 78 deletions(-) rename accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/{vo/luckybag/Lucky24PersonalStatVo.java => model/luckybag/Lucky24PersonalStat.java} (85%) rename accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/{vo/luckybag/Lucky24PlatformStatVo.java => model/luckybag/Lucky24PlatformStat.java} (84%) create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24StatMapper.java create mode 100644 accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24StatMapper.xml diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/lucky/Lucky24PoolAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/lucky/Lucky24PoolAdminService.java index 7def0d967..31786044c 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/lucky/Lucky24PoolAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/lucky/Lucky24PoolAdminService.java @@ -3,12 +3,12 @@ package com.accompany.admin.service.lucky; import cn.hippo4j.common.toolkit.CollectionUtil; import com.accompany.admin.service.system.SysConfAdminService; import com.accompany.admin.vo.Lucky24ConfigAdminVo; -import com.accompany.business.mybatismapper.lucky.Lucky24RecordMapper; -import com.accompany.business.vo.luckybag.Lucky24PersonalStatVo; -import com.accompany.business.vo.luckybag.Lucky24PlatformStatVo; +import com.accompany.business.model.luckybag.Lucky24PersonalStat; +import com.accompany.business.model.luckybag.Lucky24PlatformStat; import com.accompany.business.dto.lucky.Lucky24GiftConfig; 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.Lucky24GiftSendService; import com.accompany.business.service.lucky.Lucky24PoolService; import com.accompany.business.service.lucky.Lucky24StockService; @@ -46,8 +46,6 @@ public class Lucky24PoolAdminService { @Autowired private Lucky24StockService stockService; @Autowired - private Lucky24RecordMapper recordMapper; - @Autowired private UsersService usersService; @Autowired private SysConfAdminService sysConfAdminService; @@ -55,6 +53,8 @@ public class Lucky24PoolAdminService { private PartitionInfoService partitionInfoService; @Autowired private Lucky24PoolService poolService; + @Autowired + private Lucky24StatMapper statMapper; public List listPoolByType(Integer type) { return mapper.selectList(Wrappers.lambdaQuery().eq(Lucky24Pool::getType, type).orderByDesc(Lucky24Pool::getExpect)); @@ -149,7 +149,7 @@ public class Lucky24PoolAdminService { sysConfAdminService.saveOrUpdate(sysConf); } - public List listPlatform(Integer partitionId, String startDate, String endDate) { + public List listPlatform(Integer partitionId, String startDate, String endDate) { PartitionInfo partitionInfo = partitionInfoService.getById(partitionId); Date startTime = DateTimeUtil.getBeginTimeOfDay(DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN)); ZonedDateTime zonedStartTime = startTime.toInstant().atZone(ZoneId.of(partitionInfo.getZoneId())); @@ -159,17 +159,17 @@ public class Lucky24PoolAdminService { Date endTime = DateTimeUtil.getEndTimeOfDay(DateTimeUtil.convertStrToDate(endDate, DateTimeUtil.DEFAULT_DATE_PATTERN)); ZonedDateTime zonedEndTime = endTime.toInstant().atZone(ZoneId.of(partitionInfo.getZoneId())); Date systemEndTime = Date.from(zonedEndTime.withZoneSameLocal(ZoneId.systemDefault()).toInstant()); - List list = recordMapper.listPlatform(partitionId, systemStartTime, systemEndTime, zoneIdHour); - for (Lucky24PlatformStatVo vo: list) { + List list = statMapper.listPlatform(partitionId, systemStartTime, systemEndTime, zoneIdHour); + for (Lucky24PlatformStat vo: list) { vo.setStock(stockService.addStock(partitionId, BigDecimal.ZERO)); } return list; } - public Page pagePersonal(Integer partitionId, Long erbanNo, - String startDate, String endDate, - int pageNo, int pageSize) { - Page page = new Page<>(pageNo, pageSize); + public Page pagePersonal(Integer partitionId, Long erbanNo, + String startDate, String endDate, + int pageNo, int pageSize) { + Page page = new Page<>(pageNo, pageSize); Long uid = null; if (null != erbanNo){ @@ -189,7 +189,7 @@ public class Lucky24PoolAdminService { Date endTime = DateTimeUtil.getEndTimeOfDay(DateTimeUtil.convertStrToDate(endDate, DateTimeUtil.DEFAULT_DATE_PATTERN)); ZonedDateTime zonedEndTime = endTime.toInstant().atZone(ZoneId.of(partitionInfo.getZoneId())); Date systemEndTime = Date.from(zonedEndTime.withZoneSameLocal(ZoneId.systemDefault()).toInstant()); - recordMapper.pagePersonal(page, partitionId, uid, systemStartTime, systemEndTime, zoneIdHour); + statMapper.pagePersonal(page, partitionId, uid, systemStartTime, systemEndTime, zoneIdHour); return page; } 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 ca5e54715..d3134e92e 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 @@ -1,8 +1,8 @@ package com.accompany.admin.controller.lucky; import com.accompany.admin.service.lucky.Lucky24PoolAdminService; -import com.accompany.business.vo.luckybag.Lucky24PersonalStatVo; -import com.accompany.business.vo.luckybag.Lucky24PlatformStatVo; +import com.accompany.business.model.luckybag.Lucky24PersonalStat; +import com.accompany.business.model.luckybag.Lucky24PlatformStat; import com.accompany.common.result.BusiResult; import com.accompany.common.result.PageResult; import com.accompany.common.status.BusiStatus; @@ -35,11 +35,11 @@ public class Lucky24RecordAdminController { @ApiImplicitParam(value = "endDate", name = "结束日期", required = true), }) @GetMapping("/platform") - public BusiResult> platform(Integer partitionId, String startDate, String endDate) { + public BusiResult> platform(Integer partitionId, String startDate, String endDate) { if (null == partitionId || !StringUtils.hasText(startDate) || !StringUtils.hasText(endDate)) { throw new ServiceException(BusiStatus.PARAMERROR); } - List platformStatList = service.listPlatform(partitionId, startDate, endDate); + List platformStatList = service.listPlatform(partitionId, startDate, endDate); return BusiResult.success(platformStatList); } @@ -53,13 +53,13 @@ public class Lucky24RecordAdminController { @ApiImplicitParam(value = "pageSize", name = "页长", required = true), }) @GetMapping("/personal") - public BusiResult> personal(Integer partitionId, Long erbanNo, - String startDate, String endDate, - int pageNo, int pageSize) { + public BusiResult> personal(Integer partitionId, Long erbanNo, + String startDate, String endDate, + int pageNo, int pageSize) { if (null == partitionId || !StringUtils.hasText(startDate) || !StringUtils.hasText(endDate)) { throw new ServiceException(BusiStatus.PARAMERROR); } - Page page = service.pagePersonal(partitionId, erbanNo, startDate, endDate, pageNo, pageSize); + Page page = service.pagePersonal(partitionId, erbanNo, startDate, endDate, pageNo, pageSize); return BusiResult.success(new PageResult<>(page)); } diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/luckybag/Lucky24PersonalStatVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/luckybag/Lucky24PersonalStat.java similarity index 85% rename from accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/luckybag/Lucky24PersonalStatVo.java rename to accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/luckybag/Lucky24PersonalStat.java index a052ef9e7..2be7a6e05 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/luckybag/Lucky24PersonalStatVo.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/luckybag/Lucky24PersonalStat.java @@ -1,4 +1,4 @@ -package com.accompany.business.vo.luckybag; +package com.accompany.business.model.luckybag; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -8,10 +8,12 @@ import java.math.BigDecimal; @Data @ApiModel -public class Lucky24PersonalStatVo { +public class Lucky24PersonalStat { @ApiModelProperty("日期") private String date; + @ApiModelProperty("分区id") + private Integer partitionId; @ApiModelProperty("uid") private Long uid; @ApiModelProperty("erbanNO") diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/luckybag/Lucky24PlatformStatVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/luckybag/Lucky24PlatformStat.java similarity index 84% rename from accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/luckybag/Lucky24PlatformStatVo.java rename to accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/luckybag/Lucky24PlatformStat.java index 2879b37b9..4ab2d854d 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/luckybag/Lucky24PlatformStatVo.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/luckybag/Lucky24PlatformStat.java @@ -1,4 +1,4 @@ -package com.accompany.business.vo.luckybag; +package com.accompany.business.model.luckybag; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -8,10 +8,12 @@ import java.math.BigDecimal; @Data @ApiModel -public class Lucky24PlatformStatVo { +public class Lucky24PlatformStat { @ApiModelProperty("日期") private String date; + @ApiModelProperty("分区id") + private Integer partitionId; @ApiModelProperty("送礼金币总额") private Long totalInput; @ApiModelProperty("送礼返币总额") diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24RecordMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24RecordMapper.java index ecdd3475e..da7305f77 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24RecordMapper.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24RecordMapper.java @@ -1,8 +1,8 @@ package com.accompany.business.mybatismapper.lucky; import com.accompany.business.model.lucky.Lucky24Record; -import com.accompany.business.vo.luckybag.Lucky24PersonalStatVo; -import com.accompany.business.vo.luckybag.Lucky24PlatformStatVo; +import com.accompany.business.model.luckybag.Lucky24PersonalStat; +import com.accompany.business.model.luckybag.Lucky24PlatformStat; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; @@ -12,12 +12,4 @@ import java.util.List; public interface Lucky24RecordMapper extends BaseMapper { - List listPlatform(@Param("partitionId") Integer partitionId, @Param("startTime") Date startTime, @Param("endTime") Date endTime, - @Param("zoneIdHour") long zoneIdHour); - - Page pagePersonal(Page page, - @Param("partitionId") Integer partitionId, @Param("uid") Long uid, - @Param("startTime") Date startTime, @Param("endTime") Date endTime, - @Param("zoneIdHour") long zoneIdHour); - } 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 new file mode 100644 index 000000000..46f52e7c0 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/lucky/Lucky24StatMapper.java @@ -0,0 +1,30 @@ +package com.accompany.business.mybatismapper.lucky; + +import com.accompany.business.model.luckybag.Lucky24PersonalStat; +import com.accompany.business.model.luckybag.Lucky24PlatformStat; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface Lucky24StatMapper { + + int savePlatform(@Param("list") List list); + + int savePersonal(@Param("list") List list); + + List listPlatform(@Param("partitionId") Integer partitionId, @Param("startTime") Date startTime, @Param("endTime") Date endTime, + @Param("zoneIdHour") long zoneIdHour); + + List listPersonal(@Param("partitionId") Integer partitionId, + @Param("startTime") Date startTime, @Param("endTime") Date endTime, + @Param("zoneIdHour") long zoneIdHour); + + Page pagePersonal(Page page, + @Param("partitionId") Integer partitionId, @Param("uid") Long uid, + @Param("startTime") Date startTime, @Param("endTime") Date endTime, + @Param("zoneIdHour") long zoneIdHour); + +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24RecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24RecordService.java index a8c63d72b..f2a24bb93 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24RecordService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24RecordService.java @@ -3,8 +3,11 @@ package com.accompany.business.service.lucky; import com.accompany.business.model.Gift; import com.accompany.business.model.lucky.Lucky24Record; import com.accompany.business.mybatismapper.lucky.Lucky24RecordMapper; -import com.accompany.business.vo.luckybag.Lucky24PlatformStatVo; +import com.accompany.business.model.luckybag.Lucky24PersonalStat; +import com.accompany.business.model.luckybag.Lucky24PlatformStat; +import com.accompany.business.mybatismapper.lucky.Lucky24StatMapper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -18,6 +21,8 @@ public class Lucky24RecordService { @Autowired private Lucky24RecordMapper mapper; + @Autowired + private Lucky24StatMapper statMapper; @Async public void saveRecord(long senderUid, int partitionId, Gift gift, int giftNum, long receiverUid, int poolId, @@ -38,7 +43,15 @@ public class Lucky24RecordService { mapper.insert(record); } - public void statDate(Integer partitionId, String dateStr, Date startTime, Date endTime, long zoneIdHour) { - List list = mapper.listPlatform(partitionId, startTime, endTime, zoneIdHour); + public void statDate(Integer partitionId, Date startTime, Date endTime, long zoneIdHour) { + List platformList = statMapper.listPlatform(partitionId, startTime, endTime, zoneIdHour); + if (!CollectionUtils.isEmpty(platformList)) { + statMapper.savePlatform(platformList); + } + + List personalList = statMapper.listPersonal(partitionId, startTime, endTime, zoneIdHour); + if (!CollectionUtils.isEmpty(personalList)) { + statMapper.savePersonal(personalList); + } } } diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24RecordMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24RecordMapper.xml index abe395dc5..f4d1f7360 100644 --- a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24RecordMapper.xml +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24RecordMapper.xml @@ -2,40 +2,4 @@ - - - - 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 new file mode 100644 index 000000000..6c7daa8a9 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/Lucky24StatMapper.xml @@ -0,0 +1,78 @@ + + + + + + insert into lucky_24_record_platform_stat VALUES(#{item.date}, #{item.partitionId}, #{item.totalInput}, #{item.totalOutput}, #{item.productionRatio}, + #{item.num}, #{item.count}, #{item.winNum}) + ON DUPLICATE KEY UPDATE total_input = #{item.totalInput}, total_output = #{item.totalOutpur}, production_ratio = #{item.productionRatio}, + num = #{item.num}, `count` = #{item.count}, win_num = #{item.winNum} + + + + + + insert into lucky_24_record_personal_stat VALUES(#{item.date}, #{item.partitionId}, #{item.uid}, #{item.totalInput}, #{item.totalOutput}, #{item.productionRatio}, + #{item.num}, #{item.count}, #{item.winNum}) + ON DUPLICATE KEY UPDATE total_input = #{item.totalInput}, total_output = #{item.totalOutpur}, production_ratio = #{item.productionRatio}, + num = #{item.num}, `count` = #{item.count}, win_num = #{item.winNum} + + + + + + + + + + diff --git a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/luckyBag/Lucky24Task.java b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/luckyBag/Lucky24Task.java index e4b315b85..b79a7bc9c 100644 --- a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/luckyBag/Lucky24Task.java +++ b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/luckyBag/Lucky24Task.java @@ -13,7 +13,6 @@ import javax.annotation.Resource; import java.time.Duration; import java.time.ZoneId; import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.List; import java.util.concurrent.ThreadPoolExecutor; @@ -40,8 +39,6 @@ public class Lucky24Task { continue; } bizExecutor.execute(() -> { - String dateStr = zdt.format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN)); - // 获取当天的第一秒 ZonedDateTime startOfDay = zdt.withHour(0) .withMinute(0) @@ -58,7 +55,7 @@ public class Lucky24Task { .withNano(999999999); Date endTime = DateTimeUtil.converLocalDateTimeToDate(endOfDay.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime()); - service.statDate(partitionInfo.getId(), dateStr, startTime, endTime, zoneIdHour); + service.statDate(partitionInfo.getId(), startTime, endTime, zoneIdHour); }); } }