You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

872 lines
35 KiB
PHP

<?php
// 公司关系绑定
namespace Admin\Controller;
use Base\Tool\AggregateClient;
class AggregateRelationController extends AdminController
{
/**
* @var 默认甲方公司类型
*/
const COMPANY_TYPE_DEFAULT_A = '0';
/**
* @var 默认甲方公司类型
*/
const COMPANY_TYPE_DEFAULT_B = '2';
public $aggregateCompanyList = [];
public $aggregateCompanyInfo = '';
public $admininfo;
public $DBModel;
public $DBlogModel;
public $OpAuthList=[];
public $Status = [
"-2"=>"管理员拒绝",
"-1"=>"市场部拒绝",
"0"=>"待审核",
"1"=>"市场部通过",
"2"=>"管理员通过"
];
public $CompanyType = [
"0"=>"己方公司",
"3"=>"聚合下游渠道公司"
];
public $SettlementType=[
"0"=>"",
"1"=>"周结",
"2"=>"月结"
];
public $InvoiceType=[
"0"=>"",
"1"=>"专票",
"2"=>"普票"
];
public $IsPayment=[
"1"=>"",
"2"=>""
];
public $Collection=[
"1"=>"甲方",
"2"=>"乙方"
];
public function _initialize()
{
$this->admininfo = $_SESSION['onethink_admin']['user_auth'];
$this->DBlogModel = M("company_relation_log","tab_");
$this->DBModel = M("company_relation","tab_");
parent::_initialize();
}
//生效列表
public function index()
{
$params = I('get.');
$page = $params['p'] ? intval($params['p']) : 1;
$row = $params['row'] ? intval($params['row']) : 10;
//权限分配
if(!IS_ROOT){
$this->OpAuthList= getModuleControllerAuth();
}
$where['_string'] = '1 = 1';
if(isset($params['company_type'])){
$where['_string'] .= " AND (second_company_type='{$params['company_type']}')";
}
if(isset($params['company_name'])){
$where['_string'] .= " AND (second_company_name LIKE '%{$params['company_name']}%')";
}
if(isset($params['settlement_type'])){
$where['settlement_type'] = $params['settlement_type'];
}
if(isset($params['invoice_type'])){
$where['invoice_type'] = $params['invoice_type'];
}
if(isset($params['is_payment'])){
$where['is_payment'] = $params['is_payment'];
}
$dbres = $this->DBModel->where("first_company_type = 3 or second_company_type = 3")->order("id desc")->select(false);
if(isset($params['export'])){
$dbres = M()->table("({$dbres})a")->where($where)->select();
// $dbres = $dbres->select();
}else{
$dbres = M()->table("({$dbres})a")->page($page, $row)->where($where)->select();
// $dbres = $dbres->page($page, $row);
}
foreach($dbres as $k=>&$v){
$v['settlement_type'] =$this->SettlementType[$v['settlement_type']];
$v['first_company_type'] =$this->CompanyType[$v['first_company_type']];
$v['second_company_type'] =$this->CompanyType[$v['second_company_type']];
$v['invoice_type'] =$this->InvoiceType[$v['invoice_type']];
$v['is_payment'] =$this->IsPayment[$v['is_payment']];
$v['collection'] =$this->Collection[$v['collection']];
$v['oplist'] = $this->listOpAuth($v);
}
if(isset($_REQUEST['export'])){
$GetData = $_GET;
unset($GetData['export']);
addOperationLog(['op_type'=>3,'key'=>getNowDate(),"op_name"=>"导出",'url'=>U(CONTROLLER_NAME.'/'.ACTION_NAME,$GetData)]);
data2csv($dbres,'公司绑定生效列表',array(
"first_company_name"=>"甲方公司",
"first_company_type"=>"甲方公司类型",
"second_company_name"=>"乙方公司",
"second_company_type"=>"乙方公司类型",
"settlement_type"=>"结算周期",
"invoice_type"=>"开票类型",
"invoice_content"=>"开票内容",
"collection"=>"收款方"
));
}
$count = $this->DBModel->field("count(id) count")->where($where)->where("first_company_type = 3 or second_company_type = 3")->find()['count'];
$this->assign('data', $dbres);
$page = set_pagination($count, $row,$params);
if($page) {
$this->assign('_page', $page);
}
$this->assign('Status',$this->Status);
$this->assign('SettlementType',$this->SettlementType);
$this->assign('CompanyType',$this->CompanyType);
$this->assign('InvoiceType',$this->InvoiceType);
$this->assign('IsPayment',$this->IsPayment);
$this->assign('menubtn',$this->listMenuAuth());
$this->display();
}
//审核列表
public function lists()
{
$params = I('get.');
$page = $params['p'] ? intval($params['p']) : 1;
$row = $params['row'] ? intval($params['row']) : 10;
//权限分配
if(!IS_ROOT){
$this->OpAuthList= getModuleControllerAuth();
}
$where['_string'] = '1 = 1';
if(isset($params['company_type'])){
$where['_string'] .= " AND (second_company_type='{$params['company_type']}')";
}
if(isset($params['company_name'])){
$where['_string'] .= " AND (second_company_name LIKE '%{$params['company_name']}%')";
}
if(isset($params['settlement_type'])){
$where['settlement_type'] = $params['settlement_type'];
}
if(isset($params['invoice_type'])){
$where['invoice_type'] = $params['invoice_type'];
}
if(isset($params['is_payment'])){
$where['is_payment'] = $params['is_payment'];
}
if(isset($params['status'])){
$where['status'] = $params['status'];
}
// $this->checkListOrCountAuthRestMap($where);//导出权限
$dbress = $this->DBlogModel->where("first_company_type = 3 or second_company_type = 3")->order("FIELD(status,0,1,-1,-2,2),id desc")->select(false);
if(isset($params['export'])){
$dbres = M()->table("({$dbress})a")->where($where)->select();
}else{
$dbres = M()->table("({$dbress})a")->page($page, $row)->where($where)->select();
}
foreach($dbres as $k=>&$v){
$v['settlement_type'] =$this->SettlementType[$v['settlement_type']];
$v['first_company_type'] =$this->CompanyType[$v['first_company_type']];
$v['second_company_type'] =$this->CompanyType[$v['second_company_type']];
$v['invoice_type'] =$this->InvoiceType[$v['invoice_type']];
$v['is_payment'] =$this->IsPayment[$v['is_payment']];
$v['collection'] =$this->Collection[$v['collection']];
$v['verify_log'] = json_decode($v['verify_log'], true);
if (isset($params['export'])) {
$symbol = "\n";
} else {
$symbol = "<br>";
}
$v["create"]= "{$v['verify_log']['create_user']} {$symbol} {$v['verify_log']['create_time']}";
if(isset($v['verify_log']['market_user'])){
if($v['status'] == -1){
$ts = "审核拒绝";
}else{
$ts = "审核通过";
}
$v["market"]= "{$ts}({$v['verify_log']['market_user']}) {$symbol} {$v['verify_log']['market_time']}";
}else{
$v["market"] = '--';
}
if(isset($v['verify_log']['admin_user'])){
if($v['status'] == -2){
$ts = "审核拒绝";
}else{
$ts = "审核通过";
}
$v["admin"]= "{$ts}({$v['verify_log']['admin_user']}) {$symbol} {$v['verify_log']['admin_time']}";
}else{
$v["admin"] = '--';
}
$v['oplist'] = $this->OpAuth($v);
}
if(isset($_REQUEST['export'])){
$GetData = $_GET;
unset($GetData['export']);
addOperationLog(['op_type'=>3,'key'=>getNowDate(),"op_name"=>"导出",'url'=>U(CONTROLLER_NAME.'/'.ACTION_NAME,$GetData)]);
data2csv($dbres,'公司绑定审核列表',array(
"first_company_name"=>"甲方公司类型",
"first_company_type"=>"甲方公司",
"second_company_name"=>"乙方公司",
"second_company_type"=>"乙方公司类型",
"settlement_type"=>"结算周期",
"invoice_type"=>"开票类型",
"invoice_content"=>"开票内容",
"is_payment"=>"打款流程",
"collection"=>"收款方",
"create"=>"创建记录",
"market"=>"市场部审批",
"admin"=>"管理员审批",
"remark"=>"备注"
));
}
$count = M()->table("({$dbress})a")->field("count(id) count")->where($where)->find()['count'];
$this->assign('data', $dbres);
$page = set_pagination($count, $row,$params);
if($page) {
$this->assign('_page', $page);
}
$this->assign('Status',$this->Status);
$this->assign('SettlementType',$this->SettlementType);
$this->assign('CompanyType',$this->CompanyType);
$this->assign('InvoiceType',$this->InvoiceType);
$this->assign('IsPayment',$this->IsPayment);
$this->assign('menubtn',$this->menuAuth());
$this->display();
}
public function marketAgree(){
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
$ids = $_REQUEST['ids'];
$dbres = $this->DBlogModel->field("id,status,verify_log")->where("id in ({$ids})")->select();
foreach($dbres as $k=>&$v){
if($v['status'] != 0) continue;
$v['verify_log'] = json_decode($v['verify_log'],true);
$v['verify_log']['market_user']=$this->admininfo["username"];
$v['verify_log']['market_time']=date("Y-m-d H:i:s");
$v['verify_log'] = json_encode($v['verify_log']);
$v['status']=1;
$this->DBlogModel->save($v);
addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('index')]);
}
$this->ajaxReturn(array(
'status' => 1,
"info"=>"市场部审核通过成功"
));
}
public function marketRefuse(){
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
$ids = $_REQUEST['ids'];
$dbres = $this->DBlogModel->field("id,status,verify_log")->where("id in ({$ids})")->select();
foreach($dbres as $k=>&$v){
if($v['status'] != 0) continue;
$v['verify_log'] = json_decode($v['verify_log'],true);
$v['verify_log']['market_user']=$this->admininfo["username"];
$v['verify_log']['market_time']=date("Y-m-d H:i:s");
$v['verify_log'] = json_encode($v['verify_log']);
$v['status']=-1;
$this->DBlogModel->save($v);
addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('index')]);
}
$this->ajaxReturn(array(
'status' => 1,
"info"=>"市场部审核拒绝成功"
));
}
public function adminRefuse(){
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
$ids = $_REQUEST['ids'];
$dbres = $this->DBlogModel->field("id,status,verify_log")->where("id in ({$ids})")->select();
foreach($dbres as $k=>&$v){
if($v['status'] != 1 && $v['status'] != 0) continue;
$v['verify_log'] = json_decode($v['verify_log'],true);
$v['verify_log']['admin_user']=$this->admininfo["username"];
$v['verify_log']['admin_time']=date("Y-m-d H:i:s");
$v['verify_log'] = json_encode($v['verify_log']);
$v['status']=-2;
$this->DBlogModel->save($v);
addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('index')]);
}
$this->ajaxReturn(array(
'status' => 1,
"info"=>"管理员审核拒绝成功"
));
}
//管理员成功
public function adminAgree(){
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
$ids = $_REQUEST['ids'];
$dbres = $this->DBlogModel->field("*")->where("id in ({$ids})")->select();
foreach($dbres as $k=>&$v){
if($v['status'] != 1 && $v['status'] != 0) continue;
$v['verify_log'] = json_decode($v['verify_log'],true);
$v['verify_log']['admin_user']=$this->admininfo["username"];
$v['verify_log']['admin_time']=date("Y-m-d H:i:s");
$v['verify_log'] = json_encode($v['verify_log']);
$v['status']=2;
$this->DBlogModel->save($v);
$id = $v['id'];
//保存到其他表
//查找是否存在
unset($v['id']);
unset($v['remark']);
unset($v['status']);
unset($v['verify_log']);
//判断公司id及类型
if($v['first_company_type'] == 0){
$t_company_id = $v['second_company_id'];
$t_company_type = $v['second_company_type'];
}else{
$t_company_id = $v['first_company_id'];
$t_company_type = $v['first_company_type'];
}
$where = "
(first_company_type ='{$t_company_type}' and first_company_id = '{$t_company_id}')
OR
(second_company_type ='{$t_company_type}' and second_company_id = '{$t_company_id}')
";
$hasdb = $this->DBModel->where($where)->find();
if(isset($hasdb['id'])){
$v['id'] = $hasdb['id'];
$this->DBModel->save($v);
}else{
$this->DBModel->add($v);
}
addOperationLog(['op_type'=>1,'key'=>$id,"op_name"=>"管理员审核",'url'=>U('index')]);
}
$this->ajaxReturn(array(
'status' => 1,
"info"=>"管理员审核通过成功"
));
}
public function addRelation()
{
if ($_POST) {
$params = I('post.');
if ($params['first_company_type'] == $params['second_company_type']) {
$this->error('合作甲乙双方不能是同类型公司');
}
if ($params['first_company_type']!=0 && $params['second_company_type']!=0) {
$this->error('合作甲乙双方必须有个是己方公司');
}
$params['remark'] = $params['remark'] ?? '';
$params['status'] = 0;
$verify_log = [
"create_user"=>$this->admininfo["username"],
"create_time"=>date("Y-m-d H:i:s")
];
if($params['first_company_type'] == 1 || $params['second_company_type'] == 1){
//上游公司
$verify_log['market_user']= "AUTO";
$verify_log['market_time']= date("Y-m-d H:i:s");
$params['status'] = 1;
}
$params['verify_log']=json_encode($verify_log);
//判断哪方是非官方
if($params['first_company_type'] > 0){
$where = "
(first_company_type ='{$params['first_company_type']}' and first_company_id = '{$params['first_company_id']}')
OR
(second_company_type ='{$params['first_company_type']}' and second_company_id = '{$params['first_company_id']}')
";
}else{
$where = "
(first_company_type ='{$params['second_company_type']}' and first_company_id = '{$params['second_company_id']}')
OR
(second_company_type ='{$params['second_company_type']}' and second_company_id = '{$params['second_company_id']}')
";
}
$params['first_company_info'] = $this->getCompanyInfo($params['first_company_type'],$params['first_company_id']);
$params['first_company_info']['type'] = 'first_party_info';
$params['first_company_info'] = json_encode($params['first_company_info']);
$params['second_company_info'] = $this->getCompanyInfo($params['second_company_type'],$params['second_company_id']);
$params['second_company_info']['type'] = 'second_party_info';
$params['second_company_info'] = json_encode($params['second_company_info']);
if(!$params['settlement_type']) {
$params['settlement_type'] = 0;
}
if(!$params['invoice_type']) {
$params['invoice_type'] = 0;
}
if ($params['first_company_type'] == 3) {
$company_info = json_decode($params['first_company_info'],true);
$company_info['invoice_item'] = $params['invoice_content'];
$params['first_company_info'] = json_encode($company_info);
}else if ($params['second_company_type'] == 3) {
$company_info = json_decode($params['second_company_info'],true);
$company_info['invoice_item'] = $params['invoice_content'];
$params['second_company_info'] = json_encode($company_info);
}
$r_res = $this->DBModel->where($where)->find();
if(!empty($r_res)){
$this->error('当前合作方已有绑定关系');
}
$hasdb = $this->DBlogModel->where($where)->find();
if(!empty($hasdb)){
//覆盖
$params['id'] = $hasdb['id'];
$this->DBlogModel->save($params);
$id = $hasdb['id'];
}else{
//新增
$id = $this->DBlogModel->add($params);
}
addOperationLog(['op_type'=>0,'key'=>$id,'op_name'=>'新增','url'=>U('index')]);
$this->ajaxReturn(["msg"=>"添加成功,请联系管理员尽快审核","code"=>1,"url"=>U("index")]);
} else {
$this->assign('defaultCompanyTypeA', self::COMPANY_TYPE_DEFAULT_A);
$this->assign('defaultCompanyTypeB', self::COMPANY_TYPE_DEFAULT_B);
$this->assign('companyType', $this->CompanyType);
$this->display();
}
}
// public function editRelation()
// {
// if ($_POST) {
// $p= I('post.');
// if(!isset($p['id'])){
// $this->error('参数错误');
// }
// //查询
// $y = $this->DBlogModel->where("id='{$p['id']}'")->find();
// $p['remark'] = $p['remark'] ?? '';
// if($y['settlement_type'] != $p['settlement_type'] || $y['invoice_type'] != $p['invoice_type'] || $y['invoice_content'] != $p['invoice_content'] || $y['is_payment'] != $p['is_payment'] || $y['collection'] != $p['collection']){
// $p['status'] = 0;
// $p['verify_log'] = json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y-m-d H:i:s")]);
// }
// $this->DBlogModel->save($p);
// addOperationLog(['op_type'=>1,'key'=>$p['id'],'op_name'=>'修改','url'=>U('lists')]);
// $this->ajaxReturn(["msg"=>"修改成功","code"=>1,"url"=>U("lists")]);
// } else {
// $params = I('get.');
// $id = $params['id'] ?? 0;
// $id = intval($id);
// $map['id'] = $id;
// $dbres = $this->DBlogModel->where($map)->find();
// $this->assign('first_company_info',$this->getCompanyInfo($dbres['first_company_type'],$dbres['first_company_id']));
// $this->assign('second_company_info',$this->getCompanyInfo($dbres['second_company_type'],$dbres['second_company_id']));
// $dbres['first_company_type'] =$this->CompanyType[$dbres['first_company_type']];
// $dbres['second_company_type'] =$this->CompanyType[$dbres['second_company_type']];
// $this->assign('data', $dbres);
// $this->display();
// }
// }
public function edit()
{
if ($_POST) {
$p= I('post.');
if(!isset($p['id'])){
$this->error('参数错误');
}
//查询
$y = $this->DBModel->where("id='{$p['id']}'")->find();
// if($y['settlement_type'] != $p['settlement_type'] || $y['invoice_type'] != $p['invoice_type'] || $y['invoice_content'] != $p['invoice_content'] || $y['is_payment'] != $p['is_payment'] || $y['collection'] != $p['collection']){
//修改了进行审核
$p['status'] = 0;
$verify_log = [
"create_user"=>$this->admininfo["username"],
"create_time"=>date("Y-m-d H:i:s")
];
if($y['first_company_type'] == 1 || $y['second_company_type'] == 1){
//上游公司
$verify_log['market_user']= "AUTO";
$verify_log['market_time']= date("Y-m-d H:i:s");
$p['status'] = 1;
}
$p['verify_log'] = json_encode($verify_log);
//其他信息
$p['first_company_id'] = $y['first_company_id'];
$p['first_company_name'] = $y['first_company_name'];
$p['first_company_type'] = $y['first_company_type'];
$p['second_company_id'] = $y['second_company_id'];
$p['second_company_name'] = $y['second_company_name'];
$p['second_company_type'] = $y['second_company_type'];
// } else {
// $verify_log = [
// "create_user"=>$this->admininfo["username"],
// "create_time"=>date("Y-m-d H:i:s")
// ];
// $p['verify_log'] = json_encode($verify_log);
// }
if($p['first_company_type'] > 0){
$where = "
(first_company_type ='{$p['first_company_type']}' and first_company_id = '{$p['first_company_id']}')
OR
(second_company_type ='{$p['first_company_type']}' and second_company_id = '{$p['first_company_id']}')
";
}else{
$where = "
(first_company_type ='{$p['second_company_type']}' and first_company_id = '{$p['second_company_id']}')
OR
(second_company_type ='{$p['second_company_type']}' and second_company_id = '{$p['second_company_id']}')
";
}
$p['first_company_info'] = $this->getCompanyInfo($p['first_company_type'],$p['first_company_id']);
$p['first_company_info']['type'] = 'first_party_info';
$p['first_company_info'] = json_encode($p['first_company_info']);
$p['second_company_info'] = $this->getCompanyInfo($p['second_company_type'],$p['second_company_id']);
$p['second_company_info']['type'] = 'second_party_info';
$p['second_company_info'] = json_encode($p['second_company_info']);
if ($p['collection'] == 1) {
$company_info = json_decode($p['first_company_info'],true);
$company_info['invoice_item'] = $p['invoice_content'];
if ($p['invoice_type'] == 1) {
$company_info['invoice_type'] = "增值税专用发票";
} elseif($p['invoice_type'] == 2) {
$company_info['invoice_type'] = "增值税普通发票";
} else {
$company_info['invoice_type'] = "";
}
$p['first_company_info'] = json_encode($company_info);
}else if ($p['collection'] == 2) {
$company_info = json_decode($p['second_company_info'],true);
$company_info['invoice_item'] = $p['invoice_content'];
if ($p['invoice_type'] == 1) {
$company_info['invoice_type'] = "增值税专用发票";
} elseif($p['invoice_type'] == 2) {
$company_info['invoice_type'] = "增值税普通发票";
} else {
$company_info['invoice_type'] = "";
}
$p['second_company_info'] = json_encode($company_info);
}
$hasdb = $this->DBlogModel->where($where)->find();
if(!empty($hasdb)){
//覆盖
$p['id'] = $hasdb['id'];
$this->DBlogModel->save($p);
$id = $hasdb['id'];
}else{
//新增
$id = $this->DBlogModel->add($p);
}
addOperationLog(['op_type'=>1,'key'=>$p['id'],'op_name'=>'修改','url'=>U('index')]);
$this->ajaxReturn(["msg"=>"修改成功,请联系管理员尽快审核","code"=>1,"url"=>U("index")]);
} else {
$params = I('get.');
$id = $params['id'] ?? 0;
$id = intval($id);
$map['id'] = $id;
$dbres = $this->DBModel->where($map)->find();
$first_company_info = $this->getCompanyInfo($dbres['first_company_type'],$dbres['first_company_id']);
$first_company_info['invoice_type'] = strstr($first_company_info['invoice_type'],'专') ? 1 : (strstr($first_company_info['invoice_type'],'普')?2:'');
$this->assign('first_company_info',$first_company_info);
$second_company_info = $this->getCompanyInfo($dbres['second_company_type'],$dbres['second_company_id']);
$second_company_info['invoice_type'] = strstr($second_company_info['invoice_type'],'专') ? 1 : (strstr($second_company_info['invoice_type'],'普')?2:'');
$this->assign('second_company_info',$second_company_info);
$dbres['first_company_type'] =$this->CompanyType[$dbres['first_company_type']];
$dbres['second_company_type'] =$this->CompanyType[$dbres['second_company_type']];
$this->assign('data', $dbres);
$this->display();
}
}
public function del()
{
if(!isset($_REQUEST['id'])){
$this->error('参数错误');
}
$id = $_REQUEST['id'];
$res = $this->DBModel->where("id='{$id}'")->delete();
if($res !== false){
addOperationLog(['op_type'=>2,'key'=>$id,'op_name'=>'删除','url'=>U('index')]);
$this->ajaxReturn(["msg"=>"删除成功","code"=>1,"url"=>U("index")]);
}else{
$this->error('删除错误');
}
}
public function delRelation()
{
if(!isset($_REQUEST['id'])){
$this->error('参数错误');
}
$id = $_REQUEST['id'];
$res = $this->DBlogModel->where("id='{$id}'")->delete();
if($res !== false){
addOperationLog(['op_type'=>2,'key'=>$id,'op_name'=>'删除','url'=>U('lists')]);
$this->ajaxReturn(["msg"=>"删除成功","code"=>1,"url"=>U("lists")]);
}else{
$this->error('删除错误');
}
}
public function getAggegateCompanyList($b = '') {
$client = new AggregateClient();
$result = $client->api('aggregate-companylist', ['id'=>$b]);
$this->aggregateCompanyList = $result['data'];
}
public function getAggegateCompanyInfo($b = '') {
$client = new AggregateClient();
$result = $client->api('aggregate-companyinfo', ['id'=>$b]);
$this->aggregateCompanyInfo = $result['data'];
}
public function getCompanyList($type)
{
if($type ==''){
$this->success([],'',true);
}
$companyInfo = [];
if($type == 0){
//己方公司
$companyInfo = M("CompanyInfo","tab_")->field("id,partner company_name,link_man,link_phone,invoice_type,invoice_item,1 type")->where("status='1'")->select();
foreach ($companyInfo as $key => $value) {
if (strstr($value['invoice_type'],'专')) {
$companyInfo[$key]['invoice_type'] = 1;
} else if (strstr($value['invoice_type'],'普')) {
$companyInfo[$key]['invoice_type'] = 2;
}
}
}
$b = $this->getBindCompanyId($type);
if($type == 3){
//获取聚合下游公司
$this->getAggegateCompanyList($b);
//聚合下游
$companyInfo = $this->aggregateCompanyList;
}
foreach($companyInfo as $k=>&$v){
if(isset($v['company_belong'])){
$v['company_belong'] = getCompanyBlong($v['company_belong']);
}
if(isset($v['company_type'])){
$v['company_type'] = ($v['company_type'] == 1 ?"公司" :'个人');
}
if(isset($v['link_phone']) && $v['link_phone']==0){
$v['link_phone'] = '';
}
}
$this->success($companyInfo,'',true);
}
public function getCompanyInfo($type,$id)
{
$companyInfo = [];
if($type == 0){
//己方公司
$companyInfo = M("CompanyInfo","tab_")->field("id,partner company_name,partner,link_man,link_phone,address,company_tax_no,payee_name,bank_account,opening_bank,invoice_item,invoice_type,register_phone,register_address")->where("status='1' AND id='{$id}'")->find();
if (strstr($companyInfo['invoice_type'],'专')) {
$companyInfo['invoice_type'] = "增值税专用发票";
} else if (strstr($companyInfo['invoice_type'],'普')) {
$companyInfo['invoice_type'] = "增值税普通发票";
}
}
if($type == 1){
//上游
$companyInfo = M("Partner","tab_")->field("id,partner company_name,company_type,link_man,link_phone")->where("status='1' AND id='{$id}'")->find();
}
if($type == 2){
//下游游
$companyInfo = M("PromoteCompany","tab_")->field("id,company_belong,company_name,company_type,settlement_contact link_man,contact_phone link_phone")->where("status='1' AND id='{$id}'")->find();
}
if($type == 3) {
$this->getAggegateCompanyInfo($id);
//聚合下游
$companyInfo = $this->aggregateCompanyInfo;
if($companyInfo['invoice_type'] == 1) {
$companyInfo['invoice_type'] = '增值税专用发票';
} else if($companyInfo['invoice_type'] == 2) {
$companyInfo['invoice_type'] = '增值税普通发票';
}
}
if(isset($companyInfo['company_belong'])){
$companyInfo['company_belong'] = getCompanyBlong($companyInfo['company_belong']);
}
if(isset($companyInfo['company_type'])){
$companyInfo['company_type'] = ($companyInfo['company_type'] == 1 ? "公司" :'个人');
}
if(isset($companyInfo['link_phone']) && $companyInfo['link_phone']==0){
$companyInfo['link_phone'] = '';
}
return $companyInfo;
}
/**
* 获取已绑定公司id
* @param [type] $type 1 上游 /2下游
* @return void
*/
protected function getBindCompanyId($type){
$dbres = M("CompanyRelation","tab_")->where("first_company_type = {$type} OR second_company_type = {$type}")->field("first_company_id,second_company_id,first_company_type,second_company_type")->select();
if(empty($dbres)){
return false;
}else{
$sendid = [];
foreach ($dbres as $k => $v) {
if($v['first_company_type'] == $type){
$sendid[] = $v['first_company_id'];
}else{
$sendid[] = $v['second_company_id'];
}
}
return implode(",",$sendid);
}
}
protected function listMenuAuth(){
$addurl = U("addRelation");
$mentBtn = [
"addRelation"=>"<a class='butn' href='{$addurl}'>新增公司绑定</a>"
];
$resarr = [];
foreach ($mentBtn as $k => $v) {
if(IS_ROOT){
$resarr[] = $v;
}else{
if(in_array('Admin/aggregateRelation/'.$k,$this->OpAuthList)){
$resarr[] = $v;
}
}
}
return $resarr;
}
protected function listOpAuth($info){
$id = $info['id'];
//原始列表
$opBtn = [
"edit"=>"<a class='confirm edit' data-id='{$id}'>编辑</a>",
"del"=>"<a class='confirm del' data-id='{$id}' style='color: red;'>删除</a>",
];
//操作对应菜单
$optist = ["edit","del"];
$resarr = [];
foreach ($optist as $k => $v) {
if(IS_ROOT){
$resarr[] = $opBtn[$v];
}else{
if(in_array('Admin/aggregateRelation/'.$v,$this->OpAuthList)){
$resarr[] = $opBtn[$v];
}
}
}
return $resarr;
}
protected function menuAuth()
{
$mentBtn = [
// "marketAgree"=>"<a class='butn' id='marketAgree'>市场部审批通过</a>",
// "marketRefuse"=>"<a class='butn' id='marketRefuse' style='background-color: red;'>市场部审核拒绝</a>",
"adminAgree"=>"<a class='butn' id='adminAgree'>管理员审核通过</a>",
"adminRefuse"=>"<a class='butn' id='adminRefuse' style='background-color: red;'>管理员审核拒绝</a>"
];
$resarr = [];
foreach ($mentBtn as $k => $v) {
if(IS_ROOT){
$resarr[] = $v;
}else{
if(in_array('Admin/aggregateRelation/'.$k,$this->OpAuthList)){
$resarr[] = $v;
}
}
}
return $resarr;
}
protected function OpAuth($info)
{
$id = $info['id'];
//原始列表
$opBtn = [
"editRelation"=>"<a class='confirm editRelation' data-id='{$id}'>编辑</a>",
"delRelation"=>"<a class='confirm delRelation' data-id='{$id}' style='color: red;'>删除</a>",
];
//操作对应菜单
if($info['status'] == 2){
$optist = [];
}else{
$optist = ["delRelation"];
}
//
$resarr = [];
foreach ($optist as $k => $v) {
if(IS_ROOT){
$resarr[] = $opBtn[$v];
}else{
if(in_array($v,$this->OpAuthList)){
$resarr[] = $opBtn[$v];
}
}
}
return $resarr;
}
protected function error($data)
{
header('Content-Type:application/json; charset=utf-8');
$data =json_encode(['msg'=>$data,"code"=>4000],JSON_UNESCAPED_UNICODE);
exit($data);
}
}