package com.dreamchaser.controller;
import com.dreamchaser.pojo.*;
import com.dreamchaser.service.*;
import com.dreamchaser.utils.ArchivesUtil;
import com.dreamchaser.utils.MapUtil;
import com.dreamchaser.utils.MarkdownUtil;
import com.dreamchaser.utils.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class PageController {
@Autowired
BlogService blogService;
@Autowired
TypeService typeService;
@Autowired
TagService tagService;
@Autowired
CommentService commentService;
@Autowired
BlogCombinationService blogCombinationService;
@Autowired
CommentCombinationService commentCombinationService;
@GetMapping("/login")
public String login(){
return "admin/login";
}
@GetMapping("/admin/blog-input")
public ModelAndView blog_input(){
ModelAndView mv=new ModelAndView();
mv.addObject("types",typeService.findTypeAll());
mv.addObject("tags",tagService.findTagAll());
mv.addObject("method","post");
mv.setViewName("admin/blog-input");
return getModelAndView(mv);
}
@GetMapping("/admin/blog-input/{blogId}")
public ModelAndView blog_input_update(@PathVariable Integer blogId){
ModelAndView mv=new ModelAndView();
mv.addObject("types",typeService.findTypeAll());
mv.addObject("tags",tagService.findTagAll());
mv.addObject("blog",blogService.findBlogById(blogId));
mv.addObject("method","put");
mv.setViewName("admin/blog-input");
return getModelAndView(mv);
}
@GetMapping("/admin/blogs")
public ModelAndView blogs(){
ModelAndView mv=new ModelAndView();
Map<String,Object>map=new HashMap<>();
map.put("begin",0);
map.put("size",6);
mv.setViewName("admin/blogs");
mv.addObject("types",typeService.findTypeAll());
mv.addObject("blogs",blogCombinationService.findBlogCombinationByCondition(map));
return getModelAndView(mv);
}
@GetMapping("/admin/comments")
public ModelAndView comments(){
ModelAndView mv=new ModelAndView();
Map<String,Object> map=new HashMap<>();
map.put("begin",0);
map.put("size",6);
mv.addObject("comments",commentCombinationService.findCommentByPage(map));
mv.setViewName("admin/comments");
return getModelAndView(mv);
}
@GetMapping("/admin/comments-details/{id}")
public ModelAndView comments_details(@PathVariable Integer id){
ModelAndView mv=new ModelAndView();
mv.addObject("comment",commentCombinationService.findCommentById(id));
mv.setViewName("admin/comments-details");
return getModelAndView(mv);
}
@GetMapping("/admin/tag-input")
public ModelAndView tag_input(){
ModelAndView mv=new ModelAndView();
mv.addObject("method","post");
mv.setViewName("admin/tag-input");
return getModelAndView(mv);
}
@GetMapping("/admin/tag-input/{id}")
public ModelAndView tag_input(@PathVariable Integer id){
ModelAndView mv=new ModelAndView();
mv.addObject("tag",tagService.findTagById(id));
mv.addObject("method","put");
mv.setViewName("admin/tag-input");
return getModelAndView(mv);
}
@GetMapping("/admin/tags")
public ModelAndView tags(){
ModelAndView mv=new ModelAndView();
Map<String,Object> map=new HashMap<>();
map.put("begin",0);
map.put("size",6);
mv.addObject("tags",tagService.findTagByPage(map));
mv.setViewName("admin/tags");
return getModelAndView(mv);
}
@GetMapping("/admin/types")
public ModelAndView types(){
ModelAndView mv=new ModelAndView();
Map<String,Object> map=new HashMap<>();
map.put("begin",0);
map.put("size",6);
mv.addObject("types",typeService.findTypeByPage(map));
mv.setViewName("admin/types");
return getModelAndView(mv);
}
@GetMapping("/admin/types-input")
public ModelAndView types_input(){
ModelAndView mv=new ModelAndView();
mv.setViewName("admin/types-input");
mv.addObject("method","post");
return getModelAndView(mv);
}
@GetMapping("/admin/types-input/{id}")
public ModelAndView types_input(@PathVariable Integer id){
ModelAndView mv=new ModelAndView();
mv.setViewName("admin/types-input");
mv.addObject("type",typeService.findTypeById(id));
mv.addObject("method","put");
return getModelAndView(mv);
}
@GetMapping("/page_blog/{id}")
public ModelAndView blog(@PathVariable Integer id){
ModelAndView mv=new ModelAndView();
mv.setViewName("blog");
BlogCombination blogCombination=blogCombinationService.findBlogCombinationById(id);
blogCombination.setContent(MarkdownUtil.markdownToHtmlExtens(blogCombination.getContent()));
mv.addObject("blog",blogCombination);
Map<String,List<Comment>> map=commentService.findCommentsByBlog(id);
mv.addObject("parents",map.get("parents"));
mv.addObject("sons",map.get("sons"));
return getModelAndView(mv);
}
@GetMapping("/archives")
public ModelAndView archives(){
ModelAndView mv=new ModelAndView();
List<Blog>blogs=blogService.findBlogAllVisible();
mv.addObject("number",blogs.size());
mv.addObject("years", ArchivesUtil.handle(blogs));
mv.setViewName("archives");
return getModelAndView(mv);
}
@GetMapping("/")
public ModelAndView index(@RequestParam Map<String,Object> map){
ModelAndView mv=new ModelAndView();
//预处理
if (map.get("begin")==null){
map.put("begin",0);
}else if (ObjectUtil.ObjectToInteger(map.get("begin")) <ObjectUtil.ObjectToInteger(map.get("size"))){
map.replace("begin",0);
}
if (map.get("size")==null){
map.put("size",8);
}
//所有博客分页查询
//因为有一种情况是上一页下一页,前端发送begin和size,而后端接受到时是string,而数据库中limit后只能跟数字,所以得先对其做处理
mv.addObject("blogs",blogCombinationService.findBlogCombinationByConditionVisible(MapUtil.handle(map)));
//注意此时map其实已经处理过了,所以取出来的begin和size类型就是Integer
mv.addObject("begin",map.get("begin"));
mv.addObject("size",map.get("size"));
map.put("begin",0);
map.put("size",10);
mv.addObject("types",typeService.findTypeByPage(map));
mv.addObject("tags",tagService.findTagByPage(map));
mv.setViewName("index");
//最新推荐的博客
map.put("isRecommend",1);
mv.addObject("recommendedBlogs",blogService.findBlogByConditionVisible(map));
//为了显示博客数量
List<Blog>blogs=blogService.findBlogAllVisible();
mv.addObject("number",blogs.size());
return getModelAndView(mv);
}
/**
* 实现前台展示的search功能
* @param map
* @return
*/
@GetMapping("/search")
public ModelAndView index_search(@RequestParam Map<String, Object> map){
ModelAndView mv=new ModelAndView();
mv.addObject("blogs",blogCombinationService.findBlogCombinationByConditionVisible(map));
mv.setViewName("search");
return getModelAndView(mv);
}
@GetMapping("/page_tags")
public ModelAndView page_tags(@RequestParam Map<String,Object>map){
沐知全栈开发
- 粉丝: 5817
- 资源: 5226
最新资源
- 光伏双轴跟踪器sw21可编辑全套技术资料100%好用.zip
- 仓储管理系统WMS-NO2020v1:新一代智能仓储管理系统的特性和应用场景
- 国产LED灯珠自动加工生产线设计sw17可编辑全套技术资料100%好用.zip
- 【空气涡轮发动机Matlab simulink动态仿真模型】 1、部件级模型;进气道,涡轮,气室,压气机,尾喷管,转子动力学模块,容积模块 2、PID控制器: 输出扭矩阶跃扰动下,维持转速恒定
- 激光平地机(sw16可编辑+cad+说明书)全套技术资料100%好用.zip
- 2023年中国智能仓储市场调研报告:解析仓储自动化、资产管理及环境监控的智能化升级路径
- 数据驱动的多离散场景电热综合能源系统分布鲁棒优化算法 关键词:场景聚类 分布式鲁棒优化 数据驱动的分布鲁棒优化 CCG算法 拉丁立方抽样 kmeans 参考文档: 1基于场景聚类的主动配
- FPGA XDMA PCIE3.0视频采集卡工程 FPGA XDMA 中断模式实现 PCIE3.0 视频采集 OV5640摄像头 提供2套工程源码和QT上位机源码
- VSG-MMC,同步机控制的MMC逆变器,受端流站 原创MMC逆变器,使用NLM最近电平逼近调制方法,有20个子模块,DC40KV-AC20KV-10MVA,环流抑制,快速排序,单电流环,matla
- 混流式水泵水轮机sw14可编辑全套技术资料100%好用.zip
- 【基于GasTurb的不同构型发动机性能对比】 GasTurb软件 1、涡桨、涡扇发动机等构型 2、在一样的推力需求下对比NOx排放差异 3、在不同的delta-T和高度下对比性能差异
- T-Mats库 涡扇发动机气路故障 数据 仿真模型 1、包含部件流量、效率及压比故障在内的13类故障植入,故障程序和组合可自定义;航空发动机,典型气路故障仿真; 2、基于软阈值去噪处理后的信号序列提
- 电导增量法INC仿真模型,作为目前实际光伏发电系统中最常用的mppt算法,可以用于学习研究,才用了输出参考电压的方式来进行pwm调制
- 有限元comsol电力电缆套管有限元电场数值计算模型,可以得到内部电场和电势的分 comsol相变模型,仿真 ,ansys有限元分析 -通过焓法耦合温度场和流体场,得到材料整个随温度变化的相变过程
- 三相三电平SVPWM矢量控制调制方式以及实现方法
- 胶框自动涂胶机ProE全套技术资料100%好用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