count(); return [ 'success' => $success ]; } /** * @notes 设置搜索 * @author Tab * @date 2021/8/28 15:13 */ public function setSearch() { $this->searchWhere = [ // 进行中状态 ['ba.status', '=', BargainEnum::ACTIVITY_STATUS_ING], // 已到活动开始时间 ['ba.start_time', '<=', time()], // 未到活动结束时间 ['ba.end_time', '>', time()], // 商品状态须为已上架 ['g.status', '=', GoodsEnum::STATUS_SELL], ]; // 越临近结束的砍价越靠前 $this->sortOrder = ['ba.end_time' => 'asc']; } /** * @notes 列表 * @return array * @author Tab * @date 2021/8/28 15:13 */ public function lists(): array { // 初始化搜索 $this->setSearch(); $field = [ 'g.image' => 'goods_image', 'g.name' => 'goods_name', 'g.max_price' => 'goods_max_price', 'ba.end_time', 'bg.activity_id' => 'bargain_min_price', 'bg.activity_id', 'bg.goods_id', ]; $lists = BargainGoods::alias('bg') ->leftJoin('goods g', 'g.id = bg.goods_id') ->leftJoin('bargain_activity ba', 'ba.id = bg.activity_id') ->distinct(true) ->field($field) ->where($this->searchWhere) ->order($this->sortOrder) ->limit($this->limitOffset, $this->limitLength) ->select() ->toArray(); foreach ($lists as &$item) { $item['goods_image'] = FileService::getFileUrl($item['goods_image']); } return $lists; } /** * @notes 记录数 * @return int * @author Tab * @date 2021/8/28 15:13 */ public function count(): int { // 初始化搜索 $this->setSearch(); $field = [ 'g.image' => 'goods_image', 'g.name' => 'goods_name', 'g.max_price' => 'goods_max_price', 'ba.end_time', 'bg.activity_id' => 'bargain_min_price', ]; $listsNoPage = BargainGoods::alias('bg') ->leftJoin('goods g', 'g.id = bg.goods_id') ->leftJoin('bargain_activity ba', 'ba.id = bg.activity_id') ->distinct(true) ->field($field) ->where($this->searchWhere) ->order($this->sortOrder) ->select() ->toArray(); return count($listsNoPage); } }