'商品信息', 'min_price' => '最小价格', 'max_price' => '最大价格', 'is_distribution_desc' => '分销状态', ]; } /** * @notes 导出表名 * @return string * @author Tab * @date 2021/9/22 15:30 */ public function setFileName(): string { return '分销商品表'; } /** * @notes 设置搜索条件 * @return \string[][] * @author Tab * @date 2021/7/23 16:15 */ public function setSearch(): array { return [ '=' => ['supplier_id'], ]; } /** * @notes 附加搜索 * @author Tab * @date 2021/9/16 19:30 */ public function attachSearch() { if (isset($this->params['name']) && !empty($this->params['name'])) { $this->searchWhere[] = ['name|code', 'like', '%'. $this->params['name'] . '%']; } if(isset($this->params['status']) && '' != $this->params['status']){ if('-1' == $this->params['status']){ $this->searchWhere[] = ['total_stock','=',0]; }else{ $this->searchWhere[] = ['status', '=', $this->params['status']]; } } } /** * @notes 分销商品列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author Tab * @date 2021/7/23 16:15 */ public function lists(): array { $this->attachSearch(); $field = 'id,name,image,min_price,max_price,status,id as is_distribution,id as commission,total_stock,spec_type'; $lists = Goods::field($field) ->with('goods_category_index.category_name') ->withSearch(['category_id', 'is_distribution'], $this->params) ->where($this->searchWhere) ->limit($this->limitOffset, $this->limitLength) ->order('id', 'desc') ->select() ->toArray(); foreach ($lists as &$item) { $item['is_distribution_desc'] = $item['is_distribution'] ? '参与' : '不参与'; $item['status'] == 1 ? $item['status_desc'] = '销售中' : $item['status_desc'] = '仓库中'; if($item['total_stock'] <= 0){ $item['status_desc'] = '已售罄'; } //商品价格 $item['price'] = '¥' . $item['min_price']; if ($item['min_price'] != $item['max_price']) { $item['price'] = '¥' . $item['min_price'] . '~' . '¥' . $item['max_price']; } } return $lists; } /** * @notes 分销商品记录数 * @return int * @author Tab * @date 2021/7/23 16:16 */ public function count(): int { $this->attachSearch(); $count = Goods::withSearch(['category_id', 'is_distribution'], $this->params) ->where($this->searchWhere) ->count(); return $count; } }