UserLoginController.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package com.ljsd.controller;
  2. import com.google.gson.Gson;
  3. import com.ljsd.pojo.ResMsg;
  4. import com.ljsd.redis.RedisKey;
  5. import com.ljsd.redis.RedisUtil;
  6. import com.ljsd.util.BaseGlobal;
  7. import com.ljsd.util.IdCard;
  8. import com.ljsd.util.MD5Util;
  9. import com.ljsd.util.StringUtils;
  10. import com.mongodb.BasicDBObject;
  11. import com.mongodb.DBObject;
  12. import javax.servlet.ServletException;
  13. import javax.servlet.http.HttpServlet;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import java.io.IOException;
  17. import java.io.PrintWriter;
  18. import java.text.DateFormat;
  19. import java.text.SimpleDateFormat;
  20. import java.util.*;
  21. public class UserLoginController extends HttpServlet {
  22. private static Gson gson = new Gson();
  23. private static final String _COLLECTION_NAME = "user_register_info";
  24. public void doGet(HttpServletRequest request, HttpServletResponse response)
  25. throws ServletException, IOException {
  26. this.doPost(request, response);
  27. }
  28. @Override
  29. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  30. response.setCharacterEncoding("UTF-8");
  31. response.setContentType("application/json; charset=utf-8");
  32. String name = request.getParameter("userName");
  33. String password = request.getParameter("password");
  34. String sign = request.getParameter("sign");
  35. String returnMsg = "success";
  36. ResMsg resMsg = new ResMsg();
  37. resMsg.setCode(1);
  38. try (PrintWriter out = response.getWriter();){
  39. if(StringUtils.checkIsEmpty(name) || StringUtils.checkIsEmpty(password) || StringUtils.checkIsEmpty(sign)){
  40. resMsg.setMsg("参数不能为空");
  41. out.print(gson.toJson(resMsg));
  42. return;
  43. }
  44. String mySign = MD5Util.encrypByMd5(name + password + MD5Util.salt);
  45. if(!mySign.equals(sign)){
  46. resMsg.setMsg("签名错误");
  47. out.print(gson.toJson(resMsg));
  48. return;
  49. }
  50. DBObject one = BaseGlobal.getInstance().mongoDBPool.findOne(_COLLECTION_NAME, name);
  51. if(one ==null){
  52. resMsg.setMsg("该账号不存在");
  53. out.print(gson.toJson(resMsg));
  54. return;
  55. }
  56. Object passwordInDb = one.get("password");
  57. if(!password.equals(passwordInDb)){
  58. resMsg.setMsg("密码错误,请重试");
  59. out.print(gson.toJson(resMsg));
  60. return;
  61. }
  62. Map<String,String> parms = new HashMap<>();
  63. String openId = one.get("openId").toString();
  64. parms.put("openId",one.get("openId").toString());
  65. int token = new Random().nextInt(1024) +10000;
  66. parms.put("token",Integer.toString(token));
  67. BaseGlobal.getInstance().redisApp.set(RedisKey.LOGIN_TOKEN,openId,token,-1, false);
  68. int code = 0;
  69. //开关防沉迷
  70. Properties properties = BaseGlobal.getInstance().properties;
  71. if(Boolean.parseBoolean(properties.getProperty("openAdultCheck"))){
  72. int age = 0;//年龄
  73. if(one.get("idstr")==null){
  74. //resMsg.setCode(2);//未进行身份验证
  75. code = 2;
  76. }else{
  77. if(IdCard.isAdult((String) one.get("idstr"))){
  78. age = 19;
  79. }
  80. //resMsg.setCode(0);//正常
  81. code = 0;
  82. }
  83. resMsg.setMsg(String.valueOf(age)); //登录成功,返回年龄
  84. }else{
  85. resMsg.setMsg(returnMsg);
  86. }
  87. resMsg.setCode(code);//正常
  88. resMsg.setParms(parms);
  89. out.print(gson.toJson(resMsg));
  90. }catch (Exception e){
  91. e.printStackTrace();
  92. }
  93. }
  94. }