From cdb4df5b86eefa7c36e4746b7fc00d7d15b52ce6 Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期五, 21 六月 2024 19:53:34 +0800
Subject: [PATCH] 数据权限优化,执法内容添加

---
 project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java |   69 +++++++++++++++++++++++-----------
 1 files changed, 47 insertions(+), 22 deletions(-)

diff --git a/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java b/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
index 44c3077..8cb0c51 100644
--- a/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
+++ b/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
@@ -1,7 +1,5 @@
 package com.project.framework.web.service;
 
-import javax.annotation.Resource;
-
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.aliyuncs.CommonRequest;
@@ -13,26 +11,17 @@
 import com.aliyuncs.profile.DefaultProfile;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.project.common.constant.AliyunSmsConstants;
-import com.project.common.exception.base.BaseException;
-import com.project.system.domain.bo.editBo.UserPhoneLoginBo;
-import com.project.system.mapper.SysUserMapper;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.authentication.BadCredentialsException;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.stereotype.Component;
 import com.project.common.constant.CacheConstants;
 import com.project.common.constant.Constants;
 import com.project.common.core.domain.entity.SysUser;
 import com.project.common.core.domain.model.LoginUser;
 import com.project.common.core.redis.RedisCache;
 import com.project.common.exception.ServiceException;
+import com.project.common.exception.base.BaseException;
 import com.project.common.exception.user.CaptchaException;
 import com.project.common.exception.user.CaptchaExpireException;
 import com.project.common.exception.user.UserPasswordNotMatchException;
+import com.project.common.sms.YPSmsApi;
 import com.project.common.utils.DateUtils;
 import com.project.common.utils.MessageUtils;
 import com.project.common.utils.ServletUtils;
@@ -41,8 +30,17 @@
 import com.project.framework.manager.AsyncManager;
 import com.project.framework.manager.factory.AsyncFactory;
 import com.project.framework.security.context.AuthenticationContextHolder;
+import com.project.system.domain.bo.editBo.UserPhoneLoginBo;
+import com.project.system.mapper.SysUserMapper;
 import com.project.system.service.ISysConfigService;
 import com.project.system.service.ISysUserService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.stereotype.Component;
 
 import java.util.Random;
 import java.util.concurrent.TimeUnit;
@@ -128,14 +126,31 @@
         if (user==null){
             throw new BaseException("鎮ㄦ墜鏈哄彿灏氭湭娉ㄥ唽锛�");
         }
-
         // 鐢熸垚4浣嶉殢鏈烘暟
         String code = "";
         Random ran = new Random();
         int randomNum = ran.nextInt(10000);
         code = String.format("%04d", randomNum);
         log.info("鎵嬫満鍙凤細"+phone+"->楠岃瘉鐮侊細"+code);
-        Boolean flag = true;
+//        boolean send = sendAl(phone, code);
+//        if (send){
+//            redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
+//            return true;
+//        }
+        redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
+        return false;
+    }
+
+    private boolean sendYp(String phone, String code ){
+        String result = YPSmsApi.sendSms(phone, StringUtils.format(YPSmsApi.CODE_TMP, code, Constants.PHONE_EXPIRATION));
+        if (result.contains("\"code\":0,\"msg\":\"OK\"")){
+            log.info("鍙戦�佹垚鍔� ->楠岃瘉鐮侊細"+code);
+            return true;
+        }
+        return false;
+    }
+
+    private boolean sendAl(String phone, String code ){
         DefaultProfile profile = DefaultProfile.getProfile("cn-beijing", AliyunSmsConstants.SMS_APPID, AliyunSmsConstants.SMS_SECRET);
         IAcsClient client = new DefaultAcsClient(profile);
         CommonRequest request = new CommonRequest();
@@ -152,15 +167,12 @@
             JSONObject jsonObject = JSON.parseObject(response.getData());
             if ("OK".equals(jsonObject.get("Code"))) {
                 log.info("鍙戦�佹垚鍔� ->楠岃瘉鐮侊細"+code);
-                redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
                 return true;
             }
-
         } catch (ClientException e) {
             e.printStackTrace();
         }
-        redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
-        return flag;
+        return false;
     }
 
     /**
@@ -175,9 +187,22 @@
         if (!verified){
             throw new BaseException("鎵嬫満鍙烽獙璇佺爜鏍¢獙澶辫触锛�");
         }
-        SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber,bo.getPhone()));
+        SysUser user = null;
+        if ("01".equals(bo.getUserType())){
+            user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
+                    .eq(SysUser::getPhonenumber,bo.getPhone())
+                    .and(wrapper->wrapper.eq(SysUser::getUserType,"00").or().eq(SysUser::getUserType, "01")));
+        } else {
+            user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
+                    .eq(SysUser::getPhonenumber,bo.getPhone())
+                    .eq(SysUser::getUserType,bo.getUserType())
+                    );
+        }
         if (user==null){
-            throw new BaseException("鎮ㄦ墜鏈哄彿灏氭湭娉ㄥ唽锛�");
+            throw new BaseException("鎮ㄦ墜鏈哄彿灏氭湭娉ㄥ唽鎴栨偍閫夋嫨鐧诲綍绫诲瀷鏈夎锛�");
+        }
+        if (!"0".equals(user.getStatus())){
+            throw new BaseException("鎮ㄨ处鍙峰凡鍋滅敤鎴栧緟瀹℃壒锛岃鑱旂郴钀ュ晢鍔炵鐞嗕汉鍛橈紒");
         }
         return this.login(user.getUserName(), user.getRecommendUser(), null, null);
     }
@@ -237,7 +262,7 @@
      * @param code  楠岃瘉鐮�
      * @return  鏍¢獙缁撴灉
      */
-    private Boolean verifyPhone(String phone, String code)
+    public Boolean verifyPhone(String phone, String code)
     {
         String key = getCacheKey(phone);
         if (!redisCache.hasKey(key)) {

--
Gitblit v1.9.1