فهرست منبع

实时金价的贵金属的活动详情的非活动价优化

wufeng 2 سال پیش
والد
کامیت
84301abaa9
2فایلهای تغییر یافته به همراه68 افزوده شده و 28 حذف شده
  1. 31 1
      app/admin/controller/Activity.php
  2. 37 27
      app/admin/controller/Good.php

+ 31 - 1
app/admin/controller/Activity.php

@@ -525,7 +525,37 @@ class Activity extends Base
             ->where(["activity_code" => $activity_code, "is_del" => 0])
             ->select()
             ->toArray();
-        $activity['info'] = empty($activity_info) ? [] : $activity_info;
+
+        if (!empty($activity_info)) {
+
+            //判断是否是启用实时金价的贵金属
+            $rs = Db::name('good_platform')
+                ->alias('a')
+                ->join('good g', 'g.spuCode=a.spuCode')
+                ->join('good_nake c', 'c.spuCode=a.spuCode')
+                ->whereIn('a.skuCode', array_column($activity_info, 'skuCode'))
+                ->column('g.cat_id,g.is_gold_price,g.demo_fee,g.open_fee,g.weight,c.cost_fee,c.package_fee,c.mark_fee,c.cert_fee,g.noble_metal,c.nake_fee,c.delivery_fee', 'a.skuCode');
+
+            foreach ($activity_info as &$value) {
+
+                //如果启用了实时金价,且是贵金属
+                if (isset($rs[$value['skuCode']])) {
+                    $top_cat = made($rs[$value['skuCode']]['cat_id']);
+                    if (isset($top_cat[0]['id']) && $top_cat[0]['id'] == 6 && $rs[$value['skuCode']]['is_gold_price'] == 1) {
+
+                        $gold_price = Db::name("gold_price1")->where(["type" => $rs[$value['skuCode']]['noble_metal'], "is_del" => 0, "status" => 1])->order("addtime desc")->value('price');
+
+                        $value['sale_price'] = round($rs[$value['skuCode']]['demo_fee'] / $value['moq_num'] + $rs[$value['skuCode']]['open_fee'] / $value['moq_num'] + $rs[$value['skuCode']]['weight'] * $gold_price + $rs[$value['skuCode']]['cost_fee'] * $rs[$value['skuCode']]['weight'] + $rs[$value['skuCode']]['package_fee'] + $rs[$value['skuCode']]['mark_fee'] + $rs[$value['skuCode']]['cert_fee'] + $rs[$value['skuCode']]['nake_fee'] + $rs[$value['skuCode']]['delivery_fee'], 2);
+
+                    }
+                }
+
+            }
+
+            $activity['info'] = $activity_info;
+        } else $activity['info'] = [];
+
+//        $activity['info'] = empty($activity_info) ? [] : $activity_info;
         return app_show(0, "获取成功", $activity);
     }
 

+ 37 - 27
app/admin/controller/Good.php

@@ -892,41 +892,50 @@ class Good extends Base
 
     //库存概况
     public function loglist(){
-        $page = isset($this->post['page']) && $this->post['page']!==""? intval($this->post['page']) :"1";
-        $size = isset($this->post['size']) && $this->post['size']!==""? intval($this->post['size']) :"10";
+
+        $param = $this->request->filter('trim')->only(['wsm_code'=>'','supplierNo'=>'','companyNo'=>'','is_stock'=>'','good_name'=>'','spuCode'=>'','page'=>1,'size'=>10],'post');
+
+//        $page = isset($this->post['page']) && $this->post['page']!==""? intval($this->post['page']) :"1";
+//        $size = isset($this->post['size']) && $this->post['size']!==""? intval($this->post['size']) :"10";
         $where=[];
-        $wsm_code= isset($this->post['wsm_code']) && $this->post['wsm_code']!="" ? trim($this->post['wsm_code']):"";
-        if($wsm_code!=""){
-            $where[]=['b.wsm_code',"like","%$wsm_code%"];
-        }
-        $supplierNo =isset($this->post['supplierNo']) &&$this->post['supplierNo'] !=="" ? trim($this->post['supplierNo']):"";
-        if($supplierNo!=""){
-            $supplier = Db::name("supplier")->where(["code"=>$supplierNo])->find();
-            if(empty($supplier)){
-                return error_show(1004,"未找到供应商信息");
-            }
-            $wsmcode = Db::name("warehouse_info")->where(["is_del"=>0,"supplierNo"=>$supplierNo])->column("wsm_code");
+//        $wsm_code= isset($this->post['wsm_code']) && $this->post['wsm_code']!="" ? trim($this->post['wsm_code']):"";
+        if($param['wsm_code']!="") $where[]=['b.wsm_code',"like","%".$param['wsm_code']."%"];
+
+//        $supplierNo =isset($this->post['supplierNo']) &&$this->post['supplierNo'] !=="" ? trim($this->post['supplierNo']):"";
+        if($param['supplierNo']!=""){
+            $supplier = Db::name("supplier")->where(["code"=>$param['supplierNo']])->find();
+            if(empty($supplier)) return error_show(1004,"未找到供应商信息");
+            $wsmcode = Db::name("warehouse_info")->where(["is_del"=>0,"supplierNo"=>$param['supplierNo']])->column("wsm_code");
             $where[]=['b.wsm_code',"in",$wsmcode];
         }
-        $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] !== "" ? trim($this->post['companyNo']) : "";
-        if ($companyNo !== "") {
-            $wsmcode = Db::name("warehouse_info")->where(['companyNo'=>$companyNo,"is_del"=>0])->column("wsm_code");
+//        $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] !== "" ? trim($this->post['companyNo']) : "";
+        if ($param['companyNo'] !== "") {
+            $wsmcode = Db::name("warehouse_info")->where(['companyNo'=>$param['companyNo'],"is_del"=>0])->column("wsm_code");
             $where[]=["b.wsm_code","in",$wsmcode];
         }
+
+        if($param['is_stock']!="") $where[]=['c.is_stock','=',$param['is_stock']];
+        if($param['good_name']!="") $where[]=['c.good_name','like','%'.$param['good_name'].'%'];
+        if($param['spuCode']!="") $where[]=['b.spuCode','like','%'.$param['spuCode'].'%'];
+
+
+
+
         $count = Db::name("good_log")
             ->alias('a')
             ->join("good_stock b","b.id=a.id","left")
             ->where($where)
             ->count();
-        $total = ceil($count/$size);
-        $page = $total>=$page ? $page :$total;
+        $total = ceil($count/$param['size']);
+        $page = $total>=$param['page'] ? $param['page'] :$total;
         $list = Db::name("good_log")
             ->alias('a')
-            ->join("good_stock b","b.id=a.stock_id","left")
+            ->field("a.good_log_code,a.action_name,a.type,a.stock_name,a.stock,a.action_type,b.spuCode,a.addtime,a.action_uid,b.wsm_code,c.is_stock,c.good_name,c.cat_id")
+            ->leftJoin('good_stock b','b.id=a.stock_id')
+            ->leftJoin('good c','c.spuCode=b.spuCode')
             ->where($where)
-            ->page($page,$size)
+            ->page($page,$param['size'])
             ->order("a.addtime desc")
-            ->field("a.good_log_code,a.action_name,a.type,a.stock_name,a.stock,a.action_type,b.spuCode,a.addtime,a.action_uid,b.wsm_code")
             ->select()
             ->toArray();
         $data=[];
@@ -941,7 +950,7 @@ class Good extends Base
             }
         }
 
-        foreach ($list as $value){
+        foreach ($list as &$value){
             $wsm = Db::name("warehouse_info")
                 ->alias("a")
                 ->Join("supplier b","a.supplierNo=b.code","left")
@@ -950,9 +959,10 @@ class Good extends Base
                 ->field("a.name as wsm_name,wsm_code,b.code,b.name,bus.company,bus.companyNo")
                 ->find();
 
-            $godd =Db::name("good")->where(["spuCode"=>$value['spuCode'],"is_del"=>0])->find();
-            $value['good_name']=isset($godd['good_name'])? $godd['good_name']:"";
-            $value['cat_id']=isset($godd['cat_id'])? $godd['cat_id']:"";
+//            $godd = Db::name("good")->field('id,good_name,cat_id,is_stock')->where(["spuCode" => $value['spuCode'], "is_del" => 0])->find();
+//            $value['good_name']=isset($godd['good_name'])? $godd['good_name']:"";
+//            $value['cat_id']=isset($godd['cat_id'])? $godd['cat_id']:"";
+//            $value['is_stock']=isset($godd['is_stock'])? $godd['is_stock']:"";
             $int = isset($value['cat_id']) && $value['cat_id'] != 0 ? made($value['cat_id']) : [];
             $value['wsm_name'] =$wsm['wsm_name'];
             $value['wsm_code'] =$wsm['wsm_code'];
@@ -963,9 +973,9 @@ class Good extends Base
             $value['can'] =$int;
             $value['company'] =$wsm['company']??'';
             $value['companyNo'] =$wsm['companyNo']??'';
-            $data[]=$value;
+//            $data[]=$value;
         }
-        return app_show(0,"获取成功",['list'=>$data,'count'=>$count]);
+        return app_show(0,"获取成功",['list'=>$list,'count'=>$count]);
     }
 
     public function goodlist()