사용자 목록 작업중.

thkim
강석 최 2024-01-11 18:41:42 +09:00
parent e79432a0e1
commit 510acbd7a7
18 changed files with 242 additions and 80 deletions

View File

@ -0,0 +1,61 @@
import React, {useCallback, useEffect, useState} from "react";
import Form from "react-bootstrap/Form";
import * as EgovNet from "api/egovFetch";
function CheckBox({name, grpCd, selectedValue}){
const [checkBox, setCheckBox] = useState();
useEffect(() => {
getCodeItemList()
}, []);
useEffect(() => {
setCheckedValue(selectedValue)
}, [checkBox]);
function getCodeItemList() {
EgovNet.requestFetch(
'/commonCode/code-item?grpCd='+grpCd,
{
method: "GET"
},
(resp) => {
let checkBoxTag = [];
resp.result.codeList.forEach(function (item, index) {
checkBoxTag.push(
<Form.Check inline
label={item.itemNm}
id={`chkBox_${item.itemCd}`}
key={`chkBox_${item.itemCd}_${index}`}
name={name}
defaultValue={item.itemCd}
onChange={()=>{}}
/>
);
});
setCheckBox(checkBoxTag);
},
function (resp) {
console.log("err response : ", resp);
}
);
}
function setCheckedValue(selectedValue){
debugger
const checkBoxDiv = document.querySelector("#"+grpCd+"_checkBoxDiv")
checkBoxDiv.childNodes.forEach(function (input){
if(selectedValue.includes(input.children[0].value)){
input.checked = true;
}
})
}
return (
<div id={`${grpCd}_checkBoxDiv`} key={`checkBox_${grpCd}`}>
{checkBox}
</div>
)
}
export default CheckBox;

View File

@ -0,0 +1,42 @@
import React, {useEffect, useState} from "react";
import Form from "react-bootstrap/Form";
import * as EgovNet from "api/egovFetch";
function SelectOption({name, grpCd, selectedValue}){
const [options, setOptions] = useState();
useEffect(() => {
getCodeItemList()
}, []);
function getCodeItemList(){
EgovNet.requestFetch(
'/commonCode/code-item?grpCd='+grpCd,
{
method: "GET"
},
(resp) => {
let optionTag = [];
//
resp.result.codeList.forEach(function (item, index) {
optionTag.push(
<option value={item.itemCd} key={`${grpCd}option${index}`}>{item.itemNm}</option>
);
});
setOptions(optionTag);
},
function (resp) {
console.log("err response : ", resp);
}
);
}
return (
<Form.Select name={name} value={selectedValue} onChange={()=>{}}>
{options}
</Form.Select>
)
}
export default SelectOption;

View File

