fix: 修复MemberMapper SQL优先级、Coach/Member状态校验、AuthInterceptor放行图片、添加教练模拟数据

This commit is contained in:
Administrator 2026-07-13 08:25:56 +08:00
commit 9d430d48df
6 changed files with 56 additions and 3 deletions

17
pom.xml
View file

@ -56,6 +56,23 @@
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.12.6</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.12.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.12.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>

View file

@ -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;
}

View file

@ -19,7 +19,7 @@ public interface MemberMapper {
"<if test=\"sex != null and sex != 0\"> AND `sex` = #{sex}</if>",
"<if test=\"status != null and status != 1\">",
"<choose>",
"<when test=\"status == 2\"> AND end_date IS NULL OR end_date &gt;= CURDATE()</when>",
"<when test=\"status == 2\"> AND (end_date IS NULL OR end_date &gt;= CURDATE())</when>",
"<when test=\"status == 3\"> AND end_date IS NOT NULL AND end_date &lt; CURDATE()</when>",
"</choose>",
"</if>",

View file

@ -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);
}

View file

@ -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());
}

View file

@ -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),