中间商添加食品流转信息功能开发与测试
中间商添加食品流转信息功能开发与测试
本功能实现中间商添加食品流转信息的功能,以确保食品溯源信息的完整性和可靠性。
功能概述
该功能通过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();
}
业务知识点
- 食品溯源系统的流转信息添加功能: 通过该方法可以将食品流转的相关信息添加到食品溯源系统中,包括食品溯源ID、用户名、食品质量等信息。
- 参数验证: 在方法中对传入的参数进行验证,确保参数的合法性和完整性,包括参数的非空判断、类型判断和合法值判断。
- JSON数据的封装和解析: 使用JSONObject和JSONArray对数据进行封装和解析,以便进行请求和结果的处理。
- HTTP请求: 使用HTTP POST方法向指定的URL发送请求,并获取响应结果。
- 返回结果的封装和返回: 将请求结果封装成JSON对象,包括返回码和消息,然后将结果返回给前端。
功能测试
针对该功能进行测试,覆盖以下场景:
- 正确参数输入:验证功能是否正常添加流转信息。
- 参数为空:验证参数为空时的处理方式。
- 参数格式错误:验证参数格式错误时的处理方式。
- HTTP请求失败:验证HTTP请求失败时的处理方式。
- 返回结果解析错误:验证返回结果解析错误时的处理方式。
总结
该功能实现中间商添加食品流转信息的功能,涉及到食品溯源系统、参数验证、JSON数据处理、HTTP请求和结果返回等业务知识点。通过测试验证功能的完整性和可靠性,确保食品溯源信息的安全和准确。
原文地址: https://www.cveoy.top/t/topic/qENa 著作权归作者所有。请勿转载和采集!