admin
2021-07-30 19533a17aa55fafc70d0a385928e785cb50e1ebc
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);
    }
@@ -73,7 +76,7 @@
            throw new LoginUserException("手机号已被其他账户绑定");
        }
        user.setPhone(phone);
        loginUserDao.update(user);
        loginUserDao.updateSelective(user);
    }
    @Override
@@ -181,8 +184,20 @@
        extra.setDevice(user.getDevice());
        extra.setPptvUid(PPTVUtil.getPPTVUid(uid));
        //TODO 初始化附加信息
        loginUserDao.update(user);
        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;
    }
@@ -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);
    }
}