Skip to content

Commit

Permalink
[feat] 대시보드 데이터 호출 로직(#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
isprogrammingfun committed Mar 20, 2023
1 parent 4d9c31d commit 20038d1
Show file tree
Hide file tree
Showing 9 changed files with 180 additions and 16 deletions.
17 changes: 17 additions & 0 deletions src/main/java/com/mediflix/backend/config/WebConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.mediflix.backend.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
}
24 changes: 23 additions & 1 deletion src/main/java/com/mediflix/backend/dto/RespGetDataDto.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package com.mediflix.backend.dto;

import com.mediflix.backend.entity.Video;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

@AllArgsConstructor
@NoArgsConstructor
@Builder
Expand All @@ -20,8 +24,22 @@ public class RespGetDataDto {
Integer signinIncrease;
Integer totalVideo;
Integer videoIncrease;
Integer watchMean;
Integer partner;
List<VideoDto> video;
List<RespGetLogDto> logs;


public static RespGetDataDto makerespGetLogDto(int todayVisit, int todaySignin, int visitMean, int todayWatch,
int todayLeave, int totalSignin, int signinIncrease, int totalVideo,
int videoIncrease, List<Video> videos, int watchMean, int partner, List<RespGetLogDto> logs) {

List<VideoDto> video = new ArrayList<>();
for(Video v : videos){
VideoDto videoDto = VideoDto.makeVideoDto(v);

public static RespGetDataDto makerespGetLogDto(int todayVisit, int todaySignin, int visitMean, int todayWatch, int todayLeave, int totalSignin, int signinIncrease, int totalVideo, int videoIncrease) {
video.add(videoDto);
}

RespGetDataDto respGetLogDto = RespGetDataDto.builder()
.todayVisit(todayVisit)
Expand All @@ -33,6 +51,10 @@ public static RespGetDataDto makerespGetLogDto(int todayVisit, int todaySignin,
.signinIncrease(signinIncrease)
.totalVideo(totalVideo)
.videoIncrease(videoIncrease)
.watchMean(watchMean)
.partner(partner)
.video(video)
.logs(logs)
.build();

return respGetLogDto;
Expand Down
29 changes: 29 additions & 0 deletions src/main/java/com/mediflix/backend/dto/RespGetLogDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.mediflix.backend.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class RespGetLogDto {

String logTime;
Integer visit;
Integer login;
Integer watch;

public static RespGetLogDto makeRespGetLogDto(String logTime, int visit, int login, int watch) {
RespGetLogDto respGetLogDto = RespGetLogDto.builder()
.logTime(logTime)
.visit(visit)
.login(login)
.watch(watch)
.build();

return respGetLogDto;
}
}
24 changes: 24 additions & 0 deletions src/main/java/com/mediflix/backend/entity/Partner.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.mediflix.backend.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@Getter
@Table(name = "partner")
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
public class Partner {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "partner_id")
private Long partnerId;

@Column(length = 20, nullable = false)
private String name;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.mediflix.backend.repository;

import com.mediflix.backend.entity.Partner;
import org.springframework.data.jpa.repository.JpaRepository;

public interface PartnerRepository extends JpaRepository<Partner, Long> {
}
41 changes: 29 additions & 12 deletions src/main/java/com/mediflix/backend/service/MemberService.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
package com.mediflix.backend.service;

import com.mediflix.backend.dto.ReqGetDataDto;
import com.mediflix.backend.dto.ReqMemberDTO;
import com.mediflix.backend.dto.RespGetDataDto;
import com.mediflix.backend.dto.RespMemberDTO;
import com.mediflix.backend.dto.*;
import com.mediflix.backend.entity.Member;
import com.mediflix.backend.entity.MemberLog;
import com.mediflix.backend.entity.Partner;
import com.mediflix.backend.entity.Video;
import com.mediflix.backend.repository.MemberList;
import com.mediflix.backend.repository.MemberLogRepository;
import com.mediflix.backend.repository.MemberRepository;
import com.mediflix.backend.repository.VideoRepository;
import com.mediflix.backend.repository.*;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.asm.Advice;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
Expand All @@ -30,6 +24,7 @@ public class MemberService {
private final MemberRepository memberRepository;
private final MemberLogRepository memberLogRepository;
private final VideoRepository videoRepository;
private final PartnerRepository partnerRepository;

// 로그인 처리
public RespMemberDTO login(ReqMemberDTO reqMemberDTO) {
Expand Down Expand Up @@ -65,8 +60,12 @@ public RespGetDataDto getData(ReqGetDataDto reqGetDataDto) {
LocalDateTime start = day.atStartOfDay();
LocalDateTime end = day.atTime(LocalTime.MAX);
LocalDateTime prevend = day.atTime(LocalTime.MAX).minusDays(1);
LocalDateTime prevstart = day.atStartOfDay().minusDays(10);
List<Video> videos = videoRepository.getVideo(start, end);

RespGetDataDto respGetDataDto = getLogs(start, end, prevend);
List<RespGetLogDto> logs = getPreviousLogs(prevstart);

RespGetDataDto respGetDataDto = getLogs(start, end, prevend, videos, logs);

return respGetDataDto;
}
Expand Down Expand Up @@ -98,7 +97,7 @@ public RespMemberDTO findById(Long id) {


//편의 메서드
private RespGetDataDto getLogs(LocalDateTime start, LocalDateTime end, LocalDateTime prevend) {
private RespGetDataDto getLogs(LocalDateTime start, LocalDateTime end, LocalDateTime prevend, List<Video> video, List<RespGetLogDto> logs) {
String service1 = "login";
String service2 = "signin";
String service3 = "visit";
Expand All @@ -108,8 +107,10 @@ private RespGetDataDto getLogs(LocalDateTime start, LocalDateTime end, LocalDate
List<MemberLog> sigininlog = memberLogRepository.getTodayLogs(start, end, service2);
List<MemberLog> signinlogs = memberLogRepository.getLogs(end, service2);
List<MemberLog> watchlog = memberLogRepository.getTodayLogs(start, end, service4);
List<MemberLog> watchlogs = memberLogRepository.getLogs(end, service4);
List<MemberLog> loginlog = memberLogRepository.getTodayLogs(start, end, service1);
List<Video> videos = videoRepository.getVideoAll(end);
List<Partner> partners = partnerRepository.findAll();

List<MemberLog> prevsigninlogs = memberLogRepository.getLogs(prevend, service2);
List<Video> prevVideos = videoRepository.getVideoAll(prevend);
Expand All @@ -121,9 +122,25 @@ private RespGetDataDto getLogs(LocalDateTime start, LocalDateTime end, LocalDate
int todayLeave = visitlog.size() - loginlog.size();
int signinIncrease = signinlogs.size() - prevsigninlogs.size();
int videoIncrease = videos.size() - prevVideos.size();
int watchMean = watchlogs.size() / 10;
int partner = partners.size();

RespGetDataDto respGetLogDto = RespGetDataDto.makerespGetLogDto(todayVisit, todaySignin, visitMean, todayWatch, todayLeave, signinlogs.size(), signinIncrease, videos.size(), videoIncrease);
RespGetDataDto respGetLogDto = RespGetDataDto.makerespGetLogDto(todayVisit, todaySignin, visitMean, todayWatch, todayLeave, signinlogs.size(), signinIncrease, videos.size(), videoIncrease, video, watchMean, partner, logs);

return respGetLogDto;
}

private List<RespGetLogDto> getPreviousLogs(LocalDateTime start) {
List<RespGetLogDto> logs = new ArrayList<>();
for(int i = 0; i < 10; i++) {
LocalDateTime end = start.toLocalDate().atTime(LocalTime.MAX);
List<MemberLog> visitlog = memberLogRepository.getTodayLogs(start, end, "visit");
List<MemberLog> loginlog = memberLogRepository.getTodayLogs(start, end, "login");
List<MemberLog> watchlog = memberLogRepository.getTodayLogs(start, end, "watch");
RespGetLogDto respGetLogDto = RespGetLogDto.makeRespGetLogDto(start.toString(), visitlog.size(), loginlog.size(), watchlog.size());
logs.add(respGetLogDto);
start = start.toLocalDate().atStartOfDay().plusDays(1);
}
return logs;
}
}
36 changes: 36 additions & 0 deletions src/main/resources/sql/partner.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
DELETE FROM partner;

INSERT INTO partner(partner_id, name) VALUES (1, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (2, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (3, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (4, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (5, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (6, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (7, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (8, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (9, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (10, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (11, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (12, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (13, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (14, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (15, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (16, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (17, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (18, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (19, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (20, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (21, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (22, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (23, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (24, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (25, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (26, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (27, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (28, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (29, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (30, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (31, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (32, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (33, "파트너1");
INSERT INTO partner(partner_id, name) VALUES (34, "파트너1");
12 changes: 12 additions & 0 deletions src/main/resources/sql/search.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
DELETE FROM search;

INSERT INTO search(search_id, name) VALUES (1, "펜타닐");
INSERT INTO search(search_id, name) VALUES (2, "축농증");
INSERT INTO search(search_id, name) VALUES (3, "환절기");
INSERT INTO search(search_id, name) VALUES (4, "임산부");
INSERT INTO search(search_id, name) VALUES (5, "프로포폴");
INSERT INTO search(search_id, name) VALUES (6, "코로나");
INSERT INTO search(search_id, name) VALUES (7, "개원준비");
INSERT INTO search(search_id, name) VALUES (8, "예방접종");
INSERT INTO search(search_id, name) VALUES (9, "마스크");
INSERT INTO search(search_id, name) VALUES (10, "메디플릭스");
6 changes: 3 additions & 3 deletions src/main/resources/sql/video.sql
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ DELETE FROM video;
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (1, "VOD", "건강한 노화관리의 비결 part.1", "황희진", "가정의학과", 208, "2023-02-13 05:22:25.000000","2023-03-23 05:22:25.000000");
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (2, "ORIGINAL", "척추닥터 김사부", "김진성", "신경외과", 360, "2023-02-13 05:22:25.000000","2023-03-01 05:22:25.000000");
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (3, "ORIGINAL", "근골격계 초음파의 정석", "윤형문", "정형외과", 200, "2023-02-13 05:22:25.000000","2023-03-23 05:22:25.000000");
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (4, "VOD", "Pancreatic Cvsts", "이정욱", "소화기내과", 130, "2023-02-13 05:22:25.000000", now());
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (5, "ORIGINAL", "도전, 당뇨벨! OX퀴즈에 도전하라!", "김영설", "내분비내과" ,223, "2023-02-13 05:22:25.000000", now());
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (4, "VOD", "Pancreatic Cvsts", "이정욱", "소화기내과", 130, "2023-02-13 05:22:25.000000", "2023-03-24 05:22:25.000000");
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (5, "ORIGINAL", "도전, 당뇨벨! OX퀴즈에 도전하라!", "김영설", "내분비내과" ,223, "2023-02-13 05:22:25.000000", "2023-03-24 05:22:25.000000");
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (6, "VOD", "역류성 식도질환 part.1", "최정민", "소화기내과" ,305, "2023-02-13 05:22:25.000000", "2023-03-23 05:22:25.000000");
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (7, "VOD", "통풍의 진단과 치료 part.2", "이영호", "류마티스내과", 227, "2023-02-13 05:22:25.000000", now());
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (7, "VOD", "통풍의 진단과 치료 part.2", "이영호", "류마티스내과", 227, "2023-02-13 05:22:25.000000", "2023-03-24 05:22:25.000000");
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (8, "ORIGINAL", "환자들의 궁금증을 해소하는 영양의학 시리즈", "이경실", "가정의학과", 105, "2023-02-13 05:22:25.000000", "2023-03-01 05:22:25.000000");
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (9, "ORIGINAL", "밤의 불청객, '수면장애'", "신원철", "신경과", 375, "2023-02-13 05:22:25.000000", "2023-02-01 05:22:25.000000");
INSERT INTO video(video_id, category, title, cast, major, view, upload_date, updated_at) VALUES (10, "test", "test", "test", "신경과", 3, "2023-02-13 05:22:25.000000", "2023-01-01 05:22:25.000000");
Expand Down

0 comments on commit 20038d1

Please sign in to comment.