public function postMark(Request $req) { $user = $req->user(); $data = $req->input(); $tags = $data['tags']; $insert = []; for ($i = 0; $i < count($tags); $i++) { $item = ['weixin_tag_id' => $data['id'], 'tag_id' => $tags[$i], 'weixin_tag_type' => 'App\\Weixin']; array_push($insert, $item); } DB::transaction(function () use($insert, $data, $user) { DB::table('weixin_tags')->where('weixin_tag_id', $data['id'])->delete(); DB::table('weixin_tags')->insert($insert); DB::table('user_marked')->insert(['user_id' => $user->id, 'weixin_id' => $data['id'], 'valid' => 1]); // update Weixin::where('id', $data['id'])->update(['marking' => 1]); }); // 更新统计 $unmarked = Session::get('unmarked_wx_count'); Session::set('unmarked_wx_count', $unmarked - 1); // 获取下一个 $next = $this->next($user->last_wx); $user->last_wx = $next->id; $user->save(); return ['code' => 0, 'next' => $next]; }
public function getIndex(Request $req) { $user = $req->user(); $marked = DB::table('user_marked')->where('user_id', $user->id)->count(); $total = $unmarked = 0; if (!Session::get('total_wx_count')) { Session::set('total_wx_count', Weixin::count()); Session::set('unmarked_wx_count', Weixin::whereNull('marking')->orWhere('marking', 0)->count()); } $total = Session::get('total_wx_count'); $unmarked = Session::get('unmarked_wx_count'); return ['me' => $marked, 'total' => $total, 'unmarked' => $unmarked, 'marked' => $total - $unmarked, 'pending' => Weixin::where('marking', 0)->count()]; }