中间商添加食品流转信息功能开发与测试

本功能实现中间商添加食品流转信息的功能,以确保食品溯源信息的完整性和可靠性。

功能概述

该功能通过add_trace_by_distrubutor方法实现,该方法接收前端传入的参数,进行二次验证,并封装成JSON对象发送至指定的URL进行请求。请求成功后,解析返回的结果,将结果封装成JSON对象并返回。

代码实现

/**
 * 中间商添加食品流转信息
 * traceNumber: 食品溯源id,食品溯源过程中的标识符
 * traceName: 用户名,食品流转过程各个阶段的用户名
 * quality: 当前食品质量(0=优质 1=合格 2=不合格)
 * @return:中间商添加食品流转信息结果
 */
@PostMapping('/adddistribution', produces=MediaType.APPLICATION_JSON_VALUE)
public String add_trace_by_distrubutor(@RequestBody JSONObject jsonParam) {
    //声明返回对象
    JSONObject _outPutObj = new JSONObject();

    if(jsonParam == null){
        _outPutObj.put('ret', 0);
        _outPutObj.put('msg', '参数为空');
        return _outPutObj.toJSONString();
    }

    String trace_number = jsonParam.getString('traceNumber');
    String trace_name = jsonParam.getString('traceName');
    int quality = jsonParam.getInteger('quality');

    // 参数验证
    if (trace_number == null || trace_number.isEmpty() || trace_name == null || trace_name.isEmpty() || quality < 0 || quality > 2) {
        _outPutObj.put('ret', 0);
        _outPutObj.put('msg', '参数格式错误');
        return _outPutObj.toJSONString();
    }

    JSONArray params = JSONArray.parseArray('['+trace_number+',\''+trace_name+'\','+quality+']');
    JSONObject _jsonObj = new JSONObject();
    _jsonObj.put('contractName',CONTRACT_NAME);
    _jsonObj.put('contractAddress',CONTRACT_ADDRESS);
    _jsonObj.put('contractAbi',JSONArray.parseArray(CONTRACT_ABI));
    _jsonObj.put('user',DISTRIBUTOR_ADDRESS);
    _jsonObj.put('funcName','addTraceByDistributor');
    _jsonObj.put('funcParam',params);

    String responseStr = httpPost(URL,_jsonObj.toJSONString());
    JSONObject responseJsonObj = JSON.parseObject(responseStr);
    String msg = responseJsonObj.getString('message');
    if (msg.equals('Success')){
        _outPutObj.put('ret', 1);
        _outPutObj.put('msg', msg);
    }else{
        _outPutObj.put('ret', 0);
        _outPutObj.put('msg', msg);
    }
    return _outPutObj.toJSONString();
}

业务知识点

  1. 食品溯源系统的流转信息添加功能: 通过该方法可以将食品流转的相关信息添加到食品溯源系统中,包括食品溯源ID、用户名、食品质量等信息。
  2. 参数验证: 在方法中对传入的参数进行验证,确保参数的合法性和完整性,包括参数的非空判断、类型判断和合法值判断。
  3. JSON数据的封装和解析: 使用JSONObject和JSONArray对数据进行封装和解析,以便进行请求和结果的处理。
  4. HTTP请求: 使用HTTP POST方法向指定的URL发送请求,并获取响应结果。
  5. 返回结果的封装和返回: 将请求结果封装成JSON对象,包括返回码和消息,然后将结果返回给前端。

功能测试

针对该功能进行测试,覆盖以下场景:

  1. 正确参数输入:验证功能是否正常添加流转信息。
  2. 参数为空:验证参数为空时的处理方式。
  3. 参数格式错误:验证参数格式错误时的处理方式。
  4. HTTP请求失败:验证HTTP请求失败时的处理方式。
  5. 返回结果解析错误:验证返回结果解析错误时的处理方式。

总结

该功能实现中间商添加食品流转信息的功能,涉及到食品溯源系统、参数验证、JSON数据处理、HTTP请求和结果返回等业务知识点。通过测试验证功能的完整性和可靠性,确保食品溯源信息的安全和准确。


原文地址: https://www.cveoy.top/t/topic/qENa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录