mitao
2025-01-17 afa0dbb4f54e7244835dd67ec33c3e545f122f71
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/UserServiceRecordServiceImpl.java
@@ -1,10 +1,29 @@
package com.ruoyi.order.service.impl.order;
import com.ruoyi.system.domain.pojo.order.UserServiceRecord;
import com.ruoyi.system.mapper.order.UserServiceRecordMapper;
import com.ruoyi.system.service.order.UserServiceRecordService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.order.domain.dto.AppConsumerPageDto;
import com.ruoyi.order.domain.dto.MerServiceRecordPageDto;
import com.ruoyi.order.domain.dto.MgtMemberServiceRecordPageDto;
import com.ruoyi.order.domain.pojo.order.UserServiceRecord;
import com.ruoyi.order.domain.vo.AppServiceRecordPageVo;
import com.ruoyi.order.domain.vo.MerServiceRecordPageVo;
import com.ruoyi.order.domain.vo.MgtMemberServiceRecordPageVo;
import com.ruoyi.order.domain.vo.MgtMemberServiceTotalVo;
import com.ruoyi.order.mapper.order.UserServiceRecordMapper;
import com.ruoyi.order.service.order.UserServiceRecordService;
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.service.RemoteShopService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
 * <p>
@@ -17,4 +36,84 @@
@Service
public class UserServiceRecordServiceImpl extends ServiceImpl<UserServiceRecordMapper, UserServiceRecord> implements UserServiceRecordService {
    @Resource
    private UserServiceRecordMapper userServiceRecordMapper;
    @Resource
    private RemoteShopService remoteShopService;
    /**
     * 分页获取用户服务记录
     * @param page
     * @param appConsumerPageDto
     * @return
     */
    @Override
    public List<AppServiceRecordPageVo> pageUserServiceRecord(Page page, AppConsumerPageDto appConsumerPageDto){
        return userServiceRecordMapper.pageUserServiceRecord(page, appConsumerPageDto);
    }
    /**
     * 商户分页获取用户服务记录
     * @param page
     * @param merServiceRecordPageDto
     * @return
     */
    @Override
    public List<MerServiceRecordPageVo> pageMerMemberServiceRecord(Page page, MerServiceRecordPageDto merServiceRecordPageDto){
        return userServiceRecordMapper.pageMerMemberServiceRecord(page, merServiceRecordPageDto);
    }
    /**
     * 平台分页获取用户服务记录
     * @param page
     * @param mgtMemberServiceRecordPageDto
     * @return
     */
    @Override
    public List<MgtMemberServiceRecordPageVo> pageMgtMemberServiceRecord(Page page, MgtMemberServiceRecordPageDto mgtMemberServiceRecordPageDto){
        List<MgtMemberServiceRecordPageVo> mgtMemberServiceRecordPageVoList = userServiceRecordMapper.pageMgtMemberServiceRecord(page, mgtMemberServiceRecordPageDto);
        if(mgtMemberServiceRecordPageVoList!=null&&!mgtMemberServiceRecordPageVoList.isEmpty()){
            HashSet<Long> shopIdSet = new HashSet<>();
            for(MgtMemberServiceRecordPageVo mgtMemberServiceRecordPageVo : mgtMemberServiceRecordPageVoList){
                if(mgtMemberServiceRecordPageVo.getShopId()!=null){
                    shopIdSet.add(mgtMemberServiceRecordPageVo.getShopId());
                }
            }
            String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList()));
            MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
            mgtBaseBathDto.setIds(shopJoinedString);
            List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData();
            Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
            for(MgtMemberServiceRecordPageVo mgtMemberServiceRecordPageVo : mgtMemberServiceRecordPageVoList){
                if(mgtMemberServiceRecordPageVo.getShopId()!=null){
                    mgtMemberServiceRecordPageVo.setShopName(shopMap.get(mgtMemberServiceRecordPageVo.getShopId()).getShopName());
                }
            }
        }
        return mgtMemberServiceRecordPageVoList;
    }
    /**
     * 通过用户id获取会员服务统计
     * @param userId
     * @return
     */
    @Override
    public MgtMemberServiceTotalVo getMgtMemberServiceTotal(Long userId){
        return userServiceRecordMapper.getMgtMemberServiceTotal(userId);
    }
    /**
     * @description  统计商户到店人数
     * @author  jqs
     * @date    2023/6/25 17:17
     * @param shopId
     * @return  Integer
     */
    @Override
    public Integer countShopServicePerson(Long shopId){
        return userServiceRecordMapper.countShopServicePerson(shopId);
    }
}