Browse Source

律师端代码

ldz 3 tuần trước cách đây
mục cha
commit
35a152d4a5

+ 85 - 28
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/LawyerUserServiceImpl.java

@@ -2,6 +2,7 @@ package shop.alien.lawyer.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -20,10 +21,7 @@ import shop.alien.lawyer.service.LawyerLegalProblemScenarioService;
 import shop.alien.lawyer.service.LawyerServiceAreaService;
 import shop.alien.lawyer.service.LawyerUserSearchHistoryService;
 import shop.alien.lawyer.service.LawyerUserService;
-import shop.alien.mapper.LawFirmMapper;
-import shop.alien.mapper.LawyerConsultationOrderMapper;
-import shop.alien.mapper.LawyerServiceAreaMapper;
-import shop.alien.mapper.LawyerUserMapper;
+import shop.alien.mapper.*;
 import shop.alien.util.common.ListToPage;
 
 import java.util.*;
@@ -49,6 +47,7 @@ public class LawyerUserServiceImpl extends ServiceImpl<LawyerUserMapper, LawyerU
     private final LawyerConsultationOrderMapper lawyerConsultationOrderMapper;
     private final LawFirmMapper lawFirmMapper;
     private final BaseRedisService baseRedisService;
+    private final LawFirmPaymentMapper lawFirmPaymentmapper;
 
     @Override
     public R<IPage<LawyerUser>> getLawyerUserList(int pageNum, int pageSize, String name, String phone, Integer status) {
@@ -547,42 +546,100 @@ public class LawyerUserServiceImpl extends ServiceImpl<LawyerUserMapper, LawyerU
             log.warn("更新律师用户信息失败:参数为空或律师ID为空");
             return R.fail("律师ID不能为空");
         }
-
         LawyerUser lawyerUser = new LawyerUser();
-        BeanUtils.copyProperties(lawyerUserVo, lawyerUser);
+        lawyerUser.setId(lawyerUserVo.getId());
+
+        if (lawyerUserVo.getFirstLevelScenarioId() != null && !lawyerUserVo.getFirstLevelScenarioId().isEmpty()) {
+            // 先将该律师的所有服务领域设置为逻辑删除
+            UpdateWrapper<LawyerServiceArea> deleteWrapper = new UpdateWrapper<>();
+            deleteWrapper.eq("lawyer_user_id", lawyerUserVo.getId())
+                    .set("delete_flag", 1)
+                    .set("updated_time", new Date());
+            lawyerServiceAreaMapper.update(null, deleteWrapper);
+            // 拆分场景ID并逐个处理
+            String[] scenarioIds = lawyerUserVo.getFirstLevelScenarioId().split(",");
+            for (String id : scenarioIds) {
+                // 去除空格并验证ID有效性
+                String trimmedId = id.trim();
+                if (!trimmedId.isEmpty()) {
+                    try {
+                        LawyerServiceArea lawyerServiceArea = new LawyerServiceArea();
+                        lawyerServiceArea.setLawyerUserId(lawyerUserVo.getId());
+                        // 只设置当前循环的ID,而不是整个字符串
+                        lawyerServiceArea.setProblemScenarioId(Integer.valueOf(trimmedId));
+                        lawyerServiceArea.setCreatedTime(new Date());
+                        lawyerServiceArea.setUpdatedTime(new Date());
+                        lawyerServiceArea.setDeleteFlag(0);
+                        lawyerServiceArea.setStatus(1);
+                        int insertResult = lawyerServiceAreaMapper.insert(lawyerServiceArea);
+                        if (insertResult <= 0) {
+                            log.warn("更新律师用户信息失败:更新数据库失败,律师ID={}", lawyerUserVo.getId());
+                            return R.fail("修改律师信息失败");
+                        }
+                    } catch (NumberFormatException e) {
+                        log.warn("更新律师用户信息失败:场景ID格式错误,ID={}, 错误={}", trimmedId, e.getMessage());
+                        return R.fail("修改律师信息失败:场景ID格式错误");
+                    }
+                }
+            }
 
-        Integer result = lawyerUserMapper.updateLawyerUser(lawyerUser);
+        }
+        if (lawyerUserVo.getFirmId() != null) {
+            lawyerUser.setFirmId(lawyerUserVo.getFirmId());
+            Integer result = lawyerUserMapper.updateLawyerUser(lawyerUser);
+            if (result <= 0) {
+                log.warn("更新律所信息失败:更新数据库失败,律师ID={}", lawyerUserVo.getId());
+                return R.fail("修改律师信息失败");
+            }
+            //根据律师表中的firm_id进行修改账号和地址
+            UpdateWrapper<LawFirmPayment> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.eq("firm_id", lawyerUserVo.getFirmId())
+                    .set("payment_account", lawyerUserVo.getPaymentNum()) // 假设有账号字段
+                    .set("address", lawyerUserVo.getAddress()); // 假设有地址字段
+            lawFirmPaymentmapper.update(null, updateWrapper);
 
+        }
 
+        boolean hasUpdate = false; // 标记是否有字段需要更新
 
-        if (result <= 0) {
-            log.warn("更新律师用户信息失败:更新数据库失败,律师ID={}", lawyerUserVo.getId());
-            return R.fail("修改律师信息失败");
+        if (lawyerUserVo.getHeadImg() != null) {
+            lawyerUser.setHeadImg(lawyerUserVo.getHeadImg());
+            hasUpdate = true;
+        }
+        if (lawyerUserVo.getName() != null) {
+            lawyerUser.setName(lawyerUserVo.getName());
+            hasUpdate = true;
+        }
+        if (lawyerUserVo.getPersonalIntroduction() != null) {
+            lawyerUser.setPersonalIntroduction(lawyerUserVo.getPersonalIntroduction());
+            hasUpdate = true;
+        }
+        if (lawyerUserVo.getPhone() != null) {
+            lawyerUser.setPhone(lawyerUserVo.getPhone());
+            hasUpdate = true;
+        }
+        if (lawyerUserVo.getOrderReceivingStatus() != null) {
+            lawyerUser.setOrderReceivingStatus(lawyerUserVo.getOrderReceivingStatus());
+            hasUpdate = true;
+        }
+        if (lawyerUserVo.getPracticeStartDate() != null) {
+            lawyerUser.setPracticeStartDate(lawyerUserVo.getPracticeStartDate());
+            hasUpdate = true;
         }
 
-        //更新法律场景部分
-        if(lawyerUserVo.getFirstLevelScenarioId() != null && !lawyerUserVo.getFirstLevelScenarioId().isEmpty()){
-            lawyerServiceAreaMapper.delete(new QueryWrapper<LawyerServiceArea>().eq("lawyer_user_id", lawyerUserVo.getId()));
-            for (String id : lawyerUserVo.getFirstLevelScenarioId().split(",")) {
-                LawyerServiceArea lawyerServiceArea = new LawyerServiceArea();
-                lawyerServiceArea.setLawyerUserId(lawyerUserVo.getId());
-                lawyerServiceArea.setProblemScenarioId(Integer.valueOf(id));
-                lawyerServiceArea.setProblemScenarioId(Integer.valueOf(lawyerUserVo.getFirstLevelScenarioId()));
-                lawyerServiceArea.setCreatedTime(new Date());
-                lawyerServiceArea.setUpdatedTime(new Date());
-                lawyerServiceArea.setDeleteFlag(0);
-                lawyerServiceArea.setStatus(1);
-                int insertLawyerServiceAre =lawyerServiceAreaMapper.insert(lawyerServiceArea);
-                if (insertLawyerServiceAre <= 0) {
-                    log.warn("更新律师用户信息失败:更新数据库失败,律师ID={}", lawyerUserVo.getId());
-                    return R.fail("修改律师信息失败");
-                }
+// 只有当有字段需要更新时才执行更新操作
+        if (hasUpdate) {
+
+            Integer result = lawyerUserMapper.updateLawyerUser(lawyerUser);
+            if (result <= 0) {
+                log.warn("更新律师用户信息失败:更新数据库失败,律师ID={}", lawyerUserVo.getId());
+                return R.fail("修改律师信息失败");
             }
         }
 
 
         // 查询更新后的律师信息
-        LawyerUserVo res=lawyerUserMapper.selectInfo(lawyerUserVo.getId());
+        LawyerUserVo res = lawyerUserMapper.selectInfo(lawyerUserVo.getId());
         return R.data(res);
     }