Compare commits
18 Commits
develop
...
LiMingyu_b
| Author | SHA1 | Date |
|---|---|---|
|
|
a5598bf81a | 1 year ago |
|
|
29ee2b64f5 | 1 year ago |
|
|
1315c4fb85 | 1 year ago |
|
|
27dfce23ed | 1 year ago |
|
|
f1db4c90a5 | 1 year ago |
|
|
7287d2f4e7 | 1 year ago |
|
|
2fabd681dc | 1 year ago |
|
|
da8dcddc9a | 1 year ago |
|
|
f643f6d5b8 | 1 year ago |
|
|
e4bce04637 | 1 year ago |
|
|
09b4891304 | 1 year ago |
|
|
92575404d0 | 1 year ago |
|
|
11968bdc81 | 1 year ago |
|
|
90fd4e17df | 1 year ago |
|
|
fd492af5ed | 1 year ago |
|
|
057bdf7aa5 | 1 year ago |
|
|
dd69c66b00 | 1 year ago |
|
|
425bbf3afe | 1 year ago |
@ -0,0 +1,54 @@
|
||||
target/
|
||||
!**/src/main/**/target/
|
||||
!**/src/test/**/target/
|
||||
/db/
|
||||
/logs/
|
||||
/img/
|
||||
/export/
|
||||
/config/
|
||||
/data/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
# dependencies
|
||||
**/node_modules
|
||||
# roadhog-api-doc ignore
|
||||
/src/utils/request-temp.js
|
||||
_roadhog-api-doc
|
||||
|
||||
# production
|
||||
/dist
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
npm-debug.log*
|
||||
yarn-error.log
|
||||
|
||||
/coverage
|
||||
yarn.lock
|
||||
package-lock.json
|
||||
*bak
|
||||
.vscode
|
||||
|
||||
|
||||
# visual studio code
|
||||
.history
|
||||
*.log
|
||||
functions/*
|
||||
.temp/**
|
||||
|
||||
# umi
|
||||
.umi
|
||||
.umi-production
|
||||
.umi-test
|
||||
|
||||
# screenshot
|
||||
screenshot
|
||||
.firebase
|
||||
.eslintcache
|
||||
build
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 xuchengsheng
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@ -0,0 +1,29 @@
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 4.1 MiB |
@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.xcs.wx</groupId>
|
||||
<artifactId>wx-dump-4j</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>${revision}</version>
|
||||
|
||||
<modules>
|
||||
<module>wx-dump-admin</module>
|
||||
<module>wx-dump-dist</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
<maven-assembly-plugin.version>3.5.0</maven-assembly-plugin.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<revision>1.1.0</revision>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<version>2.7.15</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||
<version>2.7.15</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.xerial</groupId>
|
||||
<artifactId>sqlite-jdbc</artifactId>
|
||||
<version>3.34.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.20</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.5.4.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
|
||||
<version>4.2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<version>1.2.20</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct</artifactId>
|
||||
<version>1.4.2.Final</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct-processor</artifactId>
|
||||
<version>1.4.2.Final</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>5.8.16</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna</artifactId>
|
||||
<version>5.8.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna-platform</artifactId>
|
||||
<version>5.8.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
<version>3.25.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java-util</artifactId>
|
||||
<version>3.25.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.grpc</groupId>
|
||||
<artifactId>grpc-all</artifactId>
|
||||
<version>1.11.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>easyexcel</artifactId>
|
||||
<version>3.3.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>1.19</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-xml</artifactId>
|
||||
<version>2.13.5</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.12.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.xcs.wx</groupId>
|
||||
<artifactId>wx-dump-admin</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,111 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>wx-dump-4j</artifactId>
|
||||
<groupId>com.xcs.wx</groupId>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>wx-dump-admin</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.xerial</groupId>
|
||||
<artifactId>sqlite-jdbc</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct-processor</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna-platform</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java-util</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.grpc</groupId>
|
||||
<artifactId>grpc-all</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>easyexcel</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-xml</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>wx-dump-admin</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<source>11</source>
|
||||
<target>11</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,70 @@
|
||||
package com.xcs.wx.config;
|
||||
|
||||
import com.baomidou.dynamic.datasource.exception.CannotFindDataSourceException; // 导入动态数据源异常类
|
||||
import com.xcs.wx.domain.vo.ResponseVO; // 导入自定义的响应VO类
|
||||
import com.xcs.wx.exception.BizException; // 导入自定义的业务异常类
|
||||
import lombok.extern.slf4j.Slf4j; // 导入lombok提供的日志注解
|
||||
import org.mybatis.spring.MyBatisSystemException; // 导入MyBatis系统异常类
|
||||
import org.springframework.http.HttpStatus; // 导入Spring的HTTP状态码类
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler; // 导入Spring的异常处理器注解
|
||||
import org.springframework.web.bind.annotation.ResponseStatus; // 导入Spring的响应状态注解
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice; // 导入Spring的全局异常处理注解
|
||||
|
||||
/**
|
||||
* 全局异常处理配置类
|
||||
*
|
||||
* @author xcs
|
||||
* @date 2023年12月25日 17时29分
|
||||
**/
|
||||
@Slf4j // 使用lombok提供的日志注解
|
||||
@RestControllerAdvice // 声明这是一个全局异常处理的RestControllerAdvice
|
||||
@ResponseStatus(HttpStatus.OK) // 设置默认的响应状态码为OK
|
||||
public class ExceptionAdviceConfig {
|
||||
|
||||
/**
|
||||
* 捕获并处理BizException异常
|
||||
* @param e 抛出的BizException异常
|
||||
* @return 自定义的响应VO对象
|
||||
**/
|
||||
@ExceptionHandler(BizException.class) // 指定这个方法处理BizException异常
|
||||
public ResponseVO<String> handleException(BizException e) {
|
||||
return ResponseVO.error(e.getCode(), e.getMsg()); // 返回异常的错误码和消息
|
||||
}
|
||||
|
||||
/**
|
||||
* 捕获并处理MyBatisSystemException异常
|
||||
* @param e 抛出的MyBatisSystemException异常
|
||||
* @return 自定义的响应VO对象
|
||||
**/
|
||||
@ExceptionHandler(MyBatisSystemException.class) // 指定这个方法处理MyBatisSystemException异常
|
||||
public ResponseVO<String> myBatisSystemException(MyBatisSystemException e) {
|
||||
// 如果异常的原因是数据源未找到,则返回特定的错误消息
|
||||
if (e.getCause().getCause() instanceof CannotFindDataSourceException) {
|
||||
return ResponseVO.error(-1, "微信数据库未就绪状态,请先点击左侧解密工具进行数据解密!");
|
||||
}
|
||||
log.error("mybatis system exception", e); // 记录异常日志
|
||||
return ResponseVO.error(-1, "系统异常"); // 返回系统异常的错误消息
|
||||
}
|
||||
|
||||
/**
|
||||
* 捕获并处理RuntimeException异常
|
||||
* @param e 抛出的RuntimeException异常
|
||||
* @return 自定义的响应VO对象
|
||||
**/
|
||||
@ExceptionHandler(RuntimeException.class) // 指定这个方法处理RuntimeException异常
|
||||
public ResponseVO<String> handleException(RuntimeException e) {
|
||||
log.error("runtime exception", e); // 记录异常日志
|
||||
return ResponseVO.error(-1, "系统异常"); // 返回系统异常的错误消息
|
||||
}
|
||||
|
||||
/**
|
||||
* 捕获并处理Exception异常
|
||||
* @param e 抛出的Exception异常
|
||||
* @return 自定义的响应VO对象
|
||||
**/
|
||||
@ExceptionHandler(Exception.class) // 指定这个方法处理Exception异常
|
||||
public ResponseVO<String> handleException(Exception e) {
|
||||
log.error("exception", e); // 记录异常日志
|
||||
return ResponseVO.error(-1, "系统异常"); // 返回系统异常的错误消息
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,25 @@
|
||||
package com.xcs.wx.repository;
|
||||
|
||||
import com.xcs.wx.domain.FTSContactContent; // 导入联系人内容类
|
||||
import com.xcs.wx.domain.dto.RecoverContactDTO; // 导入联系人恢复数据传输对象
|
||||
|
||||
import java.util.List; // 导入列表类
|
||||
|
||||
/**
|
||||
* 联系人内容 Repository
|
||||
*
|
||||
* 该接口用于定义与联系人内容相关的数据库操作
|
||||
*
|
||||
* @author xcs
|
||||
* @date 2024年6月14日15:18:11
|
||||
**/
|
||||
public interface FTSContactContentRepository {
|
||||
|
||||
/**
|
||||
* 查询联系人
|
||||
*
|
||||
* @param recoverContactDTO 包含查询条件的联系人恢复数据传输对象
|
||||
* @return 返回符合条件的联系人内容列表
|
||||
*/
|
||||
List<FTSContactContent> queryContactContent(RecoverContactDTO recoverContactDTO);
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
```java
|
||||
package com.xcs.wx.repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 最新使用关键字 Repository
|
||||
*
|
||||
* 该接口定义了与最近使用关键字相关的数据库操作
|
||||
*
|
||||
* @author xcs
|
||||
* @date 2024年1月23日11:20:56
|
||||
*/
|
||||
public interface FTSRecentUsedRepository {
|
||||
|
||||
/**
|
||||
* 查询最近使用的关键字
|
||||
*
|
||||
* @return 返回最近使用的关键字列表
|
||||
*/
|
||||
List<String> queryRecentUsedKeyWord();
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.xcs.wx.repository;
|
||||
|
||||
/**
|
||||
* 视频链接 Repository
|
||||
*
|
||||
* 该接口定义了与视频链接相关的数据库操作
|
||||
*
|
||||
* @author xcs
|
||||
* @date 2024年01月03日 16时56分
|
||||
**/
|
||||
public interface HardLinkVideoAttributeRepository {
|
||||
|
||||
/**
|
||||
* 查询视频地址
|
||||
*
|
||||
* @param md5 用于唯一标识视频的md5值
|
||||
* @return 返回对应的视频链接地址
|
||||
*/
|
||||
String queryHardLinkVideo(byte[] md5);
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package com.xcs.wx.repository;
|
||||
|
||||
import com.xcs.wx.domain.Msg;
|
||||
import com.xcs.wx.domain.vo.CountRecentMsgsVO;
|
||||
import com.xcs.wx.domain.vo.MsgTypeDistributionVO;
|
||||
import com.xcs.wx.domain.vo.TopContactsVO;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 消息 Repository
|
||||
*
|
||||
* 该接口定义了与消息相关的数据库操作
|
||||
*
|
||||
* @author xcs
|
||||
* @date 2023年12月25日15:31:37
|
||||
*/
|
||||
public interface MsgRepository {
|
||||
|
||||
/**
|
||||
* 根据talker与分页信息查询聊天记录
|
||||
*
|
||||
* @param talker 对话者
|
||||
* @param nextSequence 下一个序列号
|
||||
* @return 返回聊天记录列表
|
||||
*/
|
||||
List<Msg> queryMsgByTalker(String talker, Long nextSequence);
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @param talker 对话者
|
||||
* @return 返回聊天记录列表
|
||||
*/
|
||||
List<Msg> exportMsg(String talker);
|
||||
|
||||
/**
|
||||
* 微信消息类型及其分布统计
|
||||
*
|
||||
* @return 返回消息类型分布统计列表
|
||||
*/
|
||||
List<MsgTypeDistributionVO> msgTypeDistribution();
|
||||
|
||||
/**
|
||||
* 统计过去 15 天每天的发送和接收消息数量
|
||||
*
|
||||
* @return 返回过去15天消息统计列表
|
||||
*/
|
||||
List<CountRecentMsgsVO> countRecentMsgs();
|
||||
|
||||
/**
|
||||
* 最近一个月内微信互动最频繁的前10位联系人
|
||||
*
|
||||
* @return 返回最频繁联系人列表
|
||||
*/
|
||||
List<TopContactsVO> topContacts();
|
||||
|
||||
/**
|
||||
* 统计发送消息数量
|
||||
*
|
||||
* @return 返回发送消息数量
|
||||
*/
|
||||
int countSent();
|
||||
|
||||
/**
|
||||
* 统计接受消息数量
|
||||
*
|
||||
* @return 返回接收消息数量
|
||||
*/
|
||||
int countReceived();
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue