小程序注册抽成通用方法
This commit is contained in:
parent
824933f911
commit
737c7a1ff1
|
|
@ -17,14 +17,13 @@ import com.mdd.common.core.AjaxResult;
|
||||||
import com.mdd.common.core.PageResult;
|
import com.mdd.common.core.PageResult;
|
||||||
import com.mdd.common.entity.College;
|
import com.mdd.common.entity.College;
|
||||||
import com.mdd.common.entity.Teacher;
|
import com.mdd.common.entity.Teacher;
|
||||||
import com.mdd.common.entity.admin.Admin;
|
|
||||||
import com.mdd.common.entity.admin.AdminRole;
|
import com.mdd.common.entity.admin.AdminRole;
|
||||||
import com.mdd.common.entity.system.SystemRole;
|
import com.mdd.common.entity.system.SystemRole;
|
||||||
import com.mdd.common.mapper.CollegeMapper;
|
import com.mdd.common.mapper.CollegeMapper;
|
||||||
import com.mdd.common.mapper.TeacherMapper;
|
import com.mdd.common.mapper.TeacherMapper;
|
||||||
import com.mdd.common.mapper.admin.AdminMapper;
|
|
||||||
import com.mdd.common.mapper.system.SystemRoleMapper;
|
import com.mdd.common.mapper.system.SystemRoleMapper;
|
||||||
import com.mdd.common.exception.OperateException;
|
import com.mdd.common.exception.OperateException;
|
||||||
|
import com.mdd.common.service.RegisterService;
|
||||||
import com.mdd.common.util.ConfigUtils;
|
import com.mdd.common.util.ConfigUtils;
|
||||||
import com.mdd.common.util.QrCodeUtil;
|
import com.mdd.common.util.QrCodeUtil;
|
||||||
import com.mdd.common.util.RandomUtil;
|
import com.mdd.common.util.RandomUtil;
|
||||||
|
|
@ -55,8 +54,8 @@ public class TeacherServiceImpl implements ITeacherService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
TeacherMapper teacherMapper;
|
TeacherMapper teacherMapper;
|
||||||
@Autowired
|
@Resource
|
||||||
private AdminMapper adminMapper;
|
RegisterService registerService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CollegeMapper collegeMapper;
|
private CollegeMapper collegeMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -161,15 +160,17 @@ public class TeacherServiceImpl implements ITeacherService {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult<Object> add(TeacherCreateValidate createValidate) {
|
public AjaxResult<Object> add(TeacherCreateValidate createValidate) {
|
||||||
|
// 密码默认是电话号码后8位
|
||||||
|
String password = createValidate.getContactPhone().substring(3);
|
||||||
// 自动生成唯一教师工号,作为管理员账号 & 教师工号
|
// 自动生成唯一教师工号,作为管理员账号 & 教师工号
|
||||||
String teacherCode = generateTeacherCode();
|
String teacherCode = generateTeacherCode();
|
||||||
// 创建admin账号
|
|
||||||
|
// 创建后台管理系统账号
|
||||||
SystemAdminCreateValidate admin = new SystemAdminCreateValidate();
|
SystemAdminCreateValidate admin = new SystemAdminCreateValidate();
|
||||||
admin.setAccount(teacherCode);
|
admin.setAccount(teacherCode);
|
||||||
admin.setName(createValidate.getName());
|
admin.setName(createValidate.getName());
|
||||||
admin.setDisable(1);
|
admin.setDisable(1);
|
||||||
// 密码默认是电话号码后8位
|
admin.setPassword(password);
|
||||||
admin.setPassword(createValidate.getContactPhone().substring(3));
|
|
||||||
int teacherRoleId;
|
int teacherRoleId;
|
||||||
try {
|
try {
|
||||||
teacherRoleId = Integer.parseInt(ConfigUtils.get("teacher", "teacher_role_id"));
|
teacherRoleId = Integer.parseInt(ConfigUtils.get("teacher", "teacher_role_id"));
|
||||||
|
|
@ -182,10 +183,15 @@ public class TeacherServiceImpl implements ITeacherService {
|
||||||
// 是否启用:0-启用 1-不启用
|
// 是否启用:0-启用 1-不启用
|
||||||
admin.setDisable(0);
|
admin.setDisable(0);
|
||||||
adminServiceImpl.add(admin);
|
adminServiceImpl.add(admin);
|
||||||
QueryWrapper<Admin> queryWrapper = new QueryWrapper<>();
|
|
||||||
queryWrapper.eq("account", admin.getAccount());
|
// 注册小程序
|
||||||
queryWrapper.isNull("delete_time");
|
registerService.registerUniapp(password, teacherCode, 5);
|
||||||
Admin admin1 = adminMapper.selectOne(queryWrapper);
|
|
||||||
|
// TODO: 这段没用上,先注释了
|
||||||
|
// QueryWrapper<Admin> queryWrapper = new QueryWrapper<>();
|
||||||
|
// queryWrapper.eq("account", admin.getAccount());
|
||||||
|
// queryWrapper.isNull("delete_time");
|
||||||
|
// Admin admin1 = adminMapper.selectOne(queryWrapper);
|
||||||
// 创建教师信息(注意:新表结构没有admin_id字段,所以不存储adminId)
|
// 创建教师信息(注意:新表结构没有admin_id字段,所以不存储adminId)
|
||||||
Teacher model = new Teacher();
|
Teacher model = new Teacher();
|
||||||
model.setTeacherName(createValidate.getName());
|
model.setTeacherName(createValidate.getName());
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
package com.mdd.common.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.mdd.common.entity.user.User;
|
||||||
|
import com.mdd.common.mapper.user.UserMapper;
|
||||||
|
import com.mdd.common.util.ConfigUtils;
|
||||||
|
import com.mdd.common.util.ToolUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class RegisterService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
UserMapper userMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册小程序
|
||||||
|
*
|
||||||
|
* @param password 密码
|
||||||
|
* @param account 账号
|
||||||
|
*/
|
||||||
|
public void registerUniapp(String password, String account, Integer terminal) {
|
||||||
|
Integer sn = this.__generateSn();
|
||||||
|
String pwd = ToolUtils.makePassword(password);
|
||||||
|
|
||||||
|
User user = new User();
|
||||||
|
user.setSn(sn);
|
||||||
|
user.setNickname("用户" + sn);
|
||||||
|
user.setAccount(account);
|
||||||
|
user.setPassword(pwd);
|
||||||
|
|
||||||
|
String defaultAvatar = ConfigUtils.get("default_image", "user_avatar", "/api/static/default_avatar.png");
|
||||||
|
|
||||||
|
user.setAvatar(defaultAvatar);
|
||||||
|
// 默认是PC端注册
|
||||||
|
user.setChannel(terminal);
|
||||||
|
user.setIsNewUser(1);
|
||||||
|
user.setCreateTime(System.currentTimeMillis() / 1000);
|
||||||
|
user.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||||
|
userMapper.insert(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成用户编号
|
||||||
|
*
|
||||||
|
* @return Integer
|
||||||
|
* @author fzr
|
||||||
|
*/
|
||||||
|
public Integer __generateSn() {
|
||||||
|
Integer sn;
|
||||||
|
while (true) {
|
||||||
|
sn = Integer.parseInt(ToolUtils.randomInt(8));
|
||||||
|
User snModel = userMapper.selectOne(new QueryWrapper<User>()
|
||||||
|
.select("id,sn")
|
||||||
|
.eq("sn", sn)
|
||||||
|
.last("limit 1"));
|
||||||
|
if (snModel == null) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,6 +18,7 @@ import com.mdd.common.mapper.user.UserMapper;
|
||||||
import com.mdd.common.mapper.user.UserSessionMapper;
|
import com.mdd.common.mapper.user.UserSessionMapper;
|
||||||
import com.mdd.common.plugin.notice.NoticeCheck;
|
import com.mdd.common.plugin.notice.NoticeCheck;
|
||||||
import com.mdd.common.plugin.wechat.WxMnpDriver;
|
import com.mdd.common.plugin.wechat.WxMnpDriver;
|
||||||
|
import com.mdd.common.service.RegisterService;
|
||||||
import com.mdd.common.util.*;
|
import com.mdd.common.util.*;
|
||||||
import com.mdd.front.cache.ScanLoginCache;
|
import com.mdd.front.cache.ScanLoginCache;
|
||||||
import com.mdd.front.cache.TokenLoginCache;
|
import com.mdd.front.cache.TokenLoginCache;
|
||||||
|
|
@ -49,7 +50,8 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
UserMapper userMapper;
|
UserMapper userMapper;
|
||||||
|
@Resource
|
||||||
|
RegisterService registerService;
|
||||||
@Resource
|
@Resource
|
||||||
UserAuthMapper userAuthMapper;
|
UserAuthMapper userAuthMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -58,10 +60,10 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
/**
|
/**
|
||||||
* 注册账号
|
* 注册账号
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param account 账号
|
* @param account 账号
|
||||||
* @param password 密码
|
* @param password 密码
|
||||||
* @param terminal 总端
|
* @param terminal 总端
|
||||||
|
* @author fzr
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void register(String account, String password, Integer terminal) {
|
public void register(String account, String password, Integer terminal) {
|
||||||
|
|
@ -73,31 +75,14 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
|
|
||||||
Assert.isNull(model, "账号已存在,换一个吧!");
|
Assert.isNull(model, "账号已存在,换一个吧!");
|
||||||
|
|
||||||
Integer sn = this.__generateSn();
|
registerService.registerUniapp(password, account, terminal);
|
||||||
// String salt = ToolUtils.randomString(5);
|
|
||||||
String pwd = ToolUtils.makePassword(password);
|
|
||||||
|
|
||||||
User user = new User();
|
|
||||||
user.setSn(sn);
|
|
||||||
user.setNickname("用户"+sn);
|
|
||||||
user.setAccount(account);
|
|
||||||
user.setPassword(pwd);
|
|
||||||
|
|
||||||
String defaultAvatar = ConfigUtils.get("default_image", "user_avatar", "/api/static/default_avatar.png");
|
|
||||||
|
|
||||||
user.setAvatar(defaultAvatar);
|
|
||||||
user.setChannel(terminal);
|
|
||||||
user.setIsNewUser(1);
|
|
||||||
user.setCreateTime(System.currentTimeMillis() / 1000);
|
|
||||||
user.setUpdateTime(System.currentTimeMillis() / 1000);
|
|
||||||
userMapper.insert(user);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 账号登录
|
* 账号登录
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @return LoginTokenVo
|
* @return LoginTokenVo
|
||||||
|
* @author fzr
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
@ -136,10 +121,10 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
/**
|
/**
|
||||||
* 手机号登录
|
* 手机号登录
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param mobile 手机号
|
* @param mobile 手机号
|
||||||
* @param code 验证码
|
* @param code 验证码
|
||||||
* @return LoginTokenVo
|
* @return LoginTokenVo
|
||||||
|
* @author fzr
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LoginTokenVo mobileLogin(String mobile, String code, Integer terminal, Integer sceneId) {
|
public LoginTokenVo mobileLogin(String mobile, String code, Integer terminal, Integer sceneId) {
|
||||||
|
|
@ -165,10 +150,10 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
/**
|
/**
|
||||||
* 微信小程序登录
|
* 微信小程序登录
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param code 编码
|
* @param code 编码
|
||||||
* @param terminal 终端
|
* @param terminal 终端
|
||||||
* @return LoginTokenVo
|
* @return LoginTokenVo
|
||||||
|
* @author fzr
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
@ -189,10 +174,10 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
/**
|
/**
|
||||||
* 公众号登录
|
* 公众号登录
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param code 编码
|
* @param code 编码
|
||||||
* @param terminal 终端
|
* @param terminal 终端
|
||||||
* @return LoginTokenVo
|
* @return LoginTokenVo
|
||||||
|
* @author fzr
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LoginTokenVo officeLogin(String code, Integer terminal) {
|
public LoginTokenVo officeLogin(String code, Integer terminal) {
|
||||||
|
|
@ -213,7 +198,8 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
Map<String, String> resultMap = MapUtils.jsonToMap(resultInfo);
|
Map<String, String> resultMap = MapUtils.jsonToMap(resultInfo);
|
||||||
avatar = resultMap.get("headimgurl");
|
avatar = resultMap.get("headimgurl");
|
||||||
nickname = resultMap.get("nickname");
|
nickname = resultMap.get("nickname");
|
||||||
} catch (Exception ignored) {}
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
return this.__wxLoginHandle(openId, unionId, avatar, nickname, terminal);
|
return this.__wxLoginHandle(openId, unionId, avatar, nickname, terminal);
|
||||||
} catch (WxErrorException e) {
|
} catch (WxErrorException e) {
|
||||||
|
|
@ -224,9 +210,9 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
/**
|
/**
|
||||||
* 公众号跳转url
|
* 公众号跳转url
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param url 连接
|
* @param url 连接
|
||||||
* @return String
|
* @return String
|
||||||
|
* @author fzr
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String oaCodeUrl(String url) {
|
public String oaCodeUrl(String url) {
|
||||||
|
|
@ -239,9 +225,9 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
/**
|
/**
|
||||||
* 扫码链接
|
* 扫码链接
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param session session
|
* @param session session
|
||||||
* @return String
|
* @return String
|
||||||
|
* @author fzr
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String scanCodeUrl(String url, HttpSession session) {
|
public String scanCodeUrl(String url, HttpSession session) {
|
||||||
|
|
@ -280,11 +266,11 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
/**
|
/**
|
||||||
* 扫码登录
|
* 扫码登录
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param code 编码
|
* @param code 编码
|
||||||
* @param state 标识
|
* @param state 标识
|
||||||
* @param terminal 终端
|
* @param terminal 终端
|
||||||
* @param session 会话
|
* @param session 会话
|
||||||
|
* @author fzr
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LoginTokenVo scanLogin(String code, String state, Integer terminal, HttpSession session) {
|
public LoginTokenVo scanLogin(String code, String state, Integer terminal, HttpSession session) {
|
||||||
|
|
@ -380,7 +366,7 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
String defaultAvatar = ConfigUtils.get("default_image", "user_avatar", "/api/static/default_avatar.png");
|
String defaultAvatar = ConfigUtils.get("default_image", "user_avatar", "/api/static/default_avatar.png");
|
||||||
// 创建用户
|
// 创建用户
|
||||||
if (StringUtils.isNull(user)) {
|
if (StringUtils.isNull(user)) {
|
||||||
Integer sn = this.__generateSn();
|
Integer sn = registerService.__generateSn();
|
||||||
//user.setAvatar(defaultAvatar);
|
//user.setAvatar(defaultAvatar);
|
||||||
String defaultNickname = "用户" + sn;
|
String defaultNickname = "用户" + sn;
|
||||||
if (StringUtils.isNotEmpty(avatar)) {
|
if (StringUtils.isNotEmpty(avatar)) {
|
||||||
|
|
@ -445,11 +431,11 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
/**
|
/**
|
||||||
* 处理录令牌
|
* 处理录令牌
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param userId 用户ID
|
* @param userId 用户ID
|
||||||
* @param mobile 用户手机
|
* @param mobile 用户手机
|
||||||
* @param terminal 终端
|
* @param terminal 终端
|
||||||
* @return LoginTokenVo
|
* @return LoginTokenVo
|
||||||
|
* @author fzr
|
||||||
*/
|
*/
|
||||||
private LoginTokenVo __loginToken(Integer userId, String mobile, Integer isNew, Integer terminal) {
|
private LoginTokenVo __loginToken(Integer userId, String mobile, Integer isNew, Integer terminal) {
|
||||||
// 实现账号登录
|
// 实现账号登录
|
||||||
|
|
@ -485,26 +471,4 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
|
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成用户编号
|
|
||||||
*
|
|
||||||
* @author fzr
|
|
||||||
* @return Integer
|
|
||||||
*/
|
|
||||||
private Integer __generateSn() {
|
|
||||||
Integer sn;
|
|
||||||
while (true) {
|
|
||||||
sn = Integer.parseInt(ToolUtils.randomInt(8));
|
|
||||||
User snModel = userMapper.selectOne(new QueryWrapper<User>()
|
|
||||||
.select("id,sn")
|
|
||||||
.eq("sn", sn)
|
|
||||||
.last("limit 1"));
|
|
||||||
if (snModel == null) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return sn;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue