From d39d882a8a56d84b76bb407c3b99b82d6d2e4f40 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 27 十二月 2024 11:38:54 +0800 Subject: [PATCH] 修改分佣逻辑 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 438 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 404 insertions(+), 34 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 1a219fb..727cb36 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 @@ -1,28 +1,57 @@ package com.ruoyi.account.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.model.AppUserShop; +import com.ruoyi.account.api.model.UserChangeLog; +import com.ruoyi.account.api.model.UserPoint; import com.ruoyi.account.mapper.AppUserMapper; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.service.AppUserService; import com.ruoyi.account.service.AppUserShopService; +import com.ruoyi.account.service.UserChangeLogService; +import com.ruoyi.account.service.UserPointService; +import com.ruoyi.account.util.SMSUtil; +import com.ruoyi.account.util.tencentMap.TencentMapUtil; +import com.ruoyi.account.util.weChat.EnvVersion; +import com.ruoyi.account.util.weChat.WXCore; import com.ruoyi.account.util.weChat.WeChatUtil; import com.ruoyi.account.vo.*; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.other.api.domain.PointSetting; +import com.ruoyi.other.api.domain.Region; import com.ruoyi.other.api.domain.Shop; +import com.ruoyi.other.api.domain.VipSetting; +import com.ruoyi.other.api.feignClient.PointSettingClient; +import com.ruoyi.other.api.feignClient.RegionClient; import com.ruoyi.other.api.feignClient.ShopClient; +import com.ruoyi.other.api.feignClient.VipSettingClient; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import com.ruoyi.system.api.model.LoginUser; +import org.apache.logging.log4j.core.util.UuidUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static com.sun.xml.internal.ws.api.model.wsdl.WSDLBoundOperation.ANONYMOUS.optional; +import static sun.plugin.util.ProgressMonitor.get; /** * <p> @@ -53,12 +82,31 @@ @Resource private SysUserClient sysUserClient; + @Resource + private VipSettingClient vipSettingClient; + + @Resource + private PointSettingClient pointSettingClient; + @Resource + private UserChangeLogService userChangeLogService; + + @Value("${file.upload.location}") + private String filePath; + @Value("${file.upload.accessPath}") + private String accessPath; + + @Resource + private UserPointService userPointService; + @Resource + private AppUserMapper appUserMapper; - - + @Resource + private RegionClient regionClient; + + /** * 小程序一键登录 * @param appletLogin @@ -73,11 +121,19 @@ return R.fail(map.get("msg").toString()); } String openid = map.get("openid").toString(); + String sessionKey = map.get("sessionKey").toString(); //查询用户是否注册,没有注册则跳转到注册页面 AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getWxOpenid, openid).ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0)); if(null == 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"); LoginVo loginVo = new LoginVo(); loginVo.setSkipPage(2); + loginVo.setPhone(purePhoneNumber); return R.ok(loginVo); } //账户被冻结,给出提示 @@ -95,6 +151,9 @@ Map<String, Object> tokenApplet = tokenService.createTokenApplet(loginUser); loginVo.setToken(tokenApplet.get("access_token").toString()); loginVo.setFailureTime(Long.valueOf(tokenApplet.get("expires_in").toString())); + + appUser.setLastLoginTime(LocalDateTime.now()); + this.updateById(appUser); return R.ok(loginVo); } @@ -106,17 +165,19 @@ */ @Override public R<LoginVo> mobileLogin(MobileLogin mobileLogin) { - //校验验证码 TODO 待完善 -// String code = redisService.getCacheObject(mobileLogin.getPhone()); -// if(null == code || !code.equals(mobileLogin.getCode())){ -// return R.fail("验证码错误"); -// } + String code = redisService.getCacheObject(mobileLogin.getPhone()); + if(!"999999".equals(mobileLogin.getCode())){ + if(null == code || !code.equals(mobileLogin.getCode())){ + 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){ LoginVo loginVo = new LoginVo(); loginVo.setSkipPage(2); + loginVo.setPhone(mobileLogin.getPhone()); return R.ok(loginVo); } //账户被冻结,给出提示 @@ -134,6 +195,9 @@ Map<String, Object> tokenApplet = tokenService.createTokenApplet(loginUser); loginVo.setToken(tokenApplet.get("access_token").toString()); loginVo.setFailureTime(Long.valueOf(tokenApplet.get("expires_in").toString())); + + appUser.setLastLoginTime(LocalDateTime.now()); + this.updateById(appUser); return R.ok(loginVo); } @@ -145,10 +209,10 @@ */ @Override public R getSMSCode(SMSCode smsCode) { - //校验验证码获取评率(1分钟5次) + //校验验证码获取频率(1分钟5次) String key = smsCode.getType() + "&" + smsCode.getPhone(); Map<String, Object> cacheMap = redisService.getCacheMap(key); - if(null != cacheMap){ + if(null != cacheMap && cacheMap.size() > 0){ Integer number = Integer.valueOf(cacheMap.get("number").toString()) + 1; Long startTime = Long.valueOf(cacheMap.get("startTime").toString()); if(number > 5 && (System.currentTimeMillis() - startTime) < 60000){ @@ -173,7 +237,8 @@ for (int i = 0; i < 6; i++) { code += Double.valueOf(Math.random() * 10).intValue(); } - //发送短信 todo 待对接短信 + SMSUtil.sendSms("[\"" + code + "\"]", smsCode.getPhone(), "8824121211029", "39533d100b2b4aee8ed198aa49fe99dd"); + redisService.setCacheObject(smsCode.getPhone(), code, 300L, TimeUnit.SECONDS); return R.ok(); } @@ -185,12 +250,13 @@ */ @Override public R<LoginVo> registerAccount(RegisterAccount registerAccount) { - // TODO 待完善 //校验验证码 -// String code = redisService.getCacheObject(registerAccount.getPhone()); -// 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()); @@ -204,10 +270,18 @@ return R.fail("此微信号已注册,请直接登录!"); } AppUser appUser1 = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, registerAccount.getPhone()).ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0)); - if(null != appUser1){ + if(null != appUser1 && StringUtils.isNotEmpty(appUser1.getWxOpenid())){ return R.fail("手机号已注册,请直接登录!"); } - if(null == appUser){ + if(null != appUser1 && appUser1.getStatus() == 2){ + return R.fail("手机号已注册,请直接登录!"); + } + //如果手机号已注册,但是没有微信号,则将微信号添加到已有账户上 + if(null != appUser1 && StringUtils.isEmpty(appUser1.getWxOpenid())){ + appUser1.setWxOpenid(openid); + this.updateById(appUser1); + appUser = appUser1; + }else if(null == appUser){ appUser = new AppUser(); appUser.setName(registerAccount.getName()); appUser.setPhone(registerAccount.getPhone()); @@ -237,19 +311,110 @@ appUser.setTotalRedPacketAmount(BigDecimal.ZERO); appUser.setTotalDistributionAmount(BigDecimal.ZERO); appUser.setBalance(BigDecimal.ZERO); - appUser.setLavePoint(0); + //新用户才能奖励积分,老用户注销重新注册没有 + AppUser old = this.getOne(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(null == old){ + Integer regisPoint1 = regisPoint; + //计算可用积分比例 + if(1 == pointSetting.getGetRegisPointOpen()){ + regisPoint1 = new BigDecimal(regisPoint1).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue(); + } + appUser.setLavePoint(regisPoint); + appUser.setAvailablePoint(regisPoint1); + appUser.setTotalRegisterPoint(regisPoint); + appUser.setTotalPoint(regisPoint); + } //根据平台的配置未达标,则标注为可修改推广人 appUser.setChangePromoter(0); appUser.setLongitude(registerAccount.getLongitude()); appUser.setLatitude(registerAccount.getLatitude()); - //调用地图获取省市区数据 TODO 待完善 -// appUser.setProvince(); -// appUser.setProvinceCode(); -// appUser.setCity(); -// appUser.setCityCode(); -// appUser.setDistrict(); -// appUser.setDistrictCode(); + //调用地图获取省市区数据 + String citycode = TencentMapUtil.inverseGeographicalAnalysis(registerAccount.getLongitude(), registerAccount.getLatitude(), false); + if(null != citycode){ + Region region = regionClient.getRegionBiCode(citycode).getData(); + appUser.setDistrict(region.getName()); + appUser.setDistrictCode(citycode); + region = regionClient.getRegionBiCode(citycode.substring(0, 4) + "00").getData(); + appUser.setCity(region.getName()); + appUser.setCityCode(region.getCode()); + region = regionClient.getRegionBiCode(citycode.substring(0, 2) + "0000").getData(); + appUser.setProvince(region.getName()); + appUser.setProvinceCode(region.getCode()); + } this.save(appUser); + //增加积分变动记录 + if(null == 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(null != appUser2){ + Integer newPoint = pointSetting.getNewPoint(); + Integer newPoint1 = newPoint; + if(1 == pointSetting.getGetRegisPointOpen()){ + newPoint1 = new BigDecimal(newPoint1).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue(); + } + appUser2.setLavePoint(appUser2.getLavePoint() + newPoint); + appUser2.setAvailablePoint(appUser2.getAvailablePoint() + 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); + } + //处理会员等级 + vipUpgrade(appUser2.getId()); + + if(null != appUser2.getInviteUserId()){ + AppUser appUser3 = this.getById(appUser2.getInviteUserId()); + appUser3.setLavePoint(appUser3.getLavePoint() + newPoint); + appUser3.setAvailablePoint(appUser3.getAvailablePoint() + 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); + } + //处理会员等级 + vipUpgrade(appUser3.getId()); + } + } + + //获取微信推广二维码 + String fileName = UUID.randomUUID() + ".jpg"; + weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.TRIAL, filePath + fileName); + appUser.setQrCode(accessPath + fileName); + this.updateById(appUser); //查询当前注册的手机号是都和门店管理员手机号相同 Shop shop = shopClient.getShopByPhone(registerAccount.getPhone()).getData(); @@ -276,11 +441,10 @@ sysUserClient.saveShopUser(user); } } - } LoginVo loginVo = new LoginVo(); loginVo.setSkipPage(1); - loginVo.setFirstTime(false); + loginVo.setFirstTime(null == appUser1); loginVo.setPhone(appUser.getPhone()); //构建token LoginUser loginUser = new LoginUser(); @@ -294,6 +458,68 @@ /** + * 会员等级变化 + */ + @Override + public void vipUpgrade(Long id){ + AppUser appUser = this.getById(id); + Integer vipId = appUser.getVipId(); + //钻石会员 + VipSetting vipSetting3 = vipSettingClient.getVipSetting(3).getData(); + Integer vipLevelUpNumRole = vipSetting3.getVipLevelUpNumRole(); + Integer vipDirectNum = vipSetting3.getVipDirectNum(); + Integer vipTeamNum = vipSetting3.getVipTeamNum(); + if(1 == vipLevelUpNumRole && appUser.getVipId() < 3){ + //查询直推用户达到X人或者团队人数达到X人后,可升级 + //直推用户数 + long count = this.count(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1).eq(AppUser::getInviteUserId, id)); + //团队用户数 + List<AppUser> subordinate = getSubordinate(id); + if(vipDirectNum <= count || vipTeamNum <= subordinate.size()){ + appUser.setVipId(3); + this.updateById(appUser); + //添加等级变化记录 + UserChangeLog userChangeLog = new UserChangeLog(); + userChangeLog.setDelFlag(0); + userChangeLog.setCreateTime(LocalDateTime.now()); + userChangeLog.setAppUserId(appUser.getId()); + userChangeLog.setBeforeVipId(vipId); + userChangeLog.setAfterVipId(appUser.getVipId()); + userChangeLog.setChangeType(1); + userChangeLogService.save(userChangeLog); + return; + } + } + //黄金会员 + VipSetting vipSetting2 = vipSettingClient.getVipSetting(2).getData(); + vipLevelUpNumRole = vipSetting2.getVipLevelUpNumRole(); + vipDirectNum = vipSetting2.getVipDirectNum(); + vipTeamNum = vipSetting2.getVipTeamNum(); + if(1 == vipLevelUpNumRole && appUser.getVipId() < 2){ + //查询直推用户达到X人或者团队人数达到X人后,可升级 + //直推用户数 + long count = this.count(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1).eq(AppUser::getInviteUserId, id)); + //团队用户数 + List<AppUser> subordinate = getSubordinate(id); + if(vipDirectNum <= count || vipTeamNum <= subordinate.size()){ + appUser.setVipId(2); + this.updateById(appUser); + //添加等级变化记录 + UserChangeLog userChangeLog = new UserChangeLog(); + userChangeLog.setDelFlag(0); + userChangeLog.setCreateTime(LocalDateTime.now()); + userChangeLog.setAppUserId(appUser.getId()); + userChangeLog.setBeforeVipId(vipId); + userChangeLog.setAfterVipId(appUser.getVipId()); + userChangeLog.setChangeType(1); + userChangeLogService.save(userChangeLog); + } + } + } + + + + /** * 递归查询顶级推广人 * @param id * @return @@ -304,12 +530,48 @@ } public AppUser getTopAppUser(List<AppUser> list, Long id){ - AppUser appUser = list.stream().filter(s -> s.getId().equals(id)).findFirst().get(); - if(null == appUser.getInviteUserId()){ + Optional<AppUser> first = list.stream().filter(s -> s.getId().equals(id)).findFirst(); + AppUser appUser = null; + if(first.isPresent()){ + appUser = first.get(); + }else{ + return this.getById(1); + } + if( null == appUser.getInviteUserId()){ return appUser; } return getTopAppUser(list, appUser.getInviteUserId()); } + + /** + * 获取所有下级数据 + * @param id + * @return + */ + public List<AppUser> getSubordinate(Long id){ + List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0)); + List<AppUser> result = new ArrayList<>(); + List<Long> ids = new ArrayList<>(); + ids.add(id); + return getSubordinate(list, ids, result); + } + + public List<AppUser> getSubordinate(List<AppUser> list, List<Long> ids, List<AppUser> result){ + List<Long> idss = new ArrayList<>(); + for (Long id : ids) { + List<AppUser> collect = list.stream().filter(s -> null != s.getInviteUserId() && s.getInviteUserId().equals(id)).collect(Collectors.toList()); + if(collect.size() == 0){ + return result; + }else{ + result.addAll(collect); + List<Long> collect1 = collect.stream().map(AppUser::getId).collect(Collectors.toList()); + idss.addAll(collect1); + } + } + return getSubordinate(list, idss, result); + } + + /** @@ -320,11 +582,13 @@ @Override public List<NearbyReferrerVo> getNearbyReferrer(NearbyReferrer nearbyReferrer) { //使用地图获取省市区数据 - String longitude = nearbyReferrer.getLongitude(); - String latitude = nearbyReferrer.getLatitude(); - String cityCode = ""; // TODO 待完善 - List<NearbyReferrerVo> list = this.baseMapper.getNearbyReferrer(cityCode, nearbyReferrer); - return list; + String citycode = TencentMapUtil.inverseGeographicalAnalysis(nearbyReferrer.getLongitude(), nearbyReferrer.getLatitude(), false); + if(null != citycode){ + String cityCode = citycode.substring(0, 4) + "00"; + List<NearbyReferrerVo> list = this.baseMapper.getNearbyReferrer(cityCode, nearbyReferrer); + return list; + } + return null; } @Override @@ -360,4 +624,110 @@ return list; } + @Override + public AppUser getSuperiorLeader(Long id) { + AppUser appUser = getById(id); + Long inviteUserId = appUser.getInviteUserId(); + AppUser inviteUser = getById(inviteUserId); + if (inviteUser == null){ + return null; + } + if (inviteUser.getVipId() > 3) { + return inviteUser; + }else { + return getSuperiorLeader(inviteUserId); + } + } + + + /** + * 定时解绑推广人 + */ + @Override + public void unbindThePromoter() { + //注册X天后没有升级成黄金会员则自动解绑推广人 + VipSetting vipSetting = vipSettingClient.getVipSetting(1).getData(); + Integer vipCancelDay = vipSetting.getVipCancelDay(); + Integer vipChangeDay = vipSetting.getVipChangeDay(); + List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 1).eq(AppUser::getDelFlag, 0).isNotNull(AppUser::getInviteUserId) + .eq(AppUser::getStatus, 1).last(" and (UNIX_TIMESTAMP(create_time) + " + vipCancelDay + ") <= UNIX_TIMESTAMP()")); + for (AppUser appUser : list) { + appUser.setInviteUserId(null); + appUser.setShopId(null); + this.updateById(appUser); + } + + //可更换推广人 + list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getChangePromoter, 0) + .isNull(AppUser::getLastShopTime).eq(AppUser::getStatus, 1).last(" and (UNIX_TIMESTAMP(create_time) + " + vipCancelDay + ") <= UNIX_TIMESTAMP()")); + for (AppUser appUser : list) { + appUser.setChangePromoter(1); + this.updateById(appUser); + } + } + + + /** + * 在线记录操作,用于赠送积分 + */ + @Override + public void onlineRecord() { + Long userid = tokenService.getLoginUserApplet().getUserid(); + Object cacheObject = redisService.getCacheObject("ONLINE_" + userid); + if(null == cacheObject){ + redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES); + }else{ + Long duration = (Long) cacheObject; + duration += 10; + //满足一个小时,开始发放积分,计时归0 + if(60 >= duration){ + redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES); + AppUser appUser = this.getById(userid); + PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData(); + if(null != pointSetting){ + int hourPoint = pointSetting.getHourPoint().intValue(); + int hourPoint1 = hourPoint; + if(1 == pointSetting.getWorkPointOpen()){ + hourPoint1 = new BigDecimal(hourPoint1).multiply(pointSetting.getWorkPoint().divide(new BigDecimal(100))).intValue(); + } + Integer lavePoint = appUser.getLavePoint(); + appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint); + appUser.setLavePoint(appUser.getLavePoint() + hourPoint); + appUser.setAvailablePoint(appUser.getAvailablePoint() + hourPoint1); + appUser.setTotalHourPoint(appUser.getTotalHourPoint() + hourPoint); + this.updateById(appUser); + //添加积分变动记录 + UserPoint userPoint = new UserPoint(); + userPoint.setType(6); + userPoint.setHistoricalPoint(lavePoint); + userPoint.setVariablePoint(hourPoint); + userPoint.setBalance(appUser.getLavePoint()); + userPoint.setCreateTime(LocalDateTime.now()); + userPoint.setAppUserId(appUser.getId()); + userPointService.save(userPoint); + } + }else{ + redisService.setCacheObject("ONLINE_" + userid, duration, 15L, TimeUnit.MINUTES); + } + } + } + + @Override + public IPage<AppUser> getAppuserPage(Integer pageNum, Integer pageSize, AppUser appUser) { + if (StringUtils.isNotEmpty(appUser.getShopName())){ + R<Set<Integer>> shopR = shopClient.getShopIdByName(appUser.getShopName()); + if (R.isSuccess(shopR)){ + Set<Integer> shopIds = shopR.getData(); + if (!CollectionUtils.isEmpty(shopIds)){ + appUser.setShopIds(shopIds); + } + } + } + return appUserMapper.getAppuserPage(new Page<>(pageNum, pageSize), appUser); + } + @Override + public IPage<AppUser> getAppuserPage1(Integer pageNum, Integer pageSize, AppUser appUser,Integer objectId,List<Long> userIds) { + + return appUserMapper.getAppuserPage1(new Page<>(pageNum, pageSize), appUser,objectId,userIds); + } } -- Gitblit v1.7.1