'integer', 'userId' => 'integer', 'companyId' => 'integer', 'packageId' => 'integer', 'totalAmount' => 'float', 'payAmount' => 'float', 'advancePayment' => 'float', 'status' => 'integer', 'createTime' => 'timestamp', 'updateTime' => 'timestamp', 'payTime' => 'timestamp', ]; /** * 与套餐的关联 */ public function package() { return $this->belongsTo('VendorPackageModel', 'packageId', 'id'); } /** * 生成唯一订单号 * @return string */ public static function generateOrderNo() { $prefix = 'GY'; $date = date('YmdHis'); $random = mt_rand(10000, 99999); return $prefix . $date . $random; } /** * 创建订单 * * @param int $userId 用户ID * @param int $companyId 公司ID * @param int $packageId 套餐ID * @param string $packageName 套餐名称 * @param float $totalAmount 订单总额 * @param float $payAmount 支付金额 * @param float $advancePayment 预付款 * @param string $remark 备注 * @return array|false */ public static function createOrder($userId, $companyId, $packageId, $packageName, $totalAmount, $payAmount, $advancePayment = 0, $remark = '') { $orderNo = self::generateOrderNo(); $data = [ 'userId' => intval($userId), 'companyId' => intval($companyId), 'packageId' => intval($packageId), 'packageName' => $packageName, 'orderNo' => $orderNo, 'totalAmount' => floatval($totalAmount), 'payAmount' => floatval($payAmount), 'advancePayment' => floatval($advancePayment), 'status' => self::STATUS_UNPAID, 'remark' => $remark, 'createTime' => time(), 'updateTime' => time(), ]; $model = new self(); $result = $model->save($data); if ($result) { return $model->toArray(); } else { return false; } } }