belongsTo('app\\common\\model\\food\\User','user_id'); } /** * 关联门店表 */ public function shop() { return $this->belongsTo('app\\common\\model\\food\\Shop','shop_id'); } /** * 交易模式 */ public function getModeAttr($value) { $status = [10 => '充值', 20 => '消费', 30 => '退款', 40 => '赠送', 50 => '扣减']; return ['text' => $status[$value], 'value' => $value]; } /** * 支付类型 */ public function getTypeAttr($value) { $status = [10 => '余额', 20 => '现金', 30 => '微信', 40 => '支付宝', 90 => '积分']; return ['text' => $status[$value], 'value' => $value]; } /** * 获取列表 */ public function getList($filter = [],$shop_id=0) { $shop_id > 0 && $filter['shop_id'] = $shop_id; // 执行查询 return $this->with(['user','shop']) ->where($filter) ->order('record_id','desc') ->paginate(['list_rows'=>15,'query' => request()->param()]); } /** * 根据时间段统计数量 */ public static function getDateCount(array $data) { // 筛选条件 $filter = []; $data['shop_id'] > 0 && $filter['shop_id'] = $data['shop_id']; $count = [ 10 => self::where('create_time','>',$data['star'])->where('create_time','<',$data['end'])->where($filter)->where('mode',10)->sum('money'),//充值 20 => self::where('create_time','>',$data['star'])->where('create_time','<',$data['end'])->where($filter)->where('mode',20)->sum('money'),//消费 30 => self::where('create_time','>',$data['star'])->where('create_time','<',$data['end'])->where($filter)->where('mode',30)->sum('money'),//退款 40 => self::where('create_time','>',$data['star'])->where('create_time','<',$data['end'])->where($filter)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where('create_time','>',$data['star'])->where('create_time','<',$data['end'])->where($filter)->where('mode',50)->sum('money'),//扣减 ]; return $count; } /** * 根据条件统计数量 */ public static function getCount($shop_id = 0) { // 筛选条件 $filter = []; $shop_id > 0 && $filter['shop_id'] = $shop_id; $count = array(); //全部 $count['all'] = [ 10 => self::where($filter)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('mode',50)->sum('money'),//扣减 ]; //今天 $star = strtotime(date("Y-m-d"),time()); $count['today'] = [ 10 => self::where($filter)->where('create_time','>',$star)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('create_time','>',$star)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('create_time','>',$star)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('create_time','>',$star)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('create_time','>',$star)->where('mode',50)->sum('money'),//扣减 ]; //昨天 $star = strtotime("-1 day"); $end = strtotime(date("Y-m-d"),time()); $count['today2'] = [ 10 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',50)->sum('money'),//扣减 ]; //前天 $star = strtotime("-2 day"); $end = strtotime("-1 day"); $count['today3'] = [ 10 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',50)->sum('money'),//扣减 ]; //-4天 $star = strtotime("-3 day"); $end = strtotime("-2 day"); $count['today4'] = [ 10 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',50)->sum('money'),//扣减 ]; //-5天 $star = strtotime("-4 day"); $end = strtotime("-3 day"); $count['today5'] = [ 10 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',50)->sum('money'),//扣减 ]; //-6天 $star = strtotime("-5 day"); $end = strtotime("-4 day"); $count['today6'] = [ 10 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',50)->sum('money'),//扣减 ]; //-7天 $star = strtotime("-6 day"); $end = strtotime("-5 day"); $count['today7'] = [ 10 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',50)->sum('money'),//扣减 ]; //本月起至时间 - 月度统计 $end = mktime(0,0,0,date('m'),1,date('y')); $count['month'] = [ 10 => self::where($filter)->where('create_time','>',$end)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('create_time','>',$end)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('create_time','>',$end)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('create_time','>',$end)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('create_time','>',$end)->where('mode',50)->sum('money'),//扣减 ]; //上月开始 $star = mktime(0,0,0,date('m')-1,1,date('y')); $count['month2'] = [ 10 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',10)->sum('money'),//充值 20 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',20)->sum('money'),//消费 30 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',30)->sum('money'),//退款 40 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',40)->where('type',20)->sum('money'),//赠送 50 => self::where($filter)->where('create_time','>',$star)->where('create_time','<',$end)->where('mode',50)->sum('money'),//扣减 ]; return $count; } }