$params['company_id'], 'contract_type' => $params['contract_type'], 'contract_no' => $params['contract_no'], 'file' => $params['file'], 'status' => $params['status'], 'party_a' => $params['party_a'], 'party_b' => $params['party_b'], 'area_manager' => $params['area_manager'] ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑 * @param array $params * @return bool * @author likeadmin * @date 2023/07/18 14:28 */ public static function edit(array $params): bool { Db::startTrans(); try { Contract::where('id', $params['id'])->update([ 'company_id' => $params['company_id'], 'contract_type' => $params['contract_type'], 'contract_no' => $params['contract_no'], 'file' => $params['file'], 'status' => $params['status'], 'party_a' => $params['party_a'], 'party_b' => $params['party_b'], 'area_manager' => $params['area_manager'] ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2023/07/18 14:28 */ public static function delete(array $params): bool { return Contract::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2023/07/18 14:28 */ public static function detail($params): array { $data = Db::name('contract')->where('id', $params['id']) ->withAttr('party_b_info', function ($value, $data) { if ($data['type'] == 1) { $field=['id,company_name,company_type,company_type company_type_name,organization_code, province,city,area,street,village,brigade,address,province province_name,city city_name,area area_name,street street_name,village village_name,brigade brigade_name, qualification']; $company=Company::where(['id'=> $data['party_b']])->field($field)->find(); $company['qualification']=json_decode($company['qualification'],true); return $company; } else { $filed=['id,avatar,nickname,sex,mobile, province,city,area,street,village,brigade,address,province province_name,city city_name,area area_name,street street_name,village village_name,brigade brigade_name, qualification']; $user= User::where('id', $data['party_b'])->field($filed)->find(); $user['qualification']=json_decode($user['qualification'],true); return $user; } }) ->withAttr('party_a_info', function ($value, $data) { $field=['id,company_name,company_type,company_type company_type_name,organization_code, province,city,area,street,village,brigade,address,province province_name,city city_name,area area_name,street street_name,village village_name,brigade brigade_name, qualification']; $company=Company::where(['id'=> $data['party_a']])->field($field)->find(); $company['qualification']=json_decode($company['qualification'],true); return $company; }) ->withAttr('area_manager_name', function ($value, $data) { return Db::name('admin')->where('id', $data['area_manager'])->value('name'); }) ->withAttr('contract_type_name', function ($value, $data) { return Db::name('dict_data')->where('id', $data['contract_type'])->value('name'); }) ->withAttr('type_name', function ($value, $data) { return $data['type']==1?'公司':'个人'; }) ->withAttr('status_name', function ($value, $data) { return $data['status']==1?'已签约':'未签约'; }) ->find(); return $data; } }