From fc1a066edd335345167df7573f9119ef8dd1689a Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Thu, 10 Jul 2025 17:36:47 +0800
Subject: [PATCH] 小程序:微信授权登录角色处理

---
 oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java                  |    4 ++
 oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java    |   35 +++++++----------
 oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml                          |    7 ++-
 oying-system/src/main/java/com/oying/modules/system/domain/User.java                     |    4 --
 oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java |    1 
 oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java           |    4 +
 oying-system/src/main/resources/mapper/system/UserMapper.xml                             |   11 -----
 7 files changed, 28 insertions(+), 38 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java b/oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java
index 25a76cc..4141c9b 100644
--- a/oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java
+++ b/oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java
@@ -172,6 +172,8 @@
                     user.setUsername(phone);
                     user.setNickName("OYING-" + phone);
                     user.setUserType(ConstantsKey.BUYER);
+                    user.setPhone(phone);
+                    user.setGender("男");
                     user.setEnabled(true);
                     getRole(user);
                     user.setPassword(passwordEncoder.encode(phone.substring(phone.length() - 6)));
@@ -217,7 +219,7 @@
         Set<Role> roles = new HashSet<>();
         Role role = new Role();
         DictDetail detail = dictDetailService.getDictByName(ConstantsKey.USER_TYPE_BUYER).get(0);
-        role.setId(Long.valueOf(detail.getLabel()));
+        role.setId(Long.valueOf(detail.getValue()));
         roles.add(role);
         user1.setRoles(roles);
     }
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java b/oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java
index 3460682..b597d31 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java
@@ -51,6 +51,10 @@
     @ApiModelProperty(value = "街道")
     private String street;
 
+    @ApiModelProperty(value = "短地址")
+    @NotBlank
+    private String shortAddress;
+
     @NotBlank
     @ApiModelProperty(value = "详细地址")
     private String detail;
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java
index c85cd4c..073e44f 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java
@@ -94,6 +94,7 @@
             map.put("城市", userAddress.getCity());
             map.put("区县", userAddress.getDistrict());
             map.put("街道", userAddress.getStreet());
+            map.put("短地址", userAddress.getShortAddress());
             map.put("详细地址", userAddress.getDetail());
             map.put("经度", userAddress.getLongitude());
             map.put("纬度", userAddress.getLatitude());
diff --git a/oying-system/src/main/java/com/oying/modules/system/domain/User.java b/oying-system/src/main/java/com/oying/modules/system/domain/User.java
index d5fa6fc..a35686a 100644
--- a/oying-system/src/main/java/com/oying/modules/system/domain/User.java
+++ b/oying-system/src/main/java/com/oying/modules/system/domain/User.java
@@ -34,10 +34,6 @@
     @ApiModelProperty(value = "用户角色")
     private Set<Role> roles;
 
-    @TableField(exist = false)
-    @ApiModelProperty(value = "用户岗位")
-    private Set<Job> jobs;
-
     @NotBlank
     @ApiModelProperty(value = "用户类型(BUYER、MERCHANT、RIDER、ADMIN、SUPPLIER、AGENT)")
     private String userType;
diff --git a/oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java b/oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java
index d6ce91d..46b0cad 100644
--- a/oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java
@@ -5,7 +5,6 @@
 import com.oying.domain.BucketStorage;
 import com.oying.modules.security.service.OnlineUserService;
 import com.oying.modules.security.service.UserCacheManager;
-import com.oying.modules.system.domain.Job;
 import com.oying.modules.system.domain.Role;
 import com.oying.modules.system.domain.User;
 import com.oying.modules.system.domain.dto.UserQueryCriteria;
@@ -81,12 +80,10 @@
 //        if (userMapper.findByEmail(resources.getEmail()) != null) {
 //            throw new EntityExistException(User.class, "email", resources.getEmail());
 //        }
-//        if (userMapper.findByPhone(resources.getPhone()) != null) {
-//            throw new EntityExistException(User.class, "phone", resources.getPhone());
-//        }
+        if (userMapper.findByPhone(resources.getPhone()) != null) {
+            throw new EntityExistException(User.class, "phone", resources.getPhone());
+        }
         save(resources);
-        // 保存用户岗位
-        userJobMapper.insertData(resources.getId(), resources.getJobs());
         // 保存用户角色
         userRoleMapper.insertData(resources.getId(), resources.getRoles());
     }
