|
- <?php
- class update_channel
- {
- public function execUpdateChannel($channel_id,$supplier_name, $area_id, $manage_type, $company_name, $id_card, $sale, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_info,$sales_man)
- {
- //1.获取销售方式详情数组
- $sale_array = $this->getSale($sale);
-
- //2.从数据库获取销售方式
- $db_sale_array = $this->getDbSale($channel_id);
-
- //3.获取联系人详情数组
- $link_array = $this->getLink($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);
- echo json_encode($res);
- exit();
- }
-
- //获取销售方式详情数组
- function getSale($sale)
- {
- if ($sale == '') {
- $sale_array = array();
- return $sale_array;
- }
-
- $sale = explode(",", $sale);
- $key = $_COOKIE['memcache'];
- $sale_memcache = get_memcache('ZHANGS_SALE' . $key);
- foreach ($sale as $item => $value) {
- $sale_array[$value] = $sale_memcache[$value];
- }
-
- return $sale_array;
- }
-
- //获取联系人详情数组
- function getLink($link_info)
- {
- if ($link_info == '') {
- $link_array = array();
- return $link_array;
- }
- $link_info = explode(",", $link_info);
- $key = $_COOKIE['memcache'];
- $link_memcache = 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;
- }
-
- //从数据库获取销售方式详情数组
- function getDbSale($channel_id)
- {
- global $pdo;
- $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;
- writeLog("getDbSale base_supplier_sale:" . $sql);
- $result = $pdo->query($sql);
- $res = $result->fetchAll(PDO::FETCH_ASSOC);
- if(count($res) > 0)
- {
- foreach($res as $k => $v)
- {
- $result1[$v['sale_id']] = $v;
- }
- }
- else
- {
- $result1= array();
- }
- return $result1;
- }
-
- //从数据库获取联系人详情
- function getDbLink($channel_id)
- {
- global $pdo;
- $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;
-
- writeLog("getDbLink base_supplier_link:" . $sql);
- $result = $pdo->query($sql);
- $res = $result->fetchAll(PDO::FETCH_ASSOC);
- if(count($res) > 0)
- {
- foreach($res as $k => $v)
- {
- $result1[$v['link_id']] = $v;
- }
- }
- else
- {
- $result1= array();
- }
- return $result1;
- }
-
- //从数据库获取渠道商详情
- function getDbChannel($channel_id)
- {
- global $pdo;
- $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;
-
- writeLog("getDbChannel base_supplier:" . $sql);
- $result = $pdo->query($sql);
- $res = $result->fetchAll(PDO::FETCH_ASSOC);
- $res = $res[0];
- return $res;
- }
-
- //比较数组(前台数组,数据库数组)
- 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数据
- 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;
- }
-
- //操作数据库
- function updatePdoChannel($channel_id,$channel_array,$db_channel,$sale,$link)
- {
- global $pdo;
- $user_id = getUserId();//1;
- $time = date('Y-m-d H:i:s',time());
- try {
- $pdo->beginTransaction();
- //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;
- writeLog("UPDATE base_supplier:" . $update_supplier_sql);
- $result = $pdo->exec($update_supplier_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
-
- //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);
- writeLog("UPDATE base_supplier_sale:" . $update_sale_sql);
- $result = $pdo->exec($update_sale_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- 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);
- writeLog("INSERT base_supplier_purchase:" . $insert_sale_sql);
- $result = $pdo->exec($insert_sale_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- 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);
- writeLog("delete base_supplier_sale:" . $delete_sale_sql);
- $result = $pdo->exec($delete_sale_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- }
-
- //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);
- writeLog("UPDATE base_supplier_link:" . $update_link_sql);
- $result = $pdo->exec($update_link_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- 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);
- writeLog("INSERT base_supplier_purchase:" . $insert_link_sql);
- $result = $pdo->exec($insert_link_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- 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);
- writeLog("delete base_supplier_sale:" . $delete_link_sql);
- $result = $pdo->exec($delete_link_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- }
-
- $pdo->commit();
-
- //4.删除缓存
- $key = $_COOKIE['memcache'];
- delete_memcache('ZHANGS_LINK' . $key);
- delete_memcache('ZHANGS_SALE' . $key);
-
- $json['code'] = '0';
- $json['info'] = '修改数据成功';
- } catch (PDOException $ex) {
- $pdo->rollBack();
- $json['code'] = '1';
- $json['info'] = '修改失败';
- }
- return $json;
- }
- }
- $channel_id = trim($_POST['channel_id']);//渠道商名称
- $supplier_name = trim($_POST['supplier_name']);//渠道商名称
- $area_id = trim($_POST['area_id']);//所属区域市id
- $manage_type = trim($_POST['manage_type']);//经营性质 1:公司 2:个人
- $company_name = trim($_POST['company_name']);//公司名称
- $id_card = trim($_POST['id_card']);//身份证号(企业传空)
- $sale = trim($_POST['sale']);//销售方式
- $sett_type = trim($_POST['sett_type']);//结算方式 (授信:275,预付:288,单结:292)
- $sett_frequency = trim($_POST['sett_frequency']);//结算周期(日结:293,周结:294,月结:295)
- $account_bank = trim($_POST['account_bank']);//开户银行
- $account_num = trim($_POST['account_num']);//银行账号
- $account_name = trim($_POST['account_name']);//账号名称
- $link_info = trim($_POST['link_info']);//联系人详情
- $sales_man = trim($_POST['sales_man']);//业务员
-
- $update_channel = new update_channel();
- $update_channel -> execUpdateChannel($channel_id,$supplier_name, $area_id, $manage_type, $company_name, $id_card, $sale, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_info,$sales_man)
- ?>
|