diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/dailytask/DailyTaskAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/dailytask/DailyTaskAdminService.java new file mode 100644 index 000000000..ad12a96c6 --- /dev/null +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/dailytask/DailyTaskAdminService.java @@ -0,0 +1,51 @@ +package com.accompany.admin.service.dailytask; + +import com.accompany.business.model.dailytask.DailyTaskRecvCoinStat; +import com.accompany.business.service.dailytask.DailyTaskRecvCoinStatService; +import com.accompany.business.service.dailytask.DailyTaskStatService; +import com.accompany.business.vo.dailytask.DailyCoinRecvVo; +import com.accompany.common.result.PageResult; +import com.accompany.common.utils.DateTimeUtil; +import com.accompany.core.enumeration.PartitionEnum; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class DailyTaskAdminService { + + @Autowired + private DailyTaskRecvCoinStatService dailyTaskRecvCoinStatService; + @Autowired + private DailyTaskStatService dailyTaskStatService; + + public PageResult list(Integer pageNo, Integer pageSize, Integer partitionId, String startDate, String endDate) { + + IPage dailyTaskRecvCoinStatIPage = dailyTaskRecvCoinStatService.selectDailyCoinRecvStat(partitionId, startDate, endDate, pageNo, pageSize); + PageResult pageResult = new PageResult<>(); + List recvVoList = new ArrayList<>(); + pageResult.setRows(recvVoList); + pageResult.setTotal((int) dailyTaskRecvCoinStatIPage.getTotal()); + List records = dailyTaskRecvCoinStatIPage.getRecords(); + if (pageNo == 1) { + String todayDate = DateTimeUtil.convertWithZoneId(new Date(), + PartitionEnum.getByPartitionId(partitionId).getZoneId()).format(DateTimeUtil.dateFormatter); + records.add(dailyTaskStatService.statDailyCoinRecvStat(partitionId, todayDate)); + } + if (CollectionUtils.isEmpty(records)) { + return pageResult; + } + for (DailyTaskRecvCoinStat record : records) { + DailyCoinRecvVo dailyCoinRecvVo = new DailyCoinRecvVo(); + BeanUtils.copyProperties(record, dailyCoinRecvVo); + recvVoList.add(dailyCoinRecvVo); + } + return pageResult; + } +} diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/dailytask/DailyTaskAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/dailytask/DailyTaskAdminController.java new file mode 100644 index 000000000..1a635b240 --- /dev/null +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/dailytask/DailyTaskAdminController.java @@ -0,0 +1,37 @@ +package com.accompany.admin.controller.dailytask; + +import com.accompany.admin.service.dailytask.DailyTaskAdminService; +import com.accompany.business.vo.dailytask.DailyCoinRecvVo; +import com.accompany.common.result.PageResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags = "每日任务相关", value = "每日任务相关") +@RestController +@RequestMapping("/admin/dailyTask") +public class DailyTaskAdminController { + + @Autowired + private DailyTaskAdminService dailyTaskAdminService; + + @GetMapping("/coinRecvNums") + @ApiImplicitParams( { + @ApiImplicitParam(name = "partitionId", value = "分区id", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "startDate", value = "开始时间", required = true, dataType = "String"), + @ApiImplicitParam(name = "endDate", value = "结束时间", required = true, dataType = "String"), + @ApiImplicitParam(name = "pageNo", value = "页码", dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "Integer") + }) + @ApiOperation(value = "日任务奖励领取详情", httpMethod = "GET") + public PageResult list(Integer pageNo, Integer pageSize, @RequestParam(defaultValue = "16") Integer partitionId, + String startDate, String endDate) { + return dailyTaskAdminService.list(pageNo, pageSize, partitionId, startDate, endDate); + } +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/dailytask/DailyTaskRecvCoinStat.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/dailytask/DailyTaskRecvCoinStat.java new file mode 100644 index 000000000..7c89b9015 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/dailytask/DailyTaskRecvCoinStat.java @@ -0,0 +1,53 @@ +package com.accompany.business.model.dailytask; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 上麦达标&领取&公会总数实体类 + * + * @author + * @since 2025-08-27 + */ +@Data +public class DailyTaskRecvCoinStat implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 分区id + */ + private Integer partitionId; + /** + * 统计日期 + */ + private String statDate; + /** + * 达到人数 + */ + private Integer reachNum; + /** + * 领取人数 + */ + private Integer receiveNum; + /** + * 公会成员 + */ + private Integer guildMemberNumn; + /** + * 创建时间 + */ + private Date createTime; + /** + * 更新时间 + */ + private Date updateTime; + + +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/dailytask/DailyTaskRewardRecord.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/dailytask/DailyTaskRewardRecord.java index 4ca455471..4972efe03 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/dailytask/DailyTaskRewardRecord.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/dailytask/DailyTaskRewardRecord.java @@ -48,6 +48,8 @@ public class DailyTaskRewardRecord implements Serializable { * 奖品数量 */ private Long awardNum; + private String deviceId; + private String loginIp; /** * 创建时间 */ diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyCoinRecvVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyCoinRecvVo.java new file mode 100644 index 000000000..acfaa733b --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyCoinRecvVo.java @@ -0,0 +1,19 @@ +package com.accompany.business.vo.dailytask; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel("公会任务领取金币统计") +@Data +public class DailyCoinRecvVo { + private Integer partitionId; + @ApiModelProperty(value = "统计日期") + private String statDate; + @ApiModelProperty(value = "达到人数") + private Integer reachNum; + @ApiModelProperty(value = "领取人数") + private Integer receiveNum; + @ApiModelProperty(value = "公会成员人数") + private Integer guildMemberNumn; +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/dailytask/DailyTaskRecvCoinStatMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/dailytask/DailyTaskRecvCoinStatMapper.java new file mode 100644 index 000000000..824d2e001 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/dailytask/DailyTaskRecvCoinStatMapper.java @@ -0,0 +1,14 @@ +package com.accompany.business.mybatismapper.dailytask; + +import com.accompany.business.model.dailytask.DailyTaskRecvCoinStat; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 上麦达标&领取&公会总数 Mapper 接口 + * + * @author + * @since 2025-08-27 + */ +public interface DailyTaskRecvCoinStatMapper extends BaseMapper { + +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildMicStatisticsPolicy2Mapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildMicStatisticsPolicy2Mapper.java index 8017c4da4..523d7ed9e 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildMicStatisticsPolicy2Mapper.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildMicStatisticsPolicy2Mapper.java @@ -31,4 +31,6 @@ public interface GuildMicStatisticsPolicy2Mapper extends BaseMapper listPersonalMicData(@Param("cycleDate")String cycleDate, @Param("guildMemberId")Long guildMemberId); Integer getMinutes(@Param("partitionId") Integer partitionId, @Param("guildMemberId") Long guildMemberId, @Param("statDate") String statDate); + + Integer countByPartitionDate(@Param("statDate")String statDate, @Param("partitionId") Integer partitionId, @Param("reachMinutes") Integer reachMinutes); } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/AbstractDailyTaskHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/AbstractDailyTaskHandler.java index 79ce6c08c..6017b8389 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/AbstractDailyTaskHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/AbstractDailyTaskHandler.java @@ -133,7 +133,7 @@ public abstract class AbstractDailyTaskHandler implements DailyTaskHandler { for (DailyTaskReward configReward : dailyTaskVo.getConfigRewards()) { dailyTaskRewardRecordService.addRecord(configReward.getTaskConfigId(), dailyTaskVo.getTaskType().name(), uid, partitionId, guildId, guildMemberId, configReward.getAwardType(), - configReward.getAwardId(), configReward.getAwardNum(), receiveDate); + configReward.getAwardId(), configReward.getAwardNum(), receiveDate, realIpAddress, deviceId); if (RewardTypeEnum.GOLDBEAN.getType().equals(configReward.getAwardType())) { userGoldBeanService.addGoldBean(uid, BigDecimal.valueOf(configReward.getAwardNum()), GoldBeanBillType.TASK_GAIN, String.valueOf(dailyTaskTypeEnum.ordinal()), 1, dailyTaskVo.getTaskType().name(), diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskRecvCoinStatService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskRecvCoinStatService.java new file mode 100644 index 000000000..7dcfc4148 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskRecvCoinStatService.java @@ -0,0 +1,30 @@ +package com.accompany.business.service.dailytask; + +import com.accompany.business.model.dailytask.DailyTaskRecvCoinStat; +import com.accompany.business.mybatismapper.dailytask.DailyTaskRecvCoinStatMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 上麦达标&领取&公会总数 服务实现类 + * + * @author + * @since 2025-08-27 + */ +@Service +public class DailyTaskRecvCoinStatService extends ServiceImpl { + + public IPage selectDailyCoinRecvStat(Integer partitionId, String startDate, String endDate, Integer pageNo, Integer pageSize) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(DailyTaskRecvCoinStat::getPartitionId, partitionId) + .ge(DailyTaskRecvCoinStat::getStatDate, startDate) + .le(DailyTaskRecvCoinStat::getStatDate, endDate) + .orderByDesc(DailyTaskRecvCoinStat::getStatDate); + return baseMapper.selectPage(new Page<>(pageNo, pageSize), wrapper); + } + +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskRewardRecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskRewardRecordService.java index d26ba8b1e..8646376b1 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskRewardRecordService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskRewardRecordService.java @@ -2,6 +2,7 @@ package com.accompany.business.service.dailytask; import com.accompany.business.model.dailytask.DailyTaskRewardRecord; import com.accompany.business.mybatismapper.dailytask.DailyTaskRewardRecordMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @@ -17,7 +18,7 @@ import java.util.Date; public class DailyTaskRewardRecordService extends ServiceImpl { public Integer addRecord(Integer taskConfigId, String taskKey, Long uid, Integer partitionId, Integer guildId, - Long guildMemberId, Byte awardType, Long awardId, Long awardNum, String statDate) { + Long guildMemberId, Byte awardType, Long awardId, Long awardNum, String statDate, String ip, String deviceId) { DailyTaskRewardRecord entity = new DailyTaskRewardRecord(); entity.setTaskConfigId(taskConfigId); entity.setTaskKey(taskKey); @@ -31,8 +32,18 @@ public class DailyTaskRewardRecordService extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(DailyTaskRewardRecord::getPartitionId, partitionId) + .eq(DailyTaskRewardRecord::getTaskKey, taskKey) + .eq(DailyTaskRewardRecord::getStatDate, statDate); + return this.baseMapper.selectCount(wrapper).intValue(); + } } \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskStatService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskStatService.java new file mode 100644 index 000000000..567be59bd --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskStatService.java @@ -0,0 +1,39 @@ +package com.accompany.business.service.dailytask; + +import com.accompany.business.constant.dailytask.DailyTaskTypeEnum; +import com.accompany.business.model.dailytask.DailyTaskRecvCoinStat; +import com.accompany.business.service.guild.GuildMemberService; +import com.accompany.business.service.guildpolicy2.GuildMicStatisticsPolicy2Service; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; + +@Service +public class DailyTaskStatService { + + @Autowired + private DailyTaskRewardRecordService dailyTaskRewardRecordService; + @Autowired + private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service; + @Autowired + private GuildMemberService guildMemberService; + @Autowired + private DailyTaskRecvCoinStatService dailyTaskRecvCoinStatService; + + public DailyTaskRecvCoinStat statDailyCoinRecvStat(Integer partitionId, String statDate) { + DailyTaskRecvCoinStat dailyTaskRecvCoinStat = new DailyTaskRecvCoinStat(); + Integer receiveNum = dailyTaskRewardRecordService.selectCount(partitionId, DailyTaskTypeEnum.UP_MIC_COIN.name(), statDate); + long guildMember = guildMemberService.countValidGuildMember(partitionId); + Integer reachNum = guildMicStatisticsPolicy2Service.countByPartitionDate(statDate, partitionId, 120); + dailyTaskRecvCoinStat.setStatDate(statDate); + dailyTaskRecvCoinStat.setPartitionId(partitionId); + dailyTaskRecvCoinStat.setReachNum(reachNum); + dailyTaskRecvCoinStat.setReceiveNum(receiveNum); + dailyTaskRecvCoinStat.setGuildMemberNumn((int)guildMember); + dailyTaskRecvCoinStat.setCreateTime(new Date()); + dailyTaskRecvCoinStat.setUpdateTime(dailyTaskRecvCoinStat.getCreateTime()); + dailyTaskRecvCoinStatService.save(dailyTaskRecvCoinStat); + return dailyTaskRecvCoinStat; + } +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/ChargeGoldNumHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/ChargeGoldNumHandler.java index b35edce19..cf9ab6759 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/ChargeGoldNumHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/ChargeGoldNumHandler.java @@ -25,7 +25,7 @@ public class ChargeGoldNumHandler extends AbstractDailyTaskHandler { Long uid = progressContext.getUid(); Integer partitionId = progressContext.getPartitionId(); - String todayDate = getTodayDate(partitionId, progressContext.getCreateTime()); + String todayDate = getTaskDate(partitionId, progressContext.getCreateTime()); RMap dailyChargeGold = dailyChargeGold(partitionId, todayDate); Long chargeGold = dailyChargeGold.addAndGet(uid, progressContext.getChargeGoldNum()); dailyChargeGold.expire(Duration.ofDays(EXPIRE_DAY)); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/DailySignHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/DailySignHandler.java index 3d7031e84..0329c4465 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/DailySignHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/DailySignHandler.java @@ -19,7 +19,7 @@ public class DailySignHandler extends AbstractDailyTaskHandler { public void doExecuteProgress(DailyProgressContext progressContext) { Long uid = progressContext.getUid(); Integer partitionId = progressContext.getPartitionId(); - String todayDate = getTodayDate(partitionId, progressContext.getCreateTime()); + String todayDate = getTaskDate(partitionId, progressContext.getCreateTime()); taskStatus(uid, todayDate, DailyTaskTypeEnum.DAILY_SIGN).set(1, Duration.ofDays(EXPIRE_DAY)); } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/PlayGameHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/PlayGameHandler.java index 97bc22753..4c52b605a 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/PlayGameHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/PlayGameHandler.java @@ -23,7 +23,7 @@ public class PlayGameHandler extends AbstractDailyTaskHandler { public void doExecuteProgress(DailyProgressContext progressContext) { Long uid = progressContext.getUid(); Integer partitionId = progressContext.getPartitionId(); - String todayDate = getTodayDate(partitionId, progressContext.getCreateTime()); + String todayDate = getTaskDate(partitionId, progressContext.getCreateTime()); RSet playGameCategory = playGameCategory(uid, todayDate); String gameId = progressContext.getGameId(); if (playGameCategory.contains(gameId)) { diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvLuckyGiftHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvLuckyGiftHandler.java index 32174f999..3b96f918c 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvLuckyGiftHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvLuckyGiftHandler.java @@ -24,7 +24,7 @@ public class RecvLuckyGiftHandler extends AbstractDailyTaskHandler { public void doExecuteProgress(DailyProgressContext progressContext) { Long uid = progressContext.getUid(); Integer partitionId = progressContext.getPartitionId(); - String todayDate = getTodayDate(partitionId, progressContext.getCreateTime()); + String todayDate = getTaskDate(partitionId, progressContext.getCreateTime()); RBucket taskStatus = taskStatus(uid, todayDate, DailyTaskTypeEnum.RECV_LUCKY_GIFT); if (taskStatus.isExists()) { return; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftGoldHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftGoldHandler.java index 3a545cf82..c67d507bb 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftGoldHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftGoldHandler.java @@ -25,7 +25,7 @@ public class RecvNomalGiftGoldHandler extends AbstractDailyTaskHandler { public void doExecuteProgress(DailyProgressContext progressContext) { Long uid = progressContext.getUid(); Integer partitionId = progressContext.getPartitionId(); - String todayDate = getTodayDate(partitionId, progressContext.getCreateTime()); + String todayDate = getTaskDate(partitionId, progressContext.getCreateTime()); RMap recvGoldNum = recvGoldNum(partitionId, todayDate); Long addAndGet = recvGoldNum.addAndGet(uid, progressContext.getRecvGoldNum()); recvGoldNum.expire(Duration.ofDays(EXPIRE_DAY)); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftHandler.java index 1cce693aa..20dedc75f 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftHandler.java @@ -24,7 +24,7 @@ public class RecvNomalGiftHandler extends AbstractDailyTaskHandler { public void doExecuteProgress(DailyProgressContext progressContext) { Long uid = progressContext.getUid(); Integer partitionId = progressContext.getPartitionId(); - String todayDate = getTodayDate(partitionId, progressContext.getCreateTime()); + String todayDate = getTaskDate(partitionId, progressContext.getCreateTime()); RBucket taskStatus = taskStatus(uid, todayDate, DailyTaskTypeEnum.RECV_NOMAL_GIFT); if (taskStatus.isExists()) { return; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomDayDiamondHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomDayDiamondHandler.java index c881a691b..c2261c49e 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomDayDiamondHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomDayDiamondHandler.java @@ -11,6 +11,7 @@ import com.accompany.business.service.room.RoomDayDiamondRewardService; import com.accompany.business.service.room.RoomService; import com.accompany.business.vo.dailytask.*; import com.accompany.core.model.Room; +import com.accompany.core.model.Users; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -48,7 +49,12 @@ public class RoomDayDiamondHandler extends AbstractDailyTaskHandler { String todayDate = context.getTodayDate(); dailyTaskRoomDiamondVo.setStatDate(todayDate); Room roomByUid = roomService.getRoomByUid(uid); - dailyTaskRoomDiamondVo.setAvatar(roomByUid.getAvatar()); + if (roomByUid == null) { + Users users = usersService.getUsersByUid(uid); + dailyTaskRoomDiamondVo.setAvatar(users.getAvatar()); + } else { + dailyTaskRoomDiamondVo.setAvatar(roomByUid.getAvatar()); + } BigDecimal totalGoldNum = roomDayDiamondNumService.getGoldNum(partitionId, uid, todayDate); dailyTaskRoomDiamondVo.setTotalGoldNum(totalGoldNum); List rewardList = new ArrayList<>(); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftHandler.java index 00368d8a4..8b19061cb 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftHandler.java @@ -19,7 +19,7 @@ public class RoomSendGiftHandler extends AbstractDailyTaskHandler { public void doExecuteProgress(DailyProgressContext progressContext) { Long uid = progressContext.getUid(); Integer partitionId = progressContext.getPartitionId(); - String todayDate = getTodayDate(partitionId, progressContext.getCreateTime()); + String todayDate = getTaskDate(partitionId, progressContext.getCreateTime()); RBucket taskStatus = taskStatus(uid, todayDate, DailyTaskTypeEnum.ROOM_SEND_GIFT); if (taskStatus.isExists()) { return; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildMemberService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildMemberService.java index 08bb1da55..f4b445604 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildMemberService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildMemberService.java @@ -99,4 +99,11 @@ public class GuildMemberService extends ServiceImpl listGuildMemberByPartitionIdBetweenTime(Integer partitionId, Date startTime, Date endTime) { return this.baseMapper.listGuildMemberByPartitionIdBetweenTime(partitionId, startTime, endTime); } + + public long countValidGuildMember(Integer partitionId) { + return this.lambdaQuery() + .eq(GuildMember::getPartitionId, partitionId) + .eq(GuildMember::getEnable, Boolean.TRUE) + .count(); + } } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildMicStatisticsPolicy2Service.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildMicStatisticsPolicy2Service.java index a94583ee5..13c0696ee 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildMicStatisticsPolicy2Service.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildMicStatisticsPolicy2Service.java @@ -60,4 +60,8 @@ public class GuildMicStatisticsPolicy2Service extends ServiceImpl + + + + diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMicStatisticsPolicy2Mapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMicStatisticsPolicy2Mapper.xml index c7407794b..6b706ddbc 100644 --- a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMicStatisticsPolicy2Mapper.xml +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMicStatisticsPolicy2Mapper.xml @@ -59,4 +59,13 @@ and guild_member_id = #{guildMemberId} + + + + diff --git a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/dailytask/DailyTaskStatTask.java b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/dailytask/DailyTaskStatTask.java new file mode 100644 index 000000000..31b3b7040 --- /dev/null +++ b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/dailytask/DailyTaskStatTask.java @@ -0,0 +1,40 @@ +package com.accompany.scheduler.task.dailytask; + +import cn.hutool.core.date.DateUtil; +import com.accompany.business.service.dailytask.DailyTaskStatService; +import com.accompany.core.enumeration.PartitionEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +@Component +@Slf4j +public class DailyTaskStatTask { + + @Autowired + private DailyTaskStatService dailyTaskStatService; + + /** + * 公户月结算,用户明细 + * 每月1号凌晨0点10分执行 + */ + @Scheduled(cron = "20 0 0 * * ?") + public void dailyTaskStat4EnTask() { + Date date = new Date(); + List partitionEnumList = List.of(PartitionEnum.ENGLISH2); + for (PartitionEnum partitionEnum : partitionEnumList) { + try { + Date statDate = DateUtil.offsetDay(date, -1); + log.info("=-=dailyTaskStat4EnTask=-=:statDate:{}", DateUtil.formatDateTime(date)); + dailyTaskStatService.statDailyCoinRecvStat(partitionEnum.getId(), DateUtil.formatDate(statDate)); + log.info("=-=dailyTaskStat4EnTask=-= end"); + } catch (Exception e) { + log.error("[dailyTaskStat4EnTask] 异常", e); + } + } + } +}