@@ -96,17 +93,20 @@
     public void update(User resources) throws Exception {
         User user = getById(resources.getId());
         User user1 = userMapper.findByUsername(resources.getUsername());
-//        User user2 = userMapper.findByEmail(resources.getEmail());
-//        User user3 = userMapper.findByPhone(resources.getPhone());
+        User user3 = userMapper.findByPhone(resources.getPhone());
         if (user1 != null && !user.getId().equals(user1.getId())) {
             throw new EntityExistException(User.class, "username", resources.getUsername());
         }
-//        if (user2 != null && !user.getId().equals(user2.getId())) {
-//            throw new EntityExistException(User.class, "email", resources.getEmail());
-//        }
-//        if (user3 != null && !user.getId().equals(user3.getId())) {
-//            throw new EntityExistException(User.class, "phone", resources.getPhone());
-//        }
+        if (user3 != null && !user.getId().equals(user3.getId())) {
+            throw new EntityExistException(User.class, "phone", resources.getPhone());
+        }
+        if (resources.getEmail() != null) {
+            User user2 = userMapper.findByEmail(resources.getEmail());
+            if (user2 != null && !user.getId().equals(user2.getId())) {
+                throw new EntityExistException(User.class, "email", resources.getEmail());
+            }
+            user.setEmail(resources.getEmail());
+        }
         // 如果用户的角色改变
         if (!resources.getRoles().equals(user.getRoles())) {
             redisUtils.del(CacheKey.DATA_USER + resources.getId());
@@ -119,19 +119,14 @@
             onlineUserService.kickOutForUsername(resources.getUsername());
         }
         user.setUsername(resources.getUsername());
-        user.setEmail(resources.getEmail());
         user.setEnabled(resources.getEnabled());
         user.setRoles(resources.getRoles());
-        user.setJobs(resources.getJobs());
         user.setPhone(resources.getPhone());
         user.setNickName(resources.getNickName());
         user.setGender(resources.getGender());
         saveOrUpdate(user);
         // 清除缓存
         delCaches(user.getId(), user.getUsername());
-        // 更新用户岗位
-        userJobMapper.deleteByUserId(resources.getId());
-        userJobMapper.insertData(resources.getId(), resources.getJobs());
         // 更新用户角色
         userRoleMapper.deleteByUserId(resources.getId());
         userRoleMapper.insertData(resources.getId(), resources.getRoles());
@@ -247,10 +242,10 @@
             Map<String, Object> map = new LinkedHashMap<>();
             map.put("用户名", user.getUsername());
             map.put("角色", roles);
-            map.put("岗位", user.getJobs().stream().map(Job::getName).collect(Collectors.toList()));
             map.put("邮箱", user.getEmail());
             map.put("状态", user.getEnabled() ? "启用" : "禁用");
             map.put("手机号码", user.getPhone());
+            map.put("openid", user.getOpenid());
             map.put("修改密码的时间", user.getPwdResetTime());
             map.put("创建日期", user.getCreateTime());
             list.add(map);
diff --git a/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml b/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml
index 2719b7d..a12e793 100644
--- a/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml
@@ -10,6 +10,7 @@
         <result column="city" property="city"/>
         <result column="district" property="district"/>
         <result column="street" property="street"/>
+        <result column="short_address" property="shortAddress"/>
         <result column="detail" property="detail"/>
         <result column="longitude" property="longitude"/>
         <result column="latitude" property="latitude"/>
@@ -22,10 +23,12 @@
     </resultMap>
 
     <sql id="Base_Column_List">
-        address_id, user_id, receiver_name, receiver_phone, province, city, district, street, detail, longitude, latitude, is_default, tag, create_by, create_time, update_by, update_time
+        address_id, user_id, receiver_name, receiver_phone, province, city, district, street, short_address, detail, longitude, latitude, is_default, tag, create_by, create_time, update_by, update_time
     </sql>
     <update id="isDefault">
-        update sh_user_address set is_default = false where user_id = #{userId}
+        update sh_user_address
+        set is_default = false
+        where user_id = #{userId}
     </update>
 
     <select id="findAll" resultMap="BaseResultMap">
diff --git a/oying-system/src/main/resources/mapper/system/UserMapper.xml b/oying-system/src/main/resources/mapper/system/UserMapper.xml
index feb484b..b877335 100644
--- a/oying-system/src/main/resources/mapper/system/UserMapper.xml
+++ b/oying-system/src/main/resources/mapper/system/UserMapper.xml
@@ -20,10 +20,6 @@
         <result column="user_update_by" property="updateBy"/>
         <result column="user_create_time" property="createTime"/>
         <result column="user_update_time" property="updateTime"/>
-        <collection property="jobs" ofType="com.oying.modules.system.domain.Job">
-            <id column="job_id" property="id"/>
-            <result column="job_name" property="name"/>
-        </collection>
         <collection property="roles" ofType="com.oying.modules.system.domain.Role">
             <id column="role_id" property="id"/>
             <result column="role_name" property="name"/>
@@ -39,10 +35,6 @@
            u.gender as user_gender, u.avatar_name as user_avatar_name, u.avatar_path as user_avatar_path,
            u.enabled as user_enabled, u.pwd_reset_time as user_pwd_reset_time, u.create_by as user_create_by,
            u.update_by as user_update_by, u.create_time as user_create_time, u.update_time as user_update_time
-    </sql>
-
-    <sql id="Job_Column_List">
-        j.job_id as job_id, j.name as job_name
     </sql>
 
     <sql id="Role_Column_List">
@@ -78,7 +70,6 @@
 
     <select id="findAll" resultMap="BaseResultMap">
         select u.*,
-        <include refid="Job_Column_List"/>,
         <include refid="Role_Column_List"/>
         from (
         select
@@ -90,8 +81,6 @@
             limit #{criteria.offset}, #{criteria.size}
         </if>
         ) u
-        left join sys_users_jobs suj on u.user_user_id = suj.user_id
-        left join sys_job j on suj.job_id = j.job_id
         left join sys_users_roles sur on u.user_user_id = sur.user_id
         left join sys_role r on sur.role_id = r.role_id
         order by u.user_user_id desc

--
Gitblit v1.9.3