|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- <?php
-
- /*
- * 添加供应商
- * author:张帅
- */
-
- class get_supply_list
- {
- //获取供应商列表主要流程
- function execGetSupplyList($supplier_name, $product_type, $is_disabled, $current, $pagesize)
- {
- //1.获取筛选条件
- $sql_where = $this->getWhere($supplier_name, $is_disabled);
-
- //2.获取数据库原始数据
- $db_data = $this->getDbData($sql_where, $product_type, $current, $pagesize);
-
- //3.处理数据
- $tidyData = $this->tidyData($db_data['supplier_array']);
- $tidyData['total_page'] = (string)$db_data['total_page'];
- echo json_encode($tidyData);
- exit();
-
- }
-
- //获取筛选条件
- function getWhere($supplier_name, $is_disabled)
- {
- $res = array();
- if (!empty($is_disabled) && $is_disabled != -1) {
- $res[] = " a.is_disabled = " . $is_disabled;
- }
-
- if (!empty($supplier_name)) {
- $res[] = " a.supplier_name like '%%" . $supplier_name . "%%' ";
- }
- $main_corp_id = isset($_COOKIE["user_main_corp"]) ? $_COOKIE["user_main_corp"] : 0;
- if( $main_corp_id != 0 ) {
- $res[] = " main_corp_id IN (0,{$main_corp_id}) ";
- }
-
- if (count($res) > 0) {
- $res = " and " . implode(" and ", $res);
- } else {
- $res = '';
- }
-
- return $res;
- }
-
- //获取数据库原始数据
- function getDbData($sql_where, $product_type, $current, $pagesize)
- {
- global $pdo;
- 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";
- writeLog("select base_supplier_purchase:" . $purchase_sql);
- $result = $pdo->query($purchase_sql);
- $supplier_id_array = $result->fetchAll(PDO::FETCH_ASSOC);//获取有该采购类型的所有supplier_id
-
- //如果没有该采购类型的supplier,返回空数组
- if (count($supplier_id_array) == 0) {
- $json['code'] = '0';
- $json['info'] = '没有符合条件的数据';
- $json['list'] = array();
- $json['count'] = '0';
- $json['total_page'] = '0';
- echo json_encode($json);
- exit();
- }
-
- //如果有该采购类型的supplier
- foreach ($supplier_id_array as $k => $v) {
- $supplier_id_array[$k] = $v['supplier_id'];
- }
- $sql_where .= " and a.id in(" . implode(",", $supplier_id_array) . ")" . $sql_where . " ";
- }
- $supplier_sql = "SELECT
- id,
- supplier_name,
- area_id,
- is_disabled,
- supplier_type
- FROM
- base_supplier a
- WHERE
- cancel_flag = 0
- " . $sql_where . "
- AND supplier_type = 187
- LIMIT " . ($current - 1) * $pagesize . "," . $pagesize;
-
- writeLog("select base_supplier:" . $supplier_sql);
- $result = $pdo->query($supplier_sql);
- $supplier_array1 = $result->fetchAll(PDO::FETCH_ASSOC);//获取所有数据
- if (count($supplier_array1) > 0) {
- foreach ($supplier_array1 as $k => $v) {
- // $v['product_type'] = explode(",",$v['product_type']);
- // $v['product_type'] = array_unique($v['product_type']);
- // $v['product_type'] = implode(",",$v['product_type']);
- // $supplier_array[$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";
- $result = $pdo->query($sql);
- $purchase_array1 = $result->fetchAll(PDO::FETCH_ASSOC);
- 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";
- writeLog("count:" . $count_sql);
- $result = $pdo->query($count_sql);
- $total_page = $result->fetchAll(PDO::FETCH_ASSOC);//获取所有数据
- $res['supplier_array'] = $supplier_array;
- $res['total_page'] = ceil(count($total_page) / $pagesize);
- return $res;
- } else {
- $json['code'] = '0';
- $json['info'] = '没有符合条件的数据';
- $json['list'] = array();
- $json['count'] = '0';
- $json['total_page'] = '0';
- echo json_encode($json);
- exit();
- }
-
-
- }
-
- //处理数据
- function tidyData($db_data)
- {
- global $pdo;
- $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) . ")";
- writeLog("select base_area:" . $area_sql);
- $result = $pdo->query($area_sql);
- $area_id_array = $result->fetchAll(PDO::FETCH_ASSOC);//获取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;
- }
-
- }
-
- $supplier_name = trim($_POST['supplier_name']);//供应商名称
- $product_type = trim($_POST['product_type']);//采购范围
- $is_disabled = trim($_POST['is_disabled']);//状态
- $pagesize = trim($_POST['pagesize']);//每页的数据量
- $current = trim($_POST['current']);//当前页数
-
- $get_supply_list = new get_supply_list();
- $get_supply_list->execGetSupplyList($supplier_name, $product_type, $is_disabled, $current, $pagesize);
- ?>
|