package com.ruoyi.order.service.impl.order;
|
|
|
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>
|
* 服务记录 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-04-25
|
*/
|
@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);
|
}
|
}
|