| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\admin\controllers;
- use app\constants\OptionSetting;
- use app\models\CloudGoodsBind;
- use app\models\common\admin\order\CommonUpdateAddress;
- use app\models\Express;
- use app\models\Goods;
- use app\models\Order;
- use app\models\OrderComment;
- use app\models\OrderDetail;
- use app\models\OrderTransit;
- use app\models\SaaSLeaguePriceLog;
- use app\models\SaasUser;
- use app\models\Shop;
- use app\models\Store;
- use app\models\StoreCloud;
- use app\modules\admin\models\OrderClerkForm;
- use app\modules\admin\models\OrderMessageForm;
- use app\modules\admin\models\OrderPriceForm;
- use app\modules\admin\models\OrderSendForm;
- use app\utils\PrintOrder;
- use yii\helpers\Html;
- use app\models\User;
- use app\modules\admin\models\ExpressDetailForm;
- use app\modules\admin\models\OrderCommentForm;
- use app\modules\admin\models\ReconciliationOrderForm;
- use app\modules\admin\models\OrderRefundListForm;
- use app\modules\admin\models\OrderRevokeForm;
- use app\modules\admin\models\OrderRefundForm;
- use app\modules\admin\models\OrderShopForm;
- use app\models\OrderPayOffline;
- use app\utils\Notice\NoticeSend;
- use app\utils\PrintExpress;
- use app\models\VerifyCardSale;
- use app\models\Admin;
- use app\models\Notice;
- use app\models\Option;
- use app\models\PrintHistory;
- use app\utils\Notice\NoticeAction;
- use DateTime;
- use PHP_CodeSniffer\Reports\Json;
- use yii\helpers\Json as HelpersJson;
- use yii\helpers\VarDumper;
- class ReconciliationOrderController extends BaseController
- {
- /**
- * 平台商品订单列表
- * @return Response
- */
- public function actionList()
- {
- $store_id = get_store_id();
- $form = new ReconciliationOrderForm();
- $form->attributes = get_params();
- if (!empty(get_params('is_offline')) && get_params('is_offline') == Order::IS_OFFLINE_TRUE) {
- $form->is_offline = Order::IS_OFFLINE_TRUE;
- } else {
- $form->is_offline = Order::IS_OFFLINE_FALSE;
- }
- $form->store_id = $store_id;
- $form->supplier_id = get_params('supplier_id');
- $form->order_id = get_params('order_id');
- $form->type = get_params('type');
- $form->sort = get_params('sort');
- $form->sort_type = get_params('sort_type');
- $form->selected_rows = json_decode(get_params('selectedRows'));
- $form->selected_row_keys = json_decode(get_params('selectedRowKeys'));
- $form->filters_is_pay = json_decode(get_params('filters_is_pay'));
- $form->filters_order_types = json_decode(get_params('filters_order_types'));
- $form->admin = get_admin();
- return $this->asJson($form->search());
- }
- /**
- * 编辑排单或备注
- */
- public function actionEditSortAndRemark()
- {
- $id = (int) get_params('id');
- $value = get_params('value');
- $column = get_params('column');
- $form = Order::findOne($id);
- if (!$form) {
- return $this->asJson([
- 'code' => 1,
- 'msg' => '订单未找到',
- ]);
- }
- if ($column == 'pay_price' && $value == $form->pay_price || $column == 'sort' && $value == $form->sort || $column == 'shop_remark' && $value == $form->shop_remark) {
- return $this->asJson([
- 'code' => 0,
- 'msg' => '无操作',
- ]);
- }
- if (in_array($column, ['sort', 'shop_remark', 'pay_price']) && !empty($value)) {
- $form->{$column} = $value;
- } else {
- return $this->asJson([
- 'code' => 1,
- 'msg' => '无效的列名',
- ]);
- }
- if ($form->save()) {
- return $this->asJson([
- 'code' => 0,
- 'msg' => '操作成功',
- ]);
- } else {
- return $this->asJson([
- 'code' => 1,
- 'msg' => '操作失败',
- ]);
- }
- }
- /**
- * 打印订单
- * @return Response
- */
- public function actionPrintOrder()
- {
- $selected_rows = json_decode(post_params('selectedRowKeys'));
- if (!empty($selected_rows)) {
- $orders = Order::find()->where([
- 'is_delete' => 0, 'store_id' => get_store_id(), 'id' => array_values($selected_rows),
- ])->orderBy('sort ASC')->asArray()->all();
- $pay_prices = array_column($orders, 'pay_price');
- $totalPayPrice = number_format((float) array_sum($pay_prices), 2);
- return $this->asJson(['code' => 0, 'msg' => 'success', 'data' => ($orders), 'totalPayPrice' => $totalPayPrice]);
- } else {
- try {
- $order = post_params('order');
- $admin = get_admin();
- $countNum = count($order);
- $form = new PrintHistory();
- $form->store_id = get_store_id();
- $form->mch_id = get_mch_id();
- $form->data = json_encode(array_column($order, 'id'));
- $form->user_name = $admin->name;
- $form->num = $countNum;
- $form->created_at = time();
- if (!$form->save()) {
- error_log("Error saving: " . json_encode($form->errors));
- return $this->asJson(['code' => 1, 'msg' => '排单记录保存失败']);
- }
- } catch (\Exception $e) {
- error_log("Error saving: " . $e->getMessage());
- error_log($e->getTraceAsString());
- }
- }
- }
- /**
- * 发送短信通知
- * @param integer $store_id 店铺ID
- * @param string $mobile 手机号
- * @param string $user_name 用户名
- * @return array
- */
- public function actionSendNotice()
- {
- $mobile = get_params('mobile');
- $name = get_params('user_name');
- $store_id = get_store_id();
- $setting = Notice::findOne(['store_id' => $store_id]);
- if ($setting && $setting->payment_statement) {
- $tpl = HelpersJson::decode($setting->payment_statement);
- if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) {
- $res = NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $name, $store_id);
- if ($res['code'] == 0) {
- return $this->asJson(['code' => 0, 'msg' => '短信发送成功']);
- } else {
- return $this->asJson(['code' => 1, 'msg' => '短信发送失败']);
- }
- }
- } else {
- return $this->asJson([
- 'code' => 1,
- 'msg' => '请检查付款对账单短信相关配置'
- ]);
- }
- }
- /**
- * 确认支付操作
- * @return json
- */
- public function actionConfirmPayment()
- {
- $form = new ReconciliationOrderForm();
- $form->attributes = get_params();
- $form->confirm_payment = get_params('confirm_payment') ?? 0;
- if (!empty(get_params('change_admin_id'))) {
- $form->change_admin_id = get_params('change_admin_id');
- } else {
- $form->change_admin_id = get_admin();
- }
- return $this->asJson($form->confirmPayment());
- }
- /**
- * 查询所有的打印历史记录
- * @return array
- */
- public function actionPrintHistory()
- {
- $printHistories = PrintHistory::find()->orderBy(['id' => SORT_DESC])->all();
- $result = [];
- foreach ($printHistories as $printHistory) {
- $orderIds = json_decode($printHistory->data, true);
- $orders = Order::find()->where(['id' => $orderIds])->select(['name', 'sort', 'pay_price', 'order_no'])->orderBy(['sort' => SORT_ASC])->all();
- $orderData = [];
- foreach ($orders as $order) {
- $orderData[] = $order;
- }
- $result[] = [
- 'id' => $printHistory->id,
- 'store_id' => $printHistory->store_id,
- 'mch_id' => $printHistory->mch_id,
- 'data' => $printHistory->data,
- 'order_data' => $orderData,
- 'user_name' => $printHistory->user_name,
- 'num' => $printHistory->num,
- 'created_at' => date('Y-m-d H:i:s', $printHistory->created_at),
- ];
- }
- return $this->asJson(['code' => 0, 'data' => $result]);
- }
- }
|