From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 09 六月 2025 11:54:00 +0800
Subject: [PATCH] 6.9新增登录失败冻结逻辑

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java |  282 +++++++++++++++++++++++---------------------------------
 1 files changed, 115 insertions(+), 167 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java
index 7c8ad4a..f8bb4ae 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java
@@ -1,5 +1,13 @@
 package com.panzhihua.service_community.service.impl;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -14,7 +22,6 @@
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.service_community.dao.ComActDAO;
-import com.panzhihua.service_community.dao.ComActIntegralRuleMapper;
 import com.panzhihua.service_community.dao.ComActIntegralUserMapper;
 import com.panzhihua.service_community.dao.ComActUserWalletMapper;
 import com.panzhihua.service_community.model.dos.ComActDO;
@@ -24,15 +31,11 @@
 import com.panzhihua.service_community.service.ComActIntegralRuleService;
 import com.panzhihua.service_community.service.ComActIntegralUserService;
 import com.panzhihua.service_community.service.ComActIntegralUserTradeService;
-import com.panzhihua.service_community.service.ComActService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
 
 /**
  * @auther lyq
@@ -41,7 +44,8 @@
  */
 @Slf4j
 @Service
-public class ComActIntegralUserServiceImpl extends ServiceImpl<ComActIntegralUserMapper, ComActIntegralUserDO> implements ComActIntegralUserService {
+public class ComActIntegralUserServiceImpl extends ServiceImpl<ComActIntegralUserMapper, ComActIntegralUserDO>
+    implements ComActIntegralUserService {
 
     @Resource
     private ComActUserWalletMapper comActUserWalletMapper;
@@ -54,21 +58,22 @@
 
     /**
      * 小程序-查询积分说明
-     * @return  积分说明
+     * 
+     * @return 积分说明
      */
     @Override
-    public R getIntegralExplainApplets(){
+    public R getIntegralExplainApplets() {
         String result = "";
-        Map<String,String> resultMap = comActUserWalletMapper.getAgreementContent(0L,6);
-        if(resultMap != null){
-            if(StringUtils.isEmpty(resultMap.get("content"))){
-                comActUserWalletMapper.insertSysAgreement(Constants.INTEGRAL_EXPLAIN,"积分规则说明",0L,6);
+        Map<String, String> resultMap = comActUserWalletMapper.getAgreementContent(0L, 6);
+        if (resultMap != null) {
+            if (StringUtils.isEmpty(resultMap.get("content"))) {
+                comActUserWalletMapper.insertSysAgreement(Constants.INTEGRAL_EXPLAIN, "积分规则说明", 0L, 6);
                 result = Constants.INTEGRAL_EXPLAIN;
-            }else{
+            } else {
                 result = resultMap.get("content");
             }
-        }else{
-            comActUserWalletMapper.insertSysAgreement(Constants.INTEGRAL_EXPLAIN,"积分规则说明",0L,6);
+        } else {
+            comActUserWalletMapper.insertSysAgreement(Constants.INTEGRAL_EXPLAIN, "积分规则说明", 0L, 6);
             result = Constants.INTEGRAL_EXPLAIN;
         }
         return R.ok(result);
@@ -76,40 +81,45 @@
 
     /**
      * 用户查询当前社区可领取积分规则列表
-     * @param userId    用户id
-     * @param communityId   社区id
-     * @return  可领取积分规则列表
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 可领取积分规则列表
      */
     @Override
-    public R getIntegralReceiveApplets(Long userId,Long communityId){
+    public R getIntegralReceiveApplets(Long userId, Long communityId) {
 
-        List<ComActIntegralUserRuleVO> integralUserRuleList = comActIntegralRuleService.getIntegralReceiveApplets(communityId);
-        if(integralUserRuleList.isEmpty()){
-            //如果没有查询到列表数据,增给社区增加默认规则列表再查询
-            List<ComActIntegralRuleDO> integralRuleList = getIntegralRuleList(communityId);
+        List<ComActIntegralUserRuleVO> integralUserRuleList =
+            comActIntegralRuleService.getIntegralReceiveApplets(communityId);
+        if (integralUserRuleList.isEmpty()) {
+            // 如果没有查询到列表数据,增给社区增加默认规则列表再查询
+            List<ComActIntegralRuleDO> integralRuleList = comActIntegralRuleService.getIntegralRuleList(communityId);
             comActIntegralRuleService.saveBatch(integralRuleList);
             integralUserRuleList = comActIntegralRuleService.getIntegralReceiveApplets(communityId);
         }
-        if(!integralUserRuleList.isEmpty()){
+        if (!integralUserRuleList.isEmpty()) {
             integralUserRuleList.forEach(integralUserRule -> {
-                if(integralUserRule.getIsRestrict().equals(ComActIntegralRuleDO.isRestrict.no)){
+                if (integralUserRule.getIsRestrict().equals(ComActIntegralRuleDO.isRestrict.no)) {
                     integralUserRule.setIsComplete(ComActIntegralUserRuleVO.isComplete.no);
-                }else{
+                } else {
                     ComActIntegralCountDTO integralCountDTO = new ComActIntegralCountDTO();
                     integralCountDTO.setUserId(userId);
                     integralCountDTO.setCommunityId(communityId);
                     integralCountDTO.setType(ComActIntegralUserTradeDO.changeType.add);
-                    if(integralUserRule.getType().equals(ComActIntegralRuleDO.type.month)){
+                    integralCountDTO.setServiceType(integralUserRule.getIntegralType());
+                    if (integralUserRule.getType().equals(ComActIntegralRuleDO.type.month)) {
                         integralCountDTO.setStartTime(DateUtils.getFirstDayOfMonthString());
                         integralCountDTO.setEndTime(DateUtils.getLastDayOfMonthString());
-                    }else if(integralUserRule.getType().equals(ComActIntegralRuleDO.type.day)){
+                    } else if (integralUserRule.getType().equals(ComActIntegralRuleDO.type.day)) {
                         integralCountDTO.setStartTime(DateUtils.getDayOfMonthString() + " 00:00:00");
                         integralCountDTO.setEndTime(DateUtils.getDayOfMonthString() + " 23:59:59");
                     }
                     Integer count = comActIntegralUserTradeService.getIntegralCount(integralCountDTO);
-                    if(count >= integralUserRule.getCount()){
+                    if (count >= integralUserRule.getCount()) {
                         integralUserRule.setIsComplete(ComActIntegralUserRuleVO.isComplete.yes);
-                    }else{
+                    } else {
                         integralUserRule.setIsComplete(ComActIntegralUserRuleVO.isComplete.no);
                     }
                 }
@@ -119,159 +129,97 @@
     }
 
     /**
-     * 小程序-查询用户积分列表
-     * @param userId    用户id
-     * @return  用户积分列表
+     * 小程序-积分统计
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户积分列表
      */
     @Override
-    public R getIntegralUserListApplets(Long userId,Long communityId){
+    public R getIntegralUserListApplets(Long userId, Long communityId) {
+        if (nonNull(communityId)) {
+            // 查询该用户在本社区下的积分账户是否存在,不存在则需要给用户创建
+            ComActIntegralUserDO integralUserDO =
+                    this.baseMapper.selectOne(new QueryWrapper<ComActIntegralUserDO>().lambda()
+                            .eq(ComActIntegralUserDO::getCommunityId, communityId).eq(ComActIntegralUserDO::getUserId, userId));
+            if (integralUserDO == null) {
+                integralUserDO = new ComActIntegralUserDO();
+                integralUserDO.setCommunityId(communityId);
+                integralUserDO.setUserId(userId);
+                integralUserDO.setCreateAt(new Date());
+                this.baseMapper.insert(integralUserDO);
+            }
+        }
+        ComActIntegralUserVO integralUserVO = this.baseMapper.getUserIntegralStatistics(userId, communityId);
+        if (isNull(communityId)) {
+            // 各社区已获积分统计
+            List<ComActIntegralUserListVO> integralUserList = this.baseMapper.getIntegralUserListApplets(userId);
+            integralUserVO.setIntegralUserList(integralUserList);
+        }
+        return R.ok(integralUserVO);
+    }
+
+    /**
+     * 查询社区积分账户排行榜
+     * 
+     * @param communityRankDTO
+     *            请求参数
+     * @return 社区积分账户排行榜
+     */
+    @Override
+    public R getIntegralCommunityRankApplets(ComActIntegralCommunityRankDTO communityRankDTO) {
+        return R.ok(this.baseMapper.getIntegralCommunityRankApplets(
+            new Page(communityRankDTO.getPageNum(), communityRankDTO.getPageSize()), communityRankDTO));
+    }
+
+    /**
+     * 根据社区活动id查询社区活动报名且未参与人员列表
+     * 
+     * @param activityId
+     *            活动id
+     * @return 社区活动报名且未参与人员列表
+     */
+    @Override
+    public R getTaskActivityPeopleList(Long activityId) {
+        return R.ok(this.baseMapper.getTaskActivityPeopleList(activityId));
+    }
+
+    @Override
+    public R getUserIntegralBalance(Long userId, Long communityId) {
         ComActIntegralUserVO integralUserVO = new ComActIntegralUserVO();
-        Integer amount = 0;
-        //查询该用户在本社区下的积分账户是否存在,不存在则需要给用户创建
-        ComActIntegralUserDO integralUserDO = this.baseMapper.selectOne(new QueryWrapper<ComActIntegralUserDO>().lambda()
-                .eq(ComActIntegralUserDO::getCommunityId,communityId).eq(ComActIntegralUserDO::getUserId,userId));
-        if(integralUserDO == null){
+        // 查询该用户在本社区下的积分账户是否存在,不存在则需要给用户创建
+        ComActIntegralUserDO integralUserDO =
+                this.baseMapper.selectOne(new QueryWrapper<ComActIntegralUserDO>().lambda()
+                        .eq(ComActIntegralUserDO::getCommunityId, communityId).eq(ComActIntegralUserDO::getUserId, userId));
+        if (integralUserDO == null) {
             integralUserDO = new ComActIntegralUserDO();
             integralUserDO.setCommunityId(communityId);
             integralUserDO.setUserId(userId);
             integralUserDO.setCreateAt(new Date());
             this.baseMapper.insert(integralUserDO);
         }
-
-        //查询用户积分账户列表
-        List<ComActIntegralUserListVO> integralUserList = this.baseMapper.getIntegralUserListApplets(userId);
-        if(!integralUserList.isEmpty()){
-            for (ComActIntegralUserListVO integralUser:integralUserList) {
-                //查询用户在本社区积分排行
-                IntegralUserRankVO userRank = this.baseMapper.getIntegralUserRank(integralUser.getCommunityId(),userId);
-                if(userRank != null){
-                    integralUser.setRank(userRank.getRank());
-                    amount += integralUser.getAmount();
-                }
-            }
-        }
-        //查询用户绑定社区名字
+        // 查询用户绑定社区名字
         ComActDO actDO = comActDAO.selectById(communityId);
-        if(actDO != null){
+        if (actDO != null) {
             integralUserVO.setCommunityName(actDO.getName());
         }
-
-        integralUserVO.setAmount(amount);
-        integralUserVO.setIntegralUserList(integralUserList);
+        integralUserVO.setAmount(integralUserDO.getIntegralSum());
         return R.ok(integralUserVO);
     }
 
     /**
-     * 加载默认社区积分规则列表
-     * @param communityId   社区id
-     * @return  默认积分规则列表
-     */
-    private List<ComActIntegralRuleDO> getIntegralRuleList(Long communityId){
-        List<ComActIntegralRuleDO> integralRuleList = new ArrayList<>();
-
-        //随手拍默认积分规则
-        ComActIntegralRuleDO integralRuleSSPDO = new ComActIntegralRuleDO();
-        integralRuleSSPDO.setCommunityId(communityId);
-        integralRuleSSPDO.setName("发布随手拍");
-        integralRuleSSPDO.setAmount(0);
-        integralRuleSSPDO.setIntegralDescribe("发布随手拍并被公示后");
-        integralRuleSSPDO.setIsRestrict(1);
-        integralRuleSSPDO.setType(ComActIntegralRuleDO.type.month);
-        integralRuleSSPDO.setCount(0);
-        integralRuleSSPDO.setIntegralType(ComActIntegralRuleDO.integralType.fbssp);
-        integralRuleList.add(integralRuleSSPDO);
-
-        //微心愿默认积分规则
-        ComActIntegralRuleDO integralRuleWXYDO = new ComActIntegralRuleDO();
-        integralRuleWXYDO.setCommunityId(communityId);
-        integralRuleWXYDO.setName("发布微心愿");
-        integralRuleWXYDO.setAmount(0);
-        integralRuleWXYDO.setIntegralDescribe("发布微心愿并完成后");
-        integralRuleWXYDO.setIsRestrict(1);
-        integralRuleWXYDO.setType(ComActIntegralRuleDO.type.month);
-        integralRuleWXYDO.setCount(0);
-        integralRuleWXYDO.setIntegralType(ComActIntegralRuleDO.integralType.fbssp);
-        integralRuleList.add(integralRuleWXYDO);
-
-        //议事投票默认积分规则
-        ComActIntegralRuleDO integralRuleYSTPDO = new ComActIntegralRuleDO();
-        integralRuleYSTPDO.setCommunityId(communityId);
-        integralRuleYSTPDO.setName("参与议事投票");
-        integralRuleYSTPDO.setAmount(0);
-        integralRuleYSTPDO.setIntegralDescribe("参与议事投票");
-        integralRuleYSTPDO.setIsRestrict(1);
-        integralRuleYSTPDO.setType(ComActIntegralRuleDO.type.day);
-        integralRuleYSTPDO.setCount(0);
-        integralRuleYSTPDO.setIntegralType(ComActIntegralRuleDO.integralType.cyystp);
-        integralRuleList.add(integralRuleYSTPDO);
-
-        //志愿者活动默认积分规则
-        ComActIntegralRuleDO integralRuleZYZDO = new ComActIntegralRuleDO();
-        integralRuleZYZDO.setCommunityId(communityId);
-        integralRuleZYZDO.setName("参与志愿者活动");
-        integralRuleZYZDO.setAmount(0);
-        integralRuleZYZDO.setIntegralDescribe("报名参加志愿者活动,仅限志愿者");
-        integralRuleZYZDO.setIsRestrict(1);
-        integralRuleZYZDO.setType(ComActIntegralRuleDO.type.month);
-        integralRuleZYZDO.setCount(0);
-        integralRuleZYZDO.setIntegralType(ComActIntegralRuleDO.integralType.cyzyzhd);
-        integralRuleList.add(integralRuleZYZDO);
-
-        //社区活动默认积分规则
-        ComActIntegralRuleDO integralRuleSQHDDO = new ComActIntegralRuleDO();
-        integralRuleSQHDDO.setCommunityId(communityId);
-        integralRuleSQHDDO.setName("参与社区活动");
-        integralRuleSQHDDO.setAmount(0);
-        integralRuleSQHDDO.setIntegralDescribe("报名参加社区活动,所有人可参与");
-        integralRuleSQHDDO.setIsRestrict(1);
-        integralRuleSQHDDO.setType(ComActIntegralRuleDO.type.month);
-        integralRuleSQHDDO.setCount(0);
-        integralRuleSQHDDO.setIntegralType(ComActIntegralRuleDO.integralType.cysqhd);
-        integralRuleList.add(integralRuleSQHDDO);
-
-        //党员活动默认积分规则
-        ComActIntegralRuleDO integralRuleDYHDDO = new ComActIntegralRuleDO();
-        integralRuleDYHDDO.setCommunityId(communityId);
-        integralRuleDYHDDO.setName("参与党员活动");
-        integralRuleDYHDDO.setAmount(0);
-        integralRuleDYHDDO.setIntegralDescribe("报名参加社区党员活动,党员可参与");
-        integralRuleDYHDDO.setIsRestrict(1);
-        integralRuleDYHDDO.setType(ComActIntegralRuleDO.type.day);
-        integralRuleDYHDDO.setCount(0);
-        integralRuleDYHDDO.setIntegralType(ComActIntegralRuleDO.integralType.cydyhd);
-        integralRuleList.add(integralRuleDYHDDO);
-
-        //党员活动默认积分规则
-        ComActIntegralRuleDO integralRuleWJDCDO = new ComActIntegralRuleDO();
-        integralRuleWJDCDO.setCommunityId(communityId);
-        integralRuleWJDCDO.setName("参与问卷调查");
-        integralRuleWJDCDO.setAmount(0);
-        integralRuleWJDCDO.setIntegralDescribe("参与问卷调查");
-        integralRuleWJDCDO.setIsRestrict(1);
-        integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day);
-        integralRuleWJDCDO.setCount(0);
-        integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cydcwj);
-        integralRuleList.add(integralRuleWJDCDO);
-        return integralRuleList;
-    }
-
-    /**
-     * 查询社区积分账户排行榜
-     * @param communityRankDTO  请求参数
-     * @return  社区积分账户排行榜
+     * 获取积分详情
+     * @param id
+     * @return
      */
     @Override
-    public R getIntegralCommunityRankApplets(ComActIntegralCommunityRankDTO communityRankDTO){
-        return R.ok(this.baseMapper.getIntegralCommunityRankApplets(new Page(communityRankDTO.getPageNum(),communityRankDTO.getPageSize()),communityRankDTO));
+    public R getUserIntegralDetail(Long id) {
+        return comActIntegralUserTradeService.getUserIntegralDetail(id);
     }
 
-    /**
-     * 根据社区活动id查询社区活动报名人员列表
-     * @param activityId    活动id
-     * @return  社区活动报名人员列表
-     */
     @Override
-    public R getTaskActivityPeopleList(Long activityId){
-        return R.ok(this.baseMapper.getTaskActivityPeopleList(activityId));
+    public IntegralUserRankVO getIntegralUserRank(Long communityId, Long userId)
+    {
+        return baseMapper.getIntegralUserRank(communityId,userId);
     }
 }

--
Gitblit v1.7.1