체크리스트 수정 - 커뮤니티 1

# 미수정 사항
페이지 삽입 (한 페이지에 30개) ( 페이징 처리 )

# 수정된 사항
댓글 순서 확인(날짜순으로 밑에 나타남)
게시글 좋아요, 공유 버튼 상단으로 이동
'게시글은 최신글이 위로 올라오게 지속 업데이트
'오늘의 인기글' -> '인기글' 또는 '어제의 인기글' 워딩 변경
dev_bert
isol2011 3 years ago
parent 632179bbd4
commit bc87866466

@ -9,6 +9,7 @@ public interface M_Bf_boardBO {
public abstract DataMap select_bf_view_board(DataMap paramMap) throws Exception;
public abstract List<DataMap> select_list_bf_board(DataMap paramMap) throws Exception;
public abstract DataMap select_top_bf_board(DataMap paramMap) throws Exception;
public abstract List<DataMap> select_bf_board_img_by_b_no(DataMap paramMap) throws Exception;
public abstract List<DataMap> select_bf_board_vote_by_b_no(DataMap paramMap) throws Exception;
public abstract List<DataMap> select_bf_board_comment_by_b_no(DataMap paramMap) throws Exception;

@ -28,6 +28,19 @@ public class M_Bf_boardBOImpl extends AbstractBOManager implements M_Bf_boardBO
return lm;
}
public DataMap select_top_bf_board(DataMap paramMap) throws Exception{
DataMap rm = null;
try {
generalDAO.setNamespace(SQLMAP_NAMESPACE);
rm = generalDAO.select_item_to_datamap("select_top_bf_board", paramMap);
} catch (SQLException e) {
throw e;
}
return rm;
}
public DataMap select_bf_view_board(DataMap paramMap) throws Exception{
DataMap dm = null;

@ -78,6 +78,11 @@ public class M_Bf_boardController extends AbstractControllerManager {
List<DataMap> lm = bf_boardBo.select_list_bf_board(paramMap);
DataMap.putToModel(model, "lm", lm);
// 인기글 셀렉
DataMap rm = bf_boardBo.select_top_bf_board(paramMap);
DataMap.putToModel(model, "rm", rm);
}
}catch(Exception ex1){ redirect_url = gmUtil.redirectError(true, ex1, request, paramMap, ra, ""); ex1.printStackTrace();}
if(paramMap.get("bd_tp") == null) {

@ -2,6 +2,129 @@
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="com.backoffice.m.bf_board">
<select id="select_list_bf_board" resultClass="dataMap" parameterClass="dataMap">
SELECT
x.*
FROM (
<isNotEqual property="bd_tp" compareValue="BF_CT_TP_5">
SELECT
x.bd_no
,x.bd_tp
,x.title
,x.content
,x.hashtag
,x.member_id
,z.title as bd_tp_nm
,IFNULL(star,0) as star
,IFNULL(h_nt ,0) as h_nt
,(select count(*)
from tbl_bf_board_like tbl
where tbl.bd_no = x.bd_no ) as l_nt
,(select count(*)
from tbl_bf_board_comment tbc
where tbc.bd_no = x.bd_no ) as c_nt
,DATE_FORMAT(x.reg_dt,'%H:%i') reg_tm
,tbv.v_content
,x.thumbnail
,m.profile_path
,m.name
,m.nickname
,tmf.mt_file_seq
,tmf.mt_file_local_url
,ROW_NUMBER() OVER (ORDER BY x.reg_dt desc, x.h_nt desc, x.bd_no desc) AS row_num
FROM tbl_bf_board x
LEFT JOIN tbl_code_item z
on x.bd_tp = z.val_1 and cg_cd ='BF_COMMUNITY_TP'
LEFT JOIN (select bd_no, group_concat(concat (v_content, '♭⊙♭', nvl(v_nt, 0)) separator '♭§♭') v_content
from tbl_bf_board_vote group by bd_no) tbv ON tbv.bd_no = x.bd_no
LEFT JOIN tbl_member m ON m.member_id = x.member_id
LEFT JOIN tbl_bf_board_attach tba ON tba.bd_no = x.bd_no
and tba.file_seq = (
SELECT file_seq
FROM tbl_bf_board_attach fa
WHERE fa.bd_no = x.bd_no
LIMIT 1
)
LEFT JOIN tbl_mt_file tmf ON tmf.mt_file_seq = tba.file_seq
where x.use_yn ='Y'
<isNotEmpty property="who" prepend="">
AND member_id = #member_id#
</isNotEmpty>
<isNotEmpty property="bd_tp" prepend="">
AND x.bd_tp = #bd_tp#
</isNotEmpty>
</isNotEqual>
<isEqual property="bd_tp" compareValue="BF_CT_TP_5">
SELECT
x.bd_no
,x.bd_tp
,x.title
,x.content
,x.hashtag
,x.member_id
,z.title as bd_tp_nm
,IFNULL(star,0) as star
,IFNULL(h_nt ,0) as h_nt
,(select count(*)
from tbl_bf_board_like tbl
where tbl.bd_no = x.bd_no ) as l_nt
,(select count(*)
from tbl_bf_board_comment tbc
where tbc.bd_no = x.bd_no ) as c_nt
,DATE_FORMAT(x.reg_dt,'%H:%i') reg_tm
,tbv.v_content
,x.thumbnail
,m.profile_path
,m.name
,m.nickname
,tmf.mt_file_seq
,tmf.mt_file_local_url
,ROW_NUMBER() OVER (ORDER BY x.reg_dt DESC) AS row_num
FROM tbl_bf_board x
LEFT JOIN tbl_code_item z
on x.bd_tp = z.val_1 and cg_cd ='BF_COMMUNITY_TP'
LEFT JOIN (select bd_no, group_concat(concat (v_content, '♭⊙♭', nvl(v_nt, 0)) separator '♭§♭') v_content
from tbl_bf_board_vote group by bd_no) tbv ON tbv.bd_no = x.bd_no
LEFT JOIN tbl_member m ON m.member_id = x.member_id
LEFT JOIN tbl_bf_board_attach tba ON tba.bd_no = x.bd_no
and tba.file_seq = (
SELECT file_seq
FROM tbl_bf_board_attach fa
WHERE fa.bd_no = x.bd_no
LIMIT 1
)
LEFT JOIN tbl_mt_file tmf ON tmf.mt_file_seq = tba.file_seq
WHERE 1 = 1
and x.use_yn ='Y'
and x.bd_tp ='BF_CT_TP_5'
<isNotEmpty property="who" prepend="">
AND member_id = #member_id#
</isNotEmpty>
LIMIT 8
</isEqual>
)x
WHERE 1 = 1
<isNotEmpty property="keyword" prepend="">
AND (x.title like concat('%', #keyword# ,'%') or x.name like concat('%', #keyword# ,'%'))
</isNotEmpty>
<isNotEmpty property="kind" prepend="">
<isEqual property="kind" compareValue="tab1">
AND x.member_id = #member_id#
</isEqual>
<isEqual property="kind" compareValue="tab2">
AND x.bd_no in(
select bd_no from tbl_bf_board_like
where member_id = #member_id#
)
</isEqual>
</isNotEmpty>
</select>
<select id="select_top_bf_board" resultClass="dataMap" parameterClass="dataMap">
SELECT
x.*
FROM (
@ -46,7 +169,7 @@
)
LEFT JOIN tbl_mt_file tmf ON tmf.mt_file_seq = tba.file_seq
WHERE DATE_FORMAT(x.reg_dt,'%Y%M%d') = DATE_FORMAT(now(),'%Y%M%d')
WHERE DATE_FORMAT(x.reg_dt,'%Y%M%d') = DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 day),'%Y%M%d')
and x.use_yn ='Y'
<isNotEmpty property="who" prepend="">
AND member_id = #member_id#
@ -54,6 +177,7 @@
<isNotEmpty property="bd_tp" prepend="">
AND x.bd_tp = #bd_tp#
</isNotEmpty>
LIMIT 1
</isNotEqual>
<isEqual property="bd_tp" compareValue="BF_CT_TP_5">
SELECT
@ -102,7 +226,7 @@
<isNotEmpty property="who" prepend="">
AND member_id = #member_id#
</isNotEmpty>
LIMIT 8
LIMIT 1
</isEqual>
)x
@ -396,7 +520,7 @@
left join tbl_member t
on a.member_id = t.member_id
WHERE a.bd_no = #bd_no# ) x
order by r_ct_no desc , seq
order by r_ct_no , seq
</select>
</sqlMap>

