From 5627daeb1ac1a29947e902f9a7efb6730ed98611 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期五, 07 七月 2023 20:35:50 +0800 Subject: [PATCH] 管理台bug和用户端生日卡 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 255 insertions(+), 24 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..a400294 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; @@ -581,6 +582,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 +606,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 @@ -930,6 +964,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 +1003,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); } /** @@ -1326,4 +1361,200 @@ } 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); + // 年龄段数组 + 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<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); + } + //获取会员消费排名 + List<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto); + if (memberPayList != null && memberPayList.size() > 0) { + memberPayList = listRemoveNull(memberPayList); + memberFixedTotalVo.setMemberPayList(memberPayList); + } + 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())); + } } -- Gitblit v1.7.1