修改mybatisplus的配置

新增手机号注册
新增微信扫码注册
feature/comment
Diyu0904 2025-01-02 16:09:28 +08:00
parent fe00aae291
commit c77086a562
8 changed files with 95 additions and 27 deletions

View File

@ -86,7 +86,7 @@ public class SysLoginController
rabbitTemplate.convertAndSend(QueueConstants.CODE_QUEUE,s);
return AjaxResult.success();
return AjaxResult.success(s);
}

View File

@ -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.model.LoginUser;
import com.mcwl.common.core.redis.RedisCache;
import com.mcwl.common.utils.StringUtils;
import com.mcwl.common.utils.uuid.IdUtils;
import com.mcwl.framework.web.service.SysPermissionService;
import com.mcwl.framework.web.service.TokenService;
import com.mcwl.system.domain.SysUserThirdAccount;
import com.mcwl.system.service.ISysUserService;
import com.mcwl.system.service.ISysUserThirdAccountService;
import com.mcwl.system.service.IWXService;
import lombok.extern.slf4j.Slf4j;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@ -30,6 +34,7 @@ import java.util.concurrent.TimeUnit;
* @apiNote
*/
@Slf4j
@RestController
@RequestMapping("/wx")
public class WXController {
@ -37,6 +42,12 @@ public class WXController {
@Autowired
private RedisCache redisCache;
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Autowired
private ISysUserService iSysUserService;
@Resource
private ISysUserThirdAccountService iSysUserThirdAccountService;
@ -49,7 +60,6 @@ public class WXController {
@Resource
private SysPermissionService permissionService;
/**
* uuid
*/
@ -91,17 +101,21 @@ public class WXController {
@Anonymous
@GetMapping("/uuid/login")
public AjaxResult loginByOpenId(@RequestParam("uuid") String uuid) throws IOException {
AjaxResult ajax = AjaxResult.success();
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);
System.out.println("openid{}" + openid);
if (openid != null) {
if (!StringUtils.isEmpty(openid)) {
redisTemplate.delete(verifyKey);
SysUser user = iSysUserThirdAccountService.selectUserByOpenId(openid);
System.out.println("用户:{}" + user);
if (user == null) {
System.out.println("用户不存在");
return AjaxResult.error("用户不存在");
if (user.getUserId() == null) {
iSysUserService.addUser(openid,CacheConstants.WE_CHAT,null);
user = iSysUserThirdAccountService.selectUserByOpenId(openid);
}
LoginUser loginUser = new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user));
// 生成token

View File

@ -83,22 +83,3 @@ wechat:
appid: wx82d4c3c96f0ffa5b
# 应用密钥
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

View File

@ -21,6 +21,7 @@ import com.mcwl.framework.security.context.AuthenticationContextHolder;
import com.mcwl.framework.security.sms.SmsCodeAuthenticationToken;
import com.mcwl.system.service.ISysConfigService;
import com.mcwl.system.service.ISysUserService;
import com.mcwl.system.service.impl.SysUserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
@ -60,6 +61,9 @@ public class SysLoginService
@Autowired
private ISysConfigService configService;
@Autowired
private SysUserServiceImpl sysUserService;
/**
*
*
@ -195,7 +199,10 @@ public class SysLoginService
//根据手机号查询数据
SysUser sysUser = userService.selectUserByPhone(phone);
if (sysUser == null){
throw new UserNotExistsException();
//注册数据
sysUserService.addUser(null,null,phone);
sysUser = userService.selectUserByPhone(phone);
}
// 登录前置校验

View File

@ -207,4 +207,5 @@ public interface ISysUserService
SysUser selectUserByPhone(String phone);
void addUser(String openid,String type,String phone);
}

View File

@ -1,6 +1,7 @@
package com.mcwl.system.service;
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 {
SysUser selectUserByOpenId(String openid);
void add(SysUserThirdAccount sysUserThirdAccount);
}

View File

@ -12,10 +12,12 @@ import com.mcwl.common.utils.spring.SpringUtils;
import com.mcwl.system.domain.SysPost;
import com.mcwl.system.domain.SysUserPost;
import com.mcwl.system.domain.SysUserRole;
import com.mcwl.system.domain.SysUserThirdAccount;
import com.mcwl.system.mapper.*;
import com.mcwl.system.service.ISysConfigService;
import com.mcwl.system.service.ISysDeptService;
import com.mcwl.system.service.ISysUserService;
import com.mcwl.system.service.ISysUserThirdAccountService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -24,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.validation.Validator;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@ -62,6 +65,16 @@ public class SysUserServiceImpl implements ISysUserService
@Autowired
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);
}
@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();
}
}

View File

@ -47,4 +47,11 @@ public class SysUserThirdAccountServiceImpl implements ISysUserThirdAccountServi
return sysUserService.selectUserById(sysUserThirdAccount.getUserId());
}
@Override
public void add(SysUserThirdAccount sysUserThirdAccount) {
//添加第三方登录权限
sysUserThirdAccountMapper.insert(sysUserThirdAccount);
}
}