@ -61,14 +61,78 @@
<div class="community_con">
<#if model['bd_tp'] != 'BF_CT_TP_5'>
<#if model['lm']?has_content >
<#if model['rm']?has_content>
<div class="small_title_div">
<p class="small_title">오늘의 인기글</p>
<p class="small_title">인기글</p>
</div>
<!-- 오늘의 인기글 목록 -->
</#if>
<div class="today_hot">
<#if model['rm']?has_content>
<div class="write_box hot" onclick="fncDetail('${model['rm']['bd_no']!}')" >
<div class="ca_time">
<div class="ca_cont" >
<div class="write_ca <#if model['rm']['bd_tp']?contains("BF_CT_TP_5")> red <#else> yellow </#if>">${model['rm']['bd_tp_nm']!}</div>
<#if model['rm']['hashtag']?has_content >
<#list model['rm']['hashtag']?replace("#", ",")?split(",") as tag>
<#if tag?has_content>
<div class="write_ca <#if tag?trim?contains("기록")> blue <#else> green </#if>">${tag}</div>
</#if>
</#list>
</#if>
</div>
<div class="ch_cont">
<div class="comment_like"><span class="like"></span>${model['rm']['l_nt']!}</div>
<div class="comment_like"><span class="comment"></span>${model['rm']['c_nt']!}</div>
</div>
</div>
<#if model['rm']['bd_tp']?contains("BF_CT_TP_4")>
<div class="content">
<div class="txt_box">
<a href="#" onclick="fncDetail('${model['rm']['bd_no']!}')" > ${model['rm']['title']!} </a>
</div>
<#if model['rm']['v_content']?has_content >
<#list model['rm']['v_content']?split("♭§♭") as vote>
<div class="content">
<div class="txt_box">
<ul class="vote_result">
<li>
<p>${vote?substring(0,vote?index_of("♭⊙♭"))}</p>
<p>${vote?substring(vote?index_of("♭⊙♭")+3, vote?length)}개</p>
</li>
</ul>
</div>
</div>
</#list>
</#if>
</div>
<#else>
<div class="content img_txt_cont">
<div class="txt_box">
<a href="#" onclick="fncDetail('${model['rm']['bd_no']!}')"> ${model['rm']['title']!} </a>
</div>
<#if model['rm']['bd_tp'] != "BF_CT_TP_5" && model['rm']['mt_file_seq']?has_content >
<div class="img_box">
<img src="${URL_ROOT}/file/get.do?mt_file_seq=${model['rm']['mt_file_seq']!}">
</div>
</#if>
</div>
</#if>
<div class="commu_div">
<div class="nickname_div">
<p>${model['rm']['nickname']!}</p>
<p>&#183;</p>
<p>${model['rm']['reg_tm']!}</p>
<p>&#183;</p>
<p>조회 ${model['rm']['h_nt']!}</p>
</div>
</div>
</div>
</#if>
<#list model['lm'] as item>
<!-- 태그에 hot 클래스 추가시 노란테두리 생성 -->
<div class="write_box <#if item?index == 0>hot </#if>" onclick="fncDetail('${item['bd_no']!}')" >
<div class="write_box" onclick="fncDetail('${item['bd_no']!}')" >
<div class="ca_time">
<div class="ca_cont" >
<div class="write_ca <#if item['bd_tp']?contains("BF_CT_TP_5")> red <#else> yellow </#if>">${item['bd_tp_nm']!}</div>

