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