jiangqs
2023-06-30 cbc564a7088503ad8cc7af4e1d2ba417d061e615
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -17,7 +17,6 @@
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.MemberNurse;
import com.ruoyi.member.domain.pojo.member.MemberTotal;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.mapper.member.MemberMapper;
@@ -121,7 +120,6 @@
    }
    /**
     *
     * @param appMiniLoginDto
     * @return
     */
@@ -162,6 +160,7 @@
    /**
     * 小程序注册
     *
     * @param appUserRegisterDto
     * @return
     */
@@ -279,6 +278,7 @@
    /**
     * 获取用户信息
     *
     * @param userId
     * @return
     */
@@ -308,6 +308,7 @@
    /**
     * 修改用户信息
     *
     * @param appEditUserDto
     */
    @Override
@@ -345,11 +346,22 @@
    /**
     * 分页获取会员信息
     *
     * @param merMemberPageDto
     * @return
     */
    @Override
    public List<MerMemberPageVo> pageMerMember(Page page, MerMemberPageDto merMemberPageDto){
        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);
            }
        }
        List<MerMemberPageVo> merMemberPageVoList = memberMapper.pageMerMember(page,merMemberPageDto);
        return merMemberPageVoList;
    }
@@ -362,22 +374,51 @@
     * @version 1.0
     */
    @Override
    public MerMemberInfoVo getMerMemberInfo(Long userId){
    public MerMemberInfoVo getMerMemberInfo(MerBaseGetDto merBaseGetDto) {
        // 将id转换为Long类型
        Long userId = Long.valueOf(merBaseGetDto.getId());
        // 创建MerMemberInfoVo对象
        MerMemberInfoVo merMemberInfoVo = new MerMemberInfoVo();
        // 根据userId获取Member对象
        Member member = this.getByUserId(userId);
        // 设置MerMemberInfoVo对象的属性值
        merMemberInfoVo.setUserId(userId);
        merMemberInfoVo.setNickName(member.getNickName());
        merMemberInfoVo.setPhonenumber(member.getMobile());
        merMemberInfoVo.setAvatar(member.getAvatar());
        merMemberInfoVo.setBirthday(member.getBirthday());
        merMemberInfoVo.setUserTags(member.getUserTags());
        //未完成
        merMemberInfoVo.setMemberType(member.getGoodsType());
        // 根据memberId获取MemberTotal对象
        MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
        // 设置MerMemberInfoVo对象的属性值
        merMemberInfoVo.setSurpNumber(memberTotal.getUseableServiceCount());
        merMemberInfoVo.setUserNumber(memberTotal.getUsedServiceCount());
        merMemberInfoVo.setPayMoney(memberTotal.getTotalPayMoney());
        // 创建MerBaseDto对象
        MerBaseDto merBaseDto = new MerBaseDto();
        // 设置MerBaseDto对象的属性值
        merBaseDto.setShopId(merBaseGetDto.getShopId());
        merBaseDto.setUserId(userId);
        // 获取未支付订单金额
        BigDecimal unpaidMoney = remoteOrderService.getMemberUnpaidOrder(merBaseDto).getData();
        merMemberInfoVo.setUnpaidMoney(unpaidMoney);
        // 获取最近的会员任务
        MemberTaskSimpleVo memberTaskSimpleVo = remoteShopService.getLastMemberTask(userId).getData();
        if (memberTaskSimpleVo != null) {
            merMemberInfoVo.setLastTaskContent(memberTaskSimpleVo.getTaskContent());
            merMemberInfoVo.setLastTaskTime(memberTaskSimpleVo.getTaskDate());
        }
        // 设置MerMemberInfoVo对象的属性值
        merMemberInfoVo.setNextTaskTime(memberTotal.getNextTaskTime());
        merMemberInfoVo.setLastPayTime(memberTotal.getLastPayTime());
        // 返回MerMemberInfoVo对象
        return merMemberInfoVo;
    }
    /**
     * 分页获取收银用户列表
     *
     * @param page
     * @param merCashMemberPageDto
     * @return
@@ -391,6 +432,7 @@
    /**
     * 更新会员绑定商户
     *
     * @param appMemberBindingDto
     */
    @Override
@@ -407,6 +449,7 @@
    /**
     * 获取会员基础档案
     *
     * @param userId
     * @return
     */
@@ -418,14 +461,21 @@
        merMemberBasicFileVo.setNickName(member.getNickName());
        merMemberBasicFileVo.setPhonenumber(member.getMobile());
        merMemberBasicFileVo.setCreateTime(member.getCreateTime());
        List<MemberNurse> memberNurseList = memberNurseService.listByUserId(userId);
        List<String> valueList = memberNurseList.stream().map(k->k.getNurse()).collect(Collectors.toList());
        /*List<MemberNurse> memberNurseList = memberNurseService.listByUserId(userId);
        List<String> valueList = memberNurseList.stream().map(k -> k.getNurse()).collect(Collectors.toList());*/
        String memberNurse = member.getMemberNurse();
        if(StringUtils.isNotBlank(memberNurse)){
            List<String> valueList = Arrays.asList(memberNurse.split(","));
        merMemberBasicFileVo.setMemberNurse(valueList);
        }
        List<MemberArchiveVo> achiveList = memberArchiveService.listMerVoByUserId(userId);
        merMemberBasicFileVo.setAchiveList(achiveList);
        return merMemberBasicFileVo;
    }
    /**
     * 获取会员标签
     *
     * @param userId
     * @return
     */
