# 小程序模块使用说明 ## 概述 本模块为健康管理小程序提供后端服务支持,包含登录、用户管理、微信功能等核心功能。 ## 目录结构 ``` 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` - 检查登录状态 #### 使用示例 ```javascript // 小程序登录 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` - 获取会员信息 #### 使用示例 ```javascript // 获取用户信息 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` - 获取微信用户信息 #### 使用示例 ```javascript // 获取小程序码 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` 中配置微信小程序信息: ```yaml applet: wechat: mpAppId: your_applet_appid mpAppSecret: your_applet_secret pay: mchId: your_mch_id mchKey: your_mch_key ``` ### 2. 环境变量 可以通过环境变量覆盖配置: ```bash 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. 功能开关 可以通过配置文件控制功能模块的启用: ```yaml applet: features: login: true # 登录功能 userInfo: true # 用户信息功能 healthInfo: true # 健康信息功能 member: true # 会员功能 subscribe: true # 订阅消息功能 qrcode: true # 小程序码功能 ``` ## 安全配置 ### 1. Token配置 ```yaml applet: security: tokenExpireTime: 7200 # token过期时间(秒) refreshTokenExpireTime: 604800 # 刷新token过期时间(秒) enableTokenBlacklist: true # 启用token黑名单 ``` ### 2. 接口权限 所有小程序接口都使用了 `@IgnoreAuth` 注解,表示不需要登录验证。在实际使用中,可以根据需要添加token验证。 ## 日志配置 ```yaml applet: logging: level: INFO logWxApi: true # 记录微信API调用日志 logUserAction: true # 记录用户操作日志 ``` ## 缓存配置 ```yaml 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. 打包 ```bash mvn clean package -Dmaven.test.skip=true ``` ### 2. 运行 ```bash java -jar jeecgboot-boot-applet.jar --spring.profiles.active=prod ``` ### 3. Docker部署 ```dockerfile 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` ## 技术支持 如有问题,请联系开发团队或查看项目文档。