代码INIT

This commit is contained in:
limqhz
2022-05-01 14:12:28 +08:00
parent 9d8f3ceab2
commit 3fdb3799ff
1438 changed files with 122941 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
package com.quinn.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.quinn.pojo.Blog;
import com.quinn.pojo.BlogCategory;
import com.quinn.service.BlogCategoryService;
import com.quinn.service.BlogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author 遇见狂神说
* @since 2020-06-29
*/
@Controller
public class BlogCategoryController {
@Autowired
BlogCategoryService blogCategoryService;
@Autowired
BlogService blogService;
@GetMapping("/blog/category/{bid}/{page}/{limit}")
public String blogPage(
@PathVariable int bid,
@PathVariable int page,
@PathVariable int limit,
Model model){
if (page < 1){
page = 1;
}
// 查询这个分类下的所有问题,获取查询的数据信息
Page<Blog> pageParam = new Page<>(page, limit);
blogService.page(pageParam,new QueryWrapper<Blog>()
.eq("category_id",bid).orderByDesc("gmt_create"));
List<Blog> records = pageParam.getRecords();
model.addAttribute("blogList",records);
model.addAttribute("pageParam",pageParam);
// 查询这个分类信息
BlogCategory category = blogCategoryService.getById(bid);
model.addAttribute("thisCategoryName",category.getCategory());
// 全部分类信息
List<BlogCategory> categoryList = blogCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "blog/list";
}
}

View File

