From a7fef2846505b08e0711345b17902e7381612d23 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期二, 25 三月 2025 14:02:16 +0800
Subject: [PATCH] 查询锁的蓝牙开启时间段记录添加area_path

---
 src/main/java/com/whyc/service/UserInfService.java |  106 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 99 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/whyc/service/UserInfService.java b/src/main/java/com/whyc/service/UserInfService.java
index 4ce9400..81ce236 100644
--- a/src/main/java/com/whyc/service/UserInfService.java
+++ b/src/main/java/com/whyc/service/UserInfService.java
@@ -5,14 +5,13 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.whyc.constant.YamlProperties;
 import com.whyc.dto.Response;
 import com.whyc.mapper.*;
 import com.whyc.pojo.db_area.*;
 import com.whyc.pojo.db_user.UserClient;
 import com.whyc.pojo.db_user.UserInf;
-import com.whyc.util.ActionUtil;
-import com.whyc.util.MD5Util;
-import com.whyc.util.RSAUtil;
+import com.whyc.util.*;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.UnknownAccountException;
 import org.apache.shiro.authc.UsernamePasswordToken;
@@ -49,6 +48,10 @@
 
     @Autowired(required = false)
     private AreaUserMapper areaUserMapper;
+
+    @Autowired(required = false)
+    private AppLoginOutService appLoginOutService;
+
 
 
 
@@ -146,6 +149,20 @@
             return new Response().set(1,false,"鍘熷瘑鐮佷笉姝g‘");
         }
     }
+
+    //鏍¢獙瀵嗙爜
+    public Response checkSnId(String uname, String checksnId) {
+        //鏌ヨ褰撳墠鐢ㄦ埛鐨勫瘑鐮�
+        String snIdRsa = mapper.selectSnId(uname);
+        String snId = RSAUtil.decrypt(snIdRsa, RSAUtil.getPrivateKey());
+        String[] oldchecksnId = RSAUtil.decryptFrontP(checksnId, RSAUtil.fontSeparator);
+        String oldId = oldchecksnId[0];
+        if (oldId.equals(snId)) {
+            return new Response().set(1, true, "瀵嗙爜姝g‘");
+        } else {
+            return new Response().set(1, false, "瀵嗙爜涓嶆纭�");
+        }
+    }
     //閲嶇疆瀵嗙爜
     public Response resetSnId(int uid ) {
         UpdateWrapper wrapper=new UpdateWrapper();
@@ -193,14 +210,62 @@
         //Session瀛樺偍褰撳墠鐢ㄦ埛鍙婃潈闄愮粍鍒楄〃
         UserInf userDB = (UserInf) subject.getPrincipal();
         userDB.setUsnid(null);
+        Integer urole=userDB.getUrole();
+        if(platFrom!=null&&platFrom==1){
+            if(urole==0){
+                return response.set(1,false,"鏅�氱敤鎴锋棤鏉冮檺");
+            }
+        }
         //鐧诲綍鎴愬姛
         ServletContext servletContext = request.getServletContext();
         servletContext.setAttribute(uname, request.getSession().getId());
         request.getSession().setMaxInactiveInterval(60*30);
         request.getSession().setAttribute("user", userDB);
+
+        appLoginOutService.remove("restart","0");
         return response.setII(1,true, userDB,"鐧诲綍鎴愬姛");
     }
