From 19533a17aa55fafc70d0a385928e785cb50e1ebc Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期五, 30 七月 2021 02:05:14 +0800
Subject: [PATCH] 爱奇艺视频更新

---
 src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java |  145 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 125 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java
index 770ef24..7a2e145 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java
@@ -4,10 +4,13 @@
 import com.yeshi.buwan.dao.user.LoginUserExtraDao;
 import com.yeshi.buwan.domain.user.LoginUser;
 import com.yeshi.buwan.domain.user.LoginUserExtra;
-import com.yeshi.buwan.exception.LoginUserException;
+import com.yeshi.buwan.exception.user.LoginUserException;
+import com.yeshi.buwan.exception.PPTVException;
+import com.yeshi.buwan.pptv.PPTVApiUtil;
+import com.yeshi.buwan.pptv.PPTVUtil;
 import com.yeshi.buwan.service.inter.LoginUserService;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
+import org.yeshi.utils.StringUtil;
 import org.yeshi.utils.entity.wx.WeiXinUser;
 
 import javax.annotation.Resource;
@@ -27,6 +30,7 @@
     public void initExtra(LoginUserExtra extra) {
         if (extra.getCreateTime() == null)
             extra.setCreateTime(new Date());
+        extra.setPptvUid(PPTVUtil.getPPTVUid(extra.getId()));
         loginUserExtraDao.save(extra);
     }
 
@@ -72,10 +76,9 @@
             throw new LoginUserException("鎵嬫満鍙峰凡琚叾浠栬处鎴风粦瀹�");
         }
         user.setPhone(phone);
-        loginUserDao.update(user);
+        loginUserDao.updateSelective(user);
     }
 
-    @Transactional(rollbackFor = Exception.class)
     @Override
     public void bindQQ(String loginUid, String openId, String nickName, String portrait) throws LoginUserException {
 
@@ -85,28 +88,30 @@
         }
 
         LoginUser other = getLoginUserByQQOpenId(user.getSystemId(), openId);
