Răsfoiți Sursa

成品开单(成品列表)

林琦海 5 ani în urmă
părinte
comite
a4b756c5d2

+ 19 - 1
app-hd/controllers/GoodsController.php

@@ -174,4 +174,22 @@ class GoodsController extends BaseController
         util::success($info);
     }
 
-}
+    public function actionIndex()
+    {
+        $classIds = CategoryService::getCategoryClassAll($this->sjId);
+        $where['merchantId'] = $this->sjId;
+        $where['delStatus'] = 0;
+        $goodsData = GoodsCategoryService::getGoodsAll($where);
+
+        //常用的GoodsId
+        $oftenIds = GoodsCategoryService::getOftenIds($this->sjId);
+
+        $goodsCateData = GoodsCategoryService::getGoodsCategory($this->sjId);
+
+
+        //组装数据: [{classId:'','className:'',child:[{itemInfoData}]}]
+        $data = GoodsCategoryService::assembleData($classIds,$goodsCateData,$goodsData, $oftenIds);
+
+        util::success($data);
+    }
+}

+ 32 - 16
biz-hd/goods/services/CategoryService.php

@@ -11,9 +11,10 @@ use linslin\yii2\curl;
 
 class CategoryService extends BaseService
 {
-	
+
+
 	public static $baseFile = '\bizHd\goods\classes\CategoryClass';
-	
+
 	//取所有的分类 ssh 2019.12.7
 	public static function getCategoryList($merchantId)
 	{
@@ -28,7 +29,7 @@ class CategoryService extends BaseService
 		}
 		return $cat;
 	}
-	
+
 	//取出可用的分类 ssh 2019.12.2
 	public static function getEnableList($merchantId)
 	{
@@ -43,21 +44,21 @@ class CategoryService extends BaseService
 		}
 		return $cat;
 	}
-	
+
 	//获取商家所有的分类名称
 	public static function getNameList($merchantId)
 	{
 		$cat = CategoryClass::getAllByCondition(['merchantId' => $merchantId, 'delStatus' => 0], 'inTurn DESC', '*');
 		return empty($cat) ? [] : array_column($cat, 'categoryName');
 	}
-	
+
 	//取出商家所有的分类ID ssh 2019.12.7
 	public static function getCategoryIdList($merchantId)
 	{
 		return CategoryClass::getCategoryIdList($merchantId);
 	}
-	
-	
+
+
 	//获取商家最靠前的分类id ssh 2019.12.2
 	public static function getTopCategoryId($merchantId)
 	{
@@ -65,7 +66,7 @@ class CategoryService extends BaseService
 		$id = isset($cat['id']) ? $cat['id'] : 0;
 		return $id;
 	}
-	
+
 	//获取前三个分类信息 ssh 2019.12.2
 	public static function getTopThreeCategory($merchantId)
 	{
@@ -75,7 +76,7 @@ class CategoryService extends BaseService
 		}
 		return $cat;
 	}
-	
+
 	//验证操作权限 ssh 2019.12.8
 	public static function valid($category, $merchantId)
 	{
@@ -83,24 +84,24 @@ class CategoryService extends BaseService
 			util::fail('您没有权限操作');
 		}
 	}
-	
+
 	//获取详情 ssh 2019.12.8
 	public static function getInfo($id)
 	{
 		return CategoryClass::getInfo($id);
 	}
-	
+
 	//添加分类 ssh 2019.12.8
 	public static function addCategory($data)
 	{
 		return CategoryClass::addCategory($data);
 	}
-	
+
 	public static function changeStatus($categoryId, $status)
 	{
 		return CategoryClass::changeStatus($categoryId, $status);
 	}
-	
+
 	//更新分类 ssh 2019.12.8
 	public static function updateCategory($category, $post)
 	{
@@ -115,10 +116,25 @@ class CategoryService extends BaseService
 		}
 		CategoryClass::updateById($categoryId, $post);
 	}
-	
+
 	public static function deleteCategory($id)
 	{
 		return CategoryClass::deleteCategory($id);
 	}
-	
-}
+
+    //获取开单页所有的分类:包括、常用
+    public static function getCategoryClassAll($merchantId)
+    {
+        $where = [
+            'merchantId'=>$merchantId
+        ];
+        $data = self::getAllList('id,categoryName as name',$where,'inTurn desc');
+        $use = [
+            'id'=>-2,
+            'name'=>'常用'
+        ];
+        array_unshift($data,$use);
+        return $data;
+    }
+
+}

+ 107 - 7
biz-hd/goods/services/GoodsCategoryService.php

