이지우 - 관리자 헤더에 소속 변경 기능 추가

This commit is contained in:
JIWOO 2024-09-23 15:05:12 +09:00
parent 7bcb0ee0f1
commit 763a986dcc
7 changed files with 233 additions and 7 deletions

View File

@ -57,10 +57,9 @@ import kcc.let.sym.mnu.mpm.service.EgovMenuManageService;
import kcc.let.sym.mnu.mpm.service.MenuManageVO;
import kcc.let.sym.site.service.EgovSiteIpService;
import kcc.let.sym.site.service.EgovSiteManagerService;
import kcc.let.sym.site.service.SiteManagerVO;
import kcc.let.uss.olp.qmc.service.EgovQustnrManageService;
import kcc.let.uss.umt.service.EgovUserManageService;
import kcc.let.uss.umt.service.UserManageVO;
import seed.com.gtm.join.MemberJoinService;
/**
* 템플릿 메인 페이지 컨트롤러 클래스(Sample 소스)
@ -128,6 +127,9 @@ public class EgovMainController {
@Resource(name = "meunCreateManageService")
private EgovMenuCreateManageService menuCreateManageService;
@Resource(name = "memberJoinService")
private MemberJoinService memberJoinService;
/**
* 메인 페이지에서 업무 화면으로 연계하는 기능을 제공한다.
@ -233,6 +235,17 @@ public class EgovMainController {
model.addAttribute("sessionTime", "60");
// model.addAttribute("authority", user.getAuthority());
//변경가능 소속
String enableDept = (String) session.getAttribute("enableDept");
String memberDept = (String) session.getAttribute("memberDept");
String memberId = (String) session.getAttribute("memberId");
enableDept += "," + memberDept;
commandMap.put("enableDept", enableDept.replace("null,", ""));
commandMap.put("memberId", memberId);
model.addAttribute("memDept", memberDept);
model.addAttribute("enaDept", memberJoinService.deptList(commandMap));
return "main/inc/EgovIncTopnav"; // 내부업무의 상단메뉴 화면
}

View File

@ -0,0 +1,11 @@
package seed.com.gtm.dao;
import java.util.Map;
import seed.com.gtm.join.LogsVO;
public interface MemberLogDao {
public LogsVO logsInfo(Map<String, Object> map);
}

View File

@ -0,0 +1,21 @@
package seed.com.gtm.dao;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import seed.com.gtm.join.LogsVO;
@Repository("memberLogDao")
public class MemberLogDaoImpl implements MemberLogDao{
@Autowired SqlSession sqlSession;
@Override
public LogsVO logsInfo(Map<String, Object> map) {
return sqlSession.selectOne("join.logsInfo", map);
}
}

View File

@ -0,0 +1,78 @@
package seed.com.gtm.join;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import seed.com.gtm.util.JSONView;
import seed.com.gtm.util.JSPUtil;
@Controller
public class MemberLogController {
@Autowired
MemberLogService memberLogService;
@Autowired
private MemberJoinService memberJoinService;
@RequestMapping("/gtm/case/join/jsp/PagelogInfo.do")
public ModelAndView loginInfo(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap) throws IOException, SQLException{
ModelAndView mav = new ModelAndView();
String memberId = (String) session.getAttribute("memberId");
paramMap.put("memberId", memberId);
LogsVO logsInfo = null;
logsInfo = memberLogService.logsInfo(paramMap);
mav.addObject("logsInfo", logsInfo);
String view = "/_extra/gtm/join/loginInfo";
mav.setViewName(view);
return mav;
}
@RequestMapping("/gtm/case/join/jsp/DeptInfo.do")
public String deptInfo(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap) throws IOException, SQLException{
String enableDept = (String) session.getAttribute("enableDept");
String memberDept = (String) session.getAttribute("memberDept");
String memberId = (String) session.getAttribute("memberId");
enableDept += "," + memberDept;
paramMap.put("enableDept", enableDept.replace("null,", ""));
paramMap.put("memberId", memberId);
model.addAttribute("memDept", memberDept);
model.addAttribute("enaDept", memberJoinService.deptList(paramMap));
return "/_extra/gtm/join/deptInfo";
}
@RequestMapping("/gtm/case/join/ajax/changeDept.do")
public ModelAndView changeDept(HttpServletRequest request, HttpSession session, @RequestParam Map<String,Object> paramMap) throws Exception {
EgovMap params = JSPUtil.makeRequestParams(request, session, true);
ModelAndView mavjson = new ModelAndView(new JSONView());
/*paramMap.put("memberId", (String) session.getAttribute("memberId"));
paramMap.put("changeDept", params.get("changeDept"));
memberJoinService.memberDeptUpdate(paramMap);*/
session.removeAttribute("memberDept");
session.setAttribute("memberDept", params.get("changeDept"));
mavjson.addObject("success");
return mavjson;
}
}

View File

@ -0,0 +1,24 @@
package seed.com.gtm.join;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import seed.com.gtm.dao.MemberLogDao;
import seed.com.gtm.join.LogsVO;
@Service
public class MemberLogService {
@Autowired
private MemberLogDao memberLogDao;
//로그인 로그기록
public LogsVO logsInfo(Map<String, Object> map) throws IOException, SQLException {
return memberLogDao.logsInfo(map);
}
}

View File

@ -28,7 +28,8 @@
<script src="<c:url value='/js/kccadr/kccadrCom.js' />"></script>
<script src="<c:url value='/js/antdatepicker/moment.min.js'/>"></script>
<script src="/js/lib/jquery.blockUI.js"></script>
<script>
</script>
</head>

View File

@ -14,7 +14,6 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!-- topmenu start -->
<script type="text/javascript">
function actionLogout()
{
@ -75,6 +74,80 @@ function modifyMem(uniqId){
form.submit();
}
function fn_change_dept(val) {
var param = {changeDept:val};
var url = "/gtm/case/join/ajax/changeDept.do";
TopnavXHR(url, param, function(r){
alert("소속을 변경하였습니다.");
location.reload();
});
}
function TopnavXHR(url, data, callbackFunc, exceptionFunc , localStartFunc , localEndFunc){
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" />&nbsp;&nbsp;잠시만 기다려주세요.</h1>' });
jQuery.ajax({
url: url,
type: "POST",
dataType: "html",
//data: data + "&IS_AJAX_REQUEST=IS_AJAX_REQUEST",
contentType: 'application/x-www-form-urlencoded; charset=utf-8',
data: data,
async: true,
cache: false,
success: function (data, textStatus) {
var result;
try{
console.log(data);
result = eval('(' + data + ')');
}catch(ex){
$.unblockUI();
alert(ex);
}
if( typeof(result) == 'object' ){ // JSON 오프젝트로 받음(리턴값이 JSON이거나 Exception 발생시)
if(result._EXCEPTION_){
if(exceptionFunc){ // 익셉션 처리 함수가 있으면
$.unblockUI();
exceptionFunc(result._EXCEPTION_);
}else{
$.unblockUI();
_processException(result._EXCEPTION_);
}
}else if(result._SESSION_OUT_){ // 세션 아웃 처리
alert(result._SESSION_OUT_.message);
if(result._SESSION_OUT_.redirectUrl !=""){
$.unblockUI();
parent.location.href= redirectUrl;
}
}else{
if(callbackFunc){ // 익셉션이 아니고 callback 펑션이 있을때.
$.unblockUI();
callbackFunc(result);
}
}
}else{
if(callbackFunc){ // HTML 형식의 리턴이며 callback 펑션이 있을때.
$.unblockUI();
callbackFunc(data);
}
}
},
beforeSend : function(){ // 로컬 이벤트 , 시작
if(localStartFunc){
$.unblockUI();
localStartFunc();
}
},
complete: function(){ // 로컬 이벤트 , 끝
if(localEndFunc){
$.unblockUI();
localEndFunc();
}
}
});
}
</script>
<%-- 전자조정 --%>
<!-- top_utill -->
@ -92,9 +165,14 @@ function modifyMem(uniqId){
<!-- <span class="alram_num">3</span> -->
<p>로그아웃</p>
</button>
<button class="alram" onclick="modifyMem('<c:out value="${LoginVO.uniqId}" />');">
<p>정보수정</p>
</button>
<button class="alram" onclick="modifyMem('<c:out value="${LoginVO.uniqId}" />');">
<p>정보수정</p>
</button>
<select onchange="fn_change_dept(this.value)">
<c:forEach var="ed" items="${enaDept}" varStatus="stss">
<option value="${ed.CODE_IDXS}" <c:if test="${ed.CODE_IDXS eq memDept}">selected="selected"</c:if>>${ed.CODE_NAME}</option>
</c:forEach>
</select>
</div>
<ul class="user_util">
<li class="time_out"><i></i>