xin
2025-07-10 fc1a066edd335345167df7573f9119ef8dd1689a
小程序:微信授权登录角色处理
7 files modified
66 ■■■■■ changed files
oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java 4 ●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java 4 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java 1 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/system/domain/User.java 4 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java 35 ●●●●● patch | view | raw | blame | history
oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml 7 ●●●● patch | view | raw | blame | history
oying-system/src/main/resources/mapper/system/UserMapper.xml 11 ●●●●● patch | view | raw | blame | history
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);
    }
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;
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());
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;
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);
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">
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