From 6c823dd44dbde79f008001a2a11e7bf9bc6bf8cc Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期三, 04 十二月 2024 18:15:44 +0800
Subject: [PATCH] fix:合伙人列表操作日志

---
 src/main/java/com/mzl/flower/service/partner/PartnerService.java |  140 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 139 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/partner/PartnerService.java b/src/main/java/com/mzl/flower/service/partner/PartnerService.java
index 609684c..3be43a8 100644
--- a/src/main/java/com/mzl/flower/service/partner/PartnerService.java
+++ b/src/main/java/com/mzl/flower/service/partner/PartnerService.java
@@ -10,19 +10,27 @@
 import com.mzl.flower.dto.request.partner.*;
 import com.mzl.flower.dto.response.partner.PartnerDTO;
 import com.mzl.flower.entity.partner.Partner;
+import com.mzl.flower.entity.system.User;
 import com.mzl.flower.mapper.partner.PartnerMapper;
+import com.mzl.flower.mapper.system.UserMapper;
+import com.mzl.flower.service.BaseService;
 import com.mzl.flower.service.UploadService;
+import com.mzl.flower.service.system.UserService;
 import com.mzl.flower.utils.DateUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.time.LocalDateTime;
+import java.util.Collection;
 import java.util.List;
 
 @Service
@@ -36,14 +44,24 @@
 
     private final PartnerMapper partnerMapper;
 
+    private final UserMapper userMapper;
+
 
     private final WxMaService maService;
 
 
     private final UploadService uploadService;
 
