rabin 1 年間 前
コミット
8871999a59
1 ファイル変更67 行追加8 行削除
  1. 67 8
      src/Ship.php

+ 67 - 8
src/Ship.php

@@ -24,24 +24,83 @@ class Ship
 	}
 
 	# 发货信息录入
-	public function add($callback, $project_id = 1)
+	public function add($order_id, $project_id = 1)
 	{
-		return Core::run($project_id, 'ship', 'ship.addParam', '', 'wechat_applet', $callback, true);
+		return Core::run($project_id, 'ship', 'ship.addParam', '', 'wechat_applet', $order_id, true);
 	}
 
-	public function addParam($callback)
+	public function addParam($order_id)
 	{
-		return $callback();
+		$config = Dever::db('pay/account')->find(5);
+		$order = Dever::db('order/sell')->find($order_id);
+		$order_goods = Dever::db('order/sell_goods')->select(array('order_id' => $order_id));
+		$state = true;
+		# 检测是否都发完货了
+		if ($order_goods) {
+			foreach ($order_goods as $k => $v) {
+				if ($v['status'] != 2) {
+					$state = false;
+				}
+			}
+		} else {
+			$state = false;
+		}
+		if (!$state) {
+			return false;
+		}
+		$order_delivery = Dever::db('order/sell_delivery')->select(array('order_id' => $order_id));
+		if (!$order_delivery) {
+			return false;
+		}
+		$param = array();
+		$param['order_key'] = array
+		(
+			'order_number_type' => 1,
+			'mchid' => $config['mchid'],
+			'out_trade_no' => $order['order_num'],
+		);
+		$param['logistics_type'] = 1;
+		$param['delivery_mode'] = 1;
+		$param['shipping_list'] = array();
+		$param['upload_time'] = Dever::udate();
+		$param['payer']['openid'] = Dever::load('user/lib/applet')->getOpenid($order['uid']);
+		$address = Dever::load('user/lib/address')->get($order['id'], 'order/sell', $order['uid'], $order['address_id']);
+		foreach ($order_delivery as $k => $v) {
+			$express = Dever::db('goods/express')->find($v['base']);
+			$info = explode(',', $v['info']);
+			if ($v['order_goods_id']) {
+				$order_goods = Dever::db('order/sell_goods')->find($v['order_goods_id']);
+				$goods = Dever::load('goods/lib/info.getBaseInfo', $order_goods['goods_id'], $order_goods['sku_id']);
+				$goods_name = $goods['aname'];
+			} else {
+				$goods_name = $order['name'];
+			}
+			foreach ($info as $k1 => $v1) {
+				$send = array();
+				$send['tracking_no'] = $v1;
+				$send['express_company'] = $express['wechat_number'];
+				$send['item_desc'] = $goods_name;
+				$send['contact']['receiver_contact'] = Dever::mobile($address['phone']);
+				$param['shipping_list'][] = $send;
+			}
+		}
+		return $param;
 	}
 
 	# 发货信息确认
-	public function act($callback, $project_id = 1)
+	public function act($order_id, $project_id = 1)
 	{
-		return Core::run($project_id, 'ship_confirm', 'ship.actParam', '', 'wechat_applet', $callback, true);
+		return Core::run($project_id, 'ship_confirm', 'ship.actParam', '', 'wechat_applet', $order_id, true);
 	}
 
-	public function actParam($callback)
+	public function actParam($order_id)
 	{
-		return $callback();
+		$config = Dever::db('pay/account')->find(5);
+		$order = Dever::db('order/sell')->find($order_id);
+		$param = array();
+		$param['merchant_id'] = $config['mchid'];
+		$param['merchant_trade_no'] = $order['order_num'];
+		$param['received_time'] = time();
+		return $param;
 	}
 }