diff --git a/backend/crmeb-front/src/main/resources/pdf/sign_contract_sxsy80.pdf b/backend/crmeb-front/src/main/resources/pdf/sign_contract_sxsy80.pdf index 8eec163..e25df91 100644 Binary files a/backend/crmeb-front/src/main/resources/pdf/sign_contract_sxsy80.pdf and b/backend/crmeb-front/src/main/resources/pdf/sign_contract_sxsy80.pdf differ diff --git a/com-xsj33-data-imgration.md b/com-xsj33-data-imgration.md new file mode 100644 index 0000000..7f660a5 --- /dev/null +++ b/com-xsj33-data-imgration.md @@ -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` + + +## 相关文件 + + diff --git a/docs/com-sxsy80-data-imgration.md b/docs/com-sxsy80-data-imgration.md new file mode 100644 index 0000000..e41cffe --- /dev/null +++ b/docs/com-sxsy80-data-imgration.md @@ -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' + diff --git a/docs/com-sxsy80.md b/docs/com-sxsy80.md new file mode 100644 index 0000000..88ae862 --- /dev/null +++ b/docs/com-sxsy80.md @@ -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 +、、、 \ No newline at end of file diff --git a/docs/sign_contract_sxsy80.docx b/docs/sign_contract_sxsy80.docx new file mode 100644 index 0000000..3efcbd7 Binary files /dev/null and b/docs/sign_contract_sxsy80.docx differ diff --git a/docs/sign_contract_sxsy80.pdf b/docs/sign_contract_sxsy80.pdf new file mode 100644 index 0000000..e25df91 Binary files /dev/null and b/docs/sign_contract_sxsy80.pdf differ diff --git a/docs/sql/com-sxsy80-data-cleanup.sql b/docs/sql/com-sxsy80-data-cleanup.sql new file mode 100644 index 0000000..b0b216c --- /dev/null +++ b/docs/sql/com-sxsy80-data-cleanup.sql @@ -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; diff --git a/docs/sql/run_com_sxsy80_cleanup.py b/docs/sql/run_com_sxsy80_cleanup.py new file mode 100644 index 0000000..5c80d91 --- /dev/null +++ b/docs/sql/run_com_sxsy80_cleanup.py @@ -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()) diff --git a/single_uniapp22miao/static/sign_contract_sxsy80.pdf b/single_uniapp22miao/static/sign_contract_sxsy80.pdf index 8eec163..e25df91 100644 Binary files a/single_uniapp22miao/static/sign_contract_sxsy80.pdf and b/single_uniapp22miao/static/sign_contract_sxsy80.pdf differ