From cfd0118ef446a66f91999afc7b1e46ca607adf50 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期四, 13 七月 2023 20:32:35 +0800 Subject: [PATCH] 定时任务 统计 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 561 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 525 insertions(+), 36 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index 5324204..cf95a7c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -17,6 +17,7 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.member.domain.dto.*; import com.ruoyi.member.domain.pojo.member.IntegralRecord; +import com.ruoyi.member.domain.pojo.member.MemberArchive; import com.ruoyi.member.domain.pojo.member.MemberTotal; import com.ruoyi.member.domain.vo.*; import com.ruoyi.member.mapper.member.MemberMapper; @@ -239,12 +240,14 @@ member.setCreateTime(new Date()); member.setMobile(mobile); initMemberTotal(memberId); + log.info("sysUser01-----------------" + sysUser.toString()); } else { sysUser = sysUserService.getSysUser(member.getUserId()).getData(); + log.info("sysUser02-----------------" + sysUser.toString()); } member.setWxUnionid(appUserRegisterDto.getWxUnionid()); member.setMiniOpenid(appUserRegisterDto.getMiniOpenid()); - log.info("member-----------------" + member.toString()); + log.info("member02-----------------" + member.toString()); this.saveOrUpdate(member); appUserRegisterVo.setMobile(mobile); appUserRegisterVo.setNickName(member.getNickName()); @@ -303,6 +306,8 @@ AppOrderTotalVo appOrderTotalVo = orderService.getAppOrderTotal(userId).getData(); appUserInfoVo.setNoPayCount(appOrderTotalVo.getNoPayCount()); appUserInfoVo.setNoUseCount(appOrderTotalVo.getNoUseCount()); + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + appUserInfoVo.setIntegral(memberTotal.getUseableIntegral()); return appUserInfoVo; } @@ -352,17 +357,52 @@ */ @Override public List<MerMemberPageVo> pageMerMember(Page page, MerMemberPageDto merMemberPageDto) { + List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); if (StringUtils.isNotBlank(merMemberPageDto.getMemberActiveness())) { - Activeness activeness = remoteConfigService.getActivenessByName(merMemberPageDto.getMemberActiveness()).getData(); - if (activeness != null) { - Date nowDay = DateUtils.getNowDate(); - String actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); - String actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); - merMemberPageDto.setActStartDate(actStartDate); - merMemberPageDto.setActEndDate(actEndDate); + if(!activenessList.isEmpty()){ + for(Activeness activeness : activenessList){ + if(activeness.getActivenessName().equals(merMemberPageDto.getMemberActiveness())){ + Date nowDay = DateUtils.getNowDate(); + String actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); + String actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); + merMemberPageDto.setActStartDate(actStartDate); + merMemberPageDto.setActEndDate(actEndDate); + break; + } + } } } List<MerMemberPageVo> merMemberPageVoList = memberMapper.pageMerMember(page, merMemberPageDto); + //处理活跃度返回 + if (merMemberPageVoList != null && !merMemberPageVoList.isEmpty()) { + if (activenessList != null && !activenessList.isEmpty()) { + //生成活跃度时间段列表 + List<MgtActivenessJudgeVo> mgtActivenessJudgeVoList = new ArrayList<>(); + MgtActivenessJudgeVo mgtActivenessJudgeVo; + for (Activeness activeness : activenessList) { + mgtActivenessJudgeVo = new MgtActivenessJudgeVo(); + mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(), activeness.getEndDay())); + mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(), activeness.getStartDay() - 1)); + mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName()); + } + //活跃度赋值 + Date lastPayTime; + for (MerMemberPageVo mgtMemberPageVo : merMemberPageVoList) { + lastPayTime = mgtMemberPageVo.getLastPayTime(); + StringJoiner sj = new StringJoiner(","); + if (lastPayTime != null) { + for (MgtActivenessJudgeVo entity : mgtActivenessJudgeVoList) { + if (lastPayTime.compareTo(entity.getStartDay()) >= 0 && lastPayTime.compareTo(entity.getEndDay()) <= 0) { + sj.add(entity.getActivenessName()); + } + } + if (sj.length() > 0) { + mgtMemberPageVo.setMemberActiveness(sj.toString()); + } + } + } + } + } return merMemberPageVoList; } @@ -581,6 +621,20 @@ // Save the member and initialize member total this.saveOrUpdate(member); initMemberTotal(memberId); + List<MemberArchiveVo> achiveList = merMemberAddDto.getAchiveList(); + if(achiveList!=null&&!achiveList.isEmpty()){ + SysUser finalSysUser = sysUser; + List<MemberArchive> memberArchiveList = achiveList.stream().map(memberArchiveVo -> { + MemberArchive memberArchive = new MemberArchive(); + memberArchive.setDelFlag(0); + memberArchive.setUserId(finalSysUser.getUserId()); + memberArchive.setFieldId(memberArchiveVo.getFieldId()); + memberArchive.setFieldValue(memberArchiveVo.getFieldValue()); + return memberArchive; + } + ).collect(Collectors.toList()); + memberArchiveService.saveBatch(memberArchiveList); + } } } @@ -591,30 +645,49 @@ */ @Override public void editMerMember(MerMemberEditDto merMemberEditDto) { - - Member member = this.getByUserId(merMemberEditDto.getEditUserId()); - if (!member.getMobile().equals(merMemberEditDto.getPhonenumber())) { - Member memberOld = getByMobile(merMemberEditDto.getPhonenumber()); - if (memberOld != null) { - throw new ServiceException(AppErrorConstant.MOBILE_DOUBLE); - } + // 获取用户信息 + Member member = this.getByUserId(merMemberEditDto.getEditUserId()); + // 检查手机号是否已经存在 + if (!member.getMobile().equals(merMemberEditDto.getPhonenumber())) { + Member memberOld = getByMobile(merMemberEditDto.getPhonenumber()); + if (memberOld != null) { + throw new ServiceException(AppErrorConstant.MOBILE_DOUBLE); } - member.setRealName(merMemberEditDto.getNickName()); - member.setMobile(merMemberEditDto.getPhonenumber()); - member.setGender(merMemberEditDto.getGender()); - member.setReferrer(merMemberEditDto.getReferrer()); - member.setCustomerSource(merMemberEditDto.getCustomerSource()); - member.setLevel(merMemberEditDto.getLevel()); - member.setBirthday(merMemberEditDto.getBirthday()); - member.setUpdateUserId(merMemberEditDto.getUserId()); - member.setUpdateTime(new Date()); - log.info("member-----------------" + member.toString()); - this.saveOrUpdate(member); - SysUser sysUser = new SysUser(); - sysUser.setUserId(merMemberEditDto.getEditUserId()); - sysUser.setPhonenumber(merMemberEditDto.getPhonenumber()); - sysUserService.updateUserMobile(sysUser); } + // 更新用户信息 + member.setRealName(merMemberEditDto.getNickName()); + member.setMobile(merMemberEditDto.getPhonenumber()); + member.setGender(merMemberEditDto.getGender()); + member.setReferrer(merMemberEditDto.getReferrer()); + member.setCustomerSource(merMemberEditDto.getCustomerSource()); + member.setLevel(merMemberEditDto.getLevel()); + member.setBirthday(merMemberEditDto.getBirthday()); + member.setUpdateUserId(merMemberEditDto.getUserId()); + member.setUpdateTime(new Date()); + this.saveOrUpdate(member); + // 更新用户手机号 + SysUser sysUser = new SysUser(); + sysUser.setUserId(merMemberEditDto.getEditUserId()); + sysUser.setPhonenumber(merMemberEditDto.getPhonenumber()); + sysUserService.updateUserMobile(sysUser); + // 删除用户的档案信息 + memberArchiveService.deleteByUserId(sysUser.getUserId()); + // 添加用户的档案信息 + List<MemberArchiveVo> achiveList = merMemberEditDto.getAchiveList(); + if (achiveList != null && !achiveList.isEmpty()) { + // 构造用户档案列表 + List<MemberArchive> memberArchiveList = achiveList.stream().map(memberArchiveVo -> { + MemberArchive memberArchive = new MemberArchive(); + memberArchive.setDelFlag(0); + memberArchive.setUserId(sysUser.getUserId()); + memberArchive.setFieldId(memberArchiveVo.getFieldId()); + memberArchive.setFieldValue(memberArchiveVo.getFieldValue()); + return memberArchive; + }).collect(Collectors.toList()); + // 批量保存用户档案信息 + memberArchiveService.saveBatch(memberArchiveList); + } +} /** * @param mobile @@ -701,6 +774,11 @@ memberTotal.setTotalExperienceOrder(0); memberTotal.setTotalServiceOrder(0); memberTotal.setTotalGoodsOrder(0); + memberTotal.setShareFlag(0); + memberTotal.setPlSuggestFlag(0); + memberTotal.setShopSuggestFlag(0); + memberTotal.setSignFlag(0); + memberTotal.setBuyFlag(0); memberTotalService.saveOrUpdate(memberTotal); } @@ -930,6 +1008,7 @@ mgtMemberGetVo.setMemberNo(member.getMemberNo()); mgtMemberGetVo.setRealName(member.getRealName()); mgtMemberGetVo.setNickName(member.getNickName()); + mgtMemberGetVo.setAvatar(member.getAvatar()); mgtMemberGetVo.setMobile(member.getMobile()); mgtMemberGetVo.setGender(member.getGender() == 0 ? "男" : member.getGender() == 1 ? "女" : null); mgtMemberGetVo.setBirthday(member.getBirthday()); @@ -968,9 +1047,9 @@ * @date 2023/6/13 17:53 */ @Override - public List<Long> listIdBySendType(Integer sendType) { + public List<Long> listIdBySendType(Integer sendType,Long shopId) { //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 - return memberMapper.listIdBySendType(sendType); + return memberMapper.listIdBySendType(sendType,shopId); } /** @@ -1035,6 +1114,31 @@ // 获取总会员数和不同年龄段的会员数 MgtTotalMemberTotalVo mgtTotalMemberTotalVo = memberMapper.getTotalMemberTotal(mgtBaseShopDto); MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getTotalMemberTotalAge(mgtBaseShopDto); + Integer manTotal = mgtAgeTotalVo.getManTotal(); + Integer womenTotal = mgtAgeTotalVo.getWomenTotal(); + mgtTotalMemberTotalVo.setManTotal(manTotal); + mgtTotalMemberTotalVo.setWomenTotal(womenTotal); + Integer personTotal = manTotal + womenTotal; + BigDecimal manTotalBig = new BigDecimal(manTotal); + BigDecimal personTotalBig = new BigDecimal(personTotal); + BigDecimal bigTen = new BigDecimal("100.00"); + BigDecimal menPercent = new BigDecimal("100.00"); + BigDecimal womenPercent = new BigDecimal("100.00"); + if(manTotal==0&&womenTotal==0){ + menPercent = new BigDecimal("50.00"); + womenPercent = new BigDecimal("50.00"); + }else if(manTotal==0&&womenTotal>0){ + menPercent = new BigDecimal("0.00"); + womenPercent = new BigDecimal("100.00"); + }else if(manTotal>0&&womenTotal==0){ + menPercent = new BigDecimal("100.00"); + womenPercent = new BigDecimal("0.00"); + }else{ + menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP); + womenPercent = bigTen.subtract(menPercent); + } + mgtTotalMemberTotalVo.setManPercent(menPercent); + mgtTotalMemberTotalVo.setWomenPercent(womenPercent); // 年龄段数组 String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"}; // 不同年龄段的会员数数组 @@ -1287,10 +1391,15 @@ } //消费变动 if (memberTotalChangeDto.getPayMoney() != null) { - memberTotal.setTotalPayMoney(memberTotal.getTotalPayMoney().add(memberTotalChangeDto.getPayMoney())); - memberTotal.setTotalPayCount(memberTotal.getTotalPayCount() + 1); - memberTotal.setLastPayMoney(memberTotalChangeDto.getPayMoney()); - memberTotal.setLastPayTime(memberTotalChangeDto.getPayTime()); + if(memberTotalChangeDto.getPayMoney().compareTo(BigDecimal.ZERO)>=0){ + memberTotal.setTotalPayMoney(memberTotal.getTotalPayMoney().add(memberTotalChangeDto.getPayMoney())); + memberTotal.setTotalPayCount(memberTotal.getTotalPayCount() + 1); + memberTotal.setLastPayMoney(memberTotalChangeDto.getPayMoney()); + memberTotal.setLastPayTime(memberTotalChangeDto.getPayTime()); + }else{ + memberTotal.setTotalPayMoney(memberTotal.getTotalPayMoney().add(memberTotalChangeDto.getPayMoney())); + memberTotal.setTotalPayCount(memberTotal.getTotalPayCount() - 1); + } } //服务次数变动 if (memberTotalChangeDto.getServiceCount() != null) { @@ -1326,4 +1435,384 @@ } memberTotalService.saveOrUpdate(memberTotal); } + + /** + * @description 商户获取会员统计 + * @author jqs + * @date 2023/7/3 17:16 + * @param merTotalDto + * @return MerMemberTotalVo + */ + @Override + public MerMemberTotalVo getMerMemberTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerMemberTotalVo merMemberTotalVo = memberMapper.getMerMemberTotal(merTotalDto); + return merMemberTotalVo; + } + + /** + * @description 商户获取会员固定统计 + * @author jqs + * @date 2023/7/3 18:34 + * @param merTotalDto + * @return MerMemberFixedTotalVo + */ + @Override + public MerMemberFixedTotalVo getMerMemberFixedTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerMemberFixedTotalVo memberFixedTotalVo = new MerMemberFixedTotalVo(); + Date nowDay = DateUtils.getNowDate(); + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getMerMemberTotalAge(merTotalDto); + Integer manTotal = mgtAgeTotalVo.getManTotal(); + Integer womenTotal = mgtAgeTotalVo.getWomenTotal(); + memberFixedTotalVo.setManTotal(manTotal); + memberFixedTotalVo.setWomenTotal(womenTotal); + Integer personTotal = manTotal + womenTotal; + BigDecimal manTotalBig = new BigDecimal(manTotal); + BigDecimal personTotalBig = new BigDecimal(personTotal); + BigDecimal bigTen = new BigDecimal("100.00"); + BigDecimal menPercent = new BigDecimal("100.00"); + BigDecimal womenPercent = new BigDecimal("100.00"); + if(manTotal==0&&womenTotal==0){ + menPercent = new BigDecimal("50.00"); + womenPercent = new BigDecimal("50.00"); + }else if(manTotal==0&&womenTotal>0){ + menPercent = new BigDecimal("0.00"); + womenPercent = new BigDecimal("100.00"); + }else if(manTotal>0&&womenTotal==0){ + menPercent = new BigDecimal("100.00"); + womenPercent = new BigDecimal("0.00"); + }else{ + menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP); + womenPercent = bigTen.subtract(menPercent); + } + memberFixedTotalVo.setManPercent(menPercent); + memberFixedTotalVo.setWomenPercent(womenPercent); + // 年龄段数组 + String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"}; + // 不同年龄段的会员数数组 + Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()}; + // 设置年龄段数组和不同年龄段的会员数数组 + memberFixedTotalVo.setAgeKey(ageKey); + memberFixedTotalVo.setAgeValue(ageValue); + // 获取不同护理类型的会员数 + List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getMerMemberTotalNurse(merTotalDto); + if (nurseTotalVos != null && nurseTotalVos.size() > 0) { + nurseTotalVos = listRemoveNull(nurseTotalVos); + memberFixedTotalVo.setNurseTotalVos(nurseTotalVos); + } + // 获取不同商品类型的会员数 + List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getMerMemberTotalGoodsType(merTotalDto); + if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { + goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos); + memberFixedTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos); + } + //获取会员消费排名 + List<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto); + if (memberPayList != null && memberPayList.size() > 0) { + memberPayList = listRemoveNull(memberPayList); + memberFixedTotalVo.setMemberPayList(memberPayList); + } + // 获取不同活跃度的会员数 + List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); + if (activenessList != null && !activenessList.isEmpty()) { + Activeness activeness; + String actStartDate; + String actEndDate; + Integer count; + List<MgtMapIntTotalVo> MgtMapIntTotalVoList = new ArrayList<>(); + MgtMapIntTotalVo MgtMapIntTotalVo; + // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组 + for (int i = 0; i < activenessList.size(); i++) { + activeness = activenessList.get(i); + actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); + actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); + merTotalDto.setStartDate(actStartDate); + merTotalDto.setEndDate(actEndDate); + count = memberMapper.getMerMemberTotalActiveness(merTotalDto); + MgtMapIntTotalVo = new MgtMapIntTotalVo(); + MgtMapIntTotalVo.setMapKey(activeness.getActivenessName()); + MgtMapIntTotalVo.setMapValue(count); + MgtMapIntTotalVoList.add(MgtMapIntTotalVo); + } + memberFixedTotalVo.setActivenessList(MgtMapIntTotalVoList); + } + return memberFixedTotalVo; + } + + /** + * @description 商会获取会员来源统计 + * @author jqs + * @date 2023/7/3 19:09 + * @param merTotalDto + * @return MerMemberSourceTotalVo + */ + @Override + public MerMemberSourceTotalVo getMerMemberSourceTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerMemberSourceTotalVo memberSourceTotalVo = new MerMemberSourceTotalVo(); + //获取来源渠道排名 + List<MgtMapIntTotalVo> customerSourceList = memberMapper.getMerMemberCustomerSourceRank(merTotalDto); + if (customerSourceList != null && customerSourceList.size() > 0) { + customerSourceList = listRemoveNull(customerSourceList); + memberSourceTotalVo.setCustomerSourceList(customerSourceList); + } + + return memberSourceTotalVo; + } + + /** + * @description 商会获取会员推荐排名 + * @author jqs + * @date 2023/7/3 19:14 + * @param merTotalDto + * @return MerMemberRecommendTotalVo + */ + @Override + public MerMemberRecommendTotalVo getMerMemberRecommendTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerMemberRecommendTotalVo memberRecommendTotalVo = new MerMemberRecommendTotalVo(); + //获取会员推荐排名 + List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto); + if (recommendList != null && recommendList.size() > 0) { + recommendList = listRemoveNull(recommendList); + memberRecommendTotalVo.setRecommendList(recommendList); + } + return memberRecommendTotalVo; + } + + /** + * @description 获取各年龄层用户 + * @author jqs + * @date 2023/7/4 9:50 + * @param merTotalDto + * @return MerOrderAgeUserVo + */ + @Override + public List<MerOrderAgeUserVo> listOrderAgeUser(MerTotalDto merTotalDto){ + List<MerOrderAgeUserVo> orderAgeUserVoList = new ArrayList<>(); + MerOrderAgeUserVo merOrderAgeUserVo = new MerOrderAgeUserVo(); + merTotalDto.setAgeType(1); + List<Long> userIdList = memberMapper.listOrderAgeUser(merTotalDto); + merOrderAgeUserVo.setAgeType(1); + merOrderAgeUserVo.setUserIdList(userIdList); + orderAgeUserVoList.add(merOrderAgeUserVo); + merOrderAgeUserVo = new MerOrderAgeUserVo(); + merTotalDto.setAgeType(2); + userIdList = memberMapper.listOrderAgeUser(merTotalDto); + merOrderAgeUserVo.setAgeType(2); + merOrderAgeUserVo.setUserIdList(userIdList); + orderAgeUserVoList.add(merOrderAgeUserVo); + merOrderAgeUserVo = new MerOrderAgeUserVo(); + merTotalDto.setAgeType(3); + userIdList = memberMapper.listOrderAgeUser(merTotalDto); + merOrderAgeUserVo.setAgeType(3); + merOrderAgeUserVo.setUserIdList(userIdList); + orderAgeUserVoList.add(merOrderAgeUserVo); + merOrderAgeUserVo = new MerOrderAgeUserVo(); + merTotalDto.setAgeType(4); + userIdList = memberMapper.listOrderAgeUser(merTotalDto); + merOrderAgeUserVo.setAgeType(4); + merOrderAgeUserVo.setUserIdList(userIdList); + orderAgeUserVoList.add(merOrderAgeUserVo); + merOrderAgeUserVo = new MerOrderAgeUserVo(); + merTotalDto.setAgeType(5); + userIdList = memberMapper.listOrderAgeUser(merTotalDto); + merOrderAgeUserVo.setAgeType(4); + merOrderAgeUserVo.setUserIdList(userIdList); + orderAgeUserVoList.add(merOrderAgeUserVo); + return orderAgeUserVoList; + } + + /** + * @description + * @author jqs + * @date 2023/7/5 21:18 + * @param mgtBaseGetDto + * @return void + */ + @Override + public void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto){ + sysUserService.frozenUser(Long.valueOf(mgtBaseGetDto.getId())); + } + + /** + * @description 获取用户任务列表 + * @author jqs + * @date 2023/7/12 15:07 + * @param userId + * @return List<AppIntegralTaskListVo> + */ + @Override + public List<AppIntegralTaskListVo> listAppMemberIntegralTask(Long userId){ + // 获取指定用户的会员信息 + Member member = this.getByUserId(userId); + // 获取会员的总积分信息 + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + // 获取其他配置信息 + AppOtherConfigGetVo appOtherConfigGetVo = remoteConfigService.getAppOtherConfigGetVo().getData(); + // 创建一个空的积分任务列表 + List<AppIntegralTaskListVo> appIntegralTaskListVoList = new ArrayList<>(); + // 创建分享小程序任务 + AppIntegralTaskListVo shareTask = new AppIntegralTaskListVo(); + shareTask.setTaskContent("分享小程序给微信好友"); + shareTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getShareIntegral() + "积分"); + shareTask.setRecommendFlag(1); + shareTask.setCompleteFlag(memberTotal.getShareFlag()); + appIntegralTaskListVoList.add(shareTask); + // 创建提交平台建议任务 + AppIntegralTaskListVo plSuggestTask = new AppIntegralTaskListVo(); + plSuggestTask.setTaskContent("提交平台建议"); + plSuggestTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getSuggestPlatformIntegral() + "积分"); + plSuggestTask.setRecommendFlag(1); + plSuggestTask.setCompleteFlag(memberTotal.getPlSuggestFlag()); + appIntegralTaskListVoList.add(plSuggestTask); + // 创建提交门店建议任务 + AppIntegralTaskListVo shopSuggestTask = new AppIntegralTaskListVo(); + shopSuggestTask.setTaskContent("提交门店建议"); + shopSuggestTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getSuggestShopIntegral() + "积分"); + shopSuggestTask.setRecommendFlag(1); + shopSuggestTask.setCompleteFlag(memberTotal.getShopSuggestFlag()); + appIntegralTaskListVoList.add(shopSuggestTask); + // 创建每日签到任务 + AppIntegralTaskListVo signTask = new AppIntegralTaskListVo(); + signTask.setTaskContent("每日签到"); + signTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getSignInIntegral() + "积分"); + signTask.setRecommendFlag(1); + signTask.setCompleteFlag(memberTotal.getSignFlag()); + appIntegralTaskListVoList.add(signTask); + // 创建消费得积分任务 + AppIntegralTaskListVo buyTask = new AppIntegralTaskListVo(); + buyTask.setTaskContent("消费得积分"); + buyTask.setTaskDesc("每消费1元+" + appOtherConfigGetVo.getPayMoneyIntegral() + "积分"); + buyTask.setRecommendFlag(1); + buyTask.setCompleteFlag(memberTotal.getBuyFlag()); + appIntegralTaskListVoList.add(buyTask); + // 返回积分任务列表 + return appIntegralTaskListVoList; + } + + /** + * @description 积分变动 + * @author jqs + * @date 2023/7/12 15:59 + * @param integralChangeDto + * @return void + */ + @Override + public Boolean changeIntegral(IntegralChangeDto integralChangeDto){ + Member member = this.getByUserId(integralChangeDto.getUserId()); + Integer integralType = integralChangeDto.getIntegralType(); + Integer changeIntegral = integralChangeDto.getChangeIntegral(); + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + Boolean completeFlag = false; + switch(integralType){ + case 1: + if(memberTotal.getShareFlag()==1){ + completeFlag = true; + } + break; + case 2: + if(memberTotal.getPlSuggestFlag()==1){ + completeFlag = true; + } + break; + case 3: + if(memberTotal.getShopSuggestFlag()==1){ + completeFlag = true; + } + break; + case 4: + if(memberTotal.getSignFlag()==1){ + completeFlag = true; + } + break; + default: + break; + } + if(completeFlag){ + return completeFlag; + } + AppOtherConfigGetVo appOtherConfigGetVo = remoteConfigService.getAppOtherConfigGetVo().getData(); + IntegralRecord integralRecord = new IntegralRecord(); + integralRecord.setDelFlag(0); + integralRecord.setUserId(integralChangeDto.getUserId()); + integralRecord.setChangeType(integralType); + integralRecord.setCreateTime(new Date()); + //1分享获取2平台建议获取3门店建议获取4每日签到5消费得积分 + switch(integralType){ + case 1: + changeIntegral = appOtherConfigGetVo.getShareIntegral(); + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setChangeReason("每日任务【分享小程序】获得积分"); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setShareFlag(1); + break; + case 2: + changeIntegral = appOtherConfigGetVo.getSuggestPlatformIntegral(); + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setChangeReason("每日任务【提交平台建议】获得积分"); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setPlSuggestFlag(1); + break; + case 3: + changeIntegral = appOtherConfigGetVo.getSuggestShopIntegral(); + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setChangeReason("每日任务【提交门店建议】获得积分"); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setShopSuggestFlag(1); + break; + case 4: + changeIntegral = appOtherConfigGetVo.getSignInIntegral(); + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setChangeReason("每日任务【签到】获得积分"); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setSignFlag(1); + break; + case 5: + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setChangeReason("订单【"+integralChangeDto.getOrderNo()+"】获得积分"); + integralRecord.setOrderId(integralChangeDto.getOrderId()); + integralRecord.setOrderNo(integralChangeDto.getOrderNo()); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setBuyFlag(1); + break; + default: + break; + } + memberTotalService.saveOrUpdate(memberTotal); + integralRecordService.saveOrUpdate(integralRecord); + return completeFlag; + } } -- Gitblit v1.7.1