@@ -0,0 +1,197 @@
package com.quinn.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.quinn.pojo.Blog;
import com.quinn.pojo.BlogCategory;
import com.quinn.pojo.Comment;
import com.quinn.service.BlogCategoryService;
import com.quinn.service.BlogService;
import com.quinn.service.CommentService;
import com.quinn.utils.QuinnUtils;
import com.quinn.vo.QuestionWriteForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author 遇见狂神说
* @since 2020-06-29
*/
@Controller
public class BlogController {
@Autowired
BlogCategoryService blogCategoryService;
@Autowired
BlogService blogService;
@Autowired
CommentService commentService;
// 列表展示
@GetMapping("/blog")
public String blogList(Model model){
Page<Blog> pageParam = new Page<>(1, 10);
blogService.page(pageParam,new QueryWrapper<Blog>().orderByDesc("gmt_create"));
// 结果
List<Blog> blogList = pageParam.getRecords();
model.addAttribute("blogList",blogList);
model.addAttribute("pageParam",pageParam);
// 分类信息
List<BlogCategory> categoryList = blogCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "blog/list";
}
@GetMapping("/blog/{page}/{limit}")
public String blogListPage(
@PathVariable int page,
@PathVariable int limit,
Model model){
if (page < 1){
page = 1;
}
Page<Blog> pageParam = new Page<>(page, limit);
blogService.page(pageParam,new QueryWrapper<Blog>().orderByDesc("gmt_create"));
// 结果
List<Blog> blogList = pageParam.getRecords();
model.addAttribute("blogList",blogList);
model.addAttribute("pageParam",pageParam);
// 分类信息
List<BlogCategory> categoryList = blogCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "blog/list";
}
// 写文章
@GetMapping("/blog/write")
public String toWrite(Model model){
List<BlogCategory> categoryList = blogCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "blog/write";
}
@PostMapping("/blog/write")
public synchronized String write(QuestionWriteForm questionWriteForm){
// 构建问题对象
Blog blog = new Blog();
blog.setBid(QuinnUtils.getUuid());
blog.setTitle(questionWriteForm.getTitle());
blog.setContent(questionWriteForm.getContent());
blog.setSort(0);
blog.setViews(0);
blog.setAuthorId(questionWriteForm.getAuthorId());
blog.setAuthorName(questionWriteForm.getAuthorName());
blog.setAuthorAvatar(questionWriteForm.getAuthorAvatar());
BlogCategory category = blogCategoryService.getById(questionWriteForm.getCategoryId());
blog.setCategoryId(questionWriteForm.getCategoryId());
blog.setCategoryName(category.getCategory());
blog.setGmtCreate(QuinnUtils.getTime());
blog.setGmtUpdate(QuinnUtils.getTime());
// 存储对象
blogService.save(blog);
// 重定向到列表页面
return "redirect:/blog";
}
// 阅读文章
@GetMapping("/blog/read/{bid}")
public String read(@PathVariable("bid") String bid,Model model){
Blog blog = blogService.getOne(new QueryWrapper<Blog>().eq("bid", bid));
// todo: redis缓存. 防止阅读重复
blog.setViews(blog.getViews()+1);
blogService.updateById(blog);
model.addAttribute("blog",blog);
// todo 查询评论
List<Comment> commentList = commentService.list(new QueryWrapper<Comment>().eq("topic_id", bid).orderByDesc("gmt_create"));
model.addAttribute("commentList",commentList);
return "blog/read";
}
// 编辑问题
@GetMapping("/blog/editor/{uid}/{bid}")
public synchronized String toEditor(@PathVariable("uid") String uid,
@PathVariable("bid") String bid,Model model){
Blog blog = blogService.getOne(new QueryWrapper<Blog>().eq("bid", bid));
if (!blog.getAuthorId().equals(uid)){
QuinnUtils.print("禁止非法编辑");
return "redirect:/blog";
}
model.addAttribute("blog",blog);
List<BlogCategory> categoryList = blogCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "blog/editor";
}
@PostMapping("/blog/editor")
public String editor(Blog blog){
Blog queryBlog = blogService.getOne(new QueryWrapper<Blog>().eq("bid", blog.getBid()));
queryBlog.setTitle(blog.getTitle());
queryBlog.setCategoryId(blog.getCategoryId());
queryBlog.setContent(blog.getContent());
queryBlog.setGmtUpdate(QuinnUtils.getTime());
blogService.updateById(queryBlog);
return "redirect:/blog/read/"+blog.getBid();
}
// 删除问题
@GetMapping("/blog/delete/{uid}/{bid}")
public String delete(@PathVariable("uid") String uid,
@PathVariable("bid") String bid){
Blog blog = blogService.getOne(new QueryWrapper<Blog>().eq("bid", bid));
if (!blog.getAuthorId().equals(uid)){
QuinnUtils.print("禁止非法删除");
return "redirect:/blog";
}
blogService.removeById(blog);
// 重定向到列表页面
return "redirect:/blog";
}
// 评论
@PostMapping("/blog/comment/{bid}")
public String comment(@PathVariable("bid") String bid, Comment comment){
// 存储评论
comment.setCommentId(QuinnUtils.getUuid());
comment.setTopicCategory(1);
comment.setGmtCreate(QuinnUtils.getTime());
commentService.save(comment);
// 重定向到列表页面
return "redirect:/blog/read/"+bid;
}
}

View File

@@ -0,0 +1,34 @@
package com.quinn.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.quinn.pojo.Comment;
import com.quinn.service.CommentService;
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;
/**
* <p>
* 前端控制器
* </p>
*
* @author 遇见狂神说
* @since 2020-06-30
*/
@Controller
public class CommentController {
@Autowired
CommentService commentService;
// 删除评论
@GetMapping("/user/comment/delete/{uid}/{cid}")
public String deleteComment(@PathVariable String uid,@PathVariable String cid){
commentService.remove(new QueryWrapper<Comment>().eq("comment_id", cid));
return "redirect:/user/comment/"+uid+"/1/10";
}
}

View File

@@ -0,0 +1,35 @@
package com.quinn.controller;
import com.quinn.mapper.DownloadMapper;
import com.quinn.pojo.Download;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author 遇见狂神说
* @since 2020-07-08
*/
@Controller
public class DownloadController {
@Autowired
DownloadMapper downloadMapper;
@GetMapping({"/download"})
public String download(Model model){
List<Download> downloadList = downloadMapper.selectList(null);
model.addAttribute("downloadList",downloadList);
return "page/download";
}
}

