diff --git a/src/main/java/com/github/niefy/modules/h5/controller/wxLoginController.java b/src/main/java/com/github/niefy/modules/h5/controller/wxLoginController.java index 33677445..255f0dd0 100644 --- a/src/main/java/com/github/niefy/modules/h5/controller/wxLoginController.java +++ b/src/main/java/com/github/niefy/modules/h5/controller/wxLoginController.java @@ -98,6 +98,8 @@ public class wxLoginController { String accessToken = wxOAuth2AccessToken.getAccessToken(); redisTemplate.opsForValue().set("token" + from.getCode(), accessToken, 7000, TimeUnit.SECONDS); redisTemplate.opsForValue().set("openid" + from.getCode(), openId, 7000, TimeUnit.SECONDS); + + return openId; } @@ -128,6 +130,28 @@ public class wxLoginController { 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 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") diff --git a/src/main/java/com/github/niefy/modules/h5/service/H5UserService.java b/src/main/java/com/github/niefy/modules/h5/service/H5UserService.java index abcc6338..4b666e17 100644 --- a/src/main/java/com/github/niefy/modules/h5/service/H5UserService.java +++ b/src/main/java/com/github/niefy/modules/h5/service/H5UserService.java @@ -16,6 +16,7 @@ import java.util.Map; public interface H5UserService extends IService { R checkUser(H5User h5User); + public R AutocheckUser(String openid); public PageUtils queryPage(Map params); public void deleteBatch(Long[] userId); diff --git a/src/main/java/com/github/niefy/modules/h5/service/impl/H5UserServiceImpl.java b/src/main/java/com/github/niefy/modules/h5/service/impl/H5UserServiceImpl.java index c05bd2e6..1c99d3cb 100644 --- a/src/main/java/com/github/niefy/modules/h5/service/impl/H5UserServiceImpl.java +++ b/src/main/java/com/github/niefy/modules/h5/service/impl/H5UserServiceImpl.java @@ -244,129 +244,223 @@ public class H5UserServiceImpl extends ServiceImpl return R.error("未知错误"); } - public boolean checkAcc(H5User h5User) { - LambdaQueryWrapper openIDListWreaper = new LambdaQueryWrapper<>(); - openIDListWreaper.eq(H5User::getOpenId, h5User.getOpenId()); - List Users = h5UserMapper.selectList(openIDListWreaper); - for (H5User user : Users) { - if (user.getOpenId().equals(h5User.getOpenId())) { + + @Override + public R AutocheckUser(String openid) { + /** + * 1.按照openid来查询当前用户的账号和身份 + * 2.如果账号存在则直接进入到主页面,如果不存在让用户输入信息 + */ + LambdaQueryWrapper 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 H5AdminInfoWreapper = new LambdaQueryWrapper<>(); + H5AdminInfoWreapper.eq(H5AdminInfo::getUserId, userId); + H5AdminInfo h5AdminInfo = h5AdminInfoMapper.selectOne(H5AdminInfoWreapper); + if (h5AdminInfo != null) { +// 返回整个user + HashMap 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 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 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 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 map = new HashMap<>(); + map.put("user", h5LocalTeacher); + map.put("status", "2"); //填写过信息 + map.put("router", "/mainPage"); + return R.ok(map); + } + + + //外校老师4 + case 9: + LambdaQueryWrapper 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 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 openIDListWreaper = new LambdaQueryWrapper<>(); + openIDListWreaper.eq(H5User::getOpenId, h5User.getOpenId()); + List 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 false; } - return false; - } - - // 判空openid - public boolean checker(String openid) { - // userId已经存在所以更新openid即可 - if ("".equals(openid) || null == openid) { - return true; - } - return false; - } - @Override - public PageUtils queryPage(Map params) { - String userId = (String) params.get("userId"); - Long createUserId = (Long) params.get("createUserId"); + @Override + public PageUtils queryPage (Map < String, Object > params){ + String userId = (String) params.get("userId"); + Long createUserId = (Long) params.get("createUserId"); - IPage page = this.page( - new Query().getPage(params), - new QueryWrapper() - .like(StringUtils.isNotBlank(userId), "user_id", userId) - // 按时间降序排序 - .orderByDesc("update_time") + IPage page = this.page( + new Query().getPage(params), + new QueryWrapper() + .like(StringUtils.isNotBlank(userId), "user_id", userId) + // 按时间降序排序 + .orderByDesc("update_time") // .eq(createUserId != null, "create_user_id", createUserId) - ); + ); - return new PageUtils(page); - } + return new PageUtils(page); + } - // 删除 - @Override - public void deleteBatch(Long[] userId) { - this.removeByIds(Arrays.asList(userId)); - } + // 删除 + @Override + public void deleteBatch (Long[]userId){ + this.removeByIds(Arrays.asList(userId)); + } - @Override - public void createAccount(Integer groupType, Integer num, Integer majorId) { - Set set = new HashSet<>(); - List userMIDList = new ArrayList<>(); - List h5Users = new ArrayList<>(); - List list = this.list(); - list.forEach((item) -> { - set.add(item.getUserId()); - String userMajorId = item.getUserMajorId(); - if (Objects.equals(item.getMajorId(), majorId)) { + @Override + public void createAccount (Integer groupType, Integer num, Integer majorId){ + Set set = new HashSet<>(); + List userMIDList = new ArrayList<>(); + List h5Users = new ArrayList<>(); + List list = this.list(); + list.forEach((item) -> { + set.add(item.getUserId()); + String userMajorId = item.getUserMajorId(); + if (Objects.equals(item.getMajorId(), majorId)) { // userMIDList.add(Integer.parseInt(userMajorId.substring(1))); - userMIDList.add(userMajorId); - } + userMIDList.add(userMajorId); + } // Integer userMID = Integer.parseInt(userMajorId.substring(1)); // userMIDList.add(userMID); - }); - switch (majorId) { + }); + switch (majorId) { // 中文 - case 1: - String chinese = ""; - if (userMIDList.isEmpty()) { - chinese = "W240000"; - } else { - chinese = userMIDList.get(userMIDList.size() - 1); + case 1: + String chinese = ""; + if (userMIDList.isEmpty()) { + chinese = "W240000"; + } else { + chinese = userMIDList.get(userMIDList.size() - 1); // - } - saveAccount(num, set, groupType, h5Users, majorId, chinese, "W"); - break; + } + saveAccount(num, set, groupType, h5Users, majorId, chinese, "W"); + break; // 地理 - case 4: - String geography = ""; - if (userMIDList.isEmpty()) { - geography = "D241000"; - }else { - geography = userMIDList.get(userMIDList.size() - 1); - } + case 4: + String geography = ""; + if (userMIDList.isEmpty()) { + geography = "D241000"; + } else { + geography = userMIDList.get(userMIDList.size() - 1); + } - saveAccount(num, set, groupType, h5Users, majorId, geography,"D"); - break; + saveAccount(num, set, groupType, h5Users, majorId, geography, "D"); + break; // 历史 - case 7: - String history = ""; - if (userMIDList.isEmpty()) { - history = "L242000"; - }else { - history = userMIDList.get(userMIDList.size() - 1); - } + case 7: + String history = ""; + if (userMIDList.isEmpty()) { + history = "L242000"; + } else { + history = userMIDList.get(userMIDList.size() - 1); + } - saveAccount(num, set, groupType, h5Users, majorId, history,"L"); - break; + saveAccount(num, set, groupType, h5Users, majorId, history, "L"); + break; // 马克思 - case 8: - String marx = ""; - if (userMIDList.isEmpty()) { - marx = "M243000"; - }else { - marx = userMIDList.get(userMIDList.size() - 1); - } + case 8: + String marx = ""; + if (userMIDList.isEmpty()) { + marx = "M243000"; + } else { + marx = userMIDList.get(userMIDList.size() - 1); + } - saveAccount(num, set, groupType, h5Users, majorId, marx,"M"); - break; + saveAccount(num, set, groupType, h5Users, majorId, marx, "M"); + 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 set, Integer groupType, List h5Users, Integer majorId, @NotNull String code, String label) { - int newCode= Integer.parseInt(code.substring(1)); - while (num != 0) { - String randomNum = getRandomNum(8); - String substring = randomNum.substring(0, 3); - String substrin1 = randomNum.substring(5, 8); - String account = substring + groupType + majorId + substrin1; + public void saveAccount (Integer num, Set < String > set, Integer groupType, List < H5User > h5Users, Integer + majorId, @NotNull String code, String label){ + int newCode = Integer.parseInt(code.substring(1)); + while (num != 0) { + String randomNum = getRandomNum(8); + String substring = randomNum.substring(0, 3); + String substrin1 = randomNum.substring(5, 8); + String account = substring + groupType + majorId + substrin1; // TypeEnum typeEnum = TypeEnum.getByMajorId(majorId); // String prefix = typeEnum.getCode(); // Long code = redisTemplate.opsForValue().increment(typeEnum.getName()); @@ -376,37 +470,37 @@ public class H5UserServiceImpl extends ServiceImpl // String code2 = String.format("%s%03d", prefix, code); // System.out.println(code2); - if (!set.contains(account)) { - num--; - H5User h5User = new H5User(); - h5User.setUserId(account); - h5User.setIdentity(groupType); - h5User.setUserName(""); - h5User.setMajorId(majorId); - newCode+=1; - h5User.setUserMajorId(label+newCode); - h5User.setStatus(1); - h5User.setCreateTime(LocalDateTime.now()); - h5User.setUpdateTime(LocalDateTime.now()); - h5Users.add(h5User); + if (!set.contains(account)) { + num--; + H5User h5User = new H5User(); + h5User.setUserId(account); + h5User.setIdentity(groupType); + h5User.setUserName(""); + h5User.setMajorId(majorId); + newCode += 1; + h5User.setUserMajorId(label + newCode); + h5User.setStatus(1); + h5User.setCreateTime(LocalDateTime.now()); + h5User.setUpdateTime(LocalDateTime.now()); + h5Users.add(h5User); // h5UserMapper.insert(h5User); + } } } - } - // 编写一个辅助函数,功能随机自动生成八位数字 - public static String getRandomNum(int length) { + // 编写一个辅助函数,功能随机自动生成八位数字 + public static String getRandomNum ( int length){ //功能随机自动生成八位数字 - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < length; i++) { - sb.append((int) (Math.random() * 10)); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + sb.append((int) (Math.random() * 10)); + } + return sb.toString(); } - return sb.toString(); + + } -} - -