领取满签奖励
This commit is contained in:
parent
0289392f3c
commit
93b591fac1
|
|
@ -43,4 +43,12 @@ public class AppUserPrizeExchangeController {
|
||||||
userPrizeExchangeService.exchange(userId, entity);
|
userPrizeExchangeService.exchange(userId, entity);
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Login
|
||||||
|
@PostMapping("/receive")
|
||||||
|
@ApiOperation("领取满签奖励")
|
||||||
|
public Result receive(@RequestAttribute("userId") Long userId) {
|
||||||
|
userPrizeExchangeService.receive(userId);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,4 +35,10 @@ public interface UserPrizeExchangeService extends IService<UserPrizeExchange> {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void deliver(UserPrizeExchange dto);
|
void deliver(UserPrizeExchange dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 领取满签奖励现金红包
|
||||||
|
* @param currentUserId
|
||||||
|
*/
|
||||||
|
void receive(Long currentUserId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package com.sqx.modules.app.service.impl;
|
package com.sqx.modules.app.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.lang.Dict;
|
||||||
import cn.hutool.core.lang.Validator;
|
import cn.hutool.core.lang.Validator;
|
||||||
import cn.hutool.core.map.MapProxy;
|
import cn.hutool.core.map.MapProxy;
|
||||||
|
|
@ -17,19 +19,27 @@ import com.sqx.common.utils.PageUtils;
|
||||||
import com.sqx.modules.app.dao.UserDao;
|
import com.sqx.modules.app.dao.UserDao;
|
||||||
import com.sqx.modules.app.dao.UserPrizeExchangeDao;
|
import com.sqx.modules.app.dao.UserPrizeExchangeDao;
|
||||||
import com.sqx.modules.app.entity.UserEntity;
|
import com.sqx.modules.app.entity.UserEntity;
|
||||||
|
import com.sqx.modules.app.entity.UserMoneyDetails;
|
||||||
import com.sqx.modules.app.entity.UserPrizeExchange;
|
import com.sqx.modules.app.entity.UserPrizeExchange;
|
||||||
|
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
||||||
|
import com.sqx.modules.app.service.UserMoneyService;
|
||||||
import com.sqx.modules.app.service.UserPrizeExchangeService;
|
import com.sqx.modules.app.service.UserPrizeExchangeService;
|
||||||
|
import com.sqx.modules.common.entity.CommonInfo;
|
||||||
|
import com.sqx.modules.common.service.CommonInfoService;
|
||||||
import com.sqx.modules.discSpinning.dao.DiscSpinningRecordDao;
|
import com.sqx.modules.discSpinning.dao.DiscSpinningRecordDao;
|
||||||
import com.sqx.modules.discSpinning.entity.DiscSpinningRecord;
|
import com.sqx.modules.discSpinning.entity.DiscSpinningRecord;
|
||||||
import com.sqx.modules.taskCenter.dao.TaskCenterRecordDao;
|
import com.sqx.modules.taskCenter.dao.TaskCenterRecordDao;
|
||||||
import com.sqx.modules.taskCenter.dao.TaskCenterRewardDao;
|
import com.sqx.modules.taskCenter.dao.TaskCenterRewardDao;
|
||||||
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
||||||
import com.sqx.modules.taskCenter.entity.TaskCenterReward;
|
import com.sqx.modules.taskCenter.entity.TaskCenterReward;
|
||||||
|
import com.sqx.modules.userSign.dto.UserSignDTO;
|
||||||
|
import com.sqx.modules.userSign.service.UserSignRecordService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -47,6 +57,14 @@ public class UserPrizeExchangeServiceImpl extends ServiceImpl<UserPrizeExchangeD
|
||||||
private TaskCenterRecordDao taskCenterRecordDao;
|
private TaskCenterRecordDao taskCenterRecordDao;
|
||||||
@Resource
|
@Resource
|
||||||
private TaskCenterRewardDao taskCenterRewardDao;
|
private TaskCenterRewardDao taskCenterRewardDao;
|
||||||
|
@Resource
|
||||||
|
private CommonInfoService commonRepository;
|
||||||
|
@Resource
|
||||||
|
private UserMoneyService userMoneyService;
|
||||||
|
@Resource
|
||||||
|
private UserMoneyDetailsService userMoneyDetailsService;
|
||||||
|
@Resource
|
||||||
|
private UserSignRecordService userSignRecordService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private UserDao userDao;
|
private UserDao userDao;
|
||||||
|
|
@ -203,4 +221,53 @@ public class UserPrizeExchangeServiceImpl extends ServiceImpl<UserPrizeExchangeD
|
||||||
entity.setUpdateTime(new Date());
|
entity.setUpdateTime(new Date());
|
||||||
baseMapper.updateById(entity);
|
baseMapper.updateById(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public synchronized void receive(Long currentUserId) {
|
||||||
|
if (currentUserId == null) {
|
||||||
|
throw new SqxException("未获取当前登录用户id");
|
||||||
|
}
|
||||||
|
UserEntity userEntity = userDao.selectById(currentUserId);
|
||||||
|
if (userEntity == null) {
|
||||||
|
throw new SqxException("该用户信息不存在");
|
||||||
|
}
|
||||||
|
CommonInfo one = commonRepository.findOne(918);
|
||||||
|
if (one == null) {
|
||||||
|
throw new SqxException("奖品配置信息不存在");
|
||||||
|
}
|
||||||
|
String value = one.getValue();
|
||||||
|
String signDays = value.split(",")[0];
|
||||||
|
String moneyStr = value.split(",")[1];
|
||||||
|
UserSignDTO userSignData = userSignRecordService.getUserSignData(currentUserId);
|
||||||
|
if (userSignData.getSignDays() < Convert.toInt(signDays)) {
|
||||||
|
throw new SqxException(StrUtil.format("连续签到天数不足{}天,无法领取奖励", signDays));
|
||||||
|
}
|
||||||
|
int count = userMoneyDetailsService.count(
|
||||||
|
Wrappers.<UserMoneyDetails>lambdaQuery()
|
||||||
|
.eq(UserMoneyDetails::getUserId, currentUserId)
|
||||||
|
.eq(UserMoneyDetails::getType, 1)
|
||||||
|
.eq(UserMoneyDetails::getClassify, 7)
|
||||||
|
.eq(UserMoneyDetails::getMoneyType, 1)
|
||||||
|
.likeLeft(UserMoneyDetails::getTitle, "[连续签到")
|
||||||
|
.likeRight(UserMoneyDetails::getTitle, "天]")
|
||||||
|
);
|
||||||
|
if(count > 0){
|
||||||
|
throw new SqxException("已经领取过连续签到奖励,无需重复操作");
|
||||||
|
}
|
||||||
|
BigDecimal money = new BigDecimal(moneyStr);
|
||||||
|
userMoneyService.updateAmount(1, currentUserId, money.doubleValue());
|
||||||
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||||
|
userMoneyDetails.setUserId(currentUserId);
|
||||||
|
userMoneyDetails.setTitle(StrUtil.format("[连续签到{}天]", signDays));
|
||||||
|
userMoneyDetails.setContent("现金红包奖励:" + moneyStr + "元");
|
||||||
|
// 充值
|
||||||
|
userMoneyDetails.setType(1);
|
||||||
|
// 任务领取
|
||||||
|
userMoneyDetails.setClassify(7);
|
||||||
|
userMoneyDetails.setMoney(money);
|
||||||
|
userMoneyDetails.setCreateTime(DateUtil.now());
|
||||||
|
userMoneyDetails.setMoneyType(1);
|
||||||
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,9 @@ public class UserSignDTO implements Serializable {
|
||||||
@ApiModelProperty(value = "该用户能否参加签到活动", example = "1-允许,0-不允许")
|
@ApiModelProperty(value = "该用户能否参加签到活动", example = "1-允许,0-不允许")
|
||||||
private Integer enable;
|
private Integer enable;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "该用户是否已领取满签奖励", example = "1-已领取,0-未领取")
|
||||||
|
private Integer isReceived;
|
||||||
|
|
||||||
@ApiModelProperty(value = "连续签到记录")
|
@ApiModelProperty(value = "连续签到记录")
|
||||||
private List<UserSignRecordDTO> recordList;
|
private List<UserSignRecordDTO> recordList;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue