日常任务-上麦奖励
This commit is contained in:
@@ -30,7 +30,8 @@ public enum BillDomainTypeEnum {
|
||||
USER_EVENT(23, "用户活动"),
|
||||
FIRST_CHARGE(24, "首充"),
|
||||
GAME_USD(25, "游戏薪资"),
|
||||
GUILD_POLICY2(25, "土耳其公会政策2"),
|
||||
GUILD_POLICY2(26, "土耳其公会政策2"),
|
||||
DAILY_TASK(27, "日任务奖励"),
|
||||
;
|
||||
|
||||
private int value;
|
||||
|
@@ -281,6 +281,7 @@ public enum BillObjTypeEnum {
|
||||
|
||||
OFFICIAL_PLUS_GUILD_CRYSTAL( 186, "官方增加公会紫晶", BillTypeEnum.IN, CurrencyEnum.GUILD_CRYSTAL, BillDomainTypeEnum.GUILD_POLICY2),
|
||||
OFFICIAL_MIUNS_GUILD_CRYSTAL( 187, "官方扣除公会紫晶", BillTypeEnum.OUT, CurrencyEnum.GUILD_CRYSTAL, BillDomainTypeEnum.GUILD_POLICY2),
|
||||
DAILY_TASK_UP_MIC_COIN( 188, "日任务上麦奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DAILY_TASK),
|
||||
;
|
||||
|
||||
BillObjTypeEnum(int value, String desc, BillTypeEnum type, CurrencyEnum currency, BillDomainTypeEnum domain) {
|
||||
|
@@ -0,0 +1,58 @@
|
||||
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-26
|
||||
*/
|
||||
@Data
|
||||
public class DailyTaskRewardRecord implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
/**
|
||||
* 分区id
|
||||
*/
|
||||
private Integer partitionId;
|
||||
private Long uid;
|
||||
private Integer guildId;
|
||||
private Long guildMemberId;
|
||||
/**
|
||||
* 日常任务-配置ID
|
||||
*/
|
||||
private Integer taskConfigId;
|
||||
/**
|
||||
* 任务key
|
||||
*/
|
||||
private String taskKey;
|
||||
private String statDate;
|
||||
/**
|
||||
* 奖品类型:8.金币 6.礼物 5.座驾 1.头饰 3.气泡, 10vip 11勋章 ,根据RewardTypeEnum来的
|
||||
*/
|
||||
private Byte awardType;
|
||||
/**
|
||||
* 奖品id
|
||||
*/
|
||||
private Long awardId;
|
||||
/**
|
||||
* 奖品数量
|
||||
*/
|
||||
private Long awardNum;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
}
|
@@ -20,6 +20,7 @@ import java.util.List;
|
||||
@Data
|
||||
public class DailyTaskVo {
|
||||
private Integer taskConfigId;
|
||||
private Integer partitionId;
|
||||
@ApiModelProperty("任务类型")
|
||||
private DailyTaskTypeEnum taskType;
|
||||
@ApiModelProperty("UNCOMPLETED-完成, AVAILABLE-可领取,RECEIVED-已领取")
|
||||
|
@@ -0,0 +1,14 @@
|
||||
package com.accompany.business.mybatismapper.dailytask;
|
||||
|
||||
import com.accompany.business.model.dailytask.DailyTaskRewardRecord;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 日常任务奖励记录 Mapper 接口
|
||||
*
|
||||
* @author
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
public interface DailyTaskRewardRecordMapper extends BaseMapper<DailyTaskRewardRecord> {
|
||||
|
||||
}
|
@@ -0,0 +1,38 @@
|
||||
package com.accompany.business.service.dailytask;
|
||||
|
||||
import com.accompany.business.model.dailytask.DailyTaskRewardRecord;
|
||||
import com.accompany.business.mybatismapper.dailytask.DailyTaskRewardRecordMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 日常任务奖励记录 服务实现类
|
||||
*
|
||||
* @author
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
@Service
|
||||
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) {
|
||||
DailyTaskRewardRecord entity = new DailyTaskRewardRecord();
|
||||
entity.setTaskConfigId(taskConfigId);
|
||||
entity.setTaskKey(taskKey);
|
||||
entity.setStatDate(statDate);
|
||||
|
||||
entity.setUid(uid);
|
||||
entity.setPartitionId(partitionId);
|
||||
entity.setGuildId(guildId);
|
||||
entity.setGuildMemberId(guildMemberId);
|
||||
|
||||
entity.setAwardType(awardType);
|
||||
entity.setAwardId(awardId);
|
||||
entity.setAwardNum(awardNum);
|
||||
entity.setCreateTime(new Date());
|
||||
entity.setUpdateTime(new Date());
|
||||
return this.baseMapper.insert(entity);
|
||||
}
|
||||
}
|
@@ -1,10 +1,16 @@
|
||||
package com.accompany.business.service.dailytask.handler;
|
||||
|
||||
import com.accompany.business.common.constant.RewardTypeEnum;
|
||||
import com.accompany.business.constant.dailytask.DailyTaskConstant;
|
||||
import com.accompany.business.constant.dailytask.DailyTaskTypeEnum;
|
||||
import com.accompany.business.model.dailytask.DailyTaskReward;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.service.dailytask.AbstractDailyTaskHandler;
|
||||
import com.accompany.business.service.dailytask.DailyTaskRewardRecordService;
|
||||
import com.accompany.business.service.dailytask.annotation.DailyTaskHandlerType;
|
||||
import com.accompany.business.service.guild.GuildMemberService;
|
||||
import com.accompany.business.service.room.RoomMicService;
|
||||
import com.accompany.business.util.RewardUtil;
|
||||
import com.accompany.business.vo.dailytask.DailyProgressContext;
|
||||
import com.accompany.business.vo.dailytask.DailyTaskContext;
|
||||
import com.accompany.business.vo.dailytask.DailyTaskVo;
|
||||
@@ -13,6 +19,7 @@ import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import org.redisson.api.RAtomicLong;
|
||||
import org.redisson.api.RBucket;
|
||||
import org.redisson.api.RMap;
|
||||
@@ -26,10 +33,12 @@ import java.time.ZonedDateTime;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.accompany.business.constant.dailytask.DailyTaskConstant.RedisKey.up_mic_coin_device_limit;
|
||||
import static com.accompany.business.constant.dailytask.DailyTaskConstant.RedisKey.up_mic_coin_ip_limit;
|
||||
import static com.accompany.core.enumeration.BillObjTypeEnum.DAILY_TASK_UP_MIC_COIN;
|
||||
|
||||
@Component
|
||||
@DailyTaskHandlerType(DailyTaskTypeEnum.UP_MIC_COIN)
|
||||
@@ -37,6 +46,12 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Autowired
|
||||
private RoomMicService roomMicService;
|
||||
@Autowired
|
||||
private DailyTaskRewardRecordService dailyTaskRewardRecordService;
|
||||
@Autowired
|
||||
private GuildMemberService guildMemberService;
|
||||
@Autowired
|
||||
private RewardUtil rewardUtil;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -97,6 +112,18 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
|
||||
}
|
||||
|
||||
super.receive(uid, receiveDate, dailyTaskVo, deviceId, realIpAddress);
|
||||
Users users = usersService.getUsersByUid(uid);
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||
List<DailyTaskReward> configRewards = dailyTaskVo.getConfigRewards();
|
||||
for (DailyTaskReward configReward : configRewards) {
|
||||
dailyTaskRewardRecordService.addRecord(configReward.getTaskConfigId(), dailyTaskVo.getTaskType().name(),
|
||||
uid, users.getPartitionId(), guildMember.getGuildId(), guildMember.getId(), configReward.getAwardType(),
|
||||
configReward.getAwardId(), configReward.getAwardNum(), receiveDate);
|
||||
}
|
||||
for (DailyTaskReward configReward : configRewards) {
|
||||
rewardUtil.sendRewardByType(uid, RewardTypeEnum.getByRewardType(configReward.getAwardType()), configReward.getAwardId().intValue(),
|
||||
configReward.getAwardNum().intValue(), dailyTaskVo.getTaskType().name(), Boolean.FALSE, DAILY_TASK_UP_MIC_COIN);
|
||||
}
|
||||
|
||||
RMap<String, Long> deveiceCache = getDeveiceCache(receiveDate);
|
||||
deveiceCache.put(deviceId, uid);
|
||||
|
@@ -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.DailyTaskRewardRecordMapper">
|
||||
|
||||
</mapper>
|
Reference in New Issue
Block a user