@ -50,7 +50,7 @@ function List(props) {
const listIdx = itemIdxByPage(resultCnt , currentPageNo, pageSize, index);
mutListTag.push(
<div className={"list_item"}>
<div className={"list_item"} key={"userListDiv_"+index}>
<div>{item.userSe}</div>
<div><a href={"#"} onClick={()=>{userInfoModal(item.userSeq)}}>{item.userId}</a></div>
<div>{item.userNm}</div>

View File

@ -1,14 +1,16 @@
import React, {useEffect, useState} from "react"
import React, {useCallback, useEffect, useState} from "react"
import Modal from "react-bootstrap/Modal";
import * as EgovNet from "../../../api/egovFetch";
import * as EgovNet from "api/egovFetch";
import Form from "react-bootstrap/Form";
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";
function UserInfoModal({userSeq}){
const [userInfo, setUserInfo] = useState({ userId: '', password: '', passwordChk: '', userNm: '', email: '', phoneNum: ''});
const [userInfo, setUserInfo] = useState({ userId: '', password: '', passwordChk: '', userNm: '', email: '', phoneNum: '', userSe:'', userRole:'', status:''});
function getModalContent(){
EgovNet.requestFetch(
@ -24,6 +26,9 @@ function UserInfoModal({userSeq}){
phoneNum: resp.result.userInfo.phoneNum,
password: "",
passwordChk: "",
userSe: resp.result.userInfo.userSe,
userRole: resp.result.userInfo.userRole,
status: resp.result.userInfo.status
}
setUserInfo(respInfo);
},
@ -33,8 +38,8 @@ function UserInfoModal({userSeq}){
);
}
function userInfoChange(){
function userInfoChange(e){
debugger
}
useEffect(() => {
@ -43,89 +48,83 @@ function UserInfoModal({userSeq}){
return (
<>
<Modal.Header className="bookmarkModalHeader" closeButton>
<Modal.Header closeButton>
<Modal.Title>
{userInfo.userNm} 상세정보
</Modal.Title>
</Modal.Header>
<Modal.Body>
<Form onSubmit={userInfoChange} noValidate>
<Form.Group as={Row} className="mb-3" controlId="formHorizontalEmail">
<Form onSubmit={(e) =>{userInfoChange(e)}} noValidate>
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
아이디
</Form.Label>
<Col sm={9}>
<Form.Control type="text" name="userId" placeholder="아이디" required value={userInfo?.userId}
onChange={e => setUserInfo({ ...userInfo, userId: e.target.value })}/>
<Form.Control type="text" name="userId" placeholder="아이디" required defaultValue={userInfo?.userId} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3" controlId="formHorizontalEmail">
<Form.Label column sm={3}>
이름
</Form.Label>
<Col sm={9}>
<Form.Control type="text" name="userNm" placeholder="이름" required value={userInfo?.userNm}
onChange={e => setUserInfo({ ...userInfo, userNm: e.target.value })}/>
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3" controlId="formHorizontalEmail">
<Form.Label column sm={3}>
이메일
</Form.Label>
<Col sm={9}>
<Form.Control type="email" name="email" placeholder="email" required value={userInfo?.email}
onChange={e => setUserInfo({ ...userInfo, email: e.target.value })}/>
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3" controlId="formHorizontalEmail">
<Form.Label column sm={3}>
연락처
</Form.Label>
<Col sm={9}>
<Form.Control type="text" name="phoneNum" placeholder="연락처" required value={userInfo?.phoneNum}
onChange={e => setUserInfo({ ...userInfo, phoneNum: e.target.value })}/>
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3" controlId="formHorizontalEmail">
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
비밀번호
</Form.Label>
<Col sm={9}>
<Form.Control type="password" name="password" placeholder="비밀번호 변경 시 입력"
onChange={e => setUserInfo({ ...userInfo, password: e.target.value })}/>
<Form.Control type="password" name="password" placeholder="비밀번호 변경 시 입력" />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3" controlId="formHorizontalEmail">
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
비밀번호 확인
</Form.Label>
<Col sm={9}>
<Form.Control type="password" name="passwordChk" placeholder="비밀번호 변경 시 입력"
onChange={e => setUserInfo({ ...userInfo, passwordChk: e.target.value })}/>
<Form.Control type="password" name="passwordChk" placeholder="비밀번호 변경 시 입력" />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3" controlId="formHorizontalEmail">
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
이름
</Form.Label>
<Col sm={9}>
<Form.Control type="text" name="userNm" placeholder="이름" required defaultValue={userInfo?.userNm} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
이메일
</Form.Label>
<Col sm={9}>
<Form.Control type="email" name="email" placeholder="email" required defaultValue={userInfo?.email} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
연락처
</Form.Label>
<Col sm={9}>
<Form.Control type="text" name="phoneNum" placeholder="연락처" required defaultValue={userInfo?.phoneNum} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
사용자 유형
</Form.Label>
<Col sm={9}>
<SelectOption name={"userSe"} grpCd={"ACC_TYPE"} selectedValue={userInfo?.userSe} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3" controlId="formHorizontalEmail">
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
사용자 권한
</Form.Label>
<Col sm={9}>
<CheckBox name={"userRole"} grpCd={"ROLE"} selectedValue={userInfo?.userRole} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3" controlId="formHorizontalEmail">
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
상태
</Form.Label>
<Col sm={9}>
<SelectOption name={"status"} grpCd={"ACC_STUS"} selectedValue={userInfo?.status} />
</Col>
</Form.Group>
<Row className="mb-3">

View File

@ -3,18 +3,15 @@ package com.dbnt.kcscbackend.admin.committee.schedules.service.impl;
import com.dbnt.kcscbackend.admin.committee.schedules.model.CreateScheduleVO;
import com.dbnt.kcscbackend.admin.committee.schedules.service.EgovIndvdlSchdulManageService;
import com.dbnt.kcscbackend.admin.config.repository.TcCodeItemRepository;
import com.dbnt.kcscbackend.admin.config.repository.TnCmtEventRepository;
import com.dbnt.kcscbackend.admin.config.repository.TnCmtOrgRepository;
import com.dbnt.kcscbackend.commonCode.repository.TcCodeItemRepository;
import com.dbnt.kcscbackend.commonCode.repository.TnCmtEventRepository;
import com.dbnt.kcscbackend.commonCode.repository.TnCmtOrgRepository;
import com.dbnt.kcscbackend.config.common.ResultVO;
import lombok.RequiredArgsConstructor;
import org.apache.tomcat.util.json.JSONParser;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.boot.configurationprocessor.json.JSONObject;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;

View File

@ -1,7 +1,7 @@
package com.dbnt.kcscbackend.admin.config;
import com.dbnt.kcscbackend.admin.config.entity.TcCodeGrp;
import com.dbnt.kcscbackend.admin.config.entity.TcCodeItem;
import com.dbnt.kcscbackend.commonCode.entity.TcCodeGrp;
import com.dbnt.kcscbackend.commonCode.entity.TcCodeItem;
import com.dbnt.kcscbackend.admin.config.service.AdminConfigService;
import com.dbnt.kcscbackend.auth.entity.LoginVO;
import com.dbnt.kcscbackend.config.common.BaseController;

View File

@ -1,9 +1,9 @@
package com.dbnt.kcscbackend.admin.config.service;
import com.dbnt.kcscbackend.admin.config.entity.TcCodeGrp;
import com.dbnt.kcscbackend.admin.config.entity.TcCodeItem;
import com.dbnt.kcscbackend.admin.config.repository.TcCodeGrpRepository;
import com.dbnt.kcscbackend.admin.config.repository.TcCodeItemRepository;
import com.dbnt.kcscbackend.commonCode.entity.TcCodeGrp;
import com.dbnt.kcscbackend.commonCode.entity.TcCodeItem;
import com.dbnt.kcscbackend.commonCode.repository.TcCodeGrpRepository;
import com.dbnt.kcscbackend.commonCode.repository.TcCodeItemRepository;
import lombok.RequiredArgsConstructor;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;

View File

@ -4,13 +4,14 @@ import com.dbnt.kcscbackend.admin.users.mapper.AdminUsersMapper;
import com.dbnt.kcscbackend.auth.entity.UserInfo;
import com.dbnt.kcscbackend.auth.repository.UserInfoRepository;
import lombok.RequiredArgsConstructor;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@RequiredArgsConstructor
public class AdminUsersService {
public class AdminUsersService extends EgovAbstractServiceImpl {
private final UserInfoRepository userInfoRepository;
private final AdminUsersMapper usersMapper;

View File

@ -0,0 +1,43 @@
package com.dbnt.kcscbackend.commonCode;
import com.dbnt.kcscbackend.commonCode.entity.TcCodeItem;
import com.dbnt.kcscbackend.commonCode.service.CommonCodeService;
import com.dbnt.kcscbackend.config.common.ResultVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequiredArgsConstructor
@RequestMapping("/commonCode")
@Tag(name="CommonCodeController", description = "공통코드 컨트롤러")
public class CommonCodeController {
private final CommonCodeService commonCodeService;
@Operation(
summary = "코드 아이템 목록 조회",
description = "코드 아이템 목록 조회",
tags = {"CommonCodeController"}
)
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "조회 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
})
@RequestMapping(method = RequestMethod.GET, value = "/code-item")
public ResultVO getCodeItemList(TcCodeItem codeItem) throws Exception{
ResultVO resultVO = new ResultVO();
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("codeList", commonCodeService.selectCodeItemList(codeItem.getGrpCd()));
resultVO.setResult(resultMap);
return resultVO;
}
}

View File

@ -1,4 +1,4 @@
package com.dbnt.kcscbackend.admin.config.entity;
package com.dbnt.kcscbackend.commonCode.entity;
import lombok.Getter;
import lombok.NoArgsConstructor;

View File

@ -1,4 +1,4 @@
package com.dbnt.kcscbackend.admin.config.entity;
package com.dbnt.kcscbackend.commonCode.entity;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;

View File

@ -1,4 +1,4 @@
package com.dbnt.kcscbackend.admin.config.entity;
package com.dbnt.kcscbackend.commonCode.entity;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;

View File

@ -1,4 +1,4 @@
package com.dbnt.kcscbackend.admin.config.entity;
package com.dbnt.kcscbackend.commonCode.entity;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;

View File

@ -1,6 +1,6 @@
package com.dbnt.kcscbackend.admin.config.repository;
package com.dbnt.kcscbackend.commonCode.repository;
import com.dbnt.kcscbackend.admin.config.entity.TcCodeGrp;
import com.dbnt.kcscbackend.commonCode.entity.TcCodeGrp;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

View File

@ -1,6 +1,6 @@
package com.dbnt.kcscbackend.admin.config.repository;
package com.dbnt.kcscbackend.commonCode.repository;
import com.dbnt.kcscbackend.admin.config.entity.TcCodeItem;
import com.dbnt.kcscbackend.commonCode.entity.TcCodeItem;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

View File

@ -1,14 +1,10 @@
package com.dbnt.kcscbackend.admin.config.repository;
package com.dbnt.kcscbackend.commonCode.repository;
import com.dbnt.kcscbackend.admin.config.entity.TnCmtEvent;
import com.dbnt.kcscbackend.admin.config.entity.TnCmtOrg;
import com.dbnt.kcscbackend.commonCode.entity.TnCmtEvent;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.query.Procedure;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
public interface TnCmtEventRepository extends JpaRepository<TnCmtEvent, TnCmtEvent.TnCmtEventId> {
@Procedure

View File

@ -1,7 +1,6 @@
package com.dbnt.kcscbackend.admin.config.repository;
package com.dbnt.kcscbackend.commonCode.repository;
import com.dbnt.kcscbackend.admin.config.entity.TcCodeItem;
import com.dbnt.kcscbackend.admin.config.entity.TnCmtOrg;
import com.dbnt.kcscbackend.commonCode.entity.TnCmtOrg;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

View File

@ -0,0 +1,24 @@
package com.dbnt.kcscbackend.commonCode.service;
import com.dbnt.kcscbackend.commonCode.entity.TcCodeItem;
import com.dbnt.kcscbackend.commonCode.repository.TcCodeGrpRepository;
import com.dbnt.kcscbackend.commonCode.repository.TcCodeItemRepository;
import lombok.RequiredArgsConstructor;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@RequiredArgsConstructor
public class CommonCodeService extends EgovAbstractServiceImpl{
private final TcCodeGrpRepository codeGrpRepository;
private final TcCodeItemRepository codeItemRepository;
public List<TcCodeItem> selectCodeItemList(String grpCd) {
return codeItemRepository.findByGrpCdAndUseYnOrderByGrpOrder(grpCd, "Y");
}
}