基于SSM+vue框架的个人博客网站源码和论文061
开发工具:idea
数据库mysql5.7+
数据库链接工具:navcat,小海豚等
技术:ssm
- (设计)研究背景与意义
关于博客的未来:在创办了博客中国(blogchina)、被誉为“博客教父”的方兴东接受了记者的专访。他认为,博客这一事物在中国的发展大致经过以下三个阶段:第一阶段是2002年至2003年,少数人写博;第二阶段是2003年至2005年,博客爱好者写博;第三阶段是2005年至2006年以及接下来的两年,博客进入大众化前期。“如果说第一阶段和第二阶段博客的发展还是理想主义和浪漫主义的话,那从第三阶段开始,博客已经向现实主义转变。再过两年,即将进入大众化晚期,也就是说,那些网络保守主义者也将加入到博客大军中来”。在我国,已经有十几万个博客网站,博客数量达到100多万个,并且呈现40%的年增长进度,着实让国人刮目相看。因此,博客经济引起了专家学者和行业官员的普遍关 注。博客现象,能给中国带来什么?网络博客,能成为每个网民的网络生活方式吗?从互联网的兴起到现在,网民由上网浏览网络文章和查找资料以及上论坛发帖子,发展到建网站、建个人网站论坛主页,再发展成现在的建博客,一路走来,网民在网络一直打拼着建造着一个属于自己的地盘,不知从何时起,建博客、写博客成为了众多网民网络生活的重要组成部分,与网络聊天成了并驾齐驱的热点,共同成为网民上网最关心的事情。
博客在中国的发展始于1998年,但直到2000年,它开始流行。2000年,博客开始进入中国和快速发展。直到2004年“木子美”事件,中国人民了解了博客和使用它。2005年,国内门户网站,如新浪、搜狐、原始的博客业务并不乐观,但也加入博客阵营,开始进入春秋时期。首先,博客记录日常访问网站的观点和意见,并开放给别人参考和遵循。但随着博客的迅速扩张,已经远离最初的目的。有许多差异成千上万的博客在互联网上发布和张贴在博客。然而,由于通信比电子邮件、讨论组更加简单和容易,博客已经成为家庭、公司、部门和团队越来越流行的通信工具,因为它已逐渐被应用在企业内部网络。
本系统为用户提供实现了以下功能:
1.登录功能:
游客进入系统,不用输入账户以及密码,直接进入页面进行浏览。可以阅读文章,查看图片,发表评论。
普通用户进入系统,为用户分配了用户名和密码。用户必须先登录,进入操作界面。用户输入ID和密码,通过服务器验证方可运行,否则显示消息提示。
2.网站前台功能:
浏览:
博主个人信息、文章; ‚
发表:
留言,评论
3.网站后台功能:
用户管理模块:实现用户信息及密码的修改 ‚
博文的分类与管理模块:实现分类的增、删、改
评论管理模块:实现删除评论功能 „
留言管理模块:实现删除、回复评论功能 …
系统管理模块:实现博客版面的定义与管理 ‡博客的数据统计
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.DiscussxiangcefenxiangEntity;
import com.entity.view.DiscussxiangcefenxiangView;
import com.service.DiscussxiangcefenxiangService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
* 相册分享评论表
* 后端接口
* @author
* @email
* @date 2021-05-28 23:53:30
*/
@RestController
@RequestMapping("/discussxiangcefenxiang")
public class DiscussxiangcefenxiangController {
@Autowired
private DiscussxiangcefenxiangService discussxiangcefenxiangService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,DiscussxiangcefenxiangEntity discussxiangcefenxiang,
HttpServletRequest request){
EntityWrapper<DiscussxiangcefenxiangEntity> ew = new EntityWrapper<DiscussxiangcefenxiangEntity>();
PageUtils page = discussxiangcefenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussxiangcefenxiang), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,DiscussxiangcefenxiangEntity discussxiangcefenxiang,
HttpServletRequest request){
EntityWrapper<DiscussxiangcefenxiangEntity> ew = new EntityWrapper<DiscussxiangcefenxiangEntity>();
PageUtils page = discussxiangcefenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussxiangcefenxiang), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( DiscussxiangcefenxiangEntity discussxiangcefenxiang){
EntityWrapper<DiscussxiangcefenxiangEntity> ew = new EntityWrapper<DiscussxiangcefenxiangEntity>();
ew.allEq(MPUtil.allEQMapPre( discussxiangcefenxiang, "discussxiangcefenxiang"));
return R.ok().put("data", discussxiangcefenxiangService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(DiscussxiangcefenxiangEntity discussxiangcefenxiang){
EntityWrapper< DiscussxiangcefenxiangEntity> ew = new EntityWrapper< DiscussxiangcefenxiangEntity>();
ew.allEq(MPUtil.allEQMapPre( discussxiangcefenxiang, "discussxiangcefenxiang"));
DiscussxiangcefenxiangView discussxiangcefenxiangView = discussxiangcefenxiangService.selectView(ew);
return R.ok("查询相册分享评论表成功").put("data", discussxiangcefenxiangView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
DiscussxiangcefenxiangEntity discussxiangcefenxiang = discussxiangcefenxiangService.selectById(id);
return R.ok().put("data", discussxiangcefenxiang);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
DiscussxiangcefenxiangEntity discussxiangcefenxiang = discussxiangcefenxiangService.selectById(id);
return R.ok().put("data", discussxiangcefenxiang);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody DiscussxiangcefenxiangEntity discussxiangcefenxiang, HttpServletRequest request){
discussxiangcefenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(discussxiangcefenxiang);
discussxiangcefenxiangService.insert(discussxiangcefenxiang);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody DiscussxiangcefenxiangEntity discussxiangcefenxiang, HttpServletRequest request){
discussxiangcefenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(discussxiangcefenxiang);
discussxiangcefenxiangService.insert(discussxiangcefenxiang);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody DiscussxiangcefenxiangEntity discussxiangcefenxiang, HttpServletRequest request){
//ValidatorUtils.validateEntity(discussxiangcefenxiang);
discussxiangcefenxiangService.updateById(discussxiangcefenxiang);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
discussxiangcefenxiangService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<DiscussxiangcefenxiangEntity> wrapper = new EntityWrapper<DiscussxiangcefenxiangEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = discussxiangcefenxiangService.selectCount(wrapper);
return R.ok().put("count", count);
}
}