新增了自动登录功能
This commit is contained in:
parent
74cb8f195f
commit
389f27d378
|
@ -98,6 +98,8 @@ public class wxLoginController {
|
||||||
String accessToken = wxOAuth2AccessToken.getAccessToken();
|
String accessToken = wxOAuth2AccessToken.getAccessToken();
|
||||||
redisTemplate.opsForValue().set("token" + from.getCode(), accessToken, 7000, TimeUnit.SECONDS);
|
redisTemplate.opsForValue().set("token" + from.getCode(), accessToken, 7000, TimeUnit.SECONDS);
|
||||||
redisTemplate.opsForValue().set("openid" + from.getCode(), openId, 7000, TimeUnit.SECONDS);
|
redisTemplate.opsForValue().set("openid" + from.getCode(), openId, 7000, TimeUnit.SECONDS);
|
||||||
|
|
||||||
|
|
||||||
return openId;
|
return openId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,6 +130,28 @@ public class wxLoginController {
|
||||||
|
|
||||||
return h5UserService.checkUser(h5User);
|
return h5UserService.checkUser(h5User);
|
||||||
}
|
}
|
||||||
|
@GetMapping("/autologin")
|
||||||
|
public R getUserByOpenId(String openId) {
|
||||||
|
return h5UserService.AutocheckUser(openId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取专业
|
||||||
|
* @param userId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/major")
|
||||||
|
public R getMajor(String userId){
|
||||||
|
LambdaQueryWrapper<H5User> h5UserLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
h5UserLambdaQueryWrapper.eq(H5User::getUserId,userId);
|
||||||
|
H5User one = h5UserService.getOne(h5UserLambdaQueryWrapper);
|
||||||
|
if (one != null) {
|
||||||
|
|
||||||
|
return R.ok().put("major", one.getMajorId());
|
||||||
|
}
|
||||||
|
return R.error(500,"账号不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/getUser")
|
@GetMapping("/getUser")
|
||||||
|
|
|
@ -16,6 +16,7 @@ import java.util.Map;
|
||||||
public interface H5UserService extends IService<H5User> {
|
public interface H5UserService extends IService<H5User> {
|
||||||
|
|
||||||
R checkUser(H5User h5User);
|
R checkUser(H5User h5User);
|
||||||
|
public R AutocheckUser(String openid);
|
||||||
public PageUtils queryPage(Map<String, Object> params);
|
public PageUtils queryPage(Map<String, Object> params);
|
||||||
public void deleteBatch(Long[] userId);
|
public void deleteBatch(Long[] userId);
|
||||||
|
|
||||||
|
|
|
@ -244,129 +244,223 @@ public class H5UserServiceImpl extends ServiceImpl<H5UserMapper, H5User>
|
||||||
return R.error("未知错误");
|
return R.error("未知错误");
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean checkAcc(H5User h5User) {
|
|
||||||
LambdaQueryWrapper<H5User> openIDListWreaper = new LambdaQueryWrapper<>();
|
@Override
|
||||||
openIDListWreaper.eq(H5User::getOpenId, h5User.getOpenId());
|
public R AutocheckUser(String openid) {
|
||||||
List<H5User> Users = h5UserMapper.selectList(openIDListWreaper);
|
/**
|
||||||
for (H5User user : Users) {
|
* 1.按照openid来查询当前用户的账号和身份
|
||||||
if (user.getOpenId().equals(h5User.getOpenId())) {
|
* 2.如果账号存在则直接进入到主页面,如果不存在让用户输入信息
|
||||||
|
*/
|
||||||
|
LambdaQueryWrapper<H5User> h5UserQuery = new LambdaQueryWrapper<>();
|
||||||
|
h5UserQuery.eq(H5User::getOpenId, openid);
|
||||||
|
H5User user = h5UserMapper.selectOne(h5UserQuery);
|
||||||
|
if (user==null){
|
||||||
|
// 说明还没注册过-》把他引导去填写身份识别码
|
||||||
|
return R.ok().put("router", "myIndex");
|
||||||
|
|
||||||
|
}
|
||||||
|
String userId = user.getUserId();
|
||||||
|
Integer identity = user.getIdentity();
|
||||||
|
|
||||||
|
// 检查四个身份
|
||||||
|
switch (identity) {
|
||||||
|
// 管理员1 学生2,老师 3 ,外校老师4
|
||||||
|
// 管理员2 学生3,老师 6 ,外校老师9
|
||||||
|
case 2:
|
||||||
|
LambdaQueryWrapper<H5AdminInfo> H5AdminInfoWreapper = new LambdaQueryWrapper<>();
|
||||||
|
H5AdminInfoWreapper.eq(H5AdminInfo::getUserId, userId);
|
||||||
|
H5AdminInfo h5AdminInfo = h5AdminInfoMapper.selectOne(H5AdminInfoWreapper);
|
||||||
|
if (h5AdminInfo != null) {
|
||||||
|
// 返回整个user
|
||||||
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
map.put("user", h5AdminInfo);
|
||||||
|
map.put("status", "2"); //填写过信息
|
||||||
|
map.put("router", "/leaderShip");
|
||||||
|
return R.ok(map);
|
||||||
|
} else {
|
||||||
|
return R.error("管理员账号还未申请通过!");
|
||||||
|
}
|
||||||
|
//学生2
|
||||||
|
case 3:
|
||||||
|
// 如果openid空
|
||||||
|
LambdaQueryWrapper<H5Student> stuWrapper = new LambdaQueryWrapper<>();
|
||||||
|
stuWrapper.eq(H5Student::getOpenId, openid);
|
||||||
|
stuWrapper.eq(H5Student::getUserId, userId);
|
||||||
|
H5Student h5Student = h5StudentMapper.selectOne(stuWrapper);
|
||||||
|
if (h5Student != null && h5Student.getOpenId().equals(openid)) {
|
||||||
|
// 说明已经填写过个人信息了直接放行到主页面
|
||||||
|
// 返回整个user
|
||||||
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
map.put("user", h5Student);
|
||||||
|
map.put("status", "2"); //填写过信息
|
||||||
|
map.put("router", "/mainPage");
|
||||||
|
return R.ok(map);
|
||||||
|
}else {
|
||||||
|
return R.ok().put("router", "myIndex");
|
||||||
|
}
|
||||||
|
// 直接跳到信息填写的页面
|
||||||
|
|
||||||
|
//老师3
|
||||||
|
case 6:
|
||||||
|
LambdaQueryWrapper<H5LocalTeacher> teachWrapper = new LambdaQueryWrapper<>();
|
||||||
|
teachWrapper.eq(H5LocalTeacher::getOpenId, openid);
|
||||||
|
teachWrapper.eq(H5LocalTeacher::getUserId, userId);
|
||||||
|
H5LocalTeacher h5LocalTeacher = h5LocalTeacherMapper.selectOne(teachWrapper);
|
||||||
|
if (h5LocalTeacher != null && h5LocalTeacher.getOpenId().equals(openid)) {
|
||||||
|
// 说明已经填写过个人信息了直接放行到主页面
|
||||||
|
// 返回整个user
|
||||||
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
map.put("user", h5LocalTeacher);
|
||||||
|
map.put("status", "2"); //填写过信息
|
||||||
|
map.put("router", "/mainPage");
|
||||||
|
return R.ok(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//外校老师4
|
||||||
|
case 9:
|
||||||
|
LambdaQueryWrapper<H5WaiTeacher> h5WaiTeacherWrapper = new LambdaQueryWrapper<>();
|
||||||
|
h5WaiTeacherWrapper.eq(H5WaiTeacher::getOpenId, openid);
|
||||||
|
h5WaiTeacherWrapper.eq(H5WaiTeacher::getUserId, userId);
|
||||||
|
H5WaiTeacher h5WaiTeacher = h5WaiTeacherMapper.selectOne(h5WaiTeacherWrapper);
|
||||||
|
if (h5WaiTeacher != null && h5WaiTeacher.getOpenId().equals(openid)) {
|
||||||
|
// 说明已经填写过个人信息了直接放行到主页面
|
||||||
|
// 返回整个user
|
||||||
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
map.put("user", h5WaiTeacher);
|
||||||
|
map.put("status", "2"); //填写过信息
|
||||||
|
map.put("router", "/mainPage");
|
||||||
|
return R.ok(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return R.error("未知错误");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean checkAcc (H5User h5User){
|
||||||
|
LambdaQueryWrapper<H5User> openIDListWreaper = new LambdaQueryWrapper<>();
|
||||||
|
openIDListWreaper.eq(H5User::getOpenId, h5User.getOpenId());
|
||||||
|
List<H5User> Users = h5UserMapper.selectList(openIDListWreaper);
|
||||||
|
for (H5User user : Users) {
|
||||||
|
if (user.getOpenId().equals(h5User.getOpenId())) {
|
||||||
// 账号存在
|
// 账号存在
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判空openid
|
||||||
|
public boolean checker (String openid){
|
||||||
|
// userId已经存在所以更新openid即可
|
||||||
|
if ("".equals(openid) || null == openid) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判空openid
|
|
||||||
public boolean checker(String openid) {
|
|
||||||
// userId已经存在所以更新openid即可
|
|
||||||
if ("".equals(openid) || null == openid) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageUtils queryPage(Map<String, Object> params) {
|
public PageUtils queryPage (Map < String, Object > params){
|
||||||
String userId = (String) params.get("userId");
|
String userId = (String) params.get("userId");
|
||||||
Long createUserId = (Long) params.get("createUserId");
|
Long createUserId = (Long) params.get("createUserId");
|
||||||
|
|
||||||
IPage<H5User> page = this.page(
|
IPage<H5User> page = this.page(
|
||||||
new Query<H5User>().getPage(params),
|
new Query<H5User>().getPage(params),
|
||||||
new QueryWrapper<H5User>()
|
new QueryWrapper<H5User>()
|
||||||
.like(StringUtils.isNotBlank(userId), "user_id", userId)
|
.like(StringUtils.isNotBlank(userId), "user_id", userId)
|
||||||
// 按时间降序排序
|
// 按时间降序排序
|
||||||
.orderByDesc("update_time")
|
.orderByDesc("update_time")
|
||||||
|
|
||||||
// .eq(createUserId != null, "create_user_id", createUserId)
|
// .eq(createUserId != null, "create_user_id", createUserId)
|
||||||
);
|
);
|
||||||
|
|
||||||
return new PageUtils(page);
|
return new PageUtils(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
@Override
|
@Override
|
||||||
public void deleteBatch(Long[] userId) {
|
public void deleteBatch (Long[]userId){
|
||||||
this.removeByIds(Arrays.asList(userId));
|
this.removeByIds(Arrays.asList(userId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createAccount(Integer groupType, Integer num, Integer majorId) {
|
public void createAccount (Integer groupType, Integer num, Integer majorId){
|
||||||
Set<String> set = new HashSet<>();
|
Set<String> set = new HashSet<>();
|
||||||
List<String> userMIDList = new ArrayList<>();
|
List<String> userMIDList = new ArrayList<>();
|
||||||
List<H5User> h5Users = new ArrayList<>();
|
List<H5User> h5Users = new ArrayList<>();
|
||||||
List<H5User> list = this.list();
|
List<H5User> list = this.list();
|
||||||
list.forEach((item) -> {
|
list.forEach((item) -> {
|
||||||
set.add(item.getUserId());
|
set.add(item.getUserId());
|
||||||
String userMajorId = item.getUserMajorId();
|
String userMajorId = item.getUserMajorId();
|
||||||
if (Objects.equals(item.getMajorId(), majorId)) {
|
if (Objects.equals(item.getMajorId(), majorId)) {
|
||||||
// userMIDList.add(Integer.parseInt(userMajorId.substring(1)));
|
// userMIDList.add(Integer.parseInt(userMajorId.substring(1)));
|
||||||
userMIDList.add(userMajorId);
|
userMIDList.add(userMajorId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Integer userMID = Integer.parseInt(userMajorId.substring(1));
|
// Integer userMID = Integer.parseInt(userMajorId.substring(1));
|
||||||
// userMIDList.add(userMID);
|
// userMIDList.add(userMID);
|
||||||
});
|
});
|
||||||
switch (majorId) {
|
switch (majorId) {
|
||||||
// 中文
|
// 中文
|
||||||
case 1:
|
case 1:
|
||||||
String chinese = "";
|
String chinese = "";
|
||||||
if (userMIDList.isEmpty()) {
|
if (userMIDList.isEmpty()) {
|
||||||
chinese = "W240000";
|
chinese = "W240000";
|
||||||
} else {
|
} else {
|
||||||
chinese = userMIDList.get(userMIDList.size() - 1);
|
chinese = userMIDList.get(userMIDList.size() - 1);
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
saveAccount(num, set, groupType, h5Users, majorId, chinese, "W");
|
saveAccount(num, set, groupType, h5Users, majorId, chinese, "W");
|
||||||
break;
|
break;
|
||||||
// 地理
|
// 地理
|
||||||
case 4:
|
case 4:
|
||||||
String geography = "";
|
String geography = "";
|
||||||
if (userMIDList.isEmpty()) {
|
if (userMIDList.isEmpty()) {
|
||||||
geography = "D241000";
|
geography = "D241000";
|
||||||
}else {
|
} else {
|
||||||
geography = userMIDList.get(userMIDList.size() - 1);
|
geography = userMIDList.get(userMIDList.size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
saveAccount(num, set, groupType, h5Users, majorId, geography,"D");
|
saveAccount(num, set, groupType, h5Users, majorId, geography, "D");
|
||||||
break;
|
break;
|
||||||
// 历史
|
// 历史
|
||||||
case 7:
|
case 7:
|
||||||
String history = "";
|
String history = "";
|
||||||
if (userMIDList.isEmpty()) {
|
if (userMIDList.isEmpty()) {
|
||||||
history = "L242000";
|
history = "L242000";
|
||||||
}else {
|
} else {
|
||||||
history = userMIDList.get(userMIDList.size() - 1);
|
history = userMIDList.get(userMIDList.size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
saveAccount(num, set, groupType, h5Users, majorId, history,"L");
|
saveAccount(num, set, groupType, h5Users, majorId, history, "L");
|
||||||
break;
|
break;
|
||||||
// 马克思
|
// 马克思
|
||||||
case 8:
|
case 8:
|
||||||
String marx = "";
|
String marx = "";
|
||||||
if (userMIDList.isEmpty()) {
|
if (userMIDList.isEmpty()) {
|
||||||
marx = "M243000";
|
marx = "M243000";
|
||||||
}else {
|
} else {
|
||||||
marx = userMIDList.get(userMIDList.size() - 1);
|
marx = userMIDList.get(userMIDList.size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
saveAccount(num, set, groupType, h5Users, majorId, marx,"M");
|
saveAccount(num, set, groupType, h5Users, majorId, marx, "M");
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
this.saveBatch(h5Users);
|
||||||
|
h5Users.clear();
|
||||||
|
set.clear();
|
||||||
|
userMIDList.clear();
|
||||||
}
|
}
|
||||||
this.saveBatch(h5Users);
|
|
||||||
h5Users.clear();
|
|
||||||
set.clear();
|
|
||||||
userMIDList.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void saveAccount(Integer num, Set<String> set, Integer groupType, List<H5User> h5Users, Integer majorId, @NotNull String code, String label) {
|
public void saveAccount (Integer num, Set < String > set, Integer groupType, List < H5User > h5Users, Integer
|
||||||
int newCode= Integer.parseInt(code.substring(1));
|
majorId, @NotNull String code, String label){
|
||||||
while (num != 0) {
|
int newCode = Integer.parseInt(code.substring(1));
|
||||||
String randomNum = getRandomNum(8);
|
while (num != 0) {
|
||||||
String substring = randomNum.substring(0, 3);
|
String randomNum = getRandomNum(8);
|
||||||
String substrin1 = randomNum.substring(5, 8);
|
String substring = randomNum.substring(0, 3);
|
||||||
String account = substring + groupType + majorId + substrin1;
|
String substrin1 = randomNum.substring(5, 8);
|
||||||
|
String account = substring + groupType + majorId + substrin1;
|
||||||
// TypeEnum typeEnum = TypeEnum.getByMajorId(majorId);
|
// TypeEnum typeEnum = TypeEnum.getByMajorId(majorId);
|
||||||
// String prefix = typeEnum.getCode();
|
// String prefix = typeEnum.getCode();
|
||||||
// Long code = redisTemplate.opsForValue().increment(typeEnum.getName());
|
// Long code = redisTemplate.opsForValue().increment(typeEnum.getName());
|
||||||
|
@ -376,37 +470,37 @@ public class H5UserServiceImpl extends ServiceImpl<H5UserMapper, H5User>
|
||||||
// String code2 = String.format("%s%03d", prefix, code);
|
// String code2 = String.format("%s%03d", prefix, code);
|
||||||
// System.out.println(code2);
|
// System.out.println(code2);
|
||||||
|
|
||||||
if (!set.contains(account)) {
|
if (!set.contains(account)) {
|
||||||
num--;
|
num--;
|
||||||
H5User h5User = new H5User();
|
H5User h5User = new H5User();
|
||||||
h5User.setUserId(account);
|
h5User.setUserId(account);
|
||||||
h5User.setIdentity(groupType);
|
h5User.setIdentity(groupType);
|
||||||
h5User.setUserName("");
|
h5User.setUserName("");
|
||||||
h5User.setMajorId(majorId);
|
h5User.setMajorId(majorId);
|
||||||
newCode+=1;
|
newCode += 1;
|
||||||
h5User.setUserMajorId(label+newCode);
|
h5User.setUserMajorId(label + newCode);
|
||||||
h5User.setStatus(1);
|
h5User.setStatus(1);
|
||||||
h5User.setCreateTime(LocalDateTime.now());
|
h5User.setCreateTime(LocalDateTime.now());
|
||||||
h5User.setUpdateTime(LocalDateTime.now());
|
h5User.setUpdateTime(LocalDateTime.now());
|
||||||
h5Users.add(h5User);
|
h5Users.add(h5User);
|
||||||
// h5UserMapper.insert(h5User);
|
// h5UserMapper.insert(h5User);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// 编写一个辅助函数,功能随机自动生成八位数字
|
// 编写一个辅助函数,功能随机自动生成八位数字
|
||||||
public static String getRandomNum(int length) {
|
public static String getRandomNum ( int length){
|
||||||
//功能随机自动生成八位数字
|
//功能随机自动生成八位数字
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (int i = 0; i < length; i++) {
|
for (int i = 0; i < length; i++) {
|
||||||
sb.append((int) (Math.random() * 10));
|
sb.append((int) (Math.random() * 10));
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
}
|
}
|
||||||
return sb.toString();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue