Browse Source

优化GetPart方法,第一阶段

wufeng 2 years ago
parent
commit
2c356c3959

+ 8 - 6
app/admin/controller/Brand.php

@@ -99,16 +99,18 @@ class Brand extends Base
         $page = $page >= $total ? $total : $page;
         $list = Db::name('brand')
             ->alias('b')
-            ->field('b.*,u.itemid')
-            ->leftJoin("depart_user u", "u.uid=b.createrid AND u.is_del=0")
             ->where($where)
-            ->append(['company_name'])
-            ->withAttr('company_name',function($val,$data){
-                return implode('/', array_column(GetPart($data['itemid']), 'name'));
-            })
             ->page($page,$size)
             ->order("addtime desc,id desc")
             ->select();
+
+        $all_createrid = array_column($list,'createrid');
+        $item = get_company_name_by_uid($all_createrid);
+
+        foreach ($list as &$val){
+            $val['company_name']=$item[$val['createrid']]??'';
+        }
+
         return app_show(0,"获取成功",['list'=>$list,'count'=>$count]);
     }
     public function edit(){

+ 2 - 2
app/admin/controller/Cat.php

@@ -71,7 +71,7 @@ class Cat extends Base
                 $temp = [];
             }
             $value['im'] = $temp;
-            $value['company_name'] = $item[$value['createrid']]??'';//implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['createrid']]??'';
             $var[] = $value;
         }
         return app_show(0, '获取成功', ['list' => $var, 'count' => $count]);
@@ -163,7 +163,7 @@ class Cat extends Base
                 ->toArray();
 
             $value['im'] = $temp;
-            $value['company_name'] = $item[$value['createrid']];//implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['createrid']];
             $var[] = $value;
         }
         return app_show(0, '获取成功', ['list' => $var, 'count' => $count]);

+ 5 - 3
app/admin/controller/Check.php

@@ -115,13 +115,15 @@ public function __construct(App $app)
         $list = Db::name("good")
             ->alias("b")
             ->leftJoin("good_stock c", "c.spuCode=b.spuCode")
-            ->leftJoin("depart_user u", "u.uid=b.createrid AND u.is_del=0")
             ->where($condtion)
-            ->field("b.*,c.id as stock_id,c.usable_stock,c.wait_in_stock,c.wait_out_stock,c.wsm_code,u.uid,u.nickname,u.itemid")
+            ->field("b.*,c.id as stock_id,c.usable_stock,c.wait_in_stock,c.wait_out_stock,c.wsm_code,0 uid,'' nickname")//暂未想好,先留空20230112 14:34@wf
             ->page($page, $size)
             ->select()
             ->toArray();
 
+        $all_createrid = array_column($list,'createrid');
+        $item = get_company_name_by_uid($all_createrid);
+
         $data = [];
         if ($list) {
             //品牌信息
@@ -160,7 +162,7 @@ public function __construct(App $app)
                 }
                 $value['specinfo'] = $speclist;
                 $value['cgder'] = isset($supplier['person']) ? $supplier['person'] : '';
-                $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+                $value['company_name'] = $item[$value['createrid']]??'';
                 $data[] = $value;
             }
 

+ 8 - 6
app/admin/controller/Consult.php

@@ -89,18 +89,20 @@ class Consult extends Base
         $list = Db::name('consult_info')
             ->alias("a")
             ->leftJoin("consult_order b", "a.zxNo=b.zxNo")
-            ->leftJoin("depart_user u", "u.uid=b.createrid AND u.is_del=0")
             ->where($where)
             ->page($page, $size)
-            ->field("a.*,b.createrid,b.creater,b.is_project,b.projectNo,b.khNo,b.endtime,b.platform_code,b.saleid,b.salesman,b.depart,u.itemid")
+            ->field("a.*,b.createrid,b.creater,b.is_project,b.projectNo,b.khNo,b.endtime,b.platform_code,b.saleid,b.salesman,b.depart")
             ->order("a.id desc")
-            ->cursor();
+            ->select()
+            ->toArray();
+
+        $all_createrid = array_column($list,'createrid');
+        $item = get_company_name_by_uid($all_createrid);
 
         $data=[];
         foreach ($list as $value){
             $value['can']= isset($value['cat_id']) && $value['cat_id'] !=0 ? made($value['cat_id']):[];
-            $value['specinfo']=isset($value['specinfo'])&&$value['specinfo']!=""? json_decode($value['specinfo'],
-                true):[];
+            $value['specinfo']=isset($value['specinfo'])&&$value['specinfo']!=""? json_decode($value['specinfo'], true):[];
             $brand = Db::name("brand")->where(['id'=>$value['brand_id']])->find();
             $value['brand_name']= isset($brand['brand_name']) && $brand['brand_name']!='' ? $brand['brand_name']:"";
             $value['khname']="";
@@ -109,7 +111,7 @@ class Consult extends Base
                 $value['khname']= isset($kh['companyName'])?$kh['companyName']:"";
             }
             $value['metal_name']=isset($value['metal_id'])&& $value['metal_id']!=0?$this->noble[$value['metal_id']]:"";
-            $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['createrid']]??'';
             //是否具有编辑权限
             $value['is_allow_update'] = 0;
             if (in_array($this->roleid, [1, 33]) || in_array($value['createrid'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;

+ 7 - 4
app/admin/controller/Goldprice.php

@@ -199,14 +199,17 @@ class Goldprice extends BaseController
         $where[] = ['g.id', 'in', $ids];
         $list = Db::name("gold_price1")
             ->alias('g')
-            ->field('g.*,u.itemid')
-            ->leftJoin("depart_user u", "u.uid=g.action_id AND u.is_del=0")
             ->where($where)
-            ->cursor();
+            ->select()
+            ->toArray();
+
+        $all_createrid = array_column($list,'action_id');
+        $item = get_company_name_by_uid($all_createrid);
+
         $data = [];
         foreach ($list as $value) {
             $value['type_cn'] = $this->gold[$value['type']];
-            $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['action_id']]??'';
             $data[] = $value;
         }
         return app_show(0, "获取成功", $data);

+ 16 - 10
app/admin/controller/Good.php

@@ -140,20 +140,22 @@ class Good extends Base
         $page = $page >= $total ? $total : $page;
         $list = Db::name('good')
             ->alias("a")
-            ->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.cat_id,a.good_name,a.good_img,a.good_info_img,a.good_thumb_img,
-            b.createrid,a.is_exclusive,a.brand_id,a.supplierNo,a.good_unit,a.noble_metal,a.companyNo,a.spuCode,a.good_type,b.creater,b.addtime,
-            b.updatetime,b.exam_status,a.createrid purchase_id,a.creater purchase,u.itemid,a.is_stock,s.name as supplier_name")
+            ->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.cat_id,a.good_name,a.good_img,a.good_info_img,a.good_thumb_img,b.createrid,a.is_exclusive,a.brand_id,a.supplierNo,a.good_unit,a.noble_metal,a.companyNo,a.spuCode,a.good_type,b.creater,b.addtime,b.updatetime,b.exam_status,a.createrid purchase_id,a.creater purchase,a.is_stock,s.name as supplier_name")
             //成本表里的创建人,也是线上商品的采购人,为了防止混淆,给creater取个别名
             ->leftJoin("good_platform b","a.spuCode=b.spuCode")
             ->leftJoin("supplier s","a.supplierNo=s.code")
 //            ->leftJoin("good_basic gb","gb.spuCode=a.spuCode")
-            ->leftJoin("depart_user u", "u.uid=b.createrid AND u.is_del=0")
             ->leftJoin("platform p","p.id=b.platform_code")
             ->where('p.platform_type',0)//只筛选非对接平台的商品
             ->where($where)
             ->page($page,$size)
             ->order("b.addtime desc")
-            ->cursor();
+            ->select()
+            ->toArray();
+
+        $all_createrid = array_column($list,'createrid');
+        $item = get_company_name_by_uid($all_createrid);
+
         $data=[];
         foreach ($list as $value){
             $value['cat_info']= made($value['cat_id'],[]);
@@ -189,7 +191,7 @@ class Good extends Base
             }
             $value['specinfo']=$speclist;
             $value['noble_name']=isset($value['noble_metal'])&&$value['noble_metal']!=0?$this->noble[$value['noble_metal']] :"";
-            $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['createrid']]??'';
 
             //是否具有编辑权限
             $value['is_allow_update'] = 0;
@@ -270,13 +272,17 @@ class Good extends Base
         $param['page'] = $param['page'] >= $total ? $total : $param['page'];
         $list = Db::name('platform_youzan')
             ->alias("b")
-            ->field("b.skuCode,b.platform_id platform_code,b.plat_code,b.id as platform_youzan_id,a.cat_id,a.good_name,a.good_img,a.good_info_img,a.good_thumb_img,b.createrid,a.is_exclusive,a.brand_id,a.supplierNo,a.good_unit,a.noble_metal,a.companyNo,a.spuCode,a.good_type,b.creater,b.addtime,b.updatetime,b.exam_status,a.createrid purchase_id,a.creater purchase,u.itemid")//成本表里的创建人,也是线上商品的采购人,为了防止混淆,给creater取个别名
+            ->field("b.skuCode,b.platform_id platform_code,b.plat_code,b.id as platform_youzan_id,a.cat_id,a.good_name,a.good_img,a.good_info_img,a.good_thumb_img,b.createrid,a.is_exclusive,a.brand_id,a.supplierNo,a.good_unit,a.noble_metal,a.companyNo,a.spuCode,a.good_type,b.creater,b.addtime,b.updatetime,b.exam_status,a.createrid purchase_id,a.creater purchase")//成本表里的创建人,也是线上商品的采购人,为了防止混淆,给creater取个别名
             ->leftJoin("good_basic a", "a.spuCode=b.spuCode")
-            ->leftJoin("depart_user u", "u.uid=a.createrid AND u.is_del=0")
             ->where($where)
             ->page($param['page'], $param['size'])
             ->order("b.addtime desc")
-            ->cursor();
+            ->select()
+            ->toArray();
+
+        $all_createrid = array_column($list,'createrid');
+        $item = get_company_name_by_uid($all_createrid);
+
         $data = [];
         foreach ($list as $value) {
             $value['cat_info'] = made($value['cat_id'], []);
@@ -312,7 +318,7 @@ class Good extends Base
             }
             $value['specinfo'] = $speclist;
             $value['noble_name'] = isset($value['noble_metal']) && $value['noble_metal'] != 0 ? $this->noble[$value['noble_metal']] : "";
-            $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['createrid']]??'';
 
             //是否具有编辑权限
             $value['is_allow_update'] = 0;

