From 6acf6357094588946b5528f1ef1ed84a0f1037fd Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期五, 13 六月 2025 19:45:27 +0800 Subject: [PATCH] 小程序收付款 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 187 +++++++++++----------------------------------- 1 files changed, 47 insertions(+), 140 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java index dcb326a..d71fa38 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java @@ -97,7 +97,7 @@ @Resource private OrderClient orderClient; - private static final String DEFAULT_AVATAR_URL = "http://qijishenghuiyuan.obs.cn-southwest-2.myhuaweicloud.com/admin/aedfbbb41280471f8d9fa7905298b65f.png"; + private static final String DEFAULT_AVATAR_URL = "http://qijishenghuiyuan.obs.cn-southwest-2.myhuaweicloud.com/admin/58084a0ce8c34dc79f9d8b4c0bc3774a.png"; /** @@ -115,17 +115,18 @@ } String openid = map.get("openid").toString(); String sessionKey = map.get("sessionKey").toString(); + //获取手机号 + 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 appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getWxOpenid, openid).ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0)); + AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, purePhoneNumber).ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0)); if(null == appUser){ + 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("purePhoneNumber"); //新用户默认信息 appUser.setName(purePhoneNumber.substring(0, 3) + "****" + purePhoneNumber.substring(7)); appUser.setPhone(purePhoneNumber); @@ -133,7 +134,12 @@ appUser.setWxOpenid(openid); appUser.setStatus(1); appUser.setDelFlag(false); + appUser.setCreateTime(LocalDateTime.now()); this.save(appUser); + }else { + //从订单导入的,将openid导入 + appUser.setWxOpenid(openid); + this.updateById(appUser); } //账户被冻结,给出提示 if(2 == appUser.getStatus()){ @@ -170,11 +176,17 @@ return R.fail("验证码错误"); } } - - //查询用户是否注册,没有注册则系统注册 + //查询用户是否注册,没有注册则跳转到注册页面 AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, mobileLogin.getPhone()) .ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0)); - if(null == appUser){ + if(null == appUser||null ==appUser.getWxOpenid()){ + LoginVo loginVo = new LoginVo(); + loginVo.setSkipPage(2); + loginVo.setPhone(mobileLogin.getPhone()); + return R.ok(loginVo); + } + //查询用户是否注册,没有注册则系统注册 + /*if(null == appUser){ appUser=new AppUser(); //注册 //使用jscode获取微信openid @@ -206,7 +218,7 @@ } this.save(appUser); - } + }*/ //账户被冻结,给出提示 if(2 == appUser.getStatus()){ return R.fail("账户已被冻结,请联系管理员!"); @@ -271,16 +283,15 @@ /** * 注册账号 */ - /* @Override public R<LoginVo> registerAccount(RegisterAccount registerAccount) { //校验验证码 -// String code = redisService.getCacheObject(registerAccount.getPhone()); -// if(!"999999".equals(registerAccount.getCode())){ -// if(null == code || !code.equals(registerAccount.getCode())){ -// return R.fail("验证码错误"); -// } -// } +/* String code = redisService.getCacheObject(registerAccount.getPhone()); + if(!"999999".equals(registerAccount.getCode())){ + if(null == code || !code.equals(registerAccount.getCode())){ + return R.fail("验证码错误"); + } + }*/ //使用jscode获取微信openid Map<String, Object> map = weChatUtil.code2Session(registerAccount.getJscode()); Integer errcode = Integer.valueOf(map.get("errcode").toString()); @@ -298,12 +309,12 @@ return R.fail("手机号已注册,请直接登录!"); } if(null != appUser1 && appUser1.getStatus() == 2){ - return R.fail("手机号已注册,请直接登录!"); + return R.fail("该手机号已被冻结!"); } String avatar = registerAccount.getAvatar(); if (StringUtils.isEmpty(avatar)){ - avatar = "http://qijishenghuiyuan.obs.cn-southwest-2.myhuaweicloud.com/admin/aedfbbb41280471f8d9fa7905298b65f.png"; + avatar = DEFAULT_AVATAR_URL; } //如果手机号已注册,但是没有微信号,则将微信号添加到已有账户上 @@ -318,55 +329,11 @@ appUser.setPhone(registerAccount.getPhone()); appUser.setWxOpenid(openid); //注册默认为普通会员 - appUser.setVipId(1); appUser.setStatus(1); appUser.setCreateTime(LocalDateTime.now()); appUser.setDelFlag(false); appUser.setFirstAdd(1); appUser.setLastLoginTime(LocalDateTime.now()); - //绑定门店为推荐人绑定的门店 - AppUser appUser2 = this.getById(registerAccount.getPromoter()); - appUser.setInviteUserId(registerAccount.getPromoter()); - appUser.setShopId(appUser2.getShopId()); - appUser.setPartPoint(0); - appUser.setPartGrowPoint(0); - appUser.setShopPoint(0); - appUser.setSharePoint(0); - appUser.setShopAmount(BigDecimal.ZERO); - appUser.setWithdrawableAmount(BigDecimal.ZERO); - appUser.setWithdrawnAmount(BigDecimal.ZERO); - appUser.setTotalRechargeAmount(BigDecimal.ZERO); - appUser.setTotalRedPacketAmount(BigDecimal.ZERO); - appUser.setTotalDistributionAmount(BigDecimal.ZERO); - appUser.setBalance(BigDecimal.ZERO); - //新用户才能奖励积分,老用户注销重新注册没有 - long old = this.count(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, registerAccount.getPhone()).eq(AppUser::getDelFlag, 0)); - R<PointSetting> pointSettingR = pointSettingClient.getPointSetting(1); - if (R.isError(pointSettingR)){ - throw new RuntimeException("获取积分设置失败"); - } - PointSetting pointSetting = pointSettingR.getData(); - if (pointSetting == null){ - throw new RuntimeException("积分设置不存在"); - } - Integer regisPoint = pointSetting.getRegisPoint(); - if(0 == old){ - Integer regisPoint1 = 0; - //计算可用积分比例 - if(1 == pointSetting.getGetRegisPointOpen()){ - regisPoint1 = new BigDecimal(regisPoint).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue(); - } - appUser.setLavePoint(regisPoint); - appUser.setAvailablePoint(regisPoint1); - appUser.setTotalAvailablePoint(regisPoint1); - if(null != pointSetting && 1 == pointSetting.getGetRegisPointGift()){ - appUser.setTransferablePoint(regisPoint1); - } - appUser.setTotalRegisterPoint(regisPoint); - appUser.setTotalPoint(regisPoint); - } - //根据平台的配置未达标,则标注为可修改推广人 - appUser.setChangePromoter(0); appUser.setLongitude(registerAccount.getLongitude()); appUser.setLatitude(registerAccount.getLatitude()); //调用地图获取省市区数据 @@ -383,78 +350,6 @@ appUser.setProvinceCode(region.getCode()); } this.save(appUser); - - //增加积分变动记录 - if(0 == old && regisPoint > 0){ - //构建积分流水记录 - UserPoint userPoint = new UserPoint(); - userPoint.setType(7); - userPoint.setHistoricalPoint(0); - userPoint.setVariablePoint(regisPoint); - userPoint.setBalance(appUser.getLavePoint()); - userPoint.setCreateTime(LocalDateTime.now()); - userPoint.setAppUserId(appUser.getId()); - userPointService.save(userPoint); - } - - //拉新分佣 - if(0 == old && null != appUser2){ - pointSetting = pointSettingClient.getPointSetting(appUser2.getVipId()).getData(); - Integer newPoint = pointSetting.getNewPoint(); - Integer newPoint1 = 0; - if(1 == pointSetting.getGetNewPointOpen()){ - newPoint1 = new BigDecimal(newPoint).multiply(pointSetting.getGetNewPoint().divide(new BigDecimal(100))).intValue(); - } - appUser2.setLavePoint(appUser2.getLavePoint() + newPoint); - appUser2.setAvailablePoint(appUser2.getAvailablePoint() + newPoint1); - appUser2.setTotalAvailablePoint(appUser2.getTotalAvailablePoint() + newPoint1); - if(null != pointSetting && 1 == pointSetting.getGetNewPointGift()){ - appUser2.setTransferablePoint(appUser2.getTransferablePoint() + newPoint1); - } - appUser2.setTotalInvitePoint(appUser2.getTotalInvitePoint() + newPoint); - appUser2.setTotalPoint(appUser2.getTotalPoint() + newPoint); - this.updateById(appUser2); - if(newPoint > 0){ - UserPoint userPoint = new UserPoint(); - userPoint.setType(3); - userPoint.setHistoricalPoint(appUser2.getLavePoint() - newPoint); - userPoint.setVariablePoint(newPoint); - userPoint.setBalance(appUser2.getLavePoint()); - userPoint.setCreateTime(LocalDateTime.now()); - userPoint.setAppUserId(appUser2.getId()); - userPointService.save(userPoint); - } - - if(null != appUser2.getInviteUserId()){ - AppUser appUser3 = this.getById(appUser2.getInviteUserId()); - appUser3.setLavePoint(appUser3.getLavePoint() + newPoint); - appUser3.setAvailablePoint(appUser3.getAvailablePoint() + newPoint1); - appUser3.setTotalAvailablePoint(appUser3.getTotalAvailablePoint() + newPoint1); - if(null != pointSetting && 1 == pointSetting.getGetRegisPointGift()){ - appUser3.setTransferablePoint(appUser3.getTransferablePoint() + newPoint1); - } - appUser3.setTotalInvitePoint(appUser3.getTotalInvitePoint() + newPoint); - appUser3.setTotalPoint(appUser3.getTotalPoint() + newPoint); - this.updateById(appUser3); - if(newPoint > 0){ - UserPoint userPoint = new UserPoint(); - userPoint.setType(3); - userPoint.setHistoricalPoint(appUser3.getLavePoint() - newPoint); - userPoint.setVariablePoint(newPoint); - userPoint.setBalance(appUser3.getLavePoint()); - userPoint.setCreateTime(LocalDateTime.now()); - userPoint.setAppUserId(appUser3.getId()); - userPointService.save(userPoint); - } - } - } - - //获取微信推广二维码 - String fileName = UUID.randomUUID() + ".jpg"; - String getwxacodeunlimit = weChatUtil.getwxacodeunlimit("pages/start/start", "id=" + appUser.getId(), EnvVersion.RELEASE, filePath + fileName); - appUser.setQrCode(getwxacodeunlimit); - this.updateById(appUser); - } LoginVo loginVo = new LoginVo(); loginVo.setSkipPage(1); @@ -470,8 +365,7 @@ return R.ok(loginVo); } -*/ - + @@ -519,7 +413,9 @@ //查询门店,如果门店被冻结 List<Shop> shopList = shopClient.getShopByUserId(userId).getData(); user.setShopStatus(0);//未拥有门店 + if (shopList != null && !shopList.isEmpty()) { + //走进来代表有门店 ,先设置为冻结中 user.setShopStatus(2);//门店都被冻结 for (Shop shop : shopList) { if (shop.getStatus()==1) { @@ -536,4 +432,15 @@ } return user; } + + @Override + public PageInfo<UserPointStatisticsVO> getUserPointPageList(String name, Integer pageCurr, Integer pageSize) { + PageInfo<UserPointStatisticsVO> pageInfo=new PageInfo<>(pageCurr,pageSize); + List<UserPointStatisticsVO> list=baseMapper.getUserPointPageList(pageInfo, name); + list.forEach(x->{ + x.setIdStr(String.valueOf(x.getId())); + }); + pageInfo.setRecords(list); + return pageInfo; + } } -- Gitblit v1.7.1