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 findByPartnerId(String partnerId){ PartnerGaode partnerGaode=new PartnerGaode(); partnerGaode.setDelFlag(Constants.DEL_NOT_FLAG); partnerGaode.setPartnerId(partnerId); List 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 queryAreaByParentner(String partnerId){ List areaList = partnerGaodeMapper.queryAreaByParentner(partnerId); List townIds = new ArrayList<>(); for (AreaModel areaM:areaList) { townIds.add(areaM.getTownId()); } return townIds; } }