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/ComSanShuoExpertServiceImpl.java |  126 ++++++++++++++++++++++++++++++-----------
 1 files changed, 92 insertions(+), 34 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java
index ef08e01..bf755e5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java
@@ -2,8 +2,6 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.NumberUtil;
-import cn.hutool.crypto.SecureUtil;
-import cn.hutool.crypto.digest.MD5;
 import cn.hutool.extra.pinyin.PinyinUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,19 +16,14 @@
 import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
 import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.utlis.Snowflake;
-import com.panzhihua.common.utlis.StringUtils;
-import com.panzhihua.service_community.api.ComSanShuoExpertApi;
 import com.panzhihua.service_community.dao.*;
 import com.panzhihua.service_community.entity.ComEvent;
-import com.panzhihua.service_community.entity.ComSanshuoEvent;
 import com.panzhihua.service_community.entity.ComSanshuoExpert;
 import com.panzhihua.service_community.entity.ComSanshuoIndustryCenter;
 import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComSanshuoExpertTwoDO;
 import com.panzhihua.service_community.model.dos.ComStreetDO;
-import com.panzhihua.service_community.service.ComActService;
 import com.panzhihua.service_community.service.ComSanShuoExpertService;
-import com.panzhihua.service_community.service.ComStreetService;
-import com.panzhihua.service_community.util.MyAESUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -138,8 +131,10 @@
                 expert.setStreetId(Long.parseLong(expert.getUnitId()));
                 expert.setUnit(comStreetDAO.selectById(expert.getUnitId()).getName()+"调解站");
             }else if(expert.getLevel()==4){
-                expert.setCommunityId(Long.parseLong(expert.getUnitId()));
-                expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站");
+                if (nonNull(expert.getUnitId())){
+                    expert.setCommunityId(Long.parseLong(expert.getUnitId()));
+                    expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站");
+                }
             }
             return R.ok(comSanshuoExpertDao.updateById(expert));
         }
@@ -196,7 +191,7 @@
             range=1;
         }
         log.info("");
-        IPage<ComSanshuoExpertVO> comSanshuoExpertVOIPage = comSanshuoExpertDao.expertPage(new Page(page, size), keyWord, range, id, level);
+        IPage<ComSanshuoExpertVO> comSanshuoExpertVOIPage = comSanshuoExpertDao.expertPage(new Page(page, size), keyWord, range, id, level,loginUserInfo.getAppId());
         for (ComSanshuoExpertVO record : comSanshuoExpertVOIPage.getRecords()) {
             //获取调解次数和成功率
             record.setCount(comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, record.getId())));
@@ -215,8 +210,8 @@
      * 专家风采
      * */
     @Override
-    public R expertShow() {
-        List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow();
+    public R expertShow(String appId) {
+        List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow(appId);
         for (ExpertShowVO expertShowVO : expertShowVOS) {
             if (nonNull(expertShowVO.getLevel())){
                 if (1==expertShowVO.getLevel()) {
@@ -232,7 +227,7 @@
                     expertShowVO.setChildList(expertShowVOS1);
                 }else {
                     expertShowVO.setName("村/社区调解站调解专家");
-                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity();
+                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity(appId);
                     expertShowVO.setChildList(expertShowVOS1);
                 }
             }
@@ -246,7 +241,7 @@
      * */
     @Override
     public R expertRange(LoginUserInfoVO loginUserInfo) {
-        if (nonNull(loginUserInfo)){
+//        if (loginUserInfo!=null){
             if (loginUserInfo.getAccount().equals("zhengfawei") || loginUserInfo.getAccount().equals("admin")){
                 List<ExpertRangeVO> list=new ArrayList<>();
                 for (int i = 1; i < 5; i++) {
@@ -264,7 +259,7 @@
                     }else if (i==4){
                         vo.setId(4L);
                         vo.setChildList(comSanshuoIndustryCenterDao.communityList());
-                        vo.setName("社区调解站");
+                        vo.setName("社区调解室");
                     }else if(i==1){
                         vo.setId(1L);
                         vo.setName("三说会堂");
@@ -295,7 +290,7 @@
                 List<ExpertRangeVO> list = new ArrayList<>();
                 ExpertRangeVO vo = new ExpertRangeVO();
                 vo.setLevel(4);
-                vo.setName(comStreetDO.getName() + "调解站");
+                vo.setName(comStreetDO.getName() + "调解室");
                 vo.setId(loginUserInfo.getCommunityId());
                 list.add(vo);
                 return R.ok(list);
@@ -310,8 +305,8 @@
                 list.add(vo);
                 return R.ok(list);
             }
-        }
-        return R.fail();
+//        }
+        return R.ok("测试陈宫:"+loginUserInfo.getUserType());
     }
 
     /**
@@ -347,16 +342,29 @@
      * 专家风采列表
      * */
     @Override
-    public R expertShowList(Integer level, Long id) {
+    public R expertShowList(Integer level, Long id,String appId) {
         QueryWrapper<ComSanshuoExpert> wrapper=new QueryWrapper<>();
-        wrapper.eq("level",level );
-        if (level.equals(2)){
-            wrapper.eq("industry_center_id", id);
-        }else if (level.equals(3)){
-            wrapper.eq("street_id",id );
-        }else if (level.equals(4)){
-            wrapper.eq("community_id",id );
+        if (level==0){
+            wrapper.eq("app_id",appId );
+        }else {
+            if (level!=7){
+                wrapper.eq("level",level);
+                wrapper.eq("app_id",appId);
+                wrapper.eq("status",1 );
+                wrapper.eq("del_flag",1 );
+                if (level.equals(2)){
+                    wrapper.eq("industry_center_id", id);
+                }else if (level.equals(3)){
+                    wrapper.eq("street_id",id );
+                }else if (level.equals(4)){
+                    wrapper.eq("community_id",id );
+                }
+            }else {
+                wrapper.eq("id",id );
+            }
         }
+        wrapper.orderByDesc("(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 and event_result=2)/(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 ) ");
+        wrapper.orderByDesc("(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 )");
         List<ComSanshuoExpert> comSanshuoExperts = comSanshuoExpertDao.selectList(wrapper);
         for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts) {
             //获取成功率
@@ -369,13 +377,33 @@
                         //计算成功率
                         comSanshuoExpert.setRate(NumberUtil.div(successCount, count,2));
                 }
+                else {
+                    comSanshuoExpert.setRate(new BigDecimal(0));
+                }
             }else {
                 comSanshuoExpert.setRate(new BigDecimal(0));
             }
 
         }
-        return R.ok(comSanshuoExperts);
-    }
+        ComSanshuoExpertTwoDO comSanshuoExpertTwoVo=new ComSanshuoExpertTwoDO();
+        List<ComSanshuoExpert> comSanshuoExpertsOne=new ArrayList<>();
+        List<ComSanshuoExpert> comSanshuoExpertsTwo=new ArrayList<>();
+        for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts){
+            if (comSanshuoExpert.getId()%2==1){
+                comSanshuoExpertsOne.add(comSanshuoExpert);
+            }else {
+                comSanshuoExpertsTwo.add(comSanshuoExpert);
+            }
+        }
+        if (level==0){
+            comSanshuoExpertTwoVo.setComSanshuoExperts(comSanshuoExpertsOne);
+            comSanshuoExpertTwoVo.setComSanshuoExpertsTwo(comSanshuoExpertsTwo);
+            return R.ok(comSanshuoExpertTwoVo);
+        }
+        else {
+            return R.ok(comSanshuoExperts);
+        }
+     }
 
     @Override
     public void insertExpert(ComSanshuoExpert expert) {
@@ -427,24 +455,54 @@
     }
 
     @Override
-    public R backstageList(Integer level,LoginUserInfoVO loginUserInfoVO,Integer page,Integer size) {
+    public R backstageList(Integer level,LoginUserInfoVO loginUserInfoVO,Integer page,Integer size,String keyWord) {
         if (nonNull(level)){
             if (level.equals(1)){
                 //三说会堂权限,查看所有
-                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,null));
+                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,null ,loginUserInfoVO.getAppId(),keyWord));
             }else if (level.equals(2)){
                 //行业分中心
                 ComSanshuoIndustryCenter center = comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfoVO.getAccount()));
-                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,center.getId()));
+                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,center.getId(),loginUserInfoVO.getAppId(),keyWord));
             }else if (level.equals(3)){
                 //街道
-                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getStreetId()));
+                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getStreetId(),loginUserInfoVO.getAppId(),keyWord));
             }else if(level.equals(4)){
-                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId()));
+                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId(),loginUserInfoVO.getAppId(),keyWord));
             }
+        }else {
+            return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId(),loginUserInfoVO.getAppId(),keyWord));
         }
         return null;
     }
 
+    @Override
+    public R rangeList() {
+        List<ExpertRangeVO> list=new ArrayList<>();
+        for (int i = 1; i < 5; i++) {
+            ExpertRangeVO vo=new ExpertRangeVO();
+            vo.setLevel(i);
+            if (i==2){
+                //设置行业分中心为childList
+                vo.setId(2L);
+                vo.setChildList(comSanshuoIndustryCenterDao.indstryList());
+                vo.setName("行业分中心");
+            }else if (i==3){
+                vo.setId(3L);
+                vo.setChildList(comSanshuoIndustryCenterDao.streetList());
+                vo.setName("街道调解站");
+            }else if (i==4){
+                vo.setId(4L);
+                vo.setChildList(comSanshuoIndustryCenterDao.communityList());
+                vo.setName("社区调解站");
+            }else if(i==1){
+                vo.setId(1L);
+                vo.setName("三说会堂");
+            }
+            list.add(vo);
+        }
+        return R.ok(list);
+    }
+
 
 }

--
Gitblit v1.7.1