parent
6713bc933d
commit
37b84a9975
|
|
@ -1,2 +0,0 @@
|
||||||
**/.idea
|
|
||||||
**/.vscode
|
|
||||||
|
|
@ -3,6 +3,8 @@
|
||||||
.github/
|
.github/
|
||||||
.Docs/
|
.Docs/
|
||||||
.idea/
|
.idea/
|
||||||
|
**/.idea
|
||||||
|
**/.vscode
|
||||||
|
|
||||||
# dependencies
|
# dependencies
|
||||||
/node_modules
|
/node_modules
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,6 +1,6 @@
|
||||||
const CODE = {
|
const CODE = {
|
||||||
RCV_SUCCESS : "200", // 성공
|
RCV_SUCCESS : "200", // 성공
|
||||||
|
TOKEN_EXPIRED : "303", // 만료된 토큰
|
||||||
RCV_ERROR_AUTH : "403", // 인증 오류
|
RCV_ERROR_AUTH : "403", // 인증 오류
|
||||||
RCV_ERROR_DELETE : "700", // 삭제 오류
|
RCV_ERROR_DELETE : "700", // 삭제 오류
|
||||||
RCV_ERROR_SAVE : "800", // 저장 오류
|
RCV_ERROR_SAVE : "800", // 저장 오류
|
||||||
|
|
|
||||||
|
|
@ -76,12 +76,12 @@ const URL = {
|
||||||
|
|
||||||
ADMIN_MANAGER : "/admin/manager/", // 사이트관리/사이트관리자 암호변경 기능 추가 2023.04.15(토) 김일국
|
ADMIN_MANAGER : "/admin/manager/", // 사이트관리/사이트관리자 암호변경 기능 추가 2023.04.15(토) 김일국
|
||||||
|
|
||||||
ADMIN_BASE_CODE : "/admin/config/baseCodeMgt", // 사이트관리/환경설정/기본코드관리
|
ADMIN_BASE_CODE : "/admin/config/base-code-mgt", // 사이트관리/환경설정/기본코드관리
|
||||||
ADMIN_STANDARD_CODE : "/admin/config/standardCodeMgt", // 사이트관리/환경설정/건설기준코드관리
|
ADMIN_STANDARD_CODE : "/admin/config/standard-code-mgt", // 사이트관리/환경설정/건설기준코드관리
|
||||||
ADMIN_COMMITTEE_CODE : "/admin/config/committeeCodeMgt", // 사이트관리/환경설정/위원회코드관리
|
ADMIN_COMMITTEE_CODE : "/admin/config/committee-code-mgt", // 사이트관리/환경설정/위원회코드관리
|
||||||
ADMIN_MENU : "/admin/config/menuMgt", // 사이트관리/환경설정/메뉴 관리
|
ADMIN_MENU : "/admin/config/menu-mgt", // 사이트관리/환경설정/메뉴 관리
|
||||||
ADMIN_MENU_AUTH : "/admin/config/menuAuthMgt", // 사이트관리/환경설정/메뉴권한 관리
|
ADMIN_MENU_AUTH : "/admin/config/menu-auth-mgt", // 사이트관리/환경설정/메뉴권한 관리
|
||||||
ADMIN_ABOUT_SITE : "/admin/config/aboutSiteMgt", // 사이트관리/환경설정/관련사이트 관리
|
ADMIN_ABOUT_SITE : "/admin/config/about-site-mgt", // 사이트관리/환경설정/관련사이트 관리
|
||||||
|
|
||||||
// 관리자 - 사용자 현황
|
// 관리자 - 사용자 현황
|
||||||
ADMIN__USERS__LIST : "/admin/users/list", // 사용자 현황
|
ADMIN__USERS__LIST : "/admin/users/list", // 사용자 현황
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import Row from "react-bootstrap/Row";
|
||||||
import Col from "react-bootstrap/Col";
|
import Col from "react-bootstrap/Col";
|
||||||
import Form from 'react-bootstrap/Form'
|
import Form from 'react-bootstrap/Form'
|
||||||
import Button from "react-bootstrap/Button";
|
import Button from "react-bootstrap/Button";
|
||||||
|
import CODE from "../../../../constants/code";
|
||||||
|
|
||||||
function ChildCodeDiv({}, ref){
|
function ChildCodeDiv({}, ref){
|
||||||
|
|
||||||
|
|
@ -14,6 +15,7 @@ function ChildCodeDiv({}, ref){
|
||||||
useImperativeHandle(ref, ()=>({
|
useImperativeHandle(ref, ()=>({
|
||||||
getCodeItemList
|
getCodeItemList
|
||||||
}))
|
}))
|
||||||
|
|
||||||
async function getCodeItemList(parentCd){
|
async function getCodeItemList(parentCd){
|
||||||
setCodeItemRow([]);
|
setCodeItemRow([]);
|
||||||
setGrpCd(parentCd)
|
setGrpCd(parentCd)
|
||||||
|
|
@ -28,10 +30,11 @@ function ChildCodeDiv({}, ref){
|
||||||
codeItemList.forEach(function (item, index){
|
codeItemList.forEach(function (item, index){
|
||||||
itemTag.push(
|
itemTag.push(
|
||||||
<Row className={"py-2 border-bottom"}>
|
<Row className={"py-2 border-bottom"}>
|
||||||
<Col xs={3}><Form.Control type={"text"} size={"sm"} defaultValue={item.itemCd}/></Col>
|
<Col xs={3}><Form.Control type={"text"} size={"sm"} className={"itemCd"} defaultValue={item.itemCd}/></Col>
|
||||||
<Col xs={5}><Form.Control type={"text"} size={"sm"} defaultValue={item.itemNm}/></Col>
|
<Col xs={4}><Form.Control type={"text"} size={"sm"} className={"itemNm"} defaultValue={item.itemNm}/></Col>
|
||||||
<Col xs={2}><Button variant={"danger"} size={"sm"}>삭제</Button></Col>
|
<Col xs={2}><Form.Control type={"text"} size={"sm"} className={"grpOrder"} defaultValue={item.grpOrder}/></Col>
|
||||||
<Col xs={2}><Button variant={"primary"} size={"sm"}>수정</Button></Col>
|
<Col xs={1}><Button variant={"danger"} size={"sm"} onClick={(e)=>{modifyCodeItem(e, "delete")}}>삭제</Button></Col>
|
||||||
|
<Col xs={1}><Button variant={"primary"} size={"sm"} onClick={(e)=>{modifyCodeItem(e, "modify")}}>수정</Button></Col>
|
||||||
</Row>
|
</Row>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
@ -43,24 +46,105 @@ function ChildCodeDiv({}, ref){
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addCodeItem(){
|
||||||
|
const itemCd = document.querySelector("#itemCd");
|
||||||
|
const itemNm = document.querySelector("#itemNm");
|
||||||
|
const grpOrder = document.querySelector("#grpOrder");
|
||||||
|
if(!itemCd.value || !itemNm.value){
|
||||||
|
alert("코드와 코드명을 입력해주세요.")
|
||||||
|
}else{
|
||||||
|
EgovNet.requestFetch(
|
||||||
|
'/admin/config/code-item',
|
||||||
|
{
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
'Content-type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
itemCd: itemCd.value,
|
||||||
|
grpCd: document.querySelector("#grpCd").value,
|
||||||
|
itemNm: itemNm.value,
|
||||||
|
grpOrder: grpOrder.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
(resp) => {
|
||||||
|
switch (resp.resultCode) {
|
||||||
|
case Number(CODE.RCV_SUCCESS):
|
||||||
|
itemCd.value = "";
|
||||||
|
itemNm.value = "";
|
||||||
|
grpOrder.value = "";
|
||||||
|
getCodeItemList(grpCd);
|
||||||
|
break;
|
||||||
|
case Number(CODE.RCV_ERROR_SAVE)||Number(CODE.RCV_ERROR_AUTH):
|
||||||
|
alert(resp.resultMessage);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
function (resp) {
|
||||||
|
console.log("err response : ", resp);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function modifyCodeItem(e, action){
|
||||||
|
const row = e.target.parentElement.parentElement;
|
||||||
|
const codeItem = {
|
||||||
|
grpCd: document.querySelector("#grpCd").value,
|
||||||
|
itemCd: row.querySelector(".itemCd").value,
|
||||||
|
itemNm: row.querySelector(".itemNm").value,
|
||||||
|
grpOrder: row.querySelector(".grpOrder").value,
|
||||||
|
useYn: action==="modify"?'Y':'N'
|
||||||
|
}
|
||||||
|
EgovNet.requestFetch(
|
||||||
|
'/admin/config/code-item',
|
||||||
|
{
|
||||||
|
method: "PUT",
|
||||||
|
headers: {
|
||||||
|
'Content-type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify(codeItem)
|
||||||
|
},
|
||||||
|
(resp) => {
|
||||||
|
switch (resp.resultCode) {
|
||||||
|
case Number(CODE.RCV_SUCCESS):
|
||||||
|
getCodeItemList(grpCd);
|
||||||
|
break;
|
||||||
|
case Number(CODE.RCV_ERROR_SAVE)||Number(CODE.RCV_ERROR_AUTH):
|
||||||
|
alert(resp.resultMessage);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
function (resp) {
|
||||||
|
console.log("err response : ", resp);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container className={"pt-3"}>
|
<Container className={"pt-3"}>
|
||||||
|
<input type={"text"} id={"grpCd"} value={grpCd}/>
|
||||||
<Row className={"py-2 bg-light border-bottom"}>
|
<Row className={"py-2 bg-light border-bottom"}>
|
||||||
<Col xs={3}>코드</Col>
|
<Col xs={3}>코드</Col>
|
||||||
<Col xs={5}>코드명</Col>
|
<Col xs={4}>코드명</Col>
|
||||||
<Col xs={2}>삭제</Col>
|
<Col xs={2}>순번</Col>
|
||||||
<Col xs={2}>수정</Col>
|
<Col xs={3}>삭제 수정</Col>
|
||||||
</Row>
|
</Row>
|
||||||
{codeItemRow}
|
{codeItemRow}
|
||||||
{grpCd!=null?(
|
{grpCd!=null?(
|
||||||
<Row className={"py-1"}>
|
<Row className={"py-1"}>
|
||||||
<Col xs={3}>
|
<Col xs={3}>
|
||||||
<Form.Control type={"text"} placeholder={"코드"} size={"sm"}/>
|
<Form.Control type={"text"} placeholder={"코드"} size={"sm"} id={"itemCd"}/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col xs={5}>
|
<Col xs={4}>
|
||||||
<Form.Control type={"text"} placeholder={"코드명"} size={"sm"}/>
|
<Form.Control type={"text"} placeholder={"코드명"} size={"sm"} id={"itemNm"}/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col xs={{span:2, offset:2}}><Button type={"button"} variant={"primary"} size={"sm"}>등록</Button></Col>
|
<Col xs={2}>
|
||||||
|
<Form.Control type={"text"} placeholder={"순번"} size={"sm"} id={"grpOrder"}/>
|
||||||
|
</Col>
|
||||||
|
<Col xs={2}><Button type={"button"} variant={"primary"} size={"sm"} onClick={addCodeItem}>등록</Button></Col>
|
||||||
</Row>
|
</Row>
|
||||||
):(
|
):(
|
||||||
<Row className={"py-1"}>
|
<Row className={"py-1"}>
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import Col from "react-bootstrap/Col";
|
||||||
import Form from 'react-bootstrap/Form'
|
import Form from 'react-bootstrap/Form'
|
||||||
import Button from "react-bootstrap/Button";
|
import Button from "react-bootstrap/Button";
|
||||||
import { FaRegHandPointRight } from "react-icons/fa";
|
import { FaRegHandPointRight } from "react-icons/fa";
|
||||||
|
import CODE from "../../../../constants/code";
|
||||||
|
|
||||||
function ParentCodeDiv({getCodeItem}){
|
function ParentCodeDiv({getCodeItem}){
|
||||||
|
|
||||||
|
|
@ -23,13 +24,14 @@ function ParentCodeDiv({getCodeItem}){
|
||||||
codeGrpList.forEach(function (item, index){
|
codeGrpList.forEach(function (item, index){
|
||||||
grpTag.push(
|
grpTag.push(
|
||||||
<Row className={"py-2 border-bottom"}>
|
<Row className={"py-2 border-bottom"}>
|
||||||
|
<Form.Control type={"hidden"} className={"grpCd"} defaultValue={item.grpCd}/>
|
||||||
<Col xs={3}>
|
<Col xs={3}>
|
||||||
<FaRegHandPointRight className={"selectIcon d-none"}/>
|
<FaRegHandPointRight className={"selectIcon d-none"}/>
|
||||||
<a href={"#"} onClick={(e)=>{codeGrpChoose(e, item.grpCd)}} data-grpcd={item.grpCd}>{item.grpCd}</a>
|
<a href={"#"} onClick={(e)=>{codeGrpChoose(e, item.grpCd)}} data-grpcd={item.grpCd}>{item.grpCd}</a>
|
||||||
</Col>
|
</Col>
|
||||||
<Col xs={5}><Form.Control type={"text"} size={"sm"} defaultValue={item.grpCdNm}/></Col>
|
<Col xs={5}><Form.Control type={"text"} size={"sm"} className={"grpCdNm"} defaultValue={item.grpCdNm}/></Col>
|
||||||
<Col xs={2}><Button variant={"danger"} size={"sm"}>삭제</Button></Col>
|
<Col xs={2}><Button variant={"danger"} size={"sm"} onClick={(e)=>{modifyCodeGrp(e, "remove")}}>삭제</Button></Col>
|
||||||
<Col xs={2}><Button variant={"primary"} size={"sm"}>수정</Button></Col>
|
<Col xs={2}><Button variant={"primary"} size={"sm"} onClick={(e)=>{modifyCodeGrp(e, "modify")}}>수정</Button></Col>
|
||||||
</Row>
|
</Row>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
@ -56,22 +58,68 @@ function ParentCodeDiv({getCodeItem}){
|
||||||
function addCodeGrp(){
|
function addCodeGrp(){
|
||||||
const grpCd = document.querySelector("#grpCd");
|
const grpCd = document.querySelector("#grpCd");
|
||||||
const grpCdNm = document.querySelector("#grpCdNm");
|
const grpCdNm = document.querySelector("#grpCdNm");
|
||||||
|
if(!grpCd.value){
|
||||||
|
alert("코드 그룹을 입력해주세요.")
|
||||||
|
}else{
|
||||||
|
EgovNet.requestFetch(
|
||||||
|
'/admin/config/code-grp',
|
||||||
|
{
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
'Content-type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
grpCd: grpCd.value,
|
||||||
|
grpCdNm: grpCdNm.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
(resp) => {
|
||||||
|
switch (resp.resultCode) {
|
||||||
|
case Number(CODE.RCV_SUCCESS):
|
||||||
|
grpCd.value = "";
|
||||||
|
grpCdNm.value = "";
|
||||||
|
getCodeGrp();
|
||||||
|
codeGrpChoose();
|
||||||
|
break;
|
||||||
|
case Number(CODE.RCV_ERROR_SAVE)||Number(CODE.RCV_ERROR_AUTH):
|
||||||
|
alert(resp.resultMessage);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
function (resp) {
|
||||||
|
console.log("err response : ", resp);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function modifyCodeGrp(e, action){
|
||||||
|
const row = e.target.parentElement.parentElement;
|
||||||
|
const codeGrp = {
|
||||||
|
grpCd: row.querySelector(".grpCd").value,
|
||||||
|
grpCdNm: row.querySelector(".grpCdNm").value,
|
||||||
|
useYn: action==="modify"?'Y':'N'
|
||||||
|
}
|
||||||
EgovNet.requestFetch(
|
EgovNet.requestFetch(
|
||||||
'/admin/config/code-grp',
|
'/admin/config/code-grp',
|
||||||
{
|
{
|
||||||
method: "POST",
|
method: "PUT",
|
||||||
headers: {
|
headers: {
|
||||||
'Content-type': 'application/json'
|
'Content-type': 'application/json'
|
||||||
},
|
},
|
||||||
body: JSON.stringify({
|
body: JSON.stringify(codeGrp)
|
||||||
grpCd: grpCd.value,
|
|
||||||
grpCdNm: grpCdNm.value
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
(resp) => {
|
(resp) => {
|
||||||
grpCd.value = "";
|
switch (resp.resultCode) {
|
||||||
grpCdNm.value = "";
|
case Number(CODE.RCV_SUCCESS):
|
||||||
getCodeGrp();
|
getCodeGrp();
|
||||||
|
codeGrpChoose();
|
||||||
|
break;
|
||||||
|
case Number(CODE.RCV_ERROR_SAVE)||Number(CODE.RCV_ERROR_AUTH):
|
||||||
|
alert(resp.resultMessage);
|
||||||
|
break;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
function (resp) {
|
function (resp) {
|
||||||
console.log("err response : ", resp);
|
console.log("err response : ", resp);
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,9 +1,11 @@
|
||||||
package com.dbnt.kcscbackend.admin.config;
|
package com.dbnt.kcscbackend.admin.config;
|
||||||
|
|
||||||
import com.dbnt.kcscbackend.admin.config.entity.TcCodeGrp;
|
import com.dbnt.kcscbackend.admin.config.entity.TcCodeGrp;
|
||||||
|
import com.dbnt.kcscbackend.admin.config.entity.TcCodeItem;
|
||||||
import com.dbnt.kcscbackend.admin.config.service.AdminConfigService;
|
import com.dbnt.kcscbackend.admin.config.service.AdminConfigService;
|
||||||
import com.dbnt.kcscbackend.auth.entity.LoginVO;
|
import com.dbnt.kcscbackend.auth.entity.LoginVO;
|
||||||
import com.dbnt.kcscbackend.config.common.BaseController;
|
import com.dbnt.kcscbackend.config.common.BaseController;
|
||||||
|
import com.dbnt.kcscbackend.config.common.ResponseCode;
|
||||||
import com.dbnt.kcscbackend.config.common.ResultVO;
|
import com.dbnt.kcscbackend.config.common.ResultVO;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||||
|
|
@ -17,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -46,6 +49,80 @@ public class AdminConfigController extends BaseController {
|
||||||
return resultVO;
|
return resultVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(
|
||||||
|
summary = "기본코드 그룹 저장",
|
||||||
|
description = "기본코드 그룹 저장",
|
||||||
|
tags = {"AdminConfigController"}
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(responseCode = "200", description = "저장 성공"),
|
||||||
|
@ApiResponse(responseCode = "303", description = "만료된 토큰"),
|
||||||
|
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||||
|
})
|
||||||
|
@RequestMapping(method = RequestMethod.POST, value = "/code-grp", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public ResultVO addCodeGrp(@RequestBody TcCodeGrp codeGrp, @AuthenticationPrincipal LoginVO user) throws Exception{
|
||||||
|
ResultVO resultVO = new ResultVO();
|
||||||
|
if(user == null){
|
||||||
|
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
|
||||||
|
}else{
|
||||||
|
if(!user.getUserSe().equals("ADM")){
|
||||||
|
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
|
||||||
|
}else if(codeGrp.getGrpCd().isEmpty()){
|
||||||
|
resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage());
|
||||||
|
}else{
|
||||||
|
codeGrp.setFrstCrtDt(LocalDateTime.now());
|
||||||
|
codeGrp.setFrstCrtId(user.getId());
|
||||||
|
codeGrp.setUseYn("Y");
|
||||||
|
String result = adminConfigService.addCodeGrp(codeGrp);
|
||||||
|
if(result.equals("isSaved")){
|
||||||
|
resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage("중복되는 코드그룹이 있습니다.");
|
||||||
|
}else{
|
||||||
|
resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resultVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(
|
||||||
|
summary = "기본코드 그룹 수정",
|
||||||
|
description = "기본코드 그룹 수정",
|
||||||
|
tags = {"AdminConfigController"}
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(responseCode = "200", description = "수정 성공"),
|
||||||
|
@ApiResponse(responseCode = "303", description = "만료된 토큰"),
|
||||||
|
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||||
|
})
|
||||||
|
@RequestMapping(method = RequestMethod.PUT, value = "/code-grp", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public ResultVO modifyCodeGrp(@RequestBody TcCodeGrp codeGrp, @AuthenticationPrincipal LoginVO user) throws Exception{
|
||||||
|
ResultVO resultVO = new ResultVO();
|
||||||
|
if(user == null){
|
||||||
|
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
|
||||||
|
}else{
|
||||||
|
if(!user.getUserSe().equals("ADM")){
|
||||||
|
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
|
||||||
|
}else if(codeGrp.getGrpCd().isEmpty()){
|
||||||
|
resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage());
|
||||||
|
}else{
|
||||||
|
codeGrp.setLastChgDt(LocalDateTime.now());
|
||||||
|
codeGrp.setLastChgId(user.getId());
|
||||||
|
String result = adminConfigService.modifyCodeGrp(codeGrp);
|
||||||
|
if(result.equals("modified")){
|
||||||
|
resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
|
||||||
|
}else{
|
||||||
|
resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resultVO;
|
||||||
|
}
|
||||||
|
|
||||||
@Operation(
|
@Operation(
|
||||||
summary = "기본코드 아이템 조회",
|
summary = "기본코드 아이템 조회",
|
||||||
description = "기본코드 아이템 조회",
|
description = "기본코드 아이템 조회",
|
||||||
|
|
@ -65,8 +142,8 @@ public class AdminConfigController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(
|
@Operation(
|
||||||
summary = "기본코드 그룹 저장",
|
summary = "기본코드 아이템 저장",
|
||||||
description = "기본코드 그룹 저장",
|
description = "기본코드 아이템 저장",
|
||||||
tags = {"AdminConfigController"}
|
tags = {"AdminConfigController"}
|
||||||
)
|
)
|
||||||
@ApiResponses(value = {
|
@ApiResponses(value = {
|
||||||
|
|
@ -74,22 +151,68 @@ public class AdminConfigController extends BaseController {
|
||||||
@ApiResponse(responseCode = "303", description = "만료된 토큰"),
|
@ApiResponse(responseCode = "303", description = "만료된 토큰"),
|
||||||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||||
})
|
})
|
||||||
@RequestMapping(method = RequestMethod.POST, value = "/code-grp", consumes = MediaType.APPLICATION_JSON_VALUE)
|
@RequestMapping(method = RequestMethod.POST, value = "/code-item", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResultVO addCodeGrp(@RequestBody TcCodeGrp codeGrp, @AuthenticationPrincipal LoginVO user) throws Exception{
|
public ResultVO addCodeItem(@RequestBody TcCodeItem codeItem, @AuthenticationPrincipal LoginVO user) throws Exception{
|
||||||
ResultVO resultVO = new ResultVO();
|
ResultVO resultVO = new ResultVO();
|
||||||
if(user == null){
|
if(user == null){
|
||||||
resultVO.setResultCode(303);
|
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
|
||||||
}else{
|
}else{
|
||||||
if(!user.getUserSe().equals("ADM")){
|
if(!user.getUserSe().equals("ADM")){
|
||||||
resultVO.setResultCode(403);
|
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
|
||||||
|
}else if(codeItem.getGrpCd()==null || codeItem.getGrpCd().isEmpty()){
|
||||||
|
resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage());
|
||||||
}else{
|
}else{
|
||||||
Map<String, Object> resultMap = new HashMap<>();
|
codeItem.setFrstCrtDt(LocalDateTime.now());
|
||||||
adminConfigService.addCodeGrp(codeGrp);
|
codeItem.setFrstCrtId(user.getId());
|
||||||
//resultMap.put("codeGrpList", );
|
codeItem.setUseYn("Y");
|
||||||
resultVO.setResult(resultMap);
|
String result = adminConfigService.addCodeItem(codeItem);
|
||||||
resultVO.setResultCode(200);
|
if(result.equals("isSaved")){
|
||||||
|
resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage("중복되는 코드가 있습니다.");
|
||||||
|
}else{
|
||||||
|
resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return resultVO;
|
return resultVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(
|
||||||
|
summary = "기본코드 아이템 수정",
|
||||||
|
description = "기본코드 아이템 수정",
|
||||||
|
tags = {"AdminConfigController"}
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(responseCode = "200", description = "수정 성공"),
|
||||||
|
@ApiResponse(responseCode = "303", description = "만료된 토큰"),
|
||||||
|
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||||
|
})
|
||||||
|
@RequestMapping(method = RequestMethod.PUT, value = "/code-item", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public ResultVO modifyCodeItem(@RequestBody TcCodeItem codeItem, @AuthenticationPrincipal LoginVO user) throws Exception{
|
||||||
|
ResultVO resultVO = new ResultVO();
|
||||||
|
if(user == null){
|
||||||
|
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
|
||||||
|
}else{
|
||||||
|
if(!user.getUserSe().equals("ADM")){
|
||||||
|
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
|
||||||
|
}else if(codeItem.getGrpCd().isEmpty()){
|
||||||
|
resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode());
|
||||||
|
resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage());
|
||||||
|
}else{
|
||||||
|
codeItem.setLastChgDt(LocalDateTime.now());
|
||||||
|
codeItem.setLastChgId(user.getId());
|
||||||
|
String result = adminConfigService.modifyCodeItem(codeItem);
|
||||||
|
if(result.equals("modified")){
|
||||||
|
resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
|
||||||
|
}else{
|
||||||
|
resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resultVO;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,5 +3,8 @@ package com.dbnt.kcscbackend.admin.config.repository;
|
||||||
import com.dbnt.kcscbackend.admin.config.entity.TcCodeGrp;
|
import com.dbnt.kcscbackend.admin.config.entity.TcCodeGrp;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface TcCodeGrpRepository extends JpaRepository<TcCodeGrp, String> {
|
public interface TcCodeGrpRepository extends JpaRepository<TcCodeGrp, String> {
|
||||||
|
List<TcCodeGrp> findByUseYn(String useYn);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,5 +6,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface TcCodeItemRepository extends JpaRepository<TcCodeItem, TcCodeItem.TcCodeItemId> {
|
public interface TcCodeItemRepository extends JpaRepository<TcCodeItem, TcCodeItem.TcCodeItemId> {
|
||||||
List<TcCodeItem> findByGrpCdOrderByGrpOrder(String grpCd);
|
List<TcCodeItem> findByGrpCdAndUseYnOrderByGrpOrder(String grpCd, String useYn);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,15 +21,79 @@ public class AdminConfigService extends EgovAbstractServiceImpl {
|
||||||
private final AdminConfigMapper adminConfigMapper;
|
private final AdminConfigMapper adminConfigMapper;
|
||||||
|
|
||||||
public List<TcCodeGrp> selectCodeGrpList(){
|
public List<TcCodeGrp> selectCodeGrpList(){
|
||||||
return codeGrpRepository.findAll();
|
return codeGrpRepository.findByUseYn("Y");
|
||||||
}
|
|
||||||
|
|
||||||
public List<TcCodeItem> selectCodeItemList(String grpCd){
|
|
||||||
return codeItemRepository.findByGrpCdOrderByGrpOrder(grpCd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void addCodeGrp(TcCodeGrp codeGrp) {
|
public String addCodeGrp(TcCodeGrp codeGrp) {
|
||||||
codeGrpRepository.save(codeGrp);
|
TcCodeGrp savedGrp = codeGrpRepository.findById(codeGrp.getGrpCd()).orElse(null);
|
||||||
|
if(savedGrp!=null){
|
||||||
|
if(savedGrp.getUseYn().equals("Y")){
|
||||||
|
return "isSaved";
|
||||||
|
}else{
|
||||||
|
savedGrp.setGrpCdNm(codeGrp.getGrpCdNm());
|
||||||
|
savedGrp.setUseYn("Y");
|
||||||
|
codeGrpRepository.save(savedGrp);
|
||||||
|
return savedGrp.getGrpCd();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
codeGrpRepository.save(codeGrp);
|
||||||
|
return codeGrp.getGrpCd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public String modifyCodeGrp(TcCodeGrp codeGrp) {
|
||||||
|
TcCodeGrp savedGrp = codeGrpRepository.findById(codeGrp.getGrpCd()).orElse(null);
|
||||||
|
if (savedGrp != null) {
|
||||||
|
savedGrp.setGrpCdNm(codeGrp.getGrpCdNm());
|
||||||
|
savedGrp.setLastChgId(codeGrp.getLastChgId());
|
||||||
|
savedGrp.setLastChgDt(codeGrp.getLastChgDt());
|
||||||
|
savedGrp.setUseYn(codeGrp.getUseYn());
|
||||||
|
codeGrpRepository.save(savedGrp);
|
||||||
|
return "modified";
|
||||||
|
}else{
|
||||||
|
return "validGrpCd";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TcCodeItem> selectCodeItemList(String grpCd){
|
||||||
|
return codeItemRepository.findByGrpCdAndUseYnOrderByGrpOrder(grpCd, "Y");
|
||||||
|
}
|
||||||
|
@Transactional
|
||||||
|
public String addCodeItem(TcCodeItem codeItem) {
|
||||||
|
TcCodeItem savedItem = codeItemRepository.findById(
|
||||||
|
new TcCodeItem.TcCodeItemId(codeItem.getItemCd(), codeItem.getGrpCd())
|
||||||
|
).orElse(null);
|
||||||
|
if(savedItem!=null){
|
||||||
|
if(savedItem.getUseYn().equals("Y")){
|
||||||
|
return "isSaved";
|
||||||
|
}else{
|
||||||
|
savedItem.setItemNm(savedItem.getItemNm());
|
||||||
|
savedItem.setUseYn("Y");
|
||||||
|
codeItemRepository.save(savedItem);
|
||||||
|
return savedItem.getGrpCd();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
codeItemRepository.save(codeItem);
|
||||||
|
return codeItem.getItemCd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public String modifyCodeItem(TcCodeItem codeItem) {
|
||||||
|
TcCodeItem savedItem = codeItemRepository.findById(
|
||||||
|
new TcCodeItem.TcCodeItemId(codeItem.getItemCd(), codeItem.getGrpCd())
|
||||||
|
).orElse(null);
|
||||||
|
if (savedItem != null) {
|
||||||
|
savedItem.setItemNm(codeItem.getItemNm());
|
||||||
|
savedItem.setLastChgId(codeItem.getLastChgId());
|
||||||
|
savedItem.setLastChgDt(codeItem.getLastChgDt());
|
||||||
|
savedItem.setUseYn(codeItem.getUseYn());
|
||||||
|
codeItemRepository.save(savedItem);
|
||||||
|
return "modified";
|
||||||
|
}else{
|
||||||
|
return "validGrpCd";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ public class EgovLoginApiController extends BaseController {
|
||||||
msg.append(error.getDefaultMessage());
|
msg.append(error.getDefaultMessage());
|
||||||
msg.append("\n");
|
msg.append("\n");
|
||||||
}
|
}
|
||||||
resultMap.put("resultCode", ResponseCode.SAVE_ERROR.getCode());
|
resultMap.put("resultCode", ResponseCode.INPUT_CHECK_ERROR.getCode());
|
||||||
resultMap.put("resultMessage", msg.toString());
|
resultMap.put("resultMessage", msg.toString());
|
||||||
}else if(!loginVO.getPassword().equals(loginVO.getPasswordChk())){
|
}else if(!loginVO.getPassword().equals(loginVO.getPasswordChk())){
|
||||||
resultMap.put("resultCode", ResponseCode.SAVE_ERROR.getCode());
|
resultMap.put("resultCode", ResponseCode.SAVE_ERROR.getCode());
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ package com.dbnt.kcscbackend.config.common;
|
||||||
public enum ResponseCode {
|
public enum ResponseCode {
|
||||||
|
|
||||||
SUCCESS(200, "성공했습니다."),
|
SUCCESS(200, "성공했습니다."),
|
||||||
|
FAILED(300, "실패하였습니다."),
|
||||||
|
TOKEN_EXPIRED(303, "만료된 토큰입니다."),
|
||||||
AUTH_ERROR(403, "인가된 사용자가 아닙니다."),
|
AUTH_ERROR(403, "인가된 사용자가 아닙니다."),
|
||||||
DELETE_ERROR(700, "삭제 중 내부 오류가 발생했습니다."),
|
DELETE_ERROR(700, "삭제 중 내부 오류가 발생했습니다."),
|
||||||
SAVE_ERROR(800, "저장시 내부 오류가 발생했습니다."),
|
SAVE_ERROR(800, "저장시 내부 오류가 발생했습니다."),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue