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 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 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 addressLevelInfos = addressLevelMapper.selectByExample(example); if(CollUtil.isNotEmpty(addressLevelInfos)){ return addressLevelInfos.get(0); } return null; } /** * 根据任意条件查询 * @param addressLevelInfo * @return */ public List findByAny(AddressLevelInfo addressLevelInfo){ if(StrUtil.isNotBlank(addressLevelInfo.getLevel3Name())){ addressLevelInfo.setLevel3Name(businessUtil.changeArea(addressLevelInfo.getLevel3Name())); } List 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 queryCityByTownId(String townId){ return addressLevelMapper.queryCityByTownId(townId); } public List> queryCityByPartnerId() { List partnerIds = cityPartnerService.queryPartnerByCurrent(); List cityIds = partnerGaodeMapper.queryCityByPartnerId(partnerIds); List> list = addressLevelMapper.queryAreaByCityIds(cityIds); return list; } }