From ffb18ccfe6750f4a65bce6e02e7f6edb54a5d76f Mon Sep 17 00:00:00 2001
From: manailin <261030956@qq.com>
Date: 星期六, 24 九月 2022 23:45:38 +0800
Subject: [PATCH] [修改] 三说代码事件流程代码提交

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java |  268 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 254 insertions(+), 14 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 cbd68ea..b23b06c 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
@@ -1,56 +1,296 @@
 package com.panzhihua.service_community.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.crypto.digest.MD5;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.common.model.dtos.community.sanshuo.ComSanshuoExpertDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ExpertRangeVO;
+import com.panzhihua.common.model.vos.sanshuo.ExpertShowVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.utlis.Snowflake;
-import com.panzhihua.service_community.dao.ComSanshuoExpertDao;
+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.model.dos.ComActDO;
+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 org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.nonNull;
 
 @Service
-public class ComSanShuoExpertServiceImpl extends ServiceImpl<ComSanshuoExpertDao, ComSanshuoExpert> implements ComSanShuoExpertService {
+public class ComSanShuoExpertServiceImpl  extends ServiceImpl<ComSanshuoExpertDao, ComSanshuoExpert> implements ComSanShuoExpertService {
 
     @Resource
     private ComSanshuoExpertDao comSanshuoExpertDao;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComSanshuoIndustryCenterDao comSanshuoIndustryCenterDao;
+    @Resource
+    private ComStreetDAO comStreetDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComEventMapper comEventMapper;
+
 
     /**
      * 添加专家
-     *
      * @param comSanshuoExpertDTO
      * @return 处理结果
-     */
+     * */
     @Override
     public R addExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) {
-        ComSanshuoExpert expert = new ComSanshuoExpert();
-        BeanUtil.copyProperties(comSanshuoExpertDTO, expert);
+        ComSanshuoExpert expert=new ComSanshuoExpert();
+        BeanUtil.copyProperties(comSanshuoExpertDTO,expert);
+        //处理id
+        if (nonNull(comSanshuoExpertDTO.getUnit())){
+            String id = comSanshuoExpertDTO.getUnit();
+            String[] split = id.split(",");
+            comSanshuoExpertDTO.setUnitId(split[split.length]);
+        }
         expert.setId(Snowflake.getId());
         expert.setCreateTime(new Date());
+        if (expert.getLevel()==2){
+            expert.setIndustryCenterId(Long.parseLong(comSanshuoExpertDTO.getUnitId()));
+        }else if(expert.getLevel()==3){
+            expert.setStreetId(Long.parseLong(comSanshuoExpertDTO.getUnitId()));
+        }else if(expert.getLevel()==4){
+            expert.setCommunityId(Long.parseLong(comSanshuoExpertDTO.getUnitId()));
+        }
         int insert = comSanshuoExpertDao.insert(expert);
-        if (insert > 0) {
-            return R.ok();
+        if (insert>0){
+            try {
+                comSanshuoExpertDTO.setPassword(MyAESUtil.Encrypt(comSanshuoExpertDTO.getPassword(),"Ryo7M3n8loC5Abcd"));
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            //生成后台账号
+            AdministratorsUserVO user=new AdministratorsUserVO();
+            user.setUserId(Snowflake.getId());
+            user.setAccount(comSanshuoExpertDTO.getAccount());
+            user.setPassword(comSanshuoExpertDTO.getPassword());
+            user.setName(comSanshuoExpertDTO.getName());
+            user.setType(11);
+            user.setImageUrl(comSanshuoExpertDTO.getAvatar());
+            return userService.sanShuoAddUser(user);
         }
         return R.fail("添加失败");
     }
 
     /**
      * 后台获取专家列表
-     *
      * @param page
      * @param keyWord
      * @param size
-     * @param range   数据范围:1街道下属/2社区下属/3业务中心下属/null三说会堂下属
-     * @param id      社区或街道或业务中心id
+     * @param loginUserInfo 登陆账号信息
      * @return 处理结果
-     */
+     * */
     @Override
-    public R expertPage(String keyWord, Integer page, Integer size, Integer range, Long id) {
-        return R.ok(comSanshuoExpertDao.expertPage(new Page(page, size), keyWord, range, id));
+    public R expertPage(String keyWord, Integer page, Integer size, LoginUserInfoVO loginUserInfo) {
+        //range:1.三说会堂下属,2业务中心下属,3街道下属,4社区下属
+        //id:社区或街道或业务中心id
+        //账号级别
+        Long id=null;
+        Integer range=null;
+        if (nonNull(loginUserInfo)){
+            if (nonNull(loginUserInfo.getUserType()) || nonNull(loginUserInfo.getType())){
+                if (nonNull(loginUserInfo.getUserType())){
+                    if (loginUserInfo.getUserType().equals(1)){
+                        range=3;
+                        id=loginUserInfo.getStreetId();
+                    }else if (loginUserInfo.getUserType().equals(2)){
+                        range=4;
+                        id=loginUserInfo.getCommunityId();
+                    }
+                }else if (loginUserInfo.getType().equals(11)){
+                    range=2;
+                    id=loginUserInfo.getCommunityId();
+                }
+            }
+        }
+        return R.ok(comSanshuoExpertDao.expertPage(new Page(page,size),keyWord,range,id));
     }
+
+    /**
+     * 专家风采
+     * */
+    @Override
+    public R expertShow() {
+        List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow();
+        for (ExpertShowVO expertShowVO : expertShowVOS) {
+            if (nonNull(expertShowVO.getLevel())){
+                if (1==expertShowVO.getLevel()) {
+                    expertShowVO.setName("区三说会堂调解专家");
+                }else if (2==expertShowVO.getLevel()){
+                    expertShowVO.setName("行业分中心调解专家");
+                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertIndustry();
+                    expertShowVO.setChildList(expertShowVOS1);
+                }else if (3==expertShowVO.getLevel()){
+                    expertShowVO.setName("镇/街道调解站调解专家");
+                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertStreet();
+                    expertShowVO.setChildList(expertShowVOS1);
+                }else {
+                    expertShowVO.setName("村/社区调解站调解专家");
+                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity();
+                    expertShowVO.setChildList(expertShowVOS1);
+                }
+            }
+        }
+        return R.ok(expertShowVOS);
+    }
+
+    /**
+     * 专家级别与单位范围
+     * */
+    @Override
+    public R expertRange(LoginUserInfoVO loginUserInfo) {
+        if (nonNull(loginUserInfo)){
+            if (loginUserInfo.getAccount().equals("zhengfawei") || loginUserInfo.getAccount().equals("admin")){
+                List<ExpertRangeVO> list=new ArrayList<>();
+                for (int i = 1; i < 5; i++) {
+                    ExpertRangeVO vo=new ExpertRangeVO();
+                    vo.setLevel(i);
+                    if (i==2){
+                        //设置行业分中心为childList
+                        vo.setChildList(comSanshuoIndustryCenterDao.indstryList());
+                    }else if (i==3){
+                        vo.setChildList(comSanshuoIndustryCenterDao.streetList());
+                    }else if (i==4){
+                        vo.setChildList(comSanshuoIndustryCenterDao.communityList());
+                    }
+                    list.add(vo);
+                }
+                return R.ok(list);
+            }else if (loginUserInfo.getType().equals(11)){
+                //三说会堂后台
+                List<ExpertRangeVO> list=new ArrayList<>();
+                ExpertRangeVO vo=new ExpertRangeVO();
+                vo.setLevel(1);
+                vo.setName("区三说会堂");
+                list.add(vo);
+                return R.ok(list);
+            }else if (loginUserInfo.getType().equals(12)){
+                //行业分中心后台
+                List<ExpertRangeVO> list=new ArrayList<>();
+                ExpertRangeVO vo=new ExpertRangeVO();
+                vo.setLevel(2);
+                vo.setName("行业分中心");
+                vo.setId(loginUserInfo.getCommunityId());
+                list.add(vo);
+                return R.ok(list);
+            }else if (nonNull(loginUserInfo.getUserType())){
+                if (loginUserInfo.getUserType().equals(1)){
+                    //街道账号
+                    ComStreetDO comStreetDO = comStreetDAO.selectById(loginUserInfo.getStreetId());
+                    List<ExpertRangeVO> list=new ArrayList<>();
+                    ExpertRangeVO vo=new ExpertRangeVO();
+                    vo.setLevel(3);
+                    vo.setName(comStreetDO.getName()+"调解站");
+                    vo.setId(loginUserInfo.getStreetId());
+                    list.add(vo);
+                    return R.ok(list);
+                }
+                if (loginUserInfo.getUserType().equals(2)){
+                    //街道账号
+                    ComActDO comActDO = comActDAO.selectById(loginUserInfo.getCommunityId());
+                    List<ExpertRangeVO> list=new ArrayList<>();
+                    ExpertRangeVO vo=new ExpertRangeVO();
+                    vo.setLevel(4);
+                    vo.setName(comActDO.getName()+"调解站");
+                    vo.setId(loginUserInfo.getStreetId());
+                    list.add(vo);
+                    return R.ok(list);
+                }
+            }
+        }
+        return R.fail();
+    }
+
+
+    /**
+     * 小程序获取专家列表
+     * */
+    @Override
+    public R selectExpertList() {
+        List<ComSanshuoExpert> comSanshuoExperts = comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getStatus, 1).eq(ComSanshuoExpert::getDelFlag, 1));
+        //设置成功率
+        for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts) {
+            //查询成功率
+            Integer count = comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, comSanshuoExpert.getId()).eq(ComEvent::getEventProcessStatus, 6));
+            Integer successCount = comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, comSanshuoExpert.getId()).eq(ComEvent::getEventProcessStatus, 6).eq(ComEvent::getEventResult, 2));
+            comSanshuoExpert.setCount(count);
+            if (nonNull(count) && !count.equals(0)){
+                comSanshuoExpert.setCount(count);
+                if (nonNull(successCount) && !count.equals(successCount)){
+                    //计算成功率
+                    comSanshuoExpert.setRate(NumberUtil.div(successCount, count,2));
+                }else {
+                    comSanshuoExpert.setRate(new BigDecimal(0));
+                }
+            }else {
+                comSanshuoExpert.setCount(0);
+            }
+
+        }
+        return R.ok(comSanshuoExperts);
+    }
+
+
+    /**
+     * 专家风采列表
+     * */
+    @Override
+    public R expertShowList(Integer level, Long id) {
+        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 );
+        }
+        List<ComSanshuoExpert> comSanshuoExperts = comSanshuoExpertDao.selectList(wrapper);
+        for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts) {
+            //获取成功率
+            //查询成功率
+            Integer count = comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, comSanshuoExpert.getId()).eq(ComEvent::getEventProcessStatus, 6));
+            Integer successCount = comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, comSanshuoExpert.getId()).eq(ComEvent::getEventProcessStatus, 6).eq(ComEvent::getEventResult, 2));
+            comSanshuoExpert.setCount(count);
+            if (nonNull(count) && !count.equals(0)){
+                comSanshuoExpert.setCount(count);
+                if (nonNull(successCount) && !count.equals(successCount)){
+                    //计算成功率
+                    comSanshuoExpert.setRate(NumberUtil.div(successCount, count,2));
+                }else {
+                    comSanshuoExpert.setRate(new BigDecimal(0));
+                }
+            }else {
+                comSanshuoExpert.setCount(0);
+            }
+        }
+        return R.ok(comSanshuoExperts);
+    }
+
+
 }

--
Gitblit v1.7.1