package com.ljsd.controller; import com.ljsd.redis.RedisKey; import com.ljsd.util.BaseGlobal; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import java.util.Random; public class GetUserController extends HttpServlet { private final static String _COLLECTION_NAME = "user_info"; public GetUserController() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String openId = request.getParameter("openId"); if (openId == null || openId.isEmpty()) { response.sendError(400, "openId is empety"); return; } String serverId = request.getParameter("serverId"); if (serverId == null || serverId.isEmpty()) { response.sendError(400, "serverId is empety"); return; } DBObject dbObject = new BasicDBObject(); dbObject.put("openId", openId); dbObject.put("serverId", serverId); try { int uid = 0; List userInfos = BaseGlobal.getInstance().mongoDBPool.find(_COLLECTION_NAME, dbObject); DBObject res = new BasicDBObject(); if (userInfos.size() == 0) { uid = BaseGlobal.getInstance().mongoDBPool.inc("uid") + 10000000; dbObject.put("uid", uid); dbObject.put("_id", uid); userInfos.add(dbObject); BaseGlobal.getInstance().mongoDBPool.save(_COLLECTION_NAME, dbObject); } Random random = new Random(); int token = Math.abs(random.nextInt()); uid = (int) userInfos.get(0).get("uid"); res.put("uid", uid); res.put("token", token); BaseGlobal.getInstance().redisApp.set(RedisKey.TOKEN, String.valueOf(uid), token, -1, false); PrintWriter out = response.getWriter(); out.print(res); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }