관리자>일반경찰조회 페이지 오류 수정.

관리자>외사경찰현황, 일반경찰조회 페이지 일괄삭제 기능 추가.
master
강석 최 2022-05-26 16:13:27 +09:00
parent 2f487b0dfb
commit aab3a7b4d9
8 changed files with 248 additions and 80 deletions

View File

@ -12,11 +12,7 @@ package kcg.faics.admin.web;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -315,8 +311,68 @@ public class AdminController {
return "excelView";
}
/**
/**
* .
*
* @param userIdStr
*
* @return
* @throws Exception
*
*/
@ResponseBody
@RequestMapping(value = "/faMemberDelete.do", method = RequestMethod.POST)
public HashMap<String, Object> faMemberDelete(HttpServletResponse res, String userIdStr) throws Exception {
HashMap<String, Object> resultMap = new HashMap<String, Object>();
try{
List<MemberVO> userList = new ArrayList<>();
for(String userId : userIdStr.split("\\|")){
MemberVO user = new MemberVO();
user.setUserid(userId);
userList.add(user);
}
MemberVO deleteUserInfo = new MemberVO();
deleteUserInfo.setDeleteUserList(userList);
resultMap.put("result", memberService.deleteFaMemberList(deleteUserInfo));
} catch (Exception e) {
e.printStackTrace();
}
return resultMap;
}
/**
* .
*
* @param userIdStr
*
* @return
* @throws Exception
*
*/
@ResponseBody
@RequestMapping(value = "/cmmnMemberDelete.do", method = RequestMethod.POST)
public HashMap<String, Object> cmmnMemberDelete(HttpServletResponse res, String userIdStr) throws Exception {
HashMap<String, Object> resultMap = new HashMap<String, Object>();
try{
List<MemberVO> userList = new ArrayList<>();
for(String userId : userIdStr.split("\\|")){
MemberVO user = new MemberVO();
user.setUserid(userId);
userList.add(user);
}
MemberVO deleteUserInfo = new MemberVO();
deleteUserInfo.setDeleteUserList(userList);
resultMap.put("result", memberService.deleteCmmnMemberList(deleteUserInfo));
} catch (Exception e) {
e.printStackTrace();
}
return resultMap;
}
/**
* .
*
* "/faMemberUpdateView.do" = -

View File

@ -177,4 +177,8 @@ public interface MemberService extends BaseBbsService<MemberSearchVO, MemberVO>
*
*/
HashMap<String, Object> deleteExMember(ExMemberVO dataVO) throws Exception;
int deleteFaMemberList(MemberVO user) throws Exception;
int deleteCmmnMemberList(MemberVO user) throws Exception;
}

View File

@ -354,4 +354,13 @@ public class MemberMapper extends EgovAbstractMapper {
public int insertExMemeber(final MemberVO dataVO) {
return insert("Member.insertExMemberByMemberVO", dataVO);
}
public int deleteFaMemberList(MemberVO user) {
return delete("Member.deleteFaMemberList", user);
}
public int deleteCmmnMemberList(MemberVO user) {
return delete("Member.deleteCmmnMemberList", user);
}
}

View File

@ -651,6 +651,11 @@ public class MemberServiceImpl implements MemberService {
resultMap.put("result", memberMapper.deleteExMemeber(dataVO));
return resultMap;
}
public int deleteFaMemberList(MemberVO user) throws Exception{
return memberMapper.deleteFaMemberList(user);
}
public int deleteCmmnMemberList(MemberVO user) throws Exception{
return memberMapper.deleteCmmnMemberList(user);
}
}

View File

@ -5,6 +5,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import kcg.faics.member.UserType;
@ -288,8 +289,21 @@ public class MemberVO implements Serializable {
*/
private String writer;
/**
private List<MemberVO> deleteUserList;
public void setNowPlaceStr(String nowPlaceStr) {
this.nowPlaceStr = nowPlaceStr;
}
public List<MemberVO> getDeleteUserList() {
return deleteUserList;
}
public void setDeleteUserList(List<MemberVO> deleteUserList) {
this.deleteUserList = deleteUserList;
}
/**
* @return the userid
*/
public String getUserid() {

View File

@ -202,21 +202,21 @@
</select>
<select id="Member.getCmmnListAll" parameterType="memberSearchVO" resultType="memberVO">
select (ROW_NUMBER() OVER()) AS RNUM,
aa.*
from (select pl1.codenm place1str,
b.recentdate,
pl2.codenm PLACE2STR,
pl3.codenm PLACE3STR,
pst.codenm POSITIONSTR,
jt.codenm JOBTYPESTR,
a.*
from tagent a
select (ROW_NUMBER() OVER()) AS RNUM, aa.*
from (select pl1.codenm || ' ' ||pl2.codenm place3str,
a.name,
pst.codenm POSITIONSTR,
a.userid,
a.loginchk,
a.chkcnt,
a.idno,
a.place1,
b.io_userid,
b.recentdate
from tuser a
inner join tcode pl1 on pl1.code1 = 'C001' and a.place1 = pl1.code2
inner join tcode pl2 on a.place1 = pl2.code1 and a.place2 = pl2.code2
inner join tcode pl3 on pl3.code1 = 'C009' and a.place3 = pl3.code2
inner join tcode pst on pst.code1 = 'C002' and a.position = pst.code2
inner join tcode jt on jt.code1 = 'C003' and a.jobtype = jt.code2
left outer join (SELECT IO_USERID, TO_CHAR(MAX(IO_REGDATE), 'YYYY-MM-DD HH24:MI:SS') AS RECENTDATE
FROM H3_LOGINOUT_LOG
<where>
@ -244,22 +244,22 @@
</select>
<select id="Member.getCmmnMemberList" parameterType="memberSearchVO" resultType="memberVO">
select (ROW_NUMBER() OVER()) AS RNUM,
aa.*
from (select pl1.codenm place1str,
b.recentdate,
pl2.codenm PLACE2STR,
pl3.codenm PLACE3STR,
pst.codenm POSITIONSTR,
jt.codenm JOBTYPESTR,
a.*
from tagent a
inner join tcode pl1 on pl1.code1 = 'C001' and a.place1 = pl1.code2
inner join tcode pl2 on a.place1 = pl2.code1 and a.place2 = pl2.code2
inner join tcode pl3 on pl3.code1 = 'C009' and a.place3 = pl3.code2
inner join tcode pst on pst.code1 = 'C002' and a.position = pst.code2
inner join tcode jt on jt.code1 = 'C003' and a.jobtype = jt.code2
left outer join (SELECT IO_USERID, TO_CHAR(MAX(IO_REGDATE), 'YYYY-MM-DD HH24:MI:SS') AS RECENTDATE
select (ROW_NUMBER() OVER()) AS RNUM, aa.*
from (select pl1.codenm || ' ' ||pl2.codenm place3str,
a.name,
pst.codenm POSITIONSTR,
a.userid,
a.loginchk,
a.chkcnt,
a.idno,
a.place1,
b.io_userid,
b.recentdate
from tuser a
inner join tcode pl1 on pl1.code1 = 'C001' and a.place1 = pl1.code2
inner join tcode pl2 on a.place1 = pl2.code1 and a.place2 = pl2.code2
inner join tcode pst on pst.code1 = 'C002' and a.position = pst.code2
left outer join (SELECT IO_USERID, TO_CHAR(MAX(IO_REGDATE), 'YYYY-MM-DD HH24:MI:SS') AS RECENTDATE
FROM H3_LOGINOUT_LOG
<where>
<if test="place1 != null and place1 != ''">
@ -982,5 +982,22 @@
#{scholarship}, #{excareer}, #{excareer1}, #{excareer2}, #{excareer3}, #{usegrade}, #{inout}, #{comment_}, #{userimg,jdbcType=VARCHAR}, NOW()
)
]]>
</insert>
</insert>
<delete id="Member.deleteFaMemberList" parameterType="hashmap">
delete from TAGENT
where userid in
<foreach collection="deleteUserList" item="item" index="index" separator="," open="(" close=")">
#{item.userid}
</foreach>
</delete>
<delete id="Member.deleteCmmnMemberList" parameterType="hashmap">
delete from TUSER
where userid in
<foreach collection="deleteUserList" item="item" index="index" separator="," open="(" close=")">
#{item.userid}
</foreach>
</delete>
</mapper>

View File

@ -44,19 +44,11 @@
<ct:pageInfo />
<ul class="right btn-style">
<li><a class="btn_excel" href="javascript:fn_goExcel();"></a></li>
<li><a href="#" class="btn_reset" onclick="location.reload();"></a></li>
<li><a href="#" class="btn_reset" onclick="location.reload();"></a></li>
<li><a class="btn_delete" href="javascript:fn_goDelete();"></a></li>
</ul>
</div>
<table class="tbl_list" width="100%" border="0" cellpadding="0" cellspacing="0">
<colgroup>
<col width="80"/>
<col width="200">
<col width="100"/>
<col width="100">
<col width="100"/>
<col width="60"/>
<col width="60"/>
</colgroup>
<thead>
<tr>
<th align="center"><spring:message code="member.view.seq" /></th>
@ -84,8 +76,11 @@
<img src="/images/cmmn/blank_1x1.png" />
</span>
</th>
<th><spring:message code="button.modify"/></th>
<th><spring:message code="button.delete"/></th>
<c:if test="${userVO.isSysAdmin == true or (userVO.isAdmin == true and result.place1 eq userVO.place1)}">
<th><spring:message code="button.modify"/></th>
<th><spring:message code="button.delete"/></th>
<th><input type="checkbox" id="allChk"></th>
</c:if>
</tr>
</thead>
<tbody>
@ -98,18 +93,11 @@
<td align="center" class="listtd"><c:out value="${result.positionStr}" /></td>
<td align="center" class="listtd"><c:out value="${result.useridStr}"/></td>
<td align="center" class="listtd"><c:out value="${result.name}" /></td>
<td align="center" class="listtd">
<c:if test="${userVO.isSysAdmin == true or (userVO.isAdmin == true and result.place1 eq userVO.place1)}">
<a href="#" onclick="modifyUser('<c:out value="${result.userid}"/>', '<c:out value="${result.name}"/>', '<c:out value="${result.place3Str}"/>');"><spring:message code="button.modify" /></a>
</c:if>
</td>
<td align="center" class="listtd">
<c:if test="${userVO.isSysAdmin == true or (userVO.isAdmin == true and result.place1 eq userVO.place1)}">
<a href="#" onclick="deleteUser('<c:out value="${result.userid}"/>', '<c:out value="${result.name}"/>');"><spring:message code="button.delete" /></a>
</c:if>
</td>
<c:if test="${userVO.isSysAdmin == true or (userVO.isAdmin == true and result.place1 eq userVO.place1)}">
<td align="center" class="listtd"><a href="#" onclick="modifyUser('<c:out value="${result.userid}"/>', '<c:out value="${result.name}"/>', '<c:out value="${result.place3Str}"/>');"><spring:message code="button.modify" /></a></td>
<td align="center" class="listtd"><a href="#" onclick="deleteUser('<c:out value="${result.userid}"/>', '<c:out value="${result.name}"/>');"><spring:message code="button.delete" /></a></td>
<td align="center"><input type="checkbox" name="userId" class="deleteUser" value="${result.userid}"></td>
</c:if>
</tr>
</c:forEach>
</c:when>
@ -198,7 +186,43 @@
}
});
});
$(document).on("change", "#allChk", function (){
$(".deleteUser").prop("checked", this.checked)
})
/* 사용자 삭제 */
function fn_goDelete() {
var checkBox = $(".deleteUser:checked")
if(checkBox.length>0){
if(confirm("사용자 정보 "+checkBox.length+"건 을 삭제하시겠습니까?")){
var userIdStr = "";
for(var i=0; i<checkBox.length; i++){
var user = checkBox[i];
userIdStr+=(user.value+"|");
}
/* ie에서 for of 반복문에서 에러 발생.
for(const user of checkBox){
userIdStr+=(user.value+"|");
}*/
$.ajax({
url: '<c:out value="/admin/cmmnMemberDelete.do"/>',
type: 'post',
dataType: 'json',
data : {userIdStr: userIdStr.slice(0, -1)},
success: function (data) {
if(data.result>0){
alert("삭제되었습니다.")
location.reload();
}
}
});
}
}else{
alert("삭제 대상을 선택해주세요.")
}
}
/* 글 목록 화면 function */
function fn_searchList() {
document.searchForm.action = "<c:url value='/admin/cmmnMemberList.do'/>";

View File

@ -8,7 +8,7 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<script type="text/javaScript" defer="defer">
<!--
//<!--
$(document).ready(function(){
@ -38,8 +38,12 @@
}
});
});
/* 글 상세 화면 function */
$(document).on('change', '#allChk', function (){
$(".deleteUser").prop('checked', this.checked);
})
/* 글 상세 화면 function */
function fn_select(id) {
document.listForm.userid.value = id;
document.listForm.action = "<c:url value='/admin/faMemberInfo.do'/>";
@ -63,7 +67,38 @@
document.searchForm.action = "<c:url value='/admin/faMemberListExcel.do'/>";
document.searchForm.submit();
}
/* 사용자 삭제 */
function fn_goDelete() {
var checkBox = $(".deleteUser:checked");
if(checkBox.length>0){
if(confirm("사용자 정보 "+checkBox.length+"건 을 삭제하시겠습니까?")){
var userIdStr = "";
for(var i=0; i<checkBox.length; i++){
var user = checkBox[i];
userIdStr+=(user.value+"|");
}
/* ie에서 for of 반복문이 동작하지 않음.
for(var user of checkBox){
userIdStr+=(user.value+"|");
}*/
$.ajax({
url: '<c:out value="/admin/faMemberDelete.do"/>',
type: 'post',
dataType: 'json',
data : {userIdStr: userIdStr.slice(0, -1)},
success: function (data) {
if(data.result>0){
alert("삭제되었습니다.")
location.reload();
}
}
});
}
}else{
alert("삭제 대상을 선택해주세요.")
}
}
/* pagination 페이지 링크 function */
function fn_link_page(pageNo) {
document.searchForm.pageIndex.value = pageNo;
@ -121,20 +156,22 @@
<ct:pageInfo />
<ul class="right btn-style">
<li><a class="btn_excel" href="javascript:fn_goExcel();"></a></li>
<li><a href="#" class="btn_reset" onclick="location.reload();"></a></li>
<li><a href="#" class="btn_reset" onclick="location.reload();"></a></li>
<li><a class="btn_delete" href="javascript:fn_goDelete();"></a></li>
</ul>
</div>
<table class="tbl_list" width="100%" border="0" cellpadding="0" cellspacing="0">
<colgroup>
<col width="70" >
<col width="200" >
<col width="110" >
<col width="100" >
<col width="100" >
<col width="100" >
<col width="100" >
<col width="80" >
<col width="80" >
<col width="70" >
<col width="200" >
<col width="80" >
<col width="100" >
<col width="100" >
<col width="100" >
<col width="80" >
<col width="80" >
<col width="70" >
<col width="70" >
</colgroup>
<thead>
<tr>
@ -188,7 +225,8 @@
</span>
</th>
<c:if test="${userVO.isSysAdmin == true}">
<th align="center">수정</th>
<th align="center">수정</th>
<th><input type="checkbox" id="allChk"></th>
</c:if>
</tr>
</thead>
@ -219,6 +257,7 @@
<td align="center"><c:out value="${result.usegrade}" /></td>
<c:if test="${userVO.isSysAdmin == true}">
<td align="center"><a href="javascript:fn_modify('${result.userid}');">수정</a></td>
<td align="center"><input type="checkbox" name="userId" class="deleteUser" value="${result.userid}"></td>
</c:if>
</tr>
</c:forEach>