weicw1996 2cd60270b9 feat(mp-java): hjc 小程序接入链、微信接入自检、首页轮播与一站式出向推送
hjc 包的进展(按 AGENTS.md 约定,改动集中在 hjc 包内):

- HjcWechatController 新增三接口:
  - GET  /api/hjc/wechat/readiness  管理员自检,逐项报告小程序/公众号/支付/serverUrl
    是否配好、支付 appId 与小程序 appId 是否一致;?probe=true 实调微信验证 appSecret
    (失败只记日志、不抛异常)。appId 与商户号在 detail 里打码,appSecret 永不输出。
  - GET  /api/hjc/wechat/mp-appid   只回 appId,供 H5 渲染开放标签(不含密钥)。
  - POST /api/hjc/wechat/mp-login   uni.login 的 code 换小程序 openid/unionid;匿名放行,
    租户取 HjcAuthProperties 的配置值而非可伪造的请求头。
  配套 HjcWechatReadinessUtil(含单测)与 HjcWechatController 的两套配置读取:
  公众号 cache{t}:setting:wx-official、小程序 mp-weixin:{t} → setting:mp-weixin:{t} →
  跨库回源 gxwebsoft_core.sys_setting。
- HjcBannerController / Service / ServiceImpl / Mapper(+XML) / HjcBannerVo:只读
  GET /api/hjc/banner/list,按租户 + position + 启用状态 + 生效时间窗口过滤 CMS
  轮播组并扁平化;租户隔离交给 MyBatis-Plus 租户拦截器,不改 cms 及其他项目代码。
  配套 HjcBannerApiTest(最小上下文 MockMvc,含不串租户与位置过滤)。
- 一站式出向推送:CreatePurchaseDetails 补退款字段,HjcOrder 补 refund_time /
  refund_reason(配套 hjc_order_add_refund.sql 与 hjc_init.sql),HjcBizServiceImpl
  在 REFUNDED 时把退款时间与原因一并推送;配套推送报文单测。
- 共享文件 SecurityConfig.java 仅追加一行:匿名放行 /api/hjc/wechat/mp-login
  (注册页证件上传与 OCR 早先已放行)。这是本包唯一改到 common 的地方。
- 文档:CONTEXT.md、docs/一站式平台对接-接口文档.md。

**不含** scripts/hjc_test_push_out.py:该联调探针脚本内含与 HjcOneStopAuthUtil.java
相同的 APP_KEY / PASSWORD 明文,按此前排查记录「不得提交」处理,保留在工作区未跟踪。
2026-09-14 19:01:47 +08:00
2025-07-24 01:21:41 +08:00
2025-08-11 20:36:19 +08:00
2025-07-28 11:13:06 +08:00

🚀 WebSoft API

基于 Spring Boot + MyBatis Plus 的企业级后端API服务

Java Spring Boot MyBatis Plus MySQL Redis License

📖 项目简介

WebSoft API 是一个基于 Spring Boot + MyBatis Plus 构建的现代化企业级后端API服务,采用最新的Java技术栈:

  • 核心框架Spring Boot 2.5.4 + Spring Security + Spring AOP
  • 数据访问MyBatis Plus 3.4.3 + Druid 连接池
  • 数据库MySQL + Redis
  • 文档工具Swagger 3.0 + Knife4j
  • 工具库Hutool、Lombok、FastJSON

项目演示

后台管理系统 https://mp.websoft.top
测试账号 13800010123,123456
正式账号 立即注册
关注公众号 输入图片说明

🛠️ 技术栈

核心框架

技术 版本 说明
Java 1.8+ 编程语言
Spring Boot 2.5.4 微服务框架
Spring Security 5.5.x 安全框架
MyBatis Plus 3.4.3 ORM框架
MySQL 8.0+ 关系型数据库
Redis 6.0+ 缓存数据库
Druid 1.2.6 数据库连接池

功能组件

  • Swagger 3.0 + Knife4j - API文档生成与测试
  • JWT - 用户认证与授权
  • Hutool - Java工具类库
  • EasyPOI - Excel文件处理
  • 阿里云OSS - 对象存储服务
  • 微信支付/支付宝 - 支付集成
  • Socket.IO - 实时通信
  • MQTT - 物联网消息传输

📋 环境要求

基础环境

  • Java 1.8+
  • 🗄️ MySQL 8.0+
  • 🔴 Redis 6.0+
  • 📦 Maven 3.6+

开发工具

  • 推荐IntelliJ IDEA / Eclipse
  • 插件Lombok Plugin、MyBatis Plugin

🚀 快速开始

1. 克隆项目

git clone https://github.com/websoft-top/mp-java.git
cd mp-java

2. 数据库配置

-- 创建数据库
CREATE DATABASE websoft_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 导入数据库脚本(如果有的话)
-- source /path/to/database.sql

3. 配置文件

