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.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.module.education.controller.admin.classroom.vo.*;
|
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 cn.iocoder.yudao.module.education.service.classroom.EducationClassService;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
@@ -37,8 +36,8 @@ public class EducationClassController {
|
|||||||
|
|
||||||
@GetMapping("/{classId}/members")
|
@GetMapping("/{classId}/members")
|
||||||
@PreAuthorize("@ss.hasPermission('education:class-member:query')")
|
@PreAuthorize("@ss.hasPermission('education:class-member:query')")
|
||||||
public CommonResult<List<EducationClassMemberDO>> members(@PathVariable Long classId) {
|
public CommonResult<List<EducationClassMemberRespVO>> members(@PathVariable Long classId) {
|
||||||
return success(service.listMembers(classId));
|
return success(service.listMembers(classId).stream().map(EducationClassMemberRespVO::from).toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/{classId}/invitations")
|
@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());
|
assertEquals(1, controller.list().getData().size());
|
||||||
assertThrows(AccessDeniedException.class, () -> controller.invite(100L, invitationRequest()));
|
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");
|
security.permissions.clear(); security.permissions.add("education:class-invitation:create");
|
||||||
assertEquals(200L, controller.invite(100L, invitationRequest()).getData().getId());
|
assertEquals(200L, controller.invite(100L, invitationRequest()).getData().getId());
|
||||||
assertEquals(7L, service.actorId);
|
assertEquals(7L, service.actorId);
|
||||||
@@ -76,7 +81,11 @@ class EducationClassControllerContractTest {
|
|||||||
Long actorId;
|
Long actorId;
|
||||||
public Long createClass(String n, String d) { return 100L; }
|
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<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) {
|
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;
|
actorId = a; EducationClassInvitationDO i = new EducationClassInvitationDO(); i.setId(200L); return i;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user