코드관리 작업중
parent
c625a05ae7
commit
46fb96f291
|
|
@ -60,7 +60,7 @@ public class SecurityConfig{
|
|||
protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||
http.authorizeRequests() // 페이지 권한 설정
|
||||
.antMatchers("/dashboard").hasRole(Role.USER.name()) // USER, ADMIN 접근 허용
|
||||
.antMatchers("/admin/**").hasRole(Role.ADMIN.name()) // ADMIN만 접근 허용
|
||||
.antMatchers("/codeMgt/**", "/menuMgt/**").hasRole(Role.ADMIN.name()) // ADMIN만 접근 허용
|
||||
.antMatchers("/login").permitAll() // 로그인 페이지는 권한 없이 접근 허용
|
||||
.and() // 로그인 설정
|
||||
.formLogin() .loginPage("/login") // Custom login form 사용
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
package com.dbnt.faisp.controller;
|
||||
|
||||
import com.dbnt.faisp.service.CodeMgtService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/codeMgt")
|
||||
public class CodeMgtController {
|
||||
|
||||
private final CodeMgtService codeMgtService;
|
||||
|
||||
@GetMapping("/codeMgtPage")
|
||||
public ModelAndView loginError() {
|
||||
ModelAndView mav = new ModelAndView("/adminPage/codeMgt/codeMgt");
|
||||
|
||||
return mav;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
package com.dbnt.faisp.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface CodeMgtMapper {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.dbnt.faisp.model;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@NoArgsConstructor
|
||||
@DynamicInsert
|
||||
@DynamicUpdate
|
||||
@Table(name = "code_catg")
|
||||
public class CodeCatg {
|
||||
@Id
|
||||
@Column(name = "category_cd")
|
||||
private String categoryCd;
|
||||
@Column(name = "category_value", nullable = false)
|
||||
private String categoryValue;
|
||||
@Column(name = "description")
|
||||
private String description;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
package com.dbnt.faisp.model;
|
||||
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@NoArgsConstructor
|
||||
@DynamicInsert
|
||||
@DynamicUpdate
|
||||
@Table(name = "code_mgt")
|
||||
@IdClass(CodeMgt.CodeMgtId.class)
|
||||
public class CodeMgt {
|
||||
@Id
|
||||
@Column(name = "category_cd")
|
||||
private String categoryCd;
|
||||
@Id
|
||||
@Column(name = "item_cd")
|
||||
private String itemCd;
|
||||
@Column(name = "VALUE", nullable = false)
|
||||
private String value;
|
||||
@Column(name = "use_chk")
|
||||
private String useChk;
|
||||
|
||||
@Embeddable
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class CodeMgtId implements Serializable {
|
||||
private String categoryCd;
|
||||
private String itemCd;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package com.dbnt.faisp.repository;
|
||||
|
||||
import com.dbnt.faisp.model.CodeCatg;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
|
||||
public interface CodeCatgRepository extends JpaRepository<CodeCatg, String> {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.dbnt.faisp.repository;
|
||||
|
||||
import com.dbnt.faisp.model.CodeMgt;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
||||
public interface CodeMgtRepository extends JpaRepository<CodeMgt, CodeMgt.CodeMgtId> {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package com.dbnt.faisp.service;
|
||||
|
||||
import com.dbnt.faisp.mapper.CodeMgtMapper;
|
||||
import com.dbnt.faisp.repository.CodeCatgRepository;
|
||||
import com.dbnt.faisp.repository.CodeMgtRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CodeMgtService{
|
||||
|
||||
private final CodeMgtRepository codeMgtRepository;
|
||||
private final CodeCatgRepository codeCatgRepository;
|
||||
private final CodeMgtMapper codeMgtMapper;
|
||||
|
||||
}
|
||||
|
|
@ -15,7 +15,7 @@ $(document).on('click', '#saveBtn', function (){
|
|||
if(result === "userIdDuplication"){
|
||||
alert("등록된 아이디입니다.")
|
||||
}else{
|
||||
alert("저장되었습니다.")
|
||||
alert("저장되었습니다.\n담당자 승인 후 로그인 가능합니다.")
|
||||
$("#closeModalBtn").click();
|
||||
$("#searchBtn").click();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{layout/layout}">
|
||||
<th:block layout:fragment="script">
|
||||
<script type="text/javascript" th:src="@{/js/admin/userMgt.js}"></script>
|
||||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main class="pt-3">
|
||||
<h4>코드 관리</h4>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card text-center">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-6">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>분류코드</th>
|
||||
<th>분류명</th>
|
||||
<th>설명</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<!--<tbody th:if="${categoryList.size()==0}">
|
||||
<tr>
|
||||
<td colspan="2">검색된 분류가 없습니다.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tbody th:if="${categoryList.size()>0}">
|
||||
<tr class="categoryTr" th:each="commonCode:${categoryList}">
|
||||
<td>
|
||||
<input type="checkbox" class="categoryCheckBox" th:value="${commonCode.category}">
|
||||
</td>
|
||||
<td th:text="${commonCode.category}"></td>
|
||||
</tr>
|
||||
</tbody>-->
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4" id="valueDiv">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<input type="checkbox" class="valueCheckBox" id="allValueCheckBox">
|
||||
</th>
|
||||
<th>하위코드</th>
|
||||
<th>값</th>
|
||||
<th>사용여부</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<!--<tbody>
|
||||
<tr>
|
||||
<td colspan="3">분류를 선택해주세요.</td>
|
||||
</tr>
|
||||
</tbody>-->
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<ul class="nav nav-pills" sec:authorize="hasRole('ROLE_ADMIN')">
|
||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">코드관리</a></li>
|
||||
<li class="nav-item"><a href="/codeMgt/codeMgtPage" class="nav-link p-1 link-dark">코드관리</a></li>
|
||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">메뉴관리</a></li>
|
||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">외사경찰관리</a></li>
|
||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">권한설정</a></li>
|
||||
|
|
|
|||
|
|
@ -12,45 +12,219 @@
|
|||
<div class="col-12 card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="col-4 py-1">
|
||||
<div class="card">
|
||||
<div class="card-header bg-white">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">목록1</div>
|
||||
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
목록1
|
||||
<table class="table table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>제목1</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목2</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목3</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목4</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목5</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="col-4 py-1">
|
||||
<div class="card">
|
||||
<div class="card-header bg-white">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">목록2</div>
|
||||
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
목록2
|
||||
<table class="table table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>제목1</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목2</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목3</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목4</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목5</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="col-4 py-1">
|
||||
<div class="card">
|
||||
<div class="card-header bg-white">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">목록3</div>
|
||||
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
목록3
|
||||
<table class="table table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>제목1</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목2</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목3</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목4</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목5</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="col-4 py-1">
|
||||
<div class="card">
|
||||
<div class="card-header bg-white">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">목록4</div>
|
||||
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
목록4
|
||||
<table class="table table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>제목1</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목2</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목3</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목4</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목5</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="col-4 py-1">
|
||||
<div class="card">
|
||||
<div class="card-header bg-white">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">목록5</div>
|
||||
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
목록5
|
||||
<table class="table table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>제목1</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목2</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목3</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목4</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목5</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="col-4 py-1">
|
||||
<div class="card">
|
||||
<div class="card-header bg-white">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">목록6</div>
|
||||
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
목록6
|
||||
<table class="table table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>제목1</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목2</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목3</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목4</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>제목5</td>
|
||||
<td class="text-end">2022-08-19</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue