TaskSystem/app/adminapi/controller/CompanyController.php

311 lines
12 KiB
PHP
Raw Normal View History

2023-07-15 14:46:25 +08:00
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\controller;
use app\adminapi\lists\CompanyLists;
2023-08-18 12:03:56 +08:00
use app\adminapi\logic\auth\AdminLogic;
2023-08-07 15:13:34 +08:00
use app\common\logic\CompanyLogic;
2023-07-15 14:46:25 +08:00
use app\adminapi\validate\CompanyValidate;
2023-07-18 18:05:58 +08:00
use app\api\controller\JunziqianController;
2023-07-20 17:56:39 +08:00
use app\common\model\auth\Admin;
use app\common\model\Company;
2023-07-18 18:05:58 +08:00
use think\facade\Db;
2023-08-07 15:13:34 +08:00
use app\common\logic\contract\ContractLogic;
2023-08-07 16:38:56 +08:00
use app\common\model\contract\Contract;
2023-08-18 12:03:56 +08:00
use app\common\model\task_scheduling\TaskScheduling;
2023-08-18 11:01:11 +08:00
use app\common\model\user\User;
2023-07-15 14:46:25 +08:00
/**
* Company控制器
* Class CompanyController
* @package app\adminapi\controller
*/
class CompanyController extends BaseAdminController
{
/**
* @notes 获取列表
* @return \think\response\Json
* @author likeadmin
* @date 2023/07/15 14:43
*/
public function lists()
{
return $this->dataLists(new CompanyLists());
}
2023-08-17 10:39:05 +08:00
public function list_two()
{
2023-08-08 17:09:45 +08:00
return $this->success('ok', (new CompanyLists())->list_two());
}
2023-07-15 14:46:25 +08:00
/**
* @notes 添加
* @return \think\response\Json
* @author likeadmin
* @date 2023/07/15 14:43
*/
public function add()
{
$params = (new CompanyValidate())->post()->goCheck('add');
2023-07-18 18:05:58 +08:00
$params['other_contacts'] = json_encode($params['other_contacts']);
$params['qualification'] = json_encode($params['qualification']);
2023-08-17 10:39:05 +08:00
$params['area_manager'] = $this->adminId;
if (isset($params['responsible_area'])) {
$params['responsible_area'] = implode(',', $params['responsible_area']);
2023-08-14 09:12:55 +08:00
}
2023-07-15 14:46:25 +08:00
$result = CompanyLogic::add($params);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
return $this->fail(CompanyLogic::getError());
}
/**
* @notes 编辑
* @return \think\response\Json
* @author likeadmin
* @date 2023/07/15 14:43
*/
public function edit()
{
$params = (new CompanyValidate())->post()->goCheck('edit');
2023-07-18 18:05:58 +08:00
$params['other_contacts'] = json_encode($params['other_contacts']);
$params['qualification'] = json_encode($params['qualification']);
2023-08-17 10:39:05 +08:00
if (isset($params['responsible_area'])) {
$params['responsible_area'] = implode(',', $params['responsible_area']);
2023-08-14 09:12:55 +08:00
}
2023-07-15 14:46:25 +08:00
$result = CompanyLogic::edit($params);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail(CompanyLogic::getError());
}
/**
* @notes 删除
* @return \think\response\Json
* @author likeadmin
* @date 2023/07/15 14:43
*/
public function delete()
{
$params = (new CompanyValidate())->post()->goCheck('delete');
2023-08-21 17:26:31 +08:00
$admin_id = Company::where('id', $params['id'])->value('admin_id');
User::where('company_id', $params['id'])->update(['delete_time' => time()]);
TaskScheduling::where('company_id', $params['id'])->update(['delete_time' => time()]);
AdminLogic::delete(['id' => $admin_id]);
2023-07-15 14:46:25 +08:00
CompanyLogic::delete($params);
return $this->success('删除成功', [], 1, 1);
}
/**
* @notes 获取详情
* @return \think\response\Json
* @author likeadmin
* @date 2023/07/15 14:43
*/
public function detail()
{
$params = (new CompanyValidate())->goCheck('detail');
$result = CompanyLogic::detail($params);
return $this->data($result);
}
2023-08-03 12:47:20 +08:00
//**发起合同 */
public function initiate_contract()
{
$params = $this->request->param();
2023-08-17 10:39:05 +08:00
if (isset($params['party_a']) && $params['party_a'] > 0) {
2023-08-08 17:14:36 +08:00
$params['party_a'] = $params['party_a'];
2023-08-17 10:39:05 +08:00
} else {
2023-08-08 17:14:36 +08:00
$params['party_a'] = $this->adminInfo['company_id'];
}
//判断是否是租赁合同
2023-08-24 16:32:54 +08:00
//如果是租赁合同则必须传递租赁数量参数
2023-08-26 09:35:53 +08:00
// if($params['contract_type'] == 29) {
// if(empty($params['num'])){
// return $this->fail('缺少必要参数');
// }
// }
$area_manager = Company::where('id', $params['party_a'])->value('area_manager');
$params['area_manager'] = $area_manager;
2023-08-03 12:47:20 +08:00
$params['type'] = 1;
2023-08-17 10:39:05 +08:00
$params['party_b'] = $params['id'];
2023-08-07 18:01:24 +08:00
unset($params['id']);
2023-08-07 15:13:34 +08:00
$result = ContractLogic::initiate_contract($params);
2023-08-26 09:35:53 +08:00
if ($result['code'] == 1) {
return $this->success($result['msg'], $result['data']);
2023-08-03 12:47:20 +08:00
}
2023-08-07 15:13:34 +08:00
return $this->fail(ContractLogic::getError());
2023-08-03 12:47:20 +08:00
}
2023-07-20 16:30:00 +08:00
// /**生成合同 */
2023-07-18 18:05:58 +08:00
public function Draftingcontracts()
{
2023-08-03 12:47:20 +08:00
$params = $this->request->param();
2023-08-07 15:13:34 +08:00
$result = ContractLogic::Draftingcontracts($params);
2023-08-03 12:47:20 +08:00
if ($result == true) {
2023-08-08 22:59:28 +08:00
return $this->success('生成合同成功', [], 1, 1);
2023-07-18 18:05:58 +08:00
}
2023-08-07 15:13:34 +08:00
return $this->fail(ContractLogic::getError());
2023-07-18 18:05:58 +08:00
}
2023-07-19 12:42:57 +08:00
//**发送短信 */
2023-07-18 18:05:58 +08:00
public function postsms()
{
$params = (new CompanyValidate())->goCheck('detail');
2023-08-17 10:39:05 +08:00
$id = Contract::where('party_b', $params['id'])->value('id');
$res = ContractLogic::postsms(['id' => $id]);
2023-08-03 12:47:20 +08:00
if ($res == true) {
return $this->success('发送成功', [], 1, 1);
} else {
2023-08-07 15:13:34 +08:00
return $this->fail(ContractLogic::getError());
2023-07-18 18:05:58 +08:00
}
}
2023-07-19 12:42:57 +08:00
//企业认证
2023-07-19 17:42:15 +08:00
public function authentication()
{
2023-07-19 12:42:57 +08:00
$params = (new CompanyValidate())->goCheck('detail');
$company = Db::name('company')->where('id', $params['id'])->find();
2023-07-19 17:42:15 +08:00
$qualification = json_decode($company['qualification'], true);
2023-07-19 12:42:57 +08:00
if ($company && $qualification['business_license']) {
2023-07-19 17:42:15 +08:00
$data = [
2023-07-19 12:42:57 +08:00
'name' => $company['company_name'],
'organization_code' => $company['organization_code'],
2023-07-19 17:42:15 +08:00
'business_license' => 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/561f8202305171526091317.png', //$qualification['business_license'],
'master_name' => $company['master_name'],
'master_email' => $company['master_email'],
2023-08-26 09:35:53 +08:00
'id' => $company['id'],
2023-07-19 12:42:57 +08:00
];
$res = app(JunziqianController::class)->EnterpriseCertification($data);
if ($res->success == true) {
2023-09-02 20:01:59 +08:00
Db::name('company')->where('id', $params['id'])->update(['master_email' => $res->data,'is_authentication'=>1]);
return $this->success('认证成功',[],1, 1);
// return $this->success('系统认证中,请稍后刷新页面查看', ['email' => $res->data], 1, 1);
2023-07-19 12:42:57 +08:00
} else {
return $this->fail($res->msg);
}
}
}
//重新认证
2023-07-19 17:42:15 +08:00
public function organizationReapply()
{
2023-07-19 12:42:57 +08:00
$params = (new CompanyValidate())->goCheck('detail');
$company = Db::name('company')->where('id', $params['id'])->find();
2023-07-19 17:42:15 +08:00
$qualification = json_decode($company['qualification'], true);
2023-07-19 12:42:57 +08:00
if ($company && $qualification['business_license']) {
2023-07-19 17:42:15 +08:00
$data = [
2023-07-19 12:42:57 +08:00
'name' => $company['company_name'],
'organization_code' => $company['organization_code'],
2023-07-19 17:42:15 +08:00
'business_license' => 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/561f8202305171526091317.png', //$qualification['business_license'],
'master_name' => $company['master_name'],
'master_email' => $company['master_email'],
2023-07-19 12:42:57 +08:00
];
$res = app(JunziqianController::class)->organizationReapply($data);
if ($res->success == true) {
Db::name('company')->where('id', $params['id'])->update(['master_email' => $res->data]);
2023-08-25 16:56:15 +08:00
return $this->success('系统认证中,请稍后刷新页面查看', ['email' => $res->data], 1, 1);
2023-07-19 12:42:57 +08:00
} else {
return $this->fail($res->msg);
}
}
}
2023-07-20 17:56:39 +08:00
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();
2023-07-21 11:23:39 +08:00
return $this->success('success', $users);
2023-07-20 17:56:39 +08:00
}
/**
* 所有成员公司
* @param $id
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
2023-07-21 11:05:12 +08:00
public function subordinate($company_id)
{
2023-08-21 17:26:31 +08:00
$ids = Contract::where('party_a', $company_id)->where('status', 1)->where('type', 1)->column('party_b');
if ($ids) {
$result = Company::where('id', 'in', $ids)->field('company_name,id,company_type,company_type company_type_name,area,area area_name,street,street street_name,is_contract,area_manager,area_manager area_manager_name,master_name,master_phone,is_authentication')->select();
} else {
$result = [];
2023-08-18 11:01:11 +08:00
}
2023-08-03 12:47:20 +08:00
$data['lists'] = $result;
2023-07-23 23:17:29 +08:00
return $this->success('success', $data);
}
2023-08-17 10:39:05 +08:00
public function responsible_area()
{
$parmas = $this->request->param();
if (!isset($parmas['key']) && isset($parmas['key']) == '' || !isset($parmas['value']) && isset($parmas['value']) == '') {
return $this->fail('参数错误');
}
if ($parmas['key'] == 'city') {
$where[] = ['area', '=', 0];
}
2023-08-21 17:26:31 +08:00
if ($parmas['value'] == '') {
2023-08-17 15:30:58 +08:00
return $this->fail('参数不能为空');
}
2023-08-17 10:39:05 +08:00
$where[] = [$parmas['key'], '=', $parmas['value']];
switch ($parmas['key']) {
case 'city':
2023-08-21 17:26:31 +08:00
// $geo_area=Db::name('geo_area')->where('city_code', '=', $parmas['value'])->column('area_code');
// $where[] = ['area', 'in', $geo_area];
2023-08-17 10:39:05 +08:00
break;
case 'area':
2023-08-21 17:26:31 +08:00
$street_code = Db::name('geo_street')->where('area_code', '=', $parmas['value'])->column('street_code');
$where[] = ['street', 'in', $street_code];
$where[] = ['village', '=', 0];
2023-08-17 10:39:05 +08:00
break;
case 'street':
2023-08-21 17:26:31 +08:00
$street_code = Db::name('geo_village')->where('street_code', '=', $parmas['value'])->column('village_code');
$where[] = ['village', 'in', $street_code];
$where[] = ['brigade', '=', 0];
break;
case 'village':
// $street_code = Db::name('geo_brigade')->where('street_code', '=', $parmas['value'])->column('village_code');
$where[] = ['village', '=', $parmas['value']];
// $where[] = ['brigade', '=', 0];
2023-08-17 10:39:05 +08:00
break;
}
2023-08-17 16:58:20 +08:00
2023-08-17 10:39:05 +08:00
$res = Company::where($where)->column('responsible_area');
2023-08-21 17:26:31 +08:00
foreach ($res as $k => $v) {
$res[$k] = explode(',', $v);
2023-08-17 10:39:05 +08:00
}
2023-08-21 17:26:31 +08:00
$data = [];
foreach ($res as $k => $v) {
foreach ($v as $kk => $vv) {
if ($vv != '') {
2023-08-17 10:39:05 +08:00
$data[] = $vv;
}
}
}
2023-08-21 17:26:31 +08:00
return $this->success('success', array_unique($data));
2023-08-17 10:39:05 +08:00
}
2023-07-18 18:05:58 +08:00
}