From 95f9ea7eb339c36cade6c67d0385c49ec2d81477 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Wed, 14 Apr 2021 19:39:45 +0800
Subject: [PATCH] Merge branch 'score_shop' into api_score_meger

---
 zq-erp/src/main/java/com/matrix/system/common/authority/strategy/ScanQrCodeLogin.java |   82 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/common/authority/strategy/ScanQrCodeLogin.java b/zq-erp/src/main/java/com/matrix/system/common/authority/strategy/ScanQrCodeLogin.java
new file mode 100644
index 0000000..b9cd2ac
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/common/authority/strategy/ScanQrCodeLogin.java
@@ -0,0 +1,82 @@
+package com.matrix.system.common.authority.strategy;
+
+import com.matrix.component.websoket.WebSoketScanQrCodeLoginObserver;
+import com.matrix.core.constance.MatrixConstance;
+import com.matrix.core.exception.GlobleException;
+import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.common.bean.SysUserLoginRecord;
+import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.constance.AppMessageCode;
+import com.matrix.system.common.service.SysUsersService;
+
+import java.util.Date;
+
+/**
+ * 账号密码登录策略
+ *
+ * @author JIANGYOUYAO
+ * @email 935090232@qq.com
+ * @date 2017年12月9日
+ */
+public class ScanQrCodeLogin implements LoginStrategy {
+
+    private SysUsersService sysUsersService;
+
+
+    private String loginQrCodeKey;
+
+    public ScanQrCodeLogin(SysUsersService sysUsersService, String loginQrCodeKey) {
+
+        this.sysUsersService = sysUsersService;
+        this.loginQrCodeKey = loginQrCodeKey;
+    }
+
+    @Override
+    public Object login() {
+
+        Long loginUserId = WebSoketScanQrCodeLoginObserver.getScanCashValue(loginQrCodeKey);
+
+        if (loginUserId != null) {
+            SysUsers loginUser = sysUsersService.findById(loginUserId);
+            if (loginUser != null) {
+                addErrorLoginRecord(loginUser,AppConstance.LOGIN_SUCCESS);
+                return loginUser;
+            } else {
+                LogUtil.error("登录失败");
+                throw new GlobleException(AppMessageCode.User.ACCOUNT_NOT_EXIST);
+            }
+        }
+
+        LogUtil.error("登录失败");
+        throw new GlobleException(AppMessageCode.User.ACCOUNT_NOT_EXIST);
+    }
+
+
+    /**
+     * 添加登录记录
+     *
+     * @param loginUser
+     * @param loginResult
+     * @author JIANGYOUYAO
+     * @email 935090232@qq.com
+     * @date 2017年12月12日
+     */
+    private void addErrorLoginRecord(SysUsers loginUser, int loginResult) {
+
+        if (AppConstance.LOGIN_SUCCESS.equals(loginResult)) {
+            sysUsersService.cleanUserTodayErrorLoginTime(loginUser.getSuAccount());
+        }
+        SysUserLoginRecord loginRecord = new SysUserLoginRecord();
+        loginRecord.setCreateBy(MatrixConstance.SYSTEM_USER);
+        loginRecord.setUpdateBy(MatrixConstance.SYSTEM_USER);
+        loginRecord.setLrLoginTime(new Date());
+        loginRecord.setLrId(null);
+        loginRecord.setUserAccount(loginUser.getSuAccount());
+        loginRecord.setLrResult(loginResult);
+        loginRecord.setLrIp(WebUtil.getCustomerIp());
+        loginRecord.setLrValid(AppConstance.RECORD_VALID);
+        sysUsersService.addUserLoginRecord(loginRecord);
+    }
+}

--
Gitblit v1.9.1