@@ -459,6 +509,7 @@
    /**
     * 编辑会员标签
     *
     * @param merMemberTagEditDto
     */
    @Override
@@ -478,16 +529,20 @@
    /**
     * 添加会员
     *
     * @param merMemberAddDto
     */
    @Override
    public void addMerMember(MerMemberAddDto merMemberAddDto){
        String phonenumber = merMemberAddDto.getPhonenumber();
        Member oldMember = this.getByMobile(phonenumber);
        String phoneNumber = merMemberAddDto.getPhonenumber();
        Member oldMember = this.getByMobile(phoneNumber);
        // Check if the member already exists
        if(oldMember!=null){
            throw new ServiceException(AppErrorConstant.MOBILE_USER_DOUBLE);
        }
        SysUser sysUser = sysUserService.getSysUserByMobile(phonenumber).getData();
        // Get the sysUser by mobile number
        SysUser sysUser = sysUserService.getSysUserByMobile(phoneNumber).getData();
        // If sysUser does not exist, create a new one
        if(sysUser==null){
            String memberId = IdUtils.simpleUUID();
            sysUser = new SysUser();
@@ -499,6 +554,7 @@
            sysUser.setPassword(SecurityUtils.encryptPassword(password));
            log.debug("sysUser"+sysUser.toString());
            sysUser = sysUserService.registerUser(sysUser).getData();
            // Create a new member
            Member member = new Member();
            String memberNo = createMemberNo();
            member.setMemberNo(memberNo);
@@ -508,7 +564,7 @@
            member.setNickName(merMemberAddDto.getNickName());
            member.setRealName(merMemberAddDto.getNickName());
            member.setGender(merMemberAddDto.getGender());
            member.setMobile(phonenumber);
            member.setMobile(phoneNumber);
            member.setReferrer(merMemberAddDto.getReferrer());
            member.setBirthday(merMemberAddDto.getBirthday());
            member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
@@ -517,20 +573,20 @@
            member.setMiniOpenid(null);
            member.setBindingFlag(1);
            member.setBindingTime(new Date());
            // Get shop information and set it to the member
            Shop shop = remoteShopService.getShop(merMemberAddDto.getShopId()).getData();
            member.setRelationShopName(shop.getShopName());
            member.setCustomerSource("商户添加");
            member.setCreateTime(new Date());
            log.info("member-----------------"+member.toString());
            // Save the member and initialize member total
            this.saveOrUpdate(member);
            initMemberTotal(memberId);
        }
    }
    /**
     * 编辑会员
     *
     * @param merMemberEditDto
     */
    @Override
@@ -561,7 +617,6 @@
    }
    /**
     *
     * @param mobile
     * @return
     */
@@ -575,6 +630,7 @@
    /**
     * 更新用户商品类型
     *
     * @param appMemberGoodsTypeDto
     */
    @Override
