對於帖子進行置頂、加精和刪除,其實就是對帖子的type和status進行修改,本質上來說就是對帖子資料的修改,但是這裡涉及到許可權問題,只有版主能對帖子進行置頂和加精,只有管理員能對帖子進行刪除。
在dao層我們只需增加兩個兩個更新方法,根據id進行修改即可
int
updatetype
(int id,
int type)
;int
updatestatus
(int id,
int status)
;
在service層呼叫dao層方法即可
public
intupdatetype
(int id,
int type)
public
intupdatestatus
(int id,
int status)
在controller層,我們呼叫service層方法即可,同時對於置頂和加精我們要觸發發帖事件,將帖子同步到elasticsearch伺服器中,而刪除我們要觸發刪帖事件,將elasticsearch伺服器中的帖子刪除。
// 置頂
(path =
"/top"
,method = requestmethod.post)
@responsebody
public string settop
(int id)
// 加精
(path =
"/wonderful"
,method = requestmethod.post)
@responsebody
public string setwonderful
(int id)
// 刪除
(path =
"/delete"
,method = requestmethod.post)
@responsebody
public string setdelete
(int id)
當然,我們需要新建乙個刪除帖子的消費者,直接呼叫elasticsearchservice的delete方法即可。
// 消費刪帖事件
@kafkalistener
(topics =
)public
void
handledeletemessage
(consumerrecord record)
event event = jsonobject.
parseobject
(record.
value()
.tostring()
, event.
class);
if(event == null)
elasticsearchservice.
deletediscusspost
(event.
getentityid()
);}
然後,我們在js中實現非同步請求邏輯即可
// 置頂
function
settop()
,function
(data)
else})
;}// 加精
function
setwonderful()
,function
(data)
else})
;}// 刪除
function
setdelete()
,function
(data)
else})
;}
我們實現了所有的基本功能之後就可以加入許可權控制了,主要是在securityconfig中配置即可
.
antmatchers
("/discuss/top"
,"/discuss/wonderful").
hasanyauthority
( authority_moderator).
antmatchers
("/discuss/delete").
hasanyauthority
( authority_admin
)
配置完成之後許可權就配置完成了,但是還有一些細節,如果使用者沒有許可權就不要顯示按鈕。thymelead對於spring security是支援的,但我們需要匯入乙個pom包,然後在html中配置即可,通過使用sec:authorize="hasanyauthority(『xx』)"即可。
class
="float-right"
>
type
="hidden"
id="postid"
th:value
="$"
>
type
="button"
class
="btn btn-danger btn-sm"
id="topbtn"
th:disabled
="$"
sec:authorize
="hasanyauthority('moderator')"
>
置頂button
>
type
="button"
class
="btn btn-danger btn-sm"
id="wonderfulbtn"
th:disabled
="$"
sec:authorize
="hasanyauthority('moderator')"
>
加精button
>
type
="button"
class
="btn btn-danger btn-sm"
id="deletebtn"
th:disabled
="$"
sec:authorize
="hasanyauthority('admin')"
>
刪除button
>
div>
置頂 sfw 案例總結 適應
已於 昨天正式上線 很小的乙個企業站.功能也很迷你.對我來講卻意義重大,做了3年的程式猿 接了n個私單 卻沒有乙個如此對我重要.這是 前後臺都採用我自己寫的 框架來構建的,前端使用的是 moogens.js 庫,後端使用的是 sfw 開發時間為1周 是對自己的乙個嘗試.本來是想拿qee來做的,確實快...
windows將窗體置頂的方法總結
將窗體置頂的方法有 將窗體置頂的api函式 setwindowpos m hwndtop,hwnd topmost,0,0,0,0,swp nomove swp nosize mfc pdlg setwindowpos cwnd wndtopmost,0,0,0,0,swp nomove swp n...
置頂 刪除 大資料取捨之道讀書筆記
1 對於人類而言,遺忘一直是常態,而記憶才是例外。然而,由於數字技術與全球網路的發展,這種平衡已經被打破了。如今,往事正像刺青一樣刻在我們的數字 上,遺忘已經變成了例外,而記憶卻成了常態 在這個記憶已經成為常態的時代,難道每個公開自己資訊的人只能永遠對資訊束手無策嗎?我們真的想要乙個由於無法遺忘,而...