| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace biz\goods\services;
- use biz\base\services\BaseService;
- use biz\goods\classes\GoodsCategoryClass;
- use biz\goods\classes\GoodsClass;
- use Yii;
- use linslin\yii2\curl;
- class GoodsCategoryService extends BaseService
- {
-
- public static $baseFile = '\biz\goods\classes\GoodsCategoryClass';
-
- //查询一个分类下的商品,有分页 shish 2019.12.2
- public static function getGoodsList($where)
- {
- $data = GoodsCategoryClass::getList('*', $where, 'inTurn DESC');
- $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
- if (empty($list)) {
- return $data;
- }
- $ids = array_column($list, 'gId');
- $list = GoodsService::getAllByCondition(['id' => ['in', $ids]], 'inTurn DESC', '*');
- $data['list'] = GoodsClass::groupGoodsBaseInfo($list);
- return $data;
- }
-
- //查询指定分类下的商品,没有分页,首页使用 shish 2019.12.2
- public static function getAppointCategoryList($category)
- {
- $ids = array_column($category, 'id');
- //取出分类下的商品id
- $list = GoodsCategoryClass::getAllByCondition(['cId' => ['in', $ids]], 'inTurn DESC,addTime DESC', '*');
- if (empty($list)) {
- foreach ($category as $key => $val) {
- $category[$key]['goodsInfoList'] = [];
- }
- return $category;
- }
- $goodsList = [];
- $categoryGoods = [];
- foreach ($list as $val) {
- $goodsList[] = $val['gId'];
- $cId = $val['cId'];
- $categoryGoods[$cId][] = $val['gId'];
- }
- //查出商品信息
- $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,并组合商品信息
- $categoryGoodsIdList = isset($categoryGoods[$id]) ? $categoryGoods[$id] : [];
- $info = [];
- if (!empty($categoryGoodsIdList)) {
- $currentGetNum = isset($getNum[$key]) ? $getNum[$key] : 2;
- $categoryGoodsIdList = array_slice($categoryGoodsIdList, 0, $currentGetNum);
- foreach ($categoryGoodsIdList as $currentGoodsId) {
- if (isset($goodsInfoList[$currentGoodsId])) {
- $info[] = $goodsInfoList[$currentGoodsId];
- }
- }
- }
- $category[$key]['goodsInfoList'] = $info;
- $category[$key]['showRow'] = isset($showRowNum[$key]) ? $showRowNum[$key] : 2;
- }
- return $category;
- }
-
- //获取商品所属的分类id shish 201917
- public static function getGoodsHasCategoryIdList($goodsId)
- {
- $categoryIdList = GoodsCategoryClass::getAllByCondition(['gId' => $goodsId], null, 'cId', 'cId');
- if (empty($categoryIdList)) {
- return [];
- }
- $ids = array_keys($categoryIdList);
- return $ids;
- }
- }
|