From e8e342cd6c1334f1b8f71d24baa3157637a9ac43 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 04 二月 2021 19:33:26 +0800
Subject: [PATCH] 完善PPTV

---
 src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java |   52 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 46 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java b/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java
index 3eb791f..5c06506 100644
--- a/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java
+++ b/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java
@@ -12,9 +12,7 @@
 import com.yeshi.buwan.service.imp.push.PushService;
 import com.yeshi.buwan.service.inter.LoginUserService;
 import com.yeshi.buwan.service.inter.SMSService;
-import com.yeshi.buwan.util.AliyunOneKeyLoginUtil;
-import com.yeshi.buwan.util.JsonUtil;
-import com.yeshi.buwan.util.StringUtil;
+import com.yeshi.buwan.util.*;
 import com.yeshi.buwan.util.annotation.RequireUid;
 import com.yeshi.buwan.util.wx.MyWXLoginUtil;
 import com.yeshi.buwan.vo.AcceptData;
@@ -28,6 +26,7 @@
 import java.io.PrintWriter;
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.List;
 
 @Controller
@@ -48,6 +47,9 @@
 
     @Resource
     private SMSService smsService;
+
+    @Resource
+    private RedisManager redisManager;
 
     @RequireUid
     public void getReadState(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
@@ -126,6 +128,33 @@
 
     }
 
+    /**
+     * 鍏佽涓�閿櫥褰�
+     *
+     * @param acceptData
+     * @param request
+     * @param out
+     */
+    public void allowOneKeyLogin(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+        Long loginUid = StringUtil.isNullOrEmpty(request.getParameter("loginUid")) ? null : Long.parseLong(request.getParameter("loginUid"));
+        if (loginUid == null || loginUid == 0L) {
+            out.print(JsonUtil.loadFalseJson("灏氭湭鐧诲綍"));
+            return;
+        }
+        String device = request.getParameter("Device");
+        long time = System.currentTimeMillis();
+
+        String key = "onkeylogin-" + StringUtil.Md5(device + "#" + TimeUtil.getGernalTime(time, "yyyyMMdd"));
+
+        //涓�涓澶囦竴澶╀箣鍐呭彧鑳藉厑璁�5娆�
+        String value = redisManager.getCommonString(key);
+        if (!StringUtil.isNullOrEmpty(value) && Integer.parseInt(value) > 10) {
+            out.print(JsonUtil.loadFalseJson("涓�閿櫥褰曟鏁拌秴闄愶紝璇锋槑澶╁啀璇�"));
+            return;
+        }
+        out.print(JsonUtil.loadTrueJson(""));
+    }
+
 
     /**
      * 鐢佃瘽鍙风爜缁戝畾
@@ -140,10 +169,13 @@
         String code = request.getParameter("code");
         String accessToken = request.getParameter("accessToken");
         String systemId = request.getParameter("system");
+        String device = request.getParameter("Device");
+
+        long time = System.currentTimeMillis();
 
 
         if (loginUid == null || loginUid == 0L) {
-            out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触"));
+            out.print(JsonUtil.loadFalseJson("灏氭湭鐧诲綍"));
             return;
         }
 
@@ -151,6 +183,14 @@
         if (!StringUtil.isNullOrEmpty(accessToken)) {
             //涓�閿櫥褰�
             mobile = AliyunOneKeyLoginUtil.getMobile(accessToken, "");
+
+            //澧炲姞涓�閿櫥褰曠殑娆℃暟
+            String key = "onkeylogin-" + StringUtil.Md5(device + "#" + TimeUtil.getGernalTime(time, "yyyyMMdd"));
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTimeInMillis(time);
+            calendar.add(Calendar.DAY_OF_WEEK, 1);
+            int s = (int) ((TimeUtil.convertGernalTime(TimeUtil.getGernalTime(calendar.getTimeInMillis(), "yyyyMMdd"), "yyyyMMdd") - time) / 1000);
+            redisManager.increase(key, s);
         } else {
             //閫氳繃楠岃瘉鐮佺櫥褰�
             //鍒ゆ柇楠岃瘉鐮佹槸鍚︽纭�
@@ -165,7 +205,7 @@
                 return;
             }
 
-            if (smsService.verifyBindVCode(phone, code)) {
+            if (!smsService.verifyBindVCode(phone, code)) {
                 out.print(JsonUtil.loadFalseJson("楠岃瘉鐮侀敊璇�"));
                 return;
             }
@@ -285,7 +325,7 @@
         }
 
         try {
-            smsService.sendBindVCode(Long.parseLong(loginUid), phone, 6);
+            smsService.sendBindVCode(loginUid, phone, 6);
         } catch (SMSException e) {
             e.printStackTrace();
             out.print(JsonUtil.loadFalseJson(e.getMessage()));

--
Gitblit v1.8.0