Forráskód Böngészése

【海凌科】【新版物流发货二开】【按照已转数判断订单发货状态】

wuyx 1 éve
szülő
commit
624d64986a

+ 6 - 0
src/main/java/com/uas/eis/controller/ErpController.java

@@ -22,4 +22,10 @@ public class ErpController {
     public Map<String, Object> modifyOrderLogistics(String master, Integer id,String emCode){
         return saleOutService.modifyOrderLogistics(master,id,emCode);
     };
+
+    @RequestMapping(value="/erp/getOrderDEtail",method= RequestMethod.GET)
+    @ResponseBody
+    public String modifyOrderLogistics(String tid){
+        return saleOutService.getOrderDEtail(tid);
+    };
 }

+ 27 - 0
src/main/java/com/uas/eis/entity/enums/OrderStatus.java

@@ -0,0 +1,27 @@
+package com.uas.eis.entity.enums;
+/*
+* 淘宝订单状态枚举类
+* */
+public enum OrderStatus {
+    WAIT_BUYER_PAY("等待买家付款"),
+    WAIT_SELLER_SEND_GOODS("等待卖家发货"),//即:买家已付款
+    SELLER_CONSIGNED_PART("卖家部分发货"),
+    WAIT_BUYER_CONFIRM_GOODS("等待买家确认收货"),//即:卖家已发货
+    TRADE_BUYER_SIGNED("买家已签收"),//,货到付款专用
+    TRADE_FINISHED("交易成功"),
+    TRADE_CLOSED("付款以后用户退款成功"),//交易自动关闭
+    TRADE_CLOSED_BY_TAOBAO("交易被淘宝关闭"),//付款以前,卖家或买家主动关闭交易
+    TRADE_NO_CREATE_PAY("没有创建外部交易"),//没有创建外部交易(支付宝交易) 没有创建支付宝交易
+    WAIT_PRE_AUTH_CONFIRM("余额宝0元购合约中"),
+    PAY_PENDING("外卡支付付款确认中"),//国际信用卡支付付款确认中
+    ALL_WAIT_PAY("所有买家未付款的交易"),//(包含:WAIT_BUYER_PAY、TRADE_NO_CREATE_PAY)
+    ALL_CLOSED("所有关闭的交易"),//(包含:TRADE_CLOSED、TRADE_CLOSED_BY_TAOBAO)
+    PAID_FORBID_CONSIGN("已付款但是处于禁止发货");//该状态代表订单已付款但是处于禁止发货状态
+
+    OrderStatus(String description) {
+        this.description = description;
+    }
+
+    String description;
+
+}

+ 20 - 1
src/main/java/com/uas/eis/service/SaleOutService.java

@@ -3,7 +3,26 @@ package com.uas.eis.service;
 import java.util.Map;
 
 public interface SaleOutService {
+    /*
+     * alibaba.ascp.logistics.offline.send( 自己联系物流发货 )
+     * 用户调用该接口可实现自己联系发货,使用该接口发货,交易订单状态会直接变成卖家已发货
+     * https://open.taobao.com/api.htm?docId=54934&docType=2&scopeId=23401
+     * */
     Map<String,Object> orderSend(String master,Integer id,String emCode);
-
+    /*
+     * 修改物流公司和运单号
+     * alibaba.ascp.logistics.consign.modify( 修改物流公司和运单号 )
+     * https://open.taobao.com/api.htm?docId=65697&docType=2&scopeId=23401
+     * */
     Map<String, Object> modifyOrderLogistics(String master, Integer id,String emCode);
+    /*
+     * 订单详情
+     * taobao.trade.fullinfo.get
+     * https://open.taobao.com/api.htm?docId=54&docType=2
+     * */
+    String getOrderDEtail(String tid);
+    /*
+    *
+    * taobao.logistics.online.confirm
+    * */
 }

+ 39 - 3
src/main/java/com/uas/eis/serviceImpl/SaleOutServiceImpl.java

@@ -1,12 +1,15 @@
 package com.uas.eis.serviceImpl;
 
 
+import com.taobao.api.ApiException;
 import com.taobao.api.DefaultTaobaoClient;
 import com.taobao.api.TaobaoClient;
 import com.taobao.api.request.AlibabaAscpLogisticsConsignResendRequest;
 import com.taobao.api.request.AlibabaAscpLogisticsOfflineSendRequest;
