普兆健康管家后端代码仓库
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.

271 lines
6.6 KiB

  1. # 小程序模块使用说明
  2. ## 概述
  3. 本模块为健康管理小程序提供后端服务支持,包含登录、用户管理、微信功能等核心功能。
  4. ## 目录结构
  5. ```
  6. jeecgboot-boot-applet/
  7. ├── src/main/java/org/jeecg/modules/
  8. │ ├── applet/ # 小程序核心模块
  9. │ │ ├── controller/ # 控制器层
  10. │ │ │ ├── AppletLoginController.java # 登录控制器
  11. │ │ │ ├── AppletUserController.java # 用户控制器
  12. │ │ │ └── WxAppletController.java # 微信控制器
  13. │ │ └── service/ # 服务层
  14. │ │ ├── AppletLoginService.java # 登录服务
  15. │ │ ├── AppletUserService.java # 用户服务
  16. │ │ └── WxAppletService.java # 微信服务
  17. │ └── common/
  18. │ └── wxUtils/ # 微信工具类
  19. │ ├── WxHttpUtils.java # 微信HTTP工具
  20. │ └── WxHttpClientUtil.java # 微信HTTP客户端
  21. └── src/main/resources/
  22. └── application-applet.yml # 小程序配置文件
  23. ```
  24. ## 功能模块
  25. ### 1. 登录模块 (AppletLoginController)
  26. #### 接口列表
  27. - `POST /applet/login/wxLogin` - 微信小程序登录
  28. - `POST /applet/login/getPhoneNumber` - 获取用户手机号
  29. - `POST /applet/login/refreshToken` - 刷新token
  30. - `POST /applet/login/logout` - 退出登录
  31. - `GET /applet/login/checkLogin` - 检查登录状态
  32. #### 使用示例
  33. ```javascript
  34. // 小程序登录
  35. wx.login({
  36. success: (res) => {
  37. if (res.code) {
  38. // 发送 res.code 到后台换取 openId, sessionKey, unionId
  39. wx.request({
  40. url: 'http://your-domain/applet/login/wxLogin',
  41. method: 'POST',
  42. data: {
  43. code: res.code
  44. },
  45. success: (result) => {
  46. console.log('登录成功', result.data);
  47. // 保存token
  48. wx.setStorageSync('token', result.data.result.token);
  49. }
  50. });
  51. }
  52. }
  53. });
  54. ```
  55. ### 2. 用户模块 (AppletUserController)
  56. #### 接口列表
  57. - `GET /applet/user/info` - 获取用户信息
  58. - `POST /applet/user/update` - 更新用户信息
  59. - `GET /applet/user/health` - 获取健康信息
  60. - `POST /applet/user/health/update` - 更新健康信息
  61. - `GET /applet/user/member` - 获取会员信息
  62. #### 使用示例
  63. ```javascript
  64. // 获取用户信息
  65. wx.request({
  66. url: 'http://your-domain/applet/user/info',
  67. method: 'GET',
  68. data: {
  69. userId: 'applet_user_id'
  70. },
  71. header: {
  72. 'Authorization': 'Bearer ' + wx.getStorageSync('token')
  73. },
  74. success: (result) => {
  75. console.log('用户信息', result.data);
  76. }
  77. });
  78. ```
  79. ### 3. 微信模块 (WxAppletController)
  80. #### 接口列表
  81. - `POST /applet/wx/qrcode` - 获取小程序码
  82. - `POST /applet/wx/subscribe/send` - 发送订阅消息
  83. - `GET /applet/wx/config` - 获取小程序配置
  84. - `GET /applet/wx/check` - 检查微信服务器
  85. - `GET /applet/wx/user/info` - 获取微信用户信息
  86. #### 使用示例
  87. ```javascript
  88. // 获取小程序码
  89. wx.request({
  90. url: 'http://your-domain/applet/wx/qrcode',
  91. method: 'POST',
  92. data: {
  93. scene: 'user_id_123',
  94. page: 'pages/index/index'
  95. },
  96. success: (result) => {
  97. console.log('小程序码', result.data);
  98. }
  99. });
  100. ```
  101. ## 配置说明
  102. ### 1. 微信配置
  103. `application-applet.yml` 中配置微信小程序信息:
  104. ```yaml
  105. applet:
  106. wechat:
  107. mpAppId: your_applet_appid
  108. mpAppSecret: your_applet_secret
  109. pay:
  110. mchId: your_mch_id
  111. mchKey: your_mch_key
  112. ```
  113. ### 2. 环境变量
  114. 可以通过环境变量覆盖配置:
  115. ```bash
  116. export WECHAT_MP_APPID=your_applet_appid
  117. export WECHAT_MP_APPSECRET=your_applet_secret
  118. export WECHAT_MCH_ID=your_mch_id
  119. export WECHAT_MCH_KEY=your_mch_key
  120. ```
  121. ### 3. 功能开关
  122. 可以通过配置文件控制功能模块的启用:
  123. ```yaml
  124. applet:
  125. features:
  126. login: true # 登录功能
  127. userInfo: true # 用户信息功能
  128. healthInfo: true # 健康信息功能
  129. member: true # 会员功能
  130. subscribe: true # 订阅消息功能
  131. qrcode: true # 小程序码功能
  132. ```
  133. ## 安全配置
  134. ### 1. Token配置
  135. ```yaml
  136. applet:
  137. security:
  138. tokenExpireTime: 7200 # token过期时间(秒)
  139. refreshTokenExpireTime: 604800 # 刷新token过期时间(秒)
  140. enableTokenBlacklist: true # 启用token黑名单
  141. ```
  142. ### 2. 接口权限
  143. 所有小程序接口都使用了 `@IgnoreAuth` 注解,表示不需要登录验证。在实际使用中,可以根据需要添加token验证。
  144. ## 日志配置
  145. ```yaml
  146. applet:
  147. logging:
  148. level: INFO
  149. logWxApi: true # 记录微信API调用日志
  150. logUserAction: true # 记录用户操作日志
  151. ```
  152. ## 缓存配置
  153. ```yaml
  154. applet:
  155. cache:
  156. accessTokenExpire: 7000 # 微信access_token缓存时间(秒)
  157. userInfoExpire: 3600 # 用户信息缓存时间(秒)
  158. qrcodeExpire: 86400 # 小程序码缓存时间(秒)
  159. ```
  160. ## 开发说明
  161. ### 1. 数据库集成
  162. 当前版本使用模拟数据,实际使用时需要:
  163. 1. 创建用户表 `applet_user`
  164. 2. 创建健康信息表 `applet_health_info`
  165. 3. 创建会员信息表 `applet_member_info`
  166. 4. 在Service层实现数据库操作
  167. ### 2. 微信API集成
  168. 已集成以下微信API:
  169. - 登录:`/sns/jscode2session`
  170. - 获取手机号:`/wxa/business/getuserphonenumber`
  171. - 获取access_token:`/cgi-bin/token`
  172. - 获取小程序码:`/wxa/getwxacodeunlimit`
  173. - 发送订阅消息:`/cgi-bin/message/subscribe/send`
  174. ### 3. 错误处理
  175. 所有接口都包含完整的异常处理:
  176. - 微信API调用失败
  177. - 参数验证失败
  178. - 数据库操作失败
  179. - 网络连接失败
  180. ### 4. 扩展开发
  181. 如需添加新功能,可以:
  182. 1.`service` 包下创建新的服务类
  183. 2.`controller` 包下创建对应的控制器
  184. 3. 在配置文件中添加相关配置
  185. 4. 更新本文档
  186. ## 部署说明
  187. ### 1. 打包
  188. ```bash
  189. mvn clean package -Dmaven.test.skip=true
  190. ```
  191. ### 2. 运行
  192. ```bash
  193. java -jar jeecgboot-boot-applet.jar --spring.profiles.active=prod
  194. ```
  195. ### 3. Docker部署
  196. ```dockerfile
  197. FROM openjdk:8-jre-alpine
  198. COPY jeecgboot-boot-applet.jar app.jar
  199. EXPOSE 8080
  200. ENTRYPOINT ["java", "-jar", "/app.jar"]
  201. ```
  202. ## 注意事项
  203. 1. **安全性**:生产环境中请务必配置正确的微信小程序密钥
  204. 2. **性能**:建议对微信API调用结果进行缓存
  205. 3. **监控**:建议添加接口调用监控和日志收集
  206. 4. **测试**:请在小程序开发工具中充分测试所有功能
  207. 5. **文档**:接口文档可通过Swagger UI查看:`http://your-domain/swagger-ui.html`
  208. ## 技术支持
  209. 如有问题,请联系开发团队或查看项目文档。