View File

@@ -0,0 +1,100 @@
package com.quinn.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.quinn.pojo.Invite;
import com.quinn.pojo.User;
import com.quinn.pojo.UserInfo;
import com.quinn.service.InviteService;
import com.quinn.service.UserInfoService;
import com.quinn.service.UserService;
import com.quinn.utils.QuinnUtils;
import com.quinn.vo.RegisterForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class LoginController {
@Autowired
InviteService inviteService;
@Autowired
UserService userService;
@Autowired
UserInfoService userInfoService;
@GetMapping({"/","/index"})
public String index(){
return "index";
}
@GetMapping("/toLogin")
public String toLogin(){
return "login";
}
@GetMapping("/register")
public String toRegister(){
return "register";
}
// 注册业务
@PostMapping("/register")
public String register(RegisterForm registerForm,Model model){
QuinnUtils.print("注册表单信息:"+registerForm.toString());
// 表单密码重复判断
if (!registerForm.getPassword().equals(registerForm.getRepassword())){
model.addAttribute("registerMsg","密码输入有误");
return "register";
}
// 用户名已存在
User hasUser = userService.getOne(new QueryWrapper<User>().eq("username", registerForm.getUsername()));
if (hasUser!=null){
model.addAttribute("registerMsg","用户名已存在");
return "register";
}
// 验证邀请码
Invite invite = inviteService.getOne(new QueryWrapper<Invite>().eq("code", registerForm.getCode()));
if (invite==null){
model.addAttribute("registerMsg","邀请码不存在");
return "register";
}else {
// 邀请码存在,判断邀请码是否有效
if (invite.getStatus()==1){
model.addAttribute("registerMsg","邀请码已被使用");
return "register";
}else {
// 构建用户对象
User user = new User();
user.setUid(QuinnUtils.getUuid()); // 用户唯一id
user.setRoleId(2);
user.setUsername(registerForm.getUsername());
// 密码加密
String bCryptPassword = new BCryptPasswordEncoder().encode(registerForm.getPassword());
user.setPassword(bCryptPassword);
user.setGmtCreate(QuinnUtils.getTime());
user.setLoginDate(QuinnUtils.getTime());
// 保存对象!
userService.save(user);
QuinnUtils.print("新用户注册成功:"+user);
// 激活邀请码
invite.setActiveTime(QuinnUtils.getTime());
invite.setStatus(1);
invite.setUid(user.getUid());
inviteService.updateById(invite);
// todo: 用户信息
userInfoService.save(new UserInfo().setUid(user.getUid()));
// 注册成功,重定向到登录页面
return "redirect:/toLogin";
}
}
}
}

View File

@@ -0,0 +1,63 @@
package com.quinn.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.quinn.pojo.Question;
import com.quinn.pojo.QuestionCategory;
import com.quinn.service.QuestionCategoryService;
import com.quinn.service.QuestionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author 遇见狂神说
* @since 2020-06-28
*/
@Controller
public class QuestionCategoryController {
@Autowired
QuestionCategoryService questionCategoryService;
@Autowired
QuestionService questionService;
@GetMapping("/question/category/{cid}/{page}/{limit}")
public String questionPage(
@PathVariable int cid,
@PathVariable int page,
@PathVariable int limit,
Model model){
if (page < 1){
page = 1;
}
// 查询这个分类下的所有问题,获取查询的数据信息
Page<Question> pageParam = new Page<>(page, limit);
questionService.page(pageParam,new QueryWrapper<Question>()
.eq("category_id",cid).orderByDesc("gmt_create"));
List<Question> records = pageParam.getRecords();
model.addAttribute("questionList",records);
model.addAttribute("pageParam",pageParam);
// 查询这个分类信息
QuestionCategory category = questionCategoryService.getById(cid);
model.addAttribute("thisCategoryName",category.getCategory());
// 全部分类信息
List<QuestionCategory> categoryList = questionCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "question/list";
}
}

