springmvc实现点赞功能

实现步骤:

1.设计表:

-- ----------------------------
-- Table structure for `nicedetail`
-- ----------------------------
DROP TABLE IF EXISTS `nicedetail`;
CREATE TABLE `nicedetail` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '点赞id,自增,主键',
  `userid` varchar(50) DEFAULT NULL COMMENT '所点赞的用户',
  `contentid` int(11) DEFAULT NULL COMMENT '用户所点赞说说的id',
  `createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '点赞时间,默认为入库时间',
  PRIMARY KEY (`id`),
  KEY `userid` (`userid`),
  KEY `contentid` (`contentid`),
  CONSTRAINT `nicedetail_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `userinfo` (`userid`),
  CONSTRAINT `nicedetail_ibfk_2` FOREIGN KEY (`contentid`) REFERENCES `content` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1141 DEFAULT CHARSET=utf8;

2.后台代码:

1.controller:
package net.stxy.one.controller;

import net.stxy.one.model.Content;
import net.stxy.one.model.NiceDetail;
import net.stxy.one.service.ContentService;
import net.stxy.one.service.NiceDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Date;
import java.util.List;

/**
 * 实现点赞服务
 * Created by ASUS on 2018/5/6
 *
 * @Authod Grey Wolf
 */

@Controller
@RequestMapping("/user")
public class NiceDetailController {

    @Autowired
    private NiceDetailService  niceDetailService;

    @Autowired
    private ContentService contentService;

    /**
     * 处理用户点赞行为
     * @param niceDetail
     * @return
     */
    @RequestMapping("/niceDetail")
    @ResponseBody
    public String niceDetail(NiceDetail niceDetail ){
        System.out.println("点赞模块:"+niceDetail.toString());
        //查询是否有该用户的点赞记录
        NiceDetail niceDetail1=niceDetailService.findNiceDetail(niceDetail);
        int result=0;
        if (niceDetail1!=null){
            System.out.println("有该记录");
            //如果找到这条记录,删除该记录,同时文章的点赞数减一
            //删除记录
            niceDetailService.deleteNiceDetail(niceDetail1.getId());
            //根据点赞id找到文章
            Content content=contentService.selectContent(niceDetail1.getContentid());
            //文章点赞数减一
            content.setNice(content.getNice()-1);
            result=content.getNice();
            System.out.println("res:"+result);
            //更新文章点赞数
            contentService.updateContent(content);
        }else{
            //如果没有找到这条记录,则添加这条记录,同时文章数加一;
            //添加记录
            System.out.println("没有记录:");
            niceDetailService.insertNiceDetail(niceDetail);
            Content content=contentService.selectContent(niceDetail.getContentid());
            //文章点赞数加一
            content.setNice(content.getNice()+1);
            result=content.getNice();
            System.out.println("res:"+result);
            //更新文章点赞数
            contentService.updateContent(content);
        }
        return ""+result;
    }


}

2.service:
package net.stxy.one.service;

import net.stxy.one.model.Follow;
import net.stxy.one.model.NiceDetail;
import net.stxy.one.model.Page;

import java.util.List;

public interface NiceDetailService {

  

    /**
     * 插入点赞记录
     * @param niceDetail
     * @return
     */
    Integer insertNiceDetail(NiceDetail niceDetail);

    /**
     * 删除点赞记录
     * @param id
     * @return
     */
    Integer deleteNiceDetail(Integer id);

   

}

package net.stxy.one.service.impl;

import net.stxy.one.mapper.NiceDetailMapper;
import net.stxy.one.model.NiceDetail;
import net.stxy.one.model.Page;
import net.stxy.one.service.NiceDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("nicedetailService")
public class NiceDetailServiceImpl implements NiceDetailService {


    @Autowired
    private NiceDetailMapper nicedetailMapper;


    @Override
    public Integer insertNiceDetail(NiceDetail niceDetail) {
        System.out.println("impl:"+niceDetail.toString());
        return nicedetailMapper.insertSelective(niceDetail);
    }

    @Override
    public Integer deleteNiceDetail(Integer id) {
        return nicedetailMapper.deleteByPrimaryKey(id);
    }



}
3.mapper:

package net.stxy.one.mapper;

import net.stxy.one.model.NiceDetail;
import net.stxy.one.model.Page;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public interface NiceDetailMapper {
    int deleteByPrimaryKey(Integer id);

    int insertSelective(NiceDetail record);

}
<?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" >
<mapper namespace="net.stxy.one.mapper.NiceDetailMapper" >
  <resultMap id="BaseResultMap" type="net.stxy.one.model.NiceDetail" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="userid" property="userid" jdbcType="VARCHAR" />
    <result column="contentid" property="contentid" jdbcType="INTEGER" />
    <result column="createtime" property="createtime" jdbcType="TIMESTAMP" />
  </resultMap>



  <sql id="Base_Column_List" >
    id, userid, contentid, createtime
  </sql>

  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
    delete from nicedetail
    where id = #{id,jdbcType=INTEGER}
  </delete>
 
  <insert id="insertSelective" parameterType="net.stxy.one.model.NiceDetail" >
    insert into nicedetail
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        id,
      </if>
      <if test="userid != null" >
        userid,
      </if>
      <if test="contentid != null" >
        contentid,
      </if>
      <if test="createtime != null" >
        createtime,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=INTEGER},
      </if>
      <if test="userid != null" >
        #{userid,jdbcType=VARCHAR},
      </if>
      <if test="contentid != null" >
        #{contentid,jdbcType=INTEGER},
      </if>
      <if test="createtime != null" >
        #{createtime,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
 
 
</mapper>


我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。

猜你喜欢

转载自blog.csdn.net/weixin_39220472/article/details/80974642