🎉 [2024-12-03] 初始化提交:
Some checks failed
Publish to Confluence / confluence (push) Failing after 11m37s

This commit is contained in:
liuxiaohua 2024-12-03 08:57:56 +08:00
parent 2ed024e015
commit 07661be6c0
15 changed files with 124668 additions and 48 deletions

View File

@ -0,0 +1,100 @@
## 候选人考察范围
- 数据库相关知识考察Mysql索引优化事务隔离级别B+Tree
- Spring体系考察SpringBootSpringCloudIOCAOP扩展组件
- Redis、MQ等Redis 为什么快存储结构使用场景RocketMQ架构等
- 算法(暂时没考察)
- Java基础考察HashMapJUCGC内存模型问题排查
- 个人能力考察(从交流中看看临时处理问题能力,扩展能力)
- 学习能力考察(暂时没有)
- 项目能力考察(参与的项目,职责,重难点,挑战,解决方法)
## 林旭坤
- 对技术停留在使用阶段,对底层实现了解较少(公司主要的技术栈都有使用,但是对技术栈的原理了解比较少)
- 对业务有一定自己的理解
- 现场面试,精神面貌比较好,沟通顺畅
- 综合评价70
## 林瑜晖
- 技术还可以,有实操经验
- 在一些业务实现上概念比较模糊,
- 有去了解一些技术底层和源码
- 综合评价60
## 何伟健
- 在技术上会散发一些自己的理解,对底层实现有一定的了解
- 项目经验比较少,做过一些功能维护和开发
- 沟通积极,能发散一些自己的想法和见解
- 综合评价65
## 程浩轩
- Java基础知识扎实思路清晰对技术实现能理解并吸收
- 思考问题比较全面,对做过的项目及实现有较清晰的认知
- 会主动学习一些知识和源码,能沉淀为自己的知识储备,发现其中的不足
- 表达能力比较好
- 综合评价80
## 陈建锐
- Java技术一般对操作系统有一些理解
- 项目经验较少,项目功能较为单一
- 对一些技术使用停留在使用阶段
- 综合评价60
## 李文锋
- 面试过程中对一些基本原理不能很好的回答,可能是由于紧张。
- 项目经验少,大部分都是自己的项目。
- 学习少,比较少看开源项目
- 综合评价:不建议。
## 王中瀚
- 对一些基础知识了解比较少,面试问题回答的比较浅
- 没有实际的项目经验,自己做了两个项目也没有比较好的吃透
- 综合评价60不通过
## 郑子健
- 基础知识扎实,提问的问题除了大体外还能说出里面的原理及技术实现
- 有相关的实习经历,在实习项目中有带入自己的思考
- 有一定的求知欲,对不懂的问题会思考并询问
- 综合评价80强哥进行二面
## 蔡松江
- 技术还行,原理方面了解的比较少
- 没有自己的理解,回答问题跟念书一样
- 有看开源项目,但是不多
- 综合评价70不通过
## 莫志军
- 基础知识扎实,对技术有自己的理解,了解实现原理
- 没有实际项目经历,但是对一些技术的使用有想法,对遇到的问题会思考对应的解决方案
- 按需看技术文档和源码
- 综合评价75强哥进行二面
## 彭泽谦
- 没有背八股文,做过项目,总结出技术是服务于业务
- 有自己的博客和github善于总结学习
- 有实际的代码开发经验
- 综合评价80强哥进行二面
## 罗顺强
- 基础比较弱,对一些基础的技术流程不了解,比如线程池的工作流程
- 喜欢逛技术博客和github但是问一些相关问题答不出来
- 综合评价65不通过
## 李柏林
- 基础知识技能扎实
- 对挺多技术的原理有了解,并知道实现
- 喜欢看书
- 项目经验相对较少
- 综合评价75强哥进行二面
## 练康安
- 基础知识掌握程度一般,对一些原理之类的了解较少
- 回答问题有些时候没有回答到点上
- 综合评价70不通过

112
任务/ES建设梳理.md Normal file
View File

@ -0,0 +1,112 @@
# ES建设
主要分为一下几步
1. Kafka集群搭建
2. ~~Canel 部署 (已有)~~
3. 数据处理服务搭建(用来聚合,清洗)
4. 列表数据迁移
- 代采
- OMS订单管理
- 运输
- 仓储
- 关务
- 报价
- 计费
- 财务
- 往来单位
- 资源中心
- 系统设置
## 实施步骤
### 一、KAFKA 搭建(运维处理)
### 二、CANAL 采集数据到 KAFKA运维处理
### 三、ES 搭建(运维处理)
### 四、数据消费服务搭建
- 对消费数据进行清理
### 五、数据查询服务搭建
- 提供查询接口
### 六、报表迁移
- 将列表 api 迁移到数据查询服务
## 计划总表
### 开发工期
| 功能 | 工期 |
|-------------------------|-----------|
| 数据消费服务搭建 | 3 |
| - 服务搭建 | 0.5 |
| - ES 操作类 | 0.5 |
| - Kafka Stream Consumer | 0.5 |
| - 增量模块 | 0.5 |
| - 全量模块 | 0.5 |
| - 缓存模块 | 0.5 |
| - 数据校正 | 0 |
| 报表迁移 | 0.5 * api |
| - 代采 | |
| -- 代采订单列表 | |
| - OMS | |
| -- 物流订单管理 | |
| - 运输 | |
| -- 运单列表 | |
| -- 订舱管理 | |
| -- 组货管理 | |
| -- 异常管理 | |
| - 仓储 | |
| -- 到货管理 | |
| -- 验货管理 | |
| -- 收货管理 | |
| -- 出库管理 | |
| -- 库存台账 | |
| - 关务 | |
| -- 报关单管理 | |
| - 报价 | |
| -- 报价单 | |
| -- 报价类目 | |
| - 计费 | |
| -- 应收账单 | |
| -- 应付账单 | |
| -- 应收流水 | |
| -- 应付流水 | |
| - 财务 | |
| -- 应收结算 | |
| -- 应付结算 | |
| -- 付款结算 | |
| 查询接口 | 0.3 * api |
#### 代采订单列表
- 表梳理:
- scm.agency_order (主表)
- scm.agency_order_info平铺
- scm.agency_order_clientage暂时没用
- scm.purchase_order暂时没用
- scm.agency_order_item聚合统计
- scm.purchase_packing_list聚合统计
- scm.oms_order
- tms.t_transport_order
- oms.o_order
- oms.o_order_task
- Settings
- Mappings
- 接口
### 自测
### 联调
[CDC方案对比]: https://cloud.tencent.com/developer/article/1893807
[CDC]: https://cloud.tencent.com/developer/article/2410127

View File