@@ -605,6 +661,7 @@
    /**
     * 订单创建新用户
     *
     * @param member
     */
    @Override
@@ -622,6 +679,7 @@
    /**
     * 生成会员统计
     *
     * @param memberId
     * @return
     */
@@ -648,6 +706,7 @@
    /**
     * 生成会员编号
     *
     * @return
     */
    private String createMemberNo(){
@@ -659,6 +718,7 @@
    /**
     * 平台分页获取会员列表
     *
     * @param page
     * @param merMemberPageDto
     * @return
@@ -719,6 +779,7 @@
    /**
     * 修改会员关联商户
     *
     * @param mgtMemberRelEditDto
     */
    @Override
@@ -743,6 +804,7 @@
    /**
     * 删除会员关联商户
     *
     * @param mgtMemberRelDelDto
     */
    @Override
@@ -762,6 +824,7 @@
    /**
     * 修改会员积分
     *
     * @param mgtMemberIntEditDto
     */
    @Override
@@ -785,9 +848,9 @@
    }
    /**
     * 会员积分变动
     *
     * @param memberIntegralChangeDto
     */
    @Override
@@ -848,6 +911,7 @@
    /**
     * 平台获取会员信息
     *
     * @param userId
     * @return
     */
@@ -856,7 +920,7 @@
        MgtMemberGetVo mgtMemberGetVo = new MgtMemberGetVo();
        Member member = this.getByUserId(userId);
        MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
        List<MemberArchiveVo> memberArchiveVoList = memberArchiveService.listVoByUserId(member.getUserId());
        List<MemberArchiveVo> memberArchiveVoList = memberArchiveService.listMgtVoByUserId(member.getUserId());
        if(memberArchiveVoList!=null&&!memberArchiveVoList.isEmpty()){
            //去掉未完善信息
            memberArchiveVoList.removeIf(o -> Objects.isNull(o.getFieldValue()));
@@ -885,11 +949,11 @@
    }
    /**
     * @param memberTag
     * @return void
     * @description  删除标签
     * @author  jqs
     * @date    2023/6/8 15:18
     * @param memberTag
     * @return  void
     */
    @Override
    public void deleteMemberTag(String memberTag){
@@ -897,11 +961,11 @@
    }
    /**
     * @param sendType
     * @return List<Long>
     * @description  通过发送类型获取userId
     * @author  jqs
     * @date    2023/6/13 17:53
     * @param sendType
     * @return  List<Long>
     */
    @Override
    public List<Long> listIdBySendType(Integer sendType){
@@ -910,11 +974,11 @@
    }
    /**
     * @param userIds
     * @return List<MgtSimpleMemberVo>
     * @description  通过ids获取用户简易返回
     * @author  jqs
     * @date    2023/6/16 11:06
     * @param userIds
     * @return  List<MgtSimpleMemberVo>
     */
    @Override
    public List<MgtSimpleMemberVo> listSimpleVoByIds(String userIds){
@@ -922,11 +986,11 @@
    }
    /**
     * @param mgtUserIdByKeywordDto
     * @return MgtUserIdByKeywordVo
     * @description
     * @author  jqs
     * @date    2023/6/16 12:41
     * @param mgtUserIdByKeywordDto
     * @return  MgtUserIdByKeywordVo
     */
    @Override
    public MgtUserIdByKeywordVo getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto){
@@ -942,9 +1006,9 @@
    }
    /**
     * @description boardMemberTotal
     * @param
     * @return MgtBulletinBoardVo
     * @description boardMemberTotal
     * @author jqs34
     * @date 2023/6/18 16:45
     */
