xiaoyong931011
2021-07-16 886265d9085ce5324f98e52c1826cfee99637045
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
package com.xzx.gc.user.service;
 
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil;
import com.xzx.gc.common.constant.Constants;
import com.xzx.gc.entity.AddressInfo;
import com.xzx.gc.entity.PartnerGaode;
import com.xzx.gc.model.admin.AreaModel;
import com.xzx.gc.model.order.FenceDto;
import com.xzx.gc.user.mapper.AddressMapper;
import com.xzx.gc.user.mapper.PartnerGaodeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
@Service
@Transactional
public class PartnerGaodeService {
 
    @Autowired
    private PartnerGaodeMapper partnerGaodeMapper;
 
 
    @Autowired
    private AddressService addressService;
 
 
    @Autowired
    private FenceService fenceService;
 
    public PartnerGaode findByTownId(String areaId){
        Example example=new Example(PartnerGaode.class);
        Example.Criteria criteria = example.createCriteria();
        criteria.andEqualTo("delFlag",Constants.DEL_NOT_FLAG);
        criteria.andEqualTo("townId",areaId);
        criteria.andCondition("partner_id!=partner_key");
        PartnerGaode partnerGaode1 = partnerGaodeMapper.selectOneByExample(example);
        return partnerGaode1;
    }
 
 
    /**
     * 根据合伙人ID查找合伙人列表
     * @param partnerId
     * @return
     */
    public List<PartnerGaode> findByPartnerId(String partnerId){
        PartnerGaode partnerGaode=new PartnerGaode();
        partnerGaode.setDelFlag(Constants.DEL_NOT_FLAG);
        partnerGaode.setPartnerId(partnerId);
        List<PartnerGaode> partnerGaode1 = partnerGaodeMapper.select(partnerGaode);
        return partnerGaode1;
    }
 
 
    /**
     * 根据经纬度查询所属合伙人
     * @param lon
     * @param lat
     * @return
     */
    public String findPartnerIdByLon(String lon,String lat){
        AddressInfo addressInfo = addressService.getByLon(lon,lat);
        if(addressInfo!=null) {
            FenceDto fence = fenceService.getFence(addressInfo.getTownshipId(), false, addressInfo.getLongitude(), addressInfo.getLatitude(), false);
            if (StrUtil.isNotBlank(fence.getFenceId())) {
                return fence.getPartnerId();
            }
        }
        return null;
    }
 
    /**
     * 根据经纬度获取合伙人和围栏和区信息
     * @param lon
     * @param lat
     * @return
     */
    public FenceDto findPartnerIdAndTownByLon(String lon, String lat,Long addressId ){
        FenceDto fenceDto=new FenceDto();
        AddressInfo addressInfo;
        if(addressId==null) {
            addressInfo = addressService.getByLon(lon, lat);
        }else {
            addressInfo = addressService.findById(addressId);
        }
        if(addressInfo!=null) {
            fenceDto = fenceService.getFence(addressInfo.getTownshipId(), false, addressInfo.getLongitude(), addressInfo.getLatitude(), true);
        }
        return fenceDto;
    }
 
 
    public List<String> queryAreaByParentner(String partnerId){
        List<AreaModel> areaList = partnerGaodeMapper.queryAreaByParentner(partnerId);
        List<String> townIds = new ArrayList<>();
        for (AreaModel areaM:areaList) {
            townIds.add(areaM.getTownId());
        }
        return townIds;
    }
 
 
 
}