|
|
@@ -14,6 +14,7 @@ use bizGhs\admin\classes\AdminClass;
|
|
|
use bizGhs\custom\classes\CustomClass;
|
|
|
use bizGhs\stat\classes\StatOrderCountClass;
|
|
|
use bizGhs\stat\classes\StatYjClass;
|
|
|
+use bizHd\purchase\classes\PurchaseClass;
|
|
|
use bizHd\stat\classes\StatIncomeClass;
|
|
|
use bizHd\stat\classes\StatOrderClass;
|
|
|
use common\components\dict;
|
|
|
@@ -118,8 +119,10 @@ class OrderClass extends BaseClass
|
|
|
//将花店每月的总 订单数作为编号
|
|
|
$data['sendNum'] = StatOrderCountClass::addOrder($month, $sjId);
|
|
|
$data['sendTime'] = isset($data['sendTime']) && !empty($data['sendTime']) ? $data['sendTime'] : '0000-00-00 00:00:00';
|
|
|
- //订单30分钟后过期
|
|
|
- $data['deadline'] = date("Y-m-d H:i:s", (time() + 1800));
|
|
|
+ //订单有效期
|
|
|
+ $validTime = dict::getDict('sale_purchase_order_valid');
|
|
|
+ $current = time() + $validTime;
|
|
|
+ $data['deadline'] = date("Y-m-d H:i:s", $current);
|
|
|
$data['status'] = self::ORDER_STATUS_UN_PAY;
|
|
|
|
|
|
//计算总重量(kg)
|
|
|
@@ -150,9 +153,9 @@ class OrderClass extends BaseClass
|
|
|
}
|
|
|
|
|
|
//根据订单编号查询 ssh 2021.19
|
|
|
- public static function getByOrderSn($orderSn)
|
|
|
+ public static function getByOrderSn($orderSn, $returnObj = false)
|
|
|
{
|
|
|
- return self::getByCondition(['orderSn' => $orderSn]);
|
|
|
+ return self::getByCondition(['orderSn' => $orderSn], $returnObj);
|
|
|
}
|
|
|
|
|
|
//订单列表 ssh 2021.1.19
|
|
|
@@ -351,17 +354,6 @@ class OrderClass extends BaseClass
|
|
|
util::fail('没有权限操作的订单');
|
|
|
}
|
|
|
|
|
|
- //获取订单详情 ssh 2021.1.21
|
|
|
- public static function getOrderInfo($id, $showButton = false, $showItem = false, $showExpress = false, $isList = false)
|
|
|
- {
|
|
|
- $info = self::getById($id);
|
|
|
- if (empty($info)) {
|
|
|
- util::fail('没有找到订单');
|
|
|
- }
|
|
|
- $respond = self::groupOrder([$info], $showButton, $showItem, $showExpress, $isList);
|
|
|
- return current($respond);
|
|
|
- }
|
|
|
-
|
|
|
//订单到期未付款未确认的订单置成取消状态 ssh 2021.1.23
|
|
|
public static function setExpire($order)
|
|
|
{
|
|
|
@@ -374,30 +366,32 @@ class OrderClass extends BaseClass
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //确认送达 ssh 2021.3.4
|
|
|
- public static function reach($order)
|
|
|
- {
|
|
|
- if ($order['status'] != OrderClass::ORDER_STATUS_SENDING) {
|
|
|
- util::fail('订单没有在配送状态');
|
|
|
- }
|
|
|
- $id = $order['id'];
|
|
|
- self::updateById($id, ['status' => self::ORDER_STATUS_COMPLETE, 'totalFlow' => OrderClass::TOTAL_FLOW, 'currentFlow' => OrderClass::TOTAL_FLOW]);
|
|
|
- OrderSendClass::reach($order);
|
|
|
- }
|
|
|
-
|
|
|
//快递送 ssh 2021.3.16
|
|
|
public static function thirdSend($order, $expressInfo)
|
|
|
{
|
|
|
- if ($order['status'] == self::ORDER_STATUS_UN_PAY) {
|
|
|
+ if ($order->status == self::ORDER_STATUS_UN_PAY) {
|
|
|
util::fail('订单未付款');
|
|
|
}
|
|
|
- if ($order['status'] != self::ORDER_STATUS_UN_SEND) {
|
|
|
+ if ($order->status != self::ORDER_STATUS_UN_SEND) {
|
|
|
util::fail('不是待配送状态');
|
|
|
}
|
|
|
- $id = $order['id'];
|
|
|
+ $id = $order->id;
|
|
|
$expressId = $expressInfo['expressId'] ?? 1;
|
|
|
$expressName = $expressInfo['deliveryName'] ?? '达达';
|
|
|
- self::updateById($id, ['status' => self::ORDER_STATUS_SENDING, 'sendType' => self::SEND_TYPE_THIRD, 'expressId' => $expressId]);
|
|
|
+
|
|
|
+ $order->status = self::ORDER_STATUS_SENDING;
|
|
|
+ $order->sendType = self::SEND_TYPE_THIRD;
|
|
|
+ $order->expressId = $expressId;
|
|
|
+ $order->save();
|
|
|
+
|
|
|
+ $shopId = $order->shopId;
|
|
|
+ $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
|
|
|
+ if (empty($shop)) {
|
|
|
+ util::fail('没有找到门店');
|
|
|
+ }
|
|
|
+ $shop->unSendOrder -= 1;
|
|
|
+ $shop->sendingOrder += 1;
|
|
|
+ $shop->save();
|
|
|
|
|
|
$express = OrderExpressClass::getByCondition(['orderId' => $id]);
|
|
|
if (!empty($express)) {
|
|
|
@@ -407,10 +401,8 @@ class OrderClass extends BaseClass
|
|
|
//达达
|
|
|
$dadaRes = DadaExpressServices::addOrder($order);
|
|
|
|
|
|
-
|
|
|
- $orderSn = $order['orderSn'];
|
|
|
- $sjId = $order['merchantId'] ?? 0;
|
|
|
-
|
|
|
+ $orderSn = $order->orderSn;
|
|
|
+ $sjId = $order->merchantId ?? 0;
|
|
|
|
|
|
/*
|
|
|
$getInfo = ExpressClass::getExpressInfo($expressId);
|
|
|
@@ -426,7 +418,7 @@ class OrderClass extends BaseClass
|
|
|
'orderSn' => $orderSn,
|
|
|
'sjId' => $sjId,
|
|
|
'expressId' => $expressId,
|
|
|
- 'sendTime' => strtotime($order['sendTime']),
|
|
|
+ 'sendTime' => strtotime($order->sendTime),
|
|
|
'cost' => $dadaRes['fee'],
|
|
|
'distance' => $dadaRes['distance'],
|
|
|
'status' => 1,
|
|
|
@@ -442,38 +434,28 @@ class OrderClass extends BaseClass
|
|
|
'status' => 2,
|
|
|
'tip' => 0,
|
|
|
];
|
|
|
- return $respond;
|
|
|
|
|
|
+ //采购单变成已发货
|
|
|
+ $purchaseId = $order->purchaseId ?? 0;
|
|
|
+ PurchaseClass::sending($purchaseId);
|
|
|
+
|
|
|
+ return $respond;
|
|
|
}
|
|
|
|
|
|
//本店送 ssh 2021.1.24
|
|
|
public static function selfSend($info)
|
|
|
{
|
|
|
- if ($info['status'] == self::ORDER_STATUS_UN_PAY) {
|
|
|
+ if ($info->status == self::ORDER_STATUS_UN_PAY) {
|
|
|
util::fail('订单未付款');
|
|
|
}
|
|
|
- if ($info['status'] != self::ORDER_STATUS_UN_SEND) {
|
|
|
+ if ($info->status != self::ORDER_STATUS_UN_SEND) {
|
|
|
util::fail('不是待配送状态');
|
|
|
}
|
|
|
- $id = $info['id'];
|
|
|
- self::updateById($id, ['status' => self::ORDER_STATUS_SENDING, 'sendType' => self::SEND_TYPE_MYSELF,]);
|
|
|
- OrderSendClass::selfSend($info);
|
|
|
- }
|
|
|
-
|
|
|
- //自取和免发货流程的处理 ssh 2021.1.24
|
|
|
- public static function withoutSend($order)
|
|
|
- {
|
|
|
- $id = $order->id ?? 0;
|
|
|
- if (isset($order->status) == false) {
|
|
|
- util::fail('没有订单状态');
|
|
|
- }
|
|
|
- if ($order->status == self::ORDER_STATUS_COMPLETE) {
|
|
|
- util::fail('订单已完成');
|
|
|
- }
|
|
|
+ $info->status = self::ORDER_STATUS_SENDING;
|
|
|
+ $info->sendType = self::SEND_TYPE_MYSELF;
|
|
|
+ $info->save();
|
|
|
|
|
|
- //自取订单,订单直接完成。【现在有三个地方有订单完成操作】,找不到请搜索【】内关键词。
|
|
|
- $currentOrder = self::getById($id, true);
|
|
|
- $shopId = $order->shopId ?? 0;
|
|
|
+ $shopId = $info->shopId;
|
|
|
$shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
|
|
|
if (empty($shop)) {
|
|
|
util::fail('没有找到门店');
|
|
|
@@ -482,107 +464,24 @@ class OrderClass extends BaseClass
|
|
|
$shop->sendingOrder += 1;
|
|
|
$shop->save();
|
|
|
|
|
|
- self::complete($currentOrder, $shop, self::TOTAL_FLOW, OrderClass::TOTAL_FLOW, self::SEND_TYPE_NO);
|
|
|
-
|
|
|
- OrderSendClass::withoutSend($order);
|
|
|
-
|
|
|
- return self::TOTAL_FLOW;
|
|
|
+ OrderSendClass::selfSend($info);
|
|
|
+ //采购单变成已发货
|
|
|
+ $purchaseId = $info->purchaseId ?? 0;
|
|
|
+ PurchaseClass::sending($purchaseId);
|
|
|
}
|
|
|
|
|
|
//订单完成 ssh 2020.3.12
|
|
|
- public static function complete($order, $shop, $currentFlow, $totalFlow = false, $sendType = false)
|
|
|
+ public static function complete($order, $shop)
|
|
|
{
|
|
|
$order->status = OrderClass::ORDER_STATUS_COMPLETE;
|
|
|
- $order->currentFlow = $currentFlow;
|
|
|
- if (isset($totalFlow)) {
|
|
|
- $order->totalFlow = $totalFlow;
|
|
|
- }
|
|
|
- if (isset($sendType)) {
|
|
|
- $order->sendType = $sendType;
|
|
|
- }
|
|
|
+ $order->currentFlow = self::TOTAL_FLOW;
|
|
|
+ $order->totalFlow = self::TOTAL_FLOW;
|
|
|
$order->save();
|
|
|
|
|
|
$shop->finishOrder += 1;
|
|
|
$shop->sendingOrder -= 1;
|
|
|
$shop->save();
|
|
|
- }
|
|
|
-
|
|
|
- public static function payAfter($order, $payWay)
|
|
|
- {
|
|
|
- if (isset($order->status) == false) {
|
|
|
- util::fail('没有订单状态');
|
|
|
- }
|
|
|
- if ($order->status != self::ORDER_STATUS_UN_PAY) {
|
|
|
- util::fail('重复操作');
|
|
|
- }
|
|
|
- if (isset($order->debt) == false) {
|
|
|
- util::fail('订单有问题,没有欠款项');
|
|
|
- }
|
|
|
- /**门店资产变化**/
|
|
|
- $amount = $order->actPrice ?? 0.00;
|
|
|
- $currentShopId = $order->shopId ?? 0;
|
|
|
- $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $currentShopId])->one();
|
|
|
- if (empty($shop)) {
|
|
|
- util::fail('没有找到门店');
|
|
|
- }
|
|
|
- $shop->unPayOrder -= 1;
|
|
|
- $shop->unSendOrder += 1;
|
|
|
- $shop->totalOrderNum += 1;
|
|
|
- $shop->totalIncome = bcadd($shop->totalIncome, $amount, 2);
|
|
|
- $shop->save();
|
|
|
-
|
|
|
- //更新订单基础状态和支付状态
|
|
|
- $orderId = $order->id;
|
|
|
- $orderSn = $order->orderSn;
|
|
|
- $order->payWay = $payWay;
|
|
|
- $order->status = self::ORDER_STATUS_UN_SEND;
|
|
|
- if ($payWay == dict::getDict('payWay', 'debtPay')) {
|
|
|
- $order->debt = self::DEBT_YES;
|
|
|
- }
|
|
|
- $order->save();
|
|
|
-
|
|
|
- //员工业绩、总业绩增加
|
|
|
- $shopAdminId = $order->shopAdminId ?? 0;
|
|
|
- if (!empty($shopAdminId)) {
|
|
|
- $shopAdmin = ShopAdminClass::getById($shopAdminId, true);
|
|
|
- $shopAdmin->kdAmount = bcadd($shopAdmin->kdAmount, $amount, 2);
|
|
|
- $shopAdmin->save();
|
|
|
- }
|
|
|
- StatYjClass::addYj($order);
|
|
|
-
|
|
|
- /**客户资产变化**/
|
|
|
- $customId = $order->customId;
|
|
|
- $custom = Custom::findBySql('select * from ' . Custom::tableName() . ' where id = :id for update', ['id' => $customId])->one();
|
|
|
- if (empty($custom)) {
|
|
|
- util::fail('没有找到客户信息');
|
|
|
- }
|
|
|
- if ($payWay == dict::getDict('payWay', 'debtPay')) {
|
|
|
- //欠款支付
|
|
|
- $custom->isDebt = CustomClass::IS_DEBT_YES;
|
|
|
- $custom->debtAmount = bcadd($custom->debtAmount, $amount, 2);
|
|
|
- $custom->debtNum += 1;
|
|
|
- }
|
|
|
- $custom->buyNum += 1;
|
|
|
- $custom->buyAmount = bcadd($custom->buyAmount, $amount, 2);
|
|
|
- $custom->save();
|
|
|
-
|
|
|
- //每天和每月收入
|
|
|
- StatIncomeClass::updateOrInsert($shop, $order->actPrice);
|
|
|
- //今日订单+1
|
|
|
- StatOrderClass::updateOrInsert($shop);
|
|
|
-
|
|
|
- //显示已下单流程
|
|
|
- $time = date("Y-m-d H:i:s");
|
|
|
- $placeData = ['payTime' => $time, 'orderSn' => $orderSn, 'orderId' => $orderId];
|
|
|
- OrderSendClass::placeOrder($placeData);
|
|
|
-
|
|
|
- //自取订单,订单直接完成,【现在有三个地方有订单完成操作】,找不到请搜索【】内关键词。
|
|
|
- if (isset($order->sendType) == false) {
|
|
|
- util::fail('没有找到配送方式');
|
|
|
- }
|
|
|
- if ($order->sendType == OrderClass::SEND_TYPE_NO) {
|
|
|
- self::withoutSend($order);
|
|
|
- }
|
|
|
+ return $order;
|
|
|
}
|
|
|
|
|
|
//修改订单表的配送信息 linqh 2021.3.28
|
|
|
@@ -617,6 +516,16 @@ class OrderClass extends BaseClass
|
|
|
}
|
|
|
$order->status = self::ORDER_STATUS_CANCEL;
|
|
|
$order->save();
|
|
|
+
|
|
|
+ $shopId = $order->shopId;
|
|
|
+ $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
|
|
|
+ if (empty($shop)) {
|
|
|
+ util::fail('没有找到门店');
|
|
|
+ }
|
|
|
+ $shop->unPayOrder -= 1;
|
|
|
+ $shop->cancelOrder += 1;
|
|
|
+ $shop->save();
|
|
|
+
|
|
|
return $order;
|
|
|
}
|
|
|
|