This commit is contained in:
=
2026-03-26 11:23:28 +08:00
parent 160b2ab945
commit b08bf72a4a
9 changed files with 65 additions and 40 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.budwk</groupId> <groupId>com.budwk</groupId>
<artifactId>v4</artifactId> <artifactId>zhgh_squ</artifactId>
<version>5.6.0-plus</version> <version>5.6.0-plus</version>
<build> <build>
<resources> <resources>
@@ -165,12 +165,15 @@ public class SysLoginController {
@At(value = "/platform/wxwork/oauth2/callback", top = true) @At(value = "/platform/wxwork/oauth2/callback", top = true)
@Ok("re") @Ok("re")
@ApiOperation("企业微信登录回调") @ApiOperation("企业微信登录回调")
@Filters
public String wxworkOAuth2(@Param("code") String code, @Param("redirect") String redirect, HttpServletRequest request) { public String wxworkOAuth2(@Param("code") String code, @Param("redirect") String redirect, HttpServletRequest request) {
try {
if (StrUtil.isBlank(code)) { if (StrUtil.isBlank(code)) {
return ">>:/platform/home"; return ">>:/platform/home";
} }
String token = redisService.get(RedisConstant.REDIS_KEY_WX_WORK_TOKEN); String token = redisService.get(RedisConstant.REDIS_KEY_WX_WORK_TOKEN);
if (StrUtil.isBlank(token)) { if (StrUtil.isBlank(token)) {
log.error("企业微信 token 为空");
return ">>:/platform/home"; return ">>:/platform/home";
} }
String url = "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=ACCESS_TOKEN&code=CODE"; String url = "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=ACCESS_TOKEN&code=CODE";
@@ -179,10 +182,18 @@ public class SysLoginController {
JSONObject jsonObject = JSONUtil.parseObj(response); JSONObject jsonObject = JSONUtil.parseObj(response);
if (jsonObject.getInt("errcode") == 0) { if (jsonObject.getInt("errcode") == 0) {
String loginName = jsonObject.getStr("userid"); String loginName = jsonObject.getStr("userid");
log.info("企业微信授权成功,userid: " + loginName);
sysUserService.checkThirdPlatformLoginName(loginName); sysUserService.checkThirdPlatformLoginName(loginName);
Sys_user sysUser = sysUserService.loginByLoginName(loginName); Sys_user sysUser = sysUserService.loginByLoginName(loginName);
return ">>:" + sysUserService.loginPlus(sysUser, LoginType.QI_YE_WECHAT, request); String result = sysUserService.loginPlus(sysUser, LoginType.QI_YE_WECHAT, request);
log.info("企业微信登录成功,重定向到:" + result);
return ">>:" + result;
} else { } else {
log.error("企业微信授权失败:" + jsonObject);
return ">>:/platform/home/500";
}
} catch (Exception e) {
log.error("企业微信登录异常", e);
return ">>:/platform/home/500"; return ">>:/platform/home/500";
} }
} }
@@ -433,7 +433,8 @@ public class SysUnionController {
@SaCheckPermission("sys.manager.union.partUnit") @SaCheckPermission("sys.manager.union.partUnit")
public Result branchUnionPartUnitTransferData(String unionId) { public Result branchUnionPartUnitTransferData(String unionId) {
// List<Sys_unit> units = dao.query(Sys_unit.class, Cnd.where("unitLevel", "=", 2).asc("unitcode")); // List<Sys_unit> units = dao.query(Sys_unit.class, Cnd.where("unitLevel", "=", 2).asc("unitcode"));
List<Sys_unit> units = dao.query(Sys_unit.class, Cnd.where("unitTypeCode", "=", "1").asc("unitcode")); // List<Sys_unit> units = dao.query(Sys_unit.class, Cnd.where("unitTypeCode", "=", "1").asc("unitcode"));
List<Sys_unit> units = dao.query(Sys_unit.class, Cnd.where("unitLevel", "=", "3").asc("unitcode"));
List<String> selectUnitIds = units.stream().filter(unit -> StrUtil.isNotBlank(unit.getUnionId()) && unit.getUnionId().equals(unionId)).map(Sys_unit::getId).toList(); List<String> selectUnitIds = units.stream().filter(unit -> StrUtil.isNotBlank(unit.getUnionId()) && unit.getUnionId().equals(unionId)).map(Sys_unit::getId).toList();
List<Sys_unit> matchUnits = units.stream().filter(unit -> StrUtil.isBlank(unit.getUnionId()) || (StrUtil.isNotBlank(unit.getUnionId()) && unit.getUnionId().equals(unionId))).toList(); List<Sys_unit> matchUnits = units.stream().filter(unit -> StrUtil.isBlank(unit.getUnionId()) || (StrUtil.isNotBlank(unit.getUnionId()) && unit.getUnionId().equals(unionId))).toList();
NutMap transferData = NutMap.NEW().addv("selectUnitIds", selectUnitIds).addv("allUnits", matchUnits); NutMap transferData = NutMap.NEW().addv("selectUnitIds", selectUnitIds).addv("allUnits", matchUnits);
@@ -295,7 +295,7 @@ public class SysUnitController {
nodeList.add(new TreeNode<>(list.get(i).getId(), list.get(i).getParentId(), list.get(i).getName(), i) nodeList.add(new TreeNode<>(list.get(i).getId(), list.get(i).getParentId(), list.get(i).getName(), i)
.setExtra( .setExtra(
Map.of( Map.of(
"unitType", list.get(i).getUnitType(), // "unitType", list.get(i).getUnitType(),
"unitTypeCode", list.get(i).getUnitTypeCode() "unitTypeCode", list.get(i).getUnitTypeCode()
) )
)); ));
@@ -315,6 +315,7 @@ public class SysUnitController {
return Result.success(treeList); return Result.success(treeList);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
return Result.error(); return Result.error();
} }
} }
@@ -189,6 +189,11 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
Sys_user u = new Sys_user(); Sys_user u = new Sys_user();
BeanUtils.copyProperties(source, u); BeanUtils.copyProperties(source, u);
//单位id取前四位数(二级单位)
if (u.getUnitId() != null && u.getUnitId().length() > 4) {
u.setUnitId(u.getUnitId().substring(0, 4));
}
if (user == null) { if (user == null) {
// 新增用户,初始化数据 // 新增用户,初始化数据
String salt = R.UU32(); String salt = R.UU32();
@@ -34,7 +34,7 @@ public class Globals {
//项目LOGO //项目LOGO
public static String AppLogo = ""; public static String AppLogo = "";
//项目域名 //项目域名
public static String AppDomain = "http://127.0.0.1"; public static String AppDomain = "https://zhgh.squ.edu.cn";
//文件访问域名 //文件访问域名
public static String AppFileDomain = ""; public static String AppFileDomain = "";
//学校代码 //学校代码
@@ -227,18 +227,24 @@ public class WkFailProcessor extends ViewProcessor {
*/ */
private BrowserPlatform getBrowserPlatform(HttpServletRequest request) { private BrowserPlatform getBrowserPlatform(HttpServletRequest request) {
String uaStr = request.getHeader("User-Agent"); String uaStr = request.getHeader("User-Agent");
UserAgent ua = UserAgentUtil.parse(uaStr);
if (ua.isMobile()) { // 优先判断企业微信(无论 PC 还是移动端)
if (uaStr.contains("MicroMessenger") && uaStr.contains("wxwork")) { if (uaStr.contains("wxwork") || uaStr.contains("WeChatWork")) {
return BrowserPlatform.QI_YE_WEI_XIN; return BrowserPlatform.QI_YE_WEI_XIN;
} }
// 再判断微信
if (uaStr.contains("MicroMessenger")) { if (uaStr.contains("MicroMessenger")) {
return BrowserPlatform.WEI_XIN; return BrowserPlatform.WEI_XIN;
} }
// 判断是否为移动端
UserAgent ua = UserAgentUtil.parse(uaStr);
if (ua.isMobile()) {
return BrowserPlatform.H5_WEB; return BrowserPlatform.H5_WEB;
} else {
return BrowserPlatform.PC_WEB;
} }
return BrowserPlatform.PC_WEB;
} }
/** /**
@@ -0,0 +1 @@
E87PddAHxkY7Cvwy