+ 4 - 6
app/admin/controller/Goodup.php

@@ -162,18 +162,16 @@ class Goodup extends Base
         $page = $page >= $total ? $total : $page;
         $list = Db::name('good_basic')
             ->alias('gb')
-            ->field('gb.*,u.itemid')
-            ->leftJoin("depart_user u", "u.uid=gb.chargerid AND u.is_del=0")
             ->where($where)
-//            ->where(function ($Query) use ($wheror) {
-//                return $Query->whereOr($wheror);
-//            })
             ->page($page, $size)
             ->order("addtime desc")
             ->select()
             ->toArray();
         $data=[];
 
+        $all_createrid = array_column($list,'chargerid');
+        $item = get_company_name_by_uid($all_createrid);
+
         //查询一下这些spucode是否在平台上成功上线
         $exam_statuss = Db::name('good_platform')
             ->whereIn('spuCode',array_column($list,'spuCode'))
@@ -202,7 +200,7 @@ class Goodup extends Base
             //如果一个spucode在任意平台上线,那么就视为它上线,即手动把它的is_online值改为1
             if (isset($exam_statuss[$value['spuCode']]) || isset($exam_status_yz[$value['spuCode']]))  $value['is_online'] = 1;
 
-            $value['charger_company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['charger_company_name'] = $item[$value['chargerid']]??'';
 
             $value['has_account'] = (int)isset($account[$value['supplierNo']]);
 

+ 6 - 6
app/admin/controller/Orderuse.php

@@ -82,17 +82,17 @@ class Orderuse extends BaseController
         $page = $page >= $total ? $total :$page;
         $list = Db::name('order_use')
             ->alias('ou')
-            ->field('ou.*,u.itemid')
-            ->leftJoin("depart_user u", "u.uid=ou.createrid AND u.is_del=0")
             ->where($where)
             ->page($page, $size)
-            ->append(['company_name'])
-            ->withAttr('company_name', function ($val, $data) {
-                return implode('/', array_column(GetPart($data['itemid']), 'name'));
-            })
             ->order("addtime desc")
             ->select()
             ->toArray();
+        $all_createrid = array_column($list,'createrid');
+        $item = get_company_name_by_uid($all_createrid);
+
+        foreach ($list as &$value){
+            $val['company_name']=$item[$value['createrid']]??'';
+        }
         return app_show(0, "获取成功", ["list" => $list, "count" => $count]);
     }
     public function edit(){

+ 24 - 14
app/admin/controller/Purch.php

@@ -163,9 +163,8 @@ class Purch extends Base
         $list = Db::name("purchease_order")
             ->alias('po')
             ->leftJoin('order_num on','on.cgdNo=po.cgdNo')
-            ->leftJoin("depart_user u", "u.uid=po.cgder_id AND u.is_del=0")
             ->leftJoin('supplier sip', 'sip.code=po.supplierNo')
-            ->field('po.*,on.orderCode,u.itemid,sip.personid as supplier_cgderid,sip.person as supplier_cgder')
+            ->field('po.*,on.orderCode,sip.personid as supplier_cgderid,sip.person as supplier_cgder')
             ->where($where)
             ->where(function($query) use ($where){$query->whereOr([['po.order_type', '<>', 1],['po.order_source', '=', 0]]);})
             ->page($page,$size)
@@ -174,6 +173,8 @@ class Purch extends Base
             ->toArray();
 
         $account = checkHasAccountBySupplierNos(array_column($list,'supplierNo'));
+        $all_createrid = array_column($list,'cgder_id');
+        $item = get_company_name_by_uid($all_createrid);
         $data=[];
         foreach ($list as $value){
             $value['wsm_name']="";
@@ -215,13 +216,16 @@ class Purch extends Base
 //            $value['cgder_id'] = $goon['createrid'];
 //            $value['cgder'] = $goon['creater'];
 
-            $inorder= Db::name("purchease_in")->where(['cgdNo'=>$value['cgdNo'],"is_del"=>0])->select();
+            $inorder= Db::name("purchease_in")
+                ->where(['cgdNo'=>$value['cgdNo'],"is_del"=>0])
+                ->select()
+                ->toArray();
             $value['child']=empty($inorder)? [] : $inorder;
             $value['send_num'] -=$value['th_num'];
             $value['total_fee'] =round($value['total_fee']-$value['th_fee'],2);
             //补充orderCode
 //            $value['orderCode']=isset($all_orderCodes[$value['cgdNo']])?$all_orderCodes[$value['cgdNo']]:'';
-            $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['cgder_id']]??'';
 
             $value['has_account'] = (int)isset($account[$value['supplierNo']]);
 
@@ -944,16 +948,21 @@ class Purch extends Base
         $list = Db::name('purchease_diff')
             ->alias('a')
             ->join("good b","b.spuCode=a.good_code","left")
-            ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
             ->where($where)
             ->page($page,$size)
             ->order("a.addtime desc")
-            ->field("a.*,b.cat_id,u.itemid")
-            ->cursor();
+            ->field("a.*,b.cat_id")
+            ->select()
+            ->toArray();
+
+        $all_createrid = array_column($list,'apply_id');
+        $item = get_company_name_by_uid($all_createrid);
+
         $data=[];
+
         foreach ($list as $value){
             $value['can']= isset($value['cat_id']) && $value['cat_id'] !=0 ? made($value['cat_id']):[];
-            $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['apply_id']]??'';
 
             //是否具有编辑权限
             $value['is_allow_update'] = 0;
@@ -1227,18 +1236,19 @@ class Purch extends Base
 
         $list = Db::name('purchease_change_supplier_log')
             ->alias('a')
-            ->field('a.*,u.itemid')
-            ->leftJoin("depart_user u", "u.uid=a.creater_id AND u.is_del=0")
             ->where($where)
             ->order('a.id', 'desc')
             ->page($param['page'], $param['size'])
-            ->append(['company_name'])
-            ->withAttr('company_name', function ($val, $data) {
-                return implode('/', array_column(GetPart($data['itemid']), 'name'));
-            })
             ->select()
             ->toArray();
 
+        $all_createrid = array_column($list,'createrid');
+        $item = get_company_name_by_uid($all_createrid);
+
+        foreach ($list as &$value){
+            $val['company_name']=$item[$value['createrid']]??'';
+        }
+
         return app_show(0, '获取成功', ['list' => $list, 'count' => $count]);
 
     }