View File

@@ -0,0 +1,254 @@
package com.quinn.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.quinn.pojo.Comment;
import com.quinn.pojo.Question;
import com.quinn.pojo.QuestionCategory;
import com.quinn.service.CommentService;
import com.quinn.service.QuestionCategoryService;
import com.quinn.service.QuestionService;
import com.quinn.utils.QuinnUtils;
import com.quinn.vo.QuestionWriteForm;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.List;
import java.util.UUID;
/**
* <p>
* 前端控制器
* </p>
*
* @author 遇见狂神说
* @since 2020-06-28
*/
@Controller
public class QuestionController {
@Autowired
QuestionCategoryService questionCategoryService;
@Autowired
QuestionService questionService;
@Autowired
CommentService commentService;
// 问题列表展示
@GetMapping("/question")
public String questionList(Model model){
Page<Question> pageParam = new Page<>(1, 10);
questionService.page(pageParam,new QueryWrapper<Question>().orderByDesc("gmt_create"));
// 结果
List<Question> questionList = pageParam.getRecords();
model.addAttribute("questionList",questionList);
model.addAttribute("pageParam",pageParam);
// 分类信息
List<QuestionCategory> categoryList = questionCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "question/list";
}
@GetMapping("/question/{page}/{limit}")
public String questionListPage(
@PathVariable int page,
@PathVariable int limit,
Model model){
if (page < 1){
page = 1;
}
Page<Question> pageParam = new Page<>(page, limit);
questionService.page(pageParam,new QueryWrapper<Question>().orderByDesc("gmt_create"));
// 结果
List<Question> questionList = pageParam.getRecords();
model.addAttribute("questionList",questionList);
model.addAttribute("pageParam",pageParam);
// 分类信息
List<QuestionCategory> categoryList = questionCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "question/list";
}
// 发布问题
@GetMapping("/question/write")
public String toWrite(Model model){
List<QuestionCategory> categoryList = questionCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "question/write";
}
@PostMapping("/question/write")
public synchronized String write(QuestionWriteForm questionWriteForm){
// 构建问题对象
Question question = new Question();
question.setQid(QuinnUtils.getUuid());
question.setTitle(questionWriteForm.getTitle());
question.setContent(questionWriteForm.getContent());
question.setStatus(0);
question.setSort(0);
question.setViews(0);
question.setAuthorId(questionWriteForm.getAuthorId());
question.setAuthorName(questionWriteForm.getAuthorName());
question.setAuthorAvatar(questionWriteForm.getAuthorAvatar());
QuestionCategory category = questionCategoryService.getById(questionWriteForm.getCategoryId());
question.setCategoryId(questionWriteForm.getCategoryId());
question.setCategoryName(category.getCategory());
question.setGmtCreate(QuinnUtils.getTime());
question.setGmtUpdate(QuinnUtils.getTime());
// 存储对象
questionService.save(question);
// 重定向到列表页面
return "redirect:/question";
}
// 阅读问题
@GetMapping("/question/read/{qid}")
public String read(@PathVariable("qid") String qid,Model model){
Question question = questionService.getOne(new QueryWrapper<Question>().eq("qid", qid));
// todo: redis缓存. 防止阅读重复
question.setViews(question.getViews()+1);
questionService.updateById(question);
model.addAttribute("question",question);
// todo 查询评论.
List<Comment> commentList = commentService.list(new QueryWrapper<Comment>().eq("topic_id", qid).orderByDesc("gmt_create"));
model.addAttribute("commentList",commentList);
return "question/read";
}
// 评论
@PostMapping("/question/comment/{qid}")
public String comment(@PathVariable("qid") String qid, Comment comment){
// 存储评论
comment.setCommentId(QuinnUtils.getUuid());
comment.setTopicCategory(2);
comment.setGmtCreate(QuinnUtils.getTime());
commentService.save(comment);
// 状态改为已解决
Question question = questionService.getOne(new QueryWrapper<Question>().eq("qid", qid));
question.setStatus(1);
questionService.updateById(question);
// 重定向到列表页面
return "redirect:/question/read/"+qid;
}
// 编辑问题
@GetMapping("/question/editor/{uid}/{qid}")
public synchronized String toEditor(@PathVariable("uid") String uid,
@PathVariable("qid") String qid,Model model){
Question question = questionService.getOne(new QueryWrapper<Question>().eq("qid", qid));
if (!question.getAuthorId().equals(uid)){
QuinnUtils.print("禁止非法编辑");
return "redirect:/question";
}
model.addAttribute("question",question);
List<QuestionCategory> categoryList = questionCategoryService.list(null);
model.addAttribute("categoryList",categoryList);
return "question/editor";
}
@PostMapping("/question/editor")
public String editor(Question question){
Question queryQuestion = questionService.getOne(new QueryWrapper<Question>().eq("qid", question.getQid()));
queryQuestion.setTitle(question.getTitle());
queryQuestion.setCategoryId(question.getCategoryId());
queryQuestion.setContent(question.getContent());
queryQuestion.setGmtUpdate(QuinnUtils.getTime());
questionService.updateById(queryQuestion);
return "redirect:/question/read/"+question.getQid();
}
// 删除问题
@GetMapping("/question/delete/{uid}/{qid}")
public String delete(@PathVariable("uid") String uid,
@PathVariable("qid") String qid){
Question question = questionService.getOne(new QueryWrapper<Question>().eq("qid", qid));
if (!question.getAuthorId().equals(uid)){
QuinnUtils.print("禁止非法删除");
return "redirect:/question";
}
questionService.removeById(question);
// 重定向到列表页面
return "redirect:/question";
}
// md 文件上传
@ApiOperation(value = "md文件上传问题")
@RequestMapping("/question/write/file/upload")
@ResponseBody
public JSONObject fileUpload(@RequestParam(value = "editormd-image-file", required = true) MultipartFile file, HttpServletRequest request) throws IOException {
//获得SpringBoot当前项目的路径System.getProperty("user.dir")
String path = System.getProperty("user.dir")+"/upload/";
//按照月份进行分类:
Calendar instance = Calendar.getInstance();
String month = (instance.get(Calendar.MONTH) + 1)+"";
path = path+month;
File realPath = new File(path);
if (!realPath.exists()){
realPath.mkdir();
}
//上传文件地址
QuinnUtils.print("上传文件保存地址:"+realPath);
//解决文件名字问题我们使用uuid;
String filename = "ks-"+ UUID.randomUUID().toString().replaceAll("-", "");
String originalFilename = file.getOriginalFilename();
// QuinnUtils.print(originalFilename);
assert originalFilename != null;
int i = originalFilename.lastIndexOf(".");
String suffix = originalFilename.substring(i + 1);
String outFilename = filename + "."+suffix;
QuinnUtils.print("文件名:" + outFilename);
//通过CommonsMultipartFile的方法直接写文件注意这个时候
file.transferTo(new File(realPath +"/"+ outFilename));
//给editormd进行回调
JSONObject res = new JSONObject();
res.put("url","/upload/"+month+"/"+ outFilename);
res.put("success", 1);
res.put("message", "upload success!");
QuinnUtils.print(res.toJSONString());
return res;
}
}

