fix(education): complete classroom member contract

This commit is contained in:
2026-07-31 16:26:39 +08:00
parent d81c297381
commit fce2c6bc4a
3 changed files with 34 additions and 4 deletions

View File

@@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.education.controller.admin.classroom;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.education.controller.admin.classroom.vo.*;
import cn.iocoder.yudao.module.education.dal.dataobject.classroom.EducationClassMemberDO;
import cn.iocoder.yudao.module.education.service.classroom.EducationClassService;
import jakarta.validation.Valid;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -37,8 +36,8 @@ public class EducationClassController {
@GetMapping("/{classId}/members")
@PreAuthorize("@ss.hasPermission('education:class-member:query')")
public CommonResult<List<EducationClassMemberDO>> members(@PathVariable Long classId) {
return success(service.listMembers(classId));
public CommonResult<List<EducationClassMemberRespVO>> members(@PathVariable Long classId) {
return success(service.listMembers(classId).stream().map(EducationClassMemberRespVO::from).toList());
}
@PostMapping("/{classId}/invitations")

View File

@@ -0,0 +1,22 @@
package cn.iocoder.yudao.module.education.controller.admin.classroom.vo;
import cn.iocoder.yudao.module.education.dal.dataobject.classroom.EducationClassMemberDO;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class EducationClassMemberRespVO {
private Long id;
private Long classId;
private Long memberUserId;
private String role;
private LocalDateTime joinedAt;
public static EducationClassMemberRespVO from(EducationClassMemberDO source) {
EducationClassMemberRespVO target = new EducationClassMemberRespVO();
target.id = source.getId(); target.classId = source.getClassId(); target.memberUserId = source.getMemberUserId();
target.role = source.getRole(); target.joinedAt = source.getJoinedAt();
return target;
}
}

View File

@@ -46,6 +46,11 @@ class EducationClassControllerContractTest {
assertEquals(1, controller.list().getData().size());
assertThrows(AccessDeniedException.class, () -> controller.invite(100L, invitationRequest()));
security.permissions.clear(); security.permissions.add("education:class-member:query");
var member = controller.members(100L).getData().getFirst();
assertEquals(8L, member.getMemberUserId());
assertEquals("STUDENT", member.getRole());
security.permissions.clear(); security.permissions.add("education:class-invitation:create");
assertEquals(200L, controller.invite(100L, invitationRequest()).getData().getId());
assertEquals(7L, service.actorId);
@@ -76,7 +81,11 @@ class EducationClassControllerContractTest {
Long actorId;
public Long createClass(String n, String d) { return 100L; }
public List<EducationClassDO> listClasses() { EducationClassDO c = new EducationClassDO(); c.setId(100L); return List.of(c); }
public List<EducationClassMemberDO> listMembers(Long id) { return List.of(); }
public List<EducationClassMemberDO> listMembers(Long id) {
EducationClassMemberDO member = new EducationClassMemberDO(); member.setId(300L); member.setTenantId(10L);
member.setClassId(id); member.setMemberUserId(8L); member.setRole("STUDENT");
member.setCreator("7"); member.setDeleted(false); return List.of(member);
}
public EducationClassInvitationDO createInvitation(Long c, Long u, String r, LocalDateTime e, String k, Long a) {
actorId = a; EducationClassInvitationDO i = new EducationClassInvitationDO(); i.setId(200L); return i;
}