csdn免费下载源码分析1

998 阅读1分钟

很多小盆友想在CSDN上下载资源,但苦于一无积分二无C币三不是会员。于是搜遍全网,找不到一个可以免积分C币下载的办法,授人以鱼不如授人以渔,今天给大家分享一个csdn免积分下载工具的源码

体验地址:servicedev.tpddns.cn:8181/#/login?c=3


@Override

@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)

public ResourceFilesUserIndexaddDownloadTask(String url, Long userId, ResourceFileStatus initResourceFileStatus) {

boolean existed =false;

    //去除左右两边的空格

    url = StrUtils.trim(url, " ");

    String resourceId = ResourceFileUtils.getResourceId(url);

    if (StringUtils.isBlank(resourceId)) {

return null;

    }

byte resourceFileStatus = (byte) initResourceFileStatus.ordinal();

    // 是否已经存在

    ResourceFiles resourceFiles = getOne(Wrappers.lambdaQuery().eq(ResourceFiles::getFileOuterId, resourceId));

    if (resourceFiles ==null) {

resourceFiles =new ResourceFiles();

        resourceFiles.setFileOuterId(resourceId);

        resourceFiles.setFileSuffix(" ");

        resourceFiles.setFileName("*");

        resourceFiles.setFileDesc(" ");

        resourceFiles.setFileLang((short)0);

        resourceFiles.setFileFrom((byte)0);

        resourceFiles.setFileSize(0L);

        resourceFiles.setFileType((byte)0);

        resourceFiles.setFileImageId(0L);

        resourceFiles.setOriginUrl(url);

        resourceFiles.setDownloadCount(0L);

        resourceFiles.setDownloadUrl(" ");

        resourceFiles.setRetryCount(0);

        resourceFiles.setMaxRetryCount(3);

        resourceFiles.setStatus(resourceFileStatus);

        resourceFiles.setPercent((byte)0);

        resourceFiles.setTip(null);

        resourceFiles.setIsDelete(false);

        Assert.mustTrue(save(resourceFiles), "save resourceFiles failed,please try latter");

    }else{

// 已经下载失败的文件,其他用户再次下载,无法扣款

        if(resourceFiles.getStatus() ==3){

log.warn("already download failed,can't download {}", JSON.toJSONString(resourceFiles));

return null;

        }

existed =true;

    }

    ResourceFilesUserIndex index =resourceFilesUserIndexService.getResourceFileUserUserIndex(userId,resourceFiles.getId());

    if(index ==null){

index =new ResourceFilesUserIndex();

        index.setUserId(userId);

        index.setFileResourceId(resourceFiles.getId());

        Assert.mustTrue(resourceFilesUserIndexService.save(index),"save resourceFilesIndex failed,please try latter");

    }

    if(existed && resourceFiles.getStatus() == (byte)DOWNLOADED.ordinal()){

publishService.publish(new DownloadResultEvent("",resourceFiles.getId(),DOWNLOADED,null));

    }

return index;

}