From 69d19f3a36a22bcb9412146bccdeafc5ed1efa57 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期二, 18 十月 2022 20:16:14 +0800
Subject: [PATCH] 三说会堂事件操作权限处理

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java |  176 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 129 insertions(+), 47 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 a300fa5..604e5ce 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
@@ -4,6 +4,7 @@
 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.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -21,13 +22,16 @@
 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.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;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -35,9 +39,11 @@
 import java.util.Date;
 import java.util.List;
 
+import static java.util.Objects.isNull;
 import static java.util.Objects.nonNull;
 
 @Service
+@Slf4j
 public class ComSanShuoExpertServiceImpl  extends ServiceImpl<ComSanshuoExpertDao, ComSanshuoExpert> implements ComSanShuoExpertService {
 
     @Resource
@@ -60,52 +66,78 @@
      * @return 处理结果
      * */
     @Override
-    public R addExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) {
-        //是否重名
-        List<ComSanshuoExpert> checkExpert=comSanshuoExpertDao.selectExpertByNameOrPhoneOrAccount(comSanshuoExpertDTO);
-        if (checkExpert.size() != 0){
-            return R.fail("账号信息有重复");
-        }
-        ComSanshuoExpert expert=new ComSanshuoExpert();
-        BeanUtil.copyProperties(comSanshuoExpertDTO,expert);
-        if (nonNull(comSanshuoExpertDTO.getUnit())){
-            String id = comSanshuoExpertDTO.getUnit();
-            String[] split = id.split(",");
-            expert.setUnitId(split[split.length-1]);
-        }
-        expert.setId(Snowflake.getId());
-        expert.setCreateTime(new Date());
-        if (expert.getLevel()==2){
-            expert.setIndustryCenterId(Long.parseLong(expert.getUnitId()));
-            expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站");
-        }else if(expert.getLevel()==3){
-            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()+"调解站");
-        }
-        expert.setStatus(1);
-        expert.setDelFlag(1);
-        int insert = comSanshuoExpertDao.insert(expert);
-        if (insert>0){
-            try {
-                comSanshuoExpertDTO.setPassword(comSanshuoExpertDTO.getPassword());
-            } catch (Exception e) {
-                e.printStackTrace();
+    @Transactional(rollbackFor = Exception.class)
+    public R addOrUpdateExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) {
+        if (isNull(comSanshuoExpertDTO.getId())){
+            //是否重名
+            List<ComSanshuoExpert> checkExpert=comSanshuoExpertDao.selectExpertByNameOrPhoneOrAccount(comSanshuoExpertDTO);
+            if (checkExpert.size() != 0){
+                return R.fail("账号信息有重复");
             }
-            //生成后台账号
-            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);
+            ComSanshuoExpert expert=new ComSanshuoExpert();
+            BeanUtil.copyProperties(comSanshuoExpertDTO,expert);
+            if (nonNull(comSanshuoExpertDTO.getUnit())){
+                String id = comSanshuoExpertDTO.getUnit();
+                String[] split = id.split(",");
+                expert.setUnitId(split[split.length-1]);
+            }
+            expert.setId(Snowflake.getId());
+            expert.setCreateTime(new Date());
+            if (expert.getLevel()==2){
+                expert.setIndustryCenterId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站");
+            }else if(expert.getLevel()==3){
+                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()+"调解站");
+            }
+            expert.setStatus(1);
+            expert.setDelFlag(1);
+            int insert = comSanshuoExpertDao.insert(expert);
+            if (insert>0){
+                try {
+                    comSanshuoExpertDTO.setPassword(comSanshuoExpertDTO.getPassword());
+                } 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());
+                user.setPhone(comSanshuoExpertDTO.getPhone());
+                return R.ok(userService.sanShuoAddUser(user));
+            }
+        }else {
+            ComSanshuoExpert expert=new ComSanshuoExpert();
+            BeanUtil.copyProperties(comSanshuoExpertDTO,expert);
+            if (nonNull(comSanshuoExpertDTO.getUnit())){
+                String id = comSanshuoExpertDTO.getUnit();
+                String[] split = id.split(",");
+                expert.setUnitId(split[split.length-1]);
+            }
+            expert.setUpdateTime(new Date());
+            if (expert.getLevel()==2){
+                expert.setIndustryCenterId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站");
+            }else if(expert.getLevel()==3){
+                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()+"调解站");
+            }
+            return R.ok(comSanshuoExpertDao.updateById(expert));
         }
