huliguo
2025-06-09 22d290b86699f8f9f832ffe40f25e389cf62da83
小程序登录逻辑修改
5个文件已修改
101 ■■■■ 已修改文件
pt-admin/src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/object/dto/app/MobileLoginDTO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/object/dto/app/RegisterDTO.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/service/impl/AppUserServiceImpl.java 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/utils/PaymentUtil.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-admin/src/main/resources/application.yml
@@ -139,8 +139,8 @@
  # 匹配链接
  urlPatterns: /system/*,/monitor/*,/tool/*
wx:
  appletsAppid: wxdeed472c98e42a54
  appletsAppSecret: c89c697c981452480e0781fb82d4284c
  appletsAppid: wxedd7aefdfaf897cf
  appletsAppSecret: e1a8dba539294da6b935e8f0f3b09aac
  # 不校验白名单
weapp:
pt-errand/src/main/java/com/ruoyi/errand/object/dto/app/MobileLoginDTO.java
@@ -15,7 +15,6 @@
    @ApiModelProperty("短信验证码")
    @NotEmpty(message = "短信验证码不能为空")
    private String code;
    @ApiModelProperty(value = "微信jscode", required = true)
    private String jscode;
}
pt-errand/src/main/java/com/ruoyi/errand/object/dto/app/RegisterDTO.java
@@ -4,15 +4,22 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Data
@ApiModel("用户注册")
public class RegisterDTO {
    @ApiModelProperty("用户名")
    @NotNull(message = "用户名不能为空")
    @NotEmpty(message = "用户名不能为空")
    private String username;
    @ApiModelProperty("小区id")
    @NotNull(message = "必须绑定小区")
    private Integer communityId;
    @ApiModelProperty(value = "微信jscode", required = true)
    @NotEmpty(message = "微信jscode不能为空")
    private String jscode;
    @ApiModelProperty("手机号")
    @NotEmpty(message = "手机号不能为空")
    private String phone;
}
pt-errand/src/main/java/com/ruoyi/errand/service/impl/AppUserServiceImpl.java
@@ -113,26 +113,16 @@
            }
        }
        //查看用户是否存在
        AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, mobileLogin.getPhone()));
        if (null == appUser || appUser.getDelFlag().equals(DelFlagConstant.DELETE)) {
        AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, mobileLogin.getPhone())
                .ne(AppUser::getStatus,AppUserStatusConstant.LOGOUT)
                .eq(AppUser::getDelFlag,DelFlagConstant.UNDELETE));
        if (null == appUser) {
            //用户不存在
            //使用jscode获取微信openid
            Map<String, Object> map = weChatUtil.code2Session(mobileLogin.getJscode());
            Integer errcode = Integer.valueOf(map.get("errcode").toString());
            if(0 != errcode){
                throw new ServiceException(map.get("msg").toString());
            }
            String openid = map.get("openid").toString();
            //注册一个
            appUser = new AppUser();
            appUser.setPhone(mobileLogin.getPhone());
            appUser.setDelFlag(DelFlagConstant.UNDELETE);
            appUser.setStatus(AppUserStatusConstant.NORMAL);
            appUser.setWxOpenid(openid);
            appUser.setAvatar(DEFAULT_AVATAR_URL);
            appUser.setFirstLogin(IsFirstLoginConstant.YES);
            appUser.setFirstOrder(IsFirstOrder.YES);
            this.save(appUser);
            //跳转注册页面
            LoginVO loginVo = new LoginVO();
            loginVo.setSkipPage(2);
            loginVo.setPhone(mobileLogin.getPhone());
            return R.ok(loginVo);
        }
        if (Objects.equals(appUser.getStatus(), AppUserStatusConstant.FREEZE)) {
            throw new ServiceException("该账户已被冻结");
@@ -167,29 +157,21 @@
        }
        String openid = map.get("openid").toString();
        String sessionKey = map.get("sessionKey").toString();
        //查询用户是否注册,没有注册则注册
        AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getWxOpenid, openid));
        if(null == appUser|| appUser.getDelFlag().equals(DelFlagConstant.DELETE)){
            appUser = new AppUser();
            //注册
            //获取手机号
            String decrypt = WXCore.decrypt(appletLogin.getEncryptedData_phone(), sessionKey, appletLogin.getIv_phone());
            if (StringUtils.isEmpty(decrypt)) {
                return R.fail("获取手机信息失败");
            }
            JSONObject phone = JSON.parseObject(decrypt);
            String purePhoneNumber = phone.getString("phoneNumber");
            //新用户默认信息
            appUser = new AppUser();
            appUser.setPhone(purePhoneNumber);
            appUser.setDelFlag(DelFlagConstant.UNDELETE);
            appUser.setStatus(AppUserStatusConstant.NORMAL);
            appUser.setWxOpenid(openid);
            appUser.setAvatar(DEFAULT_AVATAR_URL);
            appUser.setFirstLogin(IsFirstLoginConstant.YES);
            appUser.setFirstOrder(IsFirstOrder.YES);
            this.save(appUser);
        JSONObject phoneJson = JSON.parseObject(decrypt);
        String phone = phoneJson.getString("phoneNumber");
        //查询用户是否存在
        AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, phone).ne(AppUser::getStatus, AppUserStatusConstant.LOGOUT).eq(AppUser::getDelFlag,DelFlagConstant.UNDELETE));
        if(null == appUser){
            //跳转到注册界面
            LoginVO loginVo = new LoginVO();
            loginVo.setSkipPage(2);
            loginVo.setPhone(phone);
            return R.ok(loginVo);
        }
        if (Objects.equals(appUser.getStatus(), AppUserStatusConstant.FREEZE)) {
@@ -214,8 +196,23 @@
    @Override
    public void register(RegisterDTO registerDTO) {
        //使用jscode获取微信openid
        Map<String, Object> map = weChatUtil.code2Session(registerDTO.getJscode());
        Integer errcode = Integer.valueOf(map.get("errcode").toString());
        if(0 != errcode){
            throw new ServiceException(map.get("msg").toString());
        }
        String openid = map.get("openid").toString();
        //注册一个
        AppUser appUser = new AppUser();
        appUser.setPhone(registerDTO.getPhone());
        appUser.setDelFlag(DelFlagConstant.UNDELETE);
        appUser.setStatus(AppUserStatusConstant.NORMAL);
        appUser.setWxOpenid(openid);
        appUser.setAvatar(DEFAULT_AVATAR_URL);
        appUser.setFirstLogin(IsFirstLoginConstant.YES);
        appUser.setFirstOrder(IsFirstOrder.YES);
        //注册 修改用户信息
        AppUser appUser = (AppUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        appUser.setName(registerDTO.getUsername());
        appUser.setFirstLogin(IsFirstLoginConstant.NO);
        appUser.setCommunityId(registerDTO.getCommunityId());
pt-errand/src/main/java/com/ruoyi/errand/utils/PaymentUtil.java
@@ -14,23 +14,23 @@
public class PaymentUtil {
    
    //微信公众号、微信小程序、微信 APP+/H5、云微小程序支付
    private static final String appId = "wxdeed472c98e42a54";
    private static final String appId = "wxedd7aefdfaf897cf";
    /**
     * 商户密钥
     */
    private static final String key = "925899fcc374430f9e4b4ba3db05b448";
    private static final String key = "NSKeley8OjCsl7AQJnDKxPIh1dIaOu";
    /**
     * 商户号
     */
    private static final String merchantNo = "888122600004175";
    private static final String merchantNo = "";
    /**
     * 平台-报备商户号
     */
    private static final String sysTradeMerchantNo = "777168500885852";
    private static final String sysTradeMerchantNo = "";
    /**
     * 支付回调地址
     * todo 支付回调地址
     */
    private static final String callbackUrl = "https://www.qijisheng.top";
    private static final String callbackUrl = "http://221.182.45.100:8084";
    
    
    /**