+import com.taobao.api.request.TradeFullinfoGetRequest;
 import com.taobao.api.response.AlibabaAscpLogisticsConsignResendResponse;
 import com.taobao.api.response.AlibabaAscpLogisticsOfflineSendResponse;
+import com.taobao.api.response.TradeFullinfoGetResponse;
 import com.uas.eis.core.config.SpObserver;
 import com.uas.eis.core.config.TaoBaoConfig;
 import com.uas.eis.dao.BaseDao;
@@ -96,10 +99,10 @@ public class SaleOutServiceImpl implements SaleOutService {
                 order.put("piid",id);
                 order.put("sessionKey",sessionMap.get(tbopenuid));
                 SqlRowList orderDetRowList = baseDao.queryForRowSet("SELECT p.* FROM ( " +
-                        "    SELECT sd_oid,sd_qty,nvl(sd_sendqty,0) sendqty,sum(pd_outqty) pd_outqty " +
+                        "    SELECT sd_oid,sd_qty,nvl(sd_yqty,0) sendqty,sum(pd_outqty) pd_outqty " +
                         "    FROM PRODIODETAIL left join saledetail on sd_code = pd_ordercode and sd_detno = pd_orderdetno " +
                         "    WHERE pd_piid = " + id + " and pd_ordercode ='"+ordercode+"' and SD_OID>0 and nvl(pd_dockingstatus,' ') <> '对接成功' " +
-                        "    group by sd_oid,sd_qty,nvl(sd_sendqty,0) " +
+                        "    group by sd_oid,sd_qty,nvl(sd_yqty,0) " +
                         "    order by min(pd_pdno) " +
                         ") P ");
                 if (orderDetRowList.hasNext()) {
@@ -108,7 +111,7 @@ public class SaleOutServiceImpl implements SaleOutService {
                         errorMsg.append("订单号:").append(ordercode).append(",失败原因: ").append(sendRes.get("message"));
                     }
                 }else {
-                    baseDao.execute("update PRODIODETAIL set pd_dockingstatus='对接成功' where pd_piid = " + id + " and pd_ordercode = '" + ordercode + "'");
+                    baseDao.execute("update PRODIODETAIL set pd_dockingstatus='对接成功',pd_dockingerror=NULL where pd_piid = " + id + " and pd_ordercode = '" + ordercode + "'");
                 }
             }
         }else {
@@ -212,6 +215,39 @@ public class SaleOutServiceImpl implements SaleOutService {
         logger.info(String.format("modifyOrderLogistics-End:master %s id %s", master, id));
         return retMap;
     }
+/*
+* 订单详情
+* taobao.trade.fullinfo.get
+* https://open.taobao.com/api.htm?docId=54&docType=2
+* */
+    @Override
+    public String getOrderDEtail(String tid) {
+        String sessionKey = "";
+        SqlRowList sessionList = baseDao.queryForRowSet("select tb_code,tb_openuid from sale left join tbauthorization on tb_openuid = SA_TBOPENUID where validflag = 1 and sa_code = '"+tid+"'");
+        if (sessionList.next()) {
+            sessionKey = sessionList.getGeneralString("tb_code");
+        } else {
+            System.out.println("无有效session,请重新授权淘宝店铺");
+            return null;
+        }
+        String url = taoBaoConfig.getServerUrl();
+        String appkey = taoBaoConfig.getAppKey();
+        String secret = taoBaoConfig.getAppSecret();
+        TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
+        TradeFullinfoGetRequest req = new TradeFullinfoGetRequest();
+        req.setFields("tid,type,status,payment,orders");
+        //promotion_details 	优惠详情
+        req.setTid(Long.valueOf(tid));
+        req.setIncludeOaid("include_oaid");
+        TradeFullinfoGetResponse rsp = null;
+        try {
+            rsp = client.execute(req, sessionKey);
+        } catch (ApiException e) {
+            e.printStackTrace();
+        }
+        System.out.println(rsp.getBody());
+        return rsp.getBody();
+    }
 
     private Map<String, Object> sendToTB(Map<String, Object> order , List<Map<String, Object>> orderList) {
         Map<String, Object> resMap = new HashMap<>();