SettleController.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace hd\controllers;
  3. use bizHd\order\classes\OrderClass;
  4. use bizHd\order\classes\SettleClass;
  5. use common\components\dict;
  6. use common\components\util;
  7. use Yii;
  8. class SettleController extends BaseController
  9. {
  10. public $guestAccess = [];
  11. //结清尾款 ssh 20220708
  12. public function actionConfirmSettle()
  13. {
  14. $post = Yii::$app->request->post();
  15. $connection = Yii::$app->db;
  16. $transaction = $connection->beginTransaction();
  17. try {
  18. $staff = $this->shopAdmin;
  19. $payWay = $post['payWay'] ?? dict::getDict('payWay', 'wxPay');
  20. $id = $post['id'] ?? '';
  21. if (is_numeric($id)) {
  22. $order = OrderClass::getById($id, true);
  23. if (empty($order)) {
  24. util::fail('没有找到订单');
  25. }
  26. OrderClass::valid($order, $this->mainId);
  27. SettleClass::confirmSettle($order, $payWay, $staff);
  28. } else {
  29. $idArr = json_decode($id, true);
  30. $ids = array_column($idArr, 'id');
  31. $orderList = OrderClass::getAllByCondition(['id' => ['in', $ids]], null, '*', null, true);
  32. if (!empty($orderList)) {
  33. foreach ($orderList as $order) {
  34. OrderClass::valid($order, $this->mainId);
  35. SettleClass::confirmSettle($order, $payWay, $staff);
  36. }
  37. }
  38. }
  39. $transaction->commit();
  40. util::complete();
  41. } catch (\Exception $exception) {
  42. $transaction->rollBack();
  43. Yii::info("失败:" . $exception->getMessage());
  44. util::fail('操作失败');
  45. }
  46. }
  47. }