View File

@@ -0,0 +1,53 @@
package com.quinn.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.quinn.pojo.Say;
import com.quinn.service.SayService;
import com.quinn.utils.QuinnUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
@Controller
public class SayController {
@Autowired
SayService sayService;
@GetMapping("/say")
public String userIndexBlog(Model model){
Page<Say> pageParam = new Page<>(1, 50);
sayService.page(pageParam,new QueryWrapper<Say>().orderByDesc("gmt_create"));
// 结果
List<Say> sayList = pageParam.getRecords();
model.addAttribute("sayList",sayList);
model.addAttribute("pageParam",pageParam);
return "page/say";
}
@PostMapping("/say/{role}")
public String saveSay(@PathVariable("role") int role, Say say){
// 防止请求提交
if (role!=1){
return "redirect:/say";
}
say.setId(QuinnUtils.getUuid());
say.setGmtCreate(QuinnUtils.getTime());
// 结果
sayService.save(say);
return "redirect:/say";
}
}

View File

@@ -0,0 +1,177 @@
package com.quinn.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.quinn.pojo.Blog;
import com.quinn.pojo.Comment;
import com.quinn.pojo.Question;
import com.quinn.pojo.UserInfo;
import com.quinn.service.BlogService;
import com.quinn.service.CommentService;
import com.quinn.service.QuestionService;
import com.quinn.service.UserInfoService;
import com.quinn.utils.QuinnUtils;
import com.quinn.vo.LayerPhoto;
import com.quinn.vo.LayerPhotoData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author 遇见狂神说
* @since 2020-06-28
*/
@Controller
public class UserController {
@Autowired
UserInfoService userInfoService;
@Autowired
BlogService blogService;
@Autowired
QuestionService questionService;
@Autowired
CommentService commentService;
@GetMapping("/user/{uid}")
public String userIndex(@PathVariable String uid, Model model){
// 用户信息回填
userInfoCallBack(uid,model);
// 用户的博客列表
Page<Blog> pageParam = new Page<>(1, 10);
blogService.page(pageParam,new QueryWrapper<Blog>().eq("author_id", uid)
.orderByDesc("gmt_create"));
// 结果
List<Blog> blogList = pageParam.getRecords();
model.addAttribute("blogList",blogList);
model.addAttribute("pageParam",pageParam);
return "user/index";
}
@GetMapping("/user/blog/{uid}/{page}/{limit}")
public String userIndexBlog(@PathVariable String uid,
@PathVariable int page,
@PathVariable int limit,
Model model){
// 用户信息回填
userInfoCallBack(uid,model);
// 用户的博客列表
if (page < 1){
page = 1;
}
Page<Blog> pageParam = new Page<>(page, limit);
blogService.page(pageParam,new QueryWrapper<Blog>().eq("author_id", uid)
.orderByDesc("gmt_create"));
// 结果
List<Blog> blogList = pageParam.getRecords();
model.addAttribute("blogList",blogList);
model.addAttribute("pageParam",pageParam);
return "user/index";
}
@GetMapping("/user/question/{uid}/{page}/{limit}")
public String userIndexQuestion(@PathVariable String uid,
@PathVariable int page,
@PathVariable int limit,
Model model){
// 用户信息回填
userInfoCallBack(uid,model);
//
if (page < 1){
page = 1;
}
Page<Question> pageParam = new Page<>(page, limit);
questionService.page(pageParam,new QueryWrapper<Question>().eq("author_id", uid)
.orderByDesc("gmt_create"));
// 结果
List<Question> blogList = pageParam.getRecords();
model.addAttribute("questionList",blogList);
model.addAttribute("pageParam",pageParam);
return "user/user-question";
}
@GetMapping("/user/comment/{uid}/{page}/{limit}")
public String userIndexComment(@PathVariable String uid,
@PathVariable int page,
@PathVariable int limit,
Model model){
// 用户信息回填
userInfoCallBack(uid,model);
//
if (page < 1){
page = 1;
}
Page<Comment> pageParam = new Page<>(page, limit);
commentService.page(pageParam,new QueryWrapper<Comment>().eq("user_id", uid)
.orderByDesc("gmt_create"));
// 结果
List<Comment> commentList = pageParam.getRecords();
model.addAttribute("commentList",commentList);
model.addAttribute("pageParam",pageParam);
return "user/user-comment";
}
// 用户信息回填
private void userInfoCallBack(String uid,Model model){
UserInfo userInfo = userInfoService.getById(uid);
model.addAttribute("userInfo",userInfo);
if (userInfo.getHobby()!=null && !userInfo.getHobby().equals("")){
String[] hobbys = userInfo.getHobby().split(",");
model.addAttribute("infoHobbys",hobbys);
}
// 获取用户的问题,博客,回复数
int blogCount = blogService.count(new QueryWrapper<Blog>().eq("author_id", uid));
int questionCount = questionService.count(new QueryWrapper<Question>().eq("author_id", uid));
int commentCount = commentService.count(new QueryWrapper<Comment>().eq("user_id", uid));
model.addAttribute("blogCount",blogCount);
model.addAttribute("questionCount",questionCount);
model.addAttribute("commentCount",commentCount);
}
// 捐赠layer弹窗二维码
@GetMapping("/user/donate/{uid}")
@ResponseBody
public String userLayerDonate(@PathVariable String uid){
// todo: 数据库设计
ArrayList<LayerPhotoData> layerPhotos = new ArrayList<>();
layerPhotos.add(new LayerPhotoData().setAlt("支付宝").setPid(1).setSrc("/images/donate/alipay.png").setThumb(""));
layerPhotos.add(new LayerPhotoData().setAlt("微信").setPid(2).setSrc("/images/donate/wechat.jpg").setThumb(""));
LayerPhoto donate = new LayerPhoto().setTitle("赞赏").setId(666).setStart(1);
donate.setData(layerPhotos);
String donateJsonString = JSONObject.toJSONString(donate);
QuinnUtils.print(donateJsonString);
return donateJsonString;
}
// 更新头像
@GetMapping("/user/update-avatar/{uid}")
public String toUpdateAvatar(@PathVariable String uid,Model model){
// 用户信息回填
userInfoCallBack(uid,model);
return "user/update-avatar";
}
}

