package com.norteksoft.bs.options.service; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.xwork.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.norteksoft.bs.options.dao.InternationDao; import com.norteksoft.bs.options.dao.InternationOptionDao; import com.norteksoft.bs.options.dao.OptionDao; import com.norteksoft.bs.options.entity.Internation; import com.norteksoft.bs.options.entity.InternationOption; import com.norteksoft.bs.options.entity.Option; import com.norteksoft.product.orm.Page; import com.norteksoft.product.util.JsonParser; import com.norteksoft.product.util.MemCachedUtils; @Service @Transactional public class InternationManager { @Autowired private InternationDao internationDao; @Autowired private InternationOptionDao internationOptionDao; @Autowired private OptionDao optionDao; public Internation getInternation(Long id){ return internationDao.get(id); } public void getInternations(Page<Internation> page){ internationDao.getInternations(page); } public void deleteInternations(String ids){ String[] idList=ids.split(","); for(String id:idList){ if(StringUtils.isNotEmpty(id)){ Internation inter=getInternation(Long.parseLong(id)); internationDao.delete(inter); MemCachedUtils.delete(inter.getCompanyId()+"_"+inter.getCode()); } } } public void save(Internation internation){ internationDao.save(internation); } public void saveInternation(Internation internation,String oraginalInterCode){ //当编码被修改后,删除原缓存中的值 if(!oraginalInterCode.equals(internation.getCode()))MemCachedUtils.delete(internation.getCompanyId()+"_"+oraginalInterCode); internationDao.save(internation); List<Object> list=JsonParser.getFormTableDatas(InternationOption.class); for(Object obj:list){ InternationOption inter=(InternationOption)obj; inter.setInternation(internation); internationOptionDao.save(inter); } } public void getInternationOptions(Page<InternationOption> page,Long interId){ internationOptionDao.getInternationOptions(page, interId); } /** * 验证编号是否存在 * @param code * @return 存在返回true,反之 */ public boolean isInternationExist(String code,Long id){ Internation inter=internationDao.getInternationByCode(code); if(inter==null){ return false; }else{ if(id==null)return true; if(inter.getId().equals(id)){ return false; }else{ return true; } } } public void initAllInternations(){ List<Internation> inters= internationDao.getAllInternations(); for(Internation inter:inters){ Map<String,String> interOpts=new HashMap<String, String>(); List<InternationOption> opts=inter.getInternationOptions(); for(InternationOption opt:opts){ Option langu=optionDao.get(opt.getCategory()); interOpts.put(langu.getValue(),opt.getValue()); } MemCachedUtils.add(inter.getCompanyId()+"_"+inter.getCode(),interOpts); } } public List<Internation> getInternations(){ return internationDao.getInternations(); } public List<InternationOption> getInternationOptions(Long interId){ return internationOptionDao.getInternationOptions(interId); } public Internation getInternationByCode(String code){ return internationDao.getInternationByCode(code); } public InternationOption getInternationOptionByInfo(Long category,String categoryName,String value,String internationCode){ return internationOptionDao.getInternationOptionByInfo(category, categoryName,value, internationCode); } public void saveInternationOption(InternationOption interOpt){ internationOptionDao.save(interOpt); } public void deleteInternationOption(Long inOptionId){ internationOptionDao.delete(inOptionId); } }