From 6b940e424cf5706c79fd0671a11c1ddd9641e064 Mon Sep 17 00:00:00 2001 From: danaisuiyuan Date: Thu, 4 Jun 2026 09:01:52 +0800 Subject: [PATCH] chore: update byhlc112 deployment domains --- .../front/controller/WaUserController.java | 2 +- .../main/resources/application-byhlc112.yml | 4 +- deploy/docker/integral-resell/h5.Dockerfile | 34 ++++----- .../docker/single-shop/application-docker.yml | 2 +- .../step1-integral-byhlc112/.env.example | 12 ++-- .../docker/step1-integral-byhlc112/README.md | 28 ++++---- .../docker-compose.yml | 2 +- .../step1-integral-byhlc112/nginx-edge.conf | 26 +++---- .../step2-single-shop-byhlc112/.env.example | 10 +-- .../step2-single-shop-byhlc112/README.md | 38 +++++----- deploy/ssl/h5y2c.com_cert.zip | Bin 0 -> 35567 bytes deploy/ssl/lehoo6.com_cert.zip | Bin 0 -> 35496 bytes docs/com-byhlc112.md | 14 ++-- .../build_process_excel.py | 68 ++++++++++++++++++ single_uniapp22miao/config/app.js | 4 +- single_uniapp22miao/pages/integral/points.vue | 4 +- .../pages/sub-pages/webview/sign.vue | 2 +- 17 files changed, 154 insertions(+), 96 deletions(-) create mode 100644 deploy/ssl/h5y2c.com_cert.zip create mode 100644 deploy/ssl/lehoo6.com_cert.zip create mode 100644 outputs/screenshot_process_table/build_process_excel.py diff --git a/backend/crmeb-front/src/main/java/com/zbkj/front/controller/WaUserController.java b/backend/crmeb-front/src/main/java/com/zbkj/front/controller/WaUserController.java index 53624a2..3dcaf72 100644 --- a/backend/crmeb-front/src/main/java/com/zbkj/front/controller/WaUserController.java +++ b/backend/crmeb-front/src/main/java/com/zbkj/front/controller/WaUserController.java @@ -70,7 +70,7 @@ public class WaUserController { private CrmebConfig crmebConfig; private String buildPublicFileUrl(String relativeUrl) { - String domain = StringUtils.defaultString(crmebConfig.getDomain(), "https://lehoo6.com").trim(); + String domain = StringUtils.defaultString(crmebConfig.getDomain(), "https://h5y2c.com").trim(); if (!StringUtils.startsWithAny(domain, "http://", "https://")) { domain = "https://" + domain; } diff --git a/backend/crmeb-front/src/main/resources/application-byhlc112.yml b/backend/crmeb-front/src/main/resources/application-byhlc112.yml index abb5706..ca1f566 100644 --- a/backend/crmeb-front/src/main/resources/application-byhlc112.yml +++ b/backend/crmeb-front/src/main/resources/application-byhlc112.yml @@ -1,6 +1,6 @@ crmeb: - imagePath: /www/wwwroot/lehoo6.com/ # 服务器图片路径配置 斜杠结尾 - domain: lehoo6.com # 当前项目域名,合同/PDF 等公开地址拼接使用 + imagePath: /www/wwwroot/h5y2c.com/ # 服务器图片路径配置 斜杠结尾 + domain: h5y2c.com # 当前项目域名,合同/PDF 等公开地址拼接使用 asyncConfig: true #是否同步config表数据到redis server: diff --git a/deploy/docker/integral-resell/h5.Dockerfile b/deploy/docker/integral-resell/h5.Dockerfile index fc846ec..e67541c 100644 --- a/deploy/docker/integral-resell/h5.Dockerfile +++ b/deploy/docker/integral-resell/h5.Dockerfile @@ -62,32 +62,22 @@ set -eu CONFIG_FILE=/usr/share/nginx/html/static/configs.js -[ -f "$CONFIG_FILE" ] || exit 0 - -escape_sed() { - printf '%s' "$1" | sed 's/[\/&]/\\&/g' +js_escape() { + printf '%s' "$1" | awk '{ gsub(/\\/, "\\\\"); gsub("\047", "\\\047"); printf "%s", $0 }' } -replace_js_string() { - key="$1" - value="$2" - [ -n "$value" ] || return 0 - sed -i -E "s#(${key}:[[:space:]]*)'[^']*'#\1'$(escape_sed "$value")'#" "$CONFIG_FILE" -} +mkdir -p "$(dirname "$CONFIG_FILE")" -replace_js_number() { - key="$1" - value="$2" - [ -n "$value" ] || return 0 - sed -i -E "s#(${key}:[[:space:]]*)[0-9]+#\1${value}#" "$CONFIG_FILE" +cat > "$CONFIG_FILE" < 这套目录结构与 `deploy/docker/step1-integral` 保持一致,按 `czleilei240` 已验证方案复制而来。 > 当前默认域名假设为: -> - 寄卖商城 H5:`lehoo6.com` -> - 寄卖商城后台/API:`admin.lehoo6.com` +> - 寄卖商城 H5:`h5y2c.com` +> - 寄卖商城后台/API:`admin.h5y2c.com` --- @@ -24,11 +24,11 @@ vim .env vim houtai.env # 2. 首次部署:在服务器上确保宿主机目录存在 -mkdir -p /www/wwwroot/lehoo6.com -mkdir -p /www/wwwroot/admin.lehoo6.com/public/upload +mkdir -p /www/wwwroot/h5y2c.com +mkdir -p /www/wwwroot/admin.h5y2c.com/public/upload # 3. 将 H5 静态文件同步到宿主机目录(首次 / 每次前端更新后) -rsync -av integral-resell/h5/ /www/wwwroot/lehoo6.com/ +rsync -av integral-resell/h5/ /www/wwwroot/h5y2c.com/ # 4. 构建并启动,edge-nginx 会在宿主机监听 80/443 docker compose --env-file .env up -d --build @@ -44,15 +44,15 @@ docker compose --env-file .env logs -f integral-houtai | 宿主机路径 | 容器路径 | 用途 | |---|---|---| -| `/www/wwwroot/lehoo6.com` | `/usr/share/nginx/html` | H5 静态文件,手动改 JS 即时生效 | -| `/www/wwwroot/admin.lehoo6.com` | `/app` | webman 后台完整应用目录 | +| `/www/wwwroot/h5y2c.com` | `/usr/share/nginx/html` | H5 静态文件,手动改 JS 即时生效 | +| `/www/wwwroot/admin.h5y2c.com` | `/app` | webman 后台完整应用目录 | | `./houtai.env` | `/app/.env` | 运行时配置,只读挂入 | | `integral-runtime`(named vol)| `/app/runtime` | webman PID、session 等运行时数据 | | 域名 | 用途 | Docker 容器端口 | 宿主机端口 | Docker 入口 | |---|---|---|---|---| -| `lehoo6.com` | 寄卖商城 H5 | integral-h5:80 | **80/443**,直连测试 **18080** | `edge-nginx` | -| `admin.lehoo6.com` | 寄卖商城 API / 后台 | integral-houtai:**8785** | **80/443**,直连测试 **18085** | `edge-nginx` | +| `h5y2c.com` | 寄卖商城 H5 | integral-h5:80 | **80/443**,直连测试 **18080** | `edge-nginx` | +| `admin.h5y2c.com` | 寄卖商城 API / 后台 | integral-houtai:**8785** | **80/443**,直连测试 **18085** | `edge-nginx` | --- @@ -60,8 +60,8 @@ docker compose --env-file .env logs -f integral-houtai | 地址 | 预期 | |------|------| -| `https://lehoo6.com/` | 寄卖商城 H5 首页 | -| `https://admin.lehoo6.com/api/...` | 寄卖商城 API | +| `https://h5y2c.com/` | 寄卖商城 H5 首页 | +| `https://admin.h5y2c.com/api/...` | 寄卖商城 API | | `http://39.97.236.112:18080/` | H5 直连测试 | | `ss -lntp \| grep -E ':(80\|443)'` | 看到 Docker Nginx 监听宿主机 80/443 | @@ -85,8 +85,8 @@ docker compose --env-file .env down -v | 位置 | 值 | |---|---| -| `.env` INTEGRAL_API_PUBLIC_URL | `https://admin.lehoo6.com` | -| `.env` INTEGRAL_H5_PUBLIC_URL | `https://lehoo6.com/` | +| `.env` INTEGRAL_API_PUBLIC_URL | `https://admin.h5y2c.com` | +| `.env` INTEGRAL_H5_PUBLIC_URL | `https://h5y2c.com/` | | `.env` INTEGRAL_APP_STR | `ZFyTNQTWEkCBbyhlc1120529` | | `houtai.env` APP_SECRET | 同上 | | `.env` INTEGRAL_SN_ID | `17533260260529` | @@ -96,4 +96,4 @@ docker compose --env-file .env down -v ## 待确认项 - 短信当前使用阿里云签名 `宝应宏煜春商贸`、模板 `SMS_334545236`,如更换短信账号需同步更新 `houtai.env` -- 如果寄卖后台域名不是 `admin.lehoo6.com`,请统一替换 `.env.example`、README 和入口 Nginx 配置 +- 如果寄卖后台域名不是 `admin.h5y2c.com`,请统一替换 `.env.example`、README 和入口 Nginx 配置 diff --git a/deploy/docker/step1-integral-byhlc112/docker-compose.yml b/deploy/docker/step1-integral-byhlc112/docker-compose.yml index bf2cf57..dc2ef6e 100644 --- a/deploy/docker/step1-integral-byhlc112/docker-compose.yml +++ b/deploy/docker/step1-integral-byhlc112/docker-compose.yml @@ -96,7 +96,7 @@ services: - "443:443" volumes: - ./nginx-edge.conf:/etc/nginx/conf.d/default.conf:ro - - ../ssl-cert/lehoo6.com_cert/nginx:/etc/nginx/ssl/lehoo6.com_cert:ro + - ../ssl-cert/h5y2c.com_cert/nginx:/etc/nginx/ssl/h5y2c.com_cert:ro depends_on: - integral-h5 - integral-houtai diff --git a/deploy/docker/step1-integral-byhlc112/nginx-edge.conf b/deploy/docker/step1-integral-byhlc112/nginx-edge.conf index d08d3fe..686c10a 100644 --- a/deploy/docker/step1-integral-byhlc112/nginx-edge.conf +++ b/deploy/docker/step1-integral-byhlc112/nginx-edge.conf @@ -1,6 +1,6 @@ server { listen 80; - server_name lehoo6.com admin.lehoo6.com jf.lehoo6.com jfadmin.lehoo6.com; + server_name h5y2c.com admin.h5y2c.com jf.h5y2c.com jfadmin.h5y2c.com; return 301 https://$host$request_uri; } @@ -8,10 +8,10 @@ server { server { listen 443 ssl; http2 on; - server_name jf.lehoo6.com; + server_name jf.h5y2c.com; - ssl_certificate /etc/nginx/ssl/lehoo6.com_cert/lehoo6.com.pem; - ssl_certificate_key /etc/nginx/ssl/lehoo6.com_cert/lehoo6.com.key; + ssl_certificate /etc/nginx/ssl/h5y2c.com_cert/h5y2c.com.pem; + ssl_certificate_key /etc/nginx/ssl/h5y2c.com_cert/h5y2c.com.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_session_cache shared:SSL:10m; @@ -32,10 +32,10 @@ server { server { listen 443 ssl; http2 on; - server_name jfadmin.lehoo6.com; + server_name jfadmin.h5y2c.com; - ssl_certificate /etc/nginx/ssl/lehoo6.com_cert/lehoo6.com.pem; - ssl_certificate_key /etc/nginx/ssl/lehoo6.com_cert/lehoo6.com.key; + ssl_certificate /etc/nginx/ssl/h5y2c.com_cert/h5y2c.com.pem; + ssl_certificate_key /etc/nginx/ssl/h5y2c.com_cert/h5y2c.com.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_session_cache shared:SSL:10m; @@ -56,10 +56,10 @@ server { server { listen 443 ssl; http2 on; - server_name lehoo6.com; + server_name h5y2c.com; - ssl_certificate /etc/nginx/ssl/lehoo6.com_cert/lehoo6.com.pem; - ssl_certificate_key /etc/nginx/ssl/lehoo6.com_cert/lehoo6.com.key; + ssl_certificate /etc/nginx/ssl/h5y2c.com_cert/h5y2c.com.pem; + ssl_certificate_key /etc/nginx/ssl/h5y2c.com_cert/h5y2c.com.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_session_cache shared:SSL:10m; @@ -80,10 +80,10 @@ server { server { listen 443 ssl; http2 on; - server_name admin.lehoo6.com; + server_name admin.h5y2c.com; - ssl_certificate /etc/nginx/ssl/lehoo6.com_cert/lehoo6.com.pem; - ssl_certificate_key /etc/nginx/ssl/lehoo6.com_cert/lehoo6.com.key; + ssl_certificate /etc/nginx/ssl/h5y2c.com_cert/h5y2c.com.pem; + ssl_certificate_key /etc/nginx/ssl/h5y2c.com_cert/h5y2c.com.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_session_cache shared:SSL:10m; diff --git a/deploy/docker/step2-single-shop-byhlc112/.env.example b/deploy/docker/step2-single-shop-byhlc112/.env.example index 887c9e4..2f9a92e 100644 --- a/deploy/docker/step2-single-shop-byhlc112/.env.example +++ b/deploy/docker/step2-single-shop-byhlc112/.env.example @@ -28,13 +28,13 @@ SINGLE_FRONT_LOG_DIR=/www/wwwroot/javaapi/logs/front SINGLE_ADMIN_LOG_DIR=/www/wwwroot/javaapi/logs/admin # ---------- 图片/PDF 目录(与步骤一 H5 Nginx 共享宿主机路径) ---------- -CRMEB_IMAGE_DIR=/www/wwwroot/lehoo6.com +CRMEB_IMAGE_DIR=/www/wwwroot/h5y2c.com # ---------- 前端静态目录(bind-mount,rsync 更新后立即生效) ---------- -# 积分商城 H5(uni-app SPA),对应域名 jf.lehoo6.com -SINGLE_H5_DIR=/www/wwwroot/jf.lehoo6.com -# 积分商城管理后台(Vue SPA),对应域名 jfadmin.lehoo6.com -SINGLE_ADMIN_WEB_DIR=/www/wwwroot/jfadmin.lehoo6.com +# 积分商城 H5(uni-app SPA),对应域名 jf.h5y2c.com +SINGLE_H5_DIR=/www/wwwroot/jf.h5y2c.com +# 积分商城管理后台(Vue SPA),对应域名 jfadmin.h5y2c.com +SINGLE_ADMIN_WEB_DIR=/www/wwwroot/jfadmin.h5y2c.com # ---------- 宿主机暴露端口(供宝塔 Nginx 反代) ---------- SINGLE_ADMIN_PORT=18081 diff --git a/deploy/docker/step2-single-shop-byhlc112/README.md b/deploy/docker/step2-single-shop-byhlc112/README.md index 80d5602..33b6ac0 100644 --- a/deploy/docker/step2-single-shop-byhlc112/README.md +++ b/deploy/docker/step2-single-shop-byhlc112/README.md @@ -8,8 +8,8 @@ > 这套方案参考 `deploy/docker/step2-single-shop`,按 `czleilei240` 已验证结构复制。 > 当前默认域名假设为: -> - 积分商城 H5:`jf.lehoo6.com` -> - 积分商城管理后台:`jfadmin.lehoo6.com` +> - 积分商城 H5:`jf.h5y2c.com` +> - 积分商城管理后台:`jfadmin.h5y2c.com` --- @@ -28,21 +28,21 @@ scp single-shop-22/backend/crmeb-admin/target/miao-admin-2.2.jar root@39.97.236 ### 2. 前端静态文件 ```bash -mkdir -p /www/wwwroot/jf.lehoo6.com +mkdir -p /www/wwwroot/jf.h5y2c.com rsync -a --delete single-shop-22/single_uniapp22miao/unpackage/dist/build/web/ \ - root@39.97.236.112:/www/wwwroot/jf.lehoo6.com/ -chmod -R 755 /www/wwwroot/jf.lehoo6.com/ + root@39.97.236.112:/www/wwwroot/jf.h5y2c.com/ +chmod -R 755 /www/wwwroot/jf.h5y2c.com/ -mkdir -p /www/wwwroot/jfadmin.lehoo6.com +mkdir -p /www/wwwroot/jfadmin.h5y2c.com rsync -a --delete single-shop-22/backend-adminend/dist/ \ - root@39.97.236.112:/www/wwwroot/jfadmin.lehoo6.com/ -chmod -R 755 /www/wwwroot/jfadmin.lehoo6.com/ + root@39.97.236.112:/www/wwwroot/jfadmin.h5y2c.com/ +chmod -R 755 /www/wwwroot/jfadmin.h5y2c.com/ ``` ### 3. 图片/PDF 目录 ```bash -mkdir -p /www/wwwroot/lehoo6.com +mkdir -p /www/wwwroot/h5y2c.com ``` --- @@ -69,12 +69,12 @@ docker compose --env-file .env logs -f single-admin-api | 域名 | 用途 | 宿主机端口 | |---|---|---| -| `jf.lehoo6.com` | 积分商城 H5(uni-app) | **18082** | -| `jfadmin.lehoo6.com` | 积分商城管理后台(Vue) | **18081** | +| `jf.h5y2c.com` | 积分商城 H5(uni-app) | **18082** | +| `jfadmin.h5y2c.com` | 积分商城管理后台(Vue) | **18081** | > Spring Boot API 端口(30032 / 30033)仅容器内监听,不对外暴露。 > 宝塔 Nginx 通过域名反代到 `127.0.0.1:18081 / 18082`,再由容器内 Nginx 转发到 API。 -> 图片/PDF 实际落盘路径为宿主机 `/www/wwwroot/lehoo6.com/crmebimage/public/...`。 +> 图片/PDF 实际落盘路径为宿主机 `/www/wwwroot/h5y2c.com/crmebimage/public/...`。 --- @@ -82,8 +82,8 @@ docker compose --env-file .env logs -f single-admin-api | 地址 | 预期 | |------|------| -| `https://jf.lehoo6.com/` | 积分商城 H5 | -| `https://jfadmin.lehoo6.com/` | 积分商城管理后台 | +| `https://jf.h5y2c.com/` | 积分商城 H5 | +| `https://jfadmin.h5y2c.com/` | 积分商城管理后台 | | `http://39.97.236.112:18082/` | H5 直连测试 | | `http://39.97.236.112:18081/` | 管理后台直连测试 | @@ -97,9 +97,9 @@ docker compose --env-file .env logs -f single-admin-api | `/www/wwwroot/javaapi/miao-admin-2.2.jar` | `/app/app.jar` | 管理端 API JAR | | `/www/wwwroot/javaapi/logs/front/` | `/app/log` | 用户端 API 日志 | | `/www/wwwroot/javaapi/logs/admin/` | `/app/log` | 管理端 API 日志 | -| `/www/wwwroot/lehoo6.com/` | `/usr/local/crmeb/` | 图片/PDF 写入目录 | -| `/www/wwwroot/jf.lehoo6.com/` | `/usr/share/nginx/html` | H5 静态文件 | -| `/www/wwwroot/jfadmin.lehoo6.com/` | `/usr/share/nginx/html` | 管理后台静态文件 | +| `/www/wwwroot/h5y2c.com/` | `/usr/local/crmeb/` | 图片/PDF 写入目录 | +| `/www/wwwroot/jf.h5y2c.com/` | `/usr/share/nginx/html` | H5 静态文件 | +| `/www/wwwroot/jfadmin.h5y2c.com/` | `/usr/share/nginx/html` | 管理后台静态文件 | | `../single-shop/application-docker.yml` | `/config/application-docker.yml` | Spring Boot 配置 | --- @@ -110,7 +110,7 @@ docker compose --env-file .env logs -f single-admin-api |---|---| | RDS Host | `rm-bp1a178eq62lxba9xbo.mysql.rds.aliyuncs.com` | | DB / User | `byhlc112` / `yangtangyoupin` | -| imagePath 宿主机目录 | `/www/wwwroot/lehoo6.com/` | +| imagePath 宿主机目录 | `/www/wwwroot/h5y2c.com/` | | SYNC_SOURCE_ID | `shop_16` | | SYNC_TARGET_MER_ID | `16` | | Spring profile | `docker`(通过 `application-docker.yml` 注入) | @@ -119,5 +119,5 @@ docker compose --env-file .env logs -f single-admin-api ## 待确认项 -- 如果积分管理后台域名不是 `jfadmin.lehoo6.com`,需要同步替换 `.env.example`、README 和宝塔 Nginx 配置 +- 如果积分管理后台域名不是 `jfadmin.h5y2c.com`,需要同步替换 `.env.example`、README 和宝塔 Nginx 配置 - Redis 仍按 Docker 内置实例方案生成;若你想接外部 Redis,可以再帮你补一版外部 Redis 配置 diff --git a/deploy/ssl/h5y2c.com_cert.zip b/deploy/ssl/h5y2c.com_cert.zip new file mode 100644 index 0000000000000000000000000000000000000000..c5096fc8ed07d4cd2285ee2cb612519bcb21dce9 GIT binary patch literal 35567 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

_}@YtlZfVl+*6ARW@F*HST%vC2VMgLGg6q z!a`Bd!dm4i%hwjEMb_cafgu9%EW~sg^|LY%Pg&|*ZCCdD3&tm@wg&+$U59Y{I54#^ zDSMTQ$J8OZ6wIxhSBW)&bqpS4hhLEHlKdBwud@8{PY65^E<>VZBsTeSCZr@ubj!FZ zF{1~{ZY!9b9>7lQJU3#;?E*{31wt-psfH@GLV0GkS8Knr4^tkzdr)m(PY=C)Oi;|3 zqgXHKVx>1aRG>f@*2hn^e-@D_cPpaYc>*jJlXBcK_KF!3g?$6i<>qu*&@p?_g9MvO zbJP-w@L^fPpUt&68~kop_6Da>&@3^WPdElgBCty4qX5#FxFLE9&Ys@Bq?Ba(bFM#L z5HJPX^Ko`Mm4D|7HSH&%t1-;gL3C<1&GZOs%Tv;Izr8qphdUUXxT+#KCBu8wgs!4_ ziB=&^^FNAyY0>3vjN)qZ0}U=MsvSY^oWDyk>E!(>mIR9#3r1it4l1}Lq2 z#s2*~e8*Hj$+!OmfjI?Egy3C;vifY}}A4eY{(_D;zMptg}>i%bfUp6cxmQ5wI2 z5Giz(T42C1yv!W1xk2dd;^S4N9bFWEkz^2KulK62@rP?L-o)=SbJ~bRG1fZ6V?@Wn2LZS9WriIsFhM|^{)7{LQnX&g{#tNE;XI9 zp3K4?o0*pjCcwB(>s|C-a=TCX^P2J@6}w$N0%7HBB2zw*xK!{1@rhtlbFt*;)|CAA zx%a$gu5rIS9>;{+K|{{N zROW(=$GS4wO}*PkQ}Ds(Sn%v;Xnr8Wsl4i2acsz!L^hRSC!a3m{4A4sCv8GjMRbc@ zGLQG@(n6GCNDb9dS!l%0@R|Y;bZ#h^D1VML12*euUC3pr>OLJ%;4xH@kha<&!w2eL zl<4zmkVXCIOEr4>(W_aj38dd*3Z|G5i>ktt3A5Oj)Jv#oun_H=-31i;-*3xLJXwy| z#>7kQVIu8d@kE@pu1qE4JyzDP>ZusavFq7E;DI5g-z&TXGLzT~?|5cLE$oS0`X%a& z)rCWpcOImQ8Z3bo((DXtxjL5B-(0mSh2N%+UEEbjn=1VFGDrffegI8g!4ZSx1+Ovs zyxXPU(I!cB>2{HE?XOsSHNBHPo`exuz)x5E35F~q5l)$m(*A3~0h0f8A5@C&#$qWTR5_+zKX?z$s^;Ae+@ zhUZ!8KQl^z1_^?2rzjv!HSBY|2IpyY(x(l4rvNNI=x}xqg?Y8@TUI_dV!>XrbZc|E zce`I7-@;J4GM<2EMyd(^qG`6B&+$f0i_xQ@smVjIdElt&xK?K^p!am2T6Q;hs}Ux! zMiJIjGgZ4gh^a55V(~L{JMu4{V7^5wDh`62YqQi4en<(#J2&(c0s|e*m(|xgoLpI# zZ}Etnl=#)zR3yCcuKt7B)SN-^=6f2I++2Q?z<|{>@kd1|J=NF! zFi^s~4VI1PRd7^sVzwRka;FGFzR#*15PKf!HL@+eRKmQ^l#z9pa!>z$lc=EL^OR@( z9+F!)mmeec=RAtqIlU?nH*@-(g+9#D=sHo72cQ-Ce7~+@Lf9yv8Iew|n|(4VhmUsl z0zHeokS{K^O^ndxBXcWiWHK7%OmwJ9oCNT&;Xt$5-pObvXEdbR;bzxBnMvE(UBw|z zR_FaIRj^doO4=Hin`+*rmzgADqfGHs)IXOodOm_l!*K!oUW*wsZ}=M-SUVg_3v84w zP6$>RrcEwjc0?Jd__HPg5bL>+3w!q_JH_ZdvIv?oJ_;hctK_&i36%Mws9B|ILB@|LW#rv=Oeq%7K_iWFw0ESUZPMa_ zmy6hwA%h7VJ4a%cXD^Y>HvQa{c8RZHvelh z2b{D2!-n$zxA?!8MoIsx^nVo6|6TeQMe|Py;9sjQEBpsR;6Ka%$?*JD&T0SO<$u4i z{=V=3#P$4DZT-9YKQTXlU;jVd&3_?Gg#9nVzi$Ej4;uvp`}-IG0Rln~|MTs?0MbpE ARR910 literal 0 HcmV?d00001 diff --git a/deploy/ssl/lehoo6.com_cert.zip b/deploy/ssl/lehoo6.com_cert.zip new file mode 100644 index 0000000000000000000000000000000000000000..ebc511ae3c90d43472162131673ad7724300312c GIT binary patch literal 35496 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

RX2&r`q>0=J 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 Sg8hAsfdByw{eBDx=>GtG=*xHj literal 0 HcmV?d00001 diff --git a/docs/com-byhlc112.md b/docs/com-byhlc112.md index 7b59111..9b47f35 100644 --- a/docs/com-byhlc112.md +++ b/docs/com-byhlc112.md @@ -20,13 +20,13 @@ - 1. profile: byhlc112 - 2. profile file: application-byhlc112.yml, mysql连接信息修改,redis主机ip修改。 - 3. **PDF合同模板文件路径**:pdf/sign_contract_byhlc112.pdf -- 4. 用户PDF合同url地址前缀/落库域名:https://lehoo6.com/ -- 5. imagePath: /www/wwwroot/lehoo6.com/ +- 4. 用户PDF合同url地址前缀/落库域名:https://h5y2c.com/ +- 5. imagePath: /www/wwwroot/h5y2c.com/ ### uniapp前端配置变更 -- 1. 积分商城domain:https://jf.lehoo6.com -- 2. 抢购页面跳转地址:https://lehoo6.com +- 1. 积分商城domain:https://jf.h5y2c.com +- 2. 抢购页面跳转地址:https://h5y2c.com - 3. **PDF合同预览文件路径**: /static/sign_contract_byhlc112.pdf @@ -39,8 +39,8 @@ ### 积分商城后台backend-adminend配置变更 -- 1. backend-adminend/.env.development文件中VUE_APP_BASE_API改为https://jf.lehoo6.com -- 2. backend-adminend/.env.production文件中VUE_APP_BASE_API改为https://jf.lehoo6.com +- 1. backend-adminend/.env.development文件中VUE_APP_BASE_API改为https://jf.h5y2c.com +- 2. backend-adminend/.env.production文件中VUE_APP_BASE_API改为https://jf.h5y2c.com --- @@ -56,4 +56,4 @@ nohup java -Xms128m -Xmx256m -jar miao-front-2.2.jar > front.log & tail -f front 、、、启动积分商城后台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/outputs/screenshot_process_table/build_process_excel.py b/outputs/screenshot_process_table/build_process_excel.py new file mode 100644 index 0000000..ccffba1 --- /dev/null +++ b/outputs/screenshot_process_table/build_process_excel.py @@ -0,0 +1,68 @@ +from openpyxl import Workbook, load_workbook +from openpyxl.styles import Alignment, Border, Font, PatternFill, Side +from openpyxl.utils import get_column_letter + + +OUTPUT = "outputs/screenshot_process_table/小程序上线流程表.xlsx" + +headers = ["阶段", "任务", "产出物", "负责人", "建议时长"] +rows = [ + ["需求与原型", "需求澄清、功能清单、原型评审", "PRD、原型图", "产品", "2~3天"], + ["UI设计", "界面设计、切图标注", "设计稿、切图", "UI", "3~4天"], + ["开发", "前端+后端联调、自测", "代码包", "前端/后端", "6~8天"], + ["测试与修复", "功能测试、兼容性、回归", "测试报告", "测试", "3~4天"], + ["小程序提审", "提交代码、填写审核信息", "审核中", "产品/运营", "1~7天(官方不等)"], + ["发布上线", "审核通过后全量/灰度发布", "线上版本", "产品/运营", "1天"], +] + +wb = Workbook() +ws = wb.active +ws.title = "流程表" + +ws.append(headers) +for row in rows: + ws.append(row) + +header_fill = PatternFill("solid", fgColor="F3F6FA") +grid = Side(style="thin", color="D9DEE7") +border = Border(bottom=grid) + +for cell in ws[1]: + cell.font = Font(name="Arial", bold=True, size=12, color="111827") + cell.fill = header_fill + cell.alignment = Alignment(horizontal="left", vertical="center") + cell.border = border + +for row in ws.iter_rows(min_row=2, max_row=ws.max_row): + for cell in row: + cell.font = Font(name="Arial", size=11, color="111827") + cell.alignment = Alignment(horizontal="left", vertical="center", wrap_text=True) + cell.border = border + +widths = { + "A": 16, + "B": 34, + "C": 22, + "D": 16, + "E": 22, +} + +for col, width in widths.items(): + ws.column_dimensions[col].width = width + +for row_idx in range(1, ws.max_row + 1): + ws.row_dimensions[row_idx].height = 28 + +ws.freeze_panes = "A2" +ws.auto_filter.ref = f"A1:{get_column_letter(ws.max_column)}{ws.max_row}" + +wb.save(OUTPUT) + +check = load_workbook(OUTPUT) +sheet = check["流程表"] +assert sheet.max_row == 7 +assert sheet.max_column == 5 +assert sheet["A2"].value == "需求与原型" +assert sheet["E6"].value == "1~7天(官方不等)" + +print(OUTPUT) diff --git a/single_uniapp22miao/config/app.js b/single_uniapp22miao/config/app.js index c2a690b..d09ed12 100644 --- a/single_uniapp22miao/config/app.js +++ b/single_uniapp22miao/config/app.js @@ -7,7 +7,7 @@ // let domain = 'https://jf.wenjinhui.com' // let domain = 'https://jjy-jf.fwxgpt.com' // byhlc112 项目 -let domain = 'https://jf.lehoo6.com' +let domain = 'https://jf.h5y2c.com' // let domain = 'https://jf.jinyawen.com' // let domain = 'https://jf.hapengran.com' // let domain = 'https://jjy-jf.uj345.com' @@ -19,7 +19,7 @@ module.exports = { // HTTP_REQUEST_URL:'', HTTP_REQUEST_URL: domain, // H5商城地址 - HTTP_H5_URL: 'https://jf.lehoo6.com', + HTTP_H5_URL: 'https://jf.h5y2c.com', // #endif // #ifdef H5 HTTP_REQUEST_URL:domain, diff --git a/single_uniapp22miao/pages/integral/points.vue b/single_uniapp22miao/pages/integral/points.vue index 987c4d7..5ce9d2a 100644 --- a/single_uniapp22miao/pages/integral/points.vue +++ b/single_uniapp22miao/pages/integral/points.vue @@ -343,12 +343,12 @@ export default { // window.location.href = 'https://shop.wenjinhui.com/?#/pages/personal/index' //window.location.href = 'https://anyue.szxingming.com/?#/pages/personal/index' // window.location.href = 'https://xiashengjun.com/?#/pages/personal/index' - window.location.href = 'https://lehoo6.com/?#/pages/personal/index' + window.location.href = 'https://h5y2c.com/?#/pages/personal/index' // window.location.href = 'http://shop.bosenyuan.com/?#/pages/personal/index' // #endif // #ifndef H5 uni.navigateTo({ - url: '/pages/web-view/index?url=' + encodeURIComponent('https://lehoo6.com/?#/pages/personal/index') + url: '/pages/web-view/index?url=' + encodeURIComponent('https://h5y2c.com/?#/pages/personal/index') }) // #endif }, diff --git a/single_uniapp22miao/pages/sub-pages/webview/sign.vue b/single_uniapp22miao/pages/sub-pages/webview/sign.vue index 51af743..4c03543 100644 --- a/single_uniapp22miao/pages/sub-pages/webview/sign.vue +++ b/single_uniapp22miao/pages/sub-pages/webview/sign.vue @@ -364,7 +364,7 @@ export default { // window.location.href = 'https://shop.wenjinhui.com/?#/pages/rushing/index' + (this.userId ? ('?user_id=' + this.userId) : '') // window.location.href = 'https://anyue.szxingming.com/?#/pages/rushing/index' + (this.userId ? ('?user_id=' + this.userId) : '') // window.location.href = 'https://xiashengjun.com/?#/pages/rushing/index' + (this.userId ? ('?user_id=' + this.userId) : '') - window.location.href = 'https://lehoo6.com/?#/pages/rushing/index' + (this.userId ? ('?user_id=' + this.userId) : '') + window.location.href = 'https://h5y2c.com/?#/pages/rushing/index' + (this.userId ? ('?user_id=' + this.userId) : '') // window.location.href = 'https://shop.uj345.com/?#/pages/rushing/index' + (this.userId ? ('?user_id=' + this.userId) : '') }, 1000) // 返回签名信息给上一页面