388 lines
14 KiB
PHP
388 lines
14 KiB
PHP
<?php
|
||
|
||
namespace app\api\controller;
|
||
|
||
use think\Config;
|
||
use think\Controller;
|
||
use think\Db;
|
||
use think\Log;
|
||
use think\Model;
|
||
use think\Request;
|
||
use think\cache\driver\Memcache;
|
||
|
||
|
||
header("Access-Control-Allow-Origin:*");
|
||
header("Access-Control-Allow-Methods:GET, POST, OPTIONS, DELETE");
|
||
header("Access-Control-Allow-Headers:DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding");
|
||
|
||
|
||
class Partner extends Common
|
||
{
|
||
|
||
//获取供应商服务类型及公司信息
|
||
public function GetSupplierServiceTypeList()
|
||
{
|
||
|
||
//一级服务类
|
||
$FirstLeveType = db('partner_service_type')->where('super_type_id', 0)->field('type_id as id, type_name as name')->select();
|
||
|
||
for ($i = 0; $i < count($FirstLeveType); $i++)
|
||
{
|
||
//二级服务类
|
||
$SecondLeveType = db('partner_service_type')->where('super_type_id', $FirstLeveType[$i]['id'])->field('type_id as id, type_name as name')->select();
|
||
|
||
for ($j = 0; $j < count($SecondLeveType); $j++)
|
||
{
|
||
//二级服务供应商信息
|
||
$ThridLeveType = db('partner_company')->where('service_type', $SecondLeveType[$j]['id'])->field('company_id as id, company_name as name')->select();
|
||
$SecondLeveType[$j]['sub_type'] = $ThridLeveType;
|
||
}
|
||
|
||
$FirstLeveType[$i]['sub_type'] = $SecondLeveType;
|
||
}
|
||
return $this->sendSuccess($FirstLeveType);
|
||
}
|
||
|
||
//添加供应商服务类型
|
||
public function AddSupplierServiceType()
|
||
{
|
||
$param = request()->post();
|
||
$ret = [];
|
||
|
||
if ($param['type_id']>0)
|
||
{
|
||
//添加二级服务类型
|
||
$ret = db('partner_service_type')->where('type_id', $param['type_id'])->field('type_id,super_type_id')->find();
|
||
}
|
||
else
|
||
{
|
||
//添加一级服务类型
|
||
$ret['type_id'] = 0;
|
||
}
|
||
|
||
if ($ret != null)
|
||
{
|
||
$insert = [];
|
||
$insert['type_name'] = $param['type_name'];
|
||
$insert['super_type_id'] = $ret['type_id'];
|
||
$insert['create_time'] = date('Y-m-d H:i:s');
|
||
db('partner_service_type')->insert($insert);
|
||
}
|
||
}
|
||
|
||
//获取合作伙伴公司及联系人信息
|
||
public function GetPartnerInfo()
|
||
{
|
||
$param = request()->post();
|
||
//$param['company_id'] = 69;
|
||
|
||
$PartnerInfo = db('partner_company')->where('company_id', $param['company_id'])->find();
|
||
$contacts = db('partner_contacts')->where('company_id', $param['company_id'])->where('del_time', null)->select();
|
||
|
||
if (1 == $param['partner_type'])
|
||
{
|
||
$projects = db('project_info')->alias('i')
|
||
->join('project_state s', 's.id =i.project_state', 'left')
|
||
->where('i.customer_id', $param['company_id'])
|
||
->field('i.*, s.desp as project_state_desp ')
|
||
->select();
|
||
}
|
||
else
|
||
{
|
||
$projects = db('project_partner')->alias('p')
|
||
->join('project_info i', 'p.project_id =i.project_id', 'left')
|
||
->join('project_state s', 's.id =i.project_state', 'left')
|
||
->where('p.company_id', $param['company_id'])
|
||
->where('p.company_type & 0x04', 4)
|
||
->field('i.*, s.desp as project_state_desp ')
|
||
->select();
|
||
}
|
||
|
||
$PartnerInfo['contacts'] = $contacts;
|
||
$PartnerInfo['projects'] = $projects;
|
||
|
||
//dump($PartnerInfo);
|
||
return $this->sendSuccess($PartnerInfo);
|
||
}
|
||
|
||
//添加合作伙伴公司信息
|
||
public function AddPartnerCompanyInfo()
|
||
{
|
||
$param = request()->post();
|
||
$insert['company_name'] = $param['company_name'];
|
||
$insert['company_intro'] = $param['company_intro'];
|
||
$insert['company_type'] = $param['company_type'];
|
||
$insert['create_time'] = $param['create_time'];
|
||
if(isset($param['company_url']) && $param['company_url'] != '')
|
||
{
|
||
$insert['company_url'] = $param['company_url'];
|
||
}
|
||
|
||
if($param['company_type'] & 0x04)
|
||
{
|
||
//合作伙伴是供应商,需要更新服务类型
|
||
$insert['service_type'] = $param['service_type'];
|
||
}
|
||
else
|
||
{
|
||
//合作伙伴是客户,服务类型默认为0
|
||
$insert['service_type'] = 0;
|
||
}
|
||
|
||
if ($param['create_time'] == '')
|
||
{
|
||
$insert['create_time'] = date('Y-m-d H:i:s');
|
||
}
|
||
db('partner_company')->insert($insert);
|
||
return $this->sendSuccess('添加合作伙伴信息成功');
|
||
}
|
||
|
||
//更新合作伙伴公司信息
|
||
public function UpdatePartnerCompanyInfo()
|
||
{
|
||
$param = request()->post();
|
||
if($param != null){
|
||
$update = [];
|
||
$update['company_name'] = $param['company_name'];
|
||
$update['company_intro'] = $param['company_intro'];
|
||
if($param['company_url'] != '')
|
||
{
|
||
$update['company_url'] = $param['company_url'];
|
||
}
|
||
|
||
if($param['company_type'] & 0x04)
|
||
{
|
||
//合作伙伴是供应商,需要更新服务类型
|
||
$update['service_type'] = $param['service_type'];
|
||
}
|
||
else
|
||
{
|
||
//合作伙伴是客户,服务类型默认为0
|
||
$update['service_type'] = 0;
|
||
}
|
||
|
||
$ret = db('partner_company')->where('company_id',$param['company_id'])->update($update);
|
||
if($ret)
|
||
{
|
||
return $this->sendSuccess('修改公司信息成功');
|
||
}
|
||
else
|
||
{
|
||
return $this->sendError('修改公司信息失败');
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
//添加合作伙伴联系人信息
|
||
public function AddPartnerContractsInfo()
|
||
{
|
||
$param = request()->post();
|
||
if($param != null)
|
||
{
|
||
$param['create_time'] = date('Y-m-d H:i:s');
|
||
db('partner_contacts')->insert($param);
|
||
return $this->sendSuccess('添加联系人成功');
|
||
}
|
||
else
|
||
{
|
||
return $this->sendError('添加联系人失败,参数为空');
|
||
}
|
||
}
|
||
|
||
//更新合作伙伴联系人信息
|
||
public function UpdatePartnerContractsInfo()
|
||
{
|
||
$param = request()->post();
|
||
if($param != null)
|
||
{
|
||
db('partner_contacts')->where('contacts_id', $param['contacts_id'])->update($param);
|
||
return $this->sendSuccess('更新联系人成功');
|
||
}
|
||
else
|
||
{
|
||
return $this->sendError('更新联系人失败,参数为空');
|
||
}
|
||
}
|
||
|
||
public function DelPartnerContractsInfo()
|
||
{
|
||
$param = request()->post();
|
||
if($param != null)
|
||
{
|
||
$update = [];
|
||
$update['del_time'] = date('Y-m-d H:i:s');
|
||
db('partner_contacts')->where('contacts_id', $param['contacts_id'])->update($update);
|
||
return $this->sendSuccess('删除联系人成功');
|
||
}
|
||
else
|
||
{
|
||
return $this->sendError('','删除联系人失败,参数为空');
|
||
}
|
||
}
|
||
|
||
//获取与指定合作伙伴的合作项目
|
||
public function GetPartnerProjectList()
|
||
{
|
||
$param = request()->post();
|
||
$result = db('project_info')->where('customer_id', $param['company_id'])->select();
|
||
return $this->sendSuccess($result);
|
||
}
|
||
|
||
//获取客户类型及公司信息
|
||
public function GetCustomerTypeList()
|
||
{
|
||
$IntendList = [];
|
||
$CustomerList = [];
|
||
//查找所有的签约客户公司
|
||
$result = db('partner_company')->where('company_type & 0x01', 1)
|
||
->field('company_id as id, company_name as name')
|
||
->select();
|
||
|
||
for ($i=0; $i<count($result); $i++)
|
||
{
|
||
$res = db('project_info')->where('customer_id', $result[$i]['id'])
|
||
->field('project_id as id, project_name as name')
|
||
->where('project_state', '>', 1)
|
||
->select();
|
||
if (count($res) > 0)
|
||
{
|
||
$res = db('project_info')->where('customer_id', $result[$i]['id'])
|
||
->field('project_id as id, project_name as name')
|
||
//->where('project_state', '>', 1)
|
||
->select();
|
||
$item = $result[$i];
|
||
$item['sub_type'] = $res;
|
||
$CustomerList[] = $item;
|
||
}
|
||
else
|
||
{
|
||
$res = db('project_info')->where('customer_id', $result[$i]['id'])
|
||
->field('project_id as id, project_name as name')
|
||
->where('project_state', 1)
|
||
->select();
|
||
|
||
$item = $result[$i];
|
||
$item['sub_type'] = $res;
|
||
$IntendList[] = $item;
|
||
}
|
||
}
|
||
|
||
//查找所有的业主公司
|
||
$OwnerList = db('partner_company')->where('company_type & 0x02', 2)
|
||
->field('company_id as id, company_name as name')
|
||
->select();
|
||
$ret = [];
|
||
$item = [];
|
||
$item['id'] = 1;
|
||
$item['name'] = '合作客户';
|
||
$item['sub_type'] = $CustomerList;
|
||
$ret[] = $item;
|
||
$item['id'] = 1;
|
||
$item['name'] = '意向客户';
|
||
$item['sub_type'] = $IntendList;
|
||
$ret[] = $item;
|
||
$item['id'] = 2;
|
||
$item['name'] = '业主客户';
|
||
$item['sub_type'] = $OwnerList;
|
||
$ret[] = $item;
|
||
|
||
return $this->sendSuccess($ret);
|
||
}
|
||
|
||
public function AddProjectInfo()
|
||
{
|
||
$param = request()->post();
|
||
$insert_info = [];
|
||
$insert_info['project_number'] = $param['project_number'];
|
||
$insert_info['project_name'] = $param['project_name'];
|
||
$insert_info['project_type'] = $param['project_type'];
|
||
$insert_info['create_time'] = $param['create_time'];
|
||
$insert_info['customer_id'] = $param['customer_id'];
|
||
$insert_info['project_intro'] = $param['project_intro'];
|
||
$insert_info['project_state'] = 1;
|
||
db('project_info')->insert($insert_info);
|
||
}
|
||
|
||
public function UpdateProjectInfo()
|
||
{
|
||
$param = request()->post();
|
||
if($param != null){
|
||
$update = [];
|
||
$update['project_number'] = $param['project_number'];
|
||
$update['project_name'] = $param['project_name'];
|
||
$update['create_time'] = $param['create_time'];
|
||
$update['project_type'] = $param['project_type'];
|
||
$update['project_intro'] = $param['project_intro'];
|
||
if (isset($param['project_state']))
|
||
{
|
||
$update['project_state'] = $param['project_state'];
|
||
}
|
||
$ret = db('project_info')->where('project_id',$param['project_id'])->update($update);
|
||
if($ret){
|
||
return $this->sendSuccess('修改成功');
|
||
}else{
|
||
return $this->sendError('修改失败');
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
public function GetContactsList()
|
||
{
|
||
$param = request()->param();
|
||
|
||
$ret = db('partner_contacts')->where('company_id', $param['company_id'])->field('contacts_id, contacts_name, contacts_idcard')->select();
|
||
return $this->sendSuccess($ret);
|
||
}
|
||
|
||
|
||
public function GetPartnerList()
|
||
{
|
||
$ret = db('partner_company')->select();
|
||
return $this->sendSuccess($ret);
|
||
|
||
}
|
||
|
||
//获取所有供应商信息
|
||
public function GetSupplierList()
|
||
{
|
||
$ret = db('partner_company')->where('company_type & 0x04', 4)->select();
|
||
return $this->sendSuccess($ret);
|
||
}
|
||
|
||
public function AddProjectPartner()
|
||
{
|
||
$param = request()->post();
|
||
if($param == null){
|
||
return $this->sendError('参数为空');
|
||
}
|
||
$par = db('project_partner')->where('project_id',$param['project_id'])->where('company_id',$param['company_id'])->find();
|
||
if(!$par){
|
||
$Company = db('partner_company')->where('company_id',$param['company_id'])->field('company_type')->find();
|
||
$insert = [];
|
||
$insert['project_id'] = $param['project_id'];
|
||
$insert['company_id'] = $param['company_id'];
|
||
$insert['company_type'] = $Company['company_type'];
|
||
$ret = db('project_partner')->insert($insert);
|
||
if ($ret){
|
||
return $this->sendSuccess('添加成功');
|
||
}else{
|
||
return $this->sendError('添加失败');
|
||
}
|
||
}
|
||
return $this->sendError('该项目已存在该合作伙伴');
|
||
}
|
||
|
||
//更具项目ID获取供应商信息
|
||
public function GetProjectSupplierList()
|
||
{
|
||
$param = request()->post();
|
||
$ret = db('project_partner')->alias('pp')
|
||
->Join('partner_company pc', 'pp.company_id = pc.company_id','left')
|
||
->where('pp.project_id', $param['project_id'])
|
||
->field('pp.*, pc.company_name')
|
||
->select();
|
||
return $this->sendSuccess($ret);
|
||
}
|
||
} |