From e9d68d9cab490c4da03bf2cb720a4a8009e8e0e0 Mon Sep 17 00:00:00 2001
From: hyingbo <1363390067@qq.com>
Date: 星期五, 06 六月 2025 11:18:44 +0800
Subject: [PATCH] 操作工登录调整

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java        |   24 ++++++++++++++++++++++--
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java |   23 ++++++++++++++++++++---
 2 files changed, 42 insertions(+), 5 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java
index 8f04773..3e7dff6 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java
@@ -6,9 +6,11 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CacheConstant;
@@ -70,6 +72,8 @@
 	private JeecgBaseConfig jeecgBaseConfig;
 
 	private final String BASE_CHECK_CODES = "qwertyuiplkjhgfdsazxcvbnmQWERTYUPLKJHGFDSAZXCVBNM1234567890";
+	private final String TERMINAL = "terminal";
+	private final String PCR0001 = "PCR0001";
 
 	@ApiOperation("鐧诲綍鎺ュ彛")
 	@RequestMapping(value = "/login", method = RequestMethod.POST)
@@ -77,6 +81,8 @@
 		Result<JSONObject> result = new Result<JSONObject>();
 		String username = sysLoginModel.getUsername();
 		String password = sysLoginModel.getPassword();
+		String workNo = sysLoginModel.getWorkNo();
+		String loginType = sysLoginModel.getLoginType();
 		//update-begin--Author:scott  Date:20190805 for锛氭殏鏃舵敞閲婃帀瀵嗙爜鍔犲瘑閫昏緫锛屾湁鐐归棶棰�
 		//鍓嶇瀵嗙爜鍔犲瘑锛屽悗绔繘琛屽瘑鐮佽В瀵�
 		//password = AesEncryptUtil.desEncrypt(sysLoginModel.getPassword().replaceAll("%2B", "\\+")).trim();//瀵嗙爜瑙e瘑
@@ -108,7 +114,11 @@
 		//1. 鏍¢獙鐢ㄦ埛鏄惁鏈夋晥
 		//update-begin-author:wangshuai date:20200601 for: 鐧诲綍浠g爜楠岃瘉鐢ㄦ埛鏄惁娉ㄩ攢bug锛宨f鏉′欢姘歌繙涓篺alse
 		LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
-		queryWrapper.eq(SysUser::getUsername,username);
+		if (StringUtils.isNotBlank(workNo)) {
+			queryWrapper.eq(SysUser::getWorkNo,workNo);
+		}else {
+			queryWrapper.eq(SysUser::getUsername,username);
+		}
 		SysUser sysUser = sysUserService.getOne(queryWrapper);
 		//update-end-author:wangshuai date:20200601 for: 鐧诲綍浠g爜楠岃瘉鐢ㄦ埛鏄惁娉ㄩ攢bug锛宨f鏉′欢姘歌繙涓篺alse
 		result = sysUserService.checkUserIsEffective(sysUser);
@@ -116,10 +126,17 @@
 			return result;
 		}
 
+		//鏍¢獙鎿嶄綔宸ョ粓绔櫥褰曡处鍙锋槸鍚︿负鎿嶄綔宸�
+		if (TERMINAL.equals(loginType) && !PCR0001.equals(sysUser.getPost())) {
+			result.error500("褰撳墠鐧诲綍璐﹀彿宀椾綅闈炴搷浣滃伐锛岃璋冩暣宀椾綅鎴栧垏鎹㈡搷浣滃伐璐﹀彿鐧诲綍");
+			return result;
+		}
+
+		username = sysUser.getUsername();
 		//2. 鏍¢獙鐢ㄦ埛鍚嶆垨瀵嗙爜鏄惁姝g‘
-		String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
+		String userpassword = StringUtils.isBlank(workNo) ? PasswordUtil.encrypt(username, password, sysUser.getSalt()) : StringPool.EMPTY;
 		String syspassword = sysUser.getPassword();
-		if (!syspassword.equals(userpassword)) {
+		if (StringUtils.isBlank(workNo) && !syspassword.equals(userpassword)) {
 			// 鑾峰彇鐢ㄦ埛澶辫触鏈�澶ф鏁�
 			//Integer maxAttempts = CommonConstant.MAX_ATTEMPTS;
 			List<DictModel> dictModels = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_MAX_ATTEMPTS);
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java
index 01dfeae..d286c9f 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java
@@ -11,13 +11,26 @@
  */
 @ApiModel(value="鐧诲綍瀵硅薄", description="鐧诲綍瀵硅薄")
 public class SysLoginModel {
+	@ApiModelProperty(value = "宸ュ彿")
+    private String workNo;
 	@ApiModelProperty(value = "璐﹀彿")
     private String username;
 	@ApiModelProperty(value = "瀵嗙爜")
     private String password;
+	@ApiModelProperty(value = "鐧诲綍鏂瑰紡")
+    private String loginType;
 	@ApiModelProperty(value = "楠岃瘉鐮�")
     private String captcha;
-	@ApiModelProperty(value = "楠岃瘉鐮乲ey")
+
+    public String getLoginType() {
+        return loginType;
+    }
+
+    public void setLoginType(String loginType) {
+        this.loginType = loginType;
+    }
+
+    @ApiModelProperty(value = "楠岃瘉鐮乲ey")
     private String checkKey;
 
     public String getUsername() {
@@ -51,5 +64,12 @@
 	public void setCheckKey(String checkKey) {
 		this.checkKey = checkKey;
 	}
-    
+
+    public String getWorkNo() {
+        return workNo;
+    }
+
+    public void setWorkNo(String workNo) {
+        this.workNo = workNo;
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3