| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package nju.seec.helper.api.dataanalysis;
- import cn.hutool.core.util.StrUtil;
- import lombok.Data;
- import nju.seec.helper.api.dataanalysis.constant.EventAction;
- import nju.seec.helper.api.dataanalysis.constant.EventType;
- import nju.seec.helper.api.dataanalysis.dto.EventDTO;
- import nju.seec.helper.entity.Course;
- import nju.seec.helper.entity.Quiz;
- import nju.seec.helper.util.RestRequestUtil;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Component;
- import java.time.LocalDateTime;
- /**
- * @author cst
- */
- @Component
- @ConfigurationProperties("data-analysis.event")
- @Data
- public class EventApi {
- private String reportUrl;
- private final RestRequestUtil restRequestUtil;
- public EventApi(RestRequestUtil restRequestUtil) {
- this.restRequestUtil = restRequestUtil;
- }
- @Async
- public void reportEvent(EventDTO eventDTO) {
- System.out.println(eventDTO);
- // restRequestUtil.sendPostRequest(eventReportUrl, event, Boolean.class);
- }
- /**
- * 取得参与课程事件
- *
- * @param userId
- * @param time
- * @param course
- * @return
- */
- public EventDTO createParticipateClassEventDTO(String userId, LocalDateTime time, Course course) {
- return EventDTO.builder()
- .userId(userId).time(time)
- .type(EventType.LESSON)
- .action(EventAction.PARTICIPATE)
- .description(course.getName())
- .build();
- }
- /**
- * 取得创建帖子事件
- *
- * @param userId
- * @param time
- * @param title
- * @return
- */
- public EventDTO createInitPostEventDTO(String userId, LocalDateTime time, String title) {
- return EventDTO
- .builder()
- .userId(userId)
- .time(time)
- .type(EventType.POST)
- .action(EventAction.INITIATE)
- .description(title)
- .build();
- }
- /**
- * 取得完成测验事件
- *
- * @param userId
- * @param time
- * @param quiz
- * @return
- */
- public EventDTO createCompleteQuizEventDTO(String userId, LocalDateTime time, Quiz quiz) {
- return EventDTO
- .builder()
- .userId(userId)
- .time(time)
- .type(EventType.QUIZ)
- .action(EventAction.COMPLETE)
- .description(StrUtil.join(":", quiz.getCourse().getName(), quiz.getName()))
- .build();
- }
- }
|