This commit is contained in:
myname 2025-01-09 17:52:27 +09:00
commit 74d2d62263
6 changed files with 319 additions and 300 deletions

View File

@ -1,15 +1,15 @@
package seed.com.gtm.dao; package seed.com.gtm.dao;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public interface FaqBbsDao { public interface FaqBbsDao {
public void boardInsert(Map<String, Object> paramMap); public void boardInsert(Map<String, Object> paramMap);
public List<Map<String,Object>> boardList(Map<String, Object> paramMap); public List<Map<String,Object>> boardList(Map<String, Object> paramMap);
public Map<String,Object> boardView(Map<String, Object> paramMap); public Map<String,Object> boardView(Map<String, Object> paramMap);
public void boardUpdate(Map<String, Object> paramMap); public void boardUpdate(Map<String, Object> paramMap);
public int boardListCnt(Map<String, Object> paramMap); public int boardListCnt(Map<String, Object> paramMap);
public void boardDel(Map<String, Object> paramMap); public void boardDel(Map<String, Object> paramMap);
public void cntUpdate(Map<String, Object> paramMap); public void cntUpdate(Map<String, Object> paramMap);
public List<Map<String, Object>> boardListAllFaq(Map<String, Object> paramMap); public List<Map<String, Object>> boardListAllFaq(Map<String, Object> paramMap);
} }

View File

@ -1,59 +1,59 @@
package seed.com.gtm.dao; package seed.com.gtm.dao;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public class FaqBbsDaoImpl implements FaqBbsDao { public class FaqBbsDaoImpl implements FaqBbsDao {
@Autowired @Autowired
private SqlSession sqlSession; private SqlSession sqlSession;
@Override @Override
public void boardInsert(Map<String, Object> paramMap) { public void boardInsert(Map<String, Object> paramMap) {
sqlSession.insert("faqbbs.insert", paramMap); sqlSession.insert("faqbbs.insert", paramMap);
} }
@Override @Override
public List<Map<String, Object>> boardList(Map<String, Object> paramMap) { public List<Map<String, Object>> boardList(Map<String, Object> paramMap) {
List<Map<String, Object>> boardList = sqlSession.selectList("faqbbs.select", paramMap); List<Map<String, Object>> boardList = sqlSession.selectList("faqbbs.select", paramMap);
return boardList; return boardList;
} }
@Override @Override
public Map<String, Object> boardView(Map<String, Object> paramMap) { public Map<String, Object> boardView(Map<String, Object> paramMap) {
Map<String, Object> boardView = sqlSession.selectOne("faqbbs.selectOne", paramMap); Map<String, Object> boardView = sqlSession.selectOne("faqbbs.selectOne", paramMap);
return boardView; return boardView;
} }
@Override @Override
public void boardUpdate(Map<String, Object> paramMap) { public void boardUpdate(Map<String, Object> paramMap) {
sqlSession.update("faqbbs.update", paramMap); sqlSession.update("faqbbs.update", paramMap);
} }
@Override @Override
public int boardListCnt(Map<String, Object> paramMap) { public int boardListCnt(Map<String, Object> paramMap) {
return sqlSession.selectOne("faqbbs.selectCnt",paramMap); return sqlSession.selectOne("faqbbs.selectCnt",paramMap);
} }
@Override @Override
public void boardDel(Map<String, Object> paramMap) { public void boardDel(Map<String, Object> paramMap) {
sqlSession.update("faqbbs.delete", paramMap); sqlSession.update("faqbbs.delete", paramMap);
} }
@Override @Override
public void cntUpdate(Map<String, Object> paramMap) { public void cntUpdate(Map<String, Object> paramMap) {
sqlSession.update("faqbbs.cntUpdate", paramMap); sqlSession.update("faqbbs.cntUpdate", paramMap);
} }
@Override @Override
public List<Map<String, Object>> boardListAllFaq(Map<String, Object> paramMap) { public List<Map<String, Object>> boardListAllFaq(Map<String, Object> paramMap) {
List<Map<String, Object>> boardList = sqlSession.selectList("faqbbs.selectAllFaq", paramMap); List<Map<String, Object>> boardList = sqlSession.selectList("faqbbs.selectAllFaq", paramMap);
return boardList; return boardList;
} }
} }

