From cc73c7e2650525bb528a13fec25bf6b90639ebda Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 17 Mar 2023 17:46:40 +0800
Subject: [PATCH] 后台修改

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java |   41 +++++++++++++++++++++++++++++++++++------
 1 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java
index 78bcdad..7697f74 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java
@@ -5,23 +5,26 @@
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
+import cc.mrbird.febs.mall.conversion.MallOrderInfoConversion;
+import cc.mrbird.febs.mall.dto.ApiMallScoreSignRecordDto;
 import cc.mrbird.febs.mall.dto.ScoreSettingDto;
-import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
-import cc.mrbird.febs.mall.entity.MallMember;
-import cc.mrbird.febs.mall.entity.MallMemberWallet;
-import cc.mrbird.febs.mall.entity.MallScoreSignRecord;
+import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
 import cc.mrbird.febs.mall.mapper.MallMemberWalletMapper;
 import cc.mrbird.febs.mall.mapper.MallScoreSignRecordMapper;
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
 import cc.mrbird.febs.mall.service.IScoreService;
+import cc.mrbird.febs.mall.vo.ApiMallScoreSignRecordVo;
 import cc.mrbird.febs.mall.vo.ScoreSignVo;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -29,6 +32,7 @@
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author wzy
@@ -77,6 +81,16 @@
     }
 
     @Override
+    public List<ApiMallScoreSignRecordVo> findMallScoreSignRecordList(ApiMallScoreSignRecordDto apiMallScoreSignRecordDto) {
+
+        MallMember member = LoginUserUtil.getLoginUser();
+        IPage<ApiMallScoreSignRecordVo> page = new Page<>(apiMallScoreSignRecordDto.getPageNum(), apiMallScoreSignRecordDto.getPageSize());
+        apiMallScoreSignRecordDto.setMemberId(member.getId());
+        IPage<ApiMallScoreSignRecordVo> apiMallScoreSignRecordVos = mallScoreSignRecordMapper.selectApiOrderListInPage(page, apiMallScoreSignRecordDto);
+        return apiMallScoreSignRecordVos.getRecords();
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public void sign() {
         MallMember member = LoginUserUtil.getLoginUser();
@@ -87,6 +101,7 @@
         if (signScoreDic == null) {
             throw new FebsException("签到活动未开启");
         }
+        Integer signScore = Integer.parseInt(signScoreDic.getValue());
 
         MallScoreSignRecord mallScoreSignRecord = mallScoreSignRecordMapper.selectRecentSignRecord(member.getId());
         if (mallScoreSignRecord == null) {
@@ -96,8 +111,22 @@
         if (mallScoreSignRecord.getSignTime() != null && DateUtil.betweenDay(mallScoreSignRecord.getSignTime(), new Date(), true) == 0) {
             throw new FebsException("今日已签到");
         }
-
-        Integer signScore = Integer.parseInt(signScoreDic.getValue());
+        /**
+         * 获取签到次数
+         * 判断签到次数是否大于规定的时长signScoreDays,超出则获得的积分数为signScoreCnt
+         */
+        Integer count = mallScoreSignRecordMapper.selectCountByMemberId(member.getId());
+        DataDictionaryCustom signScoreDaysDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.SIGN_SCORE_DAYS.getType(),
+                DataDictionaryEnum.SIGN_SCORE_DAYS.getCode());
+        Integer signScoreDays = Integer.parseInt(signScoreDaysDic.getValue());
+        if(count >= signScoreDays){
+            DataDictionaryCustom signScoreCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                    DataDictionaryEnum.SIGN_SCORE_CNT.getType(),
+                    DataDictionaryEnum.SIGN_SCORE_CNT.getCode());
+            Integer signScoreCnt = Integer.parseInt(signScoreCntDic.getValue());
+            signScore = signScoreCnt;
+        }
         mallScoreSignRecord.setMemberId(member.getId());
         mallScoreSignRecord.setTotalCnt(signScore);
         mallScoreSignRecord.setSignTime(new Date());

--
Gitblit v1.9.1