编辑 src/main/resources/application-dev.yml 文件,配置数据库连接:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/websoft_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
    username: your_username
    password: your_password
  redis:
    host: localhost
    port: 6379
    password: your_redis_password

4. 启动项目

# 使用 Maven 启动
mvn spring-boot:run

# 或者使用 IDE 直接运行 WebSoftApplication.java

访问 http://localhost:9200 即可看到API服务。

5. API文档

启动项目后,访问以下地址查看API文档:

  • Swagger UI: http://localhost:9200/swagger-ui/index.html
  • Knife4j: http://localhost:9200/doc.html

⚙️ 配置说明

数据库配置

application-dev.yml 中配置数据库连接:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/websoft_db
    username: root
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver

Redis配置

spring:
  redis:
    host: localhost
    port: 6379
    password: your_redis_password
    database: 0

阿里云OSS配置

config:
  endpoint: https://oss-cn-shenzhen.aliyuncs.com
  accessKeyId: your_access_key_id
  accessKeySecret: your_access_key_secret
  bucketName: your_bucket_name
  bucketDomain: https://your-domain.com

其他配置

  • JWT密钥config.token-key 用于JWT令牌加密
  • 文件上传路径config.upload-path 本地文件存储路径
  • 邮件服务:配置SMTP服务器用于发送邮件

🎯 核心功能

🔐 用户认证与授权

  • JWT认证:基于JSON Web Token的用户认证
  • Spring Security:完整的安全框架集成
  • 角色权限:基于RBAC的权限控制
  • 图形验证码:防止恶意登录

📝 内容管理系统(CMS)

  • 文章管理:支持富文本内容管理
  • 媒体文件:图片/视频文件上传与管理
  • 分类管理:内容分类与标签管理
  • SEO优化:搜索引擎优化支持

🛒 电商系统

  • 商品管理:商品信息、规格、库存管理
  • 订单系统:完整的订单流程管理
  • 支付集成:支持微信支付、支付宝
  • 物流跟踪:快递100物流查询集成

🔧 系统管理

  • 用户管理:用户信息维护与管理
  • 系统配置:动态配置管理
  • 日志监控:系统操作日志记录
  • 数据备份:数据库备份与恢复

📊 数据分析

  • 统计报表:业务数据统计分析
  • 图表展示:数据可视化展示
  • 导出功能Excel数据导出
  • 实时监控:系统性能监控

🏗️ 项目结构

src/main/java/com/gxwebsoft/
├── WebSoftApplication.java    # 启动类
├── cms/                      # 内容管理模块
│   ├── controller/          # 控制器层
│   ├── service/            # 业务逻辑层
│   ├── mapper/             # 数据访问层
│   └── entity/             # 实体类
├── shop/                    # 商城模块
│   ├── controller/
│   ├── service/
│   ├── mapper/
│   └── entity/
├── common/                  # 公共模块
│   ├── core/               # 核心配置
│   ├── utils/              # 工具类
│   └── exception/          # 异常处理
└── resources/
    ├── application.yml     # 主配置文件
    ├── application-dev.yml # 开发环境配置
    └── application-prod.yml# 生产环境配置

🔧 开发规范

代码结构

  • Controller层:处理HTTP请求,参数验证
  • Service层:业务逻辑处理,事务管理
  • Mapper层:数据访问,SQL映射
  • Entity层:数据实体,数据库表映射

命名规范

  • 类名:使用大驼峰命名法(PascalCase)
  • 方法名:使用小驼峰命名法(camelCase)
  • 常量:使用全大写,下划线分隔
  • 包名:使用小写字母,点分隔

📚 API文档

项目集成了Swagger和Knife4j,提供完整的API文档:

访问地址

  • Swagger UI: http://localhost:9200/swagger-ui/index.html
  • Knife4j: http://localhost:9200/doc.html

主要接口模块

  • 用户认证: /api/auth/** - 登录、注册、权限验证
  • 用户管理: /api/user/** - 用户CRUD操作
  • 内容管理: /api/cms/** - 文章、媒体文件管理
  • 商城管理: /api/shop/** - 商品、订单管理
  • 系统管理: /api/system/** - 系统配置、日志管理

🚀 部署指南

开发环境部署

# 1. 启动MySQL和Redis服务
# 2. 创建数据库并导入初始数据
# 3. 修改配置文件
# 4. 启动应用
mvn spring-boot:run

生产环境部署

# 1. 打包应用
mvn clean package -Dmaven.test.skip=true

# 2. 运行jar包
java -jar target/com-gxwebsoft-modules-1.5.0.jar --spring.profiles.active=prod

# 3. 使用Docker部署(可选)
docker build -t websoft-api .
docker run -d -p 9200:9200 websoft-api

🤝 贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

📞 联系我们


如果这个项目对您有帮助,请给我们一个星标!

S
Description
No description provided
Readme 17 MiB
Languages
Java 98.6%
Python 0.6%
JavaScript 0.6%
Vue 0.1%