|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049 |
- <?php
-
- /**张帅
- * 操作渠道商
- * Class channel
- */
- class channel extends base
- {
- /**添加渠道商
- * @param $param
- */
- public function addChannel($param)
- {
- $supplier_name = isset($param['supplier_name']) ? trim($param['supplier_name']) : false;//供应商名称
- $area_id = isset($param['area_id']) ? trim($param['area_id']) : false;//所属区域市id
- $manage_type = isset($param['manage_type']) ? trim($param['manage_type']) : false;//经营性质 1:公司 2:个人
- $company_name = isset($param['company_name']) ? trim($param['company_name']) : false;//公司名称
- $id_card = isset($param['id_card']) ? trim($param['id_card']) : false;//身份证号(企业传空)
- $sale = isset($param['sale']) ? trim($param['sale']) : false;//销售方式
- $sett_type = isset($param['sett_type']) ? trim($param['sett_type']) : false;//结算方式 (授信:275,预付:288,单结:292)
- $sett_frequency = isset($param['sett_frequency']) ? trim($param['sett_frequency']) : false;//结算周期(日结:293,周结:294,月结:295)
- $account_bank = isset($param['account_bank']) ? trim($param['account_bank']) : false;//开户银行
- $account_num = isset($param['account_num']) ? trim($param['account_num']) : false;//银行账号
- $account_name = isset($param['account_name']) ? trim($param['account_name']) : false;//账号名称
- $link_info = isset($param['link_info']) ? trim($param['link_info']) : false;//联系人详情
- $sales_man = isset($param['sales_man']) ? trim($param['sales_man']) : false;//业务员
-
- if (!$supplier_name || !$area_id || !$manage_type || !$company_name || false === $sale || !$sett_type || !$sett_frequency || false === $account_bank || false === $account_num || false === $account_name || false === $link_info || !$sales_man)
- {
- $json['code'] = '2';
- $json['info'] = '缺少必要参数';
- return $json;
- }
-
- $sql = "SELECT
- supplier_name
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- AND supplier_name = '" . $supplier_name . "' AND supplier_type=301 ";
- $result = $this->query($sql);
- if(count($result) > 0)
- {
- $json['code'] = '1';
- $json['info'] = '用户名已存在';
- return $json;
- }
-
- //1.获取销售方式详情数组
- $sale_array = $this->getSale($sale);
-
- //2.获取联系人详情数组
- $link_array = $this->getLinkInfo($link_info);
-
- //3.向数据库中中添加数据
- $res = $this->addPdoChannel($supplier_name, $area_id, $manage_type, $company_name, $id_card, $sale_array, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_array,$sales_man);
- return $res;
- }
-
- //获取销售方式详情数组
- private function getSale($sale)
- {
- if ($sale == '') {
- $sale_array = array();
- return $sale_array;
- }
- $sale = explode(",", $sale);
-
- $key = $_COOKIE['memcache'];
- $sale_memcache = $this->get_memcache('ZHANGS_SALE' . $key);
- $i = 0;
- foreach ($sale as $item => $value) {
- $sale_array[$i] = $sale_memcache[$value];
- $i++;
- }
- return $sale_array;
- }
-
- //获取联系人详情数组
- private function getLinkInfo($link_info)
- {
- if ($link_info == '') {
- $link_array = array();
- return $link_array;
- }
- $link_info = explode(",", $link_info);
- $key = $_COOKIE['memcache'];
- $link_memcache = $this->get_memcache('ZHANGS_LINK' . $key);
- $i = 0;
- foreach ($link_info as $item => $value) {
- $status = 0;
- if (empty($link_memcache[$value]['link_name']) || empty($link_memcache[$value]['contact_name'])) {
- $status = 1;
- }
- if ($status == 0) {
- $link_array[$i] = $link_memcache[$value];
- $i++;
- }
- }
- return $link_array;
- }
-
- //在数据库中添加供应商信息
- private function addPdoChannel($supplier_name, $area_id, $manage_type, $company_name, $id_card, $sale_array, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_array,$sales_man)
- {
- $user_id = $this->user_id;//$_COOKIE['user_id'];
-
- //运营主体
- $main_corp_id_sql = "select main_corp_id from base_user where id = " . $user_id . ' and cancel_flag = 0 limit 1';
- $main_corp_id = $this->query($main_corp_id_sql);
- $main_corp_id = $main_corp_id[0]['main_corp_id'];
-
- $time = date('Y-m-d H:i:s', time());
- //1.添加base_supplier表
- $is_disabled = $user_id==1?0:137; //供应商默认为待审核:137,如果是超级管理员,直接是0
- $this->user_id;
- $supplier_sql = "INSERT INTO base_supplier (
- create_user_id,
- create_time,
- supplier_type,
- supplier_name,
- area_id,
- manage_type,
- company_name,
- id_card,
- is_disabled,
- sett_type,
- sett_frequency,
- account_bank,
- account_num,
- account_name,
- sales_man,
- main_corp_id
- )
- VALUES
- (" . $user_id . ",'" . $time . "',301,'" . $supplier_name . "'," . $area_id . "," . $manage_type . ",'" . $company_name . "','" . $id_card . "',$is_disabled," . $sett_type . "," . $sett_frequency . ",'" . $account_bank . "','" . $account_num . "','" . $account_name . "','" . $sales_man . "'," . $main_corp_id .")";
- $result1 = $this->insert($supplier_sql);
- //新增的渠道商id
- $supplier_id = $result1;
- $insert_sql = array();
- //2.添加base_supplier_sale表
- if(count($sale_array) > 0)
- {
- $sale_sql = "INSERT INTO base_supplier_sale (
- create_user_id,
- create_time,
- supplier_id,
- prod_supplier_id,
- product_type,
- parent_type,
- sale_type,
- commision_flag,
- commision_type,
- back_commision_type,
- back_commision_method,
- back_percent,
- back_value
- )
- VALUES ";
- foreach ($sale_array as $key => $v) {
- $sale_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $supplier_id . "," . $v['prod_supplier_id'] . "," . $v['product_type'] . "," . $v['parent_type'] . "," . $v['sale_type'] . "," . $v['commision_flag'] . "," . $v['commision_type'] . "," . $v['back_commision_type'] . "," . $v['back_commision_method'] . ",'" . $v['back_percent'] . "','" . $v['back_value'] . "')";
- }
- $sale_sql .= implode(",", $sale_sql_array);
- $insert_sql[] = $sale_sql;
- }
- //3.添加base_supplier_link表
- if(count($link_array) > 0)
- {
- $link_sql = "INSERT INTO base_supplier_link (
- create_user_id,
- create_time,
- supplier_id,
- link_name,
- contact_name,
- contact_mobile,
- contact_telphone,
- fax,
- email,
- remark
- )
- VALUES ";
-
- foreach ($link_array as $key => $v) {
- $link_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $supplier_id . ",'" . $v['link_name'] . "','" . $v['contact_name'] . "','" . $v['contact_mobile'] . "','" . $v['contact_telphone'] . "','" . $v['fax'] . "','" . $v['email'] . "','" . $v['remark'] . "')";
- }
- $link_sql .= implode(",", $link_sql_array);
- $insert_sql[] = $link_sql;
- }
- if(count($insert_sql) > 0)
- {
- $insert_sql = implode(';',$insert_sql);
- zzcsUtils::writeLog($insert_sql);
- $result2 = $this->exec($insert_sql);
- }
- else
- {
- $result2 = true;
- }
-
- if($result1 && $result2)
- {
- //4.删除缓存
- $key = $_COOKIE['memcache'];
- $this->delete_memcache('ZHANGS_LINK' . $key);
- $this->delete_memcache('ZHANGS_SALE' . $key);
- $json['code'] = '0';
- $json['info'] = '添加渠道商成功';
- }
- else
- {
- $json['code'] = '1';
- $json['info'] = '添加渠道商失败';
- }
- return $json;
- }
-
- /**
- * 获取渠道商详情
- * @param $param
- */
- public function getChannelInfo($param)
- {
- $channel_id = isset($param['channel_id']) ? trim($param['channel_id']) : false;//渠道商id
- if(!$channel_id)
- {
- $json['code'] = '2';
- $json['info'] = '缺少必要参数';
- return $json;
- }
- //1.获取渠道商基本信息
- $channel = $this->getChannelDetail($channel_id);
- if(isset($channel['code']) && $channel['code'] == '1')
- {
- return $channel;
- }
-
- //2.获取销售类型基本信息
- $channel['sale'] = $this->getSaleDetail($channel_id);
-
- //3.获取联系信息
- $channel['link_info'] = $this->getLinkDetail($channel_id);
-
- //4将销售信息,联系信息存入缓存
- $this -> setLinkMen($channel['sale'],$channel['link_info']);
-
- $json['code'] = '0';
- $json['info'] = '返回数据成功';
- $json['list'] = $channel;
- return $json;
- }
-
- //获得base_supplier表数据
- private function getChannelDetail($channel_id)
- {
- $sql = "SELECT
- id,supplier_name,area_id,manage_type,company_name,id_card,sett_type,sett_frequency,account_bank,account_num,account_name,sales_man
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- AND id = " . $channel_id;
- $res = $this->query($sql);
- if(count($res) == 0 )
- {
- $json['code'] = '1';
- $json['info'] = '数据已不存在';
- return $json;
- }
-
- $res = $res[0];
- $area = $this -> getArea($res['area_id']);
-
- if(isset($area['code']) && $area['code'] == '1')
- {
- return $area;
- }
- unset($res['area_id']);
- $res = array_merge($res,$area);
-
- return $res;
- }
-
- //获取所属城市基本信息
- private function getArea($area_id)
- {
- $sql = "SELECT
- id,area_name,parent_id
- FROM
- base_area
- WHERE
- cancel_flag = 0
- AND id = " . $area_id;
-
- $res1 = $this->query($sql);
-
- if(count($res1) == 0)
- {
- $json['code'] = '1';
- $json['info'] = 'base_area出错';
- return $res1;
- }
-
- $res1 = $res1[0];
- if($res1['parent_id'] == 0)
- {
- $res['province_id'] = $res1['id'];
- $res['province_name'] = $res1['area_name'];
- }
- else
- {
- $sql = "SELECT
- id,area_name
- FROM
- base_area
- WHERE
- cancel_flag = 0
- AND id = " . $res1['parent_id'];
-
- $res2 = $this->query($sql);
- $res2 = $res2[0];
-
- if(count($res2) == 0)
- {
- $json['code'] = '1';
- $json['info'] = 'base_area出错';
- return $json;
- }
- $res['province_id'] = $res2['id'];
- $res['province_name'] = $res2['area_name'];
- $res['city_id'] = $res1['id'];
- $res['city_name'] = $res1['area_name'];
- }
- return $res;
- }
-
- //获取销售信息
- private function getSaleDetail($channel_id)
- {
- $sql = "SELECT
- id,prod_supplier_id,product_type,parent_type,sale_type,commision_flag,commision_type,back_commision_type,back_commision_method,back_percent,back_value
- FROM
- base_supplier_sale
- WHERE
- cancel_flag = 0
- AND supplier_id = " . $channel_id;
- $res = $this->query($sql);
- return $res;
- }
-
- //获取联系信息
- private function getLinkDetail($channel_id)
- {
- $sql = "SELECT
- id,link_name,contact_name,contact_mobile,contact_telphone,fax,email,remark
- FROM
- base_supplier_link
- WHERE
- cancel_flag = 0
- AND supplier_id = " . $channel_id;
- $res = $this->query($sql);
- return $res;
- }
-
- //将销售信息,联系信息存入缓存
- private function setLinkMen($sale,$link)
- {
- if(!isset($_COOKIE['memcache']))
- {
- $time = time();
- setcookie('memcache',time(),time()+36000,"/");
- $_COOKIE['memcache'] = $time;
- }
-
- $key = $_COOKIE['memcache'];
-
- foreach($sale as $k=>$v)
- {
- $sale_memcache[$v['id']] = $v;
- $sale_memcache[$v['id']]['sale_id'] = $v['id'];
- unset($sale_memcache[$v['id']]['id']);
- }
- $this->set_memcache("ZHANGS_SALE" . $key,$sale_memcache);
-
- foreach($link as $k=>$v)
- {
- $link_memcache[$v['id']] = $v;
- $link_memcache[$v['id']]['link_id'] = $v['id'];
- unset($link_memcache[$v['id']]['id']);
- }
- $this->set_memcache("ZHANGS_LINK" . $key,$link_memcache);
- return true;
- }
-
- /**
- * 修改渠道商信息
- * @param $param
- */
- public function updateChannel($param)
- {
- $channel_id = isset($param['channel_id']) ? trim($param['channel_id']) : false;//渠道商id
- $supplier_name = isset($param['supplier_name']) ? trim($param['supplier_name']) : false;//供应商名称
- $area_id = isset($param['area_id']) ? trim($param['area_id']) : false;//所属区域市id
- $manage_type = isset($param['manage_type']) ? trim($param['manage_type']) : false;//经营性质 1:公司 2:个人
- $company_name = isset($param['company_name']) ? trim($param['company_name']) : false;//公司名称
- $id_card = isset($param['id_card']) ? trim($param['id_card']) : false;//身份证号(企业传空)
- $sale = isset($param['sale']) ? trim($param['sale']) : false;//销售方式
- $sett_type = isset($param['sett_type']) ? trim($param['sett_type']) : false;//结算方式 (授信:275,预付:288,单结:292)
- $sett_frequency = isset($param['sett_frequency']) ? trim($param['sett_frequency']) : false;//结算周期(日结:293,周结:294,月结:295)
- $account_bank = isset($param['account_bank']) ? trim($param['account_bank']) : false;//开户银行
- $account_num = isset($param['account_num']) ? trim($param['account_num']) : false;//银行账号
- $account_name = isset($param['account_name']) ? trim($param['account_name']) : false;//账号名称
- $link_info = isset($param['link_info']) ? trim($param['link_info']) : false;//联系人详情
- $sales_man = isset($param['sales_man']) ? trim($param['sales_man']) : false;//业务员
- if (!$channel_id || !$supplier_name || !$area_id || !$manage_type || !$company_name || false === $sale || !$sett_type || !$sett_frequency || false === $account_bank || false === $account_num || false === $account_name || false === $link_info || !$sales_man)
- {
- $json['code'] = '2';
- $json['info'] = '缺少必要参数';
- return $json;
- }
- //1.获取销售方式详情数组
- $sale_array = $this->getUpdateSale($sale);
-
- //2.从数据库获取销售方式
- $db_sale_array = $this->getDbSale($channel_id);
-
- //3.获取联系人详情数组
- $link_array = $this->getUpdateLink($link_info);
-
- //4.从数据库获取联系人详情
- $db_link_array = $this->getDbLink($channel_id);
-
- //5.比较销售方式
- $sale = $this->compare($sale_array, $db_sale_array);
-
- //6,比较联系详情
- $link = $this->compare($link_array, $db_link_array);
-
- //7,从数据库获取渠道商详情
- $db_channel = $this->getDbChannel($channel_id);
- //8.操作数据库
- $channel_array = array('supplier_name' => $supplier_name,'area_id' => $area_id,'manage_type' => $manage_type,'company_name' => $company_name,'id_card' => $id_card,'sett_type' => $sett_type,'sett_frequency' => $sett_frequency,'account_bank' => $account_bank,'account_num' => $account_num,'account_name' => $account_name,'sales_man' => $sales_man);
- $res = $this -> updatePdoChannel($channel_id,$channel_array,$db_channel,$sale,$link);
- return $res;
- }
-
- //获取销售方式详情数组
- private function getUpdateSale($sale)
- {
- if ($sale == '') {
- $sale_array = array();
- return $sale_array;
- }
-
- $sale = explode(",", $sale);
- $key = $_COOKIE['memcache'];
- $sale_memcache = $this->get_memcache('ZHANGS_SALE' . $key);
- foreach ($sale as $item => $value) {
- $sale_array[$value] = $sale_memcache[$value];
- }
-
- return $sale_array;
- }
-
- //获取联系人详情数组
- private function getUpdateLink($link_info)
- {
- if ($link_info == '') {
- $link_array = array();
- return $link_array;
- }
- $link_info = explode(",", $link_info);
- $key = $_COOKIE['memcache'];
- $link_memcache = $this->get_memcache('ZHANGS_LINK' . $key);
- foreach ($link_info as $item => $value) {
- $status = 0;
- if (empty($link_memcache[$value]['link_name']) || empty($link_memcache[$value]['contact_name'])) {
- $status = 1;
- }
- if ($status == 0) {
- $link_array[$value] = $link_memcache[$value];
- }
- }
- return $link_array;
- }
-
- //从数据库获取销售方式详情数组
- private function getDbSale($channel_id)
- {
- $sql = "SELECT
- id AS sale_id,prod_supplier_id,product_type,parent_type,sale_type,commision_flag,commision_type,back_commision_type,back_commision_method,back_percent,back_value
- FROM
- base_supplier_sale
- WHERE
- cancel_flag = 0
- AND supplier_id = " . $channel_id;
- $res = $this->query($sql);
- if(count($res) > 0)
- {
- foreach($res as $k => $v)
- {
- $result1[$v['sale_id']] = $v;
- }
- }
- else
- {
- $result1= array();
- }
- return $result1;
- }
-
- //从数据库获取联系人详情
- private function getDbLink($channel_id)
- {
- $sql = "SELECT
- id as link_id,link_name,contact_name,contact_mobile,contact_telphone,fax,email,remark
- FROM
- base_supplier_link
- WHERE
- cancel_flag = 0
- AND supplier_id = " . $channel_id;
- $res = $this->query($sql);
- if(count($res) > 0)
- {
- foreach($res as $k => $v)
- {
- $result1[$v['link_id']] = $v;
- }
- }
- else
- {
- $result1= array();
- }
- return $result1;
- }
-
- //从数据库获取渠道商详情
- private function getDbChannel($channel_id)
- {
- $sql = "SELECT
- supplier_name,area_id,manage_type,company_name,id_card,sett_type,sett_frequency,account_bank,account_num,account_name,sales_man
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- AND id = " . $channel_id;
- $res = $this->query($sql);
- $res = $res[0];
- return $res;
- }
-
- //比较数组(前台数组,数据库数组)
- private function compare($arr, $db_arr)
- {
- $result = array();
- if(count($db_arr) == 0 && count($arr) == 0)
- {
- return $result;
- }
- elseif (count($db_arr) == 0)
- {
- $result['insert'] = $arr;
- return $result;
- }
- elseif (count($arr) == 0)
- {
- $result['delete'] = $db_arr;
- return $result;
- }
- else
- {
- foreach ($arr as $key => $value) {
- if(isset($db_arr[$key]))
- {
- if($arr != $db_arr)
- {
- $result['update'][$key] = $value;
- }
-
- }
- else
- {
- $result['insert'][$key] = $value;
- }
- }
- foreach($db_arr as $key => $value)
- {
- if(!isset($arr[$key]))
- {
- $result['delete'][$key] = $value;
- }
- }
- return $result;
- }
- }
-
- //获取update操作中的set数据
- private function getUpdateSet($arr)
- {
- $set_array = array();
- foreach($arr as $k => $v)
- {
- if(!empty($v))
- {
- $set_array[] = $k . " = '" . $v . "'";
- }
- else
- {
- if($k == 'account_bank' || $k == 'account_num' || $k == 'account_name' || $k == 'link_name' || $k == 'contact_name' || $k == 'contact_mobile' || $k == 'contact_telphone' || $k == 'fax' || $k == 'email' || $k == 'remark' || $k == 'id_card' || $k == 'sales_man')
- {
- $set_array[] = $k . " = ''";
- }
- else
- {
- $set_array[] = $k . " = '0'";
- }
- }
- }
- $set_str = implode(",",$set_array);
- return $set_str;
- }
-
- //操作数据库
- private function updatePdoChannel($channel_id,$channel_array,$db_channel,$sale,$link)
- {
- $user_id = $this->user_id;//1;
- $time = date('Y-m-d H:i:s',time());
- $update_sql = array();
- //1.操作base_supplier表
- if($channel_array != $db_channel)//修改
- {
- $set_str = $this->getUpdateSet($channel_array);
- $update_supplier_sql = "UPDATE base_supplier
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "'," . $set_str . "
- WHERE
- id = " . $channel_id;
- $update_sql[] = $update_supplier_sql;
- }
-
- //2.操作base_supplier_sale表
-
- if(count($sale) > 0)
- {
- if(count($sale['update']) > 0)//修改
- {
- $update_sale_array = array();
- foreach($sale['update'] as $key => $value)
- {
- unset($value['sale_id']);
- $set_str = $this->getUpdateSet($value);
- $update_sale_array[] = "UPDATE base_supplier_sale
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "'," . $set_str . "
- WHERE
- id = " . $key;
- }
- $update_sale_sql = implode(";",$update_sale_array);
- $update_sql[] = $update_sale_sql;
- }
- if(count($sale['insert']) > 0)//增加
- {
- $insert_sale_sql = "INSERT INTO base_supplier_sale (
- create_user_id,
- create_time,
- supplier_id,
- prod_supplier_id,
- product_type,
- parent_type,
- sale_type,
- commision_flag,
- commision_type,
- back_commision_type,
- back_commision_method,
- back_percent,
- back_value
- )
- VALUES ";
- foreach($sale['insert'] as $key => $value)
- {
- $sale_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $channel_id . "," . $value['prod_supplier_id'] . "," . $value['product_type'] . "," . $value['parent_type'] . "," . $value['sale_type'] . "," . $value['commision_flag'] . "," . $value['commision_type'] . "," . $value['back_commision_type'] . "," . $value['back_commision_method'] . ",'" . $value['back_percent'] . "','" . $value['back_value'] . "')";
- }
- $insert_sale_sql .= implode(",", $sale_sql_array);
- $update_sql[] = $insert_sale_sql;
- }
- if(count($sale['delete']) > 0)//删除
- {
- $delete_sale_array = array();
- foreach($sale['delete'] as $key => $value)
- {
- $delete_sale_array[] = "UPDATE base_supplier_sale
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "',cancel_flag = 1
- WHERE
- id = " . $key;
- }
- $delete_sale_sql = implode(";",$delete_sale_array);
- $update_sql[] = $delete_sale_sql;
- }
- }
-
- //3.操作base_supplier_link表
- if(count($link) > 0)
- {
- if(count($link['update']) > 0)//修改
- {
- $update_link_array = array();
- foreach($link['update'] as $key => $value)
- {
- unset($value['link_id']);
- $set_str = $this->getUpdateSet($value);
- $update_link_array[] = "UPDATE base_supplier_link
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "'," . $set_str . "
- WHERE
- id = " . $key;
- }
- $update_link_sql = implode(";",$update_link_array);
- $update_sql[] = $update_link_sql;
- }
- if(count($link['insert']) > 0)//增加
- {
- $insert_link_sql = "INSERT INTO base_supplier_link (
- create_user_id,
- create_time,
- supplier_id,
- link_name,
- contact_name,
- contact_mobile,
- contact_telphone,
- fax,
- email,
- remark
- )
- VALUES";
- foreach($link['insert'] as $key => $value)
- {
- $link_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $channel_id . ",'" . $value['link_name'] . "','" . $value['contact_name'] . "','" . $value['contact_mobile'] . "','" . $value['contact_telphone'] . "','" . $value['fax'] . "','" . $value['email'] . "','" . $value['remark'] . "')";
- }
- $insert_link_sql .= implode(",", $link_sql_array);
- $update_sql[] = $insert_link_sql;
- }
- if(count($link['delete']) > 0)//删除
- {
- $delete_link_array = array();
- foreach($link['delete'] as $key => $value)
- {
- $delete_link_array[] = "UPDATE base_supplier_link
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "',cancel_flag = 1
- WHERE
- id = " . $key;
- }
- $delete_link_sql = implode(";",$delete_link_array);
- $update_sql[] = $delete_link_sql;
- }
- }
-
- if(count($update_sql) > 0)
- {
- $update_sql = implode(';',$update_sql);
- zzcsUtils::writeLog($update_sql);
- $result = $this->exec($update_sql);
- }
- else
- {
- $result = true;
- }
-
- if($result)
- {
- //4.删除缓存
- $key = $_COOKIE['memcache'];
- $this->delete_memcache('ZHANGS_LINK' . $key);
- $this->delete_memcache('ZHANGS_SALE' . $key);
- $json['code'] = '0';
- $json['info'] = '修改供应商成功';
- }
- else
- {
- $json['code'] = '1';
- $json['info'] = '修改供应商失败';
- }
- return $json;
- }
-
- /**
- * 获取渠道商列表
- * @param $param
- */
- public function getChannelList($param)
- {
- $supplier_name = isset($param['supplier_name']) ? trim($param['supplier_name']) : false;//渠道商名称
- $product_type = isset($param['product_type']) ? trim($param['product_type']) : false;//销售范围
- $is_disabled = isset($param['is_disabled']) ? trim($param['is_disabled']) : false;//状态
- $pagesize = isset($param['pagesize']) ? trim($param['pagesize']) : false;//每页的数据量
- $current = isset($param['current']) ? trim($param['current']) : false;//当前页数
- if( false === $supplier_name || false === $product_type || false === $is_disabled || false === $pagesize || false === $current )
- {
- $json['code'] = '2';
- $json['info'] = '缺少必要参数';
- return $json;
- }
- //1.获取筛选条件
- $sql_where = $this->getWhere($supplier_name, $is_disabled);
-
- //2.获取数据库原始数据
- $db_data = $this->getDbData($sql_where, $product_type,$current,$pagesize);
- if(isset($db_data['code']) && $db_data['code'] == '1')
- {
- $db_data['code'] = '0';
- return $db_data;
- }
-
- //3.处理数据
- $tidyData = $this->tidyData($db_data['supplier_array']);
- $tidyData['total_page'] = (string)$db_data['total_page'];
- return $tidyData;
- }
-
- //获取筛选条件
- private function getWhere($supplier_name, $is_disabled)
- {
- $res = array();
- if ($is_disabled != -1) {
- $res[] = " is_disabled = " . $is_disabled;
- }
- if (!empty($supplier_name)) {
- $res[] = " supplier_name like '%%" . $supplier_name . "%%' ";
- }
- if (count($res) > 0) {
- $res = " and " . implode(" and ", $res);
- } else {
- $res = '';
- }
- return $res;
- }
-
- //获取数据库原始数据
- private function getDbData($sql_where, $product_type,$current,$pagesize)
- {
- if (!empty($product_type) && $product_type != -1)//如果选了采购类型
- {
- $sale_sql = "SELECT
- supplier_id,product_type,parent_type
- FROM
- base_supplier_sale
- WHERE
- product_type = " . $product_type . " or parent_type = " . $product_type . " and cancel_flag = 0
- GROUP BY
- supplier_id";
- $supplier_id_array = $this->query($sale_sql);//获取有该采购类型的所有supplier_id
-
- //如果没有该采购类型的supplier,返回空数组
- if (count($supplier_id_array) == 0) {
- $json['code'] = '1';
- $json['info'] = '没有符合条件的数据';
- $json['list'] = array();
- $json['count'] = '0';
- $json['total_page'] = '0';
- return $json;
- }
- //如果有该采购类型的supplier
- foreach ($supplier_id_array as $k => $v) {
- $supplier_id_array[$k] = $v['supplier_id'];
- }
- $sql_where .= " and id in(" . implode(",", $supplier_id_array) . ")" . $sql_where . " ";
- }
- $supplier_sql = "SELECT
- id,supplier_name,area_id,is_disabled,supplier_type,manage_type
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- " . $sql_where . "
- AND supplier_type = 301
- ORDER BY id DESC
- LIMIT " . ($current-1)*$pagesize . "," . $pagesize;
- $supplier_array1 = $this->query($supplier_sql);//获取所有数据
-
- if(count($supplier_array1) > 0)
- {
- foreach($supplier_array1 as $k => $v)
- {
- $id_array[$v['id']] = $v['id'];
- $supplier_array[$v['id']] = $v;
- }
- $sql = "select group_concat(product_type) as product_type,group_concat(parent_type) as parent_type,supplier_id from base_supplier_sale where supplier_id in (" . implode(",",$id_array) . ") and cancel_flag = 0 group by supplier_id";
- $sale_array1 = $this->query($sql);
- foreach($sale_array1 as $k => $v)
- {
- $v['product_type'] = explode(",",$v['product_type']);
- $v['parent_type'] = explode(",",$v['parent_type']);
- foreach ($v['product_type'] as $key => $value)
- {
- if(empty($value))
- {
- $v['product_type'][$key] = $v['parent_type'][$key];
- }
- }
- $v['product_type'] = array_unique($v['product_type']);
- $v['product_type'] = implode(",",$v['product_type']);
- $sale_array[$v['supplier_id']] = $v;
- }
- foreach($supplier_array as $k => $v)
- {
- if(isset($sale_array[$k]))
- {
- $supplier_array[$k]['product_type'] = $sale_array[$k]['product_type'];
- }
- else
- {
- $supplier_array[$k]['product_type'] = '';
- }
-
- }
- $count_sql = "SELECT
- id
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- " . $sql_where . "
- AND supplier_type = 301";
- $total_page = $this->query($count_sql);//获取所有数据
- $res['supplier_array'] = $supplier_array;
- $res['total_page'] = ceil(count($total_page)/$pagesize);
- }
- else
- {
- $json['code'] = '1';
- $json['info'] = '没有符合条件的数据';
- $json['list'] = array();
- $json['count'] = '0';
- $json['total_page'] = '0';
- return $json;
- }
-
- return $res;
- }
-
- //处理数据
- private function tidyData($db_data)
- {
- $supplier_array = array();
- $area_id_array = array();
- $type = array(
- 0 => '正常',
- 1 => '关闭',
- 25 => '酒店',
- 137 => '待审核',
- 255 => '直通巴士',
- 256 => '穿梭巴士',
- 259 => '车队',
- 284 => '城际商务车',
- 310 => '巴士',
- 311 => '门票',
- 316 => '组合巴士'
-
- );
- foreach($db_data as $key => $vel)
- {
- $vel['product_type'] = explode(",",$vel['product_type']);
- //获取采购范围的中文
- foreach($vel['product_type'] as $k => $v)
- {
- $vel['product_type'][$k] = $type[$v];
- }
- $vel['product_type'] = implode(",",$vel['product_type']);
-
- if($vel['manage_type'] == '1')
- {
- $vel['manage_type'] = '公司';
- }
- else
- {
- $vel['manage_type'] = '个人';
- }
-
- $supplier_array[$vel['id']] = $vel;
- //获取所有的area_id
- if(!isset($area_id_array[$vel['area_id']]))
- {
- $area_id_array[$vel['area_id']] = $vel['area_id'];
- }
-
- }
- //查询area_id的中文
- $area_sql = "SELECT
- id,area_name
- FROM
- base_area
- WHERE
- id in(" . implode(",",$area_id_array) . ")";
- $area_id_array = $this->query($area_sql);//获取area中文
- foreach($area_id_array as $key => $vel)
- {
- $area_array[$vel['id']] = $vel['area_name'];
- }
- foreach($supplier_array as $key => $vel)
- {
- $supplier_array[$key]['is_disabled'] = $type[$vel['is_disabled']];
- $supplier_array[$key]['area_name'] = $area_array[$vel['area_id']];
- unset($supplier_array[$key]['area_id']);
- }
- $supplier_array = array_values($supplier_array);
- $json['code'] = '0';
- $json['info'] = '返回渠道商列表成功';
- $json['list'] = $supplier_array;
- $json['count'] = (string)count($supplier_array);
- return $json;
- }
-
- /**
- * 修改渠道商状态 启用 停用 待审核 ;审核通过后直接改为正常启用状态,没有取消审核功能,可停用
- * @param $param 键名包含 channel_id play('stop:停用, passed:审核通过, 启用')
- * @return mixed
- */
- public function updateStatus($param)
- {
- $channel_id= isset($param['channel_id']) ? trim($param['channel_id']) : false;
- $play = isset($param['play']) ? trim($param['play']) : false;
- if(!$channel_id || false === $play)
- {
- $json['code'] = '2';
- $json['info'] = '缺少必要参数';
- return $json;
- }
- $is_disabled_st = 137;
- $user_id = $this->user_id;
- $time = date('Y-m-d H:i:s',time());
- $is_disabled = ($play == 'stop')?1:0;
- //如果是审核通过,不需要考虑之前的状态是否为 正常或停用,否则要判断之前的状态必须为正常或停用;
- $is_passed = $play == 'passed'?" and is_disabled = $is_disabled_st ": " and is_disabled in(0,1) ";
- $sql = "UPDATE base_supplier
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "',is_disabled = " . $is_disabled . "
- WHERE
- id in(" . $channel_id . ") $is_passed";
- $result = $this->exec($sql);
- if($result)
- {
- $json['code'] = '0';
- $json['info'] = '修改成功';
- }
- else
- {
- $json['code'] = '0';
- $json['info'] = '数据库原因,修改失败';
- }
-
- return $json;
- }
- }
- ?>
|