From 9b8db73dbec26af11e80ee36926ac6d039b921ff Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期三, 02 四月 2025 14:01:16 +0800
Subject: [PATCH] add 默认头像

---
 src/main/java/com/mzl/flower/service/system/UserService.java |  121 +++++++++++++++++++++++++++++-----------
 1 files changed, 88 insertions(+), 33 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/system/UserService.java b/src/main/java/com/mzl/flower/service/system/UserService.java
index 2f0febf..3d25276 100644
--- a/src/main/java/com/mzl/flower/service/system/UserService.java
+++ b/src/main/java/com/mzl/flower/service/system/UserService.java
@@ -8,6 +8,8 @@
 import com.mzl.flower.constant.Constants;
 import com.mzl.flower.dto.request.BindWechatDTO;
 import com.mzl.flower.dto.request.CreateWechatUserDTO;
+import com.mzl.flower.dto.request.UserLoginDTO;
+import com.mzl.flower.dto.request.UserPhoneLoginDTO;
 import com.mzl.flower.dto.request.customer.UpdateCustomerDTO;
 import com.mzl.flower.dto.request.system.*;
 import com.mzl.flower.dto.response.current.CurrentUserDTO;
@@ -534,41 +536,42 @@
             // 获取锁,最多等待 10 秒,锁自动释放时间 30 秒
             if (lock.tryLock(10, 30, TimeUnit.SECONDS)) {
                 try{
-                // 其次查找当前loginName是prephonenume的,userType是customer的用户存在不存在
-                if (StringUtils.isEmpty(dto.getPurePhoneNumber()) && StringUtils.isEmpty(dto.getPhoneNumber())) {
-                    throw new ValidationException("微信获取的电话号码为空!无法注册");
-                }
-                // 1:查看用户存在不存在
-                List<String> userTypes = new ArrayList<>();
-                userTypes.add(dto.getUserType());
-                User user = findByLoginName(dto.getPurePhoneNumber(), userTypes);
-                if (ObjectUtils.isEmpty(user)) {
-                    // 是新用户,需要注册
-                    user = new User();
-                    user.setId(UUIDGenerator.getUUID());
-                    user.setLoginName(dto.getPurePhoneNumber());
-                    user.setTel(dto.getPurePhoneNumber());
-                    user.setNickName(dto.getPurePhoneNumber());
-                    user.setPassword(passwordEncoder.encode("12345678"));
-                    user.setType(dto.getUserType());
-                    user.setStatus(Constants.STATUS_ACTIVE);
-                    user.setIsSys(Constants.N);
-                    user.create();
-                    userMapper.insert(user);
-
-                    // 注册商户信息
-                    UpdateCustomerDTO updateCustomerDTO = new UpdateCustomerDTO();
-                    updateCustomerDTO.setUserId(user.getId());
-                    if (StringUtils.isNotBlank(dto.getPurePhoneNumber())) {
-                        updateCustomerDTO.setName("花满芫-" + dto.getPurePhoneNumber().substring(dto.getPurePhoneNumber().length() - 4));
-
+                    // 其次查找当前loginName是prephonenume的,userType是customer的用户存在不存在
+                    if (StringUtils.isEmpty(dto.getPurePhoneNumber()) && StringUtils.isEmpty(dto.getPhoneNumber())) {
+                        throw new ValidationException("微信获取的电话号码为空!无法注册");
                     }
-                    customerService.addOrUpdateCustomer(updateCustomerDTO);
-                }
+                    // 1:查看用户存在不存在
+                    List<String> userTypes = new ArrayList<>();
+                    userTypes.add(dto.getUserType());
+                    User user = findByLoginName(dto.getPurePhoneNumber(), userTypes);
+                    if (ObjectUtils.isEmpty(user)) {
+                        // 是新用户,需要注册
+                        user = new User();
+                        user.setId(UUIDGenerator.getUUID());
+                        user.setLoginName(dto.getPurePhoneNumber());
+                        user.setTel(dto.getPurePhoneNumber());
+                        user.setNickName(dto.getPurePhoneNumber());
+                        user.setPassword(passwordEncoder.encode("12345678"));
+                        user.setType(dto.getUserType());
+                        user.setStatus(Constants.STATUS_ACTIVE);
+                        user.setIsSys(Constants.N);
+                        user.create();
+                        userMapper.insert(user);
 
-                BindWechatDTO wechatDTO = new BindWechatDTO();
-                wechatDTO.setRealName(dto.getPurePhoneNumber());
-                bindWechat(user.getId(), dto.getOpenId(), dto.getUnionId(), dto.getSessionKey(), wechatDTO);
+                        // 注册商户信息
+                        UpdateCustomerDTO updateCustomerDTO = new UpdateCustomerDTO();
+                        updateCustomerDTO.setUserId(user.getId());
+                        if (StringUtils.isNotBlank(dto.getPurePhoneNumber())) {
+                            updateCustomerDTO.setName("花满芫-" + dto.getPurePhoneNumber().substring(dto.getPurePhoneNumber().length() - 4));
+
+                        }
+                        updateCustomerDTO.setIsMember(true);  // 会员
+                        customerService.addOrUpdateCustomer(updateCustomerDTO);
+                    }
+
+                    BindWechatDTO wechatDTO = new BindWechatDTO();
+                    wechatDTO.setRealName(dto.getPurePhoneNumber());
+                    bindWechat(user.getId(), dto.getOpenId(), dto.getUnionId(), dto.getSessionKey(), wechatDTO);
                 }finally {
                     lock.unlock();
                 }
@@ -586,4 +589,56 @@
     }
 
 
+    public User registPhoneUser(UserPhoneLoginDTO dto) {
+        String RETISTER_KEY = "%s_%s";
+        RLock lock = redissonClient.getLock(String.format(RETISTER_KEY, dto.getUsername(), dto.getUserType()));
+        try {
+            // 获取锁,最多等待 10 秒,锁自动释放时间 30 秒
+            if (lock.tryLock(10, 30, TimeUnit.SECONDS)) {
+                try {
+                    // 其次查找当前loginName是prephonenume的,userType是customer的用户存在不存在
+                    if (StringUtils.isEmpty(dto.getUsername()) && StringUtils.isEmpty(dto.getUsername())) {
+                        throw new ValidationException("电话号码为空!无法注册");
+                    }
+                    // 1:查看用户存在不存在
+                    List<String> userTypes = new ArrayList<>();
+                    userTypes.add(dto.getUserType());
+                    User user = findByLoginName(dto.getUsername(), userTypes);
+                    if (ObjectUtils.isEmpty(user)) {
+                        // 是新用户,需要注册
+                        user = new User();
+                        user.setId(UUIDGenerator.getUUID());
+                        user.setLoginName(dto.getUsername());
+                        user.setTel(dto.getUsername());
+                        user.setNickName(dto.getUsername());
+                        user.setPassword(passwordEncoder.encode("12345678"));
+                        user.setType(dto.getUserType());
+                        user.setStatus(Constants.STATUS_ACTIVE);
+                        user.setIsSys(Constants.N);
+                        user.create();
+                        userMapper.insert(user);
+
+                        // 注册商户信息
+                        UpdateCustomerDTO updateCustomerDTO = new UpdateCustomerDTO();
+                        updateCustomerDTO.setUserId(user.getId());
+                        if (StringUtils.isNotBlank(dto.getUsername())) {
+                            updateCustomerDTO.setName("智信-" + dto.getUsername().substring(dto.getUsername().length() - 4));
+
+                        }
+                        updateCustomerDTO.setCover("https://hmy-flower.oss-cn-shanghai.aliyuncs.com/8f/8f205ea4618b4ce48d5bd204ae73f075tmp_f0c47a66148245dc17d74563c5939e764273ba583619664d.jpg");
+                        customerService.addOrUpdateCustomer(updateCustomerDTO);
+
+                        return user;
+                    }
+                } finally {
+                    lock.unlock();
+                }
+            }
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+        return null;
+    }
+
+
 }

--
Gitblit v1.9.3