@@ -957,11 +1021,11 @@
    }
    /**
     * @param
     * @return MgtTotalMemberTotalVo
     * @description  会员人数统计
     * @author  jqs
     * @date    2023/6/19 15:26
     * @param
     * @return  MgtTotalMemberTotalVo
     */
    @Override
    public MgtTotalMemberTotalVo getTotalMemberTotal(MgtBaseShopDto mgtBaseShopDto){
@@ -979,13 +1043,13 @@
        mgtTotalMemberTotalVo.setAgeKey(ageKey);
        mgtTotalMemberTotalVo.setAgeValue(ageValue);
        // 获取不同护理类型的会员数
        List<MgtMapTotalVo> nurseTotalVos = memberMapper.getTotalMemberTotalNurse(mgtBaseShopDto);
        List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getTotalMemberTotalNurse(mgtBaseShopDto);
        if (nurseTotalVos != null && nurseTotalVos.size() > 0) {
            nurseTotalVos = listRemoveNull(nurseTotalVos);
            mgtTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos);
        }
        // 获取不同商品类型的会员数
        List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto);
        List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto);
        if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) {
            goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos);
            mgtTotalMemberTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos);
@@ -997,29 +1061,29 @@
            String actStartDate;
            String actEndDate;
            Integer count;
            List<MgtMapTotalVo> mgtMapTotalVoList = new ArrayList<>();
            MgtMapTotalVo mgtMapTotalVo;
            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()));
                count = memberMapper.getTotalMemberTotalActiveness(shopId, actStartDate, actEndDate);
                mgtMapTotalVo = new MgtMapTotalVo();
                mgtMapTotalVo.setMapKey(activeness.getActivenessName());
                mgtMapTotalVo.setMapValue(count);
                mgtMapTotalVoList.add(mgtMapTotalVo);
                MgtMapIntTotalVo = new MgtMapIntTotalVo();
                MgtMapIntTotalVo.setMapKey(activeness.getActivenessName());
                MgtMapIntTotalVo.setMapValue(count);
                MgtMapIntTotalVoList.add(MgtMapIntTotalVo);
            }
            mgtTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList);
            mgtTotalMemberTotalVo.setActivenessList(MgtMapIntTotalVoList);
        }
        //获取会员消费排名
        List<MgtMapTotalVo> memberPayList = memberMapper.getTotalMemberRankPay(mgtBaseShopDto);
        List<MgtMapIntTotalVo> memberPayList = memberMapper.getTotalMemberRankPay(mgtBaseShopDto);
        if (memberPayList != null && memberPayList.size() > 0) {
            memberPayList = listRemoveNull(memberPayList);
            mgtTotalMemberTotalVo.setMemberPayList(memberPayList);
        }
        //获取来源渠道排名
        List<MgtMapTotalVo> customerSourceList = memberMapper.getTotalMemberRankCustomerSource(mgtBaseShopDto);
        List<MgtMapIntTotalVo> customerSourceList = memberMapper.getTotalMemberRankCustomerSource(mgtBaseShopDto);
        if (customerSourceList != null && customerSourceList.size() > 0) {
            customerSourceList = listRemoveNull(customerSourceList);
            mgtTotalMemberTotalVo.setCustomerSourceList(customerSourceList);
@@ -1030,11 +1094,11 @@
    /**
     * @param mgtActivityAgeDto
     * @return List<Long>
     * @description
     * @author  jqs
     * @date    2023/6/20 11:42
     * @param mgtActivityAgeDto
     * @return  List<Long>
     */
    @Override
    public List<Long> listUserIdByAge(MgtActivityAgeDto mgtActivityAgeDto){
@@ -1043,11 +1107,11 @@
    }
    /**
     * @param mgtBasePlatformDto
     * @return MgtPlTotalMemberTotalVo
     * @description  会员人数统计
     * @author  jqs
     * @date    2023/6/21 10:59
     * @param mgtBasePlatformDto
     * @return  MgtPlTotalMemberTotalVo
     */
    @Override
    public MgtPlTotalMemberTotalVo getPlTotalMemberTotal(MgtBasePlatformDto mgtBasePlatformDto){
@@ -1085,13 +1149,13 @@
        plTotalMemberTotalVo.setAgeKey(ageKey);
        plTotalMemberTotalVo.setAgeValue(ageValue);
        // 获取不同调理类型的会员数
        List<MgtMapTotalVo> nurseTotalVos = memberMapper.getPlTotalMemberTotalNurse(mgtBasePlatformDto);
        List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getPlTotalMemberTotalNurse(mgtBasePlatformDto);
        if (nurseTotalVos != null && nurseTotalVos.size() > 0) {
            nurseTotalVos = listRemoveNull(nurseTotalVos);
            plTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos);
        }
        // 获取不同商品类型的会员数
        List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto);
        List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto);
        if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) {
            goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos);
            plTotalMemberTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos);