View File

@@ -0,0 +1,72 @@
package com.quinn.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.quinn.pojo.Blog;
import com.quinn.pojo.Comment;
import com.quinn.pojo.Question;
import com.quinn.pojo.UserInfo;
import com.quinn.service.BlogService;
import com.quinn.service.CommentService;
import com.quinn.service.QuestionService;
import com.quinn.service.UserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 前端控制器
* </p>
*
* @author 遇见狂神说
* @since 2020-06-29
*/
@Controller
public class UserInfoController {
@Autowired
UserInfoService userInfoService;
@Autowired
BlogService blogService;
@Autowired
QuestionService questionService;
@Autowired
CommentService commentService;
// 更新用户资料
@GetMapping("/userinfo/setting/{uid}")
public String userSetting(@PathVariable String uid, Model model){
// 用户信息回填
userInfoCallBack(uid,model);
// todo: 可扩展
return "user/settings";
}
@PostMapping("/userinfo/update/{uid}")
public String userInfo(@PathVariable String uid,UserInfo userInfo){
// 获取用户信息;
userInfoService.updateById(userInfo);
return "redirect:/user/"+uid;
}
// 用户信息回填
private void userInfoCallBack(String uid,Model model){
UserInfo userInfo = userInfoService.getById(uid);
model.addAttribute("userInfo",userInfo);
if (userInfo.getHobby()!=null && !userInfo.getHobby().equals("")){
String[] hobbys = userInfo.getHobby().split(",");
model.addAttribute("infoHobbys",hobbys);
}
// 获取用户的问题,博客,回复数
int blogCount = blogService.count(new QueryWrapper<Blog>().eq("author_id", uid));
int questionCount = questionService.count(new QueryWrapper<Question>().eq("author_id", uid));
int commentCount = commentService.count(new QueryWrapper<Comment>().eq("user_id", uid));
model.addAttribute("blogCount",blogCount);
model.addAttribute("questionCount",questionCount);
model.addAttribute("commentCount",commentCount);
}
}