接上篇。本文主要是对快递100推送的物流消息进行解析,并存入数据库。
废话不多说,直接上代码。
Controller层:
package com.vue.controller;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.openservices.ons.api.Producer;
import com.hhz.basic.util.common.JacksonHelper;
import com.hhz.basic.util.common.JsonReturn;
import com.hhz.basic.util.common.ProducerDelayHelper;
import com.hhz.basic.util.common.PropertiesHelper;
import com.hhz.basic.util.common.SYSLog;
import com.hhz.entity.shop.GoodsUserOrder;
import com.hhz.entity.sms.NoticeRequest;
import com.hhz.entity.sms.NoticeResponse;
import com.hhz.entity.sms.ResultItem;
import com.hhz.service.WlOrderMgr;
@Controller
@RequestMapping(value = "/vue/addWlOrder")
public class AddWlOrderController extends AbstractController {
@Autowired
private WlOrderMgr wlOrderMgrImpl;
@Autowired
private Producer producer;
/**
* 推送
* @param request
* @return
*/
@RequestMapping(value="/addWlOrder.do",produces="application/json;charset=UTF-8", method = RequestMethod.POST)
@ResponseBody
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
NoticeResponse resp = new NoticeResponse();
resp.setResult(false);
resp.setReturnCode("500");
resp.setMessage("保存失败");
response.setCharacterEncoding("UTF-8");
try {
String param = request.getParameter("param");
//TODO 日志
SYSLog.PrintLogResult("物流反馈信息:\t"+param,"WlOrder");
System.out.println("推了-----------------");
// String param = "{\"status\":\"polling\",\"billstatus\":\"sending\",\"message\":\"到达目的城市\",\"lastResult\":{\"message\":\"ok\",\"nu\":\"806440020497397415\",\"ischeck\":\"0\",\"com\":\"yuantong\",\"status\":\"3\",\"data\":[{\"time\":\"2019-06-11 09:46:59\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 09:46:59\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 09:46:58\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 09:46:58\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 09:44:43\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 09:44:43\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 09:44:42\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 09:44:42\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 07:30:44\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 07:30:44\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 07:30:43\",\"context\":\"货物已到达【上海罗店营业部】\",\"ftime\":\"2019-06-11 07:30:43\",\"areaCode\":\"CN311313101000\",\"areaName\":\"上海,宝山区,宝山区,罗店镇\",\"status\":\"在途\"},{\"time\":\"2019-06-11 05:10:44\",\"context\":\"货物已完成分拣,离开【昆山金阳分拣中心】\",\"ftime\":\"2019-06-11 05:10:44\",\"areaCode\":\"CN320583000000\",\"areaName\":\"江苏,苏州市,昆山市\",\"status\":\"在途\"},{\"time\":\"2019-06-10 21:38:25\",\"context\":\"货物已到达【昆山金阳分拣中心】\",\"ftime\":\"2019-06-10 21:38:25\",\"areaCode\":\"CN320583000000\",\"areaName\":\"江苏,苏州市,昆山市\",\"status\":\"在途\"},{\"time\":\"2019-06-10 21:38:08\",\"context\":\"货物已到达【昆山金阳分拣中心】\",\"ftime\":\"2019-06-10 21:38:08\",\"areaCode\":\"CN320583000000\",\"areaName\":\"江苏,苏州市,昆山市\",\"status\":\"在途\"},{\"time\":\"2019-06-10 19:09:24\",\"context\":\"货物已完成分拣,离开【昆山千灯亚一分拣中心】\",\"ftime\":\"2019-06-10 19:09:24\",\"areaCode\":\"CN320583108000\",\"areaName\":\"江苏,苏州市,昆山市,千灯镇\",\"status\":\"在途\"},{\"time\":\"2019-06-10 19:08:24\",\"context\":\"货物已交付京东物流\",\"ftime\":\"2019-06-10 19:08:24\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-10 19:08:24\",\"context\":\"货物已到达【昆山千灯亚一分拣中心】\",\"ftime\":\"2019-06-10 19:08:24\",\"areaCode\":\"CN320583108000\",\"areaName\":\"江苏,苏州市,昆山市,千灯镇\",\"status\":\"在途\"}],\"state\":\"3\",\"condition\":\"F00\"}}";
// 保存推送的物流信息
wlOrderMgrImpl.addWLOrders(param);
resp.setResult(true);
resp.setReturnCode("200");
resp.setMessage("保存成功");
response.getWriter().print(JacksonHelper.toJSON(resp)); // 这里必须返回,否则认为失败,过30分钟又会重复推送。
return null;
} catch (Exception e) {
System.out.println("Wlorder");
e.printStackTrace();
resp.setMessage("保存失败");
response.getWriter().print(JacksonHelper.toJSON(resp));// 保存失败,服务端等30分钟会重复推送。
return null;
}
}
public static String params(){
NoticeRequest req = new NoticeRequest();
//req.setBillstatus("polling");
req.setMessage("到达");
req.setStatus("check");
req.getLastResult().setCom("shentong");
req.getLastResult().setCondition("F00");
req.getLastResult().setIscheck("0");
req.getLastResult().setNu("3707299775015");
//req.getLastResult().setState("0");
req.getLastResult().setState("2");
req.getLastResult().setStatus("200");
req.getLastResult().setMessage("ok");
ResultItem item = new ResultItem();
item.setContext("上海分拨中心/装件入车扫描 ");
item.setFtime("2012-08-28 16:33:19");
item.setTime("2012-08-28 16:33:19");
req.getLastResult().getData().add(item);
item = new ResultItem();
item.setContext("上海分拨中心/下车扫描");
item.setFtime("2012-08-27 23:22:42");
item.setTime("2012-08-27 23:22:42");
req.getLastResult().getData().add(item);
return JacksonHelper.toJSON(req);
}
public static void main(String[] args) {
String param = "{\"status\":\"polling\",\"billstatus\":\"sending\",\"message\":\"到达目的城市\",\"lastResult\":{\"message\":\"ok\",\"nu\":\"97496602871\",\"ischeck\":\"0\",\"com\":\"jd\",\"status\":\"200\",\"data\":[{\"time\":\"2019-06-11 09:46:59\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 09:46:59\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 09:46:58\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 09:46:58\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 09:44:43\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 09:44:43\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 09:44:42\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 09:44:42\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 07:30:44\",\"context\":\"货物已分配,等待配送\",\"ftime\":\"2019-06-11 07:30:44\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-11 07:30:43\",\"context\":\"货物已到达【上海罗店营业部】\",\"ftime\":\"2019-06-11 07:30:43\",\"areaCode\":\"CN311313101000\",\"areaName\":\"上海,宝山区,宝山区,罗店镇\",\"status\":\"在途\"},{\"time\":\"2019-06-11 05:10:44\",\"context\":\"货物已完成分拣,离开【昆山金阳分拣中心】\",\"ftime\":\"2019-06-11 05:10:44\",\"areaCode\":\"CN320583000000\",\"areaName\":\"江苏,苏州市,昆山市\",\"status\":\"在途\"},{\"time\":\"2019-06-10 21:38:25\",\"context\":\"货物已到达【昆山金阳分拣中心】\",\"ftime\":\"2019-06-10 21:38:25\",\"areaCode\":\"CN320583000000\",\"areaName\":\"江苏,苏州市,昆山市\",\"status\":\"在途\"},{\"time\":\"2019-06-10 21:38:08\",\"context\":\"货物已到达【昆山金阳分拣中心】\",\"ftime\":\"2019-06-10 21:38:08\",\"areaCode\":\"CN320583000000\",\"areaName\":\"江苏,苏州市,昆山市\",\"status\":\"在途\"},{\"time\":\"2019-06-10 19:09:24\",\"context\":\"货物已完成分拣,离开【昆山千灯亚一分拣中心】\",\"ftime\":\"2019-06-10 19:09:24\",\"areaCode\":\"CN320583108000\",\"areaName\":\"江苏,苏州市,昆山市,千灯镇\",\"status\":\"在途\"},{\"time\":\"2019-06-10 19:08:24\",\"context\":\"货物已交付京东物流\",\"ftime\":\"2019-06-10 19:08:24\",\"areaCode\":null,\"areaName\":null,\"status\":\"在途\"},{\"time\":\"2019-06-10 19:08:24\",\"context\":\"货物已到达【昆山千灯亚一分拣中心】\",\"ftime\":\"2019-06-10 19:08:24\",\"areaCode\":\"CN320583108000\",\"areaName\":\"江苏,苏州市,昆山市,千灯镇\",\"status\":\"在途\"}],\"state\":\"0\",\"condition\":\"F00\"}}";
JSONObject parseObject = JSONObject.parseObject(param);
System.out.println(parseObject.get("lastResult"));
}
}
Service层:
package com.hhz.service;
import java.util.List;
import java.util.Map;
import com.hhz.basic.util.common.JsonReturn;
import com.hhz.entity.sms.WlOrder;
public interface WlOrderMgr {
/**
* 保存物流信息
*
* @param wlOrder
*/
public JsonReturn saveWlOrder(WlOrder wlOrder) ;
/**
* 删除原来的推送信息
*
* @param orderId
*/
public JsonReturn delWlOrdersByOrderId(Integer orderId);
/**
* 推送新的物流信息
*
* @param ssl
* @param param
* @return
* @throws Exception
*/
public void addWLOrders(String param);
public List<Map<String,Object>> findWlOrderByOid(Integer orderId);
}
Service实现类:
package com.hhz.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.openservices.ons.api.Producer;
import com.hhz.basic.dao.DaoSupport;
import com.hhz.basic.util.common.JacksonHelper;
import com.hhz.basic.util.common.JsonReturn;
import com.hhz.basic.util.common.ProducerDelayHelper;
import com.hhz.basic.util.common.PropertiesHelper;
import com.hhz.entity.shop.GoodsOrder;
import com.hhz.entity.sms.NoticeRequest;
import com.hhz.entity.sms.Result;
import com.hhz.entity.sms.ResultItem;
import com.hhz.entity.sms.SubscriptionLogistics;
import com.hhz.entity.sms.WlOrder;
import com.hhz.service.OpenOrderService;
import com.hhz.service.WlOrderMgr;
@Service("wlOrderMgrImpl")
public class WlOrderMgrImpl implements WlOrderMgr {
@Resource(name = "daoSupport")
private DaoSupport dao;
@Autowired
private OpenOrderService openOrderService;
// @Autowired
// private Producer producer;
/**
* 保存物流信息
*
* @param wlOrder
*/
public JsonReturn saveWlOrder(WlOrder wlOrder) {
Integer save = (Integer)dao.save("WlorderMapper.saveWlOrder", wlOrder);
if(save !=1){
return new JsonReturn(JsonReturn.CODE_ERROR,"添加失败");
}
return new JsonReturn(JsonReturn.CODE_SUCCESS,"添加成功");
}
/**
* 删除原来的推送信息
*
* @param orderId
*/
public JsonReturn delWlOrdersByOrderId(Integer orderId) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("orderId", orderId);
Integer delete = (Integer)dao.delete("WlorderMapper.delWlOrdersByOrderId", map);
if(delete !=1){
return new JsonReturn(JsonReturn.CODE_ERROR,"添加失败");
}
return new JsonReturn(JsonReturn.CODE_SUCCESS,"添加成功");
}
/**
* 推送新的物流信息
*
* @param ssl
* @param param
* @return
* @throws Exception
*/
public synchronized void addWLOrders(String param){
JSONObject parseObject = JSONObject.parseObject(param);
JSONObject resultParam = parseObject.getJSONObject("lastResult");
ArrayList<ResultItem> list = new ArrayList<ResultItem>();
JSONArray jsonArray = resultParam.getJSONArray("data");
Result result = new Result();
result.setNu(resultParam.getString("nu"));
result.setCom(resultParam.getString("com"));
result.setMessage(resultParam.getString("message"));
result.setState(resultParam.getString("state"));
result.setStatus(resultParam.getString("status"));
result.setCondition(resultParam.getString("condition"));
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
ResultItem item = new ResultItem();
item.setContext(jsonObject.getString("context"));
item.setFtime(jsonObject.getString("ftime"));
item.setStatus(jsonObject.getString("status"));
item.setTime(jsonObject.getString("time"));
list.add(item);
result.getData().add(item);
// result.setData(list);
}
// 找出运单号包含几个订单
Map<String,Object> map = new HashMap<String,Object>();
map.put("deliveryNo", result.getNu());
List<Map<String,Object>> subscriptionLogistics = (List<Map<String,Object>>)dao.findForList("SubscriptionLogisticsMapper.getSysLogisticsBydeliveryNo", map);
// 遍历添加订单物流信息
for (int n = 0; n < subscriptionLogistics.size(); n++) {
SubscriptionLogistics ssl = new SubscriptionLogistics();
ssl.setSslId(Integer.parseInt(subscriptionLogistics.get(n).get("ssl_id").toString()));
ssl.setOrderId(Integer.parseInt(subscriptionLogistics.get(n).get("order_id").toString()));
//根据订单id查询订单编号
Map<String,Object> orMap = new HashMap<String,Object>();
orMap.put("orderId", subscriptionLogistics.get(n).get("order_id"));
List<Map<String,Object>> findForList = (List<Map<String, Object>>) dao.findForList("GoodsOrderManageMapper.getOrderById", orMap);
ssl.setOrderNo(String.valueOf(findForList.get(0).get("orderNo")));
ssl.setDeliveryNo(String.valueOf(subscriptionLogistics.get(n).get("delivery_no")));
ssl.setLogisticsId(Integer.parseInt(subscriptionLogistics.get(n).get("logistics_id").toString()));
ssl.setCom(String.valueOf(subscriptionLogistics.get(n).get("com")));
ssl.setPassId(Integer.parseInt(String.valueOf(subscriptionLogistics.get(n).get("pass_id"))));
ssl.setFromAdd(String.valueOf(subscriptionLogistics.get(n).get("from_add")));
ssl.setToAdd(String.valueOf(subscriptionLogistics.get(n).get("to_add")));
ssl.setCallbackUrl(String.valueOf(subscriptionLogistics.get(n).get("callback_url")));
ssl.setCtime(Long.valueOf(String.valueOf(subscriptionLogistics.get(n).get("ctime"))));
ssl.setScopeState(Integer.parseInt(String.valueOf(subscriptionLogistics.get(n).get("scope_state"))));
//SubscriptionLogistics ssl=(SubscriptionLogistics)subscriptionLogistics.get(n)
// 根据订单Id删除推送信息
this.delWlOrdersByOrderId(ssl.getOrderId());
// 处理快递结果
for (ResultItem ri : result.getData()) {
WlOrder wlOrder = new WlOrder(ssl);
wlOrder.setLogisticsInfo(ri.getContext());
wlOrder.setLogisticsTime(ri.getFtime());
wlOrder.setCtime(System.currentTimeMillis());
wlOrder.setMemo(ri.getStatus() == null ? "" : ri.getStatus());
wlOrder.setState(0);
wlOrder.setWlState(1);//快递单当前签收状态
this.saveWlOrder(wlOrder);
}
// 当推送信息到达终点站分站时 并且未发短信 发送短信给客户,提醒客服
/*if (result.getState().trim().equals(Result.STATE_SEND)) {
// 发送模板短信
// smsMoMgr.sendDirectMO(EncMobileUtils.decMobile(ssl.getOrders().getMobile()), "尊敬的会员" + ssl.getOrders().getContactName() + "您好,您所订购的产品已经到达" + (ssl.getOrders().getCityName().trim().equals("") ? "当地" : ssl.getOrders().getCityName()) + ",即将派送,请注意查收!");
// smsMoMgr.addTemplateSms(ssl.getOrders(), 460, "货到当地短信");
// 新增提醒给客服
this.addGoodsSendCrmPrompt(ssl.getOrderId());
// 更新推送记录,设置短信发送成功
ssl.setIsSendSms(SubscriptionLogistics.SEND_SMS_YES);
subscriptionLogisticsMgr.update(ssl);
} else if (result.getState().trim().equals(Result.STATE_ISSUE)) {
// 如果运单出现异常 如:客户拒收,快递无法联系到客户等,则通知客服。
// 新增提醒给客服
// 如果运单还没有发送过异常提醒则发送,否则不发送
if(ssl.getIsSendPrompt()==0){
this.addGoodsErrorCrmPrompt(ssl.getOrders());
ssl.setIsSendPrompt(1);
}
//如果推送异常时间没有值,则给其赋当前时间
if(ssl.getCallbackErrorDate() == -99){
ssl.setCallbackErrorDate(System.currentTimeMillis());
}
subscriptionLogisticsMgr.update(ssl);
}
// 如果是已签收,则更改订单
if (nReq.getLastResult().getState().equals("3")) {
erpSaleMgr.editReceiveSale(list.get(n).getOrders().getOrderNo(), System.currentTimeMillis(), "系统处理:已签收");
}*/
// 如果是投递失败,则更改订单
// if (nReq.getLastResult().getState().equals(Result.STATE_RETURNED)) {
// Orders order = erpSaleMgr.getOrders(list.get(n).getOrders().getOrderNo());
// //erp投递失败
// ErpSale erpSale = erpSaleMgr.getErpSaleByRefBillNo(order.getOrderNo());
// erpSaleMgr.updateErpSaleBackLogistics(erpSale.getSaleId(), null,"");
// }
}
//已签收
//修改订单状态
if("3".equals(result.getState())){
long completeTime = System.currentTimeMillis();
Map<String,Object> updMap = new HashMap<String,Object>();
updMap.put("orderStatus", 8);
updMap.put("logisticsNo", result.getNu());
updMap.put("completeTime", completeTime);
dao.update("GoodsOrderManageMapper.updOrderStatusByNo",updMap);
}
//投递失败
if("2".equals(result.getState()) || "4".equals(result.getState()) || "6".equals(result.getState())){
long completeTime = System.currentTimeMillis();
Map<String,Object> updMap = new HashMap<String,Object>();
updMap.put("orderStatus", 20);
updMap.put("logisticsNo", result.getNu());
updMap.put("completeTime", completeTime);
dao.update("GoodsOrderManageMapper.updOrderStatusByNo",updMap);
}
return null;
}
@SuppressWarnings("unchecked")
public List<Map<String,Object>> findWlOrderByOid(Integer orderId) {
Map<String,Object> map =new HashMap<String,Object>();
map.put("orderId", orderId);
return (List<Map<String,Object>>)dao.findForList("WlorderMapper.findWlOrderByOid", map);
}
/**
* 新增提醒给客服,告诉客服客户的货物已到当地
*
* @param order
*/
/*private void addGoodsSendCrmPrompt(Orders order) {
Connection conn = this.getHibernateTemplate().getSessionFactory().getCurrentSession().connection();
String sql = "insert into crm_prompt(title,content,prompt_date,user_id,pass_id,created,state,remark,advance_time) values(?,?,?,?,?,?,?,?,?)";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "客户货物已到当地");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ps.setString(2, "订单编号为:" + order.getOrderNo() + "的客户货物已到当地,请及时跟单!!!");
ps.setString(3, format.format(new Date()).toString());
ps.setLong(4, order.getUsers().getUserId());
ps.setLong(5, order.getServicerPassId());
ps.setLong(6, System.currentTimeMillis());
ps.setInt(7, 0);
ps.setString(8, "-");
ps.setInt(9, 1);
ps.execute();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
*//**
* 新增提醒给客服,告诉客服客户的货物接收异常
*
* @param order
*//*
private void addGoodsErrorCrmPrompt(Orders order) {
Connection conn = this.getHibernateTemplate().getSessionFactory().getCurrentSession().connection();
String sql = "insert into crm_prompt(title,content,prompt_date,user_id,pass_id,created,state,remark,advance_time) values(?,?,?,?,?,?,?,?,?)";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "客户货物接收异常");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ps.setString(2, "订单编号为:" + order.getOrderNo() + "的客户货物没有正常接收,客户拒收了或者联系不上客户,请查看物流信息并及时跟单!!!");
ps.setString(3, format.format(new Date()).toString());
ps.setLong(4, order.getUsers().getUserId());
ps.setLong(5, order.getServicerPassId());
ps.setLong(6, System.currentTimeMillis());
ps.setInt(7, 0);
ps.setString(8, "-");
ps.setInt(9, 1);
ps.execute();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}*/
}
mybatis.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="WlorderMapper">
<sql id="Base_Column_List" >
wl_id, order_id, order_no, logistics_id, logistics_info, pass_id,
pass_name, ctime, memo, logistics_time, state, wl_state
</sql>
<insert id="saveWlOrder" parameterType="WlOrder" >
insert into t_wl_order
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="wlId != null" >
wl_id,
</if>
<if test="orderId != null" >
order_id,
</if>
<if test="orderNo != null" >
order_no,
</if>
<if test="logisticsId != null" >
logistics_id,
</if>
<if test="logisticsInfo != null" >
logistics_info,
</if>
<if test="passId != null" >
pass_id,
</if>
<if test="passName != null" >
pass_name,
</if>
<if test="ctime != null" >
ctime,
</if>
<if test="memo != null" >
memo,
</if>
<if test="logisticsTime != null" >
logistics_time,
</if>
<if test="state != null" >
state,
</if>
<if test="wlState != null" >
wl_state,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="wlId != null" >
#{wlId,jdbcType=BIGINT},
</if>
<if test="orderId != null" >
#{orderId,jdbcType=BIGINT},
</if>
<if test="orderNo != null" >
#{orderNo,jdbcType=VARCHAR},
</if>
<if test="logisticsId != null" >
#{logisticsId,jdbcType=BIGINT},
</if>
<if test="logisticsInfo != null" >
#{logisticsInfo,jdbcType=VARCHAR},
</if>
<if test="passId != null" >
#{passId,jdbcType=BIGINT},
</if>
<if test="passName != null" >
#{passName,jdbcType=VARCHAR},
</if>
<if test="ctime != null" >
#{ctime,jdbcType=BIGINT},
</if>
<if test="memo != null" >
#{memo,jdbcType=VARCHAR},
</if>
<if test="logisticsTime != null" >
#{logisticsTime,jdbcType=VARCHAR},
</if>
<if test="state != null" >
#{state,jdbcType=SMALLINT},
</if>
<if test="wlState != null" >
#{wlState,jdbcType=SMALLINT},
</if>
</trim>
</insert>
<delete id="delWlOrdersByOrderId" parameterType="Map" >
delete from t_wl_order
where order_id = #{orderId}
</delete>
<select id="findWlOrderByOid" resultType="Map" parameterType="Map" >
select
<include refid="Base_Column_List" />
from t_wl_order
where order_id = #{orderId}
</select>
</mapper>