|
|
@@ -453,29 +453,22 @@ class ShopController extends BaseController {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 推送订单到wst仓储系统
|
|
|
* @throws HttpException
|
|
|
* @throws \Exception
|
|
|
*/
|
|
|
public function actionLogistics()
|
|
|
{
|
|
|
$orderSn = \Yii::$app->request->get('sn');
|
|
|
- // TODO: Yii2框架BUG,使用find all left join时只返回一条数据
|
|
|
-// $order = OrderGoods::find()
|
|
|
-// ->alias('OG')
|
|
|
-// ->where('OG.ORDER_SN=:ORDER_SN', [':ORDER_SN' => $orderSn])
|
|
|
-// ->select('OG.ORDER_SN,OG.REAL_PRICE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV,O.*,U.REAL_NAME')
|
|
|
-// ->join('LEFT JOIN', Order::tableName() . ' AS O', 'OG.ORDER_SN=O.SN')
|
|
|
-// ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
|
|
|
-// ->asArray()
|
|
|
-// ->all();
|
|
|
-
|
|
|
- $sql = 'SELECT `OG`.`ORDER_SN`, `OG`.`REAL_PRICE`, `OG`.`BUY_NUMS`, `OG`.`SKU_CODE`, `OG`.`GOODS_TITLE`, `OG`.`REAL_PV`, `O`.*, `U`.`REAL_NAME` FROM `AR_ORDER_GOODS` `OG` LEFT JOIN `AR_ORDER` `O` ON OG.ORDER_SN=O.SN LEFT JOIN `AR_USER` `U` ON U.ID=O.USER_ID WHERE OG.ORDER_SN=:ORDER_SN';
|
|
|
- $order = Yii::$app->db->createCommand($sql)->bindValue(':ORDER_SN', $orderSn)->queryAll();
|
|
|
+ $order = Order::find()
|
|
|
+ ->where('ORDER_SN=:ORDER_SN', [':ORDER_SN' => $orderSn])
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
|
|
|
if (!$order) {
|
|
|
return static::notice('订单【' . $orderSn . '】不存在');
|
|
|
}
|
|
|
- if ($order[0]['SEND_AT'] > 0) {
|
|
|
+ if ($order['SEND_AT'] > 0) {
|
|
|
return static::notice('订单【' . $orderSn . '】不可重复推送');
|
|
|
}
|
|
|
|
|
|
@@ -505,11 +498,12 @@ class ShopController extends BaseController {
|
|
|
// 早5点推送,前一天0-24点的订单
|
|
|
$orderList = Order::find()
|
|
|
->where(
|
|
|
- '(CREATED_AT BETWEEN :CREATED_AT_START AND :CREATED_AT_END) AND STATUS=:STATUS AND PAY_TYPE=:PAY_TYPE',
|
|
|
+ '(CREATED_AT BETWEEN :CREATED_AT_START AND :CREATED_AT_END) AND STATUS=:STATUS AND SEND_AT=:SEND_AT AND PAY_TYPE=:PAY_TYPE',
|
|
|
[
|
|
|
':CREATED_AT_START' => $createdAtStart,
|
|
|
':CREATED_AT_END' => $createdAtEnd,
|
|
|
':STATUS' => \Yii::$app->params['orderStatus']['paid']['value'],
|
|
|
+ ':SEND_AT' => 0,
|
|
|
'PAY_TYPE' => 'online',
|
|
|
]
|
|
|
)
|
|
|
@@ -523,27 +517,27 @@ class ShopController extends BaseController {
|
|
|
// 发送wst仓库系统
|
|
|
$response = $logistics->createOrder($order);
|
|
|
LoggerTool::warning($response);
|
|
|
-// if ($response['success'] == 1) {
|
|
|
-// // 写入mongo
|
|
|
-// Tool::wstOrderCall($response['data']);
|
|
|
-// $orderSnSuccess[] = $order['SN'];
|
|
|
-// } else {
|
|
|
-// $orderSnFailed[] = $order['SN'];
|
|
|
-// }
|
|
|
+ if ($response['success'] == 1) {
|
|
|
+ // 写入mongo
|
|
|
+ Tool::wstOrderCall($response['data']);
|
|
|
+ $orderSnSuccess[] = $order['SN'];
|
|
|
+ } else {
|
|
|
+ $orderSnFailed[] = $order['SN'];
|
|
|
+ }
|
|
|
|
|
|
$orderSnSuccess[] = $response;
|
|
|
}
|
|
|
|
|
|
- return static::notice($orderSnSuccess);
|
|
|
|
|
|
// 更新db中订单推送成功状态
|
|
|
-// if (count($orderSnSuccess) > 0) {
|
|
|
-// Order::updateAll(['SEND_AT' => time()], 'SN IN (:SN)', [':SN' => implode("', '", $orderSnSuccess)]);
|
|
|
-// }
|
|
|
-// if (count($orderSnFailed) > 0) {
|
|
|
-// // 发送预警通知
|
|
|
-// }
|
|
|
+ if (count($orderSnSuccess) > 0) {
|
|
|
+ Order::updateAll(['SEND_AT' => time()], 'SN IN (:SN)', [':SN' => implode("', '", $orderSnSuccess)]);
|
|
|
+ }
|
|
|
+ if (count($orderSnFailed) > 0) {
|
|
|
+ // 发送预警通知
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
-// return static::notice(sprintf('wstLogisticsAutoSend success order count{%d}, orderSN[%s]; failed count{%d}, orderSN[%s]', count($orderSnSuccess), implode(', ', $orderSnSuccess), count($orderSnFailed), implode(', ', $orderSnFailed)));
|
|
|
+ return static::notice(sprintf('wstLogisticsAutoSend success order count{%d}, orderSN[%s]; failed count{%d}, orderSN[%s]', count($orderSnSuccess), implode(', ', $orderSnSuccess), count($orderSnFailed), implode(', ', $orderSnFailed)));
|
|
|
}
|
|
|
}
|