diff --git a/pom.xml b/pom.xml
index 2959d26..36960cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,6 +56,23 @@
lombok
true
+
+ io.jsonwebtoken
+ jjwt-api
+ 0.12.6
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ 0.12.6
+ runtime
+
+
+ io.jsonwebtoken
+ jjwt-jackson
+ 0.12.6
+ runtime
+
org.springframework.boot
spring-boot-starter-test
diff --git a/src/main/java/edu/situ/stlserver/config/AuthInterceptor.java b/src/main/java/edu/situ/stlserver/config/AuthInterceptor.java
index 07a0567..480ebe6 100644
--- a/src/main/java/edu/situ/stlserver/config/AuthInterceptor.java
+++ b/src/main/java/edu/situ/stlserver/config/AuthInterceptor.java
@@ -13,10 +13,11 @@ public class AuthInterceptor implements HandlerInterceptor {
if (request.getRequestURI().contains("/auth/login")) {
return true;
}
- // 放行静态资源和Swagger
+ // 放行静态资源、Swagger和图片
if (request.getRequestURI().contains("/index.html")
|| request.getRequestURI().contains("/v3/api-docs")
- || request.getRequestURI().contains("/swagger-ui")) {
+ || request.getRequestURI().contains("/swagger-ui")
+ || request.getRequestURI().contains("/images/")) {
return true;
}
diff --git a/src/main/java/edu/situ/stlserver/dao/MemberMapper.java b/src/main/java/edu/situ/stlserver/dao/MemberMapper.java
index 9e1a268..500515f 100644
--- a/src/main/java/edu/situ/stlserver/dao/MemberMapper.java
+++ b/src/main/java/edu/situ/stlserver/dao/MemberMapper.java
@@ -19,7 +19,7 @@ public interface MemberMapper {
" AND `sex` = #{sex}",
"",
"",
- " AND end_date IS NULL OR end_date >= CURDATE()",
+ " AND (end_date IS NULL OR end_date >= CURDATE())",
" AND end_date IS NOT NULL AND end_date < CURDATE()",
"",
"",
diff --git a/src/main/java/edu/situ/stlserver/service/impl/CoachServiceImpl.java b/src/main/java/edu/situ/stlserver/service/impl/CoachServiceImpl.java
index 34dfb02..eae35e6 100644
--- a/src/main/java/edu/situ/stlserver/service/impl/CoachServiceImpl.java
+++ b/src/main/java/edu/situ/stlserver/service/impl/CoachServiceImpl.java
@@ -44,11 +44,19 @@ public class CoachServiceImpl implements CoachService {
@Override
public void quit(Integer id) {
+ Coach coach = coachMapper.selectById(id);
+ if (coach.getQuitDate() != null) {
+ throw new RuntimeException("该教练已离职");
+ }
coachMapper.quit(id, DateUtil.today());
}
@Override
public void rejoin(Integer id) {
+ Coach coach = coachMapper.selectById(id);
+ if (coach.getQuitDate() == null) {
+ throw new RuntimeException("该教练在职中");
+ }
coachMapper.rejoin(id);
}
diff --git a/src/main/java/edu/situ/stlserver/service/impl/MemberServiceImpl.java b/src/main/java/edu/situ/stlserver/service/impl/MemberServiceImpl.java
index 7892e84..9f6397d 100644
--- a/src/main/java/edu/situ/stlserver/service/impl/MemberServiceImpl.java
+++ b/src/main/java/edu/situ/stlserver/service/impl/MemberServiceImpl.java
@@ -44,6 +44,10 @@ public class MemberServiceImpl implements MemberService {
@Override
public void cancel(Integer id) {
+ Member member = memberMapper.selectById(id);
+ if (member.getEndDate() != null) {
+ throw new RuntimeException("该会员已过期");
+ }
memberMapper.cancel(id, DateUtil.today());
}
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 3a36942..6c06272 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -1,3 +1,26 @@
+-- 教练模拟数据
+INSERT INTO `coaches` (`name`, `sex`, `avatar`, `remark`, `quit_date`) VALUES
+('铁娃', 1, NULL, '擅长瑜伽和普拉提', '2024-12-15'),
+('小明', 1, NULL, '力量训练专家', NULL),
+('张伟', 1, NULL, '搏击教练,散打冠军', '2025-01-20'),
+('李娜', 2, NULL, '有氧舞蹈教练', NULL),
+('王强', 1, NULL, '资深健身教练', '2024-11-08'),
+('刘芳', 2, NULL, '普拉提认证教练', NULL),
+('陈刚', 1, NULL, '动感单车教练', '2025-03-10'),
+('赵敏', 2, NULL, '游泳教练', NULL),
+('周涛', 1, NULL, '拳击教练', '2024-10-25'),
+('吴雪', 2, NULL, '形体塑造教练', NULL),
+('孙磊', 1, NULL, '康复训练专家', '2025-02-14'),
+('朱婷', 2, NULL, '舞蹈教练', NULL),
+('林浩', 1, NULL, '攀岩教练', '2024-09-30'),
+('杨丽', 2, NULL, '空手道教练', NULL),
+('黄勇', 1, NULL, '肚皮舞教练', '2025-04-05'),
+('徐静', 2, NULL, 'CrossFit教练', NULL),
+('马超', 1, NULL, '户外拓展教练', '2024-08-18'),
+('罗娟', 2, NULL, '瑜伽教练', NULL),
+('梁鑫', 1, NULL, '格斗教练', '2025-05-22'),
+('宋雨', 2, NULL, '有氧操教练', NULL);
+
-- 会员模拟数据
INSERT INTO `members` (`name`, `sex`, `phone`, `level`, `remark`, `start_date`, `end_date`, `remain_count`, `total_spend`) VALUES
('张三', 1, '13800138001', '金卡', '年卡会员,喜欢瑜伽', '2024-01-15', '2025-01-15', NULL, 5999),