[fix] 修复绑定微信没有实际保存进数据库的问题

pull/445/head
hsdllcw 1 year ago
parent e0368a0392
commit 3abe897643

@ -330,9 +330,11 @@ public class SysUserServiceImpl implements ISysUserService
// 新增用户与岗位管理
insertUserPost(user);
// 重绑定微信信息
if (Objects.nonNull(user.getSysUserAccount()) && Objects.nonNull(user.getSysUserAccount().getWxUnionId())) {
if (Objects.nonNull(user.getSysUserAccount())) {
kSysUserService.unBindWxUnionIdByUserId(userId);
kSysUserService.bindWxUnionIdByUserId(userId, user.getSysUserAccount().getWxUnionId());
if (Objects.nonNull(user.getSysUserAccount().getWxUnionId())) {
kSysUserService.bindWxUnionIdByUserId(userId, user.getSysUserAccount().getWxUnionId());
}
}
return userMapper.updateUser(user);
}

@ -136,6 +136,7 @@ open class InnerSysUserController : BaseController() {
originUser.avatar = targetUser.avatar ?: originUser.avatar
originUser.sex = targetUser.sex ?: originUser.sex
originUser.updateBy = originUser.userName
originUser.sysUserAccount = loginUser.sysUser.sysUserAccount
userService.updateUser(originUser)
// 更新缓存用户信息
tokenService.setLoginUser(loginUser)

@ -1,5 +1,6 @@
package com.ruoyi.system.mapper
import com.ruoyi.system.api.domain.KSysUserAccount
import com.ruoyi.system.api.domain.SysUser
/**
@ -8,6 +9,13 @@ import com.ruoyi.system.api.domain.SysUser
* @author hsdllcw
*/
interface KSysUserMapper {
/**
* 通过id查询用户
*
* @param userId
* @return 用户对象信息
*/
fun selectUserById(userId: Long): KSysUserAccount?
/**
* 通过用户名查询用户
*

@ -1,10 +1,19 @@
package com.ruoyi.system.service
import com.ruoyi.system.api.domain.KSysUserAccount
import com.ruoyi.system.api.domain.SysUser
interface IKSysUserService {
fun getISysUserService(): ISysUserService
/**
* 通过id查询用户
*
* @param userId
* @return 用户对象信息
*/
fun selectUserById(userId: Long): KSysUserAccount?
/**
* 通过微信unionid查询用户
*

@ -20,6 +20,7 @@ open class KSysUserServiceImpl : IKSysUserService {
@Autowired
lateinit var kSysUserMapper: KSysUserMapper
override fun getISysUserService() = sysUserService
override fun selectUserById(userId: Long) = kSysUserMapper.selectUserById(userId)
override fun selectUserByWxUnionId(wxUnionId: String) = kSysUserMapper.selectUserByWxUnionId(wxUnionId)
override fun checkWxUnionIdUnique(wxUnionId: String) =
kSysUserMapper.checkWxUnionIdUnique(wxUnionId)?.run { UserConstants.NOT_UNIQUE } ?: UserConstants.UNIQUE
@ -49,7 +50,7 @@ open class KSysUserServiceImpl : IKSysUserService {
}
override fun bindWxUnionIdByUserId(userId: Long, wxUnionId: String): Int {
if (sysUserService.selectUserById(userId).sysUserAccount != null)
if (this.selectUserById(userId) != null)
return kSysUserMapper.updateSysUserAccount(
mapOf(
"userId" to userId,

@ -23,11 +23,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<association property="sysUserAccount" javaType="KSysUserAccount" resultMap="sysUserAccountResult" />
<association property="SysUserAccount" javaType="KSysUserAccount" resultMap="KSysUserAccount" />
<association property="dept" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap>
<resultMap id="sysUserAccountResult" type="KSysUserAccount">
<resultMap id="KSysUserAccount" type="KSysUserAccount">
<id property="userId" column="user_id" />
<result property="wxUnionId" column="wx_unionid" />
</resultMap>
@ -61,6 +61,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join sys_user_role ur on u.user_id = ur.user_id
left join sys_role r on r.role_id = ur.role_id
</sql>
<select id="selectUserById" parameterType="Long" resultMap="KSysUserAccount">
select ua.user_id, ua.wx_unionid from sys_user_account ua where ua.user_id = #{userId} limit 1
</select>
<select id="selectUserByWxUnionId" parameterType="String" resultMap="SysUserResult">
<include refid="selectUserVo"/>

Loading…
Cancel
Save