Files
oms/back/application/api/controller/Partner.php
2026-03-25 15:18:15 +08:00

390 lines
14 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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')
->order('company_name asc')
->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')
->order('company_name asc')
->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);
}
}