| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\client\models\v1;
- use app\models\AccountLog;
- use app\models\Level;
- use app\models\LevelOrder;
- use app\models\User;
- use app\modules\client\models\v1\order\OrderPayDataForm;
- use app\utils\OrderNo;
- use app\utils\Wechat\WechatPay;
- use yii\base\Model;
- class OrderMemberForm extends Model
- {
- public $store_id;
- public $pay_type;
- public $level_id;
- public $form_id;
- public $order;
- public $user;
- public $_from;
- public function rules()
- {
- return [
- [['level_id'], 'number'],
- [['_from'], 'string'],
- [['_from'], 'in', 'range' => ['app', 'mini', 'official', 'h5']],
- ];
- }
- public function save()
- {
- if (!$this->validate()) {
- return [
- 'code' => 1,
- 'msg' => $this->getErrorSummary(false)[0],
- ];
- }
- $level = Level::findOne([
- 'id' => $this->level_id,
- 'is_delete' => 0,
- 'store_id' => $this->store_id, 'status' => 1
- ]);
- // $level = Level::find()->select(['id', 'level', 'price'])
- // ->where(['store_id' => $this->store_id, 'is_delete' => 0, 'status' => 1])
- // ->andWhere(['<>','price', '0'])
- // ->andWhere(['>', 'level', $this->user->level])
- // ->andWhere(['level' => $id])
- // ->orderBy('level asc')->asArray()->one();
- if (!$level) {
- return [
- 'code' => 1,
- 'msg' => '数据异常'
- ];
- }
- $order = new LevelOrder();
- $order->store_id = $this->store_id;
- $order->user_id = $this->user->id;
- $order->current_level = $this->user->level;
- $order->after_level = $level->level;
- $order->order_no = OrderNo::getOrderNo(OrderNo::ORDER_LEVEL);
- $order->is_pay = 0;
- $order->is_delete = 0;
- $order->created_at = time();
- $pay_price = $level->price ?: 0;
- $order->pay_price = $pay_price;
- if ($order->save()) {
- return [
- 'code' => 0,
- 'data' => [
- 'add_time' => $order->created_at,
- 'order_id' => $order->id
- ]
- ];
- } else {
- return [
- 'code' => 1,
- 'msg' => $order->errors[0]
- ];
- }
- }
- }
|