查快递并保存信息方法
来源:互联网 发布:人工智能优缺点 编辑:程序博客网 时间:2024/05/04 13:05
参数是快递单号,调用快递信息查询接口,返回快递详细信息。
数据持久化操作通过单独的现成进行。
/**
* 快递信息查询方法
* @param expressCode 快递单号
* @param waybillService 快递基本信息服务类
* @param waybillDescService 快递详情服务类
* @param openId 微信用户编号
* @return
* @author liuwy
*/
public DataMessage search(String expressCode, String openId){
DataMessage dm = new DataMessage();
if (expressCode == null || expressCode == "") {
dm.setResult(1);
return dm;
}
//调用快递查询接口,查快递信息
AgentKdapiService agentKdapiService = (AgentKdapiService)ToolSpring.getBean("agentKdapiService");
TokenService tokenService = (TokenService)ToolSpring.getBean("tokenService");
String result = agentKdapiService.query(expressCode);
JSONObject json = JSONObject.fromObject(result);
// 物流状态
int status = Integer.parseInt(json.getString("status"));
// 物流信息
String data = json.getString("data");
// 存放快递公司信息
Carrier carrier = new Carrier();
if (json.containsKey("carrierCode")) {
carrier.setCarrierCode(json.getString("carrierCode"));
List<Carrier> allc = CarriersConstant.ALL_CARRIERS2;
if (allc!=null && !allc.isEmpty()) {
for (Carrier c : allc) {
if (c.getCarrierCode().equals(carrier.getCarrierCode())) {
carrier.setCarrierId(c.getCarrierId());
carrier.setCarrierName(c.getCarrierName());
break;
}
}
}
}
// 查不到数据的情况下返回result为1
if (data.equals("[]")) {
dm.setResult(1);
} else {
dm.setResult(0);
}
dm.setMessage(null);
dm.setData(data);
// 线程执行增加删除修改
Waybill add = new Waybill();
add.setUserId(0L);
add.setServiceStatus(status); // 物流状态
add.setServiceStatusDesc(data);// 物流信息
add.setCarrierId(carrier.getCarrierId());// 快递公司id
add.setCarrierName(carrier.getCarrierName());// 快递公司名称
add.setCarrierCode(carrier.getCarrierCode());// 快递公司code
add.setThirdId(openId);// 微信查询人id
add.setWaybillType(3);// 类型
add.setExpressCode(expressCode);// 快递单号
// 调用线程池执行增加,需改操作
WaybillService waybillService = (WaybillService)ToolSpring.getBean("waybillService");
WaybillDescService waybillDescService = (WaybillDescService)ToolSpring.getBean("waybillDescService");
try {
waybill_ex.execute(new WaybillRunnable(add, waybillService,
waybillDescService));
} catch (Exception e) {
e.printStackTrace();
}
//发送模板消息
JSONArray waybillDescArray = JSONArray.fromObject(data);
String firstDesc = null;
if(status >1){
firstDesc = JSONObject.fromObject(waybillDescArray.get(0)).getString("time")+" "+JSONObject.fromObject(waybillDescArray.get(0)).getString("content");
}else{
firstDesc = "您的运单暂时没有最新物流信息";
}
String jsonMsg = TemplateUtil.makeRouteMessage(openId, "Xv5UHt9vkr1d3zXUa4OJyo8uTUzXmp_SsJRzYDGNZ38", "http://yst.tunnel.qydev.com/wechat/waybill/toSearchDetails.action?expressCode="+expressCode, "#ff6600", carrier.getCarrierName(), expressCode, firstDesc+"");
Token t = tokenService.queryById(1L);
TemplateUtil.sendTemplateMessage(t.getWxKey(), jsonMsg);
return dm;
}
阅读全文
0 0
- 查快递并保存信息方法
- Jquery get 方法跨域 查快递物流信息
- 并查集-boj468 & boj474 送快递问题
- .NET获取快递100提供的查询快递信息的方法
- java调用物流接口方法(爱查快递;注:底下id和secret在爱查快递中申请获取)
- 免费快递物流轨迹信息查询接口API对接方法
- 并查集(保存分组结果)
- 保存信息的方法比较
- 利用快递100api查询快递信息
- Android快递单号查询快递状态信息
- 用session保存信息并读出
- httpclient4 取得cookie信息并保存
- httpclient4 取得cookie信息并保存
- httpclient4 取得cookie信息并保存
- 修改配置信息,并保存到文件
- httpclient4 取得cookie信息并保存
- logcat 信息捕捉并保存为文本
- Java 数据保存与读取,保存数据信息并加密
- 王道霸道
- layer-list -- layer-list的基本使用介绍
- website architecture
- website project team member 角色及开发过程概念图
- 偏执狂
- 查快递并保存信息方法
- web开发workflow
- npm和bower
- 最近5年133个Java面试问题列表
- content management system
- 领导修炼
- 学而习之,成就学习
- some resource favor
- 如何在linux中从源代码编译安装nodejs?