当前位置: 首页 > news >正文

自己做网站视频教程织梦保险网站源码

自己做网站视频教程,织梦保险网站源码,全屋定制十大名牌谁最好,wordpress伪装插件点赞 支持对帖子、评论点赞#xff1b;第一次点赞#xff0c;第二次点赞取消#xff1b; 首页显示点赞数量 统计帖子点赞数量#xff1b; 详情页显示点赞数量 统计点赞数量#xff1b;显示点赞状态#xff1b; 1. LikeService定义一些关于点赞的操作 点赞#xff1a;…点赞 支持对帖子、评论点赞第一次点赞第二次点赞取消 首页显示点赞数量 统计帖子点赞数量 详情页显示点赞数量 统计点赞数量显示点赞状态 1. LikeService定义一些关于点赞的操作 点赞 如果已经点过赞就取消点赞如果没点过赞就add到redis 查询某个实体点赞的数量 查询某人某实体的点赞状态 package com.nowcoder.community.service;import com.nowcoder.community.util.RedisKeyUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service;Service public class LikeService {Autowiredprivate RedisTemplate redisTemplate;// 点赞public void like(int userId, int entityType, int entityId){String entityLikeKey RedisKeyUtil.getEntityLikeKey(entityType,entityId);boolean isMember redisTemplate.opsForSet().isMember(entityLikeKey,userId);if(isMember){ // 已经点过赞redisTemplate.opsForSet().remove(entityLikeKey,userId);} else { // 没点过赞redisTemplate.opsForSet().add(entityLikeKey,userId);}}// 查询某个实体点赞的数量public long findEntityLikeCount(int entityType, int entityId){String entityLikeKey RedisKeyUtil.getEntityLikeKey(entityType,entityId);return redisTemplate.opsForSet().size(entityLikeKey);}// 查询某人某实体的点赞状态public int findEntityLikeStatus(int userId, int entityType, int entityId){String entityLikeKey RedisKeyUtil.getEntityLikeKey(entityType,entityId);return redisTemplate.opsForSet().isMember(entityLikeKey, userId) ? 1 : 0;} } 2. 点赞将提交异步请求将结果以JSON传给页面 package com.nowcoder.community.controller;import com.nowcoder.community.annotation.LoginRequired; import com.nowcoder.community.entity.User; import com.nowcoder.community.service.LikeService; import com.nowcoder.community.util.CommunityUtil; import com.nowcoder.community.util.HostHolder; 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.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap; import java.util.Map;Controller public class LikeController {Autowiredprivate LikeService likeService;Autowiredprivate HostHolder hostHolder;RequestMapping(path/like,method RequestMethod.POST)ResponseBodypublic String like(int entityType, int entityId){// 当前用户User user hostHolder.getUser();// 点赞likeService.like(user.getId(), entityType, entityId);// 返回点赞数量long likeCount likeService.findEntityLikeCount(entityType, entityId);// 点赞状态int likeStatus likeService.findEntityLikeStatus(user.getId(), entityType, entityId);// 封装传给页面MapString,Object map new HashMap();map.put(likeCount,likeCount);map.put(likeStatus,likeStatus);return CommunityUtil.getJSONString(0, null, map);} } 3. 帖子详情页面显示点赞信息 如果当前用户已经点赞点赞处应当显示已赞 package com.nowcoder.community.controller;import com.nowcoder.community.entity.Comment; import com.nowcoder.community.entity.DiscussPost; import com.nowcoder.community.entity.Page; import com.nowcoder.community.entity.User; import com.nowcoder.community.service.CommentService; import com.nowcoder.community.service.DiscussPostService; import com.nowcoder.community.service.LikeService; import com.nowcoder.community.service.UserService; import com.nowcoder.community.util.CommunityConstant; import com.nowcoder.community.util.CommunityUtil; import com.nowcoder.community.util.HostHolder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;import java.util.*;Controller RequestMapping(/discuss) public class DiscussPostController implements CommunityConstant {Autowiredprivate DiscussPostService discussPostService;Autowiredprivate HostHolder hostHolder;Autowiredprivate UserService userService;Autowiredprivate CommentService commentService;Autowiredprivate LikeService likeService;RequestMapping(path /add, method RequestMethod.POST)ResponseBodypublic String addDiscussPost(String title, String content) {User user hostHolder.getUser();if (user null) {return CommunityUtil.getJSONString(403, 你还没有登录哦!);}DiscussPost post new DiscussPost();post.setUserId(user.getId());post.setTitle(title);post.setContent(content);post.setCreateTime(new Date());discussPostService.addDiscussPost(post);// 报错的情况,将来统一处理.return CommunityUtil.getJSONString(0, 发布成功!);}RequestMapping(path /detail/{discussPostId}, method RequestMethod.GET)public String getDiscussPost(PathVariable(discussPostId) int discussPostId, Model model, Page page) {// 帖子DiscussPost post discussPostService.findDiscussPostById(discussPostId);model.addAttribute(post, post);// 作者User user userService.findUserById(post.getUserId());model.addAttribute(user, user);// 点赞long likeCount likeService.findEntityLikeCount(ENTITY_TYPE_POST, discussPostId);int likeStatus hostHolder.getUser() null ? 0 : likeService.findEntityLikeStatus(hostHolder.getUser().getId(), ENTITY_TYPE_POST, post.getId());model.addAttribute(likeCount,likeCount);model.addAttribute(likeStatus,likeStatus);// 评论分页信息page.setLimit(5);page.setPath(/discuss/detail/ discussPostId);page.setRows(post.getCommentCount());// 评论: 给帖子的评论// 回复: 给评论的评论// 评论列表ListComment commentList commentService.findCommentsByEntity(ENTITY_TYPE_POST, post.getId(), page.getOffset(), page.getLimit());// 评论VO列表ListMapString, Object commentVoList new ArrayList();if (commentList ! null) {for (Comment comment : commentList) {// 评论VOMapString, Object commentVo new HashMap();// 评论commentVo.put(comment, comment);// 作者commentVo.put(user, userService.findUserById(comment.getUserId()));// 点赞likeCount likeService.findEntityLikeCount(ENTITY_TYPE_COMMENT, comment.getId());likeStatus hostHolder.getUser() null? 0 : likeService.findEntityLikeStatus(hostHolder.getUser().getId(), ENTITY_TYPE_COMMENT, comment.getId());commentVo.put(likeCount,likeCount);commentVo.put(likeStatus,likeStatus);// 回复列表ListComment replyList commentService.findCommentsByEntity(ENTITY_TYPE_COMMENT, comment.getId(), 0, Integer.MAX_VALUE);// 回复VO列表ListMapString, Object replyVoList new ArrayList();if (replyList ! null) {for (Comment reply : replyList) {MapString, Object replyVo new HashMap();// 回复replyVo.put(reply, reply);// 作者replyVo.put(user, userService.findUserById(reply.getUserId()));// 回复目标User target reply.getTargetId() 0 ? null : userService.findUserById(reply.getTargetId());replyVo.put(target, target);// 点赞likeCount likeService.findEntityLikeCount(ENTITY_TYPE_COMMENT, reply.getId());likeStatus hostHolder.getUser() null? 0 : likeService.findEntityLikeStatus(hostHolder.getUser().getId(), ENTITY_TYPE_COMMENT, reply.getId());replyVo.put(likeCount,likeCount);replyVo.put(likeStatus,likeStatus);replyVoList.add(replyVo);}}commentVo.put(replys, replyVoList);// 回复数量int replyCount commentService.findCommentCount(ENTITY_TYPE_COMMENT, comment.getId());commentVo.put(replyCount, replyCount);commentVoList.add(commentVo);}}model.addAttribute(comments, commentVoList);return /site/discuss-detail;}} 4. discuss-detail.html !doctype html html langen xmlns:thhttp://www.thymeleaf.org headmeta charsetutf-8meta nameviewport contentwidthdevice-width, initial-scale1, shrink-to-fitnolink relicon th:href{/img/ucas.png}/link relstylesheet hrefhttps://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css crossoriginanonymouslink relstylesheet th:href{/css/global.css} /link relstylesheet th:href{/css/discuss-detail.css} /title牛客网-帖子详情/title /head body div classnk-container!-- 头部 --header classbg-dark sticky-top th:replaceindex::headerdiv classcontainer!-- 导航 --nav classnavbar navbar-expand-lg navbar-dark!-- logo --a classnavbar-brand href#/abutton classnavbar-toggler typebutton data-togglecollapse data-target#navbarSupportedContent aria-controlsnavbarSupportedContent aria-expandedfalse aria-labelToggle navigationspan classnavbar-toggler-icon/span/button!-- 功能 --div classcollapse navbar-collapse idnavbarSupportedContentul classnavbar-nav mr-autoli classnav-item ml-3 btn-group-verticala classnav-link href../index.html首页/a/lili classnav-item ml-3 btn-group-verticala classnav-link position-relative hrefletter.html消息span classbadge badge-danger12/span/a/lili classnav-item ml-3 btn-group-verticala classnav-link hrefregister.html注册/a/lili classnav-item ml-3 btn-group-verticala classnav-link hreflogin.html登录/a/lili classnav-item ml-3 btn-group-vertical dropdowna classnav-link dropdown-toggle href# idnavbarDropdown rolebutton data-toggledropdown aria-haspopuptrue aria-expandedfalseimg srchttp://images.nowcoder.com/head/1t.png classrounded-circle stylewidth:30px;//adiv classdropdown-menu aria-labelledbynavbarDropdowna classdropdown-item text-center hrefprofile.html个人主页/aa classdropdown-item text-center hrefsetting.html账号设置/aa classdropdown-item text-center hreflogin.html退出登录/adiv classdropdown-divider/divspan classdropdown-item text-center text-secondarynowcoder/span/div/li/ul!-- 搜索 --form classform-inline my-2 my-lg-0 actionsearch.htmlinput classform-control mr-sm-2 typesearch aria-labelSearch /button classbtn btn-outline-light my-2 my-sm-0 typesubmit搜索/button/form/div/nav/div/header!-- 内容 --div classmain!-- 帖子详情 --div classcontainer!-- 标题 --h6 classmb-4img srchttp://static.nowcoder.com/images/img/icons/ico-discuss.png/span th:utext${post.title}备战春招面试刷题跟他复习一个月全搞定/spandiv classfloat-rightbutton typebutton classbtn btn-danger btn-sm置顶/buttonbutton typebutton classbtn btn-danger btn-sm加精/buttonbutton typebutton classbtn btn-danger btn-sm删除/button/div/h6!-- 作者 --div classmedia pb-3 border-bottoma hrefprofile.htmlimg th:src${user.headerUrl} classalign-self-start mr-4 rounded-circle user-header alt用户头像 /adiv classmedia-bodydiv classmt-0 text-warning th:utext${user.username}寒江雪/divdiv classtext-muted mt-3发布于 b th:text${#dates.format(post.createTime,yyyy-MM-dd HH:mm:ss)}2019-04-15 15:32:18/bul classd-inline float-rightli classd-inline ml-2a hrefjavascript:; th:onclick|like(this,1,${post.id});| classtext-primaryb th:text${likeStatus 1 ? 已赞:赞}赞/b i th:text${likeCount}11/i/a/lili classd-inline ml-2|/lili classd-inline ml-2a href#replyform classtext-primary回帖 i th:text${post.commentCount}7/i/a/li/ul/div/div/div!-- 正文 --div classmt-4 mb-3 content th:utext${post.content}金三银四的金三已经到了你还沉浸在过年的喜悦中吗如果是那我要让你清醒一下了目前大部分公司已经开启了内推正式网申也将在3月份陆续开始金三银四春招的求职黄金时期已经来啦再不准备作为19应届生的你可能就找不到工作了。。。作为20届实习生的你可能就找不到实习了。。。现阶段时间紧任务重能做到短时间内快速提升的也就只有算法了那么算法要怎么复习重点在哪里常见笔试面试算法题型和解题思路以及最优代码是怎样的跟左程云老师学算法不仅能解决以上所有问题还能在短时间内得到最大程度的提升/div/div!-- 回帖 --div classcontainer mt-3!-- 回帖数量 --div classrowdiv classcol-8h6b classsquare/b i th:text${post.commentCount}30/i条回帖/h6/divdiv classcol-4 text-righta href#replyform classbtn btn-primary btn-smnbsp;nbsp;回nbsp;nbsp;帖nbsp;nbsp;/a/div/div!-- 回帖列表 --ul classlist-unstyled mt-4li classmedia pb-3 pt-3 mb-3 border-bottom th:eachcvo:${comments}a hrefprofile.htmlimg th:src${cvo.user.headerUrl} classalign-self-start mr-4 rounded-circle user-header alt用户头像 /adiv classmedia-bodydiv classmt-0span classfont-size-12 text-success th:utext${cvo.user.username}掉脑袋切切/spanspan classbadge badge-secondary float-right floori th:text${page.offset cvoStat.count}1/i#/span/divdiv classmt-2 th:utext${cvo.comment.content}这开课时间是不是有点晚啊。。。/divdiv classmt-4 text-muted font-size-12span发布于 b th:text${#dates.format(cvo.comment.createTime,yyyy-MM-dd HH:mm:ss)}2019-04-15 15:32:18/b/spanul classd-inline float-rightli classd-inline ml-2a hrefjavascript:; classtext-primary th:onclick|like(this,2,${cvo.comment.id})|b th:text${cvo.likeStatus1?已赞:赞}赞/b(i th:text${cvo.likeCount}1/i)/a/lili classd-inline ml-2|/lili classd-inline ml-2a href# classtext-primary回复(i th:text${cvo.replyCount}2/i)/a/li/ul/div!-- 回复列表 --ul classlist-unstyled mt-4 bg-gray p-3 font-size-12 text-mutedli classpb-3 pt-3 mb-3 border-bottom th:eachrvo:${cvo.replys}divspan th:if${rvo.targetnull}b classtext-info th:text${rvo.user.username}寒江雪/b:nbsp;nbsp;/spanspan th:if${rvo.target!null}i classtext-info th:text${rvo.user.username}Sissi/i 回复b classtext-info th:text${rvo.target.username}寒江雪/b:nbsp;nbsp;/spanspan th:utext${rvo.reply.content}这个是直播时间哈觉得晚的话可以直接看之前的完整录播的~/span/divdiv classmt-3span th:text${#dates.format(rvo.reply.createTime,yyyy-MM-dd HH:mm:ss)}2019-04-15 15:32:18/spanul classd-inline float-rightli classd-inline ml-2a hrefjavascript:; classtext-primary th:onclick|like(this,2,${rvo.reply.id})|b th:text${rvo.likeStatus 1?已赞:赞}赞/b(i th:text${rvo.likeCount}1/i)/a/lili classd-inline ml-2|/lili classd-inline ml-2a th:href|#huifu-${rvoStat.count}| data-togglecollapse classtext-primary回复/a/li/uldiv th:id|huifu-${rvoStat.count}| classmt-4 collapseform methodpost th:action{|/comment/add/${post.id}|}divinput typetext classinput-size namecontent th:placeholder|回复${rvo.user.username}|/input typehidden nameentityType value2input typehidden nameentityId th:value${cvo.comment.id}input typehidden nametargetId th:value${rvo.user.id}/divdiv classtext-right mt-2button typesubmit classbtn btn-primary btn-sm onclick#nbsp;nbsp;回nbsp;nbsp;复nbsp;nbsp;/button/div/form/div/div/li!-- 回复输入框 --li classpb-3 pt-3form methodpost th:action{|/comment/add/${post.id}|}divinput typetext classinput-size namecontent placeholder请输入你的观点/input typehidden nameentityType value2input typehidden nameentityId th:value${cvo.comment.id}/divdiv classtext-right mt-2button typesubmit classbtn btn-primary btn-sm onclick#nbsp;nbsp;回nbsp;nbsp;复nbsp;nbsp;/button/div/form/li/ul/div/li/ul!-- 分页 --nav classmt-5 th:replaceindex::paginationul classpagination justify-content-centerli classpage-itema classpage-link href#首页/a/lili classpage-item disableda classpage-link href#上一页/a/lili classpage-item activea classpage-link href#1/a/lili classpage-itema classpage-link href#2/a/lili classpage-itema classpage-link href#3/a/lili classpage-itema classpage-link href#4/a/lili classpage-itema classpage-link href#5/a/lili classpage-itema classpage-link href#下一页/a/lili classpage-itema classpage-link href#末页/a/li/ul/nav/div!-- 回帖输入 --div classcontainer mt-3form classreplyform methodpost th:action{|/comment/add/${post.id}|}p classmt-3a namereplyform/atextarea placeholder在这里畅所欲言你的看法吧! namecontent/textareainput typehidden nameentityType value1input typehidden nameentityId th:value${post.id}/pp classtext-rightbutton typesubmit classbtn btn-primary btn-smnbsp;nbsp;回nbsp;nbsp;帖nbsp;nbsp;/button/p/form/div/div!-- 尾部 --footer classbg-dark th:replaceindex::footdiv classcontainerdiv classrow!-- 二维码 --div classcol-4 qrcodeimg srchttps://uploadfiles.nowcoder.com/app/app_download.png classimg-thumbnail stylewidth:136px; //div!-- 公司信息 --div classcol-8 detail-infodiv classrowdiv classcolul classnavli classnav-itema classnav-link text-light href#关于我们/a/lili classnav-itema classnav-link text-light href#加入我们/a/lili classnav-itema classnav-link text-light href#意见反馈/a/lili classnav-itema classnav-link text-light href#企业服务/a/lili classnav-itema classnav-link text-light href#联系我们/a/lili classnav-itema classnav-link text-light href#免责声明/a/lili classnav-itema classnav-link text-light href#友情链接/a/li/ul/div/divdiv classrowdiv classcolul classnav btn-group-vertical company-infoli classnav-item text-white-50公司地址北京市朝阳区大屯路东金泉时代3-2708北京牛客科技有限公司/lili classnav-item text-white-50联系方式010-60728802(电话)nbsp;nbsp;nbsp;nbsp;adminnowcoder.com/lili classnav-item text-white-50牛客科技©2018 All rights reserved/lili classnav-item text-white-50京ICP备14055008号-4 nbsp;nbsp;nbsp;nbsp;img srchttp://static.nowcoder.com/company/images/res/ghs.png stylewidth:18px; /京公网安备 11010502036488号/li/ul/div/div/div/div/div/footer /div script srchttps://code.jquery.com/jquery-3.3.1.min.js crossoriginanonymous/script script srchttps://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js crossoriginanonymous/script script srchttps://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js crossoriginanonymous/script script th:src{/js/global.js}/script script th:src{/js/discuss.js}/script /body /html 5. discuss.js function like(btn, entityType, entityId){$.post(CONTEXT_PATH /like,{entityType:entityType, entityId:entityId},function (data) {data $.parseJSON(data);if(data.code 0){$(btn).children(i).text(data.likeCount);$(btn).children(b).text(data.likeStatus 1 ? 已赞 : 赞);} else {alert(data.msg);}}) }
http://www.zqtcl.cn/news/652921/