@@ -1104,8 +1168,8 @@
            String actStartDate;
            String actEndDate;
            Integer count;
            List<MgtMapTotalVo> mgtMapTotalVoList = new ArrayList<>();
            MgtMapTotalVo mgtMapTotalVo;
            List<MgtMapIntTotalVo> MgtMapIntTotalVoList = new ArrayList<>();
            MgtMapIntTotalVo MgtMapIntTotalVo;
            // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组
            for (int i = 0; i < activenessList.size(); i++) {
                activeness = activenessList.get(i);
@@ -1113,33 +1177,33 @@
                actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
                count = memberMapper.getPlTotalMemberTotalActiveness(shopIdList, actStartDate, actEndDate);
                if(StringUtils.isNotBlank(activeness.getActivenessName())){
                    mgtMapTotalVo = new MgtMapTotalVo();
                    mgtMapTotalVo.setMapKey(activeness.getActivenessName());
                    mgtMapTotalVo.setMapValue(count);
                    mgtMapTotalVoList.add(mgtMapTotalVo);
                    MgtMapIntTotalVo = new MgtMapIntTotalVo();
                    MgtMapIntTotalVo.setMapKey(activeness.getActivenessName());
                    MgtMapIntTotalVo.setMapValue(count);
                    MgtMapIntTotalVoList.add(MgtMapIntTotalVo);
                }
            }
            plTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList);
            plTotalMemberTotalVo.setActivenessList(MgtMapIntTotalVoList);
        }
        //获取会员消费排名
        List<MgtMapTotalVo> memberPayList = memberMapper.getPlTotalMemberRankPay(mgtBasePlatformDto);
        List<MgtMapIntTotalVo> memberPayList = memberMapper.getPlTotalMemberRankPay(mgtBasePlatformDto);
        if (memberPayList != null && memberPayList.size() > 0) {
            memberPayList = listRemoveNull(memberPayList);
            plTotalMemberTotalVo.setMemberPayList(memberPayList);
        }
        //获取来源渠道排名
        List<MgtMapTotalVo> customerSourceList = memberMapper.getPlTotalMemberRankCustomerSource(mgtBasePlatformDto);
        List<MgtMapIntTotalVo> customerSourceList = memberMapper.getPlTotalMemberRankCustomerSource(mgtBasePlatformDto);
        if (customerSourceList != null && customerSourceList.size() > 0) {
            customerSourceList = listRemoveNull(customerSourceList);
            plTotalMemberTotalVo.setCustomerSourceList(customerSourceList);
        }
        //获取商铺会员排名
        List<MgtMapTotalVo> shopMemberRankList = memberMapper.getPlTotalMemberRank(mgtBasePlatformDto);
        List<MgtMapIntTotalVo> shopMemberRankList = memberMapper.getPlTotalMemberRank(mgtBasePlatformDto);
        if (shopMemberRankList != null && shopMemberRankList.size() > 0) {
            shopMemberRankList = listRemoveNull(shopMemberRankList);
            plTotalMemberTotalVo.setShopMemberRankList(shopMemberRankList);
        }
        List<MgtMapTotalVo> memberGoodsRankList = remoteOrderService.listMemberGoodsRank(mgtBasePlatformDto).getData();
        List<MgtMapIntTotalVo> memberGoodsRankList = remoteOrderService.listMemberGoodsRank(mgtBasePlatformDto).getData();
        if (memberGoodsRankList != null && memberGoodsRankList.size() > 0) {
            memberGoodsRankList = listRemoveNull(memberGoodsRankList);
            plTotalMemberTotalVo.setMemberGoodsRankList(memberGoodsRankList);
@@ -1148,27 +1212,27 @@
    }
    /**
     * @param MgtMapIntTotalVos
     * @return List<MgtMapIntTotalVo>
     * @description  去除空字符串
     * @author  jqs
     * @date    2023/6/27 17:35
     * @param mgtMapTotalVos
     * @return  List<MgtMapTotalVo>
     */
    private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos){
        for (int i = 0; i < mgtMapTotalVos.size(); i++) {
            if(StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())){
                mgtMapTotalVos.remove(i);
    private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos) {
        for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
            if (StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())) {
                MgtMapIntTotalVos.remove(i);
            }
        }
        return mgtMapTotalVos;
        return MgtMapIntTotalVos;
    }
    /**
     * @param shopIdList
     * @return List<Long>
     * @description  通过shopId获取userId
     * @author  jqs
     * @date    2023/6/21 17:11
     * @param shopIdList
     * @return  List<Long>
     */
    @Override
    public List<Long> listUserIdByShopId(List<Long> shopIdList){
@@ -1176,11 +1240,11 @@
    }
    /**
     * @param shopIdList
     * @return MgtShopTotalMemberVo
     * @description  通过shopId获取user统计
     * @author  jqs
     * @date    2023/6/21 17:19
     * @param shopIdList
     * @return  MgtShopTotalMemberVo
     */
    @Override
    public MgtShopTotalMemberVo getUserTotalByShopId(List<Long> shopIdList){
@@ -1199,4 +1263,67 @@
        mgtShopTotalMemberVo.setAgeValue(ageValue);
        return mgtShopTotalMemberVo;
    }
    /**
     * @param memberTotalChangeDto
     * @return void
     * @description 会员统计变动
     * @author jqs
     * @date 2023/6/28 14:34
     */
    @Override
    public void changeMemberTotal(MemberTotalChangeDto memberTotalChangeDto) {
        Member member = this.getByUserId(memberTotalChangeDto.getUserId());
        MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
        //积分变动
        if (memberTotalChangeDto.getChangeIntegral() != null) {
            if (memberTotalChangeDto.getTypeIntegral() == 2) {
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() - memberTotalChangeDto.getChangeIntegral());
                memberTotal.setUsedIntegral(memberTotal.getUsedIntegral() + memberTotalChangeDto.getChangeIntegral());
            } else {
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + memberTotalChangeDto.getChangeIntegral());
                memberTotal.setTotalIntegral(memberTotal.getTotalIntegral() + memberTotalChangeDto.getChangeIntegral());
            }
        }
        //消费变动
        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.getServiceCount() != null) {
            if (memberTotalChangeDto.getTypeService() == 2) {
                memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() - memberTotalChangeDto.getServiceCount());
                memberTotal.setUsedServiceCount(memberTotal.getUsedServiceCount() + memberTotalChangeDto.getServiceCount());
            } else {
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + memberTotalChangeDto.getServiceCount());
                memberTotal.setTotalServiceCount(memberTotal.getTotalServiceCount() + memberTotalChangeDto.getServiceCount());
            }
        }
        //跟进时间
        if (memberTotalChangeDto.getNextTaskTime() != null) {
            memberTotal.setNextTaskTime(memberTotalChangeDto.getNextTaskTime());
        }
        //活动次数变动
        if (memberTotalChangeDto.getActivityTime() != null) {
            memberTotal.setTotalActivityCount(memberTotal.getTotalActivityCount() + 1);
            memberTotal.setLastActivityTime(memberTotalChangeDto.getActivityTime());
        }
        //订单数量变动
        if (memberTotalChangeDto.getCycleOrderChange() != null) {
            memberTotal.setTotalCycleOrder(memberTotal.getTotalCycleOrder() + memberTotalChangeDto.getCycleOrderChange());
        }
        if (memberTotalChangeDto.getExperienceOrderChange() != null) {
            memberTotal.setTotalExperienceOrder(memberTotal.getTotalExperienceOrder() + memberTotalChangeDto.getExperienceOrderChange());
        }
        if (memberTotalChangeDto.getServiceOrderChange() != null) {
            memberTotal.setTotalServiceOrder(memberTotal.getTotalServiceOrder() + memberTotalChangeDto.getServiceOrderChange());
        }
        if (memberTotalChangeDto.getGoodsOrderChange() != null) {
            memberTotal.setTotalGoodsOrder(memberTotal.getTotalGoodsOrder() + memberTotalChangeDto.getGoodsOrderChange());
        }
        memberTotalService.saveOrUpdate(memberTotal);
    }
}