View File

@ -1,52 +1,73 @@
package seed.com.gtm.faqbbs; package seed.com.gtm.faqbbs;
import java.util.List; import java.sql.Clob;
import java.util.Map; import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import seed.com.gtm.dao.FaqBbsDaoImpl;
import seed.com.gtm.dao.FaqBbsDaoImpl;
@Service
public class faqBpardService { @Service
public class faqBpardService {
@Autowired
private FaqBbsDaoImpl dao; @Autowired
private FaqBbsDaoImpl dao;
public void boardInsert(Map<String, Object> paramMap){
dao.boardInsert(paramMap); public void boardInsert(Map<String, Object> paramMap){
} dao.boardInsert(paramMap);
}
public List<Map<String,Object>> boardList(Map<String, Object> paramMap){
List<Map<String,Object>> boardList = dao.boardList(paramMap); public List<Map<String,Object>> boardList(Map<String, Object> paramMap){
return boardList; List<Map<String,Object>> boardList = dao.boardList(paramMap);
} return boardList;
}
public Map<String,Object> boardView(Map<String, Object> paramMap){
Map<String,Object> boardView = dao.boardView(paramMap); public Map<String,Object> boardView(Map<String, Object> paramMap){
return boardView; Map<String,Object> boardView = dao.boardView(paramMap);
} //FAQ_CONT가 CLOB 타입이며, SELECT에서 문자열로 변경 varchar2(4000) 초과하여 오류 발생.
//CLOB 타입으로 조회 java에서 문자열로 변환 처리
public void boardUpdate(Map<String, Object> paramMap){ try {
dao.boardUpdate(paramMap); if(boardView.get("FAQ_CONT") != null) {
} Clob faqContClob = (Clob) boardView.get("FAQ_CONT");
System.out.println(faqContClob);
public int boardListCnt(Map<String, Object> paramMap){ StringBuilder sb = new StringBuilder();
return dao.boardListCnt(paramMap); long length = faqContClob.length();
} java.io.Reader reader = faqContClob.getCharacterStream();
char[] buffer = new char[1024];
public void boardDel(Map<String, Object> paramMap){ int bytesRead;
dao.boardDel(paramMap); while ((bytesRead = reader.read(buffer)) != -1) {
} sb.append(buffer, 0, bytesRead);
}
public void cntUpdate(Map<String, Object> paramMap){ boardView.put("FAQ_CONT",sb.toString());
dao.cntUpdate(paramMap); reader.close();
} }
}catch(Exception e) {
public List<Map<String,Object>> boardListAllFaq(Map<String, Object> paramMap){ e.printStackTrace();
List<Map<String,Object>> boardList = dao.boardListAllFaq(paramMap); }
return boardList; return boardView;
} }
} public void boardUpdate(Map<String, Object> paramMap){
dao.boardUpdate(paramMap);
}
public int boardListCnt(Map<String, Object> paramMap){
return dao.boardListCnt(paramMap);
}
public void boardDel(Map<String, Object> paramMap){
dao.boardDel(paramMap);
}
public void cntUpdate(Map<String, Object> paramMap){
dao.cntUpdate(paramMap);
}
public List<Map<String,Object>> boardListAllFaq(Map<String, Object> paramMap){
List<Map<String,Object>> boardList = dao.boardListAllFaq(paramMap);
return boardList;
}
}

View File