相关文章:

  • 网站备案和域名备案山东临沂市建筑模板生产厂家
  • 三类安全员证查询系统网站建设优化服务机构
  • 网站关键词排名没有了城固县网站建设
  • 什么网站需要备案易语言用电脑做网站服务器
  • 可以做婚礼鲜花布置的网站洛阳霞光企业网站建设公司
  • 临淄网站制作同步显示一个wordpress
  • 先建设网站后付款网站相对路径和绝对路径
  • 临沂外贸国际网站建设网站开发外包公司合同
  • 网站设置快捷方式温州网站建设方案报价
  • 经营网站需要什么费用如何鉴赏网站论文
  • 聊城网站推广公司网站 防攻击
  • 小米盒子做网站一个县城广告公司利润
  • 天津市区县档案部门网站建设指导意见网站开发的需求分析教学视频
  • 网站服务合同范本企业网站建设费是无形资产吗
  • 国外做家纺的网站试用体验网站
  • 百度网站下载安装免费制作短视频的软件
  • 山西省这房和城乡建设厅网站邯郸北京网站建设
  • 廊坊网站seo服务主机服务器网站 怎么做
  • 网站的建设与运维东营会计信息网
  • 郑州网站建设程序3g手机网站
  • 建设监理网站设计了网站首页
  • 织梦教育网站开发商务网站建设实训总结
  • 广西执业药师培训网站网站设计 原型图
  • 网站建设客户群体分析微信开放平台小程序开发文档
  • led网站建设wordpress .htaccess 固定链接
  • 学校网站建设申请报告一个好网站设计
  • 网站雪花特效wordpress文件解析
  • 招聘网站哪个好用淮北之窗
  • 索莱宝做网站网站在线布局
  • 站内seo的技巧做php网站阿里云服务器