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/service/imp/LoginUserServiceImpl.java | 92 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 75 insertions(+), 17 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..8a19755 100644 --- a/src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java +++ b/src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java @@ -5,6 +5,7 @@ import com.yeshi.buwan.domain.user.LoginUser; import com.yeshi.buwan.domain.user.LoginUserExtra; import com.yeshi.buwan.exception.LoginUserException; +import com.yeshi.buwan.pptv.PPTVUtil; import com.yeshi.buwan.service.inter.LoginUserService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -75,7 +76,6 @@ loginUserDao.update(user); } - @Transactional(rollbackFor = Exception.class) @Override public void bindQQ(String loginUid, String openId, String nickName, String portrait) throws LoginUserException { @@ -85,28 +85,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 +117,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 +139,60 @@ 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.update(user); + loginUserExtraDao.save(extra); + return extra; + } + + @Override + public void updateSelectiveByPrimaryKey(LoginUser loginUser) { + loginUserDao.updateSelective(loginUser); + } + + @Override + public void updateSelectiveByPrimaryKey(LoginUserExtra extra) { + loginUserExtraDao.updateSelective(extra); + } } -- Gitblit v1.8.0