日常任务-奖励fixed
This commit is contained in:
@@ -2,8 +2,10 @@ package com.accompany.business.service.dailytask.handler;
|
||||
|
||||
import com.accompany.business.constant.dailytask.DailyTaskConstant;
|
||||
import com.accompany.business.constant.dailytask.DailyTaskTypeEnum;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.service.dailytask.AbstractDailyTaskHandler;
|
||||
import com.accompany.business.service.dailytask.annotation.DailyTaskHandlerType;
|
||||
import com.accompany.business.service.guild.GuildMemberService;
|
||||
import com.accompany.business.service.guildpolicy2.GuildMicStatisticsPolicy2Service;
|
||||
import com.accompany.business.vo.dailytask.DailyProgressContext;
|
||||
import com.accompany.business.vo.dailytask.DailyTaskContext;
|
||||
@@ -34,6 +36,8 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Autowired
|
||||
private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service;
|
||||
@Autowired
|
||||
private GuildMemberService guildMemberService;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -45,28 +49,10 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
|
||||
Long uid = context.getUid();
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
String deviceId = context.getDeviceId();
|
||||
DailyTaskTypeEnum taskType = dailyTaskVo.getTaskType();
|
||||
String realIpAddress = context.getRealIpAddress();
|
||||
|
||||
String mondayDate = context.getTodayDate();
|
||||
String nowDate = getNowDate(context.getPartitionId(), new Date());
|
||||
DailyTaskTypeEnum taskType = dailyTaskVo.getTaskType();
|
||||
RBucket<Integer> taskStatus = taskStatus(uid, mondayDate, taskType);
|
||||
long totalDuration;
|
||||
if (!taskStatus.isExists()) { //达标之后不再统计上麦时长
|
||||
totalDuration = guildMicStatisticsPolicy2Service.getMinutes(context.getPartitionId(), uid, nowDate);
|
||||
} else {
|
||||
totalDuration = dailyTaskVo.getStandardValue();
|
||||
}
|
||||
dailyTaskVo.setTodayDate(mondayDate);
|
||||
if (totalDuration >= dailyTaskVo.getStandardValue()) {
|
||||
taskStatus.set(1, Duration.ofDays(1));
|
||||
}
|
||||
dailyTaskVo.setReachNum(totalDuration);
|
||||
DailyTaskConstant.ReceiveStatus receiveStatus = computeReceiveStatus(uid, mondayDate, taskType);
|
||||
dailyTaskVo.setReceiveStatus(receiveStatus);
|
||||
if (receiveStatus == DailyTaskConstant.ReceiveStatus.RECEIVED) {
|
||||
return dailyTaskVo;
|
||||
}
|
||||
Long receivUid = getIpCache(mondayDate).getOrDefault(realIpAddress, 0L);
|
||||
if (receivUid > 0 && !receivUid.equals(uid)) {
|
||||
return null;
|
||||
@@ -75,6 +61,28 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
|
||||
if (receivUid > 0 && !receivUid.equals(uid)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
RBucket<Integer> taskStatus = taskStatus(uid, mondayDate, taskType);
|
||||
Integer totalDuration;
|
||||
if (!taskStatus.isExists()) { //达标之后不再统计上麦时长
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||
if (null == guildMember) {
|
||||
return null;
|
||||
}
|
||||
totalDuration = guildMicStatisticsPolicy2Service.getMinutes(context.getPartitionId(), guildMember.getId(), nowDate);
|
||||
} else {
|
||||
totalDuration = taskStatus.get();
|
||||
}
|
||||
dailyTaskVo.setTodayDate(mondayDate);
|
||||
if (totalDuration != null && totalDuration >= dailyTaskVo.getStandardValue()) {
|
||||
taskStatus.set(totalDuration, Duration.ofDays(1));
|
||||
}
|
||||
DailyTaskConstant.ReceiveStatus receiveStatus = computeReceiveStatus(uid, mondayDate, taskType);
|
||||
dailyTaskVo.setReceiveStatus(receiveStatus);
|
||||
if (receiveStatus == DailyTaskConstant.ReceiveStatus.RECEIVED) {
|
||||
return dailyTaskVo;
|
||||
}
|
||||
dailyTaskVo.setReachNum(totalDuration.longValue());
|
||||
return dailyTaskVo;
|
||||
}
|
||||
|
||||
|
@@ -6,6 +6,7 @@ import com.accompany.business.vo.dailytask.DailyTaskShopCenterVo;
|
||||
import com.accompany.business.vo.dailytask.DailyTaskTabVo;
|
||||
import com.accompany.business.vo.dailytask.DailyTaskVo;
|
||||
import com.accompany.business.vo.dailytask.UserGoldBeanBillVo;
|
||||
import com.accompany.common.annotation.Authorization;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.utils.IPUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -52,6 +53,7 @@ public class DailyTaskController {
|
||||
@ApiImplicitParam(name = "todayDate", value = "列表有传对应字段", required = true, dataType = "string", paramType = "query"),
|
||||
@ApiImplicitParam(name = "taskConfigId", value = "列表有传对应字段", required = true, dataType = "string", paramType = "query"),
|
||||
})
|
||||
@Authorization
|
||||
@PostMapping("/recv")
|
||||
public BusiResult<List<DailyTaskVo>> recv(@RequestHeader(PUB_UID) Long uid, String todayDate, Integer taskConfigId,
|
||||
@RequestHeader(DEVICE_ID)String deviceId, HttpServletRequest request) {
|
||||
@@ -69,6 +71,7 @@ public class DailyTaskController {
|
||||
@ApiImplicitParam(name = "awardId", value = "奖励id", required = true, dataType = "int", paramType = "query"),
|
||||
@ApiImplicitParam(name = "num", value = "奖励数量(默认传1)", required = true, dataType = "int", paramType = "query"),
|
||||
})
|
||||
@Authorization
|
||||
@ApiOperation(value = "兑换", httpMethod = "POST")
|
||||
@PostMapping("/shopBuy")
|
||||
public BusiResult<Void> shopBuy(@RequestHeader(PUB_UID) Long uid, Long awardId, @RequestParam(defaultValue = "1") Integer num) {
|
||||
|
Reference in New Issue
Block a user