From 1ba81beb0abbcbfa000db39a96dcf199a8b571dd 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: Fri, 21 Nov 2025 10:14:37 +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 --- .../stusystem/controller/RoleController.java | 133 ++++++++++++++++++ .../stusystem/controller/UserController.java | 52 +++++++ .../cn/zyp/stusystem/dto/UserSimpleDTO.java | 13 ++ .../controller/PermissionController.class | Bin 0 -> 2815 bytes .../stusystem/controller/RoleController.class | Bin 0 -> 9165 bytes .../controller/RolePermissionController.class | Bin 0 -> 697 bytes .../stusystem/controller/UserController.class | Bin 0 -> 5696 bytes .../dto/SaveRolePermissionsDTO.class | Bin 0 -> 2207 bytes .../cn/zyp/stusystem/dto/UserSimpleDTO.class | Bin 0 -> 2540 bytes .../cn/zyp/stusystem/entity/Permission.class | Bin 0 -> 6677 bytes .../cn/zyp/stusystem/entity/Role.class | Bin 0 -> 5270 bytes .../zyp/stusystem/entity/RolePermission.class | Bin 0 -> 3733 bytes .../stusystem/mapper/PermissionMapper.class | Bin 0 -> 401 bytes .../cn/zyp/stusystem/mapper/RoleMapper.class | Bin 0 -> 383 bytes .../mapper/RolePermissionMapper.class | Bin 0 -> 413 bytes .../stusystem/service/PermissionService.class | Bin 0 -> 454 bytes .../service/RolePermissionService.class | Bin 0 -> 867 bytes .../zyp/stusystem/service/RoleService.class | Bin 0 -> 423 bytes .../service/impl/PermissionServiceImpl.class | Bin 0 -> 3427 bytes .../impl/RolePermissionServiceImpl.class | Bin 0 -> 6783 bytes .../service/impl/RoleServiceImpl.class | Bin 0 -> 3227 bytes .../cn/zyp/stusystem/vo/PermissionVO.class | Bin 0 -> 3264 bytes 22 files changed, 198 insertions(+) create mode 100644 src/main/java/cn/zyp/stusystem/controller/RoleController.java create mode 100644 src/main/java/cn/zyp/stusystem/controller/UserController.java create mode 100644 src/main/java/cn/zyp/stusystem/dto/UserSimpleDTO.java create mode 100644 target/classes/cn/zyp/stusystem/controller/PermissionController.class create mode 100644 target/classes/cn/zyp/stusystem/controller/RoleController.class create mode 100644 target/classes/cn/zyp/stusystem/controller/RolePermissionController.class create mode 100644 target/classes/cn/zyp/stusystem/controller/UserController.class create mode 100644 target/classes/cn/zyp/stusystem/dto/SaveRolePermissionsDTO.class create mode 100644 target/classes/cn/zyp/stusystem/dto/UserSimpleDTO.class create mode 100644 target/classes/cn/zyp/stusystem/entity/Permission.class create mode 100644 target/classes/cn/zyp/stusystem/entity/Role.class create mode 100644 target/classes/cn/zyp/stusystem/entity/RolePermission.class create mode 100644 target/classes/cn/zyp/stusystem/mapper/PermissionMapper.class create mode 100644 target/classes/cn/zyp/stusystem/mapper/RoleMapper.class create mode 100644 target/classes/cn/zyp/stusystem/mapper/RolePermissionMapper.class create mode 100644 target/classes/cn/zyp/stusystem/service/PermissionService.class create mode 100644 target/classes/cn/zyp/stusystem/service/RolePermissionService.class create mode 100644 target/classes/cn/zyp/stusystem/service/RoleService.class create mode 100644 target/classes/cn/zyp/stusystem/service/impl/PermissionServiceImpl.class create mode 100644 target/classes/cn/zyp/stusystem/service/impl/RolePermissionServiceImpl.class create mode 100644 target/classes/cn/zyp/stusystem/service/impl/RoleServiceImpl.class create mode 100644 target/classes/cn/zyp/stusystem/vo/PermissionVO.class diff --git a/src/main/java/cn/zyp/stusystem/controller/RoleController.java b/src/main/java/cn/zyp/stusystem/controller/RoleController.java new file mode 100644 index 0000000..1847111 --- /dev/null +++ b/src/main/java/cn/zyp/stusystem/controller/RoleController.java @@ -0,0 +1,133 @@ +package cn.zyp.stusystem.controller; + +import cn.zyp.stusystem.common.Result; +import cn.zyp.stusystem.dto.SaveRolePermissionsDTO; +import cn.zyp.stusystem.entity.Role; +import cn.zyp.stusystem.service.RolePermissionService; +import cn.zyp.stusystem.service.RoleService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/api/role") +public class RoleController { + + @Autowired + private RoleService roleService; + + @Autowired + private RolePermissionService rolePermissionService; + + /** + * 获取角色列表(分页查询) + */ + @GetMapping + public Result> getRoleList( + @RequestParam(defaultValue = "1") Integer current, + @RequestParam(defaultValue = "10") Integer size, + @RequestParam(required = false) String roleName) { + + Page page = new Page<>(current, size); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + + if (roleName != null && !roleName.trim().isEmpty()) { + wrapper.like(Role::getRoleName, roleName); + } + + wrapper.orderByDesc(Role::getCreatedAt); + + Page rolePage = roleService.page(page, wrapper); + + Map result = new HashMap<>(); + result.put("list", rolePage.getRecords()); + result.put("total", rolePage.getTotal()); + + return Result.success(result); + } + + /** + * 获取角色详情 + */ + @GetMapping("/{roleId}") + public Result getRoleById(@PathVariable Long roleId) { + Role role = roleService.getById(roleId); + if (role == null) { + return Result.error(404, "角色不存在"); + } + return Result.success(role); + } + + /** + * 创建角色 + */ + @PostMapping + public Result createRole(@RequestBody Role role) { + if (role.getStatus() == null) { + role.setStatus(1); + } + boolean success = roleService.save(role); + if (success) { + // 返回创建的角色对象(包含ID),这样前端才能获取到角色ID来保存权限 + return Result.success(role); + } else { + return Result.error("创建失败"); + } + } + + /** + * 更新角色 + */ + @PutMapping("/{roleId}") + public Result updateRole(@PathVariable Long roleId, @RequestBody Role role) { + role.setId(roleId); + boolean success = roleService.updateById(role); + return success ? Result.success(true) : Result.error("更新失败"); + } + + /** + * 删除角色 + */ + @DeleteMapping("/{roleId}") + public Result deleteRole(@PathVariable Long roleId) { + Role role = roleService.getById(roleId); + if (role == null) { + return Result.error(404, "角色不存在"); + } + boolean success = roleService.removeById(roleId); + return success ? Result.success(true) : Result.error("删除失败"); + } + + /** + * 获取角色的权限列表 + */ + @GetMapping("/{roleId}/permissions") + public Result> getRolePermissions(@PathVariable Long roleId) { + List permissionCodes = rolePermissionService.getPermissionCodesByRoleId(roleId); + return Result.success(permissionCodes); + } + + /** + * 保存角色的权限配置 + */ + @PostMapping("/{roleId}/permissions") + public Result saveRolePermissions( + @PathVariable Long roleId, + @RequestBody SaveRolePermissionsDTO dto) { + System.out.println("收到权限保存请求: roleId=" + roleId + ", permissions=" + dto.getPermissions()); + try { + rolePermissionService.saveRolePermissions(roleId, dto.getPermissions()); + System.out.println("权限保存成功"); + return Result.success(true); + } catch (Exception e) { + System.out.println("权限保存失败: " + e.getMessage()); + e.printStackTrace(); + return Result.error("保存失败: " + e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/main/java/cn/zyp/stusystem/controller/UserController.java b/src/main/java/cn/zyp/stusystem/controller/UserController.java new file mode 100644 index 0000000..6eef0bf --- /dev/null +++ b/src/main/java/cn/zyp/stusystem/controller/UserController.java @@ -0,0 +1,52 @@ +package cn.zyp.stusystem.controller; + +import cn.dev33.satoken.annotation.SaCheckLogin; +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.stp.StpUtil; +import cn.zyp.stusystem.common.Result; +import cn.zyp.stusystem.dto.UserSimpleDTO; +import cn.zyp.stusystem.entity.User; +import cn.zyp.stusystem.service.UserService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/api/user") +public class UserController { + + @Autowired + private UserService userService; + + @SaCheckLogin + @SaCheckPermission("class:edit") // 或者更宽松的权限 + @GetMapping("/teachers") + public Result> listTeachers() { + List teachers = userService.list( + new LambdaQueryWrapper() + .in(User::getRole, Arrays.asList("head_teacher", "teacher")) + .eq(User::getStatus, 1) + .select(User::getId, User::getName) + ).stream() + .map(u -> new UserSimpleDTO(u.getId(), u.getName())) + .collect(Collectors.toList()); + return Result.success(teachers); + } + + /** + * 获取当前用户的权限列表 + */ + @GetMapping("/permissions") + public Result> getUserPermissions() { + // 从Token中获取当前用户ID + Long userId = StpUtil.getLoginIdAsLong(); + List permissions = userService.getUserPermissions(userId); + return Result.success(permissions); + } +} \ No newline at end of file diff --git a/src/main/java/cn/zyp/stusystem/dto/UserSimpleDTO.java b/src/main/java/cn/zyp/stusystem/dto/UserSimpleDTO.java new file mode 100644 index 0000000..4679ab1 --- /dev/null +++ b/src/main/java/cn/zyp/stusystem/dto/UserSimpleDTO.java @@ -0,0 +1,13 @@ +package cn.zyp.stusystem.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class UserSimpleDTO { + private Long id; + private String name; +} \ No newline at end of file diff --git a/target/classes/cn/zyp/stusystem/controller/PermissionController.class b/target/classes/cn/zyp/stusystem/controller/PermissionController.class new file mode 100644 index 0000000000000000000000000000000000000000..b0c044b99e1403489372c0674112b4ca945e1cd0 GIT binary patch literal 2815 zcmbVOYje{^6g}%a1V$t#g+O?w5JDalQJ|F8fhMH9iUT2r6iQ!fc@sor$(2^lxc{U7 zqn+stgwAyOxzpd&>5=5dGB$zXgS6Vad+)h>?nC?czpwrTa20+YIrJImH!*-gfx>gy zkd`aGb?biRxw5su;GE+*`kFxB)b#3Z?80sXc@ukJ3Y@n+>*r?O3Uw4VL#=9-?Rz@# zT~`IxvI=TW7&^YUxGfaeSKk(wRnTy3C2+RXWhYG6GDcdvi+eDHVFLvd`!FIf^X{qw zht`!|aNQf8thlP$b}$qenVK#ohmW-5S|umcMB0x721ZRB#36y9&Sf$a>Ojewz>yB! zRBDxz#o`EgK5XI$jtUIOdfjaboaorU7J0TNOV-WS2Z4{{gn@ArAL69I!8UM*ZHA;K z>jGD%GM;x^%bu%4znI4aP8*msaRyU7Mi7PogM&d->b z#aRKvP7N?qvOad{v|P;O9eq0o%fNXPAL9Z+yTWYywHirVQDNlLDwG_AI?<^i+pjm51E1Ni9Yw*J9$uzl?C^V4U~DDwv{O^7PUtXg7d+3`GENv; zxl(#F`kIU**RB6aLMu1y{J}E!Na&JSP3QHmhP$yoOs?6 z_UmU3@h>$5CM7UCavP z8ot2E?!7&%m;ETP)lDZ(-m!L;wf{Qj;>Px-V(CR1n~H9$lepe>)?4+bh}vz=hb>um ztSkeC>%Onq17&?l>1Td593I4Xd3=u_4E$(9qQa9Wy*OzFj@R%vlvPS%MGe_1Y}Q9D zJNqZwQCdnVz-{SOT@_B0e19XV7t^FmY?pQ1x3ZEB#fL1U_ghRMch=2z{TA#Z^Rnz{ zRV<(?Fqu73dLJofm0BXwx0dI{WZlFv9u)9Ez`WymDp+)77^={~hQR4ALVIyzfWPzO zJ8xy%Nr~j&c^9uw0JAl|4{@C1Y>?wsj(r??sp9(@XBJ1nabV^J#Bcn_;S0XwWncvJ ze8&d30Sma!QD6~Y(nzfQOMFY?I6Lz@j4kXHD9vu+1A$i<1GaE1hnG0Dh3Opr!v3YR zFY(c@+}@W!jM5}<6nPxO0p2VQ;}jb%=1JyaFfuJ)Vam49By;hD93c| z&i2|@l-=c84yEMOLtI(nbMGlci2H?n91G54_wRC7%+v56xcKA+J}J%2zQpC(*u|8E zp~Q_7q;nj5>BKx&Vo<7J1!a!AVBjGh(O^GTInUwi1a^d9k2!y`4gC$CavpQ}Ev?#6 Pcm{`(JSETJ!o%2q7>PO~ literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/controller/RoleController.class b/target/classes/cn/zyp/stusystem/controller/RoleController.class new file mode 100644 index 0000000000000000000000000000000000000000..ff7f6fc2d50316b3265f6ea100698778023279e9 GIT binary patch literal 9165 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 b^>h5&h5Wlm{oN<-Hq=sF4vAv1Xf7Mf^ z9{L0Nqbg=M5kwHAUS>Qq@4Xq1{rBJRKLEbqWeXKlo2a!>M?;`5t zKyIRA5_sQxpy%hcdtwX5CxKV}+ytG{Pe;GiqT|TaGJc!m9mYKW2I2AI2A`M8H2?qr literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/controller/UserController.class b/target/classes/cn/zyp/stusystem/controller/UserController.class new file mode 100644 index 0000000000000000000000000000000000000000..30e9b01f0141a74f064c5f44db9cd979e573103e GIT binary patch literal 5696 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 literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/dto/SaveRolePermissionsDTO.class b/target/classes/cn/zyp/stusystem/dto/SaveRolePermissionsDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..320131f724fd18500ebdd6b2b8879343edd6fba1 GIT binary patch literal 2207 zcmb7GT~8ZF6g{(Edl%z?A%T=aL(-7MAHbHDek2Ck#0iO8lOT+!)V_2uBfMd~>+X(` z=&$Hw)gREj@Q_L^mGV%vFRj$y)Hc1dyM(oID^-G>nY(w+J@?!@v;O1n7e517MLi1* zDFb>AX=E7kPx&FY9PaL0Pj;V*rew&h*sd+t7*d7e&Jaut8OY`^j2uI`=~`bMb*w;k zgQGx-wzVfctHBS&mgk5~;kWG|ust`pzx{+^xN~NpQ1viYSK5wMw*y(p681IlPW( zir3;ntLp8EFwNRHiStGdS1`+Pxy=tm)pMI%erii{as$a-88FPn%+6AX!-iBF(zo6H z3d2yt-gmj|`UF1L$7>~#TfAY7w&)R+(Yo!5$KCd>@VEJ{L;J_;UXwdJ+_%*_HtMov z6P<$!-`~kZKkdnu@Tv8b zU~@g)I2OL@wOwdP-aOdgoml7e=2mUv0pZuEhkOxq9XcMl-aV%DqB=5MIu)z89kLCt z>o>)^t?D^F_^d1{^2GC==gC0&yc5Y0jArm*79ZiRfqSYwtJG0vdD`xwcOa}Ne$=t+ zyeU2Zh~b;$DT*B<&_~?eb3`y#_q>B{r;^YuZpehCXX7@NYk>Rb3IFI0sU(j@3{mBd z)3Bwem>@-O43?pgDA6h_lGrtunz8EeAP|9pN3`=?`h&7E@G--c|8}LCMiSr}-7Om3 z0F0h=&Cz(3RvOt2n$tZ=^Eb(2(TdTSF8u`deduzXo|({?!5q!iW^%v{+@$eV{I)cg2w@9as%fGKe8*b zIQ4~c&X_oXAp!lNElZ3$G&$Ab8bnTG7$XKwnK-RrGl#@NB!Psj!uSd=YvL`O5ip3i z8n7JhLTvLK#@i;&;v9L_EWbAIRhdzIa;h{$<<6V9fQtgB8`h3J@3|FAe(p#*xxTbq z=?h%%%qXDQK|2c4nMp_7OC~Pk9kRaVxQ@IXM14R}Lkfc{j%%;B8rybr%i697GJ6%P z{=jNFY9ARjS#wBZV&%;hEef33Xt~m9*d_O|<2yvTHwmGV zno#YR3@pJi6&S;gONZugb9_@;m7TJ+8%d(CZ=Wr^J0pAC-%N z4S}=&?aG3NiQ_zHe3%m&;~$T-V8t_u*EEDWN@$sQ#E%RU!yzRjKsrU6A{kOr zE0v?bd$j7D6J&aLzK;)%f;avzyppaBpX!6>fg8d9NoEFF)TVRaL)V^8|BBdm(Bn_1 zUm{kX$vwxhV9Uke>I}aM+U##QmepS2#1ojaS?xJa9(arvbh?Zd5?NjOBwk_Y365v= zY~sL4d&*exK7E!$4sCsExQc5`U<8}E&N9X@fqVFnwm9{?jT>BPSYp@Q>F&ZvYZDFqV2&1VNTqMj*hF3+?l_HAuzg1Olv)0K~ zv5u;Gy$7AsfOCXVZTttXI6hh&z@k)+lW~oBLrR<{xP2I?9(Ve6c zoVUh~7V>I{8c~Wq3zS4Q8Xba6olBP z)8U@xeHKJNa5(VMx=nQJ>E%1^nY+RGYIp}!!Ya8JtQC5PFC3Y0iU*=hx~KRu?nYHA z6ERN2!Q9W72nH}W^9+4sk_@JBJalc>Yml;p2gjiL{X-~Kxs<9*hKAmmmP k_Ksxg4QEFj^NbQ>KQHi_q#%p@U%@JOYG~K+DZ4)V5AcD{+5i9m literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/entity/Permission.class b/target/classes/cn/zyp/stusystem/entity/Permission.class new file mode 100644 index 0000000000000000000000000000000000000000..f5fc40bfd4e8e6a84c92a75afc4f6d5cc6a3d22b GIT binary patch literal 6677 zcmcIoS&$o76}@jpQfq0=qFL;Y9VbrYFpF)m8q(u2OlIuKm>KVO5{D%{QpY2Yq@Ji- zjwfMH*urM^5FqR^1Vcy_F-3}^;Db=bH^m41z#o5nQxMF#@3mSjO~=wts;1}Nckj8U z-*)f2>OcMO<=+y~EWMbfKI+#frc;~}f`%?ym#jj?s$D1?U%hA-Jwb_snuUrE0a*KJ{ zsa=?1rU9J>X-H74=#*?hxe(^GS1GQ?x1zu$)0pl1%C}B|RD&CFPL@&t9GO z(SAY6qE$QmNW-cK8k-0WLv6v#kjL5gmp~1A~%k;_v*C7+H9b0;@_>)GFt{2$j3cDA(-eRNi*b95i}Va;;a)YNd;mvRV^2Xs154+`2=wbt!6gto;2Fs++5@xEqy*Td)FL;fw{prP2%{+}qqhgzxRi zZK-qyX!e>rd*(PAwIzeg<(hr0QC+p`l9&?)2iiHSUgj71%9yuS#t8Gv-E$LOvBRI_ zQteX2G;_-pr@HE_7Z&ZBUFX1sOWaifII?BqC(j|#t=Qh0Q#xVQaqd04j-hC9P*Z4& zZhxWKi4lD6IU_Zr12GZE$~J(0C=zh~p$G-^cz8g~!@%@Rs^VDrgkol=?-O+>;K^?Y zLPd~p+OxEups*&6x5i0SbpKo+Qg`Q$s&Wy*v z0d&c#G{BYF2&x23Vdx&m@m#NNZKw!x2NU$eH2sL4)95N^;U6QYTSY{Six^mI57e4rw|*Q%8&wwqseob|@WOelH!(HPRSIm(O_GWzfbL#pO&9a8xe z^H!yDy6o9ANqSz;<<=5TluNT>@9n&I-16RWtM;xX@w#y@w0GPMPJ-;nlfY82rQ8X& zbXH6v5|(PnWAhcub!}Ipp9$KtWksVFN~0G9?YcP>M^&vV?Z#c(hr5%@5tNA}=soCV z(Y_bY`)qnYJp>aMnxlmQJG4u0$wqBZzM8 zBpT~VgrYZsXm=;kcvm7+rx8T?PNHpHiBPXb5KVLvZSP97MrG=kA!35Ck5B#7^h=~g z$H=%s_%XuqqvH4?{NhO5h|KoDS*J=AeYRJ6&IN*edhWE-SEK2Nd!^?T6VP*~oxT=L zKiVrjXRd&rJMHvNH2t<-={X?=^xSEu--xEarB`~+vjIJK+UXymdeqk5+ABS$?|}Zc zE%a_Q{qA1r`Bn(%@7zM~Q6p;f`CjSyvI*$#+CqORntq~JdcMN~`l&7S_$9AK-#?0o z+=eUa%JkH86pvk-{yin1p?Lqb>EBUuW$)B=nwDJ%g=2g1&y4N+BV~-(D>QtS^nFI` zI=!WdIAF#BIbbG?IAap8Q0^*ajku8rflN~a$TX9N#-OAR(u`yXG;5{+nl;l#ia}`~ zlrqvG(43h8XwKA)41;tZ1StesFtY$Hm;*+ZK?6Q0YYc=yi{>Cei{_9q$eVAg5K@9FB2OQJq)}b$q7Oq#(iiCleFRd9zE1z9k3ve*b^0rP3{r-ELw}|xAnEis zdWoKdl%;>r3-obF11Np2&?g`biUd7HpM*3d_RukNIDw-CFX$G@w!PRT|f*4}VGVDs5L{>U9&F7sjI< zffM7;YJS+?jb-QSF3u6dyA>|v)NZNUu2~UsZMca!1!1|_!7lh?5oj!;7>8vRVVN76 zIT)Lj!MAg0W(}d29GbpL+P>>_<{{P}Fk@^mV!kEG0jW%;8J8x+qI60c@uq3kOh{8A zFd;&f*PN+I6N1zC(we3PGbv5Uz=V)hUW;Z*nh>qNSE^|`YNn+r9heZq%4@~UNE5=> z_sTR)Crw?N^uVM`)6VF?cv7vF9~k{&kiLKei3(n1ajdUkHPa$VU&8YDRZ9@ocnPek%4JHCki~A80PRS;910T6wd)XCY}{MCts%fi8_n@ y@Xy%&5kF&N^lh2uo|QklGkD{7@O;;$@6q>RNTTxtJU^kIqQ?WeMnA_(jQ;~X2+7U> literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/entity/Role.class b/target/classes/cn/zyp/stusystem/entity/Role.class new file mode 100644 index 0000000000000000000000000000000000000000..30b034f41f93c7bef940758d64d9df5a7ecd464d GIT binary patch literal 5270 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 literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/entity/RolePermission.class b/target/classes/cn/zyp/stusystem/entity/RolePermission.class new file mode 100644 index 0000000000000000000000000000000000000000..531ee0f3de1c75e759bd4a1c9df27632a3f77e0e GIT binary patch literal 3733 zcma)8U2_vv7=BK&o86?_HWVmC5JYNi)7JQjl28Q8S1<*nwJ3hTHd*M>WH)3t%+&GP z@yZ#mbe!>4W*jb*QJmqz(HorcH;MY3-A%GhqjaX5J?DL&_u2RJoc{Uu!(Rc+qm@Ad zNezkt6)A!2E%T09sGH8s!o}5FR@E0s9kU(VKQ54*nqEmmM_NP1zz__9$*NQMWTRQ| z{I<8@`BtM~Ilk?06fV1U>yp)K*q&#*jzGe$k-XAluei?5l4Kh(Fe<51Et-^TQnbUs z7>!+w$=B||C z7jg!k!af1LYC5NHx6Qi1?x`4g7<*~@ssul6-~bK^s5dRY%rM5Lren|`5Shh82A-9i zDN7Q1(sIJUbJ8+ROPP^!O-i3PFokJ>9hCNR6h^pf6L%D&G@3Cmi#Y*%ba;+qw_!~|3$n3Vv%C%*prPaxImoM@a=4P~FJJyAEW7TQ}#IogN z^Q@RHTYe}KD*l>H52q^IYkz)bUleHBxicWtu}a--th(!kvzBAEWDChP!plFA@9)>8YU?+vOU(Zbz4hta6e zU)Nu=S^}C(&V-zIJ&**;p+FdpIKLPwI@_IrvVYijg`j@%NC1va`e=xYNrsnvv%0=$ zHluQ>moAqVPt*0XJZ3DfUFQLj4E)k2I!=sE^nWQc5#!W-H%ys8X31^0s@561&UV`= zGv3Se3-W{$C~T_<1NSblezMwk%zB%AS?SNUo-3?t_AS@-J-=l(!btECfv@Ae6ahohbEZ?PTi!&)b=TX?(tizha5HQ& z4CZJn{DYXNbDG9P5ygU8uP@oYRnoC8FuysMQ+91$%svwqNUnNWk<%(A-2%-E9;imy z;rJ}nP0zDD4ZL=q+me<+(Q0T49Qc1IJ10yH4)HWj@cdNx%S#XfN4Oj2`*l8VSU8Fz zRlL+FPRN@qc=LveV7zE4FL76(f#6%s{{r!206WItR3OaodPcxc0FL8L?oLG7lYG-< z9Na?m6SNEGql0k9uE;wwq+&43ZJ5#D!9q^mEiPX`r+-;%PtX!=tsBEpTXHd-etid<#AQ9SZ5ir_AdRb9jFy{~c82-pudNzk!;(H}f0x z#o7D=>I z&}2~~XtJp1Gzropke1V9pnNe+P`;SSr6nj6fzr852c+Di*U8v0g;UuKqv`g^eVoVJ zOvP?|iwY+-feCzpMaq)M<8xf#N?|S6agi&P8Vi@WN}-N3c!w(uEw7I<#4F7 zGBW1)0TRX>&PL}Xl4nwdo^{J#>0=l2A5YTooD-k%t&y~uEge(lgCg(GmeyEeJv(z3 z+S~)Ya9zp|7Zs_MB0uRBDs*mYd~UJ#!Bh(tz{PFk F{soib;a~s& literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/mapper/PermissionMapper.class b/target/classes/cn/zyp/stusystem/mapper/PermissionMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3ca4a0ea6251021d7ff11b4e779882db881b99fd GIT binary patch literal 401 zcmb7=%}T^T497F8ZrxSEiw9poJedcm3VQHVadE+WT0_m!nJM!j)JOB+1Ncy4>>|o~ z@-RtACjaD@_m9^%0JwmI0wxAd8;37Lk1^#q#KaaY^*sk%aIg}icy~J{3fMMqxT0sm zj$Dg(^@^KRz|;UX-eOJO%A?O{hnkYazROVyfxiW>De_v%z-%e4qm%<1kZM!3to|u@ zUj3n9mn03pD9X#yzREGz(*kt1BwI{ z#Xh9no!ObU_m@`ympCdgQCMh4&qGHcrZ9vkmMnLj^tAM?+>LF4U4@ekKQXoJ8oIAH zqGN%n0%>olW^c{fC$dA$(S)u|ArE@_fx6-F4W%$!nZ|KUy(sAFH)vV?6Y!$?^S`)g z;xPVSUX=>-l~28vThnIB4V4~nmdwd;wOu3{XWp?PO?>XWkSbpH>OiCvByYaGuT?NN0 zdLgvrJG^gKtaAlZ1*n6=mVz@+p`aUD$|m);BncvaLvJYY2Bl!OG@YkhA}essHneX3 z3A|{2nXu0$4_hYnRjpvY3?*v5HCCFR{H1!n{?Ixr0&)Ckl4&hpdmplx1)mh0HX(LM qJ?UpgGYTX9Jiv`;EyGc;BWq8_4sxnwpTIuM#yW=ssZ+@h0lom`AcF}2 literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/service/PermissionService.class b/target/classes/cn/zyp/stusystem/service/PermissionService.class new file mode 100644 index 0000000000000000000000000000000000000000..c3df787f04a1fef006ec47fdaadc558653f84db3 GIT binary patch literal 454 zcmbV}O-chn5QVGb&zSgwxDbz^F6@OHVN`ITAPgwX33@ukP@%ggOjQTRqq*<^9!l(F zf(c|JE(*Ge=Dqq}eSLp?0>B*{WiU{1X@h?6rkW*k$AVrnwllJ*U$OPXOid{JNe0^r zjwfbjv@@aBFVzICWU#B?+BRNSrtvgxqV`>7gm~&AYkU(7bCF-&=cSy2vl`{WxyN8C zhvStWD>ym7C>Bmp$mxPuas|VZ>R=?csNiPf!)>vFf3$@pG*jUg}ovHzd_ wMr9LQi%;az-lr?fWe!(!&Xl2otyDYdHY(+u!CvZysT;s3RsY(DgT>_V2LpnSh5!Hn literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/service/RolePermissionService.class b/target/classes/cn/zyp/stusystem/service/RolePermissionService.class new file mode 100644 index 0000000000000000000000000000000000000000..c12e0a88db0d4aee3baba72a9dcfe04531a8e187 GIT binary patch literal 867 zcmbVK%TB{E5L~ykp*+hQl^a~>1s{;$(9#1)2&5nomAJd*iGvlzv!0pVosZAAcK|qpT?AkOz zvz%wYJ8}xf>GWdI$~-qX$RpCLubx#<770TXFbP|eX>PPr)C4xvgW*l)H2X*1>+BCC zbY!UQ8Kt+JX+QT(DDlD6ymmG~ciH`jISJU|GiLIFStc;yYRc7^XIVyY(BFq})a&sY D^bCN0 literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/service/impl/PermissionServiceImpl.class b/target/classes/cn/zyp/stusystem/service/impl/PermissionServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b41582168b93ad67e345e1120f262a068deb9b6a GIT binary patch literal 3427 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 literal 0 HcmV?d00001 diff --git a/target/classes/cn/zyp/stusystem/service/impl/RoleServiceImpl.class b/target/classes/cn/zyp/stusystem/service/impl/RoleServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..cf6d5d03887886fdd899a114b4330212bc2f5fbb GIT binary patch literal 3227 zcmai0S#uOs6#j0u9>*pL6F|X;2}H?88c`M74DS2B zTV?s?8xK}lSY-tZs+1=m{2e~{0Vm8rBGGTKYfxiF6WCaEj0^Ru;RiLp?gz3mpRA*< zE$0(fmcb!M3LF@`i7%T~XOpLhU8Z53KyQ-~(h01fZYcF>^kYEB-MEKLQhTl>kRg)| zm*rijOo9e6q+wXc2u20^8`G9E<4#Kzca~{e7i1|48G2ozF$@pNV9G6xn-v~w#XRIf z;8`K|7z_=Ybli*00^JSlXn{a#%Jir9xg{bnl5;8CPm&3*4xon97{gW_+pwK6FVEIY z+ZR~5KnM+;O5s6)Te!Cnm?TA=YlqInqvH7nKW;fCHT#f`-Rj79aL-)4nzo7(Z_+Hv zeYWZQDeM*4wsfp48vJQIjIA2>&pUaKSyqkiq)<3Qzuh!qa)cS%| zc6fYGrZ6sW&qAI`L_i!&3jMH-BMMz7x*|6|{yH^xOve*yZdE)NnU+vBn!=Ncmt=G` z((RPMx(4+*+m>b1-s6>P6^85n^F>)zr6Pr=1lHyprmt1%v%~V#SCXuOVfe8;x=tD= z@r){<&;Bn8;($}N&=eSG$_t`|l{Ar;0&P*?b>%Hbj@K#^(mQ5O*bK!?-YuH;ag&q* zFH$BJDq76ph*yF2iNh?0z;wP5V*(c!ubVf&F?TfkrxIRzVX35Bc>iUa*Cc(oYk~O% z!iv657u=dxlm{%u%nC(0Yp4o86%b>}>jJBf)>x`5^0?(&jIlkA-xgosup6fxPQZ*Q&|OJC4d`YNL(EXnXc_Vm2;6 z$*K`sxX-lhf)&VYH^#f#@us@W-qLYDM!WHjz-C^e|G$5eTqO}>C9Qnew5vZ5?*oPR zp^gVt+0t{4BfYTRNngV!tgwyDi0xVE;w`H z=QU_oz~@}s59kTIt7mb?HS`}G{Tb=eS**W^HgSntTSIlLXc2vbPQKOFU^&)P9!5{7 zzAsV{tEVzpI72gru?*9&X-b8Ab+r7AEgJfFYj9BINW0)dbf<9^9+%Tzv7J!L-s{7& z*pP48NlQ0=!~SM|Eyk~Z{Kj^}^zYyQ$#(Tf=Dt~M`3gO)J1?ShB=bPnYj4}xtG3`< zel1GiZw)`?uM%;ysju-d+g+JGv)K0)UZ;E@lMCf@lpo6+4CQIchcZV)`B}<^%<)hz zgg(5)5rwp$?Htkrl;@B(Ql3NVr#y$Wl5!z)B19q^WZ=?OoIII1eHl;xL<=K#N9?8( z>|TeDfb+_g8Fc)E0S#kfS$fT1$o+{N>8Ww11v5Aow&zi2t8gx`eV*T1&c48Puj388 Yjd$^0+HVI_+c z(mE6qDl~@NU3=XwRBiW8;qvlbUI`hrQ;zF|ry0^Cqe~eW$mqzL=z+;_xZ)N*->4UY zun}woA+HtIy}| zTFqN&R3p`169Yn(m8y9{W(m2^#C})|M#Xl|f7Y<83qc;TjfQf^6kwL%1 z!E`Q?ns`O%GQ?Ppd=-<;#}`9^J-`&aGdYE(6^Vpo@J-x2#*sf4Qz`E+D%yW*D^4qR!tp;P0t z?z$5=#4+up@j$$_^^yBOM)wX$80)2l9AnJu4ZV6)VNJ`WmIx`b-%hnknK)$`4F z^u&@RGeS=$imuC|*YGR+f+GsKJ9#OOiK|FyJm+~~5c+mq<}>Kia4m}uab3p^(ULbA z^6gvexa-~;FGzaXr5Ef<==mEA_mce?110Gt+g+*hAV24MYmIv8xh=Zs;MI*f?*hM> zU})a(ges<(v8&ZZC*&mqA2A$H20tRIJH;jri$sc5CbBJwL{70$D(0+9T{%;=gMbG* zZZjO+l8tUb>R4tt^n56lR%Qf4G&NE*1QdGGOeHBLMq;$mB#c%Xf3)_3`T!c)U#DGx zc8pea>^HEVBiI}C)T9!}Nj78oO`M?JTe03Y^jOLh?7k0k z(o!DbP!lm!R0%Rv)GSqCv?u7lk6uf)v;-($)CrU?8kR0VMhwy|BLNyNW(YJ~%vu=% z%Eq9Km2HBQ2jq1+ahcSp3NYp2EL(za*3o2zQqB|l9a`}Bc|UrNelNK^-aj zH`r6`mty9B#Af%N=_rsQetX52<0Lts5=|~DBVtYt5E-+)8)_?Nl_C`}$9H48gPn<= zN<>3*j(th1PNel*>69`R75QMUv`Qs5a^v@*Pd>ufZJ{43D#BnXvBeODm!^DCjZ9SY z=#XKlP1A5ui%eR}M4dpV4t6izCFx5XNE$V~hdByFrSgRE$#XJRJq4qR%aSOuH;epTI^1)_*T^Kv)0( literal 0 HcmV?d00001