普兆健康管家后端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

6.6 KiB

小程序模块使用说明

概述

本模块为健康管理小程序提供后端服务支持,包含登录、用户管理、微信功能等核心功能。

目录结构

jeecgboot-boot-applet/
├── src/main/java/org/jeecg/modules/
│   ├── applet/                    # 小程序核心模块
│   │   ├── controller/           # 控制器层
│   │   │   ├── AppletLoginController.java    # 登录控制器
│   │   │   ├── AppletUserController.java     # 用户控制器
│   │   │   └── WxAppletController.java       # 微信控制器
│   │   └── service/              # 服务层
│   │       ├── AppletLoginService.java       # 登录服务
│   │       ├── AppletUserService.java        # 用户服务
│   │       └── WxAppletService.java          # 微信服务
│   └── common/
│       └── wxUtils/              # 微信工具类
│           ├── WxHttpUtils.java              # 微信HTTP工具
│           └── WxHttpClientUtil.java         # 微信HTTP客户端
└── src/main/resources/
    └── application-applet.yml     # 小程序配置文件

功能模块

1. 登录模块 (AppletLoginController)

接口列表

  • POST /applet/login/wxLogin - 微信小程序登录
  • POST /applet/login/getPhoneNumber - 获取用户手机号
  • POST /applet/login/refreshToken - 刷新token
  • POST /applet/login/logout - 退出登录
  • GET /applet/login/checkLogin - 检查登录状态

使用示例

// 小程序登录
wx.login({
  success: (res) => {
    if (res.code) {
      // 发送 res.code 到后台换取 openId, sessionKey, unionId
      wx.request({
        url: 'http://your-domain/applet/login/wxLogin',
        method: 'POST',
        data: {
          code: res.code
        },
        success: (result) => {
          console.log('登录成功', result.data);
          // 保存token
          wx.setStorageSync('token', result.data.result.token);
        }
      });
    }
  }
});

2. 用户模块 (AppletUserController)

接口列表

  • GET /applet/user/info - 获取用户信息
  • POST /applet/user/update - 更新用户信息
  • GET /applet/user/health - 获取健康信息
  • POST /applet/user/health/update - 更新健康信息
  • GET /applet/user/member - 获取会员信息

使用示例

// 获取用户信息
wx.request({
  url: 'http://your-domain/applet/user/info',
  method: 'GET',
  data: {
    userId: 'applet_user_id'
  },
  header: {
    'Authorization': 'Bearer ' + wx.getStorageSync('token')
  },
  success: (result) => {
    console.log('用户信息', result.data);
  }
});

3. 微信模块 (WxAppletController)

接口列表

  • POST /applet/wx/qrcode - 获取小程序码
  • POST /applet/wx/subscribe/send - 发送订阅消息
  • GET /applet/wx/config - 获取小程序配置
  • GET /applet/wx/check - 检查微信服务器
  • GET /applet/wx/user/info - 获取微信用户信息

使用示例

// 获取小程序码
wx.request({
  url: 'http://your-domain/applet/wx/qrcode',
  method: 'POST',
  data: {
    scene: 'user_id_123',
    page: 'pages/index/index'
  },
  success: (result) => {
    console.log('小程序码', result.data);
  }
});

配置说明

1. 微信配置

application-applet.yml 中配置微信小程序信息:

applet:
  wechat:
    mpAppId: your_applet_appid
    mpAppSecret: your_applet_secret
  pay:
    mchId: your_mch_id
    mchKey: your_mch_key

2. 环境变量

可以通过环境变量覆盖配置:

export WECHAT_MP_APPID=your_applet_appid
export WECHAT_MP_APPSECRET=your_applet_secret
export WECHAT_MCH_ID=your_mch_id
export WECHAT_MCH_KEY=your_mch_key

3. 功能开关

可以通过配置文件控制功能模块的启用:

applet:
  features:
    login: true          # 登录功能
    userInfo: true       # 用户信息功能
    healthInfo: true     # 健康信息功能
    member: true         # 会员功能
    subscribe: true      # 订阅消息功能
    qrcode: true         # 小程序码功能

安全配置

1. Token配置

applet:
  security:
    tokenExpireTime: 7200              # token过期时间(秒)
    refreshTokenExpireTime: 604800     # 刷新token过期时间(秒)
    enableTokenBlacklist: true         # 启用token黑名单

2. 接口权限

所有小程序接口都使用了 @IgnoreAuth 注解,表示不需要登录验证。在实际使用中,可以根据需要添加token验证。

日志配置

applet:
  logging:
    level: INFO
    logWxApi: true      # 记录微信API调用日志
    logUserAction: true  # 记录用户操作日志

缓存配置

applet:
  cache:
    accessTokenExpire: 7000    # 微信access_token缓存时间(秒)
    userInfoExpire: 3600      # 用户信息缓存时间(秒)
    qrcodeExpire: 86400       # 小程序码缓存时间(秒)

开发说明

1. 数据库集成

当前版本使用模拟数据,实际使用时需要:

  1. 创建用户表 applet_user
  2. 创建健康信息表 applet_health_info
  3. 创建会员信息表 applet_member_info
  4. 在Service层实现数据库操作

2. 微信API集成

已集成以下微信API:

  • 登录:/sns/jscode2session
  • 获取手机号:/wxa/business/getuserphonenumber
  • 获取access_token:/cgi-bin/token
  • 获取小程序码:/wxa/getwxacodeunlimit
  • 发送订阅消息:/cgi-bin/message/subscribe/send

3. 错误处理

所有接口都包含完整的异常处理:

  • 微信API调用失败
  • 参数验证失败
  • 数据库操作失败
  • 网络连接失败

4. 扩展开发

如需添加新功能,可以:

  1. service 包下创建新的服务类
  2. controller 包下创建对应的控制器
  3. 在配置文件中添加相关配置
  4. 更新本文档

部署说明

1. 打包

mvn clean package -Dmaven.test.skip=true

2. 运行

java -jar jeecgboot-boot-applet.jar --spring.profiles.active=prod

3. Docker部署

FROM openjdk:8-jre-alpine
COPY jeecgboot-boot-applet.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]

注意事项

  1. 安全性:生产环境中请务必配置正确的微信小程序密钥
  2. 性能:建议对微信API调用结果进行缓存
  3. 监控:建议添加接口调用监控和日志收集
  4. 测试:请在小程序开发工具中充分测试所有功能
  5. 文档:接口文档可通过Swagger UI查看:http://your-domain/swagger-ui.html

技术支持

如有问题,请联系开发团队或查看项目文档。