|
- <?php
-
- /**
- * 张帅
- * Class supplier
- */
- class supplier extends base
- {
- /**
- * 添加供应商
- * @param $param
- */
- public function addSupplier($param)
- {
- $supplier_name = isset($param['supplier_name']) ? trim($param['supplier_name']) : false;//供应商名称
- $area_id = isset($param['area_id']) ? trim($param['area_id']) : false;//所属区域市id
- $company_name = isset($param['company_name']) ? trim($param['company_name']) : false;//公司名称
- $purchase = isset($param['purchase']) ? trim($param['purchase']) : 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;//联系人详情
- if (!$supplier_name || !$area_id || !$company_name || false === $purchase || !$sett_type || !$sett_frequency || false === $account_bank || false === $account_num || false === $account_name || false === $link_info) {
- $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=187 ";
- $result = $this->query($sql);
- if(count($result) > 0)
- {
- $json['code'] = '1';
- $json['info'] = '用户名已存在';
- return $json;
- }
-
- //1.获取采购信息详情数组
- $purchase_array = $this->getPurchaseInfo($purchase);
-
- //2.获取联系人详情数组
- $link_array = $this->getLinkInfo($link_info);
-
- //3.向数据库中中添加数据
- $res = $this->addPdoSupply($supplier_name, $area_id, $company_name, $purchase_array, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_array);
- return $res;
- }
-
- //获取采购信息详情数组
- private function getPurchaseInfo($purchase)
- {
- if ($purchase == '') {
- $purchase_array = array();
- return $purchase_array;
- }
-
- $purchase = substr($purchase, 1, strlen($purchase) - 2);
- $purchase = explode("}{", $purchase);
-
- $i = 0;
- foreach ($purchase as $item => $value) {
- $value = explode(",", $value);
- $status = 0;
- foreach ($value as $k => $v) {
- if (empty($v)) {
- $status = 1;
- break;
- }
- }
- if ($status == 0) {
- $purchase_array[$i]['product_type'] = $value[0];
- $purchase_array[$i]['purchaser_name'] = $value[1];
- $i++;
- }
- }
- return $purchase_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 addPdoSupply($supplier_name, $area_id, $company_name, $purchase_array, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_array)
- {
- $user_id = $this->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表
- $supplier_sql = "INSERT INTO base_supplier (
- create_user_id,
- create_time,
- supplier_type,
- supplier_name,
- area_id,
- company_name,
- is_disabled,
- sett_type,
- sett_frequency,
- account_bank,
- account_num,
- account_name,
- main_corp_id
- )
- VALUES
- (" . $user_id . ",'" . $time . "',187,'" . $supplier_name . "'," . $area_id . ",'" . $company_name . "',0," . $sett_type . "," . $sett_frequency . ",'" . $account_bank . "','" . $account_num . "','" . $account_name . "'," . $main_corp_id .")";
- zzcsUtils::writeLog($supplier_sql);
- $result1 = $this->insert($supplier_sql);
- $supplier_id = $result1;
- $insert_sql = array();
- //2.添加base_supplier_purchase表
- if(count($purchase_array) > 0)
- {
- $purchase_sql = "INSERT INTO base_supplier_purchase (
- create_user_id,
- create_time,
- supplier_id,
- product_type,
- purchaser_name
- )
- VALUES ";
- foreach ($purchase_array as $key => $v) {
- $purchase_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $supplier_id . "," . $v['product_type'] . ",'" . $v['purchaser_name'] . "')";
- }
- $purchase_sql .= implode(",", $purchase_sql_array);
- $insert_sql[] = $purchase_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);
- $json['code'] = '0';
- $json['info'] = '添加供应商成功';
- }
- else
- {
- $json['code'] = '1';
- $json['info'] = '添加供应商失败';
- }
- return $json;
- }
-
- /**
- * 获取供应商详情
- */
- public function getSupplierInfo($param)
- {
- $supply_id = isset($param['supply_id']) ? trim($param['supply_id']) : false;//供应商id
- if(!$supply_id)
- {
- $json['code'] = '2';
- $json['info'] = '缺少必要参数';
- return $json;
- }
- $dict_type = array(
- 25 => '酒店',
- 259 => '车队',
- 310 => '巴士',
- 311 => '门票'
- );
- //1.获取供应商基本信息
- $supply = $this->getSupplier($supply_id);
- if(isset($supply['code']) && $supply['code'] == '1')
- {
- return $supply;
- }
-
- //2.获取采购类型基本信息
- $supply['purchase'] = $this->getPurchase($supply_id);
-
- //3.获取联系信息
- $supply['link_info'] = $this->getLink($supply_id);
-
- //4将联系信息存入缓存
- $this -> setLinkMen($supply['link_info']);
-
- $json['code'] = '0';
- $json['info'] = '返回数据成功';
- $json['list'] = $supply;
- return $json;
- }
-
- //获得base_supplier表数据
- private function getSupplier($supply_id)
- {
- $sql = "SELECT
- id,supplier_name,area_id,company_name,sett_type,sett_frequency,account_bank,account_num,account_name
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- AND id = " . $supply_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 $json;
- }
- $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 getPurchase($supply_id)
- {
- $sql = "SELECT
- id,product_type,purchaser_name
- FROM
- base_supplier_purchase
- WHERE
- cancel_flag = 0
- AND supplier_id = " . $supply_id;
- $res = $this->query($sql);
- return $res;
- }
-
- //获取联系信息
- private function getLink($supply_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 = " . $supply_id;
- $res = $this->query($sql);
- return $res;
- }
-
- //将联系信息存入缓存
- private function setLinkMen($link)
- {
- if(!isset($_COOKIE['memcache']))
- {
- $time = time();
- setcookie('memcache',time(),time()+36000,"/");
- $_COOKIE['memcache'] = $time;
- }
-
- $key = $_COOKIE['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);
- }
-
- /**
- * 修改供应商信息
- * @param $param
- * @return mixed
- */
- public function updateSupply($param)
- {
- $supply_id = isset($param['supply_id']) ? trim($param['supply_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
- $company_name = isset($param['company_name']) ? trim($param['company_name']) : false;//公司名称
- $purchase = isset($param['purchase']) ? trim($param['purchase']) : 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;//联系人详情
- if (false === $supply_id || !$supplier_name || !$area_id || !$company_name || false === $purchase || !$sett_type || !$sett_frequency || false === $account_bank || false === $account_num || false === $account_name || false === $link_info) {
- $json['code'] = '2';
- $json['info'] = '缺少必要参数';
- return $json;
- }
-
- //1.获取采购详情数组
- $purchase_array = $this->getUpdatePurchase($purchase);
-
- //2.从数据库获取采购详情
- $db_purchase_array = $this->getDbPurchase($supply_id);
-
- //3.获取联系人详情数组
- $link_array = $this->getUpdateLink($link_info);
-
- //4.从数据库获取联系人详情
- $db_link_array = $this->getDbLink($supply_id);
-
- //5.比较采购详情
- $purchase = $this->compare($purchase_array, $db_purchase_array);
-
- //6,比较联系详情
- $link = $this->compare($link_array, $db_link_array);
-
- //7,从数据库获取供应商详情
- $db_supply = $this->getDbSupply($supply_id);
-
- //8.操作数据库
- $supply_array = array('supplier_name' => $supplier_name,'area_id' => $area_id,'company_name' => $company_name,'sett_type' => $sett_type,'sett_frequency' => $sett_frequency,'account_bank' => $account_bank,'account_num' => $account_num,'account_name' => $account_name);
- $res = $this -> updatePdoChannel($supply_id,$supply_array,$db_supply,$purchase,$link);
- return $res;
- }
-
- //获取采购详情数组
- private function getUpdatePurchase($purchase)
- {
- if ($purchase == '') {
- $purchase_array = array();
- return $purchase_array;
- }
-
- $purchase = substr($purchase, 1, strlen($purchase) - 2);
- $purchase = explode("}{", $purchase);
- $i = -1;
- foreach ($purchase as $item => $value) {
- $value = explode(",", $value);
- $status = 0;
- foreach ($value as $k => $v) {
- if (empty($v)) {
- $status = 1;
- break;
- }
- }
- if ($status == 0) {
- if($value[0] >= 0)
- {
- $purchase_array[$value[0]]['purchase_id'] = $value[0];
- $purchase_array[$value[0]]['product_type'] = $value[1];
- $purchase_array[$value[0]]['purchaser_name'] = $value[2];
- }
- else
- {
- $purchase_array[$i]['purchase_id'] = $i;
- $purchase_array[$i]['product_type'] = $value[1];
- $purchase_array[$i]['purchaser_name'] = $value[2];
- $i--;
- }
- }
- }
- return $purchase_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 getDbPurchase($supply_id)
- {
- $sql = "SELECT
- id AS purchase_id,product_type,purchaser_name
- FROM
- base_supplier_purchase
- WHERE
- cancel_flag = 0
- AND supplier_id = " . $supply_id;
- $res = $this->query($sql);
- if(count($res) > 0)
- {
- foreach($res as $k => $v)
- {
- $result1[$v['purchase_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 getDbSupply($supply_id)
- {
- $sql = "SELECT
- supplier_name,area_id,company_name,sett_type,sett_frequency,account_bank,account_num,account_name
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- AND id = " . $supply_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')
- {
- $set_array[] = $k . " = ''";
- }
- else
- {
- $set_array[] = $k . " = '0'";
- }
- }
- }
- $set_str = implode(",",$set_array);
- return $set_str;
- }
-
- //操作数据库
- private function updatePdoChannel($supply_id,$supply_array,$db_supply,$purchase,$link)
- {
- $user_id = $this->user_id;
- $time = date('Y-m-d H:i:s',time());
- $update_sql = array();
-
- //1.操作base_supplier表
- if($supply_array != $db_supply)//修改
- {
- $set_str = $this->getUpdateSet($supply_array);
- $update_supplier_sql = "UPDATE base_supplier
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "'," . $set_str . "
- WHERE
- id = " . $supply_id;
- $update_sql[] = $update_supplier_sql;
- }
- //2.操作base_supplier_sale表
-
- if(count($purchase) > 0)
- {
- if(count($purchase['update']) > 0)//修改
- {
- $update_purchase_array = array();
- foreach($purchase['update'] as $key => $value)
- {
- unset($value['purchase_id']);
- $set_str = $this->getUpdateSet($value);
- $update_purchase_array[] = "UPDATE base_supplier_purchase
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "'," . $set_str . "
- WHERE
- id = " . $key;
- }
- $update_purchase_sql = implode(";",$update_purchase_array);
- $update_sql[] = $update_purchase_sql;
- }
- if(count($purchase['insert']) > 0)//增加
- {
- $insert_purchase_sql = "INSERT INTO base_supplier_purchase (
- create_user_id,
- create_time,
- supplier_id,
- product_type,
- purchaser_name
- )
- VALUES ";
- foreach($purchase['insert'] as $key => $value)
- {
- $purchase_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $supply_id . "," . $value['product_type'] . ",'" . $value['purchaser_name'] . "')";
- }
- $insert_purchase_sql .= implode(",", $purchase_sql_array);
- $update_sql[] = $insert_purchase_sql;
- }
- if(count($purchase['delete']) > 0)//删除
- {
- $delete_purchase_array = array();
- foreach($purchase['delete'] as $key => $value)
- {
- $delete_purchase_array[] = "UPDATE base_supplier_purchase
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "',cancel_flag = 1
- WHERE
- id = " . $key;
- }
- $delete_purchase_sql = implode(";",$delete_purchase_array);
- $update_sql[] = $delete_purchase_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 . "'," . $supply_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->insert($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;
- }
-
- /**
- * 获取供应商列表
- */
- public function getSupplierList($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)//如果选了采购类型
- {
- $purchase_sql = "SELECT
- supplier_id
- FROM
- base_supplier_purchase
- WHERE
- product_type = " . $product_type . " and cancel_flag = 0
- GROUP BY
- supplier_id";
- $supplier_id_array = $this->query($purchase_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
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- " . $sql_where . "
- AND supplier_type = 187
- 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,supplier_id from base_supplier_purchase where supplier_id in (" . implode(",",$id_array) . ") and cancel_flag = 0 group by supplier_id";
- $purchase_array1 = $this->query($sql);
- foreach($purchase_array1 as $k => $v)
- {
- $purchase_array[$v['supplier_id']] = $v['product_type'];
- }
- foreach($supplier_array as $k => $v)
- {
- if(isset($purchase_array[$k]))
- {
- $purchase_array[$k] = explode(",",$purchase_array[$k]);
- $purchase_array[$k] = array_unique($purchase_array[$k]);
- $purchase_array[$k] = implode(",",$purchase_array[$k]);
- $supplier_array[$k]['product_type'] = $purchase_array[$k];
- }
- else
- {
- $supplier_array[$k]['product_type'] = '';
- }
- }
-
- $count_sql = "SELECT
- a.id
- FROM
- base_supplier AS a,
- base_supplier_purchase AS b
- WHERE
- a.id = b.supplier_id
- " . $sql_where . "
- AND a.cancel_flag = 0
- AND b.cancel_flag = 0
- GROUP BY
- b.supplier_id";
- $total_page = $this->query($count_sql);//获取所有数据
- $res['supplier_array'] = $supplier_array;
- $res['total_page'] = ceil(count($total_page)/$pagesize);
- return $res;
- }
- else
- {
- $json['code'] = '1';
- $json['info'] = '没有符合条件的数据';
- $json['list'] = array();
- $json['count'] = '0';
- $json['total_page'] = '0';
- return $json;
- }
- }
-
- //处理数据
- private function tidyData($db_data)
- {
- $supplier_array = array();
- $area_id_array = array();
- $type = array(
- 0 => '正常',
- 1 => '关闭',
- 25 => '酒店',
- 259 => '车队',
- 310 => '巴士',
- 311 => '门票'
- );
- 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']);
-
- $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
- * @return mixed
- */
- public function updateStatus($param)
- {
- $supply_id= isset($param['supply_id']) ? trim($param['supply_id']) : false;
- $play = isset($param['play']) ? trim($param['play']) : false;
- if(!$supply_id || false === $play)
- {
- $json['code'] = '2';
- $json['info'] = '缺少必要参数';
- return $json;
- }
- $user_id = $this->user_id;
- $time = date('Y-m-d H:i:s',time());
- $is_disabled = ($play == 'stop')?1:0;
- $sql = "UPDATE base_supplier
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "',is_disabled = " . $is_disabled . "
- WHERE
- id in(" . $supply_id . ")";
- $result = $this->exec($sql);
- if($result)
- {
- $json['code'] = '0';
- $json['info'] = '修改成功';
- }
- else
- {
- $json['code'] = '0';
- $json['info'] = '数据库原因,修改失败';
- }
-
- return $json;
- }
-
-
- }
- ?>
|