diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 93e07ec..0000000 --- a/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# 使用官方的Node.js 18镜像作为基础镜像 -FROM node:18-alpine - -# 设置工作目录 -WORKDIR /app - -# 复制package.json和package-lock.json到工作目录 -COPY server-example/package*.json ./ - -# 安装依赖 -RUN npm install --production - -# 复制整个项目到工作目录 -COPY . . - -# 设置环境变量 -ENV NODE_ENV=production - -# 暴露应用端口 -EXPOSE 3000 - -# 运行应用 -CMD ["npm", "start"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index de673e1..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - app: - build: . - container_name: mini-program-server - restart: always - ports: - - "3000:3000" - volumes: - - /opt/project_app/logs:/app/server-example/logs - - /opt/project_app/uploads:/app/server-example/uploads - environment: - - NODE_ENV=production - depends_on: - - mysql - - mysql: - image: mysql:8.0 - container_name: mini-program-mysql - restart: always - ports: - - "3306:3306" - volumes: - - /opt/project_app/mysql-data:/var/lib/mysql - environment: - - MYSQL_ROOT_PASSWORD=your_root_password - - MYSQL_DATABASE=mini_program - - MYSQL_USER=mini_program_user - - MYSQL_PASSWORD=your_user_password \ No newline at end of file diff --git a/pages/index/index.js b/pages/index/index.js index d1b9559..d0f0075 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -600,7 +600,7 @@ Page({ this.checkAndRestoreLoginStatus() this.loadCategories() - this.loadGoods() + this.onRefresh() this.checkPhoneInPersonnel() this.loadAdCarouselList() diff --git a/server-example/.env配置说明.md b/server-example/.env配置说明.md deleted file mode 100644 index bc88bee..0000000 --- a/server-example/.env配置说明.md +++ /dev/null @@ -1,104 +0,0 @@ -# .env文件配置说明 - -## 1. 微信小程序配置 - -### WECHAT_APPID -- **含义**:微信小程序的唯一标识 -- **获取方式**:登录微信公众平台 -> 开发管理 -> 开发设置 -> 开发者ID(AppID) -- **当前值**:`wx3da6ea0adf91cf0d`(已配置,无需修改) - -### WECHAT_APPSECRET -- **含义**:微信小程序的应用密钥,用于接口调用 -- **获取方式**:登录微信公众平台 -> 开发管理 -> 开发设置 -> 开发者密码(AppSecret)(需要管理员扫码获取) -- **当前值**:`78fd81bce5a2968a8e7c607ae68c4c0b`(已配置,无需修改) - -### WECHAT_TOKEN -- **含义**:用于微信服务器验证的随机字符串,确保安全性 -- **设置方式**:可以自定义一个复杂的随机字符串(建议包含大小写字母、数字和特殊字符) -- **示例**:`abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*` -- **当前值**:`your-random-token`(需要修改) - -## 2. MySQL数据库配置 - -### DB_HOST -- **含义**:MySQL数据库服务器的IP地址或域名 -- **设置方式**: - - 如果数据库和应用部署在同一台服务器,使用`localhost`或`127.0.0.1` - - 如果使用Docker Compose部署,使用服务名称(如`mysql`) - - 如果是远程数据库,使用数据库服务器的IP地址 -- **当前值**:`1.95.162.61`(已配置,无需修改) - -### DB_PORT -- **含义**:MySQL数据库服务的端口号 -- **默认值**:MySQL默认端口为`3306` -- **当前值**:`3306`(已配置,无需修改) - -### DB_DATABASE -- **含义**:要使用的数据库名称 -- **设置方式**:确保该数据库已在MySQL中创建 -- **当前值**:`wechat_app`(已配置,无需修改) - -### DB_USER -- **含义**:MySQL数据库的用户名 -- **设置方式**:使用具有该数据库访问权限的用户名 -- **当前值**:`root`(已配置,无需修改) - -### DB_PASSWORD -- **含义**:MySQL数据库用户的密码 -- **设置方式**: - - 如果用户有密码,填写实际密码 - - 如果没有密码,保留为空字符串(`DB_PASSWORD=""`) -- **当前值**:`schl@2025`(已配置,无需修改) - -## 3. 服务器配置 - -### PORT -- **含义**:Node.js服务器监听的端口号 -- **设置方式**:选择一个未被占用的端口(建议使用1024以上的端口) -- **当前值**:`3003`(已配置,无需修改) - -### LOG_LEVEL -- **含义**:日志记录的级别 -- **可选值**:`debug`, `info`, `warn`, `error` -- **建议**:开发环境使用`debug`,生产环境使用`info`或`warn` -- **当前值**:`debug`(已配置,建议生产环境修改为`info`) - -### NODE_ENV -- **含义**:Node.js运行环境 -- **可选值**:`development`(开发环境), `production`(生产环境) -- **当前值**:`production`(已配置,无需修改) - -### ENABLE_DETAILED_LOGGING -- **含义**:是否启用详细日志记录(用于问题排查) -- **可选值**:`true`, `false` -- **建议**:开发环境使用`true`,生产环境使用`false`以提高性能 -- **当前值**:`true`(已配置,建议生产环境修改为`false`) - -## 配置注意事项 - -1. **不要泄露敏感信息**:.env文件包含AppSecret、数据库密码等敏感信息,不要将其提交到代码仓库 - -2. **备份配置**:定期备份配置文件,以防丢失 - -3. **Docker部署时的特殊配置**: - - 如果使用Docker Compose部署,将`DB_HOST`改为`mysql`(与docker-compose.yml中的服务名称一致) - - 确保数据库端口在Docker Compose中正确映射 - -4. **环境一致性**:确保开发环境和生产环境的配置保持一致(除了敏感信息和环境特定配置) - -5. **配置验证**:配置完成后,启动服务前可以先测试数据库连接是否正常 - -## 修改示例 - -如果要修改配置,直接编辑.env文件即可: - -```bash -# 修改微信token -WECHAT_TOKEN=my-new-secure-token-2025 - -# 修改日志级别为info -LOG_LEVEL=info - -# 关闭详细日志 -ENABLE_DETAILED_LOGGING=false -``` \ No newline at end of file diff --git a/server-example/DOCKER_DEPLOYMENT.md b/server-example/DOCKER_DEPLOYMENT.md deleted file mode 100644 index cc9b90b..0000000 --- a/server-example/DOCKER_DEPLOYMENT.md +++ /dev/null @@ -1,94 +0,0 @@ -# 微信小程序后端服务Docker部署指南 - -## 环境准备 - -- 安装Docker和Docker Compose -- 确保云服务器端口3000和3306对外开放 - -## 部署步骤 - -### 1. 克隆仓库 - -```bash -git clone http://8.137.125.67:4000/Swt29/Project_app.git -cd Project_app/server-example -``` - -### 2. 配置环境变量 - -复制并编辑.env文件: - -```bash -cp .env.example.mysql .env -# 编辑.env文件,配置数据库连接等信息 -``` - -### 3. 构建和启动容器 - -```bash -docker-compose up -d -``` - -### 4. 查看容器状态 - -```bash -docker-compose ps -``` - -### 5. 查看日志 - -```bash -docker-compose logs -f -``` - -## 代码更新和部署 - -### 1. 拉取最新代码 - -```bash -git pull origin BOSS -``` - -### 2. 重新构建和启动容器 - -```bash -docker-compose down -docker-compose up -d --build -``` - -## 数据库管理 - -### 进入数据库容器 - -```bash -docker exec -it wechat-miniprogram-db mysql -u wechat_user -p -``` - -### 备份数据库 - -```bash -docker exec -t wechat-miniprogram-db mysqldump -u wechat_user -p wechat_miniprogram > backup.sql -``` - -## 常见问题 - -### 端口冲突 - -如果端口3000或3306已被占用,可以修改docker-compose.yml文件中的端口映射: - -```yaml -ports: - - "8080:3000" # 将宿主机8080端口映射到容器3000端口 -``` - -### 数据库连接失败 - -检查.env文件中的数据库配置是否与docker-compose.yml中的配置一致。 - -### 容器启动失败 - -查看日志以获取详细错误信息: - -```bash -docker-compose logs -f app -``` diff --git a/server-example/Dockerfile b/server-example/Dockerfile deleted file mode 100644 index cd5c21f..0000000 --- a/server-example/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# 使用Node.js官方镜像作为基础镜像 -FROM node:18-alpine - -# 设置工作目录 -WORKDIR /app - -# 复制package.json和package-lock.json -COPY package*.json ./ - -# 安装依赖 -RUN npm install --production - -# 复制应用代码 -COPY . . - -# 设置环境变量 -ENV NODE_ENV=production - -# 暴露端口 -EXPOSE 3000 - -# 启动命令 -CMD ["npm", "start"] diff --git a/server-example/docker-compose.yml b/server-example/docker-compose.yml deleted file mode 100644 index b9bfd9c..0000000 --- a/server-example/docker-compose.yml +++ /dev/null @@ -1,33 +0,0 @@ -version: '3.8' - -services: - app: - build: . - container_name: wechat-miniprogram-server - restart: always - ports: - - "3000:3000" - environment: - - NODE_ENV=production - volumes: - - ./logs:/app/logs - - ./uploads:/app/uploads - depends_on: - - db - - db: - image: mysql:8.0 - container_name: wechat-miniprogram-db - restart: always - ports: - - "3306:3306" - environment: - - MYSQL_ROOT_PASSWORD=rootpassword - - MYSQL_DATABASE=wechat_miniprogram - - MYSQL_USER=wechat_user - - MYSQL_PASSWORD=wechat_password - volumes: - - db_data:/var/lib/mysql - -volumes: - db_data: diff --git a/server-example/fix_settlement_fields.sql b/server-example/fix_settlement_fields.sql deleted file mode 100644 index 8dd7b6f..0000000 --- a/server-example/fix_settlement_fields.sql +++ /dev/null @@ -1,154 +0,0 @@ --- 确保 users 表包含立即入驻功能所需的所有字段 --- 此脚本用于修复或添加入驻流程可能需要的数据库字段 - -USE wechat_app; - --- 检查并添加缺失的字段(如果不存在) - --- 1. 入驻相关字段 --- 检查 collaborationid 字段(合作商身份) -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'collaborationid' -) THEN - ALTER TABLE users ADD COLUMN collaborationid TEXT COMMENT '合作商身份' AFTER demand; -END IF; - --- 检查 cooperation 字段(合作模式) -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'cooperation' -) THEN - ALTER TABLE users ADD COLUMN cooperation VARCHAR(255) COMMENT '合作模式' AFTER collaborationid; -END IF; - --- 检查 businesslicenseurl 字段(营业执照) -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'businesslicenseurl' -) THEN - ALTER TABLE users ADD COLUMN businesslicenseurl TEXT COMMENT '营业执照URL' AFTER cooperation; -END IF; - --- 检查 proofurl 字段(证明材料) -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'proofurl' -) THEN - ALTER TABLE users ADD COLUMN proofurl TEXT COMMENT '证明材料URL' AFTER businesslicenseurl; -END IF; - --- 检查 brandurl 字段(品牌授权链) -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'brandurl' -) THEN - ALTER TABLE users ADD COLUMN brandurl TEXT COMMENT '品牌授权链文件URL' AFTER proofurl; -END IF; - --- 检查 partnerstatus 字段(合作商状态) -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'partnerstatus' -) THEN - ALTER TABLE users ADD COLUMN partnerstatus VARCHAR(255) COMMENT '合作商状态' AFTER brandurl; -END IF; - --- 2. 详细地址相关字段 --- 检查 detailedaddress 字段 -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'detailedaddress' -) THEN - ALTER TABLE users ADD COLUMN detailedaddress VARCHAR(255) COMMENT '详细地址' AFTER district; -END IF; - --- 3. 其他可能需要的字段 --- 检查 reasonforfailure 字段(审核失败原因) -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'reasonforfailure' -) THEN - ALTER TABLE users ADD COLUMN reasonforfailure TEXT COMMENT '审核失败原因' AFTER partnerstatus; -END IF; - --- 检查 idcardstatus 字段(身份证认证状态) -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'idcardstatus' -) THEN - ALTER TABLE users ADD COLUMN idcardstatus INT NULL COMMENT '身份证认证状态(0:待审核,1:审核通过,2:审核失败)' AFTER reasonforfailure; -END IF; - --- 检查 audit_time 字段(审核时间) -IF NOT EXISTS ( - SELECT * FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND COLUMN_NAME = 'audit_time' -) THEN - ALTER TABLE users ADD COLUMN audit_time DATETIME COMMENT '审核时间' AFTER reasonforfailure; -END IF; - --- 4. 修改字段属性以允许空值(如果需要) --- 修改 collaborationid 允许为空(入驻流程中可能未选择) -ALTER TABLE users MODIFY COLUMN collaborationid TEXT NULL COMMENT '合作商身份'; - --- 修改 cooperation 允许为空 -ALTER TABLE users MODIFY COLUMN cooperation VARCHAR(255) NULL COMMENT '合作模式'; - --- 修改 province/city/district 允许为空(地址选择可能不完整) -ALTER TABLE users MODIFY COLUMN province VARCHAR(50) NULL COMMENT '省份'; -ALTER TABLE users MODIFY COLUMN city VARCHAR(50) NULL COMMENT '城市'; -ALTER TABLE users MODIFY COLUMN district VARCHAR(255) NULL COMMENT '区域'; - --- 5. 添加索引以提高查询性能 --- 为 openid 添加唯一索引(如果尚未存在) -IF NOT EXISTS ( - SELECT * FROM information_schema.STATISTICS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND INDEX_NAME = 'idx_openid' -) THEN - CREATE INDEX idx_openid ON users(openid); -END IF; - --- 为 partnerstatus 添加索引(用于查询审核状态) -IF NOT EXISTS ( - SELECT * FROM information_schema.STATISTICS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND INDEX_NAME = 'idx_partnerstatus' -) THEN - CREATE INDEX idx_partnerstatus ON users(partnerstatus); -END IF; - --- 为 userId 添加索引(如果尚未存在唯一索引) -IF NOT EXISTS ( - SELECT * FROM information_schema.STATISTICS - WHERE TABLE_SCHEMA = 'wechat_app' - AND TABLE_NAME = 'users' - AND INDEX_NAME = 'idx_userId' -) THEN - CREATE INDEX idx_userId ON users(userId); -END IF; - -SELECT '数据库表结构修复完成!' AS status; diff --git a/server-example/server-mysql.js b/server-example/server-mysql.js index 47309bb..0c577ee 100644 --- a/server-example/server-mysql.js +++ b/server-example/server-mysql.js @@ -1606,6 +1606,11 @@ User.init({ defaultValue: Sequelize.NOW, onUpdate: Sequelize.NOW }, + // 新增字段:提交时间 + newtime: { + type: DataTypes.DATE, + defaultValue: Sequelize.NOW + }, }, { sequelize, @@ -8265,7 +8270,8 @@ app.post('/api/settlement/submit', async (req, res) => { proofurl: String(!proofurl || proofurl.trim() === '' ? '未上传' : proofurl), // 数据库NOT NULL: 证明材料 brandurl: String(!brandurl || brandurl.trim() === '' ? '' : brandurl), // 品牌授权链文件(可为空) partnerstatus: 'underreview', // 合作商状态明确设置为审核中 - updated_at: getBeijingTime() + updated_at: getBeijingTime(), + newtime: getBeijingTime() // 新增字段:提交时间 }; console.log('11. 构建的updateData对象:', JSON.stringify(updateData, null, 2)); diff --git a/server-example/test-post-api.js b/server-example/test-post-api.js deleted file mode 100644 index 3b738f4..0000000 --- a/server-example/test-post-api.js +++ /dev/null @@ -1,47 +0,0 @@ -// 测试创建动态API -const http = require('http'); - -// 测试数据 -const testData = { - content: '测试发布帖子', - images: ['https://example.com/image1.jpg', 'https://example.com/image2.jpg'], - topic: '今天你吃蛋了么?' -}; - -// 发送POST请求到主服务器 -const options = { - hostname: 'localhost', - port: 3003, - path: '/api/eggbar/posts', - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'Content-Length': Buffer.byteLength(JSON.stringify(testData)) - } -}; - -const req = http.request(options, (res) => { - console.log(`状态码: ${res.statusCode}`); - console.log(`响应头: ${JSON.stringify(res.headers)}`); - - let data = ''; - res.on('data', (chunk) => { - data += chunk; - }); - - res.on('end', () => { - console.log('响应体:', data); - console.log('测试完成'); - }); -}); - -req.on('error', (e) => { - console.error(`请求错误: ${e.message}`); -}); - -// 发送请求体 -req.write(JSON.stringify(testData)); -req.end(); - -console.log('正在发送测试请求到 http://localhost:3003/api/eggbar/posts...'); -console.log('测试数据:', testData);