| | |
| | | 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; |
| | |
| | | |
| | | 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; |
| | |
| | | @Resource |
| | | private RemoteOrderService orderService; |
| | | |
| | | @Resource |
| | | private MemberNurseService memberNurseService; |
| | | |
| | | @Resource |
| | | private RemoteConfigService remoteConfigService; |
| | |
| | | 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)); |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | */ |
| | | @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); |
| | | } |
| | | } |
| | |
| | | //处理标签为正则表达 |
| | | 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); |
| | |
| | | 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) { |
| | |
| | | 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); |
| | |
| | | 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) { |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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()); |
| | |
| | | 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); |
| | | } |
| | | } |