From f788607ff771a47bc60d6a86e00b3433c40f3d2c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 24 九月 2021 15:22:03 +0800
Subject: [PATCH] 接入视频直播

---
 src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java |   91 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 76 insertions(+), 15 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 f43455c..d26c700 100644
--- a/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java
+++ b/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java
@@ -2,9 +2,13 @@
 
 import com.google.gson.GsonBuilder;
 import com.yeshi.buwan.domain.*;
+import com.yeshi.buwan.domain.system.DetailSystem;
 import com.yeshi.buwan.domain.user.LoginUser;
-import com.yeshi.buwan.exception.LoginUserException;
+import com.yeshi.buwan.dto.user.LoginInfoDto;
+import com.yeshi.buwan.dto.user.QQUserInfo;
+import com.yeshi.buwan.exception.user.LoginUserException;
 import com.yeshi.buwan.exception.SMSException;
+import com.yeshi.buwan.exception.user.RegisterUserException;
 import com.yeshi.buwan.service.imp.CommentService;
 import com.yeshi.buwan.service.imp.MaskKeyService;
 import com.yeshi.buwan.service.imp.SystemService;
@@ -85,17 +89,59 @@
             return;
         }
 
-        DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
-        LoginUser lu = userService.getLoginUser(openid, detailSystem.getId(), Integer.parseInt(loginType), portrait,
-                name, UserParser.getIp(request) + ":" + request.getRemotePort());
+        LoginInfoDto loginInfoDto = new LoginInfoDto();
+        loginInfoDto.setSystemId(acceptData.getDetailSystem().getSystem().getId());
+
+        int loginTypeInt = Integer.parseInt(loginType);
+        loginInfoDto.setLoginType(loginTypeInt);
+
+        switch (loginTypeInt) {
+            case LoginUser.LOGIN_TYPE_EMAIL:
+                loginInfoDto.setEmail(openid);
+                break;
+            case LoginUser.LOGIN_TYPE_QQ:
+                QQUserInfo qqUserInfo = new QQUserInfo();
+                qqUserInfo.setName(name);
+                qqUserInfo.setOpenId(openid);
+                qqUserInfo.setPortrait(portrait);
+                qqUserInfo.setSex(sex);
+                loginInfoDto.setQqUserInfo(qqUserInfo);
+                break;
+        }
+
+
+        LoginUser lu = null;
+        try {
+            lu = userService.login(loginInfoDto);
+            if (lu == null) {
+                out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触"));
+                return;
+            }
+        } catch (LoginUserException e) {
+            //鐢ㄦ埛涓嶅瓨鍦�
+            if (e.getCode() == LoginUserException.CODE_NO_USER && loginTypeInt != LoginUser.LOGIN_TYPE_EMAIL) {
+                //娉ㄥ唽
+                try {
+                    lu = userService.register(loginInfoDto);
+                } catch (RegisterUserException e1) {
+                    out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触"));
+                    return;
+                }
+
+            } else {
+                out.print(JsonUtil.loadFalseJson(e.getMessage()));
+                return;
+            }
+        }
         if (lu != null) {
             JSONObject object = new JSONObject();
             object.put("LoginUid", lu.getId());
+            object.put("Portrait", lu.getPortrait());
+            object.put("NickName", lu.getName());
             out.print(JsonUtil.loadTrueJson(object.toString()));
         } else {
             out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触"));
         }
-
     }
 
 
@@ -113,19 +159,34 @@
             return;
         }
 
-        DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
+        LoginInfoDto loginInfoDto = new LoginInfoDto();
+        loginInfoDto.setSystemId(acceptData.getDetailSystem().getSystem().getId());
+        loginInfoDto.setLoginType(LoginUser.LOGIN_TYPE_WX);
+        loginInfoDto.setWeiXinUser(weiXinUser);
 
 
-        LoginUser lu = userService.getLoginUser(weiXinUser.getOpenid(), detailSystem.getId(), 2, weiXinUser.getHeadimgurl(),
-                weiXinUser.getNickname(), UserParser.getIp(request) + ":" + request.getRemotePort());
-        if (lu != null) {
-            JSONObject object = new JSONObject();
-            object.put("user", new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create().toJson(lu));
-            out.print(JsonUtil.loadTrueJson(object.toString()));
-        } else {
-            out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触"));
+        try {
+            LoginUser lu = userService.login(loginInfoDto);
+            if (lu != null) {
+                JSONObject object = new JSONObject();
+                object.put("user", new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create().toJson(lu));
+                out.print(JsonUtil.loadTrueJson(object.toString()));
+            } else {
+                out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触"));
+            }
+        } catch (LoginUserException e) {
+            //鐢ㄦ埛涓嶅瓨鍦�
+            if (e.getCode() == LoginUserException.CODE_NO_USER) {
+                //娉ㄥ唽
+                try {
+                    userService.register(loginInfoDto);
+                } catch (RegisterUserException e1) {
+                    out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触"));
+                }
+            } else {
+                out.print(JsonUtil.loadFalseJson(e.getMessage()));
+            }
         }
-
     }
 
     /**

--
Gitblit v1.8.0