| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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.model.Event;
- import nju.seec.helper.entity.Course;
- import nju.seec.helper.entity.Quiz;
- import nju.seec.helper.util.RestRequestUtil;
- 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(Event event) {
- // System.out.println(event);
- // restRequestUtil.sendPostRequest(eventReportUrl, event, Boolean.class);
- }
- /**
- * 取得参与课程事件
- *
- * @param userId
- * @param time
- * @param course
- * @return
- */
- public Event createParticipateClassEventDTO(String userId, LocalDateTime time, Course course) {
- return Event.builder()
- .userId(userId).time(time)
- .type(EventType.LESSON)
- .action(EventAction.PARTICIPATE)
- .description(course.getName())
- .build();
- }
- /**
- * 取得创建帖子事件
- *
- * @param userId
- * @param time
- * @param title
- * @return
- */
- public Event createInitPostEventDTO(String userId, LocalDateTime time, String title) {
- return Event
- .builder()
- .userId(userId)
- .time(time)
- .type(EventType.POST)
- .action(EventAction.INITIATE)
- .description(title)
- .build();
- }
- /**
- * 取得完成测验事件
- *
- * @param userId
- * @param time
- * @param quiz
- * @return
- */
- public Event createCompleteQuizEventDTO(String userId, LocalDateTime time, Quiz quiz) {
- return Event
- .builder()
- .userId(userId)
- .time(time)
- .type(EventType.QUIZ)
- .action(EventAction.COMPLETE)
- .description(StrUtil.join(":", quiz.getCourse().getName(), quiz.getName()))
- .build();
- }
- }
|