[EDIT]:第二段階(部署削除機能)まで実装完了しました。
This commit is contained in:
@@ -1,16 +1,17 @@
|
||||
package com.example.rhizome.aop.aspect;
|
||||
|
||||
import com.example.rhizome.app.presentation.controller.pageproperty.SessionKeyword;
|
||||
import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
|
||||
import com.example.rhizome.app.presentation.form.LoginUserForm;
|
||||
import com.example.rhizome.exception.InsufficientPermissionException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Before;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import com.example.rhizome.app.presentation.controller.pageproperty.SessionKeyword;
|
||||
import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
|
||||
import com.example.rhizome.app.presentation.form.LoginUserForm;
|
||||
import com.example.rhizome.exception.InsufficientPermissionException;
|
||||
|
||||
/**
|
||||
* 権限チェック用のAOP
|
||||
|
||||
@@ -9,16 +9,18 @@ import com.example.rhizome.app.infra.repository.DepartmentRepository;
|
||||
|
||||
@Service
|
||||
@Transactional
|
||||
public class DeleteDepartmentImpl implements DeleteDepartment{
|
||||
|
||||
public class DeleteDepartmentImpl implements DeleteDepartment {
|
||||
|
||||
DepartmentRepository departmentRepository;
|
||||
|
||||
|
||||
@Autowired
|
||||
public DeleteDepartmentImpl() {
|
||||
|
||||
|
||||
|
||||
public DeleteDepartmentImpl(DepartmentRepository departmentRepository) {
|
||||
this.departmentRepository = departmentRepository;
|
||||
|
||||
}
|
||||
|
||||
public void deleteDepartment(Integer idDepartment) {
|
||||
departmentRepository.deleteById(idDepartment);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,76 @@
|
||||
package com.example.rhizome.app.presentation.controller;
|
||||
|
||||
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import com.example.rhizome.aop.aspect.PermissionCheck;
|
||||
import com.example.rhizome.aop.aspect.SessionCheck;
|
||||
import com.example.rhizome.app.domain.model.LoginUser;
|
||||
import com.example.rhizome.app.domain.service.DeleteDepartment;
|
||||
import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword;
|
||||
import com.example.rhizome.app.presentation.controller.pageproperty.SessionKeyword;
|
||||
import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
|
||||
import com.example.rhizome.app.presentation.form.LoginUserForm;
|
||||
import com.example.rhizome.app.presentation.form.MessageForm;
|
||||
|
||||
@Controller
|
||||
public class DeleteDepartmentController {
|
||||
|
||||
|
||||
|
||||
private final static Logger LOGGER = Logger.getLogger(DeleteDepartmentController.class.getName());
|
||||
|
||||
private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
|
||||
|
||||
HttpSession httpSession;
|
||||
DeleteDepartment deleteDepartment;
|
||||
|
||||
public DeleteDepartmentController(DeleteDepartment deleteDepartment, HttpSession httpSession) {
|
||||
this.httpSession = httpSession;
|
||||
this.deleteDepartment = deleteDepartment;
|
||||
}
|
||||
|
||||
@PermissionCheck
|
||||
@SessionCheck
|
||||
@RequestMapping(value = DELETE_DEPARTMENT, method = RequestMethod.POST)
|
||||
public String deleteDepartment(@RequestParam("idDepartment") Integer idDepartment, Model model) {
|
||||
|
||||
try {
|
||||
|
||||
deleteExec(
|
||||
model,
|
||||
idDepartment,
|
||||
LoginUserForm.convertTo((LoginUserForm) httpSession.getAttribute(SessionKeyword.LOGIN_USER)));
|
||||
|
||||
return "forward:" + TransitionTargetPageNameKeyword.SELECT_DEPARTMENT_FORM_EMPTY;
|
||||
|
||||
} catch (Exception e) {
|
||||
// ログイン情報の破棄
|
||||
httpSession.invalidate();
|
||||
|
||||
e.printStackTrace();
|
||||
// エラーログ出力
|
||||
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
|
||||
// エラー画面遷移
|
||||
return TransitionTargetPageNameKeyword.ERROR_HTML;
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteExec(Model model, Integer idDepartment, LoginUser loginUser) {
|
||||
|
||||
final String DELETE_COMPLETE = "削除しました。";
|
||||
|
||||
deleteDepartment.deleteDepartment(idDepartment);
|
||||
|
||||
model.addAttribute(PageReturnAttributeKeyword.MESSAGE_INFO, new MessageForm(DELETE_COMPLETE));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,20 +80,21 @@ public class SelectDepartmentController {
|
||||
}
|
||||
}
|
||||
|
||||
// @PermissionCheck
|
||||
// @SessionCheck
|
||||
// @RequestMapping(value = TransitionTargetPageNameKeyword.SELECT_DEPARTMENT,
|
||||
// method = RequestMethod.POST)
|
||||
// public String select(Model model) {
|
||||
//
|
||||
// // 検索条件を元に検索を実施
|
||||
// model.addAttribute(PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST,
|
||||
// DepartmentForm.convertFrom(
|
||||
// searchDepartment.searchBy(
|
||||
// SearchConditionDepartmentForm.convertTo(
|
||||
// searchConditionDepartmentForm()))));
|
||||
//
|
||||
// // 検索ページに遷移
|
||||
// return TransitionTargetPageNameKeyword.SELECT_DEPARTMENT_HTML;
|
||||
// }
|
||||
// 管理者メニューから部署検索画面へ遷移する際に使用する
|
||||
@PermissionCheck
|
||||
@SessionCheck
|
||||
@RequestMapping(value = TransitionTargetPageNameKeyword.SELECT_DEPARTMENT_FORM_EMPTY,
|
||||
method = RequestMethod.POST)
|
||||
public String select(Model model) {
|
||||
|
||||
// 検索条件を元に検索を実施
|
||||
model.addAttribute(PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST,
|
||||
DepartmentForm.convertFrom(
|
||||
searchDepartment.searchBy(
|
||||
SearchConditionDepartmentForm.convertTo(
|
||||
searchConditionDepartmentForm()))));
|
||||
|
||||
// 検索ページに遷移
|
||||
return TransitionTargetPageNameKeyword.SELECT_DEPARTMENT_HTML;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ public class SelectEmployeeController {
|
||||
|
||||
// ログ出力用インスタンス
|
||||
private final static Logger LOGGER = Logger.getLogger(SelectEmployeeController.class.getName());
|
||||
|
||||
// エラーメッセージ用の定数フィールド
|
||||
private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
|
||||
|
||||
@@ -51,6 +52,7 @@ public class SelectEmployeeController {
|
||||
|
||||
/**
|
||||
* 社員検索画面表示処理コントローラ
|
||||
* 管理者メニューから社員検索画面へ遷移する際に使用する
|
||||
*
|
||||
* @param searchConditionEmployeeForm 検索画面のフォーム
|
||||
* @param model ビューにデータを渡すためのコンテナ
|
||||
|
||||
@@ -51,7 +51,7 @@ public class TransitionTargetPageNameKeyword {
|
||||
public static final String INSERT_EMPLOYEE_CONFIRM = "/insertEmployeeConfirm";
|
||||
public static final String INSERT_EMPLOYEE = "/insertEmployee";
|
||||
public static final String SELECT_EMPLOYEE_INFO = "/selectEmployeeInfo";
|
||||
public static final String SELECT_EMPLOYEE_INFO_FORM_EMPTY = "/selectAll";
|
||||
public static final String SELECT_EMPLOYEE_INFO_FORM_EMPTY = "/employeeSelectAll";
|
||||
public static final String SHOW_UPDATE_EMPLOYEE = "/showUpdateEmployee";
|
||||
public static final String UPDATE_EMPLOYEE_RESULT = "/updateEmployeeResult";
|
||||
|
||||
@@ -61,6 +61,7 @@ public class TransitionTargetPageNameKeyword {
|
||||
public static final String INSERT_DEPARTMENT_CONFIRM = "/insertDepartmentConfirm";
|
||||
public static final String INSERT_DEPARTMENT = "/insertDepartment";
|
||||
public static final String SELECT_DEPARTMENT = "/selectDepartment";
|
||||
public static final String SELECT_DEPARTMENT_FORM_EMPTY = "/departmentSelectAll";
|
||||
public static final String SHOW_UPDATE_DEPARTMENT = "/showUpdateDepartment";
|
||||
public static final String UPDATE_DEPARTMENT_RESULT = "/updateDepartmentResult";
|
||||
|
||||
@@ -90,7 +91,9 @@ public class TransitionTargetPageNameKeyword {
|
||||
SHOW_UPDATE_EMPLOYEE,
|
||||
UPDATE_EMPLOYEE_RESULT,
|
||||
SELECT_DEPARTMENT,
|
||||
INSERT_DEPARTMENT_INPUT
|
||||
INSERT_DEPARTMENT_INPUT,
|
||||
SELECT_DEPARTMENT_FORM_EMPTY,
|
||||
DELETE_DEPARTMENT
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -57,13 +57,13 @@
|
||||
function selectEmployeeSubmit() {
|
||||
const form = document.createElement('form');
|
||||
form.setAttribute('method', 'post');
|
||||
form.setAttribute('action', 'selectEmployeeInfo');
|
||||
form.setAttribute('action', 'employeeSelectAll');
|
||||
|
||||
// 動的送信用のHidden
|
||||
// 動的にFormを作成する場合は何かしら送信しないと、正しく動作しない
|
||||
const inputField = document.createElement("input");
|
||||
inputField.setAttribute("type", "hidden");
|
||||
inputField.setAttribute("value", "selectEmployeeInfo");
|
||||
inputField.setAttribute("value", "employeeSelectAll");
|
||||
|
||||
form.appendChild(inputField);
|
||||
|
||||
@@ -77,13 +77,13 @@
|
||||
function selectDepartmentSubmit() {
|
||||
const form = document.createElement('form');
|
||||
form.setAttribute('method', 'post');
|
||||
form.setAttribute('action', 'selectDepartment');
|
||||
form.setAttribute('action', 'departmentSelectAll');
|
||||
|
||||
// 動的送信用のHidden
|
||||
// 動的にFormを作成する場合は何かしら送信しないと、正しく動作しない
|
||||
const inputField = document.createElement("input");
|
||||
inputField.setAttribute("type", "hidden");
|
||||
inputField.setAttribute("value", "selectDepartment");
|
||||
inputField.setAttribute("value", "departmentSelectAll");
|
||||
|
||||
form.appendChild(inputField);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user