fix(education): complete classroom member contract
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user