无关风月
2025-04-03 b01f752252eaadd1fa31eda6a9ad43146660b721
xinquan-auth/src/main/java/com/xinquan/auth/service/SysLoginService.java
@@ -6,6 +6,7 @@
import com.xinquan.auth.form.AppLoginBody;
import com.xinquan.auth.form.AppRegisterBody;
import com.xinquan.auth.form.VerifyResultVO;
import com.xinquan.auth.util.HWSendSms;
import com.xinquan.auth.util.HuaWeiSMSUtil;
import com.xinquan.common.core.constant.CacheConstants;
import com.xinquan.common.core.constant.Constants;
@@ -114,6 +115,9 @@
        
        LoginUser userInfo = userResult.getData();
        SysUser user = userResult.getData().getSysUser();
        if (user.getStatus().equals("1")){
            throw new ServiceException("对不起,您的账号:" + username + " 已被冻结,请联系管理员");
        }
        if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
        {
            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除");
@@ -187,7 +191,7 @@
            throw new ServiceException("验证码错误");
        }
        //调用远程服务查询用户信息
        AppUser appUser = remoteAppUserService.getUserByCondition(
        AppUser appUser = remoteAppUserService.getUserByCondition1(
                AppUserDTO.builder().cellPhone(cellPhone).build(),
                SecurityConstants.INNER).getData();
        if (Objects.nonNull(appUser))
@@ -246,9 +250,12 @@
        if (StringUtils.isNotBlank(cellPhone) && StringUtils.isNotBlank(captcha)) {
            String key = keyPrefix + cellPhone;
            String key1 = CacheConstants.APP_PASSWORD_CAPTCHA_CODE_PREFIX + cellPhone;
            String code = redisService.getCacheObject(key);
            String code1 = redisService.getCacheObject(key1);
            // 万能验证码
            if (captcha.equals("123456") || (StringUtils.isNotBlank(code) && code.equals(
            if (captcha.equals("220125") || (StringUtils.isNotBlank(code) && code.equals(
                    captcha))||(StringUtils.isNotBlank(code1) && code1.equals(
                    captcha))) {
                redisService.deleteObject(key);
                return true;
@@ -277,10 +284,15 @@
                return CacheConstants.APP_CHANGE_PHONE_CODE_PREFIX;
            case 6:
                return CacheConstants.ADD_CARD_PHONE_CODE_PREFIX;
            case 7:
                return CacheConstants.MANAGEMENT_PASSWORD_SECRET_PREFIX;
            default:
                return "";
        }
    }
    @Autowired
    private HWSendSms hwSendSms;
    /**
     * 发送验证码
     *
@@ -296,8 +308,10 @@
                    TimeUnit.MINUTES);
            log.info("发送验证码成功,手机号:{} 验证码:{}", cellPhone, code);
            // TODO 修改sender参数及templateId
             HuaWeiSMSUtil.sendSms("[\"" + code + "\"]", cellPhone, "8823121426646",
                     "767ad27dce184a32a4b4863517fbd301\n");
             HuaWeiSMSUtil.sendSms("[\"" + code + "\"]", cellPhone, "8825010822864",
                     "c1df549e89724e3db05b018524728d41");
//            hwSendSms.sendSms(code, cellPhone);
        } catch (Exception e) {
            log.error("发送短信失败", e);
            throw new ServiceException("验证码发送失败");
@@ -327,25 +341,25 @@
        if (StringUtils.isNull(appUser)) {
            recordLogService.recordLogininfor(body.getCellPhone(), Constants.LOGIN_FAIL,
                    "登录用户不存在");
            throw new ServiceException("登录用户:" + body.getCellPhone() + " 不存在");
            throw new ServiceException("登录用户:" + body.getCellPhone() + " 不存在",500);
        }
        // 1:正常 2:冻结 3:注销
        if (appUser.getUserStatus().equals(AppUserStatusEnum.FROZEN.getCode())) {
            recordLogService.recordLogininfor(body.getCellPhone(), Constants.LOGIN_FAIL,
                    "账号已冻结");
            throw new ServiceException("账号已冻结");
            throw new ServiceException("账号已冻结",500);
        }
        if (appUser.getUserStatus().equals(AppUserStatusEnum.LOGOUT.getCode())) {
            recordLogService.recordLogininfor(body.getCellPhone(), Constants.LOGIN_FAIL,
                    "账号已注销");
            throw new ServiceException("账号已注销");
            throw new ServiceException("账号已注销",500);
        }
        // 查询系统用户信息
        SysUser sysUser = sysUserClient.getSysUser(appUser.getUserId()).getData();
        if (StringUtils.isNull(sysUser)) {
            recordLogService.recordLogininfor(body.getCellPhone(), Constants.LOGIN_FAIL,
                    "登录用户不存在");
            throw new ServiceException("登录用户:" + body.getCellPhone() + " 不存在");
            throw new ServiceException("登录用户:" + body.getCellPhone() + " 不存在",500);
        }
        passwordService.validate(sysUser, body.getPassword());
//        if (!sysUser.getPassword().equals(body.getPassword())){
@@ -403,8 +417,8 @@
     * @param appleId 苹果id
     * @return
     */
    public AppLoginUser appleLogin(String appleId) {
        R<AppLoginUser> userResult = remoteAppUserService.appleLogin(appleId,
    public AppLoginUser appleLogin(String appleId,String device) {
        R<AppLoginUser> userResult = remoteAppUserService.appleLogin(appleId,device,
                SecurityConstants.INNER);
        if (R.FAIL == userResult.getCode()) {
            throw new ServiceException(userResult.getMsg());
@@ -500,7 +514,7 @@
    }
    public AppLoginUser verifyCellPhone(AppVerifyCellPhoneBody body) {
        if (!body.getCaptcha().equals("123456")){
        if (!body.getCaptcha().equals("220125")){
            Boolean res = redisService.hasKey(
                    CacheConstants.APP_VERIFY_CAPTCHA_CODE_PREFIX + body.getCellPhone());
            if (!res) {