package com.kmall.admin.service.impl; import com.google.common.collect.ImmutableBiMap; import com.kmall.admin.dao.SysCusNationCodeDao; import com.kmall.admin.entity.SysCusNationCodeEntity; import com.kmall.admin.fromcomm.entity.SysUserEntity; import com.kmall.admin.service.SysCusNationCodeService; import com.kmall.admin.utils.ShiroUtils; import com.kmall.admin.utils.ValidateUtils; import com.kmall.common.constant.TablePrimaryKeyPrefix; import com.kmall.common.utils.*; import com.kmall.manager.manager.express.sf.ServiceException; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Random; /** * 国别地区代码Service实现类 * * @author huangyq * @email admin@qhdswl.com * @date 2018-11-10 15:26:44 */ @Service("sysCusNationCodeService") public class SysCusNationCodeServiceImpl implements SysCusNationCodeService { @Autowired private SysCusNationCodeDao sysCusNationCodeDao; @Override public SysCusNationCodeEntity queryObject(String sn) { return sysCusNationCodeDao.queryObject(sn); } @Override public List queryList(Map map) { return sysCusNationCodeDao.queryList(map); } @Override public int queryTotal(Map map) { return sysCusNationCodeDao.queryTotal(map); } @Override public int save(SysCusNationCodeEntity sysCusNationCode) { SysCusNationCodeEntity SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByName(sysCusNationCode.getName()); if (SysCusNationCodeTemp != null) { throw new RRException("名称已经存在"); } if (sysCusNationCode.getCode().length() > 3) { throw new RRException("代码长度有误"); } SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByCode(sysCusNationCode.getCode()); if (SysCusNationCodeTemp != null) { throw new RRException("代码已经存在"); } if (StringUtils.isNotEmpty(sysCusNationCode.getDiscountsTaxType()) && sysCusNationCode.getDiscountsTaxType().length() > 1) { throw new RRException("优普税率类型有误"); } sysCusNationCode.setSn(TablePrimaryKeyPrefix.sys_cus_nation_code + RandomUtils.getNum(18)); return sysCusNationCodeDao.save(sysCusNationCode); } @Override public int update(SysCusNationCodeEntity sysCusNationCode) { SysCusNationCodeEntity SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByName(sysCusNationCode.getName()); if (SysCusNationCodeTemp != null && !SysCusNationCodeTemp.getSn().equals(sysCusNationCode.getSn())) { throw new RRException("名称已经存在"); } if (sysCusNationCode.getCode().length() > 3) { throw new RRException("代码长度有误"); } SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByCode(sysCusNationCode.getCode()); if (SysCusNationCodeTemp != null && !SysCusNationCodeTemp.getSn().equals(sysCusNationCode.getSn())) { throw new RRException("代码已经存在"); } if (StringUtils.isNotEmpty(sysCusNationCode.getDiscountsTaxType()) && sysCusNationCode.getDiscountsTaxType().length() > 1) { throw new RRException("优普税率类型有误"); } return sysCusNationCodeDao.update(sysCusNationCode); } @Override public int delete(String sn) { return sysCusNationCodeDao.delete(sn); } @Override public int deleteBatch(String[] sns) { return sysCusNationCodeDao.deleteBatch(sns); } @Override public SysCusNationCodeEntity getCusNationByName(String name) { return sysCusNationCodeDao.queryObjectByName(name); } @Override public SysCusNationCodeEntity getCusNationByCode(String code) { return sysCusNationCodeDao.queryObjectByCode(code); } @Override public List findCusNationByAll() { return sysCusNationCodeDao.queryAll(); } @Override @Transactional public void uploadExcel(List sysCusNationCodeEntityList) { for (SysCusNationCodeEntity sysCusNationCodeEntity : sysCusNationCodeEntityList) { String code = sysCusNationCodeEntity.getCode(); String name = sysCusNationCodeEntity.getName(); String ename = sysCusNationCodeEntity.getEname(); String discountsTaxType = sysCusNationCodeEntity.getDiscountsTaxType(); String isValid = sysCusNationCodeEntity.getIsValid(); String remark = sysCusNationCodeEntity.getRemark(); if (!ValidateUtils.validateStrIsInteger(code)) { throw new ServiceException("请输入正确的代码,有问题的代码:" + code); } if (!ValidateUtils.validateChinese(name)) { throw new ServiceException("请输入正确的名称,有问题的名称:" + name); } if (!ValidateUtils.validateEName(ename)) { throw new ServiceException("请输入正确的英文名,有问题的英文名:" + ename); } if (!ValidateUtils.validateEnglishChar(discountsTaxType)) { throw new ServiceException("请输入正确的优普税率类型,有问题的优普税率类型:" + discountsTaxType); } if (!"0".equals(isValid) && !"1".equals(isValid)) { throw new ServiceException("请输入正确的是否有效,有问题的是否有效:" + isValid); } if (remark != null && !ValidateUtils.validateSpecialAllowChinese(remark)) { throw new ServiceException("请输入正确的备注,有问题的备注:" + remark); } SysUserEntity user = ShiroUtils.getUserEntity(); // 查询代码是否存在 SysCusNationCodeEntity temp = this.getCusNationByCode(code); if (temp == null) { // 不存在则新增 sysCusNationCodeEntity.setCreaterSn(user.getUserId() + ""); sysCusNationCodeEntity.setCreateTime(new Date()); this.save(sysCusNationCodeEntity); } else { // 存在修改对应代码的数据 SysCusNationCodeEntity SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByName(sysCusNationCodeEntity.getName()); if (SysCusNationCodeTemp != null && !SysCusNationCodeTemp.getSn().equals(temp.getSn())) { throw new RRException("名称已经存在"); } if (StringUtils.isNotEmpty(sysCusNationCodeEntity.getDiscountsTaxType()) && sysCusNationCodeEntity.getDiscountsTaxType().length() > 1) { throw new RRException("优普税率类型有误"); } sysCusNationCodeEntity.setSn(temp.getSn()); sysCusNationCodeEntity.setModerSn(user.getUserId() + ""); sysCusNationCodeEntity.setModTime(new Date()); sysCusNationCodeDao.update(sysCusNationCodeEntity); } } } }