'无', self::STATUS_ONGOING => '签约中', self::STATUS_FINISHED => '签约完成', self::STATUS_FAILED => '签约失败', ]; /** * 开发者创建签约记录 * @throws */ public static function createData($demandId, $biddingId, $depositAmount, $formData): bool { $saveData = [ 'demand_id' => $demandId, 'bidding_id' => $biddingId, 'task_content' => $formData['taskContent'], 'total_amount' => $formData['totalCost'], 'deposit_amount' => $depositAmount, 'need_days' => $formData['needDays'], 'data_json' => ['devData' => $formData],//[devData=>[], customData=>[]] 'status' => ContractService::STATUS_FINISHED, 'status2' => ContractService::STATUS_ONGOING, ]; $result = self::$Model::create($saveData, true); if (!$result) { throw new \Exception('签约保存失败'); } return true; } /** * 客户更新签约记录 * @param $demandId * @param $formData * @return mixed * @throws \Exception */ public static function updateCustomerContractData($demandId, $formData) { $info = self::getWinBiddingContract($demandId); $jsonData = $info->data_json; $jsonData['customData'] = $formData; $info->data_json = $jsonData; $info->signed_time = time(); $saveRes = $info->save(); if (!$saveRes) { exception('更新签约记录失败'); } return $info; } /** * 获取第一次签约合同 * @param $demandId * @return mixed * @throws \Exception */ public static function getFirstContract($demandId) { $info = self::getOne(['demand_id' => $demandId, 'status2' => self::STATUS_FINISHED], ['demandBidding'], ['id']); return $info; } /** * 获取中标的合同签约 * @param $demandId * @return mixed * @throws */ public static function getWinBiddingContract($demandId) { $winBidding = DemandBiddingService::getOne(['demand_id' => $demandId, 'bidding_status' => DemandBiddingService::STATUS_BIDDING_WIN]); $where = [ 'demand_id' => $demandId, 'bidding_id' => $winBidding->id, ]; $info = self::getOne($where, ['demandBidding']); if (!$info) { throw new \Exception('签约记录不存在'); } return $info; } }