`
慕容亦欢
  • 浏览: 10417 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

返回对象result封装

阅读更多
我们调用服务返回的类型有String,List,Map,Bean,Int,Boolean等类型,可以统一成result对象返回,自带生成Json字符串方法,使用起来非常方便,代码如下:
import tf56.sofa.serializer.JsonGenerateUtil;

/**
 * 返回对象Result封装
 * @athor changmeng.liu
 * @date 2014-7-25
 * @version 1.0
 * @update 
 */
public class Result {
	final String SUCCESS="success";
	final String ERROR="error";
	private String count="";
	/** 响应数据 */
    private Object data;
    /** 响应分页 */
	/** 响应状态 */
    private Boolean status = true;
    /** 响应消息 */
    private String message;

    public Result() {}

    public Result(Object data) {
    	this.data = data;
    }

   

    public Result(String message, Boolean status) {
    	this.set(message, status);
    }

    public Result(String message, Boolean status,String count, Object data) {
    	this.set(message, status);
    	this.data = data;
    	this.count=count;
    }

   

    public void set(String message, Boolean status) {
    	this.status = status;
    	this.message = message;
    	this.count="";
    	this.data="";
    }

    public void set(String message, Boolean status,String count, Object data) {
    	this.status = status;
    	this.message = message;
    	this.data = data;
    	this.count=count;
    }

    public Boolean getStatus() {
		return status;
	}

	public void setStatus(Boolean status) {
		this.status = status;
		this.message=this.status?"成功":"失败";
		this.count="";
    	this.data="";
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	public String getCommonJson(){
		return JsonGenerateUtil.getCommonJson(status==true?SUCCESS:ERROR, message, count==null?"":count, data==null?"":data);
	}

}

public class InvitationCodeServiceImpl implements InvitationCodeService {
	@Autowired
	private InvitationCodeDao invitationCodeDao;
	@Autowired
	private PartyService partyService;
        protected Result result=new Result();
        protected final Log logger = LogFactory.getLog(getClass());


/**
	 * @athor changmeng.liu
	 * @date 2014-7-15
	 * @version 1.0
	 * @function 
	 * @param 
	 * @update 
	 */
	@Override
	public Result getInvitationCodeByTypeAndId(Map map) {
		
		String type=(String) map.get("type");
		String fromid=(String) map.get("fromid");
		if(StringUtils.isEmpty(type)){
			this.result.set("类型不能为空", false);
			logger.debug(this.result.getMessage());
			return this.result;
			
		}
		if(StringUtils.isEmpty(fromid)){
			this.result.set("来源ID不能为空", false);
			logger.debug(this.result.getMessage());
			return this.result;
			
		}
		if(!"小二".equals(type)&&!"会员".equals(type)){
			this.result.set("类型不正确", false);
			logger.debug(this.result.getMessage());
			return this.result;
		}
		Map<String,Object> paramMap=new HashMap<String,Object>();
		paramMap.put("type", type);
		paramMap.put("fromid", fromid);
		InvitationCode invitationCode=invitationCodeDao.selectByTypeAndId(paramMap);
		if(invitationCode==null){
			this.result.set("没有找到该用户的邀请码", true,"","");
			logger.debug(this.result.getMessage());
			return this.result;
		}
		this.result.set("成功", true, "1", invitationCode);
		return this.result;
	}
}

结合logger,我们可以返回更加清晰的日志信息,帮助我们准确定位出错代码块
分享到:
评论

相关推荐

    hibernate将本地SQL查询结果封装成对象

    要将本地SQL查询的结果封装成对象,我们首先需要定义一个映射文件(.hbm.xml),在这个文件中,我们需要指定查询返回的对象类型以及字段与数据库列的对应关系。例如: ```xml &lt;id name="id" column="id"&gt;&lt;/id&gt; ...

    java方法通用返回结果集封装操作

    在封装方法中,我们可以使用泛型对象来封装返回结果,并将其返回给调用方。 例如,在上面的代码中,我们可以使用泛型对象封装返回结果: ```java public class Result&lt;T&gt; { private static final String SUCCESS =...

    用javascript写的计算器,封装成对象了(带用例)

    在JavaScript编程中,将功能封装成对象是一种常见的代码组织方式,可以提高代码的复用性和可维护性。在这个场景中,我们讨论的是一个基于JavaScript实现的计算器,它已经被封装为一个对象,便于调用和使用。以下是这...

    C#系统封装并调用_函数_系统封装_

    在面向对象编程中,封装是三大特性之一(另外两个是继承和多态)。通过封装,我们可以将数据和操作这些数据的方法绑定在一起,形成一个独立的单元,即类。类的内部细节对用户是隐藏的,外部只能通过公共接口(公有...

    springboot专栏 005 springboot整合mybatis-plus 增删改查 封装(ServerResult)

    3. **ServerResult封装** - `ServerResult`是一个通用的结果封装类,通常包含状态码、消息和数据三个字段。在业务处理完成后,将业务结果封装成`ServerResult`对象,统一返回给前端。 - 例如,创建一个`Server...

    result接口jar包.rar

    总的来说,"result接口jar包.rar"提供了一个方便的方式来处理结果返回,它封装了Result接口的实现,使得开发者能够快速地集成到自己的项目中。使用这样的库可以促进团队间的代码复用,提高开发效率,同时保证了代码...

    c++ ODBC 封装类

    3. **执行SQL语句**:`SQLResult executeSQL(const std::string& sql)`,执行SQL命令并返回结果集对象,用于处理查询结果。 4. **处理结果集**:`bool nextRow(SQLResult& result)`,遍历结果集的下一行;`int ...

    高德地图常用方法封装

    创建InfoWindow对象后,通过`open`方法显示,`close`方法关闭。 ```javascript var infoWindow = new AMap.InfoWindow({ content: '这里是北京' }); infoWindow.open(map, marker.getPosition()); ``` 4. **路径...

    公用返回类用泛型,返回固定格式

    标题"公用返回类用泛型,返回固定格式"所指的是创建一个通用的返回类,该类利用泛型来封装数据,并确保返回的数据遵循固定的格式。这样做可以提高代码的可读性和可维护性,同时减少因类型转换而引发的错误。 描述中...

    json对象封装及解析所需的JAR包

    "result": 6, "id": 1 } ``` 在Java中,可以使用jsonrpc.jar提供的API来构建和处理这样的请求和响应。 总的来说,`json-lib-2.4-jdk15.jar`和`jsonrpc.jar`这两个JAR包对于Java开发者来说是非常有用的工具。前者...

    result最为返回值

    Result对象封装了ResultSet,使得在多线程环境下或者需要跨多个方法处理数据时,结果集的数据持久性得到了保障。 此外,Result还支持其他的便利方法,如`getColumnNames()`用于获取列名,`get(int index)`和`get...

    使用Java集合模拟JSTL包中的Result接口功能

    如果不想导包,那么,我们需要自己写,于是,本人使用Java的集合框架来完成模拟jstl的Result接口的功能--返回一个Map对象,然后通过表的字段名作为键来从Map对象中取所对应的记录集合list. 学习对象:所有学习Java...

    WinHttpRequest对象完整封装-易语言

    本话题将详细讲解如何利用易语言中的WinHttpRequest对象进行网络请求,以及封装此对象的方法。 WinHttpRequest对象是Windows API提供的一种用于发送HTTP、HTTPS请求的接口,它允许开发者在应用程序中实现网络通信...

    struts2使用json返回对象和列表(案例)

    **返回对象的实现** 为了返回一个JSON对象,你需要创建一个JavaBean类作为值对象,用于封装要返回的数据。例如,创建一个名为`Users`的类,包含`userId`、`userName`和`sex`等属性,并提供getter和setter方法。在...

    自动码识别C#封装类

    `DecodeImage`方法接受一个`Bitmap`对象,调用`_reader.Decode`进行解码,并返回解码结果的文本。 为了使封装类更强大,可以考虑添加更多功能,如: 1. 支持多种类型的自动码:通过在`DecodeImage`方法中增加条件...

    C#封装C++DLL并调用

    这可能涉及到类型转换,例如指针到托管对象,以及异常处理,因为C++异常不能直接抛给.NET代码。 4. 创建C#接口:在C#项目中,定义一个接口来表示C++ DLL的功能。这些接口将被C#代码使用,它们的实现将委托给C++/CLI...

    C++ 封装的MYSQL 类

    在面向对象编程(OOP)中,封装是核心原则之一,它隐藏了数据和功能的具体实现细节,仅对外提供接口。在C++中,我们可以通过定义类并提供公共成员函数来实现封装。对于MySQL,封装类可能包括连接数据库、执行查询、...

    在JAVA中封装JSON数据

    总结来说,Java中封装JSON数据主要涉及JSON对象的创建、序列化和反序列化,以及与Struts框架的集成。通过熟练掌握这些技能,你可以有效地处理Web应用中的数据交互。在实际开发中,还需要关注性能优化、错误处理以及...

    封装SQLITE,使用SQLITE更加方便,c++版本

    封装一个`prepareStatement(const char* sqlCmd)`函数,返回一个可以绑定参数的对象。 8. **参数绑定和执行**:预编译语句对象应提供`bind(int index, value)`方法来绑定参数,以及`execute()`来执行预编译的SQL。 ...

    nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例.docx

    在上面的代码中,我们首先 require 了 mssql 模块,然后创建了一个 db 对象,用于封装连接数据库的代码。我们定义了一个 config 对象,用于存储连接数据库的配置信息。然后,我们定义了一个 sql 函数,用于执行 SQL ...

Global site tag (gtag.js) - Google Analytics