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;
|
}
|
|
|
|
}
|