From 93b591fac1b1c7523747126efc188ee22929dc1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Thu, 26 Dec 2024 17:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=86=E5=8F=96=E6=BB=A1=E7=AD=BE=E5=A5=96?= =?UTF-8?q?=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppUserPrizeExchangeController.java | 8 +++ .../app/service/UserPrizeExchangeService.java | 6 ++ .../impl/UserPrizeExchangeServiceImpl.java | 67 +++++++++++++++++++ .../sqx/modules/userSign/dto/UserSignDTO.java | 3 + 4 files changed, 84 insertions(+) diff --git a/src/main/java/com/sqx/modules/app/controller/AppUserPrizeExchangeController.java b/src/main/java/com/sqx/modules/app/controller/AppUserPrizeExchangeController.java index 4e5a57ae..06ed48e3 100644 --- a/src/main/java/com/sqx/modules/app/controller/AppUserPrizeExchangeController.java +++ b/src/main/java/com/sqx/modules/app/controller/AppUserPrizeExchangeController.java @@ -43,4 +43,12 @@ public class AppUserPrizeExchangeController { userPrizeExchangeService.exchange(userId, entity); return Result.success(); } + + @Login + @PostMapping("/receive") + @ApiOperation("领取满签奖励") + public Result receive(@RequestAttribute("userId") Long userId) { + userPrizeExchangeService.receive(userId); + return Result.success(); + } } diff --git a/src/main/java/com/sqx/modules/app/service/UserPrizeExchangeService.java b/src/main/java/com/sqx/modules/app/service/UserPrizeExchangeService.java index 6adc1191..92b629e4 100644 --- a/src/main/java/com/sqx/modules/app/service/UserPrizeExchangeService.java +++ b/src/main/java/com/sqx/modules/app/service/UserPrizeExchangeService.java @@ -35,4 +35,10 @@ public interface UserPrizeExchangeService extends IService { */ void deliver(UserPrizeExchange dto); + + /** + * 领取满签奖励现金红包 + * @param currentUserId + */ + void receive(Long currentUserId); } diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserPrizeExchangeServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserPrizeExchangeServiceImpl.java index 88e06587..b07235c6 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserPrizeExchangeServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserPrizeExchangeServiceImpl.java @@ -1,5 +1,7 @@ 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.Validator; 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.UserPrizeExchangeDao; 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.service.UserMoneyDetailsService; +import com.sqx.modules.app.service.UserMoneyService; 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.entity.DiscSpinningRecord; import com.sqx.modules.taskCenter.dao.TaskCenterRecordDao; import com.sqx.modules.taskCenter.dao.TaskCenterRewardDao; import com.sqx.modules.taskCenter.entity.TaskCenterRecord; 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 org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.Date; import java.util.Map; @@ -47,6 +57,14 @@ public class UserPrizeExchangeServiceImpl extends ServiceImpllambdaQuery() + .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); + } } diff --git a/src/main/java/com/sqx/modules/userSign/dto/UserSignDTO.java b/src/main/java/com/sqx/modules/userSign/dto/UserSignDTO.java index 969b4b74..a464720a 100644 --- a/src/main/java/com/sqx/modules/userSign/dto/UserSignDTO.java +++ b/src/main/java/com/sqx/modules/userSign/dto/UserSignDTO.java @@ -33,6 +33,9 @@ public class UserSignDTO implements Serializable { @ApiModelProperty(value = "该用户能否参加签到活动", example = "1-允许,0-不允许") private Integer enable; + @ApiModelProperty(value = "该用户是否已领取满签奖励", example = "1-已领取,0-未领取") + private Integer isReceived; + @ApiModelProperty(value = "连续签到记录") private List recordList; }