From d61a2422b6a3efecd2c4fb2d165b582b9e89d10f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E4=BA=9A=E9=B9=8F?=
<13666640+zhao-yapengaaa@user.noreply.gitee.com>
Date: Tue, 18 Nov 2025 16:15:33 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E8=87=B4=E6=9D=83=E9=99=90=E6=8E=A7?=
=?UTF-8?q?=E5=88=B6=E5=AE=8C=E6=88=90=EF=BC=8C=E6=96=B0=E5=A2=9E=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 26 +++++++-
.../stusystem/controller/ClassController.java | 57 ++++++++++--------
.../controller/StudentController.java | 25 +++++---
.../cn/zyp/stusystem/entity/GradeClass.java | 9 ++-
.../service/impl/ClassServiceImpl.java | 25 +++++---
src/main/resources/application.yaml | 11 +++-
target/classes/application.yaml | 11 +++-
.../controller/ClassController.class | Bin 4459 -> 4687 bytes
.../controller/StudentController.class | Bin 4341 -> 4681 bytes
.../cn/zyp/stusystem/entity/GradeClass.class | Bin 3972 -> 4550 bytes
.../service/impl/ClassServiceImpl.class | Bin 2300 -> 3214 bytes
11 files changed, 119 insertions(+), 45 deletions(-)
diff --git a/pom.xml b/pom.xml
index 67c555d..63cfa8e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,31 @@
com.baomidou
mybatis-plus-boot-starter
- 3.5.5
+ 3.5.5
+
+
+
+ io.jsonwebtoken
+ jjwt-api
+ 0.11.5
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ 0.11.5
+ runtime
+
+
+ io.jsonwebtoken
+ jjwt-jackson
+ 0.11.5
+ runtime
+
+
+
+ cn.dev33
+ sa-token-spring-boot3-starter
+ 1.37.0
diff --git a/src/main/java/cn/zyp/stusystem/controller/ClassController.java b/src/main/java/cn/zyp/stusystem/controller/ClassController.java
index b237337..6236489 100644
--- a/src/main/java/cn/zyp/stusystem/controller/ClassController.java
+++ b/src/main/java/cn/zyp/stusystem/controller/ClassController.java
@@ -1,11 +1,10 @@
package cn.zyp.stusystem.controller;
-
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.zyp.stusystem.entity.GradeClass;
import cn.zyp.stusystem.service.ClassService;
-import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@@ -16,53 +15,61 @@ import java.util.Map;
@RequestMapping("/api/class")
public class ClassController {
- //测试git
-
@Autowired
private ClassService classService;
- //根据年级查询班级列表
+ // 根据年级查询班级列表 - 所有登录用户都可以查看
+ @SaCheckLogin
+ @SaCheckPermission("class:view")
@GetMapping("/list")
- public Map getClassList(@RequestParam Integer grade,@RequestParam(required = false) String name){
+ public Map getClassList(@RequestParam Integer grade, @RequestParam(required = false) String name) {
List gradeClasses = classService.findClassByGradeId(grade);
System.out.println(gradeClasses);
- //过滤班级名称
- if(name != null){
- gradeClasses= gradeClasses.stream().filter(gradeClass -> gradeClass.getName().contains(name)).toList();
+ // 过滤班级名称
+ if (name != null) {
+ gradeClasses = gradeClasses.stream().filter(gradeClass -> gradeClass.getName().contains(name)).toList();
}
- Map result = new HashMap<>();
- result.put("data",gradeClasses);
+ Map result = new HashMap<>();
+ result.put("data", gradeClasses);
return result;
}
- //新增班级
+ // 新增班级 - 只有管理员有权限
+ @SaCheckLogin
+ @SaCheckPermission("class:add")
@PostMapping("/add")
- public boolean addClass(@RequestBody GradeClass gradeClass){
+ public boolean addClass(@RequestBody GradeClass gradeClass) {
return classService.save(gradeClass);
}
- //编辑班级
+ // 编辑班级 - 只有管理员有权限
+ @SaCheckLogin
+ @SaCheckPermission("class:edit")
@PutMapping("/edit")
- public boolean editClass(@RequestBody GradeClass gradeClass){
+ public boolean editClass(@RequestBody GradeClass gradeClass) {
return classService.updateById(gradeClass);
}
- //删除班级
+ // 删除班级 - 只有管理员有权限
+ @SaCheckLogin
+ @SaCheckPermission("class:delete")
@DeleteMapping("/delete/{id}")
- public boolean deleteClass(@PathVariable Integer id){
- if(classService.isClassHasStudent(id)){
+ public boolean deleteClass(@PathVariable Integer id) {
+ if (classService.isClassHasStudent(id)) {
return false;
- }else {
+ } else {
return classService.removeById(id);
}
}
+ // 检查班级是否有学生 - 所有登录用户都可以查看
+ @SaCheckLogin
+ @SaCheckPermission("class:view")
@GetMapping("/check")
- //检查班级是否有学生
- public Map checkClassHasStudent(@RequestParam Integer classId){
- Map result = new HashMap<>();
- result.put("data",classService.isClassHasStudent(classId));
+ public Map checkClassHasStudent(@RequestParam Integer classId) {
+ Map result = new HashMap<>();
+ result.put("data", classService.isClassHasStudent(classId));
return result;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/cn/zyp/stusystem/controller/StudentController.java b/src/main/java/cn/zyp/stusystem/controller/StudentController.java
index ffc9e77..fa92c72 100644
--- a/src/main/java/cn/zyp/stusystem/controller/StudentController.java
+++ b/src/main/java/cn/zyp/stusystem/controller/StudentController.java
@@ -1,6 +1,7 @@
package cn.zyp.stusystem.controller;
-
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.zyp.stusystem.entity.Student;
import cn.zyp.stusystem.service.StudentService;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,7 +19,9 @@ public class StudentController {
@Autowired
private StudentService studentService;
- //获取学生列表
+ // 获取学生列表 - 所有登录用户都可以查看
+ @SaCheckLogin
+ @SaCheckPermission("student:view")
@GetMapping("/list")
public Map getStudentList(
@RequestParam Integer page, // 页码(从1开始)
@@ -27,7 +30,7 @@ public class StudentController {
@RequestParam(required = false) Long classId, // 班级ID
@RequestParam(required = false) String name
) {
- //参数校验
+ // 参数校验
if (page == null || page < 1) {
page = 1;
}
@@ -37,25 +40,31 @@ public class StudentController {
result.put("list", studentPage.getRecords());
result.put("total", studentPage.getTotal());
- //测试
+ // 测试
System.out.println("后端返回的学生数据:" + result);
return result;
}
- //新增学生
+ // 新增学生 - 管理员和班主任有权限
+ @SaCheckLogin
+ @SaCheckPermission("student:add")
@PostMapping("/add")
public boolean addStudent(@RequestBody Student student) {
return studentService.save(student);
}
- //编辑学生
+ // 编辑学生 - 管理员和班主任有权限
+ @SaCheckLogin
+ @SaCheckPermission("student:edit")
@PutMapping("/edit")
public boolean editStudent(@RequestBody Student student) {
return studentService.updateById(student);
}
- //删除学生
+ // 删除学生 - 管理员和班主任有权限
+ @SaCheckLogin
+ @SaCheckPermission("student:delete")
@DeleteMapping("/delete/{id}")
public boolean deleteStudent(@PathVariable String id) {
if (id.contains(",")) {
@@ -65,4 +74,4 @@ public class StudentController {
return studentService.removeById(id);
}
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/cn/zyp/stusystem/entity/GradeClass.java b/src/main/java/cn/zyp/stusystem/entity/GradeClass.java
index f7dbe7f..2e306a9 100644
--- a/src/main/java/cn/zyp/stusystem/entity/GradeClass.java
+++ b/src/main/java/cn/zyp/stusystem/entity/GradeClass.java
@@ -22,6 +22,11 @@ public class GradeClass {
@TableField("grade")
private Integer grade;
- @TableField("head_teacher")
+ // 数据库字段是 head_teacher_id,类型应该是Long(关联user表的id)
+ @TableField("head_teacher_id")
+ private Long headTeacherId;
+
+
+ @TableField(exist = false)
private String headTeacher;
-}
+}
\ No newline at end of file
diff --git a/src/main/java/cn/zyp/stusystem/service/impl/ClassServiceImpl.java b/src/main/java/cn/zyp/stusystem/service/impl/ClassServiceImpl.java
index a86d065..c458193 100644
--- a/src/main/java/cn/zyp/stusystem/service/impl/ClassServiceImpl.java
+++ b/src/main/java/cn/zyp/stusystem/service/impl/ClassServiceImpl.java
@@ -3,17 +3,13 @@ package cn.zyp.stusystem.service.impl;
import cn.zyp.stusystem.entity.GradeClass;
import cn.zyp.stusystem.entity.Student;
+import cn.zyp.stusystem.entity.User;
import cn.zyp.stusystem.mapper.ClassMapper;
import cn.zyp.stusystem.mapper.StudentMapper;
+import cn.zyp.stusystem.mapper.UserMapper;
import cn.zyp.stusystem.service.ClassService;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.ConfigurationKeys;
-import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -25,12 +21,27 @@ public class ClassServiceImpl extends ServiceImpl imple
@Autowired
private StudentMapper studentMapper;
+ @Autowired
+ private UserMapper userMapper;
@Override
public List findClassByGradeId(Integer gradeId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("grade",gradeId);
- return baseMapper.selectList(queryWrapper);
+ List classes = baseMapper.selectList(queryWrapper);
+
+ // 为每个班级设置班主任姓名
+ for (GradeClass gradeClass : classes) {
+ if (gradeClass.getHeadTeacherId() != null) {
+ // 根据headTeacherId查询班主任姓名
+ User teacher = userMapper.selectById(gradeClass.getHeadTeacherId());
+ if (teacher != null) {
+ gradeClass.setHeadTeacher(teacher.getName());
+ }
+ }
+ }
+
+ return classes;
}
@Override
diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml
index eb8bbda..6c25346 100644
--- a/src/main/resources/application.yaml
+++ b/src/main/resources/application.yaml
@@ -5,9 +5,18 @@ spring:
username: root
password: 123456
+
# MyBatis-Plus ??
mybatis-plus:
mapper-locations: classpath:mapper/*.xml # Mapper.xml ????
type-aliases-package: com.example.student.entity # ??????
configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # ??SQL?????????
\ No newline at end of file
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # ??SQL?????????
+
+sa-token:
+ token-name: Authorization # token名称(与前端对应)
+ timeout: 7200 # token有效期(秒)
+ active-timeout: -1 # 活跃有效期(-1代表不限制)
+ is-concurrent: true # 是否允许并发登录
+ is-share: false # 在多人登录时是否共享token
+ token-style: uuid # token生成风格
diff --git a/target/classes/application.yaml b/target/classes/application.yaml
index eb8bbda..6c25346 100644
--- a/target/classes/application.yaml
+++ b/target/classes/application.yaml
@@ -5,9 +5,18 @@ spring:
username: root
password: 123456
+
# MyBatis-Plus ??
mybatis-plus:
mapper-locations: classpath:mapper/*.xml # Mapper.xml ????
type-aliases-package: com.example.student.entity # ??????
configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # ??SQL?????????
\ No newline at end of file
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # ??SQL?????????
+
+sa-token:
+ token-name: Authorization # token名称(与前端对应)
+ timeout: 7200 # token有效期(秒)
+ active-timeout: -1 # 活跃有效期(-1代表不限制)
+ is-concurrent: true # 是否允许并发登录
+ is-share: false # 在多人登录时是否共享token
+ token-style: uuid # token生成风格
diff --git a/target/classes/cn/zyp/stusystem/controller/ClassController.class b/target/classes/cn/zyp/stusystem/controller/ClassController.class
index bc5e4c2b293ee9ca89a41e890c022d063de4b520..420bd9b5a4f78479267adb3dc7659b6ef1fbac40 100644
GIT binary patch
delta 849
zcma)(%TE(g6vn?>Xr?nvJCmBwph>G}Vyz)#Qlp6#4HAPSU68Ot6EkUVaBQ8D&QMfT
z3W(x^`ncd56$RffWM_=--5Ay;F5J5DFEF0AT8xH-#hvq*@BGfW=YDVgyg~W&^W6sk
zt#~`H^hiUoWXd+uybzBYj_Kwy+%`!OZq^1|^j>9cM?u;sXp@lev7a;q>J#TYQlsq9g^xtn^ipt0FU<7DeA!;CBsA
zTQ1dz8964l$QyOFs!H=LcZs}REJ~XehGnlOFr(lB9!i*1F^5MBlMOz$_Nf9No~gKj
zn>t1q)K1&x`S$WO+>!7~yjNrOZy3VjqZ$@Ie>c;`0smmrYBXRCf(WA#5wu_(wxJnq
zSTBC~i>+bQVSu)H6b#4qgE=^k!J2;pC+T0%Ly1%5l)nr^Jt&eH#)y~>#MoxhriD62
zahh^2iM$M>WDe5#A3laNB+$TY*cA65|#4xe75PTC`OxUZ(C{A@w{i)TkH#rA~+m
zEg>i1$4+S2B^I?%R|yssIMlTcO#3r-Y1y$a;c~6Pm8Aw(D`N{xim1L@?x6SCM|bWN
zeR_yZiE%x;XNna4bUe7W%troR_w^+-ty@>hZ!Ny*Q8R)RK^h4I$T*A)*|JyNPd#o?
o8j9Rw=$u_kD~fc#ap8Q7H2guQ89NUoIB3VE_OC
delta 680
zcmb7>%TE(g6o}9r{E4r@ZM);%;S^26jij3|tGkU`6
zQYpP`4b^WV#%9uNp%$AKnrLM!1+scHKGG6LaaQ8oQIyMhF31zoA!!Ur;;o8{-CUCG
zGQ+x%$REseLXK()$r|G%j_h7G!WFqSAbD6x0mmgg{8foE{+f@EC~1t!q2jvFtka8$
zn$B(i%e@hBZ~n`@r4J|Dds?w*Bf+k9D6^W9y{f4o2LmjJWGd
zzsG&OlHAj{SAL~HhJF4JTTqD2Yqr>o>tm_h_HpSBN`!b2_)@X`VFfO>Ck^k9^?WL)
xZ2c!y*HL!1ipM_Si4RB%>Z#Pv0)@|cA+;&>OA#@}H1GK!9YZ=F`OH`9{{ko>b5{TW
diff --git a/target/classes/cn/zyp/stusystem/controller/StudentController.class b/target/classes/cn/zyp/stusystem/controller/StudentController.class
index 483135e81fc01af9c4ddd5e8f8f7eb64c6e3b67b..1563ff3080b3ca57937729eb9b66699a46387abd 100644
GIT binary patch
delta 1756
zcmbtU>vI!T6#w01lTCLou@9+DwUM?6O`5V|3rZ_R3Km*Zd8C2`tS-$GLenHR+m<34
zeBuLzdVS#&@QGF}6x#%6&>58(ozXwQFa8mZ(WIa`6&?wa8B>T2_GvB{CEa6`Y~$fIg~g2|XFpx{{_5Glm&F@uay!PmCB0
z&W1pj72)N$4y6q8sAb=>kD;=mD-d1~+*X2eRLHoVV=*cjng){Eq4BhqF-J1v8Pgb=
z=-Z=K!6&1d<3`*x@$E0nFOIXy>KZsbsAZ56@r!|b(;Ht=o*tFT(e?H2Ys#A!!`xa6o*ThS)tPELHZ
zi{Bip+;?%TM~A3(cBmV1w~S7XP1r1A&Q?zqx;gGaSe$j%2C8r`#}CH~|=X_mn+g4~~FaEDW=!I3m-X{;PH#EfJ1(?Upl8h9vF0;D8j;q%k~c6okh6G#4kb9ageOT_?4o?2OrRXV7_D(yPtkJVX}cqS%KQxJM+w!lyTLMe4$l|m
z7jTTu0#>_TB;nsX!%Mqx+&0@{){;+Pf*@FZT}N503RSxid2~52N$SbD!CPKzlLKLHL^8Juam&=#x;@jEJV`&|B#%-n_$^FC~w)c
zU4`UryfeqiVJg+?b)d0)>kPJ^M3pVv-(ztU%3)6)dkNeeWBUp?o%Ym~+oREm68hbh
zVl({cwlOcE3rpd}yU4z06B#HH8Nex;BW90<6U;x)=qW;Ay~l;!KaDd*M&JLZj1S0J
p!iTgw@R1#AJ@1c6|D@=C7B!!e!9#}6Xr03}X$naf=>6p2`x}$%Ll^)6
delta 1401
zcma))%X8CJ6vsa|za+mreu*WO+BBNBT9LHD2((HoFAE~n))rbtK+zxcAv8A8rd6~W
zQ1OML_4-0ZMa9>+Q0V}{8CPy}1{W^<3tXuiw~XihTBC#GjEj5T_nhx}eBbg%bL58$
z=e`Bj@cC>c7Yh?2Y!h*a;>?~bMB`jyQ{%9Rgl<$ns!R2+s;;3HE5v0Ae}3O&DN2$C
zo0P-lT%psx!Du5*Hq8!Ka+RL(4fbBG2$TvXH*Z3(aac-55gHpQ4H=`tTAJyJ&_>o~
znZvc@6!HD;w42Mj6JxpF!o--uo_6z7BmJX#kyRgE&I+5A4()X4cB>NCity=w))e?$xlS4Nf^aZOq6X#}!O>9s^ri#OEX{7tWmf;Ya6)GE{
zhg)rW9s0OUZ}zVZ^)TSDm2LW{zdbs{?KXEfZ0AmW-oHum?sVA2T{;!Win80`9_~HW
zA2{#R+0dM7*C(PGeJ~skc<}X+@XvZOa(KbMJi0p;8!Wkd$NSvkkh>>;>UeaciXV^g
zF7MgAZ@N06e{;T5AL_Z-O7*e+CD!WyRFT%HSh}nT_7)1`Q$?C(Z9dte5-N)m?ur%^
zzDIaKc)-*4ik1^i8Efkq)K?<-7#3=Rp@tEmCV}}j%9wD)ee4s>eEwbHLc#}H=P284
z*=0$8GEgBFq$~IhwL8wRxXVu3iMnL4LcO9w+G4vHT8v?d;w-K6wy(J^X`kbII89g5
z{!)@!9*_np0cjF6lA?*Mbhn-sS;rC&+_rfDjFvrgf`$Ezdx!_fi)02d!2Kdwo-{!L
zzb6%WK>A3?Z9K@Nlu6M+i79NR#a|~s=Y0=VeGiN8fcO>%qzIB8NemP6ie({>$n){2
zH}1G#n34C`F4QECWBeI2`-37}OcjTA@`Puuicj*C05xM?CrM2kQ5mz{R$;x5FGT(4
zrm~dHstjm}TUeEm4)e66HJ}4Z6sp*s5%WB@XFY7Txr65_zi@Ho7dg7n^Ne(27M5vC+;W;N$Ef#&{ysB<>{$jY><};u6S><**^FfVW)j|l
zR}rRDPPj|1XSD~iN&Gd$d5M?3Ic2JI$}lU(pm@d0q0)a1Y*utvo>``@!hZE{*sqDx
p&+9@veZ1ktCM5TpVmMZfe~Y(84~hPcybt(Dw1`M2`Gn6%{s}a_(-i;!
diff --git a/target/classes/cn/zyp/stusystem/entity/GradeClass.class b/target/classes/cn/zyp/stusystem/entity/GradeClass.class
index 9136d3d369d1494cf757c8cfe94df36921eca6f5..74a068f1101372fd63a94665d2c66e5846af1c31 100644
GIT binary patch
literal 4550
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
DK0x=8
diff --git a/target/classes/cn/zyp/stusystem/service/impl/ClassServiceImpl.class b/target/classes/cn/zyp/stusystem/service/impl/ClassServiceImpl.class
index 9f1f0a84d9e145578371f55fb9b30a8bbc9da7f5..9ff569db4ab2afd0b5c32386d6c6c0b7765303e4 100644
GIT binary patch
delta 1282
zcmZWp-%}e^6#njJH=8UArA*7PS^@?_Lkb3JEl6moZPii(RiTZo)Vd^VSV)0p7i_CD
zneo~2q3eq;KH8T)*uhB$opE^TgMW;FfOe|i-E67oWODDh=jZpGbCPF=zqO3tpa1e3
zfHU~&vGJE^w4oO%9epPH@tQ!#s=aOJw|uvjFS?#DkZ^scZu=W`f$r>Z@uhh-(ihq=
zfI%G@6GJ#I(Di>80e!{x=AFCD7t0RckP*WsayTIdpst7dBQKKI?DcB?%JQmH_6s^j
z1=4}g(nSL!$eS3$xIkys@h>@cWzn(AD^7j3!m0OSy)KQ1gtapkYZHdwYO+A;fo2_*G}t1eTDL3C1zC&ze4q^mlj@yU
z^su-?Rp-AJMeb4Xqx!Wt9o*C=JK7g~yS&C(EXuC!3~5QRGZRmW#>Y_jAz%pH;D*L|
zf5KalBm9pp#rarJ8|gAmG+~x*)s-^BCE$}_2rIZ!e!^o6oX-&NT
z6dA^x4CP&%R%n`@id*rgXty*g-o)7^&OiKnZ}cbDQz0?tVDRik0*w?p(T5b$+>!xK
zK7$f}QA;?E&*|oJAtaHrq*cNplu@BHO^ZXjM$1}6PD)j*kYs{hE>_vW6y~U{k?L)F
zc2m=`t?%15CTQHGu?w;17}BBZ=+!YW^Cw;IP_GGQ1?v1N@R;4l7Nwbv
za!U$-`NnB__i#0RyqVs~>qXZ*CHDeDD
zH+*R5}MZ7_@xF0fFIQH&8K$u4(&F*DB01T&^!BQVLMVT$Ex%<$Et
z-n`Y>x*vds_#>J%+#}+-xP&yWVCXrH7=L)ebZ#S0^bb$umnVYR5>N0SkDHm}(s?@C
d&^{5Ckdp$D65uTJdI@m>iv`rB-+x#Jz5%j8Lw*1N