|
|
- # 小程序模块使用说明
-
- ## 概述
-
- 本模块为健康管理小程序提供后端服务支持,包含登录、用户管理、微信功能等核心功能。
-
- ## 目录结构
-
- ```
- 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`
-
- ## 技术支持
-
- 如有问题,请联系开发团队或查看项目文档。
|