From 45684deea50d27ac78f2a8315bdea50d022e01cb Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期二, 25 七月 2023 19:06:39 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 140 +++++++++++++++++++++++++++++++++++++--------- 1 files changed, 111 insertions(+), 29 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 cf95a7c..2ee588a 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 @@ -21,7 +21,10 @@ import com.ruoyi.member.domain.pojo.member.MemberTotal; import com.ruoyi.member.domain.vo.*; import com.ruoyi.member.mapper.member.MemberMapper; -import com.ruoyi.member.service.member.*; +import com.ruoyi.member.service.member.IntegralRecordService; +import com.ruoyi.member.service.member.MemberArchiveService; +import com.ruoyi.member.service.member.MemberService; +import com.ruoyi.member.service.member.MemberTotalService; import com.ruoyi.member.util.HttpUtils; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.constant.SecurityConstant; @@ -46,6 +49,8 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -84,8 +89,6 @@ @Resource private RemoteOrderService orderService; - @Resource - private MemberNurseService memberNurseService; @Resource private RemoteConfigService remoteConfigService; @@ -222,6 +225,7 @@ sysUser.setUserName(memberId); sysUser.setUserType("03"); sysUser.setNickName("鸿瑞堂用户"); + sysUser.setPhonenumber(mobile); sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); String password = "hongruitang"; sysUser.setPassword(SecurityUtils.encryptPassword(password)); @@ -231,6 +235,7 @@ member.setMemberNo(memberNo); member.setUserId(sysUser.getUserId()); member.setDelFlag(0); + member.setFrozenFlag(0); member.setNickName("鸿瑞堂用户"); member.setRealName("鸿瑞堂用户"); member.setCustomerSource("小程序"); @@ -325,27 +330,22 @@ switch (editType) { case 1: member.setNickName(editValue); - member.setUpdateTime(new Date()); - member.setUpdateUserId(appEditUserDto.getUserId()); - this.saveOrUpdate(member); break; case 2: + member.setAvatar(editValue); break; case 3: member.setGender(Integer.valueOf(editValue)); - member.setUpdateTime(new Date()); - member.setUpdateUserId(appEditUserDto.getUserId()); - this.saveOrUpdate(member); break; case 4: member.setBirthday(editValue); - member.setUpdateTime(new Date()); - member.setUpdateUserId(appEditUserDto.getUserId()); - this.saveOrUpdate(member); break; default: break; } + member.setUpdateTime(new Date()); + member.setUpdateUserId(appEditUserDto.getUserId()); + this.saveOrUpdate(member); sysUserService.editUserInfo(appEditUserDto); } @@ -601,6 +601,7 @@ member.setMemberId(memberId); member.setUserId(sysUser.getUserId()); member.setDelFlag(0); + member.setFrozenFlag(0); member.setNickName(merMemberAddDto.getNickName()); member.setRealName(merMemberAddDto.getNickName()); member.setGender(merMemberAddDto.getGender()); @@ -708,24 +709,51 @@ */ @Override public void updateMemberGoodsType(AppMemberGoodsTypeDto appMemberGoodsTypeDto) { + // 根据用户ID获取会员信息 Member member = this.getByUserId(appMemberGoodsTypeDto.getUserId()); + // 获取商品类型集合和商品护理集合 HashSet<String> goodsTypeSet = appMemberGoodsTypeDto.getGoodsTypeSet(); + HashSet<String> goodsNurseSet = appMemberGoodsTypeDto.getGoodsNurseSet(); + // 如果会员存在 if (member != null) { - String goodsType = member.getGoodsType(); + // 标识是否有变化 Boolean change = false; - for (String str : goodsTypeSet) { - if (goodsType != null) { - if (!goodsType.contains(str)) { - goodsType = goodsType + "," + str; + // 更新商品类型 + if (goodsTypeSet != null && goodsTypeSet.size() > 0) { + String goodsType = member.getGoodsType(); + HashSet<String> goodsTypeOldSet = new HashSet<>(); + // 如果商品类型不为空 + if (StringUtils.isNotBlank(goodsType)) { + goodsTypeOldSet = new HashSet<>(Arrays.asList(goodsType.split(","))); + // 如果商品类型集合相等 + if (!goodsTypeSet.equals(goodsTypeOldSet)) { change = true; } } else { - goodsType = str; change = true; } + goodsTypeOldSet.addAll(goodsTypeSet); + member.setGoodsType(String.join(",", goodsTypeOldSet)); } + // 更新商品护理 + if (goodsNurseSet != null && goodsNurseSet.size() > 0) { + String memberNurse = member.getMemberNurse(); + HashSet<String> memberNurseOldSet = new HashSet<>(); + // 如果会员护理不为空 + if (StringUtils.isNotBlank(memberNurse)) { + memberNurseOldSet = new HashSet<>(Arrays.asList(memberNurse.split(","))); + // 如果商品护理集合相等 + if (!goodsNurseSet.equals(memberNurseOldSet)) { + change = true; + } + } else { + change = true; + } + memberNurseOldSet.addAll(goodsNurseSet); + member.setMemberNurse(String.join(",", memberNurseOldSet)); + } + // 如果有变化,则保存或更新会员信息 if (change) { - member.setGoodsType(goodsType); this.saveOrUpdate(member); } } @@ -742,8 +770,8 @@ String memberNo = createMemberNo(); member.setMemberNo(memberNo); member.setDelFlag(0); + member.setFrozenFlag(0); member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); - member.setBindingFlag(0); member.setCreateTime(new Date()); member.setCustomerSource("商户订单添加"); this.saveOrUpdate(member); @@ -818,6 +846,19 @@ //处理标签为正则表达 if (StringUtils.isNotBlank(merMemberPageDto.getMemberTags())) { merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",", "|")); + } + //处理生日 + if(merMemberPageDto.getStartAge()!=null){ + LocalDate currentDate = LocalDate.now(); + LocalDate endBirthday = currentDate.minusYears(merMemberPageDto.getStartAge()); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + merMemberPageDto.setEndBirthday(endBirthday.format(formatter)); + } + if(merMemberPageDto.getEndAge()!=null){ + LocalDate currentDate = LocalDate.now(); + LocalDate startBirthday = currentDate.minusYears(merMemberPageDto.getEndAge()); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + merMemberPageDto.setStartBirthday(startBirthday.format(formatter)); } //查询获取结果列表 List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); @@ -1010,7 +1051,15 @@ mgtMemberGetVo.setNickName(member.getNickName()); mgtMemberGetVo.setAvatar(member.getAvatar()); mgtMemberGetVo.setMobile(member.getMobile()); - mgtMemberGetVo.setGender(member.getGender() == 0 ? "男" : member.getGender() == 1 ? "女" : null); + if(member.getGender()!=null){ + if (member.getGender() == 0) { + mgtMemberGetVo.setGender("男"); + } else if (member.getGender() == 1) { + mgtMemberGetVo.setGender("女"); + } + }else { + mgtMemberGetVo.setGender("未知"); + } mgtMemberGetVo.setBirthday(member.getBirthday()); mgtMemberGetVo.setBelongDistrict(member.getBelongDistrict()); mgtMemberGetVo.setCreateTime(member.getCreateTime()); @@ -1152,6 +1201,12 @@ nurseTotalVos = listRemoveNull(nurseTotalVos); mgtTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); } + //获取不同等级的会员数 + List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getTotalMemberTotalLevel(mgtBaseShopDto); + if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) { + memberLevelTotalVos = listRemoveNull(memberLevelTotalVos); + mgtTotalMemberTotalVo.setMemberLevelTotalVos(memberLevelTotalVos); + } // 获取不同商品类型的会员数 List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto); if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { @@ -1257,6 +1312,12 @@ if (nurseTotalVos != null && nurseTotalVos.size() > 0) { nurseTotalVos = listRemoveNull(nurseTotalVos); plTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); + } + //获取不同等级的会员数 + List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getPlTotalMemberTotalLevel(mgtBasePlatformDto); + if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) { + memberLevelTotalVos = listRemoveNull(memberLevelTotalVos); + plTotalMemberTotalVo.setMemberLevelTotalVos(memberLevelTotalVos); } // 获取不同商品类型的会员数 List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto); @@ -1514,6 +1575,12 @@ nurseTotalVos = listRemoveNull(nurseTotalVos); memberFixedTotalVo.setNurseTotalVos(nurseTotalVos); } + //获取不同等级的会员数 + List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getMerMemberTotalLevel(merTotalDto); + if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) { + memberLevelTotalVos = listRemoveNull(memberLevelTotalVos); + memberFixedTotalVo.setMemberLevelTotalVos(memberLevelTotalVos); + } // 获取不同商品类型的会员数 List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getMerMemberTotalGoodsType(merTotalDto); if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { @@ -1649,12 +1716,15 @@ * @description * @author jqs * @date 2023/7/5 21:18 - * @param mgtBaseGetDto + * @param mgtFrozenMemberDto * @return void */ @Override - public void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto){ - sysUserService.frozenUser(Long.valueOf(mgtBaseGetDto.getId())); + public void mgtFrozenMember(MgtFrozenMemberDto mgtFrozenMemberDto){ + Long userId = mgtFrozenMemberDto.getId(); + Member member = this.getByUserId(userId); + member.setFrozenFlag(mgtFrozenMemberDto.getFrozenFlag()); + sysUserService.frozenUser(mgtFrozenMemberDto); } /** @@ -1765,7 +1835,7 @@ case 1: changeIntegral = appOtherConfigGetVo.getShareIntegral(); integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("每日任务【分享小程序】获得积分"); memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); @@ -1774,7 +1844,7 @@ case 2: changeIntegral = appOtherConfigGetVo.getSuggestPlatformIntegral(); integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("每日任务【提交平台建议】获得积分"); memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); @@ -1783,7 +1853,7 @@ case 3: changeIntegral = appOtherConfigGetVo.getSuggestShopIntegral(); integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("每日任务【提交门店建议】获得积分"); memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); @@ -1792,7 +1862,7 @@ case 4: changeIntegral = appOtherConfigGetVo.getSignInIntegral(); integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("每日任务【签到】获得积分"); memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); @@ -1800,7 +1870,7 @@ break; case 5: integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("订单【"+integralChangeDto.getOrderNo()+"】获得积分"); integralRecord.setOrderId(integralChangeDto.getOrderId()); integralRecord.setOrderNo(integralChangeDto.getOrderNo()); @@ -1815,4 +1885,16 @@ integralRecordService.saveOrUpdate(integralRecord); return completeFlag; } + + /** + * @description 统计商户今日新增会员 + * @author jqs + * @date 2023/7/14 19:54 + * @param shopIdList + * @return Integer + */ + @Override + public Integer getAreaNewMember(List<Long> shopIdList){ + return memberMapper.getAreaNewMember(shopIdList); + } } -- Gitblit v1.7.1