-        if (other != null) {
+        if (other != null && !other.getId().equalsIgnoreCase(loginUid)) {
             throw new LoginUserException("QQ宸茶鍏朵粬璐︽埛缁戝畾");
         }
+        LoginUser update = new LoginUser();
+        update.setId(loginUid);
+        update.setQqOpenId(openId);
+        loginUserDao.updateSelective(update);
 
-        user.setQqOpenId(openId);
-        loginUserDao.update(user);
-
-        LoginUserExtra extra = new LoginUserExtra();
-        extra.setId(loginUid);
+        LoginUserExtra extra = loginUserExtraDao.get(loginUid);
+        if (extra == null) {
+            extra = new LoginUserExtra();
+            extra.setId(loginUid);
+        }
         extra.setQqNickName(nickName);
         extra.setQqOpenId(openId);
         extra.setQqPortrait(portrait);
-        if (loginUserExtraDao.get(loginUid) == null) {
+        if (extra.getId() == null) {
             initExtra(extra);
         } else {
-            loginUserExtraDao.updateSelective(extra);
+            loginUserExtraDao.save(extra);
         }
-
 
     }
 
-    @Transactional(rollbackFor = Exception.class)
     @Override
     public void bindWX(String loginUid, WeiXinUser weiXinUser) throws LoginUserException {
         LoginUser user = getLoginUser(loginUid);
@@ -115,15 +120,20 @@
         }
 
         LoginUser other = getLoginUserByWxUnionId(user.getSystemId(), weiXinUser.getUnionid());
-        if (other != null) {
+        if (other != null && !other.getId().equalsIgnoreCase(loginUid)) {
             throw new LoginUserException("寰俊宸茶鍏朵粬璐︽埛缁戝畾");
         }
-        user.setWxOpenId(weiXinUser.getOpenid());
-        user.setWxUnionId(weiXinUser.getUnionid());
-        loginUserDao.update(user);
+        LoginUser update = new LoginUser();
+        update.setId(loginUid);
+        update.setWxOpenId(weiXinUser.getOpenid());
+        update.setWxUnionId(weiXinUser.getUnionid());
+        loginUserDao.updateSelective(update);
 
-        LoginUserExtra extra = new LoginUserExtra();
-        extra.setId(loginUid);
+        LoginUserExtra extra = null;//loginUserExtraDao.get(loginUid);
+        if (extra == null) {
+            extra = new LoginUserExtra();
+            extra.setId(loginUid);
+        }
         extra.setWxNickName(weiXinUser.getNickname());
         extra.setWxOpenId(weiXinUser.getOpenid());
         extra.setWxUnionId(weiXinUser.getUnionid());
@@ -132,9 +142,104 @@
         if (loginUserExtraDao.get(loginUid) == null) {
             initExtra(extra);
         } else {
+            extra.setUpdateTime(new Date());
             loginUserExtraDao.updateSelective(extra);
         }
 
+        System.out.println("12213");
 
     }
+
+    @Override
+    public LoginUserExtra getExtra(String uid) {
+        return loginUserExtraDao.get(uid);
+    }
+
+    @Override
+    public LoginUserExtra initExtra(String uid) {
+        LoginUser user = getLoginUser(uid);
+        if (user == null)
+            return null;
+        LoginUserExtra extra = new LoginUserExtra();
+        extra.setId(uid);
+        extra.setCreateTime(new Date());
+        //涔嬪墠鐨勭敤鎴烽偖绠辩櫥褰�
+        if (user.getLoginType() == LoginUser.LOGIN_TYPE_QQ) {
+            user.setQqOpenId(user.getOpenid());
+            extra.setQqOpenId(user.getOpenid());
+            extra.setQqPortrait(user.getPortrait());
+        } else if (user.getLoginType() == LoginUser.LOGIN_TYPE_EMAIL) {
+            user.setEmail(user.getOpenid());
+            extra.setEmail(user.getOpenid());
+        } else if (user.getLoginType() == LoginUser.LOGIN_TYPE_WX) {
+            user.setWxOpenId(user.getOpenid());
+            extra.setWxOpenId(user.getOpenid());
+            extra.setWxPortrait(user.getPortrait());
+        }
+
+        extra.setBirthday(user.getBirthday());
+        extra.setSex(user.getSex());
+        extra.setSign(user.getSign());
+        extra.setIpinfo(user.getIpinfo());
+        extra.setDevice(user.getDevice());
+        extra.setPptvUid(PPTVUtil.getPPTVUid(uid));
+        //TODO 鍒濆鍖栭檮鍔犱俊鎭�
+        loginUserDao.updateSelective(user);
+        loginUserExtraDao.save(extra);
+        return extra;
+    }
+
+    @Override
+    public LoginUserExtra initPPTVUid(String uid) {
+        LoginUserExtra extra = loginUserExtraDao.get(uid);
+        if (extra != null) {
+            LoginUserExtra update = new LoginUserExtra(uid);
+            update.setPptvUid(PPTVUtil.getPPTVUid(uid));
+            loginUserExtraDao.updateSelective(update);
+            extra.setPptvUid(update.getPptvUid());
+        }
+        return extra;
+    }
+
+    @Override
+    public void updateSelectiveByPrimaryKey(LoginUser loginUser) {
+        loginUserDao.updateSelective(loginUser);
+    }
+
+    @Override
+    public void updateSelectiveByPrimaryKey(LoginUserExtra extra) {
+        loginUserExtraDao.updateSelective(extra);
+    }
+
+    @Override
+    public String updatePPTVOpenId(String uid) throws PPTVException {
+        LoginUserExtra extra = getExtra(uid);
+        if (extra == null) {
+            extra = initExtra(uid);
+        }
+        String code = PPTVUtil.getPPTVCode(extra.getPptvUid());
+
+        boolean login = PPTVApiUtil.login(code);
+        if (!login) {
+            throw new PPTVException(101, "鐧诲綍澶辫触");
+        }
+
+        String openId = PPTVApiUtil.getOpenId(extra.getPptvUid());
+        if (StringUtil.isNullOrEmpty(openId)) {
+            throw new PPTVException(102, "openId鑾峰彇澶辫触");
+        }
+        LoginUserExtra update = new LoginUserExtra();
+        update.setId(uid);
+        update.setPptvOpenId(openId);
+        updateSelectiveByPrimaryKey(update);
+        return openId;
+    }
+
+    @Override
+    public void setUtdId(String uid, String utdId) {
+        LoginUserExtra update = new LoginUserExtra();
+        update.setId(uid);
+        update.setUtdId(utdId);
+        updateSelectiveByPrimaryKey(update);
+    }
 }

--
Gitblit v1.8.0