98 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| namespace  app\shop\logic;
 | |
| 
 | |
| use app\common\basics\Logic;
 | |
| use app\common\model\goods\Goods;
 | |
| use app\common\model\goods\GoodsItem;
 | |
| use app\common\server\UrlServer;
 | |
| use app\common\enum\GoodsEnum;
 | |
| 
 | |
| class CommonLogic extends Logic
 | |
| {
 | |
|     public static function getGoodsList($get)
 | |
|     {
 | |
|         $where = [
 | |
|             ['shop_id', '=', $get['shop_id']],
 | |
|             ['del', '=', GoodsEnum::DEL_NORMAL], // 未删除
 | |
|             ['audit_status', '=', GoodsEnum::AUDIT_STATUS_OK], // 审核通过
 | |
|             ['status', '=', GoodsEnum::STATUS_SHELVES], // 上架中
 | |
|             ['type', '=', GoodsEnum::TYPE_ACTUAL] // 实物商品才参与
 | |
|         ];
 | |
|         if(!empty($get['keyword'])) {
 | |
|             $where[] = ['name', 'like','%'. $get['keyword'].'%'];
 | |
|         }
 | |
|         if(!empty($get['cid'])) {
 | |
|             $where[] = ['shop_cate_id', '=', $get['cid']];
 | |
|         }
 | |
| 
 | |
|         $lists = Goods::field('id,name,image,min_price as min_max_price,min_price,max_price,stock')
 | |
|             ->where($where)
 | |
|             ->order('id', 'desc')
 | |
|             ->page($get['page'], $get['limit'])
 | |
|             ->select()
 | |
|             ->toArray();
 | |
| 
 | |
|         $count = Goods::field('id,name,image,min_price,max_price,stock')
 | |
|             ->where($where)
 | |
|             ->count();
 | |
| 
 | |
|         foreach($lists as &$item) {
 | |
|            $item['image'] = UrlServer::getFileUrl($item['image']);
 | |
|         }
 | |
| 
 | |
|         return [
 | |
|             'count' => $count,
 | |
|             'lists' => $lists
 | |
|         ];
 | |
|     }
 | |
| 
 | |
|     //获取商品列表
 | |
|     public static function getGoodsListTwo($get,$is_item = false){
 | |
|         $where = [
 | |
|             ['shop_id', '=', $get['shop_id']],
 | |
|             ['del', '=', GoodsEnum::DEL_NORMAL], // 未删除
 | |
|             ['audit_status', '=', GoodsEnum::AUDIT_STATUS_OK], // 审核通过
 | |
|             ['status', '=', GoodsEnum::STATUS_SHELVES], // 上架中
 | |
|             ['type', '=', GoodsEnum::TYPE_ACTUAL] // 实物商品才参与
 | |
|         ];
 | |
| 
 | |
|         if (isset($get['keyword']) && $get['keyword']) {
 | |
|             $where[] = ['name', 'like', '%' . $get['keyword'] . '%'];
 | |
|         }
 | |
|         if(!empty($get['cid'])) {
 | |
|             $where[] = ['shop_cate_id', '=', $get['cid']];
 | |
|         }
 | |
| 
 | |
|         $goods_count = Goods::where($where)->count();
 | |
| 
 | |
|         $goods_list = Goods::where($where)
 | |
|             ->page($get['page'], $get['limit'])
 | |
|             ->column('*','id');
 | |
| 
 | |
|         foreach ($goods_list as &$item) {
 | |
|             $item['goods_item'] = [];
 | |
|             $item['price'] = '¥'.$item['min_price'];
 | |
|             if($item['max_price'] != $item['min_price']){
 | |
|                 $item['price'] = '¥'.$item['min_price'].'~'.'¥'.$item['max_price'];
 | |
|             }
 | |
|             $item['create_time_desc'] = date('Y-m-d H:i:s',$item['create_time']);
 | |
|             $item['image'] = UrlServer::getFileUrl($item['image']);
 | |
|         }
 | |
| 
 | |
|         if($is_item){
 | |
|             $goods_ids = array_keys($goods_list);
 | |
|             $goods_item = GoodsItem::where(['goods_id'=>$goods_ids])->select()->toArray();
 | |
|             foreach ($goods_item as $items){
 | |
|                 if(isset($goods_list[$items['goods_id']])){
 | |
|                     if($items['image']){
 | |
|                         $items['image'] = UrlServer::getFileUrl($items['image']);
 | |
|                     }else{
 | |
|                         $items['image'] = $goods_list[$items['goods_id']]['image'];
 | |
|                     }
 | |
|                     $goods_list[$items['goods_id']]['goods_item'][] = $items;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         return ['count' => $goods_count, 'list' =>array_values($goods_list)];
 | |
|     }
 | |
| } |