From 5997dc8acfa81a6c867c28810d1c3c9714efc46c Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期六, 29 三月 2025 14:55:42 +0800
Subject: [PATCH] fix: 登录

---
 src/main/java/com/mzl/flower/service/partner/PartnerService.java |  119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 117 insertions(+), 2 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 f0f110e..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,14 +10,18 @@
 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.supplier.Supplier;
+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;
 
@@ -26,6 +30,7 @@
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.time.LocalDateTime;
+import java.util.Collection;
 import java.util.List;
 
 @Service
@@ -39,6 +44,8 @@
 
     private final PartnerMapper partnerMapper;
 
+    private final UserMapper userMapper;
+
 
     private final WxMaService maService;
 
@@ -48,8 +55,13 @@
     @Resource
     private BaseService baseService;
 
-    public PartnerService(PartnerMapper partnerMapper, WxMaService maService, UploadService uploadService) {
+    @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;
     }
@@ -59,6 +71,22 @@
         if(dto.getId()==null){ //注册
             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");
@@ -71,6 +99,23 @@
             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()));
@@ -135,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 {
@@ -184,4 +256,47 @@
         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