@ -1,163 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="faqbbs"> <mapper namespace="faqbbs">
<insert id="insert" parameterType="java.util.HashMap"> <insert id="insert" parameterType="java.util.HashMap">
INSERT INTO C_FAQBBS( INSERT INTO C_FAQBBS(
FAQ_SEQ_NUMBER, FAQ_SEQ_NUMBER,
FAQ_SETIDX, FAQ_SETIDX,
FAQ_SUBJ, FAQ_SUBJ,
FAQ_CONT, FAQ_CONT,
MNGR_RPL_CONT, MNGR_RPL_CONT,
VIEW_CNT, VIEW_CNT,
REG_MBER_ID, REG_MBER_ID,
REG_MBER_NM, REG_MBER_NM,
REG_DATE, REG_DATE,
MOD_MBER_ID, MOD_MBER_ID,
MOD_DATE, MOD_DATE,
DEL_YN DEL_YN
) VALUES ( ) VALUES (
SEQ_CASE_FAQBBS.NEXTVAL, SEQ_CASE_FAQBBS.NEXTVAL,
#{setIdx}, #{setIdx},
#{fagSubj}, #{fagSubj},
#{editorParam_faqCont}, #{editorParam_faqCont},
#{editorParam_faqCont}, #{editorParam_faqCont},
0, 0,
#{memberId}, #{memberId},
#{memberName}, #{memberName},
SYSDATE, SYSDATE,
#{memberId}, #{memberId},
SYSDATE, SYSDATE,
'N' 'N'
) )
</insert> </insert>
<select id="select" parameterType="java.util.HashMap" resultType="java.util.HashMap"> <select id="select" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT * FROM SELECT * FROM
( (
SELECT ROW_.*, ROWNUM AS RNUM FROM SELECT ROW_.*, ROWNUM AS RNUM FROM
( (
SELECT FAQ_SEQ_NUMBER, SELECT FAQ_SEQ_NUMBER,
FAQ_SETIDX, FAQ_SETIDX,
FAQ_SUBJ, FAQ_SUBJ,
FAQ_CONT, FAQ_CONT,
MNGR_RPL_CONT, MNGR_RPL_CONT,
VIEW_CNT, VIEW_CNT,
REG_MBER_ID, REG_MBER_ID,
REG_MBER_NM, REG_MBER_NM,
REG_DATE, REG_DATE,
MOD_MBER_ID, MOD_MBER_ID,
MOD_DATE MOD_DATE
FROM C_FAQBBS FROM C_FAQBBS
WHERE FAQ_SETIDX = #{setIdx} WHERE FAQ_SETIDX = #{setIdx}
AND DEL_YN = 'N' AND DEL_YN = 'N'
<if test="searchTilte != null and searchTilte != ''"> <if test="searchTilte != null and searchTilte != ''">
<choose> <choose>
<when test="searchType == 'title'">AND FAQ_SUBJ LIKE '%' || #{searchTilte} || '%'</when> <when test="searchType == 'title'">AND FAQ_SUBJ LIKE '%' || #{searchTilte} || '%'</when>
<when test="searchType == 'content'">AND FAQ_CONT LIKE '%' || #{searchTilte} || '%'</when> <when test="searchType == 'content'">AND FAQ_CONT LIKE '%' || #{searchTilte} || '%'</when>
</choose> </choose>
</if> </if>
ORDER BY REG_DATE DESC ORDER BY REG_DATE DESC
) ROW_ ) ROW_
) )
WHERE RNUM > #{pageStart} AND #{perPageNum} >= ROWNUM WHERE RNUM > #{pageStart} AND #{perPageNum} >= ROWNUM
</select> </select>
<select id="selectCnt" parameterType="java.util.HashMap" resultType="int"> <select id="selectCnt" parameterType="java.util.HashMap" resultType="int">
SELECT COUNT(*) SELECT COUNT(*)
FROM C_FAQBBS FROM C_FAQBBS
WHERE FAQ_SETIDX = #{setIdx} WHERE FAQ_SETIDX = #{setIdx}
AND DEL_YN = 'N' AND DEL_YN = 'N'
<if test="searchTilte != null and searchTilte != ''"> <if test="searchTilte != null and searchTilte != ''">
<choose> <choose>
<when test="searchType == 'title'">AND FAQ_SUBJ LIKE '%' || #{searchTilte} || '%'</when> <when test="searchType == 'title'">AND FAQ_SUBJ LIKE '%' || #{searchTilte} || '%'</when>
<when test="searchType == 'content'">AND FAQ_CONT LIKE '%' || #{searchTilte} || '%'</when> <when test="searchType == 'content'">AND FAQ_CONT LIKE '%' || #{searchTilte} || '%'</when>
</choose> </choose>
</if> </if>
</select> </select>
<select id="selectOne" parameterType="java.util.HashMap" resultType="java.util.HashMap"> <select id="selectOne" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT FAQ_SEQ_NUMBER, SELECT FAQ_SEQ_NUMBER,
FAQ_SETIDX, FAQ_SETIDX,
FAQ_SUBJ, FAQ_SUBJ,
dbms_lob.substr(FAQ_CONT, dbms_lob.getlength(FAQ_CONT), 1) AS FAQ_CONT , <!-- dbms_lob.substr(FAQ_CONT, dbms_lob.getlength(FAQ_CONT), 1) AS FAQ_CONT , -->
MNGR_RPL_CONT, FAQ_CONT,
VIEW_CNT, MNGR_RPL_CONT,
REG_MBER_ID, VIEW_CNT,
REG_MBER_NM, REG_MBER_ID,
REG_DATE, REG_MBER_NM,
MOD_MBER_ID, REG_DATE,
MOD_DATE MOD_MBER_ID,
FROM C_FAQBBS MOD_DATE
WHERE FAQ_SEQ_NUMBER = #{faqSeq} FROM C_FAQBBS
</select> WHERE FAQ_SEQ_NUMBER = #{faqSeq}
</select>
<update id="update">
UPDATE C_FAQBBS <update id="update">
SET FAQ_SUBJ = #{fagSubj}, UPDATE C_FAQBBS
FAQ_CONT = #{editorParam_faqCont}, SET FAQ_SUBJ = #{fagSubj},
MOD_MBER_ID = #{memberId}, FAQ_CONT = #{editorParam_faqCont},
MOD_DATE = SYSDATE MOD_MBER_ID = #{memberId},
WHERE FAQ_SEQ_NUMBER = #{faqSeq} MOD_DATE = SYSDATE
</update> WHERE FAQ_SEQ_NUMBER = #{faqSeq}
</update>
<delete id="delete">
UPDATE C_FAQBBS <delete id="delete">
SET DEL_YN = 'Y' UPDATE C_FAQBBS
WHERE FAQ_SEQ_NUMBER = #{faqSeq} SET DEL_YN = 'Y'
</delete> WHERE FAQ_SEQ_NUMBER = #{faqSeq}
</delete>
<delete id="cntUpdate">
UPDATE C_FAQBBS <delete id="cntUpdate">
SET VIEW_CNT = VIEW_CNT+1 UPDATE C_FAQBBS
WHERE FAQ_SEQ_NUMBER = #{faqSeq} SET VIEW_CNT = VIEW_CNT+1
</delete> WHERE FAQ_SEQ_NUMBER = #{faqSeq}
</delete>
<select id="selectAllFaq" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT <select id="selectAllFaq" parameterType="java.util.HashMap" resultType="java.util.HashMap">
* SELECT
FROM *
( FROM
SELECT (
ROW_.*, SELECT
ROWNUM AS RNUM ROW_.*,
FROM ROWNUM AS RNUM
( FROM
SELECT (
count(1) over() as cnt, SELECT
FAQ_SEQ_NUMBER, count(1) over() as cnt,
FAQ_SETIDX, FAQ_SEQ_NUMBER,
FAQ_SUBJ, FAQ_SETIDX,
FAQ_CONT, FAQ_SUBJ,
MNGR_RPL_CONT, FAQ_CONT,
VIEW_CNT, MNGR_RPL_CONT,
REG_MBER_ID, VIEW_CNT,
REG_MBER_NM, REG_MBER_ID,
REG_DATE, REG_MBER_NM,
TO_CHAR(REG_DATE, 'YYYY-MM-DD') AS REG_DATE_FORMAT, REG_DATE,
MOD_MBER_ID, TO_CHAR(REG_DATE, 'YYYY-MM-DD') AS REG_DATE_FORMAT,
MOD_DATE MOD_MBER_ID,
FROM MOD_DATE
C_FAQBBS FROM
WHERE C_FAQBBS
(FAQ_SETIDX = '101' WHERE
OR FAQ_SETIDX = '102' (FAQ_SETIDX = '101'
OR FAQ_SETIDX = '103' ) OR FAQ_SETIDX = '102'
AND DEL_YN = 'N' OR FAQ_SETIDX = '103' )
<if test="totalSearchKeyword != null and totalSearchKeyword != ''"> AND DEL_YN = 'N'
AND ( <if test="totalSearchKeyword != null and totalSearchKeyword != ''">
FAQ_SUBJ like '%' || #{totalSearchKeyword} || '%' AND (
OR FAQ_CONT like '%' || #{totalSearchKeyword} || '%' FAQ_SUBJ like '%' || #{totalSearchKeyword} || '%'
) OR FAQ_CONT like '%' || #{totalSearchKeyword} || '%'
</if> )
ORDER BY </if>
REG_DATE DESC ORDER BY
) ROW_ REG_DATE DESC
) ) ROW_
WHERE )
RNUM > #{PAGESTART} WHERE
AND #{PERPAGENUM} >= ROWNUM RNUM > #{PAGESTART}
</select> AND #{PERPAGENUM} >= ROWNUM
</select>
</mapper> </mapper>

