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/controller/LoginController.java |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 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);

--
Gitblit v1.9.3