diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/schedule/EgovAdminScheduleList.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/schedule/EgovAdminScheduleList.jsx
index 0610761..8971e61 100644
--- a/egovframe-template-simple-react-contribution/src/pages/admin/schedule/EgovAdminScheduleList.jsx
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/schedule/EgovAdminScheduleList.jsx
@@ -216,10 +216,14 @@ function EgovAdminScheduleList(props) {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [scheduleList]);
+ const [isDailyChart, setChart] = useState(true);
+
const getDailyUserLogList = useCallback(() => {
console.groupCollapsed("EgovAdminScheduleList.getDailyUserLogList()");
- const dailyUserLogListURL = '/admin/dashboard/daily-user-log-list';
+ console.log("@@@ isDailyChart : " + isDailyChart);
+
+ const dailyUserLogListURL = isDailyChart ? '/admin/dashboard/daily-user-log-list' : '/admin/dashboard/monthly-user-log-list';
const requestOptions = {
method: "GET",
@@ -239,12 +243,29 @@ function EgovAdminScheduleList(props) {
}
);
console.groupEnd("EgovAdminScheduleList.getDailyUserLogList()");
- }, []);
+ }, [isDailyChart]);
useEffect(() => {
getDailyUserLogList();
// eslint-disable-next-line react-hooks/exhaustive-deps
- }, []);
+ }, [isDailyChart]);
+
+ const handleChartToggle = () => {
+ setChart(!isDailyChart);
+ };
+
+ const ChartToggle = ({onToggle}) => {
+
+ const handleToggle = () => {
+ onToggle(!isDailyChart);
+ };
+
+ return (
+
+ )
+ }
const data = dailyUserLogList.map(item => ({
logDt: item.logDt,
@@ -253,35 +274,12 @@ function EgovAdminScheduleList(props) {
amt: item.pcCnt,
}));
- const getIntroOfPage = (label) => {
- if (label === 'Page A') {
- return "Page A is about men's clothing";
- }
- if (label === 'Page B') {
- return "Page B is about women's dress";
- }
- if (label === 'Page C') {
- return "Page C is about women's bag";
- }
- if (label === 'Page D') {
- return 'Page D is about household goods';
- }
- if (label === 'Page E') {
- return 'Page E is about food';
- }
- if (label === 'Page F') {
- return 'Page F is about baby food';
- }
- return '';
- };
-
const CustomTooltip = ({active, payload, label}) => {
if (active && payload && payload.length) {
return (
사용자 접속 현황
{`${label} : ${payload[0].value}`}
-
{getIntroOfPage(label)}
);
}
@@ -289,7 +287,7 @@ function EgovAdminScheduleList(props) {
return null;
};
- class Example extends PureComponent {
+ class UserLogChart extends PureComponent {
static demoUrl = 'https://codesandbox.io/s/tooltip-with-customized-content-lyxvs';
render() {
@@ -341,8 +339,10 @@ function EgovAdminScheduleList(props) {
일정관리
+
+
-
+
{/* */}
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/dashboard/AdminDashboardController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/dashboard/AdminDashboardController.java
index 1fc1bd1..0678eb6 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/dashboard/AdminDashboardController.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/dashboard/AdminDashboardController.java
@@ -1,5 +1,6 @@
package com.dbnt.kcscbackend.admin.dashboard;
+import com.dbnt.kcscbackend.admin.dashboard.dto.MonthlyUserLogDTO;
import com.dbnt.kcscbackend.admin.dashboard.service.AdminDashboardService;
import com.dbnt.kcscbackend.config.common.BaseController;
import com.dbnt.kcscbackend.config.common.ResultVO;
@@ -13,9 +14,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
+import java.math.BigInteger;
import java.time.LocalDate;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
@RestController
@RequiredArgsConstructor
@@ -26,9 +30,9 @@ public class AdminDashboardController extends BaseController {
private final AdminDashboardService adminDashboardService;
@Operation(
- summary = "기본코드 그룹 조회",
- description = "기본코드 그룹 조회",
- tags = {"AdminConfigController"}
+ summary = "일별 사용자 현황 차트 조회",
+ description = "일별 사용자 현황 차트 조회",
+ tags = {"AdminDashboardController"}
)
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "조회 성공"),
@@ -42,9 +46,6 @@ public class AdminDashboardController extends BaseController {
// 현재 날짜
// todo endDate 뒤에 .minus 지워야함
LocalDate endDate = LocalDate.now().minusMonths(6);
-
- System.out.println("@@@ localdate : " + endDate);
-
// 3개월 전 날짜 계산
LocalDate startDate = endDate.minusMonths(3);
@@ -52,4 +53,34 @@ public class AdminDashboardController extends BaseController {
resultVO.setResult(resultMap);
return resultVO;
}
+
+ @Operation(
+ summary = "월별 사용자 현황 차트 조회",
+ description = "월별 사용자 현황 차트 조회",
+ tags = {"AdminDashboardController"}
+ )
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "조회 성공"),
+ @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
+ })
+ @RequestMapping(method = RequestMethod.GET, value = "/monthly-user-log-list", consumes = MediaType.APPLICATION_JSON_VALUE)
+ public ResultVO getMonthlyUserLogList() throws Exception {
+ ResultVO resultVO = new ResultVO();
+ Map resultMap = new HashMap<>();
+
+ // 현재 날짜
+ // todo endDate 뒤에 .minus 지워야함
+ LocalDate endDate = LocalDate.now().minusMonths(6);
+ // 3개월 전 날짜 계산
+ LocalDate startDate = endDate.minusMonths(3);
+
+ List