管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-11-24 d9ef502c09aa305152c7949540753daedf99edd7
1
已修改2个文件
39 ■■■■■ 文件已修改
src/main/java/com/lf/server/controller/data/MetaController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/DownloadService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/data/MetaController.java
@@ -8,6 +8,8 @@
import com.lf.server.entity.data.DownloadEntity;
import com.lf.server.entity.data.MetaEntity;
import com.lf.server.entity.sys.UserEntity;
import com.lf.server.helper.Md5Helper;
import com.lf.server.helper.RsaHelper;
import com.lf.server.helper.StringHelper;
import com.lf.server.helper.WebHelper;
import com.lf.server.service.data.DownloadService;
@@ -238,6 +240,10 @@
            if (null == reqEntity.getIds() || reqEntity.getIds().isEmpty()) {
                return fail("请选择要下载的文件");
            }
            if (!downloadService.validatePwd(reqEntity)) {
                return fail("密码不符合要求");
            }
            return success(true);
        } catch (Exception ex) {
@@ -262,13 +268,16 @@
                return;
            }
            UserEntity ue = tokenService.getCurrentUser(req);
            DownloadEntity de = downloadService.selectByGuid(reqEntity.getGuid());
            if (null == de) {
                WebHelper.writeInfo(HttpStatus.NOT_FOUND, "文件不存在", res);
                return;
            }
            if (!StringHelper.isNull(de.getPwd()) && !Md5Helper.validatePassword(reqEntity.getPwd(), de.getPwd())) {
                WebHelper.writeInfo(HttpStatus.UNAUTHORIZED, "密码不正确", res);
            }
            UserEntity ue = tokenService.getCurrentUser(req);
            de.setDcount(de.getDcount() + 1);
            de.setDownloadUser(ue.getId());
            int rows = downloadService.update(de);
src/main/java/com/lf/server/service/data/DownloadService.java
@@ -1,9 +1,13 @@
package com.lf.server.service.data;
import com.lf.server.entity.ctrl.DownloadReqEntity;
import com.lf.server.entity.data.DownloadEntity;
import com.lf.server.helper.PathHelper;
import com.lf.server.helper.RsaHelper;
import com.lf.server.helper.StringHelper;
import com.lf.server.mapper.data.DownloadMapper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -21,6 +25,8 @@
    @Autowired
    DownloadMapper downloadMapper;
    private final static Log log = LogFactory.getLog(DownloadService.class);
    @Override
    public Integer selectCount(String name) {
@@ -104,4 +110,26 @@
    public String getDownloadFilePath(DownloadEntity de) {
        return pathHelper.getConfig().getDownloadPath() + File.separator + de.getUrl();
    }
    /**
     * 校验密码有效性
     *
     * @param reqEntity 请求下载实体类
     * @return 是/否有效
     */
    public boolean validatePwd(DownloadReqEntity reqEntity) {
        try {
            String pwd = RsaHelper.decrypt(reqEntity.getPwd());
            if (StringHelper.isEmpty(pwd) || !StringHelper.checkPwdValid(pwd)) {
                return false;
            }
            reqEntity.setPwd(pwd);
            return true;
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            return false;
        }
    }
}