From 2770ff5cf98f8b97b0c79400e8482ebc64bd2506 Mon Sep 17 00:00:00 2001 From: Qi <3194726156@qq.com> Date: Wed, 4 Jun 2025 21:21:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=8C=E6=94=BF=E4=BA=BA=E5=91=98=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E8=87=AA=E5=8A=A8=E7=99=BB=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/entity/CeesAdminInfo.java | 12 +++- .../service/impl/CeesUserServiceImpl.java | 57 ++++++++++++++----- .../service/impl/WeChantServiceImpl.java | 33 +++++++---- 3 files changed, 77 insertions(+), 25 deletions(-) diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesAdminInfo.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesAdminInfo.java index a223a7dd..fcff4b1d 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesAdminInfo.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesAdminInfo.java @@ -33,6 +33,14 @@ public class CeesAdminInfo implements Serializable { @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "id") private Integer id; + /** + * openid + */ + private String openId; + /** + * UnionID + */ + private String unionId; /**工号*/ @Excel(name = "工号", width = 15) @ApiModelProperty(value = "工号") @@ -47,10 +55,10 @@ public class CeesAdminInfo implements Serializable { private String userId; /**用户专业id*/ @Excel(name = "用户专业Id", width = 15) - @ApiModelProperty(value = "用户专业id") + @ApiModelProperty(value = "用户专业Id") private String userMajorId; /**专业id,0表示未选择*/ - @Excel(name = "专业id,0表示未选择", width = 15) +// @Excel(name = "专业id,0表示未选择", width = 15) @ApiModelProperty(value = "专业id,0表示未选择 语文|政治|地理|历史") private Integer majorId; /**组别*/ diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java index 7d382280..b47c5719 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java @@ -135,11 +135,26 @@ public class CeesUserServiceImpl extends ServiceImpl i adminInfoLambdaQueryWrapper.eq(CeesAdminInfo::getUserId, user.getUserId()); CeesAdminInfo ceesAdminInfo = ceesAdminInfoMapper.selectOne(adminInfoLambdaQueryWrapper); if (ceesAdminInfo != null) { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("userId", user.getUserId()); - jsonObject.put("router", "/leaderShip"); - jsonObject.put("status", "2"); //无需填写信息 - return Result.ok(jsonObject); + + 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.put("userId", user.getUserId()); + jsonObject.put("router", "/leaderShip"); + jsonObject.put("status", "2"); //无需填写信息 + return Result.ok(jsonObject); + }else { + return Result.error("检测到当前微信非首次登录身份识别码使用的微信,请使用原微信登入,如有疑问,请联系学院管理员!!"); + } } else { return Result.error("管理员账号还未申请通过!"); } @@ -244,6 +259,8 @@ public class CeesUserServiceImpl extends ServiceImpl i if(ceesWaiTeacher.getOpenId().equals(ceesUser.getOpenId()) && StringUtils.isEmpty(ceesWaiTeacher.getUnionId())){ ceesWaiTeacher.setUnionId(ceesUser.getUnionId()); ceesWaiTeacherMapper.updateById(ceesWaiTeacher); + user.setUnionId(ceesUser.getUnionId()); + ceesUserMapper.updateById(user); } if(ceesWaiTeacher.getOpenId().equals(ceesUser.getOpenId())){ JSONObject jsonObject = new JSONObject(); @@ -435,19 +452,33 @@ public class CeesUserServiceImpl extends ServiceImpl i @Override public Result checkUserByEmployeeCode(CeesAdminInfo ceesAdminInfo) { + LambdaQueryWrapper adminInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); adminInfoLambdaQueryWrapper.eq(CeesAdminInfo::getUserId, ceesAdminInfo.getUserId()) .eq(CeesAdminInfo::getWorkNumber, ceesAdminInfo.getWorkNumber()); CeesAdminInfo ceesAdminInfodata = ceesAdminInfoMapper.selectOne(adminInfoLambdaQueryWrapper); - if (ceesAdminInfodata != null) { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("userId", ceesAdminInfodata.getUserId()); - jsonObject.put("router", "/leaderShip"); - jsonObject.put("status", "2"); //无需填写信息 - return Result.ok(jsonObject); - } else { - return Result.error("管理员账号还未申请通过!"); + 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.put("userId", ceesAdminInfodata.getUserId()); + jsonObject.put("router", "/leaderShip"); + jsonObject.put("status", "2"); //无需填写信息 + return Result.ok(jsonObject); + }else { + return Result.error("检测到当前微信非首次登录身份识别码使用的微信,请使用原微信登入,如有疑问,请联系学院管理员!!"); + } } + return null; } @Override diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/WeChantServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/WeChantServiceImpl.java index 8f77106e..a3e92f23 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/WeChantServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/WeChantServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.*; import org.jeecg.modules.mapper.*; @@ -146,18 +147,30 @@ public class WeChantServiceImpl implements WeChantService { // * 1.按照openid来查询当前用户的账号和身份 // * 2.如果账号存在则直接进入到主页面,如果不存在让用户输入信息 // */ + String userId = null; + Integer identity = null; LambdaQueryWrapper ceesUserQuery = new LambdaQueryWrapper<>(); ceesUserQuery.eq(CeesUser::getOpenId, openId); CeesUser user = ceesUserMapper.selectOne(ceesUserQuery); -// //TODO:未处理 - if (user == null) { + //行政人员 + LambdaQueryWrapper admin = new LambdaQueryWrapper<>(); + admin.eq(CeesAdminInfo::getOpenId, openId); + CeesAdminInfo adminUser = ceesAdminInfoMapper.selectOne(admin); + //TODO:未处理 + if (user == null && adminUser == null) { // 说明还没注册过-》把他引导去填写身份识别码 return Result.ok("/home"); - } - String userId = user.getUserId(); - Integer identity = user.getIdentity(); - + if (adminUser != null) { + 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) { // 管理员1, 学生2,老师 3 ,外校老师4 @@ -165,8 +178,8 @@ public class WeChantServiceImpl implements WeChantService { LambdaQueryWrapper H5AdminInfoWreapper = new LambdaQueryWrapper<>(); H5AdminInfoWreapper.eq(CeesAdminInfo::getUserId, userId); CeesAdminInfo ceesAdminInfo = ceesAdminInfoMapper.selectOne(H5AdminInfoWreapper); - if (ceesAdminInfo != null) { -// 返回整个user + if (ceesAdminInfo != null && ceesAdminInfo.getOpenId().equals(openId)) { +// 返回整个user HashMap map = new HashMap<>(); map.put("user", ceesAdminInfo); map.put("status", "2"); //填写过信息 @@ -213,8 +226,8 @@ public class WeChantServiceImpl implements WeChantService { //外校老师4 case 4: LambdaQueryWrapper h5WaiTeacherWrapper = new LambdaQueryWrapper<>(); - h5WaiTeacherWrapper.eq(CeesWaiTeacher::getOpenId, openId); - h5WaiTeacherWrapper.eq(CeesWaiTeacher::getUserId, userId); + h5WaiTeacherWrapper.eq(CeesWaiTeacher::getOpenId, openId) + .eq(CeesWaiTeacher::getUserId, userId); CeesWaiTeacher h5WaiTeacher = ceesWaiTeacherMapper.selectOne(h5WaiTeacherWrapper); if (h5WaiTeacher != null && h5WaiTeacher.getOpenId().equals(openId)) { // 说明已经填写过个人信息了直接放行到主页面