[feat] 新增通过微信unionId注册的功能
parent
beb41bb782
commit
21495202ff
|
|
@ -1,11 +1,11 @@
|
|||
<p align="center">
|
||||
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-b99b286755aef70355a7084753f89cdb7c9.png">
|
||||
</p>
|
||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.6.5</h1>
|
||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.6.5.0.1</h1>
|
||||
<h4 align="center">基于 Vue/Element UI 和 Spring Boot/Spring Cloud & Alibaba 前后端分离的分布式微服务架构</h4>
|
||||
<p align="center">
|
||||
<a href="https://gitee.com/y_project/RuoYi-Cloud/stargazers"><img src="https://gitee.com/y_project/RuoYi-Cloud/badge/star.svg?theme=dark"></a>
|
||||
<a href="https://gitee.com/y_project/RuoYi-Cloud"><img src="https://img.shields.io/badge/RuoYi-v3.6.5-brightgreen.svg"></a>
|
||||
<a href="https://gitee.com/y_project/RuoYi-Cloud"><img src="https://img.shields.io/badge/RuoYi-v3.6.5.0.1-brightgreen.svg"></a>
|
||||
<a href="https://gitee.com/y_project/RuoYi-Cloud/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
|
||||
</p>
|
||||
|
||||
|
|
|
|||
4
pom.xml
4
pom.xml
|
|
@ -6,14 +6,14 @@
|
|||
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
|
||||
<name>ruoyi</name>
|
||||
<url>http://www.ruoyi.vip</url>
|
||||
<description>若依微服务系统</description>
|
||||
|
||||
<properties>
|
||||
<ruoyi.version>3.6.5</ruoyi.version>
|
||||
<ruoyi.version>3.6.5.0.1</ruoyi.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-api</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ import com.ruoyi.system.api.RemoteUserService;
|
|||
import com.ruoyi.system.api.domain.SysUser;
|
||||
import com.ruoyi.system.api.model.LoginUser;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 用户服务降级处理
|
||||
*
|
||||
|
|
@ -29,7 +31,12 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
|
|||
{
|
||||
@NotNull
|
||||
@Override
|
||||
public R<LoginUser> infoById_Inner(Long userId, @NotNull String source) {
|
||||
public R<LoginUser> getById_Inner(Long userId, @NotNull String source) {
|
||||
return R.fail("获取用户失败:" + throwable.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<LoginUser> getByWxUnionId_Inner(String unionid, String source) {
|
||||
return R.fail("获取用户失败:" + throwable.getMessage());
|
||||
}
|
||||
|
||||
|
|
@ -41,7 +48,7 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
|
|||
|
||||
@NotNull
|
||||
@Override
|
||||
public R<LoginUser> getUserInfoByPhoneNumber_Inner(@NotNull String phoneNumber, @NotNull String source) {
|
||||
public R<LoginUser> getByPhoneNumber_Inner(@NotNull String phoneNumber, @NotNull String source) {
|
||||
return R.fail("获取用户失败:" + throwable.getMessage());
|
||||
}
|
||||
|
||||
|
|
@ -67,6 +74,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
|
|||
public R<LoginUser> edit_Inner(@NotNull LoginUser user, @NotNull String source) {
|
||||
return R.fail("修改用户信息失败:" + throwable.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<Boolean> registerUserByWxUnionId_Inner(Map<String, String> params, String source) {
|
||||
return R.fail("注册用户失败:" + throwable.getMessage());
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import com.ruoyi.system.api.domain.SysUser;
|
|||
import com.ruoyi.system.api.model.LoginUser;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface InnerRemoteUserService {
|
||||
/**
|
||||
* 通过用户ID查询用户信息
|
||||
|
|
@ -16,8 +18,17 @@ public interface InnerRemoteUserService {
|
|||
* @return 结果
|
||||
*/
|
||||
@GetMapping("/inner/user/detail/{userId}")
|
||||
R<LoginUser> infoById_Inner(@PathVariable("userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
R<LoginUser> getById_Inner(@PathVariable("userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户信息
|
||||
*
|
||||
* @param unionid 用户微信unionid
|
||||
* @param source 请求来源
|
||||
* @return 结果
|
||||
*/
|
||||
@GetMapping("/inner/user/detail/wx/unionid/{unionid}")
|
||||
R<LoginUser> getByWxUnionId_Inner(@PathVariable("unionid") String unionid, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
|
||||
/**
|
||||
* 通过手机号查询用户信息
|
||||
|
|
@ -27,7 +38,7 @@ public interface InnerRemoteUserService {
|
|||
* @return 结果
|
||||
*/
|
||||
@GetMapping("/inner/user/info/phoneNumber/{phoneNumber:\\d+}")
|
||||
R<LoginUser> getUserInfoByPhoneNumber_Inner(@PathVariable("phoneNumber") String phoneNumber, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
R<LoginUser> getByPhoneNumber_Inner(@PathVariable("phoneNumber") String phoneNumber, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
|
||||
/**
|
||||
* 通过手机号查询用户信息
|
||||
|
|
@ -41,4 +52,14 @@ public interface InnerRemoteUserService {
|
|||
|
||||
@PutMapping("/inner/user")
|
||||
R<LoginUser> edit_Inner(@RequestBody LoginUser user, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
|
||||
/**
|
||||
* 注册用户信息
|
||||
*
|
||||
* @param params 包含微信unionId和deptId
|
||||
* @param source 请求来源
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/inner/user/register/wx/unionid")
|
||||
public R<Boolean> registerUserByWxUnionId_Inner(@RequestBody Map<String, String> params, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
@ -15,45 +15,45 @@
|
|||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
|
||||
<!-- SpringCloud Alibaba Nacos -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- SpringCloud Alibaba Nacos Config -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- SpringCloud Alibaba Sentinel -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- SpringBoot Web -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- SpringBoot Actuator -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- RuoYi Common Security-->
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common-security</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
|
|
@ -70,5 +70,5 @@
|
|||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ import com.ruoyi.common.security.annotation.InnerAuth
|
|||
import com.ruoyi.common.security.service.TokenService
|
||||
import com.ruoyi.system.api.domain.SysUser
|
||||
import com.ruoyi.system.api.model.LoginUser
|
||||
import com.ruoyi.system.service.IKSysUserService
|
||||
import com.ruoyi.system.service.ISysConfigService
|
||||
import com.ruoyi.system.service.ISysPermissionService
|
||||
import com.ruoyi.system.service.ISysUserService
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
|
|
@ -29,12 +31,18 @@ open class InnerSysUserController : BaseController() {
|
|||
@Autowired
|
||||
open lateinit var userService: ISysUserService
|
||||
|
||||
@Autowired
|
||||
open lateinit var kSysUserService: IKSysUserService
|
||||
|
||||
@Autowired
|
||||
open lateinit var permissionService: ISysPermissionService
|
||||
|
||||
@Autowired
|
||||
open lateinit var tokenService: TokenService
|
||||
|
||||
@Autowired
|
||||
open lateinit var configService: ISysConfigService
|
||||
|
||||
|
||||
/**
|
||||
* 获取当前用户信息
|
||||
|
|
@ -84,6 +92,27 @@ open class InnerSysUserController : BaseController() {
|
|||
return R.ok(sysUserVo)
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据微信unionid获取用户信息
|
||||
*/
|
||||
@InnerAuth
|
||||
@GetMapping("/detail/wx/unionid/{unionid}")
|
||||
fun infoByWxUnionId(@PathVariable("unionid") unionid: String): R<LoginUser> {
|
||||
val sysUser = kSysUserService.selectUserByWxUnionId(unionid)
|
||||
if (StringUtils.isNull(sysUser)) {
|
||||
return R.fail("wx_unionid错误")
|
||||
}
|
||||
// 角色集合
|
||||
val roles: Set<String> = permissionService.getRolePermission(sysUser)
|
||||
// 权限集合
|
||||
val permissions: Set<String> = permissionService.getMenuPermission(sysUser)
|
||||
val sysUserVo = LoginUser()
|
||||
sysUserVo.sysUser = sysUser
|
||||
sysUserVo.roles = roles
|
||||
sysUserVo.permissions = permissions
|
||||
return R.ok(sysUserVo)
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
*/
|
||||
|
|
@ -112,4 +141,22 @@ open class InnerSysUserController : BaseController() {
|
|||
tokenService.setLoginUser(loginUser)
|
||||
return success(loginUser)
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册用户信息
|
||||
*/
|
||||
@InnerAuth
|
||||
@PostMapping("/register/wx/unionid")
|
||||
fun registerUserByWxUnionId(@RequestBody params: Map<String, String?>): R<Boolean> {
|
||||
if (!("true" == configService.selectConfigByKey("sys.account.registerUser"))) {
|
||||
return R.fail("当前系统没有开启注册功能!")
|
||||
}
|
||||
val unionid = params.get("unionId")
|
||||
val deptId = params.get("deptId")?.toLong()
|
||||
if (unionid == null) return R.fail("微信unionid不存在无法注册")
|
||||
if (!kSysUserService.checkWxUnionIdUnique(unionid)) {
|
||||
return R.fail("保存用户'$unionid'失败,注册账号已存在")
|
||||
}
|
||||
return R.ok(kSysUserService.registerUserByWxUnionId(unionid, deptId))
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package com.ruoyi.system.mapper
|
||||
|
||||
import com.ruoyi.system.api.domain.SysUser
|
||||
|
||||
/**
|
||||
* 用户表 数据层
|
||||
*
|
||||
* @author hsdllcw
|
||||
*/
|
||||
interface KSysUserMapper {
|
||||
/**
|
||||
* 通过用户名查询用户
|
||||
*
|
||||
* @param wxUnionId 微信unionid
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
fun selectUserByWxUnionId(wxUnionId: String): SysUser?
|
||||
|
||||
/**
|
||||
* 校验微信unionid是否唯一
|
||||
*
|
||||
* @param wxUnionId 微信unionid
|
||||
* @return 结果
|
||||
*/
|
||||
fun checkWxUnionIdUnique(wxUnionId: String): SysUser?
|
||||
|
||||
fun insert(params: Map<String, Any>): Int
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.ruoyi.system.service
|
||||
|
||||
import com.ruoyi.system.api.domain.SysUser
|
||||
|
||||
interface IKSysUserService {
|
||||
fun getISysUserService(): ISysUserService
|
||||
|
||||
/**
|
||||
* 通过微信unionid查询用户
|
||||
*
|
||||
* @param wxUnionId 微信unionid
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
fun selectUserByWxUnionId(wxUnionId: String): SysUser?
|
||||
|
||||
/**
|
||||
* 校验微信unionid是否唯一
|
||||
*
|
||||
* @param wxUnionId 微信unionid
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
fun checkWxUnionIdUnique(wxUnionId: String): Boolean
|
||||
|
||||
/**
|
||||
* 注册用户信息
|
||||
*
|
||||
* @param wxUnionId 微信unionId
|
||||
* @return 结果
|
||||
*/
|
||||
fun registerUserByWxUnionId(wxUnionId: String, deptId: Long?): Boolean
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package com.ruoyi.system.service.impl
|
||||
|
||||
import com.ruoyi.common.core.constant.UserConstants
|
||||
import com.ruoyi.common.core.utils.uuid.IdUtils
|
||||
import com.ruoyi.common.security.utils.SecurityUtils
|
||||
import com.ruoyi.system.api.domain.SysUser
|
||||
import com.ruoyi.system.mapper.KSysUserMapper
|
||||
import com.ruoyi.system.service.IKSysUserService
|
||||
import com.ruoyi.system.service.ISysUserService
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.stereotype.Service
|
||||
|
||||
@Service
|
||||
open class KSysUserServiceImpl : IKSysUserService {
|
||||
@Autowired
|
||||
lateinit var sysUserService: ISysUserService
|
||||
|
||||
@Autowired
|
||||
lateinit var kSysUserMapper: KSysUserMapper
|
||||
override fun getISysUserService() = sysUserService
|
||||
override fun selectUserByWxUnionId(wxUnionId: String) = kSysUserMapper.selectUserByWxUnionId(wxUnionId)
|
||||
override fun checkWxUnionIdUnique(wxUnionId: String) =
|
||||
kSysUserMapper.checkWxUnionIdUnique(wxUnionId)?.run { UserConstants.NOT_UNIQUE } ?: UserConstants.UNIQUE
|
||||
|
||||
/**
|
||||
* 注册用户信息
|
||||
*
|
||||
* @param wxUnionId 微信unionId
|
||||
* @return 结果
|
||||
*/
|
||||
override fun registerUserByWxUnionId(wxUnionId: String, deptId: Long?): Boolean {
|
||||
val user = SysUser().apply {
|
||||
userName = IdUtils.randomUUID().replace("-".toRegex(), "").substring(0, 30)
|
||||
nickName = "嘉迪微信用户"
|
||||
password = SecurityUtils.encryptPassword(IdUtils.randomUUID())
|
||||
this.deptId = deptId
|
||||
}
|
||||
return sysUserService.registerUser(user).apply {
|
||||
sysUserService.selectUserByUserName(user.userName)
|
||||
kSysUserMapper.insert(mapOf(
|
||||
"userId" to user.userId,
|
||||
"wxUnionId" to wxUnionId,
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.system.mapper.KSysUserMapper">
|
||||
|
||||
<resultMap type="SysUser" id="SysUserResult">
|
||||
<id property="userId" column="user_id" />
|
||||
<result property="deptId" column="dept_id" />
|
||||
<result property="userName" column="user_name" />
|
||||
<result property="nickName" column="nick_name" />
|
||||
<result property="email" column="email" />
|
||||
<result property="phonenumber" column="phonenumber" />
|
||||
<result property="sex" column="sex" />
|
||||
<result property="avatar" column="avatar" />
|
||||
<result property="password" column="password" />
|
||||
<result property="status" column="status" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="loginIp" column="login_ip" />
|
||||
<result property="loginDate" column="login_date" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="remark" column="remark" />
|
||||
<association property="dept" javaType="SysDept" resultMap="deptResult" />
|
||||
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="deptResult" type="SysDept">
|
||||
<id property="deptId" column="dept_id" />
|
||||
<result property="parentId" column="parent_id" />
|
||||
<result property="deptName" column="dept_name" />
|
||||
<result property="ancestors" column="ancestors" />
|
||||
<result property="orderNum" column="order_num" />
|
||||
<result property="leader" column="leader" />
|
||||
<result property="status" column="dept_status" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="RoleResult" type="SysRole">
|
||||
<id property="roleId" column="role_id" />
|
||||
<result property="roleName" column="role_name" />
|
||||
<result property="roleKey" column="role_key" />
|
||||
<result property="roleSort" column="role_sort" />
|
||||
<result property="dataScope" column="data_scope" />
|
||||
<result property="status" column="role_status" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectUserVo">
|
||||
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
|
||||
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
|
||||
from sys_user u
|
||||
left join sys_user_account ua on ua.user_id=u.user_id
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
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="selectUserByWxUnionId" parameterType="String" resultMap="SysUserResult">
|
||||
<include refid="selectUserVo"/>
|
||||
where ua.wx_unionid = #{wxUnionId} and u.del_flag = '0'
|
||||
</select>
|
||||
|
||||
<select id="checkWxUnionIdUnique" parameterType="String" resultMap="SysUserResult">
|
||||
select u.user_id, u.user_name from sys_user u left join sys_user_account ua on ua.user_id=u.user_id where ua.wx_unionid = #{wxUnionId} and u.del_flag = '0' limit 1
|
||||
</select>
|
||||
|
||||
<insert id="insert">
|
||||
insert into sys_user_account(user_id, wx_unionid) values (#{userId},#{wxUnionId})
|
||||
</insert>
|
||||
</mapper>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "ruoyi",
|
||||
"version": "3.6.5",
|
||||
"version": "3.6.5.0.1",
|
||||
"description": "若依管理系统",
|
||||
"author": "若依",
|
||||
"license": "MIT",
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@
|
|||
<span>更新日志</span>
|
||||
</div>
|
||||
<el-collapse accordion>
|
||||
<el-collapse-item title="v3.6.5 - 2024-11-13">
|
||||
<el-collapse-item title="v3.6.5.0.1 - 2024-11-13">
|
||||
<ol>
|
||||
<li>使用SpringDoc代替Swagger</li>
|
||||
<li>菜单管理新增路由名称</li>
|
||||
|
|
@ -946,7 +946,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
// 版本号
|
||||
version: "3.6.5",
|
||||
version: "3.6.5.0.1",
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-visual</artifactId>
|
||||
<version>3.6.5</version>
|
||||
<version>3.6.5.0.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue