zhanglin
2023-07-23 257ce232897d0e4a232e827ba61516b747389078
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;
@@ -220,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));
@@ -701,24 +707,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);
            }
        }
@@ -811,6 +844,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);
@@ -1776,7 +1822,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);
@@ -1785,7 +1831,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);
@@ -1794,7 +1840,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);
@@ -1803,7 +1849,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);
@@ -1811,7 +1857,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());