@ -88,6 +88,7 @@
</div>
<!-- 작성자 프로필 -->
<div class="profile_cont">
<div class="box">
<!-- 프로필 사진 -->
<div class="profile_img">
<#if model['rm']['profile_path']?if_exists>
@ -103,6 +104,21 @@
<p>${model ['rm']['reg_tm']!} &#183; 조회 ${model ['rm']['h_nt']!}</p>
</div>
</div>
<!-- 좋아요, 공유 버튼 -->
<div class="like_shared_cont">
<div class="cont">
<!-- 좋아요 -->
<button type="button" id="" name="" class="c_btn like_btn <#if model ['rm']['like_tp']! gt 0 > active </#if> ">
<span class="hidden">아이콘</span>
</button> <!-- 공유 -->
<button type="button" id="" name="" class="c_btn shared_btn">
<span class="hidden">아이콘</span>
</button>
</div>
</div>
</div>
</div>
<!-- //상단 콘텐츠 -->
@ -161,19 +177,6 @@
</div>
</#if>
<!-- 좋아요, 공유 버튼 -->
<div class="like_shared_cont">
<div class="cont">
<!-- 좋아요 -->
<button type="button" id="" name="" class="c_btn like_btn <#if model ['rm']['like_tp']! gt 0 > active </#if> ">
<span class="hidden">아이콘</span>
</button> <!-- 공유 -->
<button type="button" id="" name="" class="c_btn shared_btn">
<span class="hidden">아이콘</span>
</button>
</div>
</div>
<!-- 댓글 -->
<div class="comment_header">
<p>댓글</p>

