日常任务-日任务奖励领取详情
This commit is contained in:
@@ -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<DailyCoinRecvVo> list(Integer pageNo, Integer pageSize, Integer partitionId, String startDate, String endDate) {
|
||||
|
||||
IPage<DailyTaskRecvCoinStat> dailyTaskRecvCoinStatIPage = dailyTaskRecvCoinStatService.selectDailyCoinRecvStat(partitionId, startDate, endDate, pageNo, pageSize);
|
||||
PageResult<DailyCoinRecvVo> pageResult = new PageResult<>();
|
||||
List<DailyCoinRecvVo> recvVoList = new ArrayList<>();
|
||||
pageResult.setRows(recvVoList);
|
||||
pageResult.setTotal((int) dailyTaskRecvCoinStatIPage.getTotal());
|
||||
List<DailyTaskRecvCoinStat> 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;
|
||||
}
|
||||
}
|
@@ -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<DailyCoinRecvVo> list(Integer pageNo, Integer pageSize, @RequestParam(defaultValue = "16") Integer partitionId,
|
||||
String startDate, String endDate) {
|
||||
return dailyTaskAdminService.list(pageNo, pageSize, partitionId, startDate, endDate);
|
||||
}
|
||||
}
|
@@ -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;
|
||||
|
||||
|
||||
}
|
@@ -48,6 +48,8 @@ public class DailyTaskRewardRecord implements Serializable {
|
||||
* 奖品数量
|
||||
*/
|
||||
private Long awardNum;
|
||||
private String deviceId;
|
||||
private String loginIp;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
|
@@ -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;
|
||||
}
|
@@ -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<DailyTaskRecvCoinStat> {
|
||||
|
||||
}
|
@@ -31,4 +31,6 @@ public interface GuildMicStatisticsPolicy2Mapper extends BaseMapper<GuildMicStat
|
||||
List<GuildPolicy2PersonalVo> 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);
|
||||
}
|
||||
|
@@ -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(),
|
||||
|
@@ -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<DailyTaskRecvCoinStatMapper, DailyTaskRecvCoinStat> {
|
||||
|
||||
public IPage<DailyTaskRecvCoinStat> selectDailyCoinRecvStat(Integer partitionId, String startDate, String endDate, Integer pageNo, Integer pageSize) {
|
||||
LambdaQueryWrapper<DailyTaskRecvCoinStat> 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);
|
||||
}
|
||||
|
||||
}
|
@@ -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<DailyTaskRewardRecordMapper, DailyTaskRewardRecord> {
|
||||
|
||||
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<DailyTaskRewardRec
|
||||
entity.setAwardType(awardType);
|
||||
entity.setAwardId(awardId);
|
||||
entity.setAwardNum(awardNum);
|
||||
entity.setLoginIp(ip);
|
||||
entity.setDeviceId(deviceId);
|
||||
entity.setCreateTime(new Date());
|
||||
entity.setUpdateTime(new Date());
|
||||
return this.baseMapper.insert(entity);
|
||||
}
|
||||
|
||||
public Integer selectCount(Integer partitionId, String taskKey, String statDate) {
|
||||
LambdaQueryWrapper<DailyTaskRewardRecord> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(DailyTaskRewardRecord::getPartitionId, partitionId)
|
||||
.eq(DailyTaskRewardRecord::getTaskKey, taskKey)
|
||||
.eq(DailyTaskRewardRecord::getStatDate, statDate);
|
||||
return this.baseMapper.selectCount(wrapper).intValue();
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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<Long, Long> dailyChargeGold = dailyChargeGold(partitionId, todayDate);
|
||||
Long chargeGold = dailyChargeGold.addAndGet(uid, progressContext.getChargeGoldNum());
|
||||
dailyChargeGold.expire(Duration.ofDays(EXPIRE_DAY));
|
||||
|
@@ -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));
|
||||
}
|
||||
|
@@ -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<String> playGameCategory = playGameCategory(uid, todayDate);
|
||||
String gameId = progressContext.getGameId();
|
||||
if (playGameCategory.contains(gameId)) {
|
||||
|
@@ -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<Integer> taskStatus = taskStatus(uid, todayDate, DailyTaskTypeEnum.RECV_LUCKY_GIFT);
|
||||
if (taskStatus.isExists()) {
|
||||
return;
|
||||
|
@@ -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<Long, Long> recvGoldNum = recvGoldNum(partitionId, todayDate);
|
||||
Long addAndGet = recvGoldNum.addAndGet(uid, progressContext.getRecvGoldNum());
|
||||
recvGoldNum.expire(Duration.ofDays(EXPIRE_DAY));
|
||||
|
@@ -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<Integer> taskStatus = taskStatus(uid, todayDate, DailyTaskTypeEnum.RECV_NOMAL_GIFT);
|
||||
if (taskStatus.isExists()) {
|
||||
return;
|
||||
|
@@ -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<DailyTaskRoomDiamondDetailVo> rewardList = new ArrayList<>();
|
||||
|
@@ -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<Integer> taskStatus = taskStatus(uid, todayDate, DailyTaskTypeEnum.ROOM_SEND_GIFT);
|
||||
if (taskStatus.isExists()) {
|
||||
return;
|
||||
|
@@ -99,4 +99,11 @@ public class GuildMemberService extends ServiceImpl<GuildMemberMapper, GuildMemb
|
||||
public List<GuildMember> 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();
|
||||
}
|
||||
}
|
||||
|
@@ -60,4 +60,8 @@ public class GuildMicStatisticsPolicy2Service extends ServiceImpl<GuildMicStatis
|
||||
Integer minutes = baseMapper.getMinutes(partitionId, guildMemberId, statDate);
|
||||
return minutes == null ? 0 : minutes;
|
||||
}
|
||||
|
||||
public Integer countByPartitionDate(String statDate, Integer partitionId, Integer reachMinutes) {
|
||||
return baseMapper.countByPartitionDate(statDate, partitionId, reachMinutes);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.accompany.business.mybatismapper.dailytask.DailyTaskRecvCoinStatMapper">
|
||||
|
||||
</mapper>
|
@@ -59,4 +59,13 @@
|
||||
and guild_member_id = #{guildMemberId}
|
||||
</select>
|
||||
|
||||
<select id="countByPartitionDate" resultType="java.lang.Integer">
|
||||
select
|
||||
count(sum(mic_minutes) > #{reachMinutes}) reachNum,
|
||||
from guild_mic_statistics_policy2
|
||||
where stat_date = #{statDate} and partition_id = #{partitionId}
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
@@ -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<PartitionEnum> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user