params),['keyword','type']); } /** * @notes 统计信息 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author cjhao * @date 2021/7/22 10:51 */ public function extend(): array { $statistics = (new Goods()) ->withSearch(array_diff(['type'],$this->setSearch()), $this->params) ->field(' IFNULL(sum(if(status = 1,1,0)),0) as sales_count, IFNULL(sum(if(status = 1 and stock_warning > 0 and total_stock > 0 and stock_warning > total_stock,1,0)),0) as warning_count, IFNULL(sum(if(status = 1 and total_stock = 0,1,0)),0) as sellout_count, IFNULL(sum(if(status = 0,1,0)),0) as storage_count') ->select()->toArray(); return array_shift($statistics); } /** * @notes 商品列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author cjhao * @date 2021/7/21 18:31 */ public function lists(): array { $list = (new Goods()) ->withSearch($this->setSearch(), $this->params) ->limit($this->limitOffset, $this->limitLength) ->field('id,name,code,image,min_price,max_price,total_stock,virtual_sales_num+sales_num as sales_num,virtual_click_num+click_num as click_num,status,sort,spec_type,create_time') ->order('id desc') ->select() ->toArray(); foreach ($list as $goodsKey => $goodsVal) { $list[$goodsKey]['status_desc'] = GoodsEnum::getStatusDesc($goodsVal['status']); //商品价格 $list[$goodsKey]['price'] = '¥' . $goodsVal['min_price']; if ($goodsVal['min_price'] != $goodsVal['max_price']) { $list[$goodsKey]['price'] = '¥' . $goodsVal['min_price'] . '~' . '¥' . $goodsVal['max_price']; } } return $list; } /** * @notes 商品总数 * @return int * @author cjhao * @date 2021/7/21 18:32 */ public function count(): int { return (new Goods()) ->withSearch($this->setSearch(), $this->params) ->count(); } }