From 6d35231093c7f6edd8c55846c259ae59ba0d0258 Mon Sep 17 00:00:00 2001
From: bynt <13586541001@163.com>
Date: Fri, 22 Mar 2024 18:34:48 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=B9=E6=AF=94=E6=96=87?=
=?UTF-8?q?=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ad-distribute-common/common-core/pom.xml | 5 +-
.../java/com/baiye/constant/FileConstant.java | 112 ++++++++++
.../java/com/baiye/util/CompressUtil.java | 85 ++++++++
.../ListIntToListLongTypeHandler.java | 74 +++++++
.../system/properties/FileProperties.java | 2 +
.../main/resources/mapper/SysUserMapper.xml | 8 +-
.../system/controller/SysUserController.java | 18 +-
.../system/model/dto/SysUserNameRoleDTO.java | 5 +
.../controller/FileContrastController.java | 62 ++++++
.../FileContrastRecordController.java | 36 ++++
.../converter/FileContrasRecordConverter.java | 26 +++
.../converter/FileContrastConverter.java | 26 +++
.../modules/distribute/dto/ContrastDTO.java | 21 ++
.../distribute/dto/FileContrastDTO.java | 29 +++
.../modules/distribute/dto/StoreUserDTO.java | 2 -
.../distribute/entity/FileContrastEntity.java | 43 ++++
.../entity/FileContrastRecordEntity.java | 45 ++++
.../entity/FileContrastSourceEntity.java | 40 ++++
.../distribute/mapper/FileContrastMapper.java | 34 +++
.../mapper/FileContrastRecordMapper.java | 39 ++++
.../mapper/FileContrastSourceMapper.java | 8 +
.../modules/distribute/qo/FileContrastQo.java | 28 +++
.../distribute/service/ClueService.java | 7 +
.../service/FileContrastRecordService.java | 27 +++
.../service/FileContrastService.java | 46 ++++
.../service/FileContrastSourceService.java | 19 ++
.../service/impl/ClueServiceImpl.java | 10 +-
.../impl/FileContrastRecordServiceImpl.java | 38 ++++
.../service/impl/FileContrastServiceImpl.java | 198 ++++++++++++++++++
.../impl/FileContrastSourceServiceImpl.java | 29 +++
.../service/impl/PushClueServiceImpl.java | 2 +-
.../distribute/vo/FileContrastRecordVO.java | 34 +++
.../modules/distribute/vo/FileContrastVO.java | 30 +++
.../java/com/baiye/task/FileContrastTask.java | 120 +++++++++++
admin/src/main/resources/application-dev.yml | 3 +
admin/src/main/resources/application-prod.yml | 3 +
admin/src/main/resources/application-test.yml | 3 +
admin/src/main/resources/application.yml | 1 +
.../resources/mapper/FileContrastMapper.xml | 29 +++
pom.xml | 9 +
40 files changed, 1345 insertions(+), 11 deletions(-)
create mode 100644 ad-distribute-common/common-core/src/main/java/com/baiye/constant/FileConstant.java
create mode 100644 ad-distribute-common/common-core/src/main/java/com/baiye/util/CompressUtil.java
create mode 100644 ad-distribute-extends/ad-distribute-extend-mybatis-plus/src/main/java/com/baiye/extend/mybatis/plus/converter/ListIntToListLongTypeHandler.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/controller/FileContrastController.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/controller/FileContrastRecordController.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/converter/FileContrasRecordConverter.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/converter/FileContrastConverter.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/dto/ContrastDTO.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/dto/FileContrastDTO.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/entity/FileContrastEntity.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/entity/FileContrastRecordEntity.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/entity/FileContrastSourceEntity.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/mapper/FileContrastMapper.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/mapper/FileContrastRecordMapper.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/mapper/FileContrastSourceMapper.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/qo/FileContrastQo.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/service/FileContrastRecordService.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/service/FileContrastService.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/service/FileContrastSourceService.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/service/impl/FileContrastRecordServiceImpl.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/service/impl/FileContrastServiceImpl.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/service/impl/FileContrastSourceServiceImpl.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/vo/FileContrastRecordVO.java
create mode 100644 admin/src/main/java/com/baiye/modules/distribute/vo/FileContrastVO.java
create mode 100644 admin/src/main/java/com/baiye/task/FileContrastTask.java
create mode 100644 admin/src/main/resources/mapper/FileContrastMapper.xml
diff --git a/ad-distribute-common/common-core/pom.xml b/ad-distribute-common/common-core/pom.xml
index 1b9156f..77fe084 100644
--- a/ad-distribute-common/common-core/pom.xml
+++ b/ad-distribute-common/common-core/pom.xml
@@ -73,7 +73,10 @@
2.3.2.RELEASE
-
+
+ net.lingala.zip4j
+ zip4j
+
diff --git a/ad-distribute-common/common-core/src/main/java/com/baiye/constant/FileConstant.java b/ad-distribute-common/common-core/src/main/java/com/baiye/constant/FileConstant.java
new file mode 100644
index 0000000..72261a7
--- /dev/null
+++ b/ad-distribute-common/common-core/src/main/java/com/baiye/constant/FileConstant.java
@@ -0,0 +1,112 @@
+package com.baiye.constant;
+
+/**
+ * @author
+ * 文件相关 常量类
+ */
+public class FileConstant {
+
+ /**
+ * 0,(自定义模板)
+ */
+ public static final int ZERO_NUMBER = 0;
+
+ /**
+ * 1,(UC)
+ */
+ public static final int ONE_NUMBER = 1;
+
+ /**
+ * 2,(快手)
+ */
+ public static final int TWO_NUMBER = 2;
+
+ /**
+ * 3,(抖音)
+ */
+ public static final int THREE_NUMBER = 3;
+
+ /**
+ * 4,(百度)
+ */
+ public static final int FOUR_NUMBER = 4;
+
+ /**
+ * 5,(动态任务自定义模板)
+ */
+ public static final int FIVE_NUMBER = 5;
+
+ /**
+ * 6,(拓客动态任务)
+ */
+ public static final int SIX_NUMBER = 6;
+
+ /**
+ * 1000
+ */
+ public static final int ONE_THOUSAND_NUMBER = 1000;
+
+ /**
+ * 1000000
+ */
+ public static final int ONE_MILLION_NUMBER = 1000000;
+
+ /**
+ * BY
+ */
+ public static final String BY = "BY";
+
+ /**
+ * MM
+ */
+ public static final String MM = "MM";
+
+ /**
+ * uc
+ */
+ public static final String UC = "uc";
+
+ /**
+ * 快手
+ */
+ public static final String KS = "ks";
+
+ /**
+ * 抖音
+ */
+ public static final String DY = "dy";
+
+ /**
+ * 其它
+ */
+ public static final String QT = "qt";
+
+
+ /**
+ * 以 xlsx 结尾的文件
+ */
+ public static final String XLSX_FILE_SUB_NAME = "xlsx";
+
+ /**
+ * 以 xls 结尾的文件
+ */
+ public static final String XLS_FILE_SUB_NAME = "xls";
+
+ /**
+ * 以 txt 结尾的文件
+ */
+ public static final String TXT_FILE_SUB_NAME = "txt";
+
+ /**
+ * 以 csv 结尾的文件
+ */
+ public static final String CSV_FILE_SUB_NAME = "csv";
+
+
+ /**
+ * 以 zip 结尾的文件
+ */
+ public static final String ZIP_FILE_SUB_NAME = ".zip";
+
+
+}
diff --git a/ad-distribute-common/common-core/src/main/java/com/baiye/util/CompressUtil.java b/ad-distribute-common/common-core/src/main/java/com/baiye/util/CompressUtil.java
new file mode 100644
index 0000000..ddaa1fc
--- /dev/null
+++ b/ad-distribute-common/common-core/src/main/java/com/baiye/util/CompressUtil.java
@@ -0,0 +1,85 @@
+package com.baiye.util;
+
+import cn.hutool.core.text.StrPool;
+import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.core.util.IdUtil;
+import net.lingala.zip4j.core.ZipFile;
+import net.lingala.zip4j.exception.ZipException;
+import net.lingala.zip4j.model.ZipParameters;
+import net.lingala.zip4j.util.Zip4jConstants;
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.File;
+import java.util.ArrayList;
+
+/**
+ * @author Enzo
+ * @date : 2022/10/24
+ */
+public class CompressUtil {
+ private CompressUtil() {
+ }
+
+ /**
+ * @param zipPath 压缩文件路径
+ * @param filepath 文件路径
+ * @param password 压缩密码
+ */
+ public static void decryptionCompression(String zipPath, String filepath, String password) {
+ try {
+ //创建压缩文件
+ ZipFile zipFile = new ZipFile(zipPath);
+ ArrayList files = new ArrayList<>();
+ files.add(new File(filepath));
+
+ //设置压缩文件参数
+ ZipParameters parameters = new ZipParameters();
+ //设置压缩方法
+ parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
+
+ //设置压缩级别
+ //DEFLATE_LEVEL_FASTEST - Lowest compression level but higher speed of compression
+ //DEFLATE_LEVEL_FAST - Low compression level but higher speed of compression
+ //DEFLATE_LEVEL_NORMAL - Optimal balance between compression level/speed
+ //DEFLATE_LEVEL_MAXIMUM - High compression level with a compromise of speed
+ //DEFLATE_LEVEL_ULTRA - Highest compression level but low speed
+ parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
+
+
+ //设置加密方法
+ parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
+
+ //设置aes加密强度
+ parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
+
+ if (StringUtils.isNotBlank(password)) {
+ //设置压缩文件加密
+ parameters.setEncryptFiles(Boolean.TRUE);
+ //设置密码
+ parameters.setPassword(password);
+ }
+
+ //添加文件到压缩文件
+ zipFile.addFiles(files, parameters);
+ } catch (ZipException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static String unzipFiles(String fileUrl, String zipPath, String password) throws ZipException {
+ File file = new File(zipPath);
+ ZipFile zipFile = new ZipFile(file);
+ //设置文件编码,根据实际场景
+ zipFile.setFileNameCharset(CharsetUtil.GBK);
+ if (zipFile.isEncrypted()) {
+ zipFile.setPassword(password);
+ }
+ String uuid = IdUtil.randomUUID();
+ String filePath
+ = fileUrl.concat(StrPool.SLASH).concat(uuid);
+ zipFile.extractAll(filePath);
+ return filePath;
+ }
+
+
+}
diff --git a/ad-distribute-extends/ad-distribute-extend-mybatis-plus/src/main/java/com/baiye/extend/mybatis/plus/converter/ListIntToListLongTypeHandler.java b/ad-distribute-extends/ad-distribute-extend-mybatis-plus/src/main/java/com/baiye/extend/mybatis/plus/converter/ListIntToListLongTypeHandler.java
new file mode 100644
index 0000000..11f1650
--- /dev/null
+++ b/ad-distribute-extends/ad-distribute-extend-mybatis-plus/src/main/java/com/baiye/extend/mybatis/plus/converter/ListIntToListLongTypeHandler.java
@@ -0,0 +1,74 @@
+package com.baiye.extend.mybatis.plus.converter;
+
+import cn.hutool.json.JSONUtil;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.type.CollectionType;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Enzo
+ * @date : 2024/3/14
+ */
+@MappedJdbcTypes(JdbcType.VARCHAR) // 数据库中该字段存储的类型
+@MappedTypes(List.class) // 需要转换的对象
+public class ListIntToListLongTypeHandler extends BaseTypeHandler> {
+
+ private static ObjectMapper mObjectMapper = new ObjectMapper();
+
+ @Override
+ public void setNonNullParameter(PreparedStatement preparedStatement, int i, List longs, JdbcType jdbcType) throws SQLException {
+ String json = JSONUtil.toJsonStr(longs);
+ preparedStatement.setObject(i, json);
+ }
+
+ @Override
+ public List getNullableResult(ResultSet resultSet, String columnName) throws SQLException {
+ String value = resultSet.getString(columnName);
+ return getLongs(value);
+ }
+
+
+ @Override
+ public List getNullableResult(ResultSet resultSet, int i) throws SQLException {
+ String value = resultSet.getString(i);
+
+ return getLongs(value);
+ }
+
+ @Override
+ public List getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+ String value = callableStatement.getString(i);
+
+ return getLongs(value);
+ }
+
+ private List getLongs(String value) {
+ if (StringUtils.isNotBlank(value)) {
+ try {
+
+ CollectionType type = mObjectMapper.getTypeFactory().constructCollectionType(ArrayList.class, Long.class);
+ List longs = mObjectMapper.readValue(value , type);
+
+ //List longs = JsonUtil.parseArray(value, Long.class);
+ return longs;
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ return null;
+ }
+}
diff --git a/ad-distribute-system/system-biz/src/main/java/com/baiye/system/properties/FileProperties.java b/ad-distribute-system/system-biz/src/main/java/com/baiye/system/properties/FileProperties.java
index e87ac93..088a701 100644
--- a/ad-distribute-system/system-biz/src/main/java/com/baiye/system/properties/FileProperties.java
+++ b/ad-distribute-system/system-biz/src/main/java/com/baiye/system/properties/FileProperties.java
@@ -25,6 +25,8 @@ public class FileProperties {
private ElPath windows;
+ private String downUrl;
+
public ElPath getPath() {
String os = System.getProperty("os.name");
if (os.toLowerCase().startsWith("win")) {
diff --git a/ad-distribute-system/system-biz/src/main/resources/mapper/SysUserMapper.xml b/ad-distribute-system/system-biz/src/main/resources/mapper/SysUserMapper.xml
index 354010c..f69926d 100644
--- a/ad-distribute-system/system-biz/src/main/resources/mapper/SysUserMapper.xml
+++ b/ad-distribute-system/system-biz/src/main/resources/mapper/SysUserMapper.xml
@@ -60,15 +60,17 @@