255], [['pay_type'], 'string', 'max' => 125], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'trade_no' => 'Trade No', 'order_no' => '订单编号', 'order_type' => '1个人报名;2战队创建', 'is_pay' => '是否支付;0未支付;1已支付;2已退款', 'money' => '支付金额', 'pay_type' => 'wechat微信;balance余额', 'created_at' => 'Created At', 'updated_at' => 'Updated At', 'status' => '状态[-1:删除;0:禁用;1启用]', 'mall_id' => '商城id', 'user_id' => '用户id', 'activity_id' => '活动id', 'performance_goal' => '目标值', ]; } /** * 生成订单号 * @return string */ public static function getOrderNo() { $randLen = 6; $id = base_convert(substr(uniqid(), 0 - $randLen), 16, 10); if (strlen($id) > 10) { $id = substr($id, -10); } elseif (strlen($id) < 10) { $rLen = 10 - strlen($id); $id = $id . rand(pow(10, $rLen - 1), pow(10, $rLen) - 1); } $dateTimeStr = date('YmdHis'); return 'PK' . $dateTimeStr . $id; } public function getUser() { return $this->hasOne(User::ClassName(), ['id' => 'user_id']); } public function getActivity() { return $this->hasOne(PkActivity::ClassName(), ['id' => 'activity_id']); } /** * 保存数据 * @Author: ltm * @DateTime: 2022/6/8 0015 9:26 * @Copyright: copyright (c) 2021 * @param $mall_id * @param array $params * @return Rebate|bool */ public static function setData(array $params){ try{ //生成流水订单 $order_trade_info[] = [ 'order_no' => $params['order_no'], 'amount' => $params['money'], 'title' => '参加pk费用', 'notify_class' => PkEnum::NOTIFY_CLASS, 'order_type' => PkEnum::ADDONS_NAME ]; $data = \Yii::$app->services->pay->createTrade($params['mall_id'], $params['user_id'], $order_trade_info); $mall_id = $params['mall_id']; if(!empty($params['id'])){ $model = self::findOne(['and',['id' => $params['id'],'mall_id' => $mall_id],['<>','status', StatusEnum::ENABLED]]); if(empty($model)) throw new \Exception('活动不存在或已删除'); }else{ $model = new self(); $model->loadDefaultValues(); $model->mall_id = $mall_id; } $model->trade_no = $data['trade_no']; if(!$model->load($params,'') || !$model->save()) throw new Exception($model->getErrorMessage()); //生成支付流水 return $data; }catch(\Exception $e){ self::setStaticError($e->getMessage()); return false; } } }