From 02b087d8d55a7931d87c6e39423d9362463d67c9 Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期日, 09 十月 2022 14:13:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java |  113 +++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 70 insertions(+), 43 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 f019713..b932c4a 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
@@ -28,6 +28,7 @@
 import com.panzhihua.service_community.service.ComStreetService;
 import com.panzhihua.service_community.util.MyAESUtil;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -35,6 +36,7 @@
 import java.util.Date;
 import java.util.List;
 
+import static java.util.Objects.isNull;
 import static java.util.Objects.nonNull;
 
 @Service
@@ -60,53 +62,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());
+                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("操作失败");
     }
 
+
     /**
      * 后台获取专家列表
      * @param page

--
Gitblit v1.7.1