| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <?php
- namespace addons\Happiness\api\modules\v1\controllers;
- use addons\Happiness\common\models\HappinessStore;
- use addons\Happiness\common\models\HappinessCashierOrder;
- use common\models\common\PaymentTradeOrder;
- use Yii;
- use api\controllers\OnAuthController;
- use addons\Happiness\common\enums\HappinessEnum;
- use addons\Happiness\common\models\StoreCart;
- use addons\Happiness\common\models\HappinessStoreGoods;
- use addons\Happiness\common\models\HappinessStoreGoodsAttr;
- use common\enums\StatusEnum;
- /**
- * 默认控制器
- *
- * Class DefaultController
- * @package addons\Store\api\modules\v1\controllers
- */
- class CashierController extends OnAuthController
- {
- public $modelClass = '';
- /**
- * 不用进行登录验证的方法
- *
- * 例如: ['index', 'update', 'create', 'view', 'delete']
- * 默认全部需要验证
- *
- * @var array
- */
- protected $authOptional = ['index'];
- /**
- * 需要门店验证的方法
- */
- protected $authStore = ['payment-code', 'cashier-amount', 'cashier-log'];
- protected $store_id = 0;
- public function beforeAction($action)
- {
- parent::beforeAction($action);
- //检测门店身份
- if (in_array($action->id, $this->authStore)) {
- $store = HappinessStore::find()
- ->where(['mall_id' => $this->mall_id, 'user_id' => $this->user_id, 'status' => StatusEnum::ENABLED])
- ->one();
- if (empty($store)) {
- \Yii::$app->response->data = ['code' => 1, 'msg' => '您非门店身份'];
- \Yii::$app->response->send();
- return;
- }
- $this->store_id = $store->id;
- }
- return $action;
- }
- //扫码后请求
- public function actionScanCode()
- {
- $params = Yii::$app->request->get();
- $params['mall_id'] = $this->mall_id;
- $params['user_id'] = $this->user_id;
- $params['user'] = $this->user;
- $res = HappinessCashierOrder::scanCode($params);
- if ($res === false) return $this->error(HappinessCashierOrder::getStaticError());
- return $this->success('操作成功', $res);
- }
-
- //添加订单
- public function actionCreate()
- {
- $params = Yii::$app->request->post();
- $store = HappinessStore::findOne(['id' => $params['store_id'],'status' => StatusEnum::ENABLED]);
- if (empty($store)) return $this->error('门店不存在');
- $params['mall_id'] = $this->mall_id;
- $params['user_id'] = $this->user_id;
- $params['title'] = $store['store_name'] . ':收银台订单';
- $params['user'] = $this->user;
- $res = HappinessCashierOrder::createOrder($params);
- if ($res === false) return $this->error(HappinessCashierOrder::getStaticError());
- return $this->success('操作成功', $res);
- }
- //收款码
- public function actionPaymentCode()
- {
- $params = Yii::$app->request->get();
- $H5Url = \Yii::$app->services->setting->platform->get('system.h5_url');
- $cashier = \Yii::$app->services->setting->addons->get($this->mall_id, HappinessEnum::ADDONS_NAME, 'cashier');
- $returnData = [
- 'store_id' => $this->store_id,
- 'cashier_bg_img' => $cashier['cashier_bg_img'] ?? '',
- 'h5_url' => $H5Url,
- ];
- return $this->success('请求成功', $returnData);
- }
-
-
- /**
- * 关闭收银台订单
- * @return mixed|null
- */
- public function actionClose()
- {
- $params = \Yii::$app->request->post();
- $res = \Yii::$app->services->validate->validate($params, [
- [['trade_id'], 'required'],
- ]);
- if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
- $payment_order = PaymentTradeOrder::findOne(['trade_id'=>$params['trade_id'],'is_pay'=>0]);
- $data = [
- 'order_no' => $payment_order['order_no'],
- 'user_id' => $this->user_id,
- 'mall_id' => $this->mall_id,
- 'operator_id' => $this->user_id,
- 'operator_name' => $this->user['nickname']??'',
- ];
- HappinessCashierOrder::close($data);
- return $this->success('操作成功');
- }
- }
|