belongsTo('app\\common\\model\\food\\Shop','shop_id'); } /** * 约定时间 */ public function getPactTimeAttr($value) { return ['date' => date("Y-m-d H:i:s",$value),'text' => (int)date("m",$value) .'月'. (int)date("d",$value) . '日' . date("H:i",$value), 'value' => $value]; } /** * 关联用户表 */ public function getUserAttr($value,$data) { if($data['user_id'] == 0){ return [ 'user_id' => '--', 'nickname' => '--', 'avatar' => [ 'url' => base_url() . 'addons/food/img/avatar.png' ] ]; } return User::get($data['user_id']); } /** * 状态 */ public function getStatusAttr($value) { $status = [10 => '预约中', 20 => '已过期', 30 => '已守约', 40 => '已取消']; return ['text' => $status[$value], 'value' => $value]; } /** * 获取列表 */ public function getList($shop_id = 0, $status = 0,$search='') { $model = $this->with(['shop']); //筛选 $filter = []; $shop_id > 0 && $filter['shop_id'] = $shop_id; $status > 0 && $filter['status'] = $status; if(!empty($search)){ //是否是手机号 if(is_phone($search)){ $filter['phone'] = $search; }else{ $model->where('linkman','like',"%{$search}%"); } } // 排序规则 $sort = []; $sort = ['pact_time' => 'desc'];//按照约定时间排序 // 执行查询 return $model->where($filter) ->order($sort) ->paginate(['list_rows'=>15,'query' => request()->param()]); } /** * 获取详情 */ public static function detail($id) { return self::with(['shop'])->find($id); } /** * 添加 */ public function add(array $data) { $data['applet_id'] = self::$applet_id; return $this->save($data); } /** * 删除 */ public function remove() { return $this->delete(); } /** * 状态操作 */ public function status($status) { return $this->save(['status' => $status]); } /** * 解除餐桌预定 */ public function rescind() { return $this->save(['status' => 40]); } /** * 进行中的统计 */ public static function getNowCount($shop_id = 0) { // 筛选条件 $filter['status'] = 10; $shop_id > 0 && $filter['shop_id'] = $shop_id; return self::where($filter)->count(); } /** * 根据时间段统计数量 */ public static function getDateCount($data) { // 筛选条件 $filter = []; $data['shop_id'] > 0 && $filter['shop_id'] = $data['shop_id']; return self::where('create_time','>',$data['star']) ->where('create_time','<',$data['end']) ->where($filter) ->count(); } /** * 根据条件统计数量 */ public static function getCount($shop_id = 0) { $self = new static; // 筛选条件 $filter = []; $shop_id > 0 && $filter['shop_id'] = $shop_id; $applet_id = $self::$applet_id; empty($applet_id) && $filter['applet_id'] = $applet_id; $count = array(); //全部 $count['count'] = self::where($filter)->count(); //今天 $star = strtotime(date("Y-m-d"),time()); $count['today'] = self::where('create_time','>',$star)->where($filter)->count(); //昨天 $star = strtotime("-1 day"); $end = strtotime(date("Y-m-d"),time()); $count['today2'] = self::where('create_time','>',$star)->where('create_time','<',$end)->where($filter)->count(); //本月起至时间 - 月度统计 $end = mktime(0,0,0,date('m'),1,date('y')); $count['month'] = self::where('create_time','>',$end)->where($filter)->count(); //上月开始 $star = mktime(0,0,0,date('m')-1,1,date('y')); $count['month2'] = self::where('create_time','>',$star)->where('create_time','<',$end)->where($filter)->count(); return $count; } }