From ad3ac53da1c3a11a96ae62d790aa61a81b9eab91 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 20 三月 2021 18:47:23 +0800
Subject: [PATCH] 完善APP首页顶部标签栏兼容,初步处理推送

---
 src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 49 insertions(+), 2 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 8a19755..2c27016 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java
@@ -4,11 +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;
@@ -28,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);
     }
 
@@ -187,6 +190,18 @@
     }
 
     @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);
     }
@@ -195,4 +210,36 @@
     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