package com.mindskip.xzs.controller.student; import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.configuration.property.SystemConfig; import com.mindskip.xzs.domain.Classes; import com.mindskip.xzs.domain.User; import com.mindskip.xzs.domain.UserEventLog; import com.mindskip.xzs.event.UserEvent; import com.mindskip.xzs.service.ClassesService; import com.mindskip.xzs.service.enums.ResultEnum; import com.mindskip.xzs.viewmodel.student.user.UserTeamVM; import lombok.AllArgsConstructor; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import java.io.IOException; import java.util.Date; /** * @version 2.2.0 * @description: 班级 * Copyright (C), 2020-2021, 武汉思维跳跃科技有限公司 * @date 2021 /9/7 9:45 */ @RestController("StudentClassesController") @RequestMapping(value = "/api/student/classes") @AllArgsConstructor public class ClassesController extends BaseApiController { private final ApplicationEventPublisher eventPublisher; private final ClassesService classesService; /** * 加入班级 * * @param userTeamVM the user team vm * @return the rest response */ @RequestMapping(value = "/join", method = RequestMethod.POST) public RestResponse join(@RequestBody @Valid UserTeamVM userTeamVM) { User user = getCurrentUser(); Classes classes = classesService.selectClassesByUid(userTeamVM.getClassUid()); if (null == classes) { return RestResponse.fail(2, "未能找班级"); } ResultEnum resultEnum = classesService.joinClasses(user, classes); if (resultEnum == ResultEnum.SUCCESS) { UserEventLog userEventLog = new UserEventLog(user.getId(), user.getUserName(), user.getRealName(), new Date()); userEventLog.setContent(user.getUserName() + " 加入了班级 " + classes.getName()); eventPublisher.publishEvent(new UserEvent(userEventLog)); } return RestResponse.ok(); } }