OrderClearController.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace ghs\controllers;
  3. use bizGhs\custom\classes\CustomClass;
  4. use bizGhs\order\classes\OrderClearClass;
  5. use bizHd\purchase\classes\PurchaseClearClass;
  6. use Yii;
  7. use common\components\util;
  8. class OrderClearController extends BaseController
  9. {
  10. //收款 ssh 2021.2.4
  11. public function actionClear()
  12. {
  13. $shopAdmin = $this->shopAdmin;
  14. if (isset($shopAdmin->super) == false || $shopAdmin->super != 1) {
  15. util::fail('超管才能结帐');
  16. }
  17. $id = Yii::$app->request->post('id');
  18. $customId = Yii::$app->request->post('customId', 0);
  19. if (empty($id)) {
  20. util::fail('请选择交易记录');
  21. }
  22. //抹零之后的价格
  23. $modifyPrice = Yii::$app->request->post('modifyPrice', 0.00);
  24. if (is_numeric($modifyPrice) == false || $modifyPrice <= 0) {
  25. util::fail('金额填错了哦');
  26. }
  27. $custom = CustomClass::getById($customId, true);
  28. CustomClass::valid($custom, $this->shopId);
  29. $current = time();
  30. //查找有没结帐订单还没有过期
  31. $list = OrderClearClass::getAllByCondition(['customId' => $customId, 'status' => PurchaseClearClass::STATUS_AWAIT_PAY], null, '*', null, true);
  32. if (!empty($list)) {
  33. foreach ($list as $item) {
  34. $deadline = $item->deadline;
  35. $deadTime = strtotime($deadline);
  36. if ($current > $deadTime) {
  37. $item->status = PurchaseClearClass::STATUS_EXPIRE;
  38. $item->save();
  39. } else {
  40. util::fail('客户是否也在结账?请几分钟后再试');
  41. }
  42. }
  43. }
  44. $payWay = Yii::$app->request->post('payWay', 0);
  45. $connection = Yii::$app->db;
  46. $transaction = $connection->beginTransaction();
  47. $name = $this->shopAdmin['name'] ?? '';
  48. $data = [
  49. 'customId' => $customId,
  50. 'ghsShopAdminId' => $this->shopAdminId,
  51. 'ghsShopAdminName' => $name,
  52. 'modifyPrice' => $modifyPrice,
  53. 'payWay' => $payWay,
  54. ];
  55. try {
  56. OrderClearClass::clear($data, $id, $this->sjId, $this->shopId);
  57. $transaction->commit();
  58. } catch (\Exception $exception) {
  59. $transaction->rollBack();
  60. Yii::info("批量收款失败:" . $exception->getMessage());
  61. util::fail('操作失败');
  62. }
  63. util::complete();
  64. }
  65. }