View File

@ -166,7 +166,7 @@ function clipCall(crfNm){
<option value="companyCeo" <c:if test="${searchType == 'companyCeo'}">selected="selected"</c:if>>신청인</option> <option value="companyCeo" <c:if test="${searchType == 'companyCeo'}">selected="selected"</c:if>>신청인</option>
<option value="respondentCeo" <c:if test="${searchType == 'respondentCeo'}">selected="selected"</c:if>>피신청인</option> <option value="respondentCeo" <c:if test="${searchType == 'respondentCeo'}">selected="selected"</c:if>>피신청인</option>
<option value="process" <c:if test="${searchType == 'process'}">selected="selected"</c:if>>경과여부</option> <option value="process" <c:if test="${searchType == 'process'}">selected="selected"</c:if>>경과여부</option>
<c:if test="${memberPosition == '0911000000' || memberPosition == '0910000000'}"> <c:if test="${memberPosition == '0911000000' || memberPosition == '0910000000' || memberPosition == '0915000000'}">
<option value="examinerSearch" <c:if test="${searchType == 'examinerSearch'}">selected="selected"</c:if>>조사관</option> <option value="examinerSearch" <c:if test="${searchType == 'examinerSearch'}">selected="selected"</c:if>>조사관</option>
</c:if> </c:if>
<option value="rceptNoSearch" <c:if test="${searchType == 'rceptNoSearch'}">selected="selected"</c:if>>문서등록번호</option> <option value="rceptNoSearch" <c:if test="${searchType == 'rceptNoSearch'}">selected="selected"</c:if>>문서등록번호</option>
@ -204,7 +204,7 @@ function clipCall(crfNm){
<col class="title5"> <col class="title5">
<col class="title5"> <col class="title5">
<col class="title7"> <col class="title7">
<c:if test="${memberPosition == '0911000000' || memberPosition == '0910000000'}"> <c:if test="${memberPosition == '0911000000' || memberPosition == '0910000000' || memberPosition == '0915000000'}">
<col class="title7"> <col class="title7">
</c:if> </c:if>
</colgroup> </colgroup>
@ -223,7 +223,7 @@ function clipCall(crfNm){
<th scope="col" rowspan="2">보완기일</th> <th scope="col" rowspan="2">보완기일</th>
<th scope="col" rowspan="2">기간연장여부</th> <th scope="col" rowspan="2">기간연장여부</th>
<th scope="col" rowspan="2">기간경과여부</th> <th scope="col" rowspan="2">기간경과여부</th>
<c:if test="${memberPosition == '0911000000' || memberPosition == '0910000000'}"> <c:if test="${memberPosition == '0911000000' || memberPosition == '0910000000' || memberPosition == '0915000000'}">
<th scope="col" rowspan="2">조사관</th> <th scope="col" rowspan="2">조사관</th>
</c:if> </c:if>
</tr> </tr>
@ -305,7 +305,7 @@ function clipCall(crfNm){
<td><c:if test='${list.caseExtend != null}'>연장</c:if> <td><c:if test='${list.caseExtend != null}'>연장</c:if>
<c:if test='${list.caseExtend == null}'>N</c:if></td> <c:if test='${list.caseExtend == null}'>N</c:if></td>
<td>${list.termCheck}</td> <td>${list.termCheck}</td>
<c:if test="${memberPosition == '0911000000' || memberPosition == '0910000000'}"> <c:if test="${memberPosition == '0911000000' || memberPosition == '0910000000' || memberPosition == '0915000000'}">
<td>${list.caseExaminerNm}</td> <td>${list.caseExaminerNm}</td>
</c:if> </c:if>
</tr> </tr>
@ -314,7 +314,7 @@ function clipCall(crfNm){
<c:otherwise> <c:otherwise>
<tr> <tr>
<c:choose> <c:choose>
<c:when test="${memberPosition == '0911000000' || memberPosition == '0910000000'}"> <c:when test="${memberPosition == '0911000000' || memberPosition == '0910000000' || memberPosition == '0915000000'}">
<td colspan="9">검색된 데이터가 없습니다.</td> <td colspan="9">검색된 데이터가 없습니다.</td>
</c:when> </c:when>
<c:otherwise> <c:otherwise>

View File

@ -279,7 +279,7 @@
<col width="10%"> <col width="10%">
<!--소속 : 유통팀, 한국공정거래조정원, 민원상담센터 --> <!--소속 : 유통팀, 한국공정거래조정원, 민원상담센터 -->
<c:if <c:if
test="${(memberDept == SeedConstants.YUTONG || memberDept == SeedConstants.HANGUK || memberDept == SeedConstants.MINWON) }"> test="${(memberDept == SeedConstants.YUTONG || memberDept == SeedConstants.HANGUK || memberDept == SeedConstants.MINWON || memberPosition == SeedConstants.GWANRIJA) }">
<col width="10%"> <col width="10%">
</c:if> </c:if>
</colgroup> </colgroup>
@ -305,7 +305,7 @@
<th scope="col" rowspan="2">분쟁유형</th> <th scope="col" rowspan="2">분쟁유형</th>
<!--소속 : 유통팀, 한국공정거래조정원, 민원상담센터 --> <!--소속 : 유통팀, 한국공정거래조정원, 민원상담센터 -->
<c:if <c:if
test="${(memberDept == SeedConstants.YUTONG || memberDept == SeedConstants.HANGUK || memberDept == SeedConstants.MINWON) }"> test="${(memberDept == SeedConstants.YUTONG || memberDept == SeedConstants.HANGUK || memberDept == SeedConstants.MINWON || memberPosition == SeedConstants.GWANRIJA) }">
<th scope="col" rowspan="2">조사관</th> <th scope="col" rowspan="2">조사관</th>
</c:if> </c:if>
</tr> </tr>
@ -356,14 +356,11 @@
<td>${list.regDt}</td> <td>${list.regDt}</td>
<td>${list.caseGubun}</td> <td>${list.caseGubun}</td>
<c:if <c:if
test="${(memberDept == SeedConstants.YUTONG || memberDept == SeedConstants.HANGUK || memberDept == SeedConstants.MINWON) }"> test="${(memberDept == SeedConstants.YUTONG || memberDept == SeedConstants.HANGUK || memberDept == SeedConstants.MINWON || memberPosition == SeedConstants.GWANRIJA) }">
<c:choose> <c:choose>
<c:when test="${searchMa == 'Y'}"> <c:when test="${list.memberName != null}">
<td>${list.memberName}</td> <td>${list.memberName}</td>
</c:when> </c:when>
<c:when test="${searchMa == 'P'}">
<td>배정중</td>
</c:when>
<c:otherwise> <c:otherwise>
<td>미배정</td> <td>미배정</td>
</c:otherwise> </c:otherwise>