行政人员微信自动登入

This commit is contained in:
Qi 2025-06-04 21:21:56 +08:00
parent 69acfa4d17
commit 2770ff5cf9
3 changed files with 77 additions and 25 deletions

View File

@ -33,6 +33,14 @@ public class CeesAdminInfo implements Serializable {
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id") @ApiModelProperty(value = "id")
private Integer id; private Integer id;
/**
* openid
*/
private String openId;
/**
* UnionID
*/
private String unionId;
/**工号*/ /**工号*/
@Excel(name = "工号", width = 15) @Excel(name = "工号", width = 15)
@ApiModelProperty(value = "工号") @ApiModelProperty(value = "工号")
@ -47,10 +55,10 @@ public class CeesAdminInfo implements Serializable {
private String userId; private String userId;
/**用户专业id*/ /**用户专业id*/
@Excel(name = "用户专业Id", width = 15) @Excel(name = "用户专业Id", width = 15)
@ApiModelProperty(value = "用户专业id") @ApiModelProperty(value = "用户专业Id")
private String userMajorId; private String userMajorId;
/**专业id,0表示未选择*/ /**专业id,0表示未选择*/
@Excel(name = "专业id,0表示未选择", width = 15) // @Excel(name = "专业id,0表示未选择", width = 15)
@ApiModelProperty(value = "专业id,0表示未选择 语文|政治|地理|历史") @ApiModelProperty(value = "专业id,0表示未选择 语文|政治|地理|历史")
private Integer majorId; private Integer majorId;
/**组别*/ /**组别*/

View File

@ -135,11 +135,26 @@ public class CeesUserServiceImpl extends ServiceImpl<CeesUserMapper, CeesUser> i
adminInfoLambdaQueryWrapper.eq(CeesAdminInfo::getUserId, user.getUserId()); adminInfoLambdaQueryWrapper.eq(CeesAdminInfo::getUserId, user.getUserId());
CeesAdminInfo ceesAdminInfo = ceesAdminInfoMapper.selectOne(adminInfoLambdaQueryWrapper); CeesAdminInfo ceesAdminInfo = ceesAdminInfoMapper.selectOne(adminInfoLambdaQueryWrapper);
if (ceesAdminInfo != null) { if (ceesAdminInfo != null) {
if(StringUtils.isEmpty(ceesAdminInfo.getOpenId())){
ceesAdminInfo.setOpenId(ceesUser.getOpenId());
ceesAdminInfo.setUnionId(ceesUser.getUnionId());
ceesAdminInfoMapper.updateById(ceesAdminInfo);
return Result.error("正在进行数据关联请5秒后刷新页面或退出重进");
}
if(ceesAdminInfo.getOpenId().equals(ceesUser.getOpenId()) && StringUtils.isEmpty(ceesAdminInfo.getUnionId())){
ceesAdminInfo.setUnionId(ceesUser.getUnionId());
ceesAdminInfoMapper.updateById(ceesAdminInfo);
}
if(ceesAdminInfo.getOpenId().equals(ceesUser.getOpenId())){
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("userId", user.getUserId()); jsonObject.put("userId", user.getUserId());
jsonObject.put("router", "/leaderShip"); jsonObject.put("router", "/leaderShip");
jsonObject.put("status", "2"); //无需填写信息 jsonObject.put("status", "2"); //无需填写信息
return Result.ok(jsonObject); return Result.ok(jsonObject);
}else {
return Result.error("检测到当前微信非首次登录身份识别码使用的微信,请使用原微信登入,如有疑问,请联系学院管理员!!");
}
} else { } else {
return Result.error("管理员账号还未申请通过!"); return Result.error("管理员账号还未申请通过!");
} }
@ -244,6 +259,8 @@ public class CeesUserServiceImpl extends ServiceImpl<CeesUserMapper, CeesUser> i
if(ceesWaiTeacher.getOpenId().equals(ceesUser.getOpenId()) && StringUtils.isEmpty(ceesWaiTeacher.getUnionId())){ if(ceesWaiTeacher.getOpenId().equals(ceesUser.getOpenId()) && StringUtils.isEmpty(ceesWaiTeacher.getUnionId())){
ceesWaiTeacher.setUnionId(ceesUser.getUnionId()); ceesWaiTeacher.setUnionId(ceesUser.getUnionId());
ceesWaiTeacherMapper.updateById(ceesWaiTeacher); ceesWaiTeacherMapper.updateById(ceesWaiTeacher);
user.setUnionId(ceesUser.getUnionId());
ceesUserMapper.updateById(user);
} }
if(ceesWaiTeacher.getOpenId().equals(ceesUser.getOpenId())){ if(ceesWaiTeacher.getOpenId().equals(ceesUser.getOpenId())){
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
@ -435,20 +452,34 @@ public class CeesUserServiceImpl extends ServiceImpl<CeesUserMapper, CeesUser> i
@Override @Override
public Result<?> checkUserByEmployeeCode(CeesAdminInfo ceesAdminInfo) { public Result<?> checkUserByEmployeeCode(CeesAdminInfo ceesAdminInfo) {
LambdaQueryWrapper<CeesAdminInfo> adminInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CeesAdminInfo> adminInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
adminInfoLambdaQueryWrapper.eq(CeesAdminInfo::getUserId, ceesAdminInfo.getUserId()) adminInfoLambdaQueryWrapper.eq(CeesAdminInfo::getUserId, ceesAdminInfo.getUserId())
.eq(CeesAdminInfo::getWorkNumber, ceesAdminInfo.getWorkNumber()); .eq(CeesAdminInfo::getWorkNumber, ceesAdminInfo.getWorkNumber());
CeesAdminInfo ceesAdminInfodata = ceesAdminInfoMapper.selectOne(adminInfoLambdaQueryWrapper); CeesAdminInfo ceesAdminInfodata = ceesAdminInfoMapper.selectOne(adminInfoLambdaQueryWrapper);
if (ceesAdminInfodata != null) { if (ceesAdminInfo != null) {
if(StringUtils.isEmpty(ceesAdminInfodata.getOpenId())){
ceesAdminInfodata.setOpenId(ceesAdminInfo.getOpenId());
ceesAdminInfodata.setUnionId(ceesAdminInfo.getUnionId());
ceesAdminInfoMapper.updateById(ceesAdminInfodata);
return Result.error("正在进行数据关联请5秒后刷新页面或退出重进");
}
if(ceesAdminInfodata.getOpenId().equals(ceesAdminInfo.getOpenId()) && StringUtils.isEmpty(ceesAdminInfodata.getUnionId())){
ceesAdminInfodata.setUnionId(ceesAdminInfo.getUnionId());
ceesAdminInfoMapper.updateById(ceesAdminInfodata);
}
if(ceesAdminInfodata.getOpenId().equals(ceesAdminInfo.getOpenId())){
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("userId", ceesAdminInfodata.getUserId()); jsonObject.put("userId", ceesAdminInfodata.getUserId());
jsonObject.put("router", "/leaderShip"); jsonObject.put("router", "/leaderShip");
jsonObject.put("status", "2"); //无需填写信息 jsonObject.put("status", "2"); //无需填写信息
return Result.ok(jsonObject); return Result.ok(jsonObject);
}else { }else {
return Result.error("管理员账号还未申请通过!"); return Result.error("检测到当前微信非首次登录身份识别码使用的微信,请使用原微信登入,如有疑问,请联系学院管理员!");
} }
} }
return null;
}
@Override @Override
public String removeByUserId(String userId) { public String removeByUserId(String userId) {

View File

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.*; import org.jeecg.modules.entity.*;
import org.jeecg.modules.mapper.*; import org.jeecg.modules.mapper.*;
@ -146,18 +147,30 @@ public class WeChantServiceImpl implements WeChantService {
// * 1.按照openid来查询当前用户的账号和身份 // * 1.按照openid来查询当前用户的账号和身份
// * 2.如果账号存在则直接进入到主页面如果不存在让用户输入信息 // * 2.如果账号存在则直接进入到主页面如果不存在让用户输入信息
// */ // */
String userId = null;
Integer identity = null;
LambdaQueryWrapper<CeesUser> ceesUserQuery = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CeesUser> ceesUserQuery = new LambdaQueryWrapper<>();
ceesUserQuery.eq(CeesUser::getOpenId, openId); ceesUserQuery.eq(CeesUser::getOpenId, openId);
CeesUser user = ceesUserMapper.selectOne(ceesUserQuery); CeesUser user = ceesUserMapper.selectOne(ceesUserQuery);
// //TODO:未处理 //行政人员
if (user == null) { LambdaQueryWrapper<CeesAdminInfo> admin = new LambdaQueryWrapper<>();
admin.eq(CeesAdminInfo::getOpenId, openId);
CeesAdminInfo adminUser = ceesAdminInfoMapper.selectOne(admin);
//TODO:未处理
if (user == null && adminUser == null) {
// 说明还没注册过-把他引导去填写身份识别码 // 说明还没注册过-把他引导去填写身份识别码
return Result.ok("/home"); return Result.ok("/home");
} }
String userId = user.getUserId(); if (adminUser != null) {
Integer identity = user.getIdentity(); userId = adminUser.getUserId();
ceesUserQuery.clear();
ceesUserQuery.eq(CeesUser::getUserId, userId);
user = ceesUserMapper.selectOne(ceesUserQuery);
identity = user.getIdentity();
}else{
userId = user.getUserId();
identity = user.getIdentity();
}
// 检查四个身份 // 检查四个身份
switch (identity) { switch (identity) {
// 管理员1 学生2老师 3 外校老师4 // 管理员1 学生2老师 3 外校老师4
@ -165,7 +178,7 @@ public class WeChantServiceImpl implements WeChantService {
LambdaQueryWrapper<CeesAdminInfo> H5AdminInfoWreapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CeesAdminInfo> H5AdminInfoWreapper = new LambdaQueryWrapper<>();
H5AdminInfoWreapper.eq(CeesAdminInfo::getUserId, userId); H5AdminInfoWreapper.eq(CeesAdminInfo::getUserId, userId);
CeesAdminInfo ceesAdminInfo = ceesAdminInfoMapper.selectOne(H5AdminInfoWreapper); CeesAdminInfo ceesAdminInfo = ceesAdminInfoMapper.selectOne(H5AdminInfoWreapper);
if (ceesAdminInfo != null) { if (ceesAdminInfo != null && ceesAdminInfo.getOpenId().equals(openId)) {
// 返回整个user // 返回整个user
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("user", ceesAdminInfo); map.put("user", ceesAdminInfo);
@ -213,8 +226,8 @@ public class WeChantServiceImpl implements WeChantService {
//外校老师4 //外校老师4
case 4: case 4:
LambdaQueryWrapper<CeesWaiTeacher> h5WaiTeacherWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CeesWaiTeacher> h5WaiTeacherWrapper = new LambdaQueryWrapper<>();
h5WaiTeacherWrapper.eq(CeesWaiTeacher::getOpenId, openId); h5WaiTeacherWrapper.eq(CeesWaiTeacher::getOpenId, openId)
h5WaiTeacherWrapper.eq(CeesWaiTeacher::getUserId, userId); .eq(CeesWaiTeacher::getUserId, userId);
CeesWaiTeacher h5WaiTeacher = ceesWaiTeacherMapper.selectOne(h5WaiTeacherWrapper); CeesWaiTeacher h5WaiTeacher = ceesWaiTeacherMapper.selectOne(h5WaiTeacherWrapper);
if (h5WaiTeacher != null && h5WaiTeacher.getOpenId().equals(openId)) { if (h5WaiTeacher != null && h5WaiTeacher.getOpenId().equals(openId)) {
// 说明已经填写过个人信息了直接放行到主页面 // 说明已经填写过个人信息了直接放行到主页面