码迷,mamicode.com
首页 > 其他好文 > 详细

采购系统(三)

时间:2016-07-14 21:44:07      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

一、统一异常处理

1.统一异常结果类型

ResultInfo.java

/*
 * 系统提示信息封装类
 */
public class ResultInfo{

	public static final int TYPE_FAIL = 0;// 失败
	public static final int TYPE_SUCCESS = 1;// 成功
	public static final int TYPE_WARN = 2;// 警告
	public static final int TYPE_INFO = 3;// 提示信息

	/*
	 * 消息提示类型
	 */
	private int type;

	/*
	 * 提示代码
	 */
	private int messageCode;

	/*
	 * 提示信息
	 */
	private String message;

	/*
	 * 提示信息明细列表
	 */
	private List<ResultInfo> details;

	/*
	 * 提示消息对应操作的序号,方便用户查找问题,通常用于在批量提示信息中标识记录序号
	 */
	private int index;

	/*
	 * 提交后得到到业务数据信息从而返回给页面
	 */
	private Map<String,Object> sysdata = new HashMap<String,Object>();

	public ResultInfo(){
	}

	/*
	 * 构造函数,根据提交信息代码messageCode获取提示信息
	 */
	public ResultInfo(final int type,int messageCode,String message){
		this.type = type;
		this.messageCode = messageCode;
		this.message = message;
	}

	public boolean isSuccess(){
		if(this.type == TYPE_SUCCESS){
			return true;
		}
		return false;
	}
	
	//get、Set...
}

 

ExceptionResultInfo.java

/*
 * 自定义系统异常类
 */
public class ExceptionResultInfo extends Exception {

	// 系统统一使用的结果类,包括了 提示信息类型和信息内容
	private ResultInfo resultInfo;

	public ExceptionResultInfo(ResultInfo resultInfo) {
		super(resultInfo.getMessage());
		this.resultInfo = resultInfo;
	}

	public ResultInfo getResultInfo() {
		return resultInfo;
	}

	public void setResultInfo(ResultInfo resultInfo) {
		this.resultInfo = resultInfo;
	}

}

 

SubmitResultInfo.java

/*
 * 系统提交结果结果类型
 */
public class SubmitResultInfo{

	// 操作结果信息
	private ResultInfo resultInfo;

	public SubmitResultInfo(ResultInfo resultInfo){
		this.resultInfo = resultInfo;
	}

	public ResultInfo getResultInfo(){
		return resultInfo;
	}

	public void setResultInfo(ResultInfo resultInfo){
		this.resultInfo = resultInfo;
	}

}

 

Service重写,抛出自定义的异常处理。

	@Override
	public void insertSysuser(SysuserCustom sysuser) throws Exception{
		Sysuser user = findSysuserByUserId(sysuser.getUserid());

		if(user != null){
			
			ResultInfo resultInfo = new ResultInfo();
			resultInfo.setType(ResultInfo.TYPE_FAIL);
			resultInfo.setMessage("账号已经存在了");
			throw new ExceptionResultInfo(resultInfo);
		}

		String groupid = sysuser.getGroupid();
		String mc = sysuser.getSysmc();
		String mcID = null;
		if(groupid.equals("1") || groupid.equals("2")){
			// 监督单位
			Userjd userjd = findUserjdByMc(mc);
			if(userjd == null){
				// 抛出异常
				ResultInfo resultInfo = new ResultInfo();
				resultInfo.setType(ResultInfo.TYPE_FAIL);
				resultInfo.setMessage("用户单位不存在");
				throw new ExceptionResultInfo(resultInfo);
			}
			mcID = userjd.getId();
		}else if(groupid.equals("3")){
			// 监督单位
			Useryy useryy = findUseryyByMc(mc);
			if(useryy == null){
				// 抛出异常
				ResultInfo resultInfo = new ResultInfo();
				resultInfo.setType(ResultInfo.TYPE_FAIL);
				resultInfo.setMessage("用户单位不存在");
				throw new ExceptionResultInfo(resultInfo);
			}
			mcID = useryy.getId();
		}else if(groupid.equals("4")){
			// 监督单位
			Usergys usergys = findUsergysByMc(mc);
			if(usergys == null){
				// 抛出异常
				ResultInfo resultInfo = new ResultInfo();
				resultInfo.setType(ResultInfo.TYPE_FAIL);
				resultInfo.setMessage("用户单位不存在");
				throw new ExceptionResultInfo(resultInfo);
			}
			mcID = usergys.getId();
		}

		// 设置主键
		UUID uuid = UUID.randomUUID();
		String uuid32 = uuid.toString().replace("-", ""); 
		sysuser.setId(uuid32);
		sysuser.setSysid(mcID);
		sysuserMapoer.insert(sysuser);
	}

 

Action重写

	//提交用户
	@RequestMapping("/addsysusersubmit")
	@ResponseBody
	public SubmitResultInfo insertSysuser(SysuserQueryVo vo){
		
		//默认是成功的
		ResultInfo resultInfo = new ResultInfo();
		resultInfo.setType(ResultInfo.TYPE_SUCCESS);
		resultInfo.setMessage("操作成功");
		
		try{
			sysuserService.insertSysuser(vo.getSysuserCustom());
		}catch(Exception e){
			
			//初始异常信息
			e.printStackTrace();
			
			//对异常信息进行解析
			if(e instanceof ExceptionResultInfo){
				//抛出的系统自定义异常
				resultInfo = ((ExceptionResultInfo)e).getResultInfo();
			}
			else{
				//构造"未知错误异常"
				resultInfo = new ResultInfo();
				resultInfo.setType(ResultInfo.TYPE_FAIL);
				resultInfo.setMessage("未知错误");
			}
			
		}
		
		SubmitResultInfo submitResultInfo = new SubmitResultInfo(resultInfo);
		
		return submitResultInfo;
	}

 

前端页面返回处理json返回数据统一包装。

function sysusersave(){
          //准备使用jquery提供的ajax Form提交方式
          //将form的id传入,方法自动将form中的数据组成成key/value数据,通过ajax提交,提交方法类型为form中定义的method,
          //使用ajax form提交时,不用指定url,url就是form中定义的action
          //此种方式和原始的post方式差不多,只不过使用了ajax方式
          
          //第一个参数:form的id。
          //第二个参数:sysusersave_callback是回调函数。
          //第三个参数:传入的参数, 可以为空
          //第四个参数:dataType预期服务器返回的数据类型,这里action返回json。
          //根据form的id找到该form的action地址
          
          jquerySubByFId(‘userform‘,sysusersave_callback,null,"json");
          
      }
      
      //统一封装方法,作用:提示信息
      function message_alert(data){
          //从返回的json数据中获取结果信息
          var data_v = data.resultInfo;
          
          //提交结果类型
          var type=data_v.type;
          //结果提示信息
          var message=data_v.message;
          //alert(message);
          if(type==0){
              //如果type等于0表示失败,调用 jquery easyui的信息提示组件
              $.messager.alert(‘提示信息‘,message,‘error‘);
          }else if(type==1){
              $.messager.alert(‘提示信息‘,message,‘success‘);
          }else if(type==2){
              $.messager.alert(‘提示信息‘,message,‘warning‘);
          }else if(type==3){
              $.messager.alert(‘提示信息‘,message,‘info‘);
          }
      }
      
      //ajax调用的回调函数,ajax请求完成调用此函数,传入的参数是action返回的结果
      function sysusersave_callback(data){
          message_alert(data)
      }

 

测试

(1)成功时返回

     技术分享

(2)失败时返回

     技术分享

采购系统(三)

标签:

原文地址:http://www.cnblogs.com/yangang2013/p/5671646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!