-    public PartnerService(PartnerMapper partnerMapper, WxMaService maService, UploadService uploadService) {
+    @Resource
+    private BaseService baseService;
+
+    @Autowired
+    private UserService userService;
+
+
+    public PartnerService(PartnerMapper partnerMapper, UserMapper userMapper, WxMaService maService, UploadService uploadService) {
         this.partnerMapper = partnerMapper;
+        this.userMapper = userMapper;
         this.maService = maService;
         this.uploadService = uploadService;
     }
@@ -54,16 +72,50 @@
             if(checkExist(dto.getUserId())){
                 throw new ValidationException("合伙人信息已登记");
             }
+            if(StringUtils.isNotBlank(dto.getContactTel()) && StringUtils.isNotBlank(dto.getUserId())){
+                //验证手机号
+                User user = userMapper.selectById(dto.getUserId());
+                if(user==null){
+                    throw new ValidationException("合伙人账号信息不存在");
+                }
+                if(userMapper.selectCount(new LambdaQueryWrapper<User>().eq(User::getTel, dto.getContactTel())
+                        .eq(User::getType, Constants.USER_TYPE.partner.name())
+                        .ne(User::getId, dto.getUserId())
+                        .eq(User::getDeleted, 0)
+                )>0){
+                    throw new ValidationException("手机号已被注册使用");
+                }
+                user.setTel(dto.getContactTel());
+                userMapper.updateById(user);
+            }
             partner = new Partner();
             BeanUtils.copyProperties(dto, partner,"id");
             partner.setIdCards(JSON.toJSONString(dto.getIdCards()));
             partner.create(SecurityUtils.getUserId());
             partner.setStatus(PARTNER_STATUS_AUDIT);
+            partner.setIsEnabled(true);
             partnerMapper.insert(partner);
         }else{//重新修改
             partner = partnerMapper.selectById(dto.getId());
             if(partner==null){
                 throw new ValidationException("合伙人信息未登记");
+            }
+            if(StringUtils.isNotBlank(dto.getContactTel()) && !partner.getContactTel().equals(dto.getContactTel())){
+                //验证手机号
+                User user = userMapper.selectById(partner.getUserId());
+                if(user==null){
+                    throw new ValidationException("合伙人账号信息不存在");
+                }
+                if(userMapper.selectCount(new LambdaQueryWrapper<User>().eq(User::getTel, dto.getContactTel())
+                        .eq(User::getType, Constants.USER_TYPE.partner.name())
+                        .ne(User::getId, partner.getUserId())
+                        .eq(User::getDeleted, 0)
+                )>0){
+                    throw new ValidationException("手机号已被注册使用");
+                }
+                user.setTel(dto.getContactTel());
+                partner.setContactTel(dto.getContactTel());
+                userMapper.updateById(user);
             }
             BeanUtils.copyProperties(dto, partner,"id");
             partner.setIdCards(JSON.toJSONString(dto.getIdCards()));
@@ -128,8 +180,35 @@
         partner.setProvince(dto.getProvince());
         partner.setCity(dto.getCity());
         partner.setRegion(dto.getRegion());
+        if(StringUtils.isNotBlank(dto.getName())){
+            partner.setName(dto.getName());
+        }
+        if(StringUtils.isNotBlank(dto.getContactTel()) && !partner.getContactTel().equals(dto.getContactTel())){
+            //验证手机号
+            User user = userMapper.selectById(partner.getUserId());
+            if(user==null){
+                throw new ValidationException("合伙人账号信息不存在");
+            }
+            if(userMapper.selectCount(new LambdaQueryWrapper<User>().eq(User::getTel, dto.getContactTel())
+                    .eq(User::getType, Constants.USER_TYPE.partner.name())
+                    .ne(User::getId, partner.getUserId())
+                    .eq(User::getDeleted, 0)
+            )>0){
+                throw new ValidationException("手机号已被注册使用");
+            }
+            user.setTel(dto.getContactTel());
+            partner.setContactTel(dto.getContactTel());
+            userMapper.updateById(user);
+        }
+        partner.setIdCards(dto.getIdCards());
+        partner.setAddress(dto.getAddress());
+        partner.setCityWarehouse(dto.getCityWarehouse());
         partner.update(SecurityUtils.getUserId());
         partnerMapper.updateById(partner);
+
+
+
+
     }
     public String generateCodeDTO(GenerateCodeDTO dto) {
         try {
@@ -161,4 +240,63 @@
         partner.update(SecurityUtils.getUserId());
         partnerMapper.updateById(partner);
     }
+
+    public void isEnable(Long id) {
+        Partner partner = partnerMapper.selectById(id);
+        if (partner == null) {
+            throw new ValidationException("合伙人信息不存在");
+        }
+        if (partner.getIsEnabled()) {
+            partner.setIsEnabled(false);
+            //强制下线
+            baseService.removeToken(partner.getUserId());
+        } else {
+            partner.setIsEnabled(true);
+        }
+        partner.update(SecurityUtils.getUserId());
+        partnerMapper.updateById(partner);
+    }
+
+    public void baseUpdate(UpdatePartnerBaseDTO dto) {
+        Partner partner = partnerMapper.selectById(dto.getId());
+        if(partner==null){
+            throw new ValidationException("合伙人信息未登记");
+        }
+        BeanUtils.copyProperties(dto, partner,"id");
+        partner.update(SecurityUtils.getUserId());
+        partnerMapper.updateById(partner);
+    }
+
+    @Transactional
+    public void phoneUpdate(UpdatePhoneDTO dto) {
+        Partner partner = partnerMapper.selectById(dto.getId());
+        if(partner==null){
+            throw new ValidationException("合伙人信息未登记");
+        }
+        User user = userService.getUserById(partner.getUserId());
+        if(user == null){
+            throw new ValidationException("用户不存在");
+        }
+
+        // 查看当前合伙人的手机号是否被占用
+
+        final List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>()
+                .eq(User::getDeleted, 0)
+                .eq(User::getType, Constants.USER_TYPE.partner.name())
+                .eq(User::getLoginName, dto.getUsername()));
+        if(CollectionUtils.isNotEmpty(userList)){
+            throw new ValidationException("用户已存在");
+        }
+
+        partner.setContactTel(dto.getUsername());
+        partner.update(SecurityUtils.getUserId());
+        partnerMapper.updateById(partner);
+
+        user.setTel(dto.getUsername());
+        user.setLoginName(dto.getUsername());
+        user.update(SecurityUtils.getUserId());
+        userMapper.updateById(user);
+
+    }
+
 }

--
Gitblit v1.9.3