TaskSystem/app/api/controller/ContractController.php

79 lines
3.7 KiB
PHP
Raw Normal View History

2023-07-20 14:29:46 +08:00
<?php
namespace app\api\controller;
use app\common\model\auth\Admin;
2023-07-20 15:10:52 +08:00
use app\common\model\Company;
2023-07-20 14:29:46 +08:00
use app\common\model\contract\Contract;
2023-08-07 09:36:32 +08:00
use app\common\model\user\User;
2023-07-20 17:07:44 +08:00
use think\facade\Db;
2023-07-20 14:29:46 +08:00
/**
* 搜索
* Class ContractController
* @package app\api\controller
*/
class ContractController extends BaseApiController
{
public function index()
{
2023-07-21 16:28:51 +08:00
[$page, $limit] = $this->getPage();
2023-08-07 09:36:32 +08:00
if($this->userInfo['admin_id']==0){
$query = Contract::where("type",2)->where('party_b',$this->userId);
2023-07-20 17:56:39 +08:00
} else {
2023-08-07 09:36:32 +08:00
$query = Contract::where("type",1)->where('party_b',$this->userInfo['company_id']);
2023-07-20 17:56:39 +08:00
}
2023-07-20 14:29:46 +08:00
$count = $query->count();
2023-07-23 23:17:29 +08:00
$contract = $query->page($page)->limit($limit)->select()->each(function ($item, $key) {
$company_name= Db::name('company')->where('id', $item['party_a'])->value('company_name');
$contract_type_name= Db::name('dict_data')->where('id', $item['contract_type'])->value('name');
$datas=[
'id'=>$item['id'],
'company_name'=>$company_name,
'contract_type_name'=>$contract_type_name,
];
$item->company=$datas;
// if ($item->type == 2) {
// $item['party_b_name'] = Admin::where('id', $item['party_b'])->value('name');
// } else {
// $item['party_b_name'] = Db::name('company')->where('id', $item['party_b'])->value('company_name');
// }
});
2023-07-21 11:23:39 +08:00
return $this->success('success', ['count' => $count, 'data' => $contract]);
2023-07-20 14:29:46 +08:00
}
2023-07-20 15:10:52 +08:00
public function view($id)
{
$contract = Contract::find($id);
if (empty($contract)) {
return $this->fail('合同不存在');
}
2023-07-23 23:17:29 +08:00
if ($contract['type'] == 2) {
2023-08-07 09:36:32 +08:00
$contract['party_b_name'] = User::where('id', $contract['party_b'])->value('nickname');
2023-07-23 23:17:29 +08:00
} else {
2023-07-20 17:07:44 +08:00
$contract['party_b_name'] = Db::name('company')->where('id', $contract['party_b'])->value('company_name');
}
$contract['party_a_name'] = Db::name('company')->where('id', $contract['party_a'])->value('company_name');
$contract['contract_type_name'] = Db::name('dict_data')->where('id', $contract['contract_type'])->value('name');
2023-07-23 23:17:29 +08:00
$company = Company::where('id', $contract['party_a'])->find();
$province_name= Db::name('geo_province')->where(['province_code' => $company['province']])->value('province_name');
$city_name= Db::name('geo_city')->where(['city_code' => $company['city']])->value('city_name');
$area_name= Db::name('geo_area')->where(['area_code' => $company['area']])->value('area_name');
$street_name= Db::name('geo_street')->where(['street_code' => $company['street']])->value('street_name');
$company['address']= $province_name.$city_name.$area_name.$street_name.$company['address'];
2023-07-20 18:07:53 +08:00
$company['company_type_name'] = Db::name('dict_data')->where('id', $company['company_type'])->value('name');
2023-07-20 15:10:52 +08:00
$company['other_contacts'] = json_decode($company['other_contacts'], true);
2023-07-23 23:17:29 +08:00
$company['qualification'] = $company['qualification'] != null ? json_decode($company['qualification'], true) : '';
2023-08-08 18:30:14 +08:00
// $users = Admin::where('id', $company['party_a'])->field('id,name,account,phone,qualification')->select()->toArray();
// foreach ($users as &$user) {
// $user['is_main'] = $user['id'] == $company['admin_id'] ? 1 : 0;
// $user['qualification'] = $user['qualification'] != null ? json_decode($user['qualification'], true) : [];
// unset($user['role_id'], $user['dept_id'], $user['jobs_id'], $user['id']);
// }
return $this->success('success', ['contract' => $contract, 'company' => $company]);
2023-07-20 15:10:52 +08:00
}
2023-07-23 23:17:29 +08:00
}