Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
leiyun 20f7243bf0 save 处理提示 7 часов назад
sql feat:修复一系列BUG 2 дней назад
src save 处理提示 7 часов назад
test init: 肠愈同行后端项目初始化 3 дней назад
view save 处理提示 7 часов назад
www/static init: 肠愈同行后端项目初始化 3 дней назад
.eslintrc init: 肠愈同行后端项目初始化 3 дней назад
.gitignore init: 肠愈同行后端项目初始化 3 дней назад
README.md 加短信日志 3 дней назад
development.js init: 肠愈同行后端项目初始化 3 дней назад
nginx.conf feat:修改日志 3 дней назад
package.json save 2 дней назад
pm2.json init: 肠愈同行后端项目初始化 3 дней назад
pnpm-lock.yaml save 2 дней назад
production.js init: 肠愈同行后端项目初始化 3 дней назад
restart.sh feat:更新README 3 дней назад

README.md

肠愈同行患者关爱 - 后端服务

肠愈同行患者关爱项目后端,提供管理后台和小程序 API 接口。基于 ThinkJS 3.x 开发。

技术栈

  • ThinkJS 3.x (Node.js) + Nunjucks 模板
  • MySQL (腾讯云 CynosDB),数据库:pap_cytx
  • Redis 缓存(端口 6319)
  • 腾讯云 COS 文件存储
  • 腾讯云 OCR / 人脸核身 / 短信
  • Puppeteer(协议签署截图)
  • PM2 进程管理,端口 8361

功能模块

管理后台

  • 控制台:统计卡片、趋势图、最近记录
  • 患者管理:列表/详情/审核/导出,按瘤种/地区/状态筛选
  • 内容管理:首页内容配置
  • 系统管理:用户、角色权限、操作日志、短信记录、文件上传

小程序 API

  • 微信登录 / 手机号绑定 / 修改手机号
  • 实名认证(OCR + 人脸核身 + 短信验证)
  • 患者资料提交与编辑
  • 协议签署(Puppeteer 截图生成)
  • 消息中心
  • 订阅消息通知(审核结果推送)
  • 头像上传

目录结构

├── src/
│   ├── config/          # 配置(adapter/router/middleware/cos/ocr/sms/faceid)
│   ├── controller/
│   │   ├── admin/       # 后台管理(dashboard/patient/content/auth/upload)
│   │   │   └── system/  # 系统管理(user/role/log/sms)
│   │   ├── base.js      # 基础控制器(JWT认证/权限/日志/短信)
│   │   ├── common.js    # 公共接口(地区数据)
│   │   └── mp.js        # 小程序 API
│   ├── model/           # 数据模型
│   └── service/         # 服务层(wechat/screenshot)
├── view/admin/          # 后台 Nunjucks 模板
├── www/static/          # 静态资源
└── sql/                 # 数据库脚本

快速开始

# 安装依赖
pnpm install

# 开发环境
npm start

# ESLint 修复
npm run lint-fix

# 生产部署
pm2 startOrReload pm2.json

数据库

按顺序执行 sql/ 目录下的脚本:

  1. init.sql - 基础表(用户/角色/患者/内容等)
  2. wechat_user.sql - 微信用户表
  3. verify.sql - 实名认证相关字段
  4. myinfo.sql - 患者资料扩展字段
  5. sign.sql - 协议签署字段
  6. content.sql - 内容数据
  7. message.sql - 消息表
  8. subscribe.sql - 订阅消息记录表

访问地址

服务器部署 Puppeteer(协议签署截图)

协议签署功能依赖 Puppeteer 调用 Chrome 生成截图,服务器需要安装 Chrome 和中文字体。

1. 安装 Chrome

Puppeteer 自带 Chrome 下载,但国内服务器可能下载失败,可手动安装:

# 创建 Puppeteer 缓存目录
mkdir -p /root/.cache/puppeteer/chrome/linux-146.0.7680.76
cd /root/.cache/puppeteer/chrome/linux-146.0.7680.76

# 从镜像下载 Chrome
wget https://cdn.npmmirror.com/binaries/chrome-for-testing/146.0.7680.76/linux64/chrome-linux64.zip

# 解压并清理
unzip chrome-linux64.zip
rm chrome-linux64.zip

验证安装:

ls /root/.cache/puppeteer/chrome/linux-146.0.7680.76/chrome-linux64/chrome

2. 检查系统依赖库

ldd /root/.cache/puppeteer/chrome/linux-146.0.7680.76/chrome-linux64/chrome | grep "not found"

如有缺失,安装对应依赖:

dnf install -y nss atk at-spi2-atk cups-libs libXcomposite libXdamage libXrandr mesa-libgbm pango alsa-lib libdrm libxkbcommon

3. 安装中文字体

服务器默认无中文字体,截图中文会显示为方框。

dnf install -y google-noto-sans-cjk-sc-fonts

如果 dnf 源中没有,手动安装:

mkdir -p /usr/share/fonts/chinese
cd /usr/share/fonts/chinese
wget https://github.com/googlefonts/noto-cjk/releases/download/Sans2.004/08_NotoSansCJKsc.zip
unzip 08_NotoSansCJKsc.zip
fc-cache -fv

4. 重启服务

pm2 restart cytx_api