parent
fe00aae291
commit
c77086a562
|
@ -86,7 +86,7 @@ public class SysLoginController
|
||||||
|
|
||||||
rabbitTemplate.convertAndSend(QueueConstants.CODE_QUEUE,s);
|
rabbitTemplate.convertAndSend(QueueConstants.CODE_QUEUE,s);
|
||||||
|
|
||||||
return AjaxResult.success();
|
return AjaxResult.success(s);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,13 +6,17 @@ import com.mcwl.common.core.domain.AjaxResult;
|
||||||
import com.mcwl.common.core.domain.entity.SysUser;
|
import com.mcwl.common.core.domain.entity.SysUser;
|
||||||
import com.mcwl.common.core.domain.model.LoginUser;
|
import com.mcwl.common.core.domain.model.LoginUser;
|
||||||
import com.mcwl.common.core.redis.RedisCache;
|
import com.mcwl.common.core.redis.RedisCache;
|
||||||
|
import com.mcwl.common.utils.StringUtils;
|
||||||
import com.mcwl.common.utils.uuid.IdUtils;
|
import com.mcwl.common.utils.uuid.IdUtils;
|
||||||
import com.mcwl.framework.web.service.SysPermissionService;
|
import com.mcwl.framework.web.service.SysPermissionService;
|
||||||
import com.mcwl.framework.web.service.TokenService;
|
import com.mcwl.framework.web.service.TokenService;
|
||||||
import com.mcwl.system.domain.SysUserThirdAccount;
|
import com.mcwl.system.domain.SysUserThirdAccount;
|
||||||
|
import com.mcwl.system.service.ISysUserService;
|
||||||
import com.mcwl.system.service.ISysUserThirdAccountService;
|
import com.mcwl.system.service.ISysUserThirdAccountService;
|
||||||
import com.mcwl.system.service.IWXService;
|
import com.mcwl.system.service.IWXService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
@ -30,6 +34,7 @@ import java.util.concurrent.TimeUnit;
|
||||||
* @apiNote
|
* @apiNote
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/wx")
|
@RequestMapping("/wx")
|
||||||
public class WXController {
|
public class WXController {
|
||||||
|
@ -37,6 +42,12 @@ public class WXController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisCache redisCache;
|
private RedisCache redisCache;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisTemplate<String,String> redisTemplate;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService iSysUserService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ISysUserThirdAccountService iSysUserThirdAccountService;
|
private ISysUserThirdAccountService iSysUserThirdAccountService;
|
||||||
|
|
||||||
|
@ -49,7 +60,6 @@ public class WXController {
|
||||||
@Resource
|
@Resource
|
||||||
private SysPermissionService permissionService;
|
private SysPermissionService permissionService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 扫码登录用uuid生成
|
* 扫码登录用uuid生成
|
||||||
*/
|
*/
|
||||||
|
@ -91,17 +101,21 @@ public class WXController {
|
||||||
@Anonymous
|
@Anonymous
|
||||||
@GetMapping("/uuid/login")
|
@GetMapping("/uuid/login")
|
||||||
public AjaxResult loginByOpenId(@RequestParam("uuid") String uuid) throws IOException {
|
public AjaxResult loginByOpenId(@RequestParam("uuid") String uuid) throws IOException {
|
||||||
|
|
||||||
AjaxResult ajax = AjaxResult.success();
|
AjaxResult ajax = AjaxResult.success();
|
||||||
String verifyKey = CacheConstants.WX_OPENID_KEY + uuid;
|
String verifyKey = CacheConstants.WX_OPENID_KEY + uuid;
|
||||||
String openid = redisCache.getCacheObject(verifyKey);
|
// String openid = redisCache.getCacheObject(verifyKey);
|
||||||
|
String openid = redisTemplate.opsForValue().get(verifyKey);
|
||||||
ajax.put("status", 0);
|
ajax.put("status", 0);
|
||||||
System.out.println("openid:{}" + openid);
|
System.out.println("openid:{}" + openid);
|
||||||
if (openid != null) {
|
if (!StringUtils.isEmpty(openid)) {
|
||||||
|
redisTemplate.delete(verifyKey);
|
||||||
SysUser user = iSysUserThirdAccountService.selectUserByOpenId(openid);
|
SysUser user = iSysUserThirdAccountService.selectUserByOpenId(openid);
|
||||||
System.out.println("用户:{}" + user);
|
System.out.println("用户:{}" + user);
|
||||||
if (user == null) {
|
if (user.getUserId() == null) {
|
||||||
System.out.println("用户不存在");
|
|
||||||
return AjaxResult.error("用户不存在");
|
iSysUserService.addUser(openid,CacheConstants.WE_CHAT,null);
|
||||||
|
user = iSysUserThirdAccountService.selectUserByOpenId(openid);
|
||||||
}
|
}
|
||||||
LoginUser loginUser = new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user));
|
LoginUser loginUser = new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user));
|
||||||
// 生成token
|
// 生成token
|
||||||
|
|
|
@ -83,22 +83,3 @@ wechat:
|
||||||
appid: wx82d4c3c96f0ffa5b
|
appid: wx82d4c3c96f0ffa5b
|
||||||
# 应用密钥
|
# 应用密钥
|
||||||
secret: abbabcf1da711a3bbd95387ec83edcac
|
secret: abbabcf1da711a3bbd95387ec83edcac
|
||||||
|
|
||||||
mybatis-plus:
|
|
||||||
# Mapper XML文件位置
|
|
||||||
mapper-locations: classpath:mapper/**/*.xml
|
|
||||||
# 配置实体类所在的包名,MyBatis-Plus会自动扫描并注册为别名
|
|
||||||
type-aliases-package: com.mcwl.**.mapper
|
|
||||||
# 全局配置
|
|
||||||
global-config:
|
|
||||||
db-config:
|
|
||||||
# 主键生成策略
|
|
||||||
id-type: auto
|
|
||||||
# 开启驼峰命名规则转换
|
|
||||||
capital-mode: true
|
|
||||||
# 配置逻辑删除相关属性
|
|
||||||
logic-delete-field: del_flag
|
|
||||||
logic-delete-value: '2'
|
|
||||||
logic-not-delete-value: '0'
|
|
||||||
# 数据库字段下划线命名规则
|
|
||||||
table-underline: true
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ import com.mcwl.framework.security.context.AuthenticationContextHolder;
|
||||||
import com.mcwl.framework.security.sms.SmsCodeAuthenticationToken;
|
import com.mcwl.framework.security.sms.SmsCodeAuthenticationToken;
|
||||||
import com.mcwl.system.service.ISysConfigService;
|
import com.mcwl.system.service.ISysConfigService;
|
||||||
import com.mcwl.system.service.ISysUserService;
|
import com.mcwl.system.service.ISysUserService;
|
||||||
|
import com.mcwl.system.service.impl.SysUserServiceImpl;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
import org.springframework.security.authentication.BadCredentialsException;
|
import org.springframework.security.authentication.BadCredentialsException;
|
||||||
|
@ -60,6 +61,9 @@ public class SysLoginService
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysConfigService configService;
|
private ISysConfigService configService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysUserServiceImpl sysUserService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录验证
|
* 登录验证
|
||||||
*
|
*
|
||||||
|
@ -195,7 +199,10 @@ public class SysLoginService
|
||||||
//根据手机号查询数据
|
//根据手机号查询数据
|
||||||
SysUser sysUser = userService.selectUserByPhone(phone);
|
SysUser sysUser = userService.selectUserByPhone(phone);
|
||||||
if (sysUser == null){
|
if (sysUser == null){
|
||||||
throw new UserNotExistsException();
|
|
||||||
|
//注册数据
|
||||||
|
sysUserService.addUser(null,null,phone);
|
||||||
|
sysUser = userService.selectUserByPhone(phone);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 登录前置校验
|
// 登录前置校验
|
||||||
|
|
|
@ -207,4 +207,5 @@ public interface ISysUserService
|
||||||
|
|
||||||
SysUser selectUserByPhone(String phone);
|
SysUser selectUserByPhone(String phone);
|
||||||
|
|
||||||
|
void addUser(String openid,String type,String phone);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.mcwl.system.service;
|
package com.mcwl.system.service;
|
||||||
|
|
||||||
import com.mcwl.common.core.domain.entity.SysUser;
|
import com.mcwl.common.core.domain.entity.SysUser;
|
||||||
|
import com.mcwl.system.domain.SysUserThirdAccount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 第三方登录表
|
* 第三方登录表
|
||||||
|
@ -12,4 +13,6 @@ import com.mcwl.common.core.domain.entity.SysUser;
|
||||||
public interface ISysUserThirdAccountService {
|
public interface ISysUserThirdAccountService {
|
||||||
SysUser selectUserByOpenId(String openid);
|
SysUser selectUserByOpenId(String openid);
|
||||||
|
|
||||||
|
void add(SysUserThirdAccount sysUserThirdAccount);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,10 +12,12 @@ import com.mcwl.common.utils.spring.SpringUtils;
|
||||||
import com.mcwl.system.domain.SysPost;
|
import com.mcwl.system.domain.SysPost;
|
||||||
import com.mcwl.system.domain.SysUserPost;
|
import com.mcwl.system.domain.SysUserPost;
|
||||||
import com.mcwl.system.domain.SysUserRole;
|
import com.mcwl.system.domain.SysUserRole;
|
||||||
|
import com.mcwl.system.domain.SysUserThirdAccount;
|
||||||
import com.mcwl.system.mapper.*;
|
import com.mcwl.system.mapper.*;
|
||||||
import com.mcwl.system.service.ISysConfigService;
|
import com.mcwl.system.service.ISysConfigService;
|
||||||
import com.mcwl.system.service.ISysDeptService;
|
import com.mcwl.system.service.ISysDeptService;
|
||||||
import com.mcwl.system.service.ISysUserService;
|
import com.mcwl.system.service.ISysUserService;
|
||||||
|
import com.mcwl.system.service.ISysUserThirdAccountService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -24,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import javax.validation.Validator;
|
import javax.validation.Validator;
|
||||||
|
import java.security.SecureRandom;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -62,6 +65,16 @@ public class SysUserServiceImpl implements ISysUserService
|
||||||
@Autowired
|
@Autowired
|
||||||
protected Validator validator;
|
protected Validator validator;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysUserThirdAccountService iSysUserThirdAccountService;
|
||||||
|
|
||||||
|
private static final String UPPER_CASE_LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||||
|
private static final String LOWER_CASE_LETTERS = "abcdefghijklmnopqrstuvwxyz";
|
||||||
|
private static final String DIGITS = "0123456789";
|
||||||
|
// private static final String SPECIAL_CHARACTERS = "!@#$%^&*()-_=+[]{}|;:,.<>?";
|
||||||
|
private static final String ALL_CHARACTERS = UPPER_CASE_LETTERS + LOWER_CASE_LETTERS + DIGITS;
|
||||||
|
private static final SecureRandom random = new SecureRandom();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据条件分页查询用户列表
|
* 根据条件分页查询用户列表
|
||||||
*
|
*
|
||||||
|
@ -550,4 +563,46 @@ public class SysUserServiceImpl implements ISysUserService
|
||||||
|
|
||||||
return userMapper.selectUserByPhone(phone);
|
return userMapper.selectUserByPhone(phone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addUser(String openid,String type,String phone) {
|
||||||
|
|
||||||
|
//初始化一个用户信息
|
||||||
|
SysUser sysUser = new SysUser();
|
||||||
|
sysUser.setUserName("默认用户:"+ generateRandomPassword(8));
|
||||||
|
sysUser.setNickName("用户:" + generateRandomPassword(8));
|
||||||
|
sysUser.setPassword(SecurityUtils.encryptPassword(generateRandomPassword(10)));
|
||||||
|
sysUser.setPhonenumber(phone);
|
||||||
|
sysUser.setRoleIds(new Long[]{2L});
|
||||||
|
|
||||||
|
//新增用户
|
||||||
|
insertUser(sysUser);
|
||||||
|
|
||||||
|
if (openid != null){
|
||||||
|
SysUserThirdAccount sysUserThirdAccount = SysUserThirdAccount.builder().userId(sysUser.getUserId())
|
||||||
|
.bindType(type)
|
||||||
|
.openid(openid.substring(1, openid.length() - 1)).build();
|
||||||
|
iSysUserThirdAccountService.add(sysUserThirdAccount);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成随机密码
|
||||||
|
* @param length
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String generateRandomPassword(int length) {
|
||||||
|
if (length < 1) {
|
||||||
|
throw new IllegalArgumentException("Password length must be at least 1");
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder(length);
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
int randomIndex = random.nextInt(ALL_CHARACTERS.length());
|
||||||
|
sb.append(ALL_CHARACTERS.charAt(randomIndex));
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,4 +47,11 @@ public class SysUserThirdAccountServiceImpl implements ISysUserThirdAccountServi
|
||||||
return sysUserService.selectUserById(sysUserThirdAccount.getUserId());
|
return sysUserService.selectUserById(sysUserThirdAccount.getUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(SysUserThirdAccount sysUserThirdAccount) {
|
||||||
|
|
||||||
|
//添加第三方登录权限
|
||||||
|
sysUserThirdAccountMapper.insert(sysUserThirdAccount);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue