|
|
@@ -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);
|
|
|
}
|
|
|
|