@ -1,18 +1,79 @@
## 需要更新的表格
- [月度任务规划](http://confluence.qifu.com/pages/viewpage.action?pageId=38503257)
- [周报](http://confluence.qifu.com/display/qifu/20241115)
##
- [ ] 回调业务方法实现(回调详情表?)
- [ ] 三方回调接口(回调详情表?)
- [ ] 接口报文记录。。。。
- [ ] 错误映射
- [ ] 对接流程图
## 20241120
- [ ] Canal 搭建
- [ ] Kafka 搭建
## 20241119
- [ ] Dolphinscheduler 整合 Datax 实现数据同步
- [ ] 了解数仓相关
## 20241118
- [ ] 数仓方案
- [ ] Dolphinscheduler 伪集群搭建
- [ ] Dolphinscheduler 体验
## 20241115
- [ ] 实现追踪注册功能
- [ ] 实现内部物流追踪查询功能
- [ ] 梳理 Aspect 到 Manager
- [X] 物流供应商映射表快递10017TRACK等
## 20241114
- [X] 修复请求错误信息未记录问题
- [X] 修复快递100下单错误但是返回正确状态的问题
- [X] 调整项目结构
## 20241113
- [X] 17TRACK 对接
## 20241112
- [X] 17TRACK 对接
## 20241111
- [X] 17TRACK 对接
## 20241108
- [X] 请求记录切面处理
- [X] 幂等插件
- [X] 限流插件
- [X] 下单请求订单对照表
## 20241107
- [ ] 开始对接快递100
- [ ] 下运单
- [ ] 物流信息查询
- [ ] 完善企赋网关整体框架
- [X] 开始对接快递100
- [X] 下运单
- [X] 物流信息查询
- [/] 完善企赋网关整体框架
## 20241106
- [ ] 表结构设计
- [ ] 方案评审
- [ ] 基础架子搭建
- [ ] 当前系统的访问量QPS
- [X] 表结构设计
- [X] 方案评审
- [X] 基础架子搭建
- [X] 当前系统的访问量QPS
## 20241105
- [ ] 企赋网关技术架构图
- [ ] 企赋网关处理流程图
- [ ] 企赋网关技术方案
- [ ] 核心包代码查看
- [ ] M端和B端粗略体验
- [X] 企赋网关技术架构图
- [X] 企赋网关处理流程图
- [X] 企赋网关技术方案
- [X] 核心包代码查看
- [X] M端和B端粗略体验

View File

@ -0,0 +1,155 @@
# 数据库管理
## Postgresql
### 安装
Ubuntu 默认支持,直接使用以下命令安装
```shell
apt install postgresql
```
- 详细教程可参考 [Postgresql安装教程](https://www.postgresql.org/download/linux/ubuntu/)
### 配置
#### 开放访问
- 查找配置文件位置
```shell
su postgres
psql
postgres=# SHOW config_file;
```
- 编辑 `postgresql.conf`
```shell
vi postgresql.conf
```
```properties
# 修改 listen_addresses 为 *
listen_addresses = '*'
```
- 编辑 `pg_hba.conf`
```properties
# 在文件末尾增加一行
host all all 0.0.0.0/0 md5
```
- 重启服务
```shell
sudo systemctl restart postgresql
# 或者在某些系统上可能是
sudo service postgresql restart
```
#### 创建用户和数据库
- 进入 `postgres`
```shell
su postgres
```
- 配置
```sql
# 采用命令行工具登陆 PostgreSQL
psql
# 创建数据库
postgres=# CREATE DATABASE dolphinscheduler;
# 修改 {user} 和 {password} 为你希望的用户名和密码
postgres=# CREATE USER {user} PASSWORD {password};
postgres=# ALTER DATABASE dolphinscheduler OWNER TO {user};
# 退出 PostgreSQL
postgres=# \q
```
- 配置开放访问(可选:开放访问步骤已经配置)
```shell
# 上面已经配置了,不需要配置
# 在终端执行如下命令,向配置文件新增登陆权限,并重载 PostgreSQL 配置,替换 {ip} 为对应的 DS 集群服务器 IP 地址段
echo "host dolphinscheduler {user} {ip} md5" >> $PGDATA/pg_hba.conf
# 重启服务
sudo systemctl restart postgresql
# 或者在某些系统上可能是
sudo service postgresql restart
```
#### 测试连接
- 配置完毕后,从外部客户端尝试连接,以验证配置是否生效。
## Mysql
### 安装
Ubuntu 默认支持,直接使用以下命令安装
```shell
apt install mysql
```
- 详细教程可参考 [Mysql安装](https://dev.mysql.com/doc/refman/8.4/en/linux-installation-apt-repo.html)
### 配置
#### 开放访问
- 找到并编辑MySQL配置文件
- MySQL默认配置文件通常位于 `/etc/mysql/my.cnf``/etc/my.cnf`
实际需要修改的配置文件可能为 `/etc/mysql/mysql.conf.d/mysqld.cnf`
具体路径取决于操作系统和MySQL版本。
- 使用文本编辑器打开配置文件找到bind-address参数。
```properties
bind-address = 0.0.0.0
```
- 重启 mysql
```shell
systemctl restart mysql
```
#### 创建用户
- 检查创建用户时密码校验条件。在创建用户前确认下密码验证规则一般必须大于等于8位
```sql
#显示创建用户的验证条件
mysql> SHOW VARIABLES LIKE 'validate_password%';
```
- 创建用户
```sql
#创建用户
mysql> CREATE USER '用户名'@'%或者IP' IDENTIFIED BY '密码';
mysql> FLUSH PRIVILEGES;
# 有的文章在该句末尾加上了with grant option一般不用写
# 下面一段话引用自with grant option作用_玉溪人在昌平的博客-CSDN博客
# with grant option的意思是权限赋予/取消是关联的,
# 如将with grant option用于对象授权时被授予的用户也可把此对象权限授予其他用户或角色
# 不同的是但管理员收回用with grant option授权的用户对象权限时权限会因传播而失效
# 如grant select on table with grant option to A,A用户把此权限授予B
# 但管理员收回A的权限时B的权限也会失效但管理员不可以直接收回B的SELECT ON TABLE 权限。
```
- 授予权限
```sql
# 授权某个用户所有数据库所有权限
mysql> GRANT ALL PRIVILEGES ON *.* TO "用户名"@"IP/localhost/%";
mysql> FLUSH PRIVILEGES;
```
#### 创建数据库
- mysql 5.6 / 5.7
```sql
mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
## 可选步骤
## 修改 {user} 和 {password} 为你希望的用户名和密码
# mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
# mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
mysql> flush privileges;
```
- 对于mysql 8
```sql
mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
## 可选步骤
## 修改 {user} 和 {password} 为你希望的用户名和密码
# mysql> CREATE USER '{user}'@'%' IDENTIFIED BY '{password}';
# mysql> GRANT ALL PRIVILEGES ON *.* TO '{user}'@'%';
mysql> FLUSH PRIVILEGES;
```
## 参考文档
- [DolphinScheduler数据源配置](https://github.com/apache/dolphinscheduler/blob/3.2.2-release/docs/docs/zh/guide/howto/datasource-setting.md)
- [Mysql创建用户](https://blog.csdn.net/qq_41566366/article/details/121763099)
- [Mysql授权问题](https://blog.csdn.net/weixin_54061333/article/details/117458996)

View File

@ -0,0 +1,77 @@
# Dolphinscheduler 安装教程
## 请参考官方文档
- [请参考官方文档部署][install]
- [数据源配置及初始化数据库][datasource]
## 注意事项
### 集群部署中 添加密码步骤
```shell
# centos
echo "dolphinscheduler" | passwd --stdin dolphinscheduler
# ubuntu
echo dolphinscheduler:dolphinscheduler | chpasswd &> /dev/null
```
### 建议使用 `dolphinscheduler` 用户操作
配置完用户和免密全选后,后续操作建议都在 `dolphinscheduler` 用户中执行
### 配置 env `./bin/env/dolphinscheduler_env.sh`
```shell
# JAVA_HOME, will use it to start DolphinScheduler server
export JAVA_HOME=${JAVA_HOME:-/opt/soft/java}
# Database related configuration, set database type, username and password
export DATABASE=${DATABASE:-postgresql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_PASSWORD={password}
# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-localhost:2181}
# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/python3}
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
```
### 启停服务
- 本教程编写时 脚本中存在 installPath 变量,执行脚本时需要 export 该变量为安装路径
- 本教程编写时 start-all.sh 脚本无法直接执行,建议直接使用下面的命令。失败原因没花时间找
- 进入安装目录
```shell
export installPath=$(pwd)
# 启停 Master
bash ./bin/dolphinscheduler-daemon.sh stop master-server
bash ./bin/dolphinscheduler-daemon.sh start master-server
# 启停 Worker
bash ./bin/dolphinscheduler-daemon.sh start worker-server
bash ./bin/dolphinscheduler-daemon.sh stop worker-server
# 启停 Api
bash ./bin/dolphinscheduler-daemon.sh start api-server
bash ./bin/dolphinscheduler-daemon.sh stop api-server
# 启停 Alert
bash ./bin/dolphinscheduler-daemon.sh start alert-server
bash ./bin/dolphinscheduler-daemon.sh stop alert-server
```
## 参考文档
- [官方伪集群教程][install]
[install]: https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/guide/installation/pseudo-cluster
[datasource]: https://github.com/apache/dolphinscheduler/blob/3.2.2-release/docs/docs/zh/guide/howto/datasource-setting.md

View File

@ -0,0 +1,28 @@
# Dolphinscheduler集成DataX
## 下载 DataX
- [下载地址][download]
## 安装 Python
- 查看 python 位置
```shell
which python3
```
## 安装 JDK1.8
## 解压DataX
```shell
tar -zxvf datax.tar.gz
```
## 记录 datax.py 位置
## 添加环境变量
![](https://picture.texous.cn/blog/20241119134752.png)
## 测试执行
![](https://picture.texous.cn/blog/20241119134917.png)
[guide]: https://github.com/alibaba/DataX/blob/master/userGuid.md
[download]: https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz

View File

@ -0,0 +1,11 @@
## 参考文档
- [数仓建设流程][数仓建设流程]
- [数仓建设规范指南][数仓建设规范指南]
[数仓建设规范指南]: https://developer.aliyun.com/article/901341
[数仓建设流程]: https://blog.csdn.net/lightupworld/article/details/108513990

View File

@ -0,0 +1,10 @@
## 对接文档列表
- [飞驼可视](https://doc.prd.freightower.com/web/#/2/2)
- [亿海蓝-船讯网](../材料/亿海蓝-船讯网.PDF)
- [TRACK718](https://www.track718.com/zh-CN/api/2/apiWebhookPush)
## 技术文档列表
- [Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/7.17/introduction.html)
- [spring-data-elasticsearch](https://github.com/spring-projects/spring-data-elasticsearch)
- [es](https://docs.spring.io/spring-boot/reference/data/nosql.html#data.nosql.elasticsearch.connecting-using-rest.javaapiclient)

View File

@ -106,44 +106,159 @@
```sql
CREATE TABLE `default`.`eg_request_info`
(
`id` bigint(20) NOT NULL,
`tenant_id` bigint(20) NOT NULL COMMENT '租户id',
`request_id` bigint(20) NOT NULL COMMENT '请求id客户端生成',
`trx_id` bigint(20) NOT NULL COMMENT '请求记录id服务端生成',
`request_time` bigint(20) NOT NULL COMMENT '请求时间',
`request_type` int(4) NOT NULL COMMENT '请求类型:比如下运单,查物流等',
`exec_type` int(2) NOT NULL DEFAULT 1 COMMENT '执行类型1=同步2=异步',
`request_status` int(2) NOT NULL DEFAULT 1 COMMENT '请求状态',
`attach_info` varchar(255) NOT NULL DEFAULT '{}' COMMENT '附加信息',
`callback_url` varchar(1000) NOT NULL DEFAULT '' COMMENT '异步回调链接',
`create_user_id` bigint(20) NOT NULL COMMENT '创建人id',
`create_by` varchar(32) NOT NULL COMMENT '创建人名称',
`create_time` bigint(20) NOT NULL COMMENT '创建时间',
`update_user_id` bigint(20) NOT NULL COMMENT '更新人ID',
`update_by` varchar(32) NOT NULL COMMENT '更新人名称',
`update_time` bigint(20) NOT NULL COMMENT '更新时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '删除标识0=未删除id=以删除',
PRIMARY KEY (`id`),
INDEX `idx_eg_reqeust_info_request_id`(`request_id`, `request_type`) USING BTREE,
INDEX `idx_eg_request_info_trx_id`(`trx_id`, `request_type`) USING BTREE
`id` bigint(20) NOT NULL,
`tenant_id` bigint(20) NOT NULL COMMENT '租户id',
`request_id` bigint(20) NOT NULL COMMENT '请求id客户端生成',
`trx_id` bigint(20) NOT NULL COMMENT '请求记录id服务端生成',
`request_time` bigint(20) NOT NULL COMMENT '请求时间',
`request_type` int(4) NOT NULL COMMENT '请求类型:比如下运单,查物流等',
`exec_type` int(2) NOT NULL DEFAULT 1 COMMENT '执行类型1=同步2=异步',
`request_status` int(2) NOT NULL DEFAULT 1 COMMENT '请求状态',
`attach_info` text NOT NULL COMMENT '附加信息',
`callback_url` varchar(1000) NOT NULL DEFAULT '' COMMENT '异步回调链接',
`create_user_id` bigint(20) NOT NULL COMMENT '创建人id',
`create_by` varchar(32) NOT NULL COMMENT '创建人名称',
`create_time` bigint(20) NOT NULL COMMENT '创建时间',
`update_user_id` bigint(20) NOT NULL COMMENT '更新人ID',
`update_by` varchar(32) NOT NULL COMMENT '更新人名称',
`update_time` bigint(20) NOT NULL COMMENT '更新时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '删除标识0=未删除id=以删除',
PRIMARY KEY (`id`),
INDEX `idx_eg_reqeust_info_request_id`(`request_id`, `request_type`) USING BTREE,
INDEX `idx_eg_request_info_trx_id`(`trx_id`, `request_type`) USING BTREE
) COMMENT = '请求信息表';
CREATE TABLE `default`.`eg_request_info_detail`
(
`id` bigint(20) NOT NULL,
`trx_id` bigint(20) NOT NULL COMMENT '请求记录id服务端生成',
`request_info` text NOT NULL COMMENT '请求信息',
`response_info` text NULL COMMENT '结果信息',
`callback_info` text NULL COMMENT '回调信息',
`create_user_id` bigint(20) NOT NULL COMMENT '创建人id',
`create_by` varchar(32) NOT NULL COMMENT '创建人名称',
`create_time` bigint(20) NOT NULL COMMENT '创建时间',
`update_user_id` bigint(20) NOT NULL COMMENT '更新人ID',
`update_by` varchar(32) NOT NULL COMMENT '更新人名称',
`update_time` bigint(20) NOT NULL COMMENT '更新时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '删除标识0=未删除id=以删除',
PRIMARY KEY (`id`),
INDEX `idx_eg_request_info_detail_trx_id`(`trx_id`) USING BTREE
`id` bigint(20) NOT NULL,
`trx_id` bigint(20) NOT NULL COMMENT '请求记录id服务端生成',
`request_info` text NOT NULL COMMENT '请求信息',
`response_info` text NULL COMMENT '结果信息',
`status` varchar(255) NOT NULL DEFAULT '20000' COMMENT '请求状态',
`error_message` varchar(255) NULL COMMENT '错误信息',
`create_user_id` bigint(20) NOT NULL COMMENT '创建人id',
`create_by` varchar(32) NOT NULL COMMENT '创建人名称',
`create_time` bigint(20) NOT NULL COMMENT '创建时间',
`update_user_id` bigint(20) NOT NULL COMMENT '更新人ID',
`update_by` varchar(32) NOT NULL COMMENT '更新人名称',
`update_time` bigint(20) NOT NULL COMMENT '更新时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '删除标识0=未删除id=以删除',
PRIMARY KEY (`id`),
INDEX `idx_eg_request_info_detail_trx_id`(`trx_id`) USING BTREE
) COMMENT = '请求信息详情表';
CREATE TABLE `default`.`eg_request_flow_control`
(
`id` bigint(20) NOT NULL,
`biz_code` varchar(50) NOT NULL COMMENT '业务编码',
`biz_name` varchar(50) NOT NULL COMMENT '业务名称',
`limit_type` int(4) NOT NULL DEFAULT 1 COMMENT '限制类型1=令牌桶',
`limit_time` int(8) NOT NULL DEFAULT 1 COMMENT '限制时间',
`limit_unit` int(4) NOT NULL DEFAULT 1 COMMENT '限制时间单位1=秒',
`limit_quantity` int(8) NOT NULL DEFAULT 1 COMMENT '限制请求量',
`create_user_id` bigint(20) NOT NULL COMMENT '创建人id',
`create_by` varchar(32) NOT NULL COMMENT '创建人名称',
`create_time` bigint(20) NOT NULL COMMENT '创建时间',
`update_user_id` bigint(20) NOT NULL COMMENT '更新人ID',
`update_by` varchar(32) NOT NULL COMMENT '更新人名称',
`update_time` bigint(20) NOT NULL COMMENT '更新时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '删除标识0=未删除id=以删除',
PRIMARY KEY (`id`),
INDEX `idx_eg_request_info_detail_trx_id`((trx_id)) USING BTREE
) COMMENT = '请求流量控制表';
CREATE TABLE `default`.`eg_express`
(
`id` bigint(20) NOT NULL,
`channel` varchar(20) NOT NULL COMMENT '渠道编码',
`company` varchar(50) NOT NULL COMMENT '公司编码',
`number` varchar(50) NOT NULL COMMENT '订单号',
`send_man_mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '发送人手机号',
`send_man_name` varchar(50) NOT NULL DEFAULT '' COMMENT '发送人名称',
`send_man_print_addr` varchar(255) NOT NULL DEFAULT '' COMMENT '发送人地址',
`rec_man_mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '接收人手机号',
`rec_man_name` varchar(50) NOT NULL DEFAULT '' COMMENT '接收人名称',
`rec_man_print_addr` varchar(255) NOT NULL DEFAULT '' COMMENT '接收人地址',
`cargo` varchar(255) NOT NULL DEFAULT '' COMMENT '物流物品名称',
`send_country` varchar(255) NOT NULL DEFAULT '' COMMENT '发送国家',
`send_province` varchar(255) NOT NULL DEFAULT '' COMMENT '发送省',
`send_city` varchar(255) NOT NULL DEFAULT '' COMMENT '发送市',
`send_district` varchar(255) NOT NULL DEFAULT '' COMMENT '发送街道',
`rec_country` varchar(255) NOT NULL DEFAULT '' COMMENT '接收国家',
`rec_province` varchar(255) NOT NULL DEFAULT '' COMMENT '接收省',
`rec_city` varchar(255) NOT NULL DEFAULT '' COMMENT '接收市',
`rec_district` varchar(255) NOT NULL DEFAULT '' COMMENT '接收街道',
`create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
`create_by` varchar(32) NOT NULL COMMENT '创建人名称',
`create_time` bigint(20) NOT NULL COMMENT '创建时间',
`update_user_id` bigint(20) NOT NULL COMMENT '更新人id',
`update_by` varchar(32) NOT NULL COMMENT '更新人名称',
`update_time` bigint(20) NOT NULL COMMENT '更新时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否删除0=否id=是',
PRIMARY KEY (`id`),
INDEX `idx_eg_request_info_detail_trx_id`((trx_id)) USING BTREE
) COMMENT = '物流信息表';
CREATE TABLE `default`.`eg_express_tracking`
(
`id` bigint(20) NOT NULL,
`channel` varchar(20) NOT NULL COMMENT '来源渠道',
`company` varchar(50) NOT NULL COMMENT '公司编码',
`number` varchar(50) NOT NULL COMMENT '订单号',
`time` varchar(50) NOT NULL DEFAULT '' COMMENT '请求状态',
`time_long` bigint(20) NOT NULL DEFAULT 0 COMMENT '错误信息',
`context` varchar(255) NOT NULL COMMENT '节点事件内容',
`address` varchar(500) NOT NULL COMMENT '详细地址',
`country` varchar(50) NOT NULL DEFAULT '' COMMENT '国家',
`province` varchar(50) NOT NULL DEFAULT '' COMMENT '省',
`city` varchar(50) NOT NULL DEFAULT '' COMMENT '市',
`district` varchar(50) NOT NULL DEFAULT '' COMMENT '街道',
`create_user_id` bigint(20) NOT NULL COMMENT '创建人id',
`create_by` varchar(32) NOT NULL COMMENT '创建人名称',
`create_time` bigint(20) NOT NULL COMMENT '创建时间',
`update_user_id` bigint(20) NOT NULL COMMENT '更新人ID',
`update_by` varchar(32) NOT NULL COMMENT '更新人名称',
`update_time` bigint(20) NOT NULL COMMENT '更新时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '删除标识0=未删除id=以删除',
PRIMARY KEY (`id`),
INDEX `idx_eg_request_info_detail_trx_id`((trx_id)) USING BTREE
) COMMENT = '物流追踪表';
CREATE TABLE `default`.`eg_express_order`
(
`id` bigint(20) NOT NULL,
`request_id` bigint(20) NOT NULL COMMENT '请求id',
`trx_id` bigint(20) NOT NULL COMMENT '流水id',
`channel` varchar(20) NOT NULL COMMENT '来源渠道',
`company` varchar(50) NOT NULL COMMENT '公司编码',
`number` varchar(50) NOT NULL COMMENT '订单号',
`send_man_mobile` varchar(50) NOT NULL DEFAULT '' COMMENT '发送人手机',
`rec_man_mobile` varchar(50) NOT NULL DEFAULT '' COMMENT '接收人手机',
`create_user_id` bigint(20) NOT NULL COMMENT '创建人id',
`create_by` varchar(32) NOT NULL COMMENT '创建人名称',
`create_time` bigint(20) NOT NULL COMMENT '创建时间',
`update_user_id` bigint(20) NOT NULL COMMENT '更新人ID',
`update_by` varchar(32) NOT NULL COMMENT '更新人名称',
`update_time` bigint(20) NOT NULL COMMENT '更新时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '删除标识0=未删除id=以删除',
PRIMARY KEY (`id`),
INDEX `idx_eg_request_info_detail_trx_id`(`trx_id`) USING BTREE
) COMMENT = '物流下单表';
CREATE TABLE `default`.`eg_express_company_mapping`
(
`id` bigint(20) NOT NULL,
`channel` varchar(20) NOT NULL COMMENT '来源渠道',
`code` varchar(50) NOT NULL COMMENT '公司编码',
`out_code` varchar(50) NOT NULL COMMENT '外部公司编码',
`cn_name` varchar(50) NOT NULL DEFAULT '' COMMENT '公司名称',
`us_name` bigint(50) NOT NULL DEFAULT '' COMMENT '公司名称英文',
`out_cn_name` varchar(50) NOT NULL DEFAULT '' COMMENT '外部公司名称',
`out_us_name` varchar(50) NOT NULL DEFAULT '' COMMENT '外部公司名称英文',
`create_user_id` bigint(20) NOT NULL COMMENT '创建人id',
`create_by` varchar(32) NOT NULL COMMENT '创建人名称',
`create_time` bigint(20) NOT NULL COMMENT '创建时间',
`update_user_id` bigint(20) NOT NULL COMMENT '更新人ID',
`update_by` varchar(32) NOT NULL COMMENT '更新人名称',
`update_time` bigint(20) NOT NULL COMMENT '更新时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '删除标识0=未删除id=以删除',
PRIMARY KEY (`id`),
INDEX `idx_eg_request_info_detail_trx_id`((trx_id)) USING BTREE
) COMMENT = '物流追踪表';
```
#### ES

84
杂项/Temp.md Normal file
View File

@ -0,0 +1,84 @@
<!-- Space: chanyanzhongtai -->
<!-- Parent: 产研中台 -->
<!-- Parent: 6.工具指南 -->
<!-- Title: 20240801-Squaretest破解教程 -->
<!-- Macro: \!\[.*\]\((.+)\)\<\!\-\- width=(.*) \-\-\>
Template: ac:image
Url: ${1}
Width: ${2} -->
<!-- Macro: :toc:
Template: ac:toc
Printable: 'false'
MinLevel: 2
MaxLevel: 4 -->
<!-- Include: 杂项/声明文件.md -->
:toc:
## 下载版本
- 进入 [Squaretest 插件下载界面][Squaretest]
- 下载对应的 `zip`
- 找到 `lib` 目录下的 `**-TestStarter-**.jar`
- `**-TestStarter-**.jar` 就是我们需要反编译的文件
## 反编译
- 使用 `jd-gui` 打开 `**-TestStarter-**.jar`
- 保存源文件为 `zip`, 操作如下
- ![](https://img2020.cnblogs.com/blog/1092396/202006/1092396-20200613155751859-310232644.png)
- ![save all sources](https://picture.texous.cn/baiju/jd-gui.png)
- 解压缩文件(有报错不用理会,直接替换就行)
## IDEA打开项目进行代码修改替换
- IDEA 打开反编译后的文件
- ![Squaretest sources](https://picture.texous.cn/baiju/20240801161613.png)
- 全局搜索 `VALIDATE AND SAVE`
- ![](https://picture.texous.cn/baiju/20240801161808.png)
- 找到 `k`
- ![](https://picture.texous.cn/baiju/20240801161933.png)
- 进入 `this.a.b(str)` 方法
- ![](https://picture.texous.cn/baiju/20240801162042.png)
- 进入 `this.b.a(paramString)` 方法
- ![](https://picture.texous.cn/baiju/20240801162152.png)
- `q` 类就是我们需要的类
- 分析 `q` 类,引用了 `r`
- **注意**:请使用对应的 jdk 版本进行编译
### 按如下操作(没有报错)
- 修改 `r a(String paramString)` 方法
- ![](https://picture.texous.cn/baiju/20240801162730.png)
- 重新编译 `q` 文件
- ![](https://picture.texous.cn/baiju/20240801163019.png)
- 替换 `**-TestStarter-**.jar` 中的 `q.class`
### 按如下操作(有不存在的类)
- 拷贝 `q.java``r.java` 到一个目录中
- 移除 `q.java``r.java` 中报错的引用和方法(判断是无用的)
- 修改 `r a(String paramString)` 方法
- ![](https://picture.texous.cn/baiju/20240801162730.png)
- 执行命令行编译 `D:\\Programs\\Developer\\jdk-17.0.12\\bin\\javac -J-Dfile.encoding=UTF-8 r.java q.java`
- 替换 `**-TestStarter-**.jar` 中的 `q.class`
## 安装插件
![](https://picture.texous.cn/baiju/20240801163745.png)
## 激活插件
- 打开设置
- ![](https://picture.texous.cn/baiju/20240801163901.png)
- 随便填入文本,格式如下
- ```
--- BEGIN SQUARETEST LICENSE ---
neo
https://zhile.io
SQT1-101010101010101010101010101010101010
MEUCID2bg5gEzJLdpGbBU9QvoGsXZ0VIucgRP340/6s6omIKAiEAo9xDQdd07SPucE5w6cPLfUeo7YqLT+EIrVqGMOELzrs=
--- END SQUARETEST LICENSE ---
```
- 点击激活
## 参考文献
- [Squaretest Plugin][Squaretest]
- [Squaretest破解][Squaretest Crack]
[Squaretest]: https://plugins.jetbrains.com/plugin/10405-squaretest/versions/stable
[Squaretest Crack]: https://blog.csdn.net/binbushi/article/details/135942290

140
杂项/canal.json Normal file
View File

@ -0,0 +1,140 @@
{
"ddl": {
"data": null,
"database": "testdb",
"es": 1732161751000,
"gtid": "",
"id": 1,
"isDdl": true,
"mysqlType": null,
"old": null,
"pkNames": null,
"sql": "CREATE TABLE canaltest\n(id INT,\ncode VARCHAR(10),\nupdatetime timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
"sqlType": null,
"table": "canaltest",
"ts": 1732161751334,
"type": "CREATE"
},
"insert": {
"data": [
{
"id": null,
"code": "test1",
"updatetime": "2024-11-21 13:40:36.000"
},
{
"id": null,
"code": "test2",
"updatetime": "2024-11-21 13:40:36.000"
},
{
"id": null,
"code": "test3",
"updatetime": "2024-11-21 13:40:36.000"
}
],
"database": "testdb",
"es": 1732167636000,
"gtid": "",
"id": 7,
"isDdl": false,
"mysqlType": {
"id": "INT",
"code": "VARCHAR(10)",
"updatetime": "timestamp(3)"
},
"old": null,
"pkNames": null,
"sql": "",
"sqlType": {
"id": 4,
"code": 12,
"updatetime": 93
},
"table": "canaltest",
"ts": 1732167636678,
"type": "INSERT"
},
"update": {
"data": [
{
"id": "1",
"code": "Canal",
"updatetime": "2024-11-21 13:37:54.000"
},
{
"id": "2",
"code": "Flink",
"updatetime": "2024-11-21 13:37:54.000"
}
],
"database": "testdb",
"es": 1732167474000,
"gtid": "",
"id": 5,
"isDdl": false,
"mysqlType": {
"id": "INT",
"code": "VARCHAR(10)",
"updatetime": "timestamp(3)"
},
"old": [
{
"updatetime": "2024-11-21 12:02:40.171"
},
{
"updatetime": "2024-11-21 12:02:52.459"
}
],
"pkNames": null,
"sql": "",
"sqlType": {
"id": 4,
"code": 12,
"updatetime": 93
},
"table": "canaltest",
"ts": 1732167475096,
"type": "UPDATE"
},
"delete": {
"data": [
{
"id": null,
"code": "test1",
"updatetime": "2024-11-21 13:40:36.000"
},
{
"id": null,
"code": "test2",
"updatetime": "2024-11-21 13:40:36.000"
},
{
"id": null,
"code": "test3",
"updatetime": "2024-11-21 13:40:36.000"
}
],
"database": "testdb",
"es": 1732167696000,
"gtid": "",
"id": 8,
"isDdl": false,
"mysqlType": {
"id": "INT",
"code": "VARCHAR(10)",
"updatetime": "timestamp(3)"
},
"old": null,
"pkNames": null,
"sql": "",
"sqlType": {
"id": 4,
"code": 12,
"updatetime": 93
},
"table": "canaltest",
"ts": 1732167697081,
"type": "DELETE"
}
}

123724
杂项/result.txt Normal file

File diff suppressed because one or more lines are too long

3
杂项/test.json Normal file
View File

@ -0,0 +1,3 @@
[
"{\"data\":[{\"id\":null,\"code\":\"test1\",\"updatetime\":\"2024-11-22 10:04:31.000\"},{\"id\":null,\"code\":\"test2\",\"updatetime\":\"2024-11-22 10:04:31.000\"},{\"id\":null,\"code\":\"test3\",\"updatetime\":\"2024-11-22 10:04:31.000\"}],\"database\":\"testdb\",\"es\":1732241071000,\"gtid\":\"\",\"id\":15,\"isDdl\":false,\"mysqlType\":{\"id\":\"INT\",\"code\":\"VARCHAR(10)\",\"updatetime\":\"timestamp(3)\"},\"old\":null,\"pkNames\":null,\"sql\":\"\",\"sqlType\":{\"id\":4,\"code\":12,\"updatetime\":93},\"table\":\"canaltest\",\"ts\":1732241071760,\"type\":\"INSERT\"}"
]

Binary file not shown.

BIN
材料/海外仓排期.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB