$user->id, 'name'=>$name, 'mac'=>$mac, 'status'=>self::SHOW_STATUS]; $band = self::create($data); return $band; } public static function unbindUser($mac, $user) { self::owner($user->id)->mac($mac)->delete(); } public static function connectUser($mac, $user) { self::owner($user->id)->update(['status'=>self::HIDDEN_STATUS]); self::owner($user->id)->mac($mac)->update(['status'=>self::SHOW_STATUS]); } public static function breakUser($mac, $user) { self::owner($user->id)->mac($mac)->update(['status'=>self::HIDDEN_STATUS]); } public static function bindStatus($mac, $user=null) { $is_bind = $is_self = false; $mobile = ''; $band = Band::mac($mac)->first(); if ($band) { $is_bind = true; if ($user && $band->user_id == $user->id) $is_self = true; $mobile = User::where("id", $band->user_id)->value("mobile"); $mobile = CommonService::hidePhone($mobile); } return [$is_bind, $is_self, $mobile]; } public static function currentBand($user) { $band = self::owner($user->id)->status(self::SHOW_STATUS)->first(); return $band; } public function scopeMac($query, $mac) { return $query->where("mac", $mac); } public function scopeOwner($query, $user_id) { return $query->where("user_id", $user_id); } public function scopeStatus($query, $status) { return $query->where("status", $status); } public function setGoals($data=["step_num"=>self::DEFAULT_STEP_NUM, 'kcal'=>self::DEFAULT_KCAL, 'sleep'=>self::DEFAULT_SLEEP, 'distance'=>self::DEFAULT_DISTANCE]) { $data = array_merge($data, ['user_id'=>$this->user_id, 'band_id'=>$this->id]); $goals = $this->goals; if ($goals) { $goals->update($data); }else { BandGoal::create($data); } $start_time = date("Y-m-d"); $end_time = date("Y-m-d", strtotime("+1 day")); //增加记录 当天有记录则修改 $log = BandGoalLog::owner($this->user_id)->band($this->id)->times($start_time, $end_time)->first(); if ($log) { $log->update($data); }else { BandGoalLog::create($data); } } public function goals() { return $this->hasOne(BandGoal::class, 'band_id', 'id'); } public function goalsLogs() { return $this->hasMany(BandGoalLog::class, 'band_id', 'id'); } }