| package com.xzx.gc.system.service;  | 
|   | 
| import cn.hutool.core.collection.CollUtil;  | 
| import cn.hutool.core.util.StrUtil;  | 
| import com.xzx.gc.common.utils.BusinessUtil;  | 
| import com.xzx.gc.entity.AddressLevelInfo;  | 
| import com.xzx.gc.system.mapper.AddressLevelInfoMapper;  | 
| import com.xzx.gc.system.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.List;  | 
| import java.util.Map;  | 
|   | 
| @Service  | 
| @Transactional  | 
| public class AddressLevelService {  | 
|   | 
|     @Autowired  | 
|     private AddressLevelInfoMapper addressLevelMapper;  | 
|   | 
|     @Autowired  | 
|     private BusinessUtil businessUtil;  | 
|     @Autowired  | 
|     private CityPartnerService cityPartnerService;  | 
|   | 
|     @Autowired  | 
|     private PartnerGaodeMapper partnerGaodeMapper;  | 
|   | 
|   | 
|     public List<AddressLevelInfo> findByTownIds(String townIds){  | 
|         if(StrUtil.isNotBlank(townIds)) {  | 
|             Example example = new Example(AddressLevelInfo.class);  | 
|             Example.Criteria criteria = example.createCriteria();  | 
|             criteria.andIn("level3Id", CollUtil.newArrayList(townIds.split(",")));  | 
|             List<AddressLevelInfo> addressLevelInfos = addressLevelMapper.selectByExample(example);  | 
|             return addressLevelInfos;  | 
|         }else {  | 
|             return new ArrayList<>();  | 
|         }  | 
|     }  | 
|   | 
|     public AddressLevelInfo find(String level1Id,String level2Id,String level3Id){  | 
|         /**  | 
|          *   private String level1Id;  | 
|          *     @Column(name = "level_1_name")  | 
|          *     private String level1Name;  | 
|          *     @Column(name = "level_2_id")  | 
|          *     private String level2Id;  | 
|          *     @Column(name = "level_2_name")  | 
|          *     private String level2Name;  | 
|          *     @Column(name = "level_3_id")  | 
|          *     private String level3Id;  | 
|          */  | 
|         Example example = new Example(AddressLevelInfo.class);  | 
|         Example.Criteria criteria = example.createCriteria();  | 
|         criteria.andEqualTo("level3Id", level3Id);  | 
|         criteria.andEqualTo("level2Id",level2Id);  | 
|         criteria.andEqualTo("level1Id", level1Id);  | 
|         List<AddressLevelInfo> addressLevelInfos = addressLevelMapper.selectByExample(example);  | 
|         if(CollUtil.isNotEmpty(addressLevelInfos)){  | 
|             return addressLevelInfos.get(0);  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     /**  | 
|      * 根据任意条件查询  | 
|      * @param addressLevelInfo  | 
|      * @return  | 
|      */  | 
|     public List<AddressLevelInfo> findByAny(AddressLevelInfo addressLevelInfo){  | 
|         if(StrUtil.isNotBlank(addressLevelInfo.getLevel3Name())){  | 
|             addressLevelInfo.setLevel3Name(businessUtil.changeArea(addressLevelInfo.getLevel3Name()));  | 
|         }  | 
|   | 
|         List<AddressLevelInfo> addressLevelInfos = addressLevelMapper.select(addressLevelInfo);  | 
|         if(CollUtil.isNotEmpty(addressLevelInfos)){  | 
|             for (AddressLevelInfo levelInfo : addressLevelInfos) {  | 
|                 levelInfo.setLevel3Name(businessUtil.changeArea(levelInfo.getLevel3Name()));  | 
|             }  | 
|         }  | 
|         return addressLevelInfos;  | 
|     }  | 
|   | 
|     public AddressLevelInfo findByAdcode(String adcode){  | 
|         Example example = new Example(AddressLevelInfo.class);  | 
|         Example.Criteria criteria = example.createCriteria();  | 
|         criteria.andEqualTo("adcode", adcode);  | 
|         AddressLevelInfo addressLevelInfos = addressLevelMapper.selectOneByExample(example);  | 
|         return addressLevelInfos;  | 
|     }  | 
|   | 
|     public Map<String, Object> queryCityByTownId(String townId){  | 
|         return addressLevelMapper.queryCityByTownId(townId);  | 
|     }  | 
|   | 
|   | 
|     public List<Map<String, Object>> queryCityByPartnerId() {  | 
|         List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();  | 
|         List<String> cityIds = partnerGaodeMapper.queryCityByPartnerId(partnerIds);  | 
|         List<Map<String, Object>> list = addressLevelMapper.queryAreaByCityIds(cityIds);  | 
|         return list;  | 
|     }  | 
|   | 
| }  |