记录处理异常

本文仅供自己日后查找所用。

首先我要做的是在设置company的认证方式,认证方式可能多个,分为免费上网、微信认证、短信认证、密码认证。那么在CompanyAuthType实体中就会有多条记录。

先上代码:

public String editCom(Company model, String assets, String contextPath, String realPath) throws Exception{
		Company company = (Company)companyDao.findById(model.getCompanyId());
		if(null == company){
			throw new SerialException();
		}
		//设置信息: 名字、电话号码、成功连接
		company.setCompanyName(model.getCompanyName());
		company.setMobile(model.getMobile());
		company.setSuccessUrl(model.getSuccessUrl());
		companyDao.update(company);
		//先找到所认证方式,存在则删除
		List<CompanyAuthType> catl = iCompanyAuthTypeDAO.findByProperties(new String[]{"company.companyId"}, new Object[]{model.getCompanyId()});
		if(null != catl && !catl.isEmpty()){
			//删除原有的认证方式记录
			iCompanyAuthTypeDAO.deleteByProperties(new String[]{"company.companyId"}, new Object[]{model.getCompanyId()}, null);
		}
		//设置商家认证方式,一或多个
		if(!StringUtils.isEmpty(model.getIds())){
			iCompanyAuthTypeDAO.deleteByProperties(new String[]{"company.companyId"},new Object[]{model.getCompanyId()},null);
			
			String[] ids = model.getIds().split(",");
			for(String id:ids){
				AuthType at = (AuthType)iAuthTypeDAO.findById(Long.valueOf(id));
				if(null != at){
					CompanyAuthType cat = new CompanyAuthType();
					cat.setAuthType(at);
					cat.setCompany(company);
					iCompanyAuthTypeDAO.save(cat);
				}
			}
			
		}
		//通过CompanyId查找所有AP
		List<Ap> lst = iApDAO.findByProperties(new String[]{"company.companyId"}, new Object[]{model.getCompanyId()});
		if(null != lst && !lst.isEmpty()){
			for(Ap ap:lst){
				//修改所有AP登录成功链接
				if(null != model.getSuccessUrl() && "" != model.getSuccessUrl()){
					ap.setSuccessUrl(model.getSuccessUrl());
				}
				//修改AP认证方式
				iApDAO.save(ap);
			}
		}
}

  上面是完整的action实现,本次记录主要是说明在实现action中遇到的问题和考虑不周的地方。

首先是判断前台传回的认证IDS串是否为空,如果不为空的话就删除原有的认证方式,然后就保存IDS的认证方式,首先找到authtype中的实体(通过IDS中id),通过CompanyId找到Company实体。最后new  CompanyAuthType,最用set方法和save方法保存记录。注意:在保存之前要判断认证实体和商家实体是否为空,在不为空的情况下保存。

然后还要修改商家下所有Ap的登录成功链接。在修改之前要判断通过model获得的成功链接是否为空,再保存。

 

posted @ 2014-06-30 18:30  西科程序  阅读(211)  评论(0编辑  收藏  举报