package cn.com.goldenwater.dcproj.service.impl.system; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.AdCodeLabel; import cn.com.goldenwater.dcproj.dao.OlBisInspOrgDao; import cn.com.goldenwater.dcproj.model.BisInspOrg; import cn.com.goldenwater.dcproj.model.OlBisInspOrg; import cn.com.goldenwater.dcproj.param.OlBisInspOrgParam; import cn.com.goldenwater.dcproj.service.OlBisInspOrgService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.concurrent.TimeUnit; /** * @author lune * @date 2019-2-25 */ @Service @Transactional public class OlBisInspOrgServiceImpl extends AbstractCrudService implements OlBisInspOrgService { @Autowired private OlBisInspOrgDao olBisInspOrgDao; @Autowired private RedisTemplate redisTemplate; public OlBisInspOrgServiceImpl(OlBisInspOrgDao olBisInspOrgDao) { super(olBisInspOrgDao); this.olBisInspOrgDao = olBisInspOrgDao; } @Override public String getProvince(String orgId) { if (StringUtils.isBlank(orgId)) { return ""; } OlBisInspOrg inspOrg = (OlBisInspOrg) redisTemplate.opsForValue().get(orgId); if (inspOrg == null) { synchronized (this) { inspOrg = (OlBisInspOrg) redisTemplate.opsForValue().get(orgId); if (inspOrg == null) { inspOrg = olBisInspOrgDao.get(orgId); redisTemplate.opsForValue().set(orgId, inspOrg, 10, TimeUnit.MINUTES); } } } if (inspOrg != null) { if (!inspOrg.getRlcode().startsWith(AdCodeLabel.START_PARENT_ADCODE)) { return inspOrg.getRlcode(); } } return ""; } @Override public String getRlProvince(String orgId) { if (StringUtils.isBlank(orgId)) { return ""; } OlBisInspOrg inspOrg = olBisInspOrgDao.get(orgId); return inspOrg.getAdCode(); } @Override public BisInspOrg getDefaultOrg(String orgId) { OlBisInspOrg inspOrg = olBisInspOrgDao.get(orgId); if (inspOrg != null) { BisInspOrg defaultOrg = new BisInspOrg(); defaultOrg.setOrgId(inspOrg.getOrgId()); defaultOrg.setOrgPid(inspOrg.getOrgPid()); defaultOrg.setRlcode(inspOrg.getAdCode()); defaultOrg.setAdCode(inspOrg.getAdCode()); defaultOrg.setOrgNm(inspOrg.getOrgNm()); return defaultOrg; } return null; } @Override public String getProvinceFlag(String orgId) { String province = getProvince(orgId); if (StringUtils.isNotBlank(province)) { province = province.substring(0, 2); return province; } return ""; } @Override public List getById(String id, String province) { return this.olBisInspOrgDao.getById(id, province); } @Override public List getByPid(String pid, String province) { return this.olBisInspOrgDao.getByPid(pid, province); } @Override public List getOrgList(String province) { return this.olBisInspOrgDao.getOrgList(province); } @Override public List getNodeOne(String currentOrgId) { return olBisInspOrgDao.getNodeOne(currentOrgId); } @Override public List getNodeNext(String pid, String currentOrgId) { return olBisInspOrgDao.getNodeNext(pid, currentOrgId); } @Override public String selectMax(String orgPid) { return olBisInspOrgDao.selectMax(orgPid); } }