코드관리 작업중

강석 최 2022-08-19 18:04:45 +09:00
parent c625a05ae7
commit 46fb96f291
12 changed files with 402 additions and 15 deletions

View File

@ -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 사용

View File

@ -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;
}
}

View File

@ -0,0 +1,10 @@
package com.dbnt.faisp.mapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface CodeMgtMapper {
}

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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;
}

View File

@ -15,7 +15,7 @@ $(document).on('click', '#saveBtn', function (){
if(result === "userIdDuplication"){
alert("등록된 아이디입니다.")
}else{
alert("저장되었습니다.")
alert("저장되었습니다.\n담당자 승인 후 로그인 가능합니다.")
$("#closeModalBtn").click();
$("#searchBtn").click();
}

View File

@ -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>

View File

@ -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>

View File

@ -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>