+ 8 - 7
app/admin/controller/Purchin.php

@@ -122,16 +122,17 @@ class Purchin extends Base
             ->join("purchease_order b","b.cgdNo=a.cgdNo","left")
             ->leftJoin('supplier sip', 'sip.code=b.supplierNo')
             ->leftJoin("warehouse_info c","a.wsm_code=c.wsm_code")
-            ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
             ->where($where)
              ->where(function ($query)use ($condition){$query->whereOr($condition);})
             ->page($page,$size)
-            ->field("a.apply_name,a.sendtime,b.order_type,b.order_source,a.status,a.cgdNo,
-            a.wsm_in_code,a.send_num,a.wsm_code,b.good_name,b.spuCode,a.post_company,a.post_code,
-            a.post_fee,a.apply_id,a.wsm_num,a.error_num,a.wait_num,a.status,a.check_name,a.checkid,
-            b.bkcode,b.supplierNo,u.itemid,sip.personid as cgder_id,sip.person as cgder,b.good_createrid,b.good_creater")
+            ->field("a.apply_name,a.sendtime,b.order_type,b.order_source,a.status,a.cgdNo,a.wsm_in_code,a.send_num,a.wsm_code,b.good_name,b.spuCode,a.post_company,a.post_code,a.post_fee,a.apply_id,a.wsm_num,a.error_num,a.wait_num,a.status,a.check_name,a.checkid,b.bkcode,b.supplierNo,sip.personid as cgder_id,sip.person as cgder,b.good_createrid,b.good_creater")
             ->order("a.addtime desc")
-            ->cursor();
+            ->select()
+            ->toArray();
+
+        $all_createrid = array_column($list,'apply_id');
+        $item = get_company_name_by_uid($all_createrid);
+
         $data=[];
         foreach ($list as $value){
 
@@ -181,7 +182,7 @@ class Purchin extends Base
             $value['wsm_supplier'] = $wsmcode['name'];
             $value['wsm_supplierNo'] = $wsmcode['code'];
 
-            $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['apply_id']]??'';
 
             //是否具有编辑权限
             $value['is_allow_update'] = 0;

+ 5 - 4
app/admin/controller/Resign.php

@@ -114,14 +114,15 @@ class Resign extends Base
         $page = $page >= $total ? $total : $page;
         $list = Db::name("purchease")
             ->alias('p')
-            ->field('p.*,u.itemid')
-            ->leftJoin("depart_user u", "u.uid=p.apply_id AND u.is_del=0")
             ->where($where)
             ->where(function ($query)use ($condition){$query->whereOr($condition);})
             ->page($page,$size)
             ->order("p.addtime desc")
-            ->cursor();
+            ->select()
+            ->toArray();
         $data=[];
+        $all_createrid = array_column($list,'apply_id');
+        $item = get_company_name_by_uid($all_createrid);
         foreach ($list as $value){
             $value['wsm_name']="";
             $value['wsm_supplier']="";
@@ -138,7 +139,7 @@ class Resign extends Base
                 $file= basename($value['file_url']);
                 $value['file_name'] =substr($file,0,strripos($file,"_"));
             }
-            $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_name'] = $item[$value['apply_id']]??'';
 
             //是否具有编辑权限
 //            $value['is_allow_update'] = 0;

+ 5 - 4
app/admin/controller/WareHouse.php

@@ -190,14 +190,15 @@ class WareHouse extends Base
         $list = Db::name("warehouse_info")
             ->alias("a")
             ->join("warehouse_addr b ","a.wsm_code=b.wsm_code","left")
-            ->leftJoin("depart_user u", "u.uid=a.contactor AND u.is_del=0")
             ->where($condition)
-            ->field("a.id,a.wsm_code,a.name,a.wsm_type,a.supplierNo,a.addr,a.contactor,a.contactor_name,a.mobile,a.position,
-            a.status,a.addtime,a.companyNo,a.updatetime,a.wsm_type,b.wsm_name,b.wsm_mobile,b.wsm_addr,b.addr_code,a.addrs_code,u.itemid")
+            ->field("a.id,a.wsm_code,a.name,a.wsm_type,a.supplierNo,a.addr,a.contactor,a.contactor_name,a.mobile,a.position,a.status,a.addtime,a.companyNo,a.updatetime,a.wsm_type,b.wsm_name,b.wsm_mobile,b.wsm_addr,b.addr_code,a.addrs_code")
             ->page($page,$size)
             ->order("a.addtime desc")
             ->select()
             ->toArray();
+        $all_createrid = array_column($list,'contactor');
+        $item = get_company_name_by_uid($all_createrid);
+
         foreach ($list as $key=>$value){
 //            if($value['supplierNo']!=""){
 //                $supplierinfo = Db::name("supplier")->where(["code"=>$value['supplierNo']])->find();
@@ -222,7 +223,7 @@ class WareHouse extends Base
 
             $value['addr_code'] = json_decode($value['addr_code'], true);
             $value['addrs_code'] = json_decode($value['addrs_code'], true);
-            $value['company_new_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            $value['company_new_name'] = $item[$value['contactor']]??'';
             $list[$key]=$value;
 
         }