Helius
2021-06-30 e47031a11b23168ceb5c0e8987baddada1a7b6ff
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package com.xzx.gc.order.service;
 
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.xzx.gc.common.Result;
import com.xzx.gc.common.constant.CommonEnum;
import com.xzx.gc.common.constant.Constants;
import com.xzx.gc.common.constant.OrderEnum;
import com.xzx.gc.common.utils.gdmap.GdTraceUtil;
import com.xzx.gc.entity.CityPartner;
import com.xzx.gc.entity.OtherUserInfo;
import com.xzx.gc.entity.PartnerTrace;
import com.xzx.gc.order.mapper.PartnerTraceMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.List;
 
@Service
@Transactional
public class PartnerTraceService {
 
 
    @Autowired
    private OtherUserService otherUserService;
    @Autowired
    private PartnerTraceMapper partnerTraceMapper;
 
    public void add(PartnerTrace partnerTrace){
        partnerTrace.setCreateTime(DateUtil.now());
        partnerTrace.setUpdateTime(DateUtil.now());
        partnerTrace.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG));
        partnerTraceMapper.insertSelective(partnerTrace);
    }
 
 
    /**
     * 创建轨迹服务
     * @param cityPartner
     * @param orderEnum
     */
    public String createService(CityPartner cityPartner,OrderEnum orderEnum){
        Result service = GdTraceUtil.createService(cityPartner.getPartnerKey(), cityPartner.getPartnerKey()+"_"+orderEnum.name());
        if(service.getCode()==0){
            PartnerTrace partnerTrace=new PartnerTrace();
            partnerTrace.setPartnerId(cityPartner.getId()+"");
            partnerTrace.setPartnerKey(cityPartner.getPartnerKey());
            partnerTrace.setPartnerServiceId(service.getData().toString());
            partnerTrace.setPartnerServiceType( Convert.toShort(orderEnum.getValue()));
            add(partnerTrace);
            return partnerTrace.getPartnerServiceId();
        }
        return null;
    }
    /**
     * 根据合伙人id和服务类型查找
     * @param partnerId
     * @param serviceType
     * @return
     */
    public PartnerTrace findByPartnerIdAndType(String partnerId,Short serviceType){
        PartnerTrace partnerGaode=new PartnerTrace();
        partnerGaode.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG));
        partnerGaode.setPartnerId(partnerId);
        partnerGaode.setPartnerServiceType(serviceType);
        List<PartnerTrace> partnerGaode1 = partnerTraceMapper.select(partnerGaode);
        if(CollUtil.isNotEmpty(partnerGaode1)){
            return partnerGaode1.get(0);
        }
        return null;
    }
 
    /**
     * 根据合伙人id查找
     * @param partnerId
     * @return
     */
    public List<PartnerTrace> findByPartnerId(String partnerId){
        PartnerTrace partnerGaode=new PartnerTrace();
        partnerGaode.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG));
        partnerGaode.setPartnerId(partnerId);
        List<PartnerTrace> partnerGaode1 = partnerTraceMapper.select(partnerGaode);
        return partnerGaode1;
    }
 
 
    /**
     * 根据用户id和类型找对应的服务
     * @param userId
     * @param userType
     * @return
     */
    public PartnerTrace findByUserIdAndType(String userId,String  userType) {
 
        OtherUserInfo byId = otherUserService.findById(userId);
 
        if(StrUtil.isBlank(userType)){
            userType=byId.getUserType();
        }
 
        //外部骑手
        String partnerId = byId.getPartnerId();
        if(StrUtil.isBlank(partnerId)){
            return null;
        }
 
        //1:回收员 2:推广员 服务类型
        Short serviceType = null;
 
        if (CommonEnum.回收员.getValue().equals(userType)) {
            serviceType = Convert.toShort(OrderEnum.回收员订单轨迹.getValue());
        } else if (CommonEnum.推广员.getValue().equals(userType)) {
            serviceType = Convert.toShort(OrderEnum.推广员全天轨迹.getValue());
        }else if(Constants.DEFAULT_ID.equals(userType)){
            serviceType=Convert.toShort(OrderEnum.回收员全天轨迹.getValue());
        }
 
        PartnerTrace partnerTrace = findByPartnerIdAndType(partnerId, serviceType);
 
        if(partnerTrace!=null){
            partnerTrace.setOtherUserInfo(byId);
        }
 
 
 
        return partnerTrace;
    }
 
 
    /**
     * 根据id更新各属性
     * @param partnerTrace
     */
    public void updateById(PartnerTrace partnerTrace){
        partnerTraceMapper.updateByPrimaryKeySelective(partnerTrace);
    }
}