docs(sxsy80): 补充文档、合同资源与数据清理脚本
- 更新前后端 sign_contract_sxsy80.pdf - 增加 com-sxsy80 说明、数据迁移与 SQL/执行脚本 - 增加 com-xsj33 数据迁移说明与 docs 下合同源文件 Made-with: Cursor
This commit is contained in:
Binary file not shown.
55
com-xsj33-data-imgration.md
Normal file
55
com-xsj33-data-imgration.md
Normal file
@@ -0,0 +1,55 @@
|
||||
|
||||
# 公司名称:夏盛军商贸
|
||||
|
||||
## mysql数据库配置信息
|
||||
|
||||
host ip: 39.106.63.33
|
||||
datasource:
|
||||
name: yangtangyoupin
|
||||
username: yangtangyoupin
|
||||
password: 5Fn8eWrbYFtAhCZw
|
||||
|
||||
## 数据删除任务
|
||||
|
||||
- 用户数据范围暨**用户id集**:wa_users表中的用户id集
|
||||
- 查询wa_withdraw表中用户id不在用户数据范围内的记录,并写一个删除这些数据的sql
|
||||
|
||||
### 1) 查询核对 SQL
|
||||
|
||||
```sql
|
||||
-- 统计孤立提现记录数
|
||||
SELECT COUNT(*) AS orphan_cnt
|
||||
FROM wa_withdraw w
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM wa_users u WHERE u.id = w.user_id
|
||||
);
|
||||
|
||||
-- 抽样查看前 100 条,核对是否确实需要清理
|
||||
SELECT w.*
|
||||
FROM wa_withdraw w
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM wa_users u WHERE u.id = w.user_id
|
||||
)
|
||||
ORDER BY w.id
|
||||
LIMIT 100;
|
||||
```
|
||||
|
||||
### 2) 删除 SQL
|
||||
|
||||
```sql
|
||||
DELETE w FROM wa_withdraw w
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM wa_users u WHERE u.id = w.user_id
|
||||
);
|
||||
```
|
||||
|
||||
### 3) 操作备注
|
||||
|
||||
- 建议在执行前对 wa_withdraw 做一次备份:`CREATE TABLE wa_withdraw_bak_20260423 AS SELECT * FROM wa_withdraw;`
|
||||
- 建议先跑 `COUNT(*)` 与 `LIMIT 100` 人工核对,再执行 `DELETE`
|
||||
- 全程放入事务中执行,确认无误后再 `COMMIT`
|
||||
|
||||
|
||||
## 相关文件
|
||||
|
||||
|
||||
59
docs/com-sxsy80-data-imgration.md
Normal file
59
docs/com-sxsy80-data-imgration.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# 公司名称:太原树英商贸
|
||||
|
||||
## mysql数据库配置信息
|
||||
|
||||
host ip: 106.14.132.80
|
||||
datasource:
|
||||
name: yangtangyoupin
|
||||
username: yangtangyoupin
|
||||
password: 5Fn8eWrbYFtAhCZw
|
||||
|
||||
## 数据清理任务
|
||||
|
||||
- **数据范围**:用户 id 集(`wa_users`)
|
||||
`92566,92801,92839,93004,92637,92965,93093,93096,93116,92787,93121,93129,92884,93007,93020,93094,93099,93110,92638`
|
||||
|
||||
- 保留wa_users表中id在用户id数据范围的 ,删除其余用户数据
|
||||
- 保留eb_user表中uid在用户id数据范围的 ,删除其余用户数据
|
||||
|
||||
- wa_order
|
||||
清空wa_order表中数据
|
||||
|
||||
- wa_merchandise
|
||||
只保留“created_at >= 2026-04-24”并且seller_id或buyer_id在用户id数据范围的寄售商品,删除其余数据
|
||||
(当前库表字段为 `user_id` 表示卖家,实现时按 `user_id` 与日期条件过滤。)
|
||||
|
||||
- wa_selfbonus_log
|
||||
只保留 `user_id` 在用户id数据范围内的记录,删除其余数据
|
||||
|
||||
- wa_sharebonus_log
|
||||
只保留 `user_id` 在用户id数据范围内的记录,删除其余数据
|
||||
|
||||
- wa_coupon_log
|
||||
只保留 `user_id` 在用户id数据范围内的记录,删除其余数据
|
||||
|
||||
- wa_withdraw
|
||||
清空wa_withdraw表中数据
|
||||
|
||||
- eb_store_order
|
||||
清空eb_store_order表中数据
|
||||
|
||||
- eb_user_integral_record
|
||||
只保留用户在名单内的记录;表字段为 `uid`(与 `wa_users.id` / `eb_user.uid` 对应),实现按 `uid` 过滤。
|
||||
|
||||
## 执行脚本
|
||||
|
||||
- SQL:`docs/sql/com-sxsy80-data-cleanup.sql`
|
||||
- 本机 Homebrew `mysql` 9 客户端不支持 `mysql_native_password`,可用 `pip install pymysql` 后执行:
|
||||
|
||||
```bash
|
||||
export YTYP_DB_PASSWORD='(见上文 datasource.password)'
|
||||
python3 docs/sql/run_com_sxsy80_cleanup.py
|
||||
```
|
||||
|
||||
- 已于 **2026-04-26** 对远程库执行并成功 `COMMIT`(`wa_merchandise` 删除 2114 行,`wa_selfbonus_log` 1592,`wa_sharebonus_log` 1399,`wa_coupon_log` 171,`eb_user_integral_record` 1613,`eb_user` 80,`wa_users` 80;`wa_order` / `wa_withdraw` / `eb_store_order` 已 `TRUNCATE`)。
|
||||
|
||||
## 相关文件
|
||||
|
||||
- 源数据dump文件: 'integral-shop/db/ccd-yangtangyoupin_2026-04-26_10-25-01_mysql_data.sql'
|
||||
|
||||
50
docs/com-sxsy80.md
Normal file
50
docs/com-sxsy80.md
Normal file
@@ -0,0 +1,50 @@
|
||||
## 公司名称: 太原树英商贸, host ip: 106.14.132.80
|
||||
|
||||
---
|
||||
|
||||
### backend/crmeb-front模块变更
|
||||
|
||||
- 1. profile: sxsy80
|
||||
- 2. profile file: application-sxsy80.yml, mysql和redis主机ip修改
|
||||
- 3. **PDF合同模板文件路径**:pdf/sign_contract_sxsy80.pdf
|
||||
- 4. 用户PDF合同url地址前缀/落库域名:https://sxsy.cichude.com/
|
||||
- 5. imagePath: /www/wwwroot/sxsy.cichude.com/
|
||||
|
||||
### uniapp前端配置变更
|
||||
|
||||
- 1. 积分商城domain:https://sxsy-jf.cichude.com
|
||||
- 2. 抢购页面跳转地址:https://sxsy.cichude.com
|
||||
- 3. **PDF合同预览文件路径**: /static/sign_contract_sxsy80.pdf
|
||||
|
||||
|
||||
---
|
||||
|
||||
### backend/crmeb-admin模块变更
|
||||
|
||||
- 1. profile: sxsy80
|
||||
- 2. profile file: application-sxsy80.yml, mysql和redis主机ip修改,sync: source-id: shop_14, target-mer-id: 14
|
||||
|
||||
### 积分商城后台backend-adminend配置变更
|
||||
|
||||
- 1. backend-adminend/.env.development文件中VUE_APP_BASE_API改为https://sxsy-jf.cichude.com
|
||||
- 2. backend-adminend/.env.production文件中VUE_APP_BASE_API改为https://sxsy-jf.cichude.com
|
||||
|
||||
---
|
||||
|
||||
|
||||
### **修改任务**
|
||||
|
||||
- 新建分支sxsy80,合并czcf82分支的最新代码到该分支,并根据上述信息修改相关需要变更项,使符合该新公司项目环境
|
||||
|
||||
|
||||
## 相关文件
|
||||
|
||||
、、、启动积分商城api服务
|
||||
cd /www/wwwroot/javaapi
|
||||
nohup java -Xms128m -Xmx256m -jar miao-front-2.2.jar > front.log & tail -f front.log
|
||||
、、、
|
||||
|
||||
、、、启动积分商城后台api服务
|
||||
cd /www/wwwroot/javaapi
|
||||
nohup java -Xms128m -Xmx256m -jar miao-admin-2.2.jar > admin.log & tail -f admin.log
|
||||
、、、
|
||||
BIN
docs/sign_contract_sxsy80.docx
Normal file
BIN
docs/sign_contract_sxsy80.docx
Normal file
Binary file not shown.
BIN
docs/sign_contract_sxsy80.pdf
Normal file
BIN
docs/sign_contract_sxsy80.pdf
Normal file
Binary file not shown.
47
docs/sql/com-sxsy80-data-cleanup.sql
Normal file
47
docs/sql/com-sxsy80-data-cleanup.sql
Normal file
@@ -0,0 +1,47 @@
|
||||
-- 太原树英商贸 / yangtangyoupin 数据清理
|
||||
-- 依据: docs/com-sxsy80-data-imgration.md
|
||||
-- 执行前请备份数据库。建议在事务中先 SELECT 核对影响行数后再 COMMIT。
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- 订单类:整表清空
|
||||
TRUNCATE TABLE `wa_order`;
|
||||
TRUNCATE TABLE `wa_withdraw`;
|
||||
TRUNCATE TABLE `eb_store_order`;
|
||||
|
||||
-- 寄售商品:仅保留 created_at >= 2026-04-24 且卖家 user_id 在保留名单内
|
||||
DELETE FROM `wa_merchandise`
|
||||
WHERE NOT (
|
||||
`created_at` >= '2026-04-24 00:00:00'
|
||||
AND `user_id` IN (92566,92801,92839,93004,92637,92965,93093,93096,93116,92787,93121,93129,92884,93007,93020,93094,93099,93110,92638)
|
||||
);
|
||||
|
||||
-- 日志类:仅保留名单内 user_id
|
||||
DELETE FROM `wa_selfbonus_log`
|
||||
WHERE `user_id` NOT IN (92566,92801,92839,93004,92637,92965,93093,93096,93116,92787,93121,93129,92884,93007,93020,93094,93099,93110,92638);
|
||||
|
||||
DELETE FROM `wa_sharebonus_log`
|
||||
WHERE `user_id` NOT IN (92566,92801,92839,93004,92637,92965,93093,93096,93116,92787,93121,93129,92884,93007,93020,93094,93099,93110,92638);
|
||||
|
||||
DELETE FROM `wa_coupon_log`
|
||||
WHERE `user_id` NOT IN (92566,92801,92839,93004,92637,92965,93093,93096,93116,92787,93121,93129,92884,93007,93020,93094,93099,93110,92638);
|
||||
|
||||
-- 积分记录表实际字段为 uid(非 user_id)
|
||||
DELETE FROM `eb_user_integral_record`
|
||||
WHERE `uid` NOT IN (92566,92801,92839,93004,92637,92965,93093,93096,93116,92787,93121,93129,92884,93007,93020,93094,93099,93110,92638);
|
||||
|
||||
-- 商城用户:保留 uid 在名单内
|
||||
DELETE FROM `eb_user`
|
||||
WHERE `uid` NOT IN (92566,92801,92839,93004,92637,92965,93093,93096,93116,92787,93121,93129,92884,93007,93020,93094,93099,93110,92638);
|
||||
|
||||
-- WA 用户:保留 id 在名单内
|
||||
DELETE FROM `wa_users`
|
||||
WHERE `id` NOT IN (92566,92801,92839,93004,92637,92965,93093,93096,93116,92787,93121,93129,92884,93007,93020,93094,93099,93110,92638);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
COMMIT;
|
||||
88
docs/sql/run_com_sxsy80_cleanup.py
Normal file
88
docs/sql/run_com_sxsy80_cleanup.py
Normal file
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env python3
|
||||
"""执行 com-sxsy80-data-cleanup.sql。
|
||||
|
||||
需安装: pip install pymysql
|
||||
连接信息见 docs/com-sxsy80-data-imgration.md,通过环境变量传入,避免把密码写进仓库:
|
||||
|
||||
export YTYP_DB_HOST=106.14.132.80
|
||||
export YTYP_DB_USER=yangtangyoupin
|
||||
export YTYP_DB_PASSWORD='...'
|
||||
export YTYP_DB_NAME=yangtangyoupin
|
||||
python3 docs/sql/run_com_sxsy80_cleanup.py
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
import pymysql
|
||||
|
||||
ROOT = pathlib.Path(__file__).resolve().parents[2]
|
||||
SQL_FILE = ROOT / "docs" / "sql" / "com-sxsy80-data-cleanup.sql"
|
||||
|
||||
|
||||
def load_statements(path: pathlib.Path) -> list[str]:
|
||||
text = path.read_text(encoding="utf-8")
|
||||
stmts: list[str] = []
|
||||
buf: list[str] = []
|
||||
for line in text.splitlines():
|
||||
s = line.strip()
|
||||
if s.startswith("--") or not line.strip():
|
||||
continue
|
||||
buf.append(line)
|
||||
if ";" in line:
|
||||
chunk = "\n".join(buf).strip()
|
||||
if chunk:
|
||||
stmts.append(chunk)
|
||||
buf = []
|
||||
if buf:
|
||||
chunk = "\n".join(buf).strip()
|
||||
if chunk:
|
||||
stmts.append(chunk)
|
||||
return stmts
|
||||
|
||||
|
||||
def main() -> int:
|
||||
host = os.environ.get("YTYP_DB_HOST", "106.14.132.80")
|
||||
user = os.environ.get("YTYP_DB_USER", "yangtangyoupin")
|
||||
password = os.environ.get("YTYP_DB_PASSWORD")
|
||||
database = os.environ.get("YTYP_DB_NAME", "yangtangyoupin")
|
||||
if not password:
|
||||
print("请设置环境变量 YTYP_DB_PASSWORD(见脚本头部说明)", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
if not SQL_FILE.is_file():
|
||||
print("missing", SQL_FILE, file=sys.stderr)
|
||||
return 1
|
||||
statements = load_statements(SQL_FILE)
|
||||
conn = pymysql.connect(
|
||||
host=host,
|
||||
user=user,
|
||||
password=password,
|
||||
database=database,
|
||||
charset="utf8mb4",
|
||||
autocommit=False,
|
||||
)
|
||||
try:
|
||||
with conn.cursor() as cur:
|
||||
for i, sql in enumerate(statements, 1):
|
||||
cur.execute(sql)
|
||||
head = sql.split()[0].upper()
|
||||
if head == "DELETE" and cur.rowcount >= 0:
|
||||
print(f"[{i}] DELETE … rowcount={cur.rowcount}")
|
||||
else:
|
||||
print(f"[{i}] ok")
|
||||
conn.commit()
|
||||
print("COMMIT ok")
|
||||
except Exception as e:
|
||||
conn.rollback()
|
||||
print("ROLLBACK:", e, file=sys.stderr)
|
||||
raise
|
||||
finally:
|
||||
conn.close()
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Binary file not shown.
Reference in New Issue
Block a user