diff --git a/app/adminapi/controller/CompanyController.php b/app/adminapi/controller/CompanyController.php index f8d90ac6d..34e7151f1 100644 --- a/app/adminapi/controller/CompanyController.php +++ b/app/adminapi/controller/CompanyController.php @@ -22,6 +22,8 @@ use app\adminapi\logic\CompanyLogic; use app\adminapi\validate\CompanyValidate; use app\api\controller\JunziqianController; use app\api\logic\SmsLogic; +use app\common\model\auth\Admin; +use app\common\model\Company; use think\facade\Db; use think\view\driver\Think; @@ -245,4 +247,13 @@ class CompanyController extends BaseAdminController } } } + + public function userList() + { + $existUsers = Company::where('status', '<>', -1)->column('admin_id'); + $existUsers = array_unique($existUsers); + $users = Admin::whereNotIn('id', $existUsers)->field('id,name,avatar')->select()->toArray(); + return $this->success('success', $users, 1, 1); + } + } diff --git a/app/adminapi/logic/CompanyLogic.php b/app/adminapi/logic/CompanyLogic.php index 9fc5b472f..5c1771ab7 100644 --- a/app/adminapi/logic/CompanyLogic.php +++ b/app/adminapi/logic/CompanyLogic.php @@ -17,6 +17,8 @@ namespace app\adminapi\logic; use app\common\model\Company; use app\common\logic\BaseLogic; +use app\common\model\contract\Contract; +use think\exception\ValidateException; use think\facade\Db; @@ -40,6 +42,10 @@ class CompanyLogic extends BaseLogic { Db::startTrans(); try { + $exist = Company::where('admin_id', $params['admin_id'])->find(); + if (!empty($exist)) { + throw new ValidateException('该账号已经注册过企业'); + } $data=Company::create([ // 'level_two' => $params['level_two'], // 'level_one' => $params['level_one'], @@ -63,22 +69,10 @@ class CompanyLogic extends BaseLogic // 'deposit' => $params['deposit'], // 'deposit_time' => $params['deposit_time'], 'qualification' => $params['qualification'], + 'admin_id' => $params['admin_id'] ?? 0, // 'status' => $params['status'] ]); - $contract=$params['contract']; - $datas=[ - 'company_id'=>$data['id'], - 'contract_type'=>$contract['contract_type'], - 'contract_no'=>time(), - 'file'=>$contract['file'], - 'create_time'=>time(), - 'update_time'=>time(), - 'party_a'=>$contract['party_a'], - 'party_b'=>$data['id'], - 'type'=>1 - ]; - $ids=Db::name('contract')->insertGetId($datas); - Company::where('id',$data['id'])->update(['contract_id'=>$ids]); + self::contract($data['id'], $params); Db::commit(); return true; } catch (\Exception $e) { @@ -125,17 +119,7 @@ class CompanyLogic extends BaseLogic 'qualification' => $params['qualification'], // 'status' => $params['status'] ]); - $contract=$params['contract']; - $datas=[ - 'company_id'=>$params['id'], - 'contract_type'=>$contract['contract_type'], - 'contract_no'=>time(), - 'file'=>$contract['file'], - 'update_time'=>time(), - 'party_a'=>$contract['party_a'], - 'party_b'=>$params['id'], - ]; - Db::name('contract')->insert($datas); + self::contract($params['id'], $params); Db::commit(); return true; } catch (\Exception $e) { @@ -184,4 +168,20 @@ class CompanyLogic extends BaseLogic } return $data; } + + public static function contract($companyId, $params) + { + $model = Contract::where(['party_b', $companyId])->find(); + if (empty($model)) { + $model = new Contract(); + $model->party_b = $companyId; + $model->contract_no = time(); + $model->create_time = time(); + $model->type = 1; + } + $model->update_time = time(); + $model->setAttrs($params); + $model->save(); + } + } \ No newline at end of file diff --git a/app/adminapi/logic/auth/AdminLogic.php b/app/adminapi/logic/auth/AdminLogic.php index 818c5af40..069d335f5 100755 --- a/app/adminapi/logic/auth/AdminLogic.php +++ b/app/adminapi/logic/auth/AdminLogic.php @@ -355,21 +355,17 @@ class AdminLogic extends BaseLogic public static function contract($adminId, $data) { - if (!empty($data['file'])) { - $admin = Admin::find($adminId); - $where = empty($admin['company_id']) ? ['admin_id' => $adminId] : ['company_id' => $admin['company_id']]; - $model = Contract::where($where)->find(); - if (empty($model)) { - $model = new Contract(); - $model->admin_id = $admin['id']; - $model->company_id = $admin['company_id']; - $model->contract_no = time(); - $model->create_time = time(); - $model->update_time = time(); - $model->type = 2; - } - $model->save($data); + $model = Contract::where(['party_b', $adminId])->find(); + if (empty($model)) { + $model = new Contract(); + $model->party_b = $adminId; + $model->contract_no = time(); + $model->create_time = time(); + $model->type = 2; } + $model->update_time = time(); + $model->setAttrs($data); + $model->save(); } } \ No newline at end of file diff --git a/app/api/controller/ContractController.php b/app/api/controller/ContractController.php index 7b00da164..5e1572152 100644 --- a/app/api/controller/ContractController.php +++ b/app/api/controller/ContractController.php @@ -23,8 +23,11 @@ class ContractController extends BaseApiController if (empty($admin)) { return $this->success(); } - $where = empty($admin['company_id']) ? ['admin_id' => $admin['id']] : ['company_id' => $admin['company_id']]; - $query = Contract::where($where); + if (!empty($admin['company_id'])) { + $query = Contract::whereRaw("(type=1 and party_b={$admin['company_id']}) or (type=2 and party_b={$admin['id']})"); + } else { + $query = Contract::where('party_b', $admin['id']); + } $count = $query->count(); $contract = $query->page($page)->limit($limit)->select(); return $this->success('success', ['count' => $count, 'data' => $contract], 1, 1);