From 380cd52d2eb959a4e572f441a6d6fe1264b42f79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Thu, 25 Apr 2024 16:42:59 +0900 Subject: [PATCH] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=9C=84=EC=9B=90=ED=9A=8C=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/admin/users/List.jsx | 11 ++-- .../src/pages/admin/users/UserInfoModal.jsx | 55 +++++++++++++------ .../admin/users/AdminUsersController.java | 3 + .../admin/users/service/UsersService.java | 1 + .../kcscbackend/auth/entity/UserInfo.java | 4 ++ .../commonCode/entity/TnCmtOrg.java | 5 ++ .../repository/TnCmtOrgRepository.java | 2 + .../commonCode/service/CmtService.java | 37 +++++++++++++ .../mybatisMapper/AdminUsersMapper.xml | 5 +- 9 files changed, 99 insertions(+), 24 deletions(-) create mode 100644 kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/service/CmtService.java diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/users/List.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/users/List.jsx index e5402d4..be26d13 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/users/List.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/users/List.jsx @@ -20,9 +20,7 @@ function List({}) { }); const [listTag, setListTag] = useState([]); - const [paginationInfo, setPaginationInfo] = useState({}); - const [show, setShow] = useState(false); const [modalBody, setModalBody] = useState(); @@ -42,13 +40,15 @@ function List({}) { setListTag([]); // 리스트 항목 구성 + const cmtList = resp.result.cmtList; resp.result.userList.forEach(function (item, index) { mutListTag.push(
-
{userInfoModal(item)}}>{item.userId}
+
{userInfoModal(item, cmtList)}}>{item.userId}
{item.userNm}
{item.email}
{item.phoneNum}
+
{item.cmtOrgNm}
{item.statusValue}
@@ -72,9 +72,9 @@ function List({}) { setSearchCondition({...searchCondition, pageIndex: passedPage}) }); - function userInfoModal(userInfo){ + function userInfoModal(userInfo, cmtList){ handleShow() - setModalBody() + setModalBody() } const removeUserInfo = useCallback((seq)=>{ @@ -151,6 +151,7 @@ function List({}) { 이름 이메일 연락처 + 위원회 상태 삭제 diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/users/UserInfoModal.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/users/UserInfoModal.jsx index 5071d8e..c741900 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/users/UserInfoModal.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/users/UserInfoModal.jsx @@ -1,4 +1,4 @@ -import React, {useCallback, useEffect, useState} from "react" +import React, {useEffect, useState} from "react" import Modal from "react-bootstrap/Modal"; import * as EgovNet from "api/egovFetch"; import Form from "react-bootstrap/Form"; @@ -6,11 +6,12 @@ import Row from "react-bootstrap/Row"; import Col from "react-bootstrap/Col"; import Button from "react-bootstrap/Button"; import SelectOption from "components/commonCode/SelectOption"; -import CheckBox from "components/commonCode/CheckBox"; import CODE from "../../../constants/code"; -function UserInfoModal({savedInfo, reloadFunction}){ - +function UserInfoModal({savedInfo, cmtList, reloadFunction}){ + const [selectedCmtList, setSelectedCmtList] = useState(cmtList); + const [cmtOrg, setCmtOrg] = useState({cmtSeq: savedInfo?.cmtOrg, cmtNm: savedInfo?.cmtOrgNm}); + function userInfoChange(e){ e.preventDefault(); e.stopPropagation(); @@ -23,18 +24,10 @@ function UserInfoModal({savedInfo, reloadFunction}){ userNm: form.userNm.value, email: form.email.value, phoneNum: form.phoneNum.value, - userRole: '', + userRole: form.userRole.value, + cmtOrg: form.cmtOrg.value, status: form.status.value, } - let userRole = ''; - form.userRole.forEach(function (input){ - if(input.checked){ - userRole += input.value+',' - } - }) - if(userRole){ - info.userRole = userRole.slice(0, -1) - } EgovNet.requestFetch( '/admin/users/mgt/info', { @@ -56,8 +49,19 @@ function UserInfoModal({savedInfo, reloadFunction}){ } ) } - - function modalOpen(){ + const changeSelectorOption = (e) => { + selectedCmtList.forEach(function (cmt){ + if(cmt.cmtSeq === Number(e.target.value)){ + setCmtOrg({cmtSeq: cmt.cmtSeq, cmtNm: cmt.cmtNm}); + if(cmt.childList.length === 0){ + setSelectedCmtList(cmtList); + }else{ + setSelectedCmtList(cmt.childList); + } + } + }) + } + /*function modalOpen(){ EgovNet.requestFetch( '/admin/users/mgt/info?userId='+savedInfo?.userId, { @@ -70,10 +74,10 @@ function UserInfoModal({savedInfo, reloadFunction}){ } ) - } + }*/ useEffect(() => { - modalOpen(); + /*modalOpen();*/ }, []); return ( @@ -143,6 +147,21 @@ function UserInfoModal({savedInfo, reloadFunction}){ + + + 위원회 + + + + + + + {selectedCmtList.map((cmt) => ( + + ))} + + + 상태 diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/users/AdminUsersController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/users/AdminUsersController.java index 51903ad..4559ef6 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/users/AdminUsersController.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/users/AdminUsersController.java @@ -5,6 +5,7 @@ import com.dbnt.kcscbackend.admin.logs.service.AdminLogsService; import com.dbnt.kcscbackend.admin.users.service.UsersService; import com.dbnt.kcscbackend.auth.entity.LoginVO; import com.dbnt.kcscbackend.auth.entity.UserInfo; +import com.dbnt.kcscbackend.commonCode.service.CmtService; import com.dbnt.kcscbackend.commonCode.service.CommonCodeService; import com.dbnt.kcscbackend.config.common.BaseController; import com.dbnt.kcscbackend.config.common.ResponseCode; @@ -38,6 +39,7 @@ public class AdminUsersController extends BaseController { private final UsersService usersService; private final AdminLogsService adminLogsService; private final CommonCodeService commonCodeService; + private final CmtService cmtService; @Operation( summary = "사용자 목록 조회", @@ -55,6 +57,7 @@ public class AdminUsersController extends BaseController { Map resultMap = new HashMap<>(); params.setQueryInfo(); resultMap.put("userSeOption", commonCodeService.selectCodeItemList("ACC_TYPE")); + resultMap.put("cmtList", cmtService.selectCmtOrgList()); resultMap.put("userList", usersService.selectUserList(params)); params.setContentCnt(usersService.selectUserListCnt(params)); params.setPaginationInfo(); diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/users/service/UsersService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/users/service/UsersService.java index 11a5479..d6f17f3 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/users/service/UsersService.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/users/service/UsersService.java @@ -51,6 +51,7 @@ public class UsersService extends EgovAbstractServiceImpl { savedInfo.setEmail(info.getEmail()); savedInfo.setPhoneNum(info.getPhoneNum()); savedInfo.setUserRole(info.getUserRole()); + savedInfo.setCmtOrg(info.getCmtOrg()); savedInfo.setStatus(info.getStatus()); savedInfo.setLastChgId(updateUser); savedInfo.setLastChgDt(LocalDateTime.now()); diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/auth/entity/UserInfo.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/auth/entity/UserInfo.java index 6696f90..65b99d3 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/auth/entity/UserInfo.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/auth/entity/UserInfo.java @@ -57,6 +57,8 @@ public class UserInfo extends BoardParams implements UserDetails{ private String phoneNum; @Column(name = "user_role") private String userRole; + @Column(name = "cmt_org") + private Integer cmtOrg; @Column(name = "status") private String status; @Column(name = "frst_crt_dt") @@ -72,6 +74,8 @@ public class UserInfo extends BoardParams implements UserDetails{ private String passwordChk; @Transient private String statusValue; + @Transient + private String cmtOrgNm; @Override @JsonIgnore diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/entity/TnCmtOrg.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/entity/TnCmtOrg.java index 8e83ee1..dc272f8 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/entity/TnCmtOrg.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/entity/TnCmtOrg.java @@ -8,6 +8,8 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.*; import java.io.Serializable; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; @Getter @Setter @@ -57,6 +59,9 @@ public class TnCmtOrg { @Column(name = "old_seq") private Long oldSeq; + @Transient + private List childList = new ArrayList<>(); + @Embeddable @Data @NoArgsConstructor diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtOrgRepository.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtOrgRepository.java index 11ced52..38d6990 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtOrgRepository.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtOrgRepository.java @@ -10,6 +10,8 @@ import java.util.List; import java.util.Map; public interface TnCmtOrgRepository extends JpaRepository { + + List findByUseYnOrderByCmtTypeAsc(String useYn); List findByUseYnAndUpCmtSeqOrderByCmtOrder(String useYn, Long upCmtSeq); TnCmtOrg findByUseYnAndCmtSeq(String useYn, Long cmtSeq); List findByUseYnAndUpCmtSeqAndCmtTypeOrderByCmtOrder(String useYn, Long upCmtSeq, String cmtType); diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/service/CmtService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/service/CmtService.java new file mode 100644 index 0000000..8cc0002 --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/service/CmtService.java @@ -0,0 +1,37 @@ +package com.dbnt.kcscbackend.commonCode.service; + +import com.dbnt.kcscbackend.commonCode.entity.TnCmtOrg; +import com.dbnt.kcscbackend.commonCode.repository.TnCmtOrgRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +@RequiredArgsConstructor +public class CmtService { + private final TnCmtOrgRepository tnCmtOrgRepository; + + public List selectCmtOrgList(){ + List cmtList = tnCmtOrgRepository.findByUseYnOrderByCmtTypeAsc("Y"); + List lv1List = new ArrayList<>(); + for(TnCmtOrg cmt: cmtList){ + if(cmt.getCmtType().equals("LV_01")){ + lv1List.add(cmt); + } + cmt.getChildList().addAll(findChildCmt(cmt, cmtList)); + } + return lv1List; + } + + private List findChildCmt(TnCmtOrg parent, List cmtList){ + List tempList = new ArrayList<>(); + for(TnCmtOrg cmt: cmtList){ + if(parent.getCmtSeq().equals(cmt.getUpCmtSeq())){ + tempList.add(cmt); + } + } + return tempList; + } +} diff --git a/kcsc-back-end/src/main/resources/mybatisMapper/AdminUsersMapper.xml b/kcsc-back-end/src/main/resources/mybatisMapper/AdminUsersMapper.xml index 73a369e..4530426 100644 --- a/kcsc-back-end/src/main/resources/mybatisMapper/AdminUsersMapper.xml +++ b/kcsc-back-end/src/main/resources/mybatisMapper/AdminUsersMapper.xml @@ -12,10 +12,13 @@ a.phone_num, a.user_role, a.status, - c.item_nm as status_value + c.item_nm as status_value, + a.cmt_org, + d.cmt_nm as cmt_org_nm from user_info a inner join tc_code_item b on a.user_se = b.item_cd inner join tc_code_item c on a.status = c.item_cd + left outer join tn_cmt_org d on a.cmt_org = d.cmt_seq order by user_seq desc limit #{rowCnt} offset #{firstIndex}