| package com.xzx.gc.order.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.order.mapper.AddressLevelInfoMapper;  | 
| 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;  | 
|   | 
|     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<>();  | 
|         }  | 
|     }  | 
|   | 
|   | 
|     /**  | 
|      *  TODO 根据区判断唯一是不对的  | 
|      * @return  | 
|      */  | 
|     public String findByLevle3Name(String level3Name){  | 
|         AddressLevelInfo addressLevelInfo=new AddressLevelInfo();  | 
|         addressLevelInfo.setLevel3Name(level3Name);  | 
|         AddressLevelInfo addressLevelInfo1 = addressLevelMapper.selectOne(addressLevelInfo);  | 
|         if(addressLevelInfo1!=null){  | 
|             return addressLevelInfo1.getAdcode();  | 
|         }  | 
|         return "";  | 
|     }  | 
|   | 
|   | 
|   | 
|     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 AddressLevelInfo find(String level1Id,String level2Id,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;  | 
|     }  | 
|   | 
|   | 
|     public String queryAreaName(String type,String id){  | 
|         Example example = new Example(AddressLevelInfo.class);  | 
|         Example.Criteria criteria = example.createCriteria();  | 
|         if(type.equals("1")){  | 
|             criteria.andEqualTo("level1Id", id);  | 
|         }else if(type.equals("2")){  | 
|             criteria.andEqualTo("level2Id", id);  | 
|         }else{  | 
|             criteria.andEqualTo("level3Id", id);  | 
|         }  | 
|         List<AddressLevelInfo> addressLevelInfos = addressLevelMapper.selectByExample(example);  | 
|         if(CollUtil.isNotEmpty(addressLevelInfos)){  | 
|             if(type.equals("1")){  | 
|                 return addressLevelInfos.get(0).getLevel1Name();  | 
|             }else if(type.equals("2")){  | 
|                 return addressLevelInfos.get(0).getLevel2Name();  | 
|             }else{  | 
|                 return addressLevelInfos.get(0).getLevel3Name();  | 
|             }  | 
|         }  | 
|   | 
|         return "";  | 
|     }  | 
|   | 
|     /**  | 
|      * TODO 根据区判断唯一是不对的  | 
|      * @param type  | 
|      * @param name  | 
|      * @return  | 
|      */  | 
|     public String findIdByName(String type,String name){  | 
|         Example example = new Example(AddressLevelInfo.class);  | 
|         Example.Criteria criteria = example.createCriteria();  | 
|         if(type.equals("1")){  | 
|             criteria.andEqualTo("level1Name", name);  | 
|         }else if(type.equals("2")){  | 
|             criteria.andEqualTo("level2Name", name);  | 
|         }else{  | 
|             criteria.andEqualTo("level3Name", name);  | 
|         }  | 
|         List<AddressLevelInfo> addressLevelInfos = addressLevelMapper.selectByExample(example);  | 
|         if(CollUtil.isNotEmpty(addressLevelInfos)){  | 
|             if(type.equals("1")){  | 
|                 return addressLevelInfos.get(0).getLevel1Id();  | 
|             }else if(type.equals("2")){  | 
|                 return addressLevelInfos.get(0).getLevel2Id();  | 
|             }else{  | 
|                 return addressLevelInfos.get(0).getLevel3Id();  | 
|             }  | 
|         }  | 
|   | 
|         return "";  | 
|     }  | 
|   | 
| }  |