xuhy
2025-11-12 c4db0244744710528fbea1c3ad5a60ed254b3929
ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -110,21 +110,20 @@
//        if (StringUtils.isNotBlank(data.getSignature())) {
//            WxUtils.verifySignature(data.getRawData(), sessionKey, data.getSignature());
//        }
        if(StringUtils.isEmpty(data.getEncryptedData()) || StringUtils.isEmpty(data.getIv())){
            return R.fail("已拒绝授权");
        }
        AppletUserDecodeData appletUserDecodeData = WxUtils.encryptedData(data.getEncryptedData(), sessionKey,  data.getIv());
        appletUserDecodeData.setOpenId(openid);
//        if(StringUtils.isEmpty(data.getEncryptedData()) || StringUtils.isEmpty(data.getIv())){
//            return R.fail("已拒绝授权");
//        }
//        AppletUserDecodeData appletUserDecodeData = WxUtils.encryptedData(data.getEncryptedData(), sessionKey,  data.getIv());
//        appletUserDecodeData.setOpenId(openid);
        // 先使用openId和当前手机号进行查询
        TAppUser sysAppUser = appUserService.getOne(Wrappers.lambdaQuery(TAppUser.class)
                .and(e->e.eq(TAppUser::getOpenId, appletUserDecodeData.getOpenId()).or()
                        .eq(TAppUser::getPhoneNumber, appletUserDecodeData.getPhoneNumber())));
                .and(e->e.eq(TAppUser::getOpenId, openid)));
        if (sysAppUser==null){
            sysAppUser = new TAppUser();
            sysAppUser.setPhoneNumber(appletUserDecodeData.getPhoneNumber());
            sysAppUser.setOpenId(appletUserDecodeData.getOpenId());
//            sysAppUser.setPhoneNumber(appletUserDecodeData.getPhoneNumber());
            sysAppUser.setOpenId(openid);
            // 手机号中间四位替换为*
            sysAppUser.setNickName(appletUserDecodeData.getPhoneNumber().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"));
//            sysAppUser.setNickName(appletUserDecodeData.getPhoneNumber().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"));
            appUserService.save(sysAppUser);
        }else {
            // 判断账号是否被冻结
@@ -132,7 +131,7 @@
                return R.fail("账号已冻结,请联系管理员");
            }
            // 手机号相同但openId为空的情况
            sysAppUser.setOpenId(appletUserDecodeData.getOpenId());
            sysAppUser.setOpenId(openid);
            appUserService.updateById(sysAppUser);
        }
        LoginUserApplet loginUserApplet = new LoginUserApplet();