Files
oms/back/application/api/controller/Partner.php

388 lines
14 KiB
PHP
Raw Normal View History

2026-03-10 18:45:36 +08:00
<?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);
}
}