mitao
2025-01-17 afa0dbb4f54e7244835dd67ec33c3e545f122f71
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
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);
    }
}