*/ namespace app\common\model; use think\db\Query; class Model extends \think\Model { //是否字段,使用场景:用户的是否冻结,文章是否为热门等等。 const BOOLEAN_TEXT = [0 => '否', 1 => '是']; //用户等级 const LEVL_TEXT = [1 => '普通会员']; //订单状态 const ORDER_TEXT = [0 => '待付款', 1=> '待发货',2=> '待收货',3=> '已完成',4=> '已取消']; //寄卖状态 const JMORDER_TEXT = [0 => '审核中', 1=> '待上架',2=> '已上架',3=> '待客户确认',4=> '客户已确认',5=> '已取货',6=> '部分退回','7'=>'全部退回','8'=>'已取消']; //寄卖商品信息 const JMORDER_GOODS_TEXT = [0 => '审核中', 1=> '同意',2=> '驳回',3=> '退还','4'=>'上架']; //是否为软删除 public $softDelete = true; //软删除字段默认值 protected $defaultSoftDelete = 0; //可搜索字段 protected $searchField = []; //可作为条件的字段 protected $whereField = []; //禁止删除的数据id public $noDeletionId = [ 1,2,3,4,5,6,7,8 ]; /** * 查询处理 * @var Query $query * @var array $param */ public function scopeWhere($query, $param) { //关键词like搜索 $keywords = $param['_keywords'] ?? ''; if (!empty($keywords) && count($this->searchField) > 0) { $this->searchField = implode('|', $this->searchField); $query->where($this->searchField, 'like', '%' . $keywords . '%'); } //字段条件查询 if (count($this->whereField) > 0 && count($param) > 0) { foreach ($param as $key => $value) { if (!empty($value) && in_array($key, $this->whereField)) { $query->where($key, $value); } } } //排序 $order = $param['_order'] ?? ''; $by = $param['_by'] ?? 'desc'; $query->order($order ?: 'id', $by ?: 'desc'); } }