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