From 3ea5f033f6f51ffca9f8807c062e36ccafcf2cfb Mon Sep 17 00:00:00 2001 From: ZQN <364596817@qq.com> Date: 星期六, 22 六月 2024 09:50:06 +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