JAVA 订阅推送快递100物流消息(二)

接上篇。本文主要是对快递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>
	

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值