@@ -10,9 +10,9 @@ use linslin\yii2\curl;
 
 class GoodsCategoryService extends BaseService
 {
-	
+    const OFTEN_CLASS_ID = '-2'; //常用分类
 	public static $baseFile = '\bizHd\goods\classes\GoodsCategoryClass';
-	
+
 	//查询一个分类下的商品,有分页 ssh 2019.12.2
 	public static function getGoodsList($where)
 	{
@@ -26,7 +26,7 @@ class GoodsCategoryService extends BaseService
 		$data['list'] = GoodsClass::groupGoodsBaseInfo($list);
 		return $data;
 	}
-	
+
 	//查询指定分类下的商品,没有分页,首页使用 ssh 2019.12.2
 	public static function getAppointCategoryList($category)
 	{
@@ -49,11 +49,11 @@ class GoodsCategoryService extends BaseService
 		//查出商品信息
 		$goodsInfoList = GoodsService::getAllByCondition(['id' => ['in', $goodsList]], 'inTurn DESC', '*', 'id');
 		$goodsInfoList = GoodsClass::groupGoodsBaseInfo($goodsInfoList);
-		
+
 		//每个分类取的商品数
 		$getNum = [6, 2, 4];
 		$showRowNum = [2, 1, 2];
-		
+
 		foreach ($category as $key => $val) {
 			$id = $val['id'];
 			//当前分类下有哪些商品id,并组合商品信息
@@ -73,7 +73,7 @@ class GoodsCategoryService extends BaseService
 		}
 		return $category;
 	}
-	
+
 	//获取商品所属的分类id  ssh 201917
 	public static function getGoodsHasCategoryIdList($goodsId)
 	{
@@ -85,4 +85,104 @@ class GoodsCategoryService extends BaseService
 		return $ids;
 	}
 
-}
+	//所有商品
+    public static function getGoodsAll($where)
+    {
+        $list = GoodsCategoryClass::getAllList('*', $where, 'inTurn DESC');
+
+        $ids = array_column($list, 'gId');
+        $list = GoodsService::getAllByCondition(['id' => ['in', $ids]], 'inTurn DESC', '*');
+        $data = GoodsClass::groupGoodsBaseInfo($list);
+        return $data;
+    }
+
+    //获取商家下 所有商品的分类
+    public static function getGoodsCategory($sjId)
+    {
+        $where = [
+            'merchantId' => $sjId
+        ];
+        $data = self::getAllList('cId as classId,gId', $where);
+        return $data;
+    }
+
+	//获取常用分类的 goods id  linqh 2021.04.09
+    public static function getOftenIds($sjId)
+    {
+        $data = GoodsClass::getLimitList("id", ['merchantId' => $sjId], 10,'actualSold desc');
+        if ($data) {
+            $data = array_column($data, 'id');
+        }
+        return $data;
+    }
+
+    //
+    public static function assembleData($classIds,$goodsCateData,$goodsData, $oftenIds)
+    {
+        $oftenItemInfoData = [];
+        if($goodsData){
+            foreach ($goodsData as $v){
+                if(in_array($v['id'],$oftenIds)){
+                    $v['classId'] = self::OFTEN_CLASS_ID;
+                    $oftenItemInfoData[] = $v;
+                }
+            }
+        }
+
+        //classId=>itemId
+        $classMapItem = [];
+        if($goodsData){
+            foreach ($goodsCateData as $v){
+                $classMapItem[$v['classId']][] = $v['gId'];
+            }
+        }
+
+        //常用
+        $oftenData = [
+            [
+                'classId'=> self::OFTEN_CLASS_ID,
+                'className'=>'常用',
+                'child'=>$oftenItemInfoData,
+            ]
+        ];
+
+        $classData = [];
+
+
+        foreach ($classIds as $v){
+            $classId = $v['id'];
+            if($classId > 0 ){
+                $tmp =[];
+                $tmp['classId'] = $classId;
+                $tmp['className'] = $v['name'];
+                $items = $classMapItem[$classId]??[];
+                if($items){
+                    if($goodsData){
+                        foreach ($goodsData as $v){
+                            if(in_array($v['id'],$items)){
+                                $v['classId'] = $classId; //前端要求增加classId 2021.1.31 linqh
+                                $tmp['child'][] = $v;
+                            }
+                        }
+                    }else{
+                        $tmp['child'] = [];
+                    }
+                }else{
+                    $tmp['child'] = [];
+                }
+                //去除空分类
+                if(empty($tmp['child'])){
+                    continue;
+                }
+                $classData[] = $tmp;
+            }
+
+        }
+
+        //$data = array_merge($oftenData,$allData,$classData);
+        //去除全部
+        $data = array_merge($oftenData,$classData);
+
+        return $data;
+    }
+}

+ 6 - 1
sql.sql

@@ -2014,4 +2014,9 @@ ADD COLUMN `smallUnit`  smallint(6) NOT NULL DEFAULT 0 COMMENT '小单位' AFTER
 
 
 ====== shish 2021-4-9
-ALTER TABLE xhCustom DROP COLUMN `totalBuyNum`;
+ALTER TABLE xhCustom DROP COLUMN `totalBuyNum`;
+
+========
+==linqh 2021.4.9
+ALTER TABLE `xhGoods`
+ADD COLUMN `py`  varchar(20) NOT NULL DEFAULT '' COMMENT '拼音' AFTER `shortUrl`;