@ -16016,6 +16016,12 @@ main.sona_cont_measurement {
.community_view01 .profile_cont{
display: flex;
align-items: center;
justify-content: space-between;
}
.community_view01 .profile_cont .box{
display: flex;
align-items: center;
}
.community_view01 .profile_img img{
@ -16051,6 +16057,7 @@ main.sona_cont_measurement {
.community_view01 .like_shared_cont {
display: flex;
justify-content: flex-end;
align-self: flex-end;
}
.like_shared_cont .cont {

@ -61,6 +61,7 @@
<!-- 작성자 프로필 -->
<div class="profile_cont">
<div class="box">
<!-- 프로필 사진 -->
<div class="profile_img">
<img src="../../img/community/community_writer_img.png" alt="프로필 사진">
@ -72,6 +73,22 @@
<p>00:00 &#183; 조회 000</p>
</div>
</div>
<!-- 좋아요, 공유 버튼 -->
<div class="like_shared_cont">
<div class="cont">
<!-- 좋아요 -->
<button type="button" id="" name="" class="c_btn like_btn">
<span class="hidden">아이콘</span>
</button>
<!-- 공유 -->
<button type="button" id="" name="" class="c_btn shared_btn">
<span class="hidden">아이콘</span>
</button>
</div>
</div>
</div>
</div>
<!-- //상단 콘텐츠 -->
@ -99,21 +116,6 @@
<!-- //community_img -->
</div>
<!-- 좋아요, 공유 버튼 -->
<div class="like_shared_cont">
<div class="cont">
<!-- 좋아요 -->
<button type="button" id="" name="" class="c_btn like_btn">
<span class="hidden">아이콘</span>
</button>
<!-- 공유 -->
<button type="button" id="" name="" class="c_btn shared_btn">
<span class="hidden">아이콘</span>
</button>
</div>
</div>
<!-- 댓글 -->
<div class="comment_header">
<p>댓글</p>

Loading…
Cancel
Save