新增了自动登录功能
This commit is contained in:
parent
74cb8f195f
commit
389f27d378
|
@ -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<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")
|
||||
|
|
|
@ -16,6 +16,7 @@ import java.util.Map;
|
|||
public interface H5UserService extends IService<H5User> {
|
||||
|
||||
R checkUser(H5User h5User);
|
||||
public R AutocheckUser(String openid);
|
||||
public PageUtils queryPage(Map<String, Object> params);
|
||||
public void deleteBatch(Long[] userId);
|
||||
|
||||
|
|
|
@ -244,129 +244,223 @@ public class H5UserServiceImpl extends ServiceImpl<H5UserMapper, H5User>
|
|||
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())) {
|
||||
|
||||
@Override
|
||||
public R AutocheckUser(String openid) {
|
||||
/**
|
||||
* 1.按照openid来查询当前用户的账号和身份
|
||||
* 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 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<String, Object> 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<H5User> page = this.page(
|
||||
new Query<H5User>().getPage(params),
|
||||
new QueryWrapper<H5User>()
|
||||
.like(StringUtils.isNotBlank(userId), "user_id", userId)
|
||||
// 按时间降序排序
|
||||
.orderByDesc("update_time")
|
||||
IPage<H5User> page = this.page(
|
||||
new Query<H5User>().getPage(params),
|
||||
new QueryWrapper<H5User>()
|
||||
.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<String> set = new HashSet<>();
|
||||
List<String> userMIDList = new ArrayList<>();
|
||||
List<H5User> h5Users = new ArrayList<>();
|
||||
List<H5User> 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<String> set = new HashSet<>();
|
||||
List<String> userMIDList = new ArrayList<>();
|
||||
List<H5User> h5Users = new ArrayList<>();
|
||||
List<H5User> 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<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;
|
||||
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<H5UserMapper, H5User>
|
|||
// 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();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue