自定义请求参数结果封装类

前言

        为了方便管理请求的参数、结果集与请求状态信息,将以上数据封装到一个类中,并搭配其他的一些工具类。


json样式

请求

{
	"sys": {},
	"userInfo": {},
	"parameter": {
		"name": "hzx"
	},
	"result": {}
}

返回结果

{
	"sys": {
		"msg": "查询所有用户",
		"fileName": "UserController.java",
		"methodName": "queryUser",
		"userId": 1,
		"status": 1
	},
	"userInfo": {},
	"parameter": {
		"name": "hzx"
	},
	"result": {
		"userList": [{
			"id": 1,
			"name": "hzx",
			"sex": "1"
		}]
	}
}

sys 存放信息

        msg:后端返回给前端的提示,请求是否成功,出现异常时显示异常信息

        fileName:请求所在类的文件名

        methodName:请求的方法名

        status:请求状态,0失败,1成功

userInfo 用户信息,前端将当前登录的用户信息放入userInfo块中,可以用来做用户校验。 

parameter 参数,以键值对的形式传参 

result 返回结果,将请求的执行结果放入result块中,result块中可以是任何数据类型,包括集合。 

核心代码

/**
 * @author huangzixiao
 * @Description 参数、结果封装类
 * @date 2021/10/21
 */
public class EiInfo {
    private Map<String, Object> sys = new HashMap<String, Object>();
    private Map<String, Object> userInfo = new HashMap<String, Object>();
    private Map<String, Object> parameter = new HashMap<String, Object>();
    private Map<String, Object> result = new HashMap<String, Object>();

    public EiInfo() {
    }

    public Map<String, Object> getSys() {
        return sys;
    }

    public void setSys(Map<String, Object> sys) {
        this.sys = sys;
    }

    public Map<String, Object> getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(Map<String, Object> userInfo) {
        this.userInfo = userInfo;
    }

    public Map<String, Object> getParameter() {
        return parameter;
    }

    public void setParameter(Map<String, Object> parameter) {
        this.parameter = parameter;
    }

    public Map<String, Object> getResult() {
        return result;
    }

    public void setResult(Map<String, Object> result) {
        this.result = result;
    }

    public Object getSysCell(String key) {
        return sys.get(key);
    }

    public void setSysCell(String key, Object value) {
        sys.put(key, value);
    }

    public Object getUserInfoCell(String key) {
        return userInfo.get(key);
    }

    public void setUserInfoCell(String key, Object value) {
        userInfo.put(key, value);
    }

    public Object getParameterCell(String key) {
        return parameter.get(key);
    }

    public void setParameterCell(String key, Object value) {
        parameter.put(key, value);
    }

    public Object getResultCell(String key) {
        return result.get(key);
    }

    public void setResultCell(String key, Object value) {
        result.put(key, value);
    }

    public void sysSetStatus(int status) {
        sys.put(EiConstant.status, status);
    }

    public Integer sysSetStatus() {
        return (Integer) sys.get(EiConstant.status);
    }

    public void sysSetMsg(String msg) {
        sys.put(EiConstant.msg, msg);
    }

    public String sysGetMsg() {
        return (String) sys.get(EiConstant.msg);
    }

    public void sysSetFileName(String fileName) {
        sys.put(EiConstant.fileName, fileName);
    }

    public void sysSetMethodName(String methodName) {
        sys.put(EiConstant.methodName, methodName);
    }

}

 方法说明

getXXX XXX为sys、userInfo、parameter、result块的名字,获取XXX块中的所有内容,返回键值对格式
setXXX XXX为sys、userInfo、parameter、result块的名字,向XXX块中添加数据,以键值对形式传参

 getXXXCell XXX为sys、userInfo、parameter、result块的名字,获取XXX块中指定内容

setXXXCell XXX为sys、userInfo、parameter、result块的名字,向XXX块中写入指定内容,可以额外的任意内容。
sysSetStatus 设置sys块中status的值,可以设置为任意值
sysSetMsg 设置sys块中msg的值,可以设置为任意值

 请求测试

SQL语句

<mapper namespace="com.dao.UserDao">
    <resultMap id="userMap" type="com.pojo.User">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="sex" column="sex"/>
    </resultMap>

    <select id="getAllUsers" resultMap="userMap" parameterType="java.util.HashMap">
        select *
        from t_user
        <trim prefix="where" prefixOverrides="and">
            <if test="id!=null and id!=''">
                and id = #{id}
            </if>
            <if test="name!=null and name!=''">
                and name = #{name}
            </if>
        </trim>
    </select>

    <update id="updateUser" parameterType="java.util.HashMap">
        update t_user
        <trim prefix="set" suffixOverrides=",">
            <if test="name!=null and name!=''">
                name = #{name},
            </if>
            <if test="sex!=null and sex!='' or sex==0">
                sex=#{sex},
            </if>
        </trim>
        where id = #{id}
    </update>

    <insert id="insertUser" parameterType="java.util.HashMap" keyProperty="id" useGeneratedKeys="true">
        insert INTO t_user (name,sex) VALUES(#{name},#{sex})
    </insert>
</mapper>

1.1 查询

@RequestMapping(value = "/query", method = RequestMethod.POST)
    public EiInfo queryUser(@RequestBody EiInfo eiInfo){
        EiInfo outInfo = new EiInfo();
        List<User> userList = userService.getAllUsers(eiInfo.getParameter());
        try {
            eiInfo.setResultCell("userList",userList);
        } catch (Exception e) {
            e.printStackTrace();
        }
        List<User> result = (List<User>) eiInfo.getResultCell("userList");
        if (EiInfoUtils.listIsNotEmpty(result)) {
            outInfo.setResultCell("userList",eiInfo.getResultCell("userList"));
            outInfo.setSysCell("userId",result.get(0).getId());
            return ReturnOutInfo.outInfoSuccess(outInfo,"查询所有用户");
        }else{
            return ReturnOutInfo.outInfoFail(outInfo,"没有数据");
        }
    }

1.2 参数

{
	"sys": {},
	"userInfo": {},
	"parameter": {
		"name": "hzx"
	},
	"result": {}
}

1.3 结果

{
  "sys": {
    "msg": "查询所有用户",
    "fileName": "UserController.java",
    "methodName": "queryUser",
    "userId": 1,
    "status": 1
  },
  "userInfo": {},
  "parameter": {},
  "result": {
    "userList": [
      {
        "id": 1,
        "name": "hzx",
        "sex": "1"
      },
      {
        "id": 8,
        "name": "hzx",
        "sex": "1"
      }
    ]
  }
}

2.1 新增

    @RequestMapping(value = "/add",method = RequestMethod.POST)
    public EiInfo addUser(@RequestBody EiInfo eiInfo){
        EiInfo outInfo = new EiInfo();
        try {
//            User user = EiInfoUtils.mapToObject(eiInfo.getParameter(), User.class);
            Map user = eiInfo.getParameter();
            userService.insertUser(user);
            outInfo.setResultCell("add",user);
        return ReturnOutInfo.outInfoSuccess(outInfo,"新增成功");
        } catch (Exception e) {
            e.printStackTrace();
            return ReturnOutInfo.outInfoFail(outInfo,"新增失败",e.toString());

        }
    }

2.2 参数

{
	"sys": {},
	"userInfo": {},
	"parameter": {
		"name": "hzx-new",
		"sex":"1"
	},
	"result": {}
}

2.3 结果

{
  "sys": {
    "msg": "新增成功",
    "fileName": "UserController.java",
    "methodName": "addUser",
    "status": 1
  },
  "userInfo": {},
  "parameter": {},
  "result": {
    "add": {
      "name": "hzx-new",
      "sex": "1",
      "id": 11
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值