OrcidServiceAtomic.java 文件源码

java
阅读 17 收藏 0 点赞 0 评论 0

项目:OrcidHub 作者:
@Async
@Transactional(propagation = Propagation.REQUIRES_NEW)
public Future<String> processPersonBio(Person person, OrcidOAuthClient clientOrcid){
    List<RelPersonApplication> listRelPersonApp = relPersonApplicationRepository.findAllByPersonIsAndLastIsTrueAndOauthAccessTokenIsNotNull(person);
    OrcidBio orcidBio = null;
    for(RelPersonApplication relPersonApplication: listRelPersonApp){
        String orcid = relPersonApplication.getPerson().getOrcid();
        OrcidAccessToken orcidAccessToken = new OrcidAccessToken();
        orcidAccessToken.setOrcid(orcid);
        orcidAccessToken.setAccess_token(relPersonApplication.getOauthAccessToken());
        try {
            orcidBio = clientOrcid.getOrcidBio(orcidAccessToken);

            manageOrcidBio(person, orcidBio);

            log.info(String.format("Method processPersonBio: save personBio person.id=[%s]", person.getId()));
            break;
        } catch (Exception e) {
            e.printStackTrace();
            log.info(String.format("Method processPersonBio: error personBio person.id=[%s], token=[%s], orcid=[%s]", person.getId(), relPersonApplication.getOauthAccessToken(), orcid));
        }
    }
    person.setNeedUpdate(false);
    personRepository.save(person);
    return new AsyncResult<String>("OK");
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号