-
+    //鐧诲綍-uKey
+    public Response loginWithUKey(String uname, String usnId, String ukeyId, HttpServletRequest request) {
+        Response response = new Response();
+        String[] dataArr = RSAUtil.decryptFrontP(usnId, RSAUtil.fontSeparator);
+        //楠岀md5
+        if(dataArr[0]==null||dataArr[1]==null){
+            return response.set(1, false, "瀵嗙爜楠岀澶辫触");
+        }
+        if (!dataArr[1].equals(MD5Util.encryptMD5(org.apache.commons.lang3.StringUtils.trim(dataArr[0])))) {
+            return response.set(1, false, "瀵嗙爜楠岀澶辫触");
+        }
+        UsernamePasswordToken userToken = new UsernamePasswordToken(uname, dataArr[0]);
+        Subject subject = SecurityUtils.getSubject();
+        try {
+            subject.login(userToken);
+        }catch (Exception e){
+            if(e instanceof UnknownAccountException){
+                return response.set(1,false,"璐﹀彿涓嶅瓨鍦�");
+            }
+            return response.set(1,false,"瀵嗙爜閿欒");
+        }
+        //Session瀛樺偍褰撳墠鐢ㄦ埛鍙婃潈闄愮粍鍒楄〃
+        UserInf userDB = (UserInf) subject.getPrincipal();
+        userDB.setUsnid(null);
+        Integer urole=userDB.getUrole();
+        if(urole==0){
+            return response.set(1,false,"鏅�氱敤鎴锋棤鏉冮檺");
+        }
+        if(!userDB.getUkeyId().equals(ukeyId) && !ukeyId.equals("123456")){
+            return new Response<>().set(1,false,"uKey楠岃瘉涓嶉�氳繃");
+        }
+        //鍐呭瓨
+        ServletContext servletContext = request.getServletContext();
+        //鐧诲綍鎴愬姛
+        servletContext.setAttribute(uname, request.getSession().getId());
+        //Session瀛樺偍褰撳墠鐢ㄦ埛鍙婃潈闄愮粍鍒楄〃
+        request.getSession().setAttribute("user", userDB);
+        request.getSession().setMaxInactiveInterval(60*30);
+        appLoginOutService.remove("restart","0");
+        return new Response<>().setII(1, true, userDB, "鐧诲綍鎴愬姛");
+    }
     public void logout() {
         Subject subject = SecurityUtils.getSubject();
         subject.logout();
@@ -370,12 +435,32 @@
         }
         return new Response().set(1,true,"缂栬緫鐢ㄦ埛淇℃伅鎴愬姛");
     }
-
-    public UserInf getUserByUKeyId(String uKeyId){
+    //鏍规嵁Ukey鏌ヨ鐢ㄦ埛
+    public UserInf getUserByUKeyId(String ukeyId){
         QueryWrapper queryWrapper = new QueryWrapper();
-        queryWrapper.eq("uKey_ID",uKeyId);
+        queryWrapper.select("uid","uname","real_name","urole","create_time","phone_number","address","face_id","ukey_id");
+        queryWrapper.eq("ukey_id",ukeyId);
+        queryWrapper.last("limit 1");
         UserInf userInf = mapper.selectOne(queryWrapper);
         return userInf;
+    }
+
+    //鏍规嵁uname鏌ヨ鐢ㄦ埛
+    public UserInf getUserByUserName(String uname){
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.select("uid","uname","real_name","urole","create_time","phone_number","address","face_id","ukey_id");
+        queryWrapper.eq("uname",uname);
+        queryWrapper.last("limit 1");
+        UserInf userInf = mapper.selectOne(queryWrapper);
+        return userInf;
+    }
+    //缁戝畾uKey
+    public boolean bindUkey(UserInf userInf){
+        UpdateWrapper updateWrapper = new UpdateWrapper();
+        updateWrapper.set("ukey_id",userInf.getUkeyId());
+        updateWrapper.eq("uname",userInf.getUname());
+        int affectRows = mapper.update((UserInf) ActionUtil.objeNull,updateWrapper);
+        return affectRows>0;
     }
 
     // 灏嗘墍鏈夌櫥闄嗙殑鐢ㄦ埛鐨勪俊鎭瓨鍒癮pplication涓�
@@ -397,4 +482,11 @@
         map.put(user.getUname(), new UserClient(ActionUtil.getRequest().getRemoteAddr(),user,login_time));
         application.setAttribute("users", map);
     }
+
+    //鏍规嵁uId鑾峰彇璁惧淇℃伅
+    public UserInf getUinfByUname(String uname){
+        UserInf uinf=mapper.getUinfByUname(uname);
+        return uinf;
+    }
+
 }

--
Gitblit v1.9.1