-        return R.fail("添加失败");
+
+        return R.fail("操作失败");
     }
+
 
     /**
      * 后台获取专家列表
@@ -116,7 +148,7 @@
      * @return 处理结果
      * */
     @Override
-    public R expertPage(String keyWord, Integer page, Integer size, LoginUserInfoVO loginUserInfo) {
+    public R expertPage(String keyWord, Integer page, Integer size, LoginUserInfoVO loginUserInfo,Integer level) {
         //range:1.三说会堂下属,2业务中心下属,3街道下属,4社区下属
         //id:社区或街道或业务中心id
         //账号级别
@@ -142,7 +174,7 @@
             id=null;
             range=null;
         }
-        return R.ok(comSanshuoExpertDao.expertPage(new Page(page,size),keyWord,range,id));
+        return R.ok(comSanshuoExpertDao.expertPage(new Page(page,size),keyWord,range,id,level));
     }
 
     /**
@@ -172,6 +204,7 @@
         }
         return R.ok(expertShowVOS);
     }
+
 
     /**
      * 专家级别与单位范围
@@ -218,7 +251,7 @@
                 ExpertRangeVO vo=new ExpertRangeVO();
                 vo.setLevel(2);
                 vo.setName("行业分中心");
-                vo.setId(loginUserInfo.getCommunityId());
+                vo.setId(comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfo.getAccount())).getId());
                 list.add(vo);
                 return R.ok(list);
             }else if (nonNull(loginUserInfo.getUserType())){
@@ -240,7 +273,7 @@
                     ExpertRangeVO vo=new ExpertRangeVO();
                     vo.setLevel(4);
                     vo.setName(comActDO.getName()+"调解站");
-                    vo.setId(loginUserInfo.getStreetId());
+                    vo.setId(loginUserInfo.getCommunityId());
                     list.add(vo);
                     return R.ok(list);
                 }
@@ -315,5 +348,54 @@
         return R.ok(comSanshuoExperts);
     }
 
+    @Override
+    public void insertExpert(ComSanshuoExpert expert) {
+//            if (nonNull(comSanshuoExpertDTO.getUnit())){
+//                String id = comSanshuoExpertDTO.getUnit();
+//                String[] split = id.split(",");
+//                expert.setUnitId(split[split.length-1]);
+//            }
+            expert.setId(Snowflake.getId());
+            expert.setCreateTime(new Date());
+            if (expert.getLevel()==2){
+                expert.setIndustryCenterId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站");
+            }else if(expert.getLevel()==3){
+                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()+"调解站");
+            }
+            expert.setStatus(1);
+            expert.setDelFlag(1);
+            expert.setCreateBy("admin");
+            expert.setCreateTime(new Date());
+            expert.setAdded(0);
+            expert.setPassword("Huacheng@123");
+            expert.setAccount(PinyinUtil.getPinyin(expert.getName(),""));
+            int insert = comSanshuoExpertDao.insert(expert);
+            if (insert>0){
+                log.info(expert.getName()+"添加完成");
+            }
+//            if (insert>0){
+//                try {
+//                    comSanshuoExpertDTO.setPassword(comSanshuoExpertDTO.getPassword());
+//                } 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());
+//                user.setPhone(comSanshuoExpertDTO.getPhone());
+//                userService.sanShuoAddUser(user);
+//            }
+    }
+
 
 }

--
Gitblit v1.7.1