前言:读者可以参考我的逻辑思路,以及ajax代码,具体代码需在自己实现
1、建立数据库
CREATE TABLE favorite_info
(
user_id INT(4),
activ_id INT(4)
);
2、service接口
public boolean addFavoriteInfo(Integer userId, Integer activId);
public boolean deleteFavoriteInfo(Integer userId, Integer activId);
注意:mapper中的sql语句可以自己实现:就是插入和删除数据
3、serviceImpl类
@Override
public boolean addFavoriteInfo(Integer userId, Integer activId) {
FavoriteInfo favorInfo = new FavoriteInfo(userId, activId);
if(favoriteInfoMapper.insert(favorInfo) == 1) {
activityService.updateActivFavorInfoSelfByPrimaryKey(activId, 1);
return true;
}else return false;
}
@Override
public boolean deleteFavoriteInfo(Integer userId, Integer activId) {
FavoriteInfo favorInfo = new FavoriteInfo(userId, activId);
if(favoriteInfoMapper.delete(favorInfo) != 0) {
activityService.updateActivFavorInfoSelfByPrimaryKey(activId, 0);
return true;
}else return false;
}
4、controller方法【核心】
@RequestMapping(value = "/addFavoriteInfo", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
@ResponseBody
public String addFavoriteInfo(@RequestParam("activId") Integer activId,@RequestParam("isFavor") String isFavor, HttpServletRequest request,
HttpServletResponse response) throws IOException {
String result = null;
User user = (User) request.getSession().getAttribute("user");
if (user == null) {
result = "请先登录,后点赞";
return result;
}
if(isFavor.equals("点赞")) {
favoriteInfoService.addFavoriteInfo(user.getUserId(), activId);
result = "已点赞";
}else {
favoriteInfoService.deleteFavoriteInfo(user.getUserId(), activId);
result = "点赞";
}
return result;
}
5、前端页面
js【主要】
<script type="text/javascript"
src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var id = $("#activId").text();
var sum = $("#num").text();
var bt1 = $("#fav").text();
$("#fav").click(function() {
$.ajax({
url : "${APP_PATH }/addFavoriteInfo",
data : {
activId : id,
isFavor:bt1
},
type : "POST",
dataType : 'text',
success : function(data) {
alert(data);
if(data == "已点赞"){
sum = parseInt(sum) + 1;
$("#num").html(sum);
$("#fav").html(data);
bt1 = data;
}
if(data == "点赞"){
sum = parseInt(sum) - 1;
$("#num").html(sum);
$("#fav").html(data);
bt1 = data;
}
},
error : function() {
alert("程序出错。。。");
}
})
});
})
</script>
html
<div>
<c:if test="${!empty sessionScope.user}">
<button id="fav">${requestScope.isF}</button>
</c:if>
<c:if test="${empty sessionScope.user}">
<button id="fav">点赞</button>
</c:if>
<span id="num">${activity.favorNum}</span> <br> <span
id="activId">${activity.activId}</span> <span id="isFavor">${requestScope.isFavor}</span>
</div>
参考链接:https://www.cnblogs.com/fangyunchen/p/9773594.html