基于javaweb+mysql的springboot美食菜谱分享平台系统设计和实现(java+springboot+mysql+ssm+thymeleaf+html)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot美食菜谱分享平台系统设计和实现(java+springboot+mysql+ssm+thymeleaf+html)
主要技术实现:spring、 springmvc、 springboot、mybatis 、session、 jquery 、 md5 、bootstarp.js tomcat、拦截器等。
具体主要功能模块如下:
1.用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作、 2.美食分享笔记管理:分享笔记列表的展示、添加、修改、删除操作、 3.美食笔记详情管理:美食笔记详情列表的查看、添加、删除等操作、 4.管理员信息管理:管理员信息的查看、修改、 5.公告信息管理:公告信息的查看、添加、修改、删除操作、 6.用户模块管理:用户列表查询、添加、删除、 7.用户评论模块管理:用户评论查询、添加、删除、 8.注销退出登录管理
给大家截一部分效果图吧 系统首页主要功能:
分类查看没事菜谱信息以及智能推荐:
美食分享笔记详情信息查看、用户登录后可以进行评论、浏览量会增加、用户可以收藏当前文档信息、可以点击查看作者信息、可以对作者进行关注等操作:
用户评论操作:
富文本编辑器添加美食分享笔记:
个人中心我的收藏 我的关注等:
关注用户信息以及具体功能操作等:
后台管理主要功能:用户管理、美食菜谱笔记管理、美食菜谱详情发布以及评论等管理
* @return 参数说明
* @return String 返回类型
* @throws
*/
public static String getAdd(HttpServletRequest request) {
//淘宝IP地址库:http://ip.taobao.com/instructions.php
String add = null;
String ip = getIpAddr(request);
try {
//URL U = new URL("http://ip.taobao.com/service/getIpInfo.php?ip=114.111.166.72");
URL U = new URL("http://ip.taobao.com/service/getIpInfo.php?ip="+ip);
URLConnection connection = U.openConnection();
connection.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String result = "";
String line;
while ((line = in.readLine())!= null){
result += line;
}
in.close();
JSONObject jsonObject = JSONObject.fromObject(result);
Map<String, Object> map = (Map) jsonObject;
String code = String.valueOf(map.get("code"));//0:成功,1:失败。
if("1".equals(code)){//失败
String data = String.valueOf(map.get("data"));//错误信息
}else if("0".equals(code)){//成功
Map<String, Object> data = (Map<String, Object>) map.get("data");
String country = String.valueOf(data.get("country"));//国家
String area = String.valueOf(data.get("area"));//
String city = String.valueOf(data.get("city"));//省(自治区或直辖市)
String region = String.valueOf(data.get("region"));//市(县)
add = country+"-"+region+"-"+city;
}
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return add;
}
}
package com.longwang.controller;
/**
* 时光轴控制器
*
*/
@RestController
@RequestMapping("/admin/timeline")
public class TimelineAdminController {
@Resource
private TimelineService timelineService;
@Resource
private StartupRunner startupRunner;
/**
* 分页查询时光轴
* @param timeline
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(Timeline timeline,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", timelineService.list(timeline,page-1, pageSize));
resultMap.put("total", timelineService.getCount(timeline));
return resultMap;
}
return mav;
}
}
package com.longwang.util;
/**
* IP工具类
* @ClassName: IPUtil
*
*/
public class IPUtil {
/**
* 获取当前网络IP
* @Title: getIpAddr
* @param request
* @return 参数说明
* @return String 返回类型
* @throws
*/
public static String getIpAddr(HttpServletRequest request){
String ipAddress = request.getHeader("x-forwarded-for");
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")){
//根据网卡取本机配置的IP
InetAddress inet=null;
try {
@Resource
private TimelineService timelineService;
/**
* 查询时光轴
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list2() {
Map<String, Object> resultMap = new HashMap<>();
List<Timeline> maps = timelineService.list(null, 0, 100);
if (CollectionUtils.isNotEmpty(maps)) {
Map<String, Object> jsonMap = new LinkedHashMap<String, Object>();
for (Timeline map : maps) {
Map<String, Object> yearMap = (Map<String, Object>) jsonMap.get(map.getYear());
if (null == yearMap) {
yearMap = new LinkedHashMap<String, Object>();
yearMap.put("year", map.getYear());
}
Map<String, Object> monthMap = (Map<String, Object>) yearMap.get("month");
if (null == monthMap) {
monthMap = new LinkedHashMap<String, Object>();
}
List<Map<String, Object>> monthList = (List<Map<String, Object>>) monthMap.get(map.getMonth());
if (null == monthList) {
monthList = new ArrayList<>();
}
monthMap.remove(map.getMonth());
Map<String, Object> obj = new HashMap<>();
obj.put("create_time", DateUtil.formatDate(map.getPublishDate(), "MM月dd日 hh:mm"));
obj.put("content", map.getContent());
monthList.add(obj);
monthMap.put(map.getMonth(), monthList);
yearMap.remove("month");
yearMap.put("month", monthMap);
jsonMap.remove(map.getYear());
jsonMap.put(map.getYear(), yearMap);
}
List<Map<String, Object>> datas = new ArrayList<Map<String, Object>>();
for (Map.Entry<String, Object> entry : jsonMap.entrySet()) {
obj.put("create_time", DateUtil.formatDate(map.getPublishDate(), "MM月dd日 hh:mm"));
obj.put("content", map.getContent());
monthList.add(obj);
monthMap.put(map.getMonth(), monthList);
yearMap.remove("month");
yearMap.put("month", monthMap);
jsonMap.remove(map.getYear());
jsonMap.put(map.getYear(), yearMap);
}
List<Map<String, Object>> datas = new ArrayList<Map<String, Object>>();
for (Map.Entry<String, Object> entry : jsonMap.entrySet()) {
datas.add((Map<String, Object>) entry.getValue());
}
resultMap.put("datas", datas);
resultMap.put("result", 1);
}else {
resultMap.put("data", "还没有时光轴数据!");
}
return resultMap;
}
}
package com.longwang.controller.admin;
/**
* 友情链接控制器
*
@Resource
private ClassifyService classifyService;
@RequestMapping("/")
public String index(HttpSession session) {
// 查询公告
session.setAttribute("noticeList", noticeService.list(0, 5));
return "index";// 跳转到index.html
}
@RequestMapping("/delete")
public Map<String, Object> delete(Integer userId) {
Map<String, Object> resultMap = new HashMap<String, Object>();
userService.delete(userId);
resultMap.put("errorNo", 0);
return resultMap;
}
/**
* 登录页面
*
* @return
*/
@RequestMapping("/login")
public String login() {
return "login";
}
/**
* 前台登录页面
*
* @return
*/
@RequestMapping("/webLogin")
public String webLogin() {
return "webLogin";
}
/**
* 注册
*
* @return
*/
@RequestMapping("/regist")
public String regist() {
return "regist";
}
resultMap.put("reply", reply);
resultMap.put("success", true);
return resultMap;
}
}
package com.longwang.controller.admin;
/**
* 博主控制器
*
*/
@RestController
@RequestMapping("/admin/blogger")
public class BloggerAdminController {
@Resource
private BloggerService bloggerService;
@Resource
private StartupRunner startupRunner;
/**
* 查找博主
* @param bloggerId
* @return
*/
@RequestMapping("/find")
public Map<String, Object> find() {
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
/**
* 查看个人信息
*
* @return
*/
@RequestMapping("viewPerson")
public ModelAndView viewPerson(HttpServletRequest request) {
User user = (User) request.getSession().getAttribute("user");
ModelAndView mav = new ModelAndView();
User u = userService.findById(user.getUserId());
mav.addObject("user", u);
mav.setViewName("/viewPerson");
return mav;
}
/**
* 查看个人收藏夹
*
* @return
*/
@RequestMapping("viewCollection")
public ModelAndView viewCollection(HttpServletRequest request, HttpSession session) {
User user = (User) request.getSession().getAttribute("user");
ModelAndView mav = new ModelAndView();
User u = userService.findById(user.getUserId());
String artIds = u.getArticleIds();
List<String> result = new ArrayList<>();
if (StringUtils.isNotBlank(artIds)) {
result = Arrays.asList(StringUtils.split(artIds, ","));
}
List<Integer> retIds = new ArrayList<>();
for (String temp : result) {
retIds.add(Integer.valueOf(temp).intValue());
}
List<Article> retArt = articleService.findByListId(retIds);
session.setAttribute("noticeList", noticeService.list(0, 5));
mav.addObject("retArt", retArt);
mav.addObject("user", u);
mav.setViewName("/viewCollection");
return mav;
}
/**
* 查看个人关注用户
*
Long userCount = userService.getCount();
// 统计今天注册
Long userRegCount = userService.getTodayRegistCount(new User(), "1", "1");
// 统计今日登录
Long userLogCount = userService.getCount(new User(), "1", "1");
// 统计笔记总数
Long artCount = articleService.getCount();
// 统计笔记分类
Long classCount = classifyService.getCount();
session.setAttribute("userCount", userCount);
session.setAttribute("userRegCount", userRegCount);
session.setAttribute("userLogCount", userLogCount);
session.setAttribute("artCount", artCount);
session.setAttribute("classCount", classCount);
mav.addObject("success", true);
mav.setViewName("/admin/index");
}
} catch (Exception e) { // 用户名密码错误
e.printStackTrace();
mav.addObject("admin", admin);
mav.addObject("errorInfo", "用户名或者密码错误!");
mav.setViewName("/login");
}
return mav;
}
/**
* 查看个人信息
*
* @return
*/
@RequestMapping("viewPerson")
public ModelAndView viewPerson(HttpServletRequest request) {
Admin admin = (Admin) request.getSession().getAttribute("adminUser");
ModelAndView mav = new ModelAndView();
Admin u = adminService.findById(admin.getAdminId());
mav.addObject("user", u);
mav.setViewName("/admin/adminViewPerson");
return mav;
}
List<Article> articleList = articleService.list();
for (Article article : articleList) {
try {
article.setContentNoTag(StringUtil.stripHtml(article.getContent())); // 去除html标签
articleIndex.addIndex(article);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
return true;
}
/**
* 前台分页查询文章
*
* @param article
* @param publishDates
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(Article article,
@RequestParam(value = "publishDates", required = false) String publishDates,
@RequestParam(value = "p", required = false) Integer p,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize, HttpServletRequest request) {
Map<String, Object> resultMap = new HashMap<String, Object>();
User user = (User) request.getSession().getAttribute("user");
List<Article> retArt = new ArrayList<>();
String s_bPublishDate = null; // 开始时间
String s_ePublishDate = null; // 结束时间
if (StringUtil.isNotEmpty(publishDates)) {
String[] strs = publishDates.split(" - "); // 拆分时间段
s_bPublishDate = strs[0];
s_ePublishDate = strs[1];
}
if (p != null && p == 1) {
User u = userService.findById(user.getUserId());
article.setUserId(u.getUserId());
@RestController
@RequestMapping("/admin/article")
public class ArticleAdminController {
@Resource
private ArticleService articleService;
@Resource
private StartupRunner startupRunner;
@Resource
private ArticleIndex articleIndex;
@Resource
private UserService userService;
private String imageFilePath = System.getProperty("user.dir") + "\\src\\main\\webapp\\static\\images\\"; // 图片上传路径
/**
* 生成所有帖子索引(审核通过的资源帖子)
*
* @return
*/
@ResponseBody
@RequestMapping(value = "/genAllIndex")
public boolean genAllIndex() {
List<Article> articleList = articleService.list();
for (Article article : articleList) {
try {
article.setContentNoTag(StringUtil.stripHtml(article.getContent())); // 去除html标签
articleIndex.addIndex(article);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
return true;
}
/**
* 前台分页查询文章
*
* @param article
* @param publishDates
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(Article article,
@RequestParam(value = "publishDates", required = false) String publishDates,
/**
* QQ登录控制器
*
*/
@Controller
@RequestMapping("/QQ")
public class QQController {
@Resource
private UserService userService;
/**
* QQ登录跳转
* @param request
* @param response
* @throws IOException
*/
@RequestMapping("/qqLogin")
public void qqLogin(HttpServletRequest request,HttpServletResponse response) throws IOException{
response.setContentType("text/html;charset=utf-8");
try {
response.sendRedirect(new Oauth().getAuthorizeURL(request));
} catch (QQConnectException e) {
// TODO Auto-generated catch block
new QQConnectException("跳转到QQ登录页面异常");
}
}
/**
* QQ登录回调
userService.save(u);
session.setAttribute("user", u);
mav.addObject("username", u.getUsername());
mav.addObject("user", u);
mav.addObject("success", true);
mav.setViewName("/index");
}
return mav;
}
/**
* 查看个人信息
*
* @return
*/
@RequestMapping("viewPerson")
public ModelAndView viewPerson(HttpServletRequest request) {
User user = (User) request.getSession().getAttribute("user");
ModelAndView mav = new ModelAndView();
User u = userService.findById(user.getUserId());
mav.addObject("user", u);
mav.setViewName("/viewPerson");
return mav;
}
/**
* 查看个人收藏夹
*
* @return
*/
@RequestMapping("viewCollection")
public ModelAndView viewCollection(HttpServletRequest request, HttpSession session) {
User user = (User) request.getSession().getAttribute("user");
ModelAndView mav = new ModelAndView();
User u = userService.findById(user.getUserId());
String artIds = u.getArticleIds();
List<String> result = new ArrayList<>();
if (StringUtils.isNotBlank(artIds)) {
result = Arrays.asList(StringUtils.split(artIds, ","));
}
List<Integer> retIds = new ArrayList<>();
for (String temp : result) {
public ModelAndView addFocusUser(HttpServletRequest request, String userId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 当前登录用户
String userIds = user.getUserIds();
List<String> tempList = Arrays.asList(userIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId);
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
@RequestMapping("/addFocusUser/{userId}")
public ModelAndView addFocusUser(@PathVariable(value = "userId", required = false) Integer userId,
HttpSession session) {
ModelAndView mav = new ModelAndView();
User user = (User) session.getAttribute("user");// 当前登录用户
String userIds = user.getUserIds();
List<String> tempList = new ArrayList<>();
if (userIds != null) {
tempList = Arrays.asList(userIds.split(","));
}
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId.toString());
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
/**
* 取消收藏
* @param request
* @param userId
* @return
*/
@RequestMapping("/removeCollection")
public ModelAndView removeCollection(HttpServletRequest request, String artId) {
*/
@RestController
@RequestMapping("/admin/reply")
public class ReplyAdminController {
@Resource
private ReplyService replyService;
/**
* 分页查询回复
* @param reply
* @param page
* @param limit
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(Reply reply,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<String, Object>();
List<Reply> replyList=replyService.list(reply,page-1, pageSize);
Long total=replyService.getCount();
resultMap.put("errorNo", 0);
resultMap.put("data", replyList);
resultMap.put("total", total);
return resultMap;
}
/**
* 删除回复
* @param ids
* @return
*/
@RequestMapping("/delete")
public Map<String, Object> delete(@RequestParam(value="replyId")String ids){
String []idsStr=ids.split(",");
Map<String, Object> resultMap=new HashMap<String, Object>();
for(int i=0;i<idsStr.length;i++) {
replyService.delete(Integer.parseInt(idsStr[i]));
}
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
return resultMap;
}
}
package com.longwang.controller;
public Map<String, Object> save(Link link){
Map<String, Object> resultMap=new HashMap<String, Object>();
linkService.save(link);
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
startupRunner.loadData();
return resultMap;
}
/**
* 批量删除友情链接
* @param ids
* @return
*/
@RequestMapping("/delete")
public Map<String, Object> delete(@RequestParam(value="linkId")String ids){
Map<String, Object> resultMap=new HashMap<String, Object>();
String []idsStr=ids.split(",");
for(int i=0;i<idsStr.length;i++) {
linkService.delete(Integer.parseInt(idsStr[i]));
}
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
startupRunner.loadData();
return resultMap;
}
}
package com.longwang.controller.admin;
/**
* QQ登录回调
* @param session
* @return
* @throws QQConnectException
*/
@RequestMapping(value="QQCallBack")
public String qqcallback(HttpServletRequest request,HttpServletResponse response,HttpSession session) throws QQConnectException{
response.setContentType("text/html;charset=utf-8");
AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);
String accessToken = null,
openID = null;
try {
String code = request.getParameter("code");
String state = request.getParameter("state");
String session_state= (String) session.getAttribute("qq_connect_state");
if(StringUtil.isNotEmpty(session_state) && session_state.equals(state)){
accessToken = accessTokenObj.getAccessToken();
session.setAttribute("accessToken", accessToken);
if (StringUtil.isEmpty(accessToken)) {
System.out.println("没有获取到响应参数");
}else{
OpenID openIDObj = new OpenID(accessToken);
openID = openIDObj.getUserOpenID();
UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);
UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();
if(userInfoBean != null && userInfoBean.getRet() == 0 && StringUtil.isEmpty(userInfoBean.getMsg())){
//获取用户成功
User user=userService.findByOpenId(openID);
if(null != user){
//已经注册过,更新用户信息,直接将信息存入session 然后跳转
user.setNickname(userInfoBean.getNickname());
user.setHeadPortrait(userInfoBean.getAvatar().getAvatarURL100());
user.setSex(userInfoBean.getGender());
user.setLatelyLoginTime(new Date());
userService.save(user);
}else{
//该用户第一次登录 先注册
user = new User();
user.setOpenId(openID);
user.setNickname(userInfoBean.getNickname());
*/
@RestController
@RequestMapping("/admin/timeline")
public class TimelineAdminController {
@Resource
private TimelineService timelineService;
@Resource
private StartupRunner startupRunner;
/**
* 分页查询时光轴
* @param timeline
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(Timeline timeline,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", timelineService.list(timeline,page-1, pageSize));
resultMap.put("total", timelineService.getCount(timeline));
return resultMap;
}
/**
* 根据ID查找时光轴
* @param timelineId
* @return
*/
@RequestMapping("/findById")
public Map<String, Object> findById(Integer timelineId) {
Map<String, Object> resultMap=new HashMap<String, Object>();
Map<String, Object> tempMap=new HashMap<String, Object>();
Timeline timeline=timelineService.findById(timelineId);
tempMap.put("timelineId", timeline.getTimelineId());
tempMap.put("year", timeline.getYear());
tempMap.put("month", timeline.getMonth());
tempMap.put("timeDate", DateUtil.formatDate(timeline.getPublishDate(), "yyyy-MM-dd HH:mm:ss"));
tempMap.put("content", timeline.getContent());
resultMap.put("errorNo", 0);
resultMap.put("data", tempMap);
return resultMap;
}
/**
* 添加或者修改时光轴
// 查询该用户 的所有文章
List<Article> artList = articleService.findByUserId(id);
mav.addObject("artList", artList);
mav.addObject("user", user);
mav.addObject("personFlag", flag);
mav.addObject("artCount", artList.size());
mav.setViewName("otherPerson");
return mav;
}
/**
* 根据关键字查询相关文章信息
*
* @param q
* @return
* @throws Exception
*/
@RequestMapping("/q")
@ResponseBody
public Map<String, Object> search(@RequestParam(value = "q", required = false) String q,
@RequestParam(value = "page", required = false) String page) throws Exception {
Map<String, Object> resultMap = new HashMap<String, Object>();
int pageSize = 5;
List<Article> articleList = articleIndex.searchArticle(q);
for (Article a : articleList) {
Article article = articleService.findById(a.getArticleId());
a.setClick(article.getClick());
a.setCommentNum(article.getCommentNum());
a.setAuthor(article.getAuthor());
a.setImageName(article.getImageName());
a.setClassify(article.getClassify());
a.setIsOriginal(article.getIsOriginal());
a.setIsTop(article.getIsTop());
}
int total = articleList.size();
int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1); // 总页数
Integer toIndex = articleList.size() >= Integer.parseInt(page) * pageSize ? Integer.parseInt(page) * pageSize
: articleList.size();
resultMap.put("data", articleList.subList((Integer.parseInt(page) - 1) * pageSize, toIndex));
resultMap.put("q", q);
resultMap.put("totalPage", totalPage);
resultMap.put("total", total);
return resultMap;
}
/**
public void testDownload(HttpServletResponse res, String fileName) throws Exception {
res.setHeader("content-type", "application/octet-stream");
res.setContentType("application/octet-stream");
String suffixName = fileName.substring(fileName.lastIndexOf(".")); // 获取文件的后缀
res.setHeader("Content-Disposition", "attachment;filename=" + DateUtil.getCurrentDateStr() + suffixName);
byte[] buff = new byte[1024];
BufferedInputStream bis = null;
OutputStream os = null;
try {
os = res.getOutputStream();
bis = new BufferedInputStream(new FileInputStream(new File(downloadImagePath + fileName)));
int i = bis.read(buff);
while (i != -1) {
os.write(buff, 0, buff.length);
os.flush();
i = bis.read(buff);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("success");
}
}
package com.longwang.controller.admin;
@Resource
private ArticleService articleService;
/**
* 分页查询评论
* @Title: list
* @param comment 评论实体
* @param commentDates 时间段 (搜索用到)
* @param page 当前页
* @param limit 每页记录数
* @param trueName 昵称
* @return 参数说明
* @return Map<String,Object> 返回类型
* @throws
*/
@RequestMapping("/list")
public Map<String, Object> list(Comment comment,
@RequestParam(value = "commentDates", required = false) String commentDates,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize,
@RequestParam(value = "nickname", required = false) String nickname) {
String s_bCommentDate = null; // 开始时间
String s_eCommentDate = null; // 结束时间
if (StringUtil.isNotEmpty(commentDates)) {
String[] strs = commentDates.split(" - "); // 拆分时间段
s_bCommentDate = strs[0];
s_eCommentDate = strs[1];
}
Integer userId = null;
Map<String, Object> resultMap = new HashMap<String, Object>();
if (StringUtil.isNotEmpty(nickname)) {
User user = userService.findByTrueName(nickname);
if (user != null) {
userId = user.getUserId();
}
if (userId == null) {
resultMap.put("errorInfo", "用户昵称不存在,没有评论!");
} else {
resultMap.put("errorNo", 0);
}
} else {
resultMap.put("errorNo", 0);
}
List<Comment> commentList = commentService.list(comment, s_bCommentDate, s_eCommentDate, page - 1, pageSize,
userId);
Long total = commentService.getCount(comment, s_bCommentDate, s_eCommentDate, userId);
resultMap.put("data", commentList);
resultMap.put("total", total);
return resultMap;
}
/**
* 评论Controller层
*
*/
@RestController
@RequestMapping("/admin/comment")
public class CommentAdminController {
@Resource
private CommentService commentService;
@Resource
private UserService userService;
@Resource
private ReplyService replyService;
@Resource
private ArticleService articleService;
/**
* 分页查询评论
* @Title: list
* @param comment 评论实体
* @param commentDates 时间段 (搜索用到)
* @param page 当前页
* @param limit 每页记录数
* @param trueName 昵称
* @return 参数说明
* @return Map<String,Object> 返回类型
* @throws
*/
@RequestMapping("/list")
public Map<String, Object> list(Comment comment,
@RequestParam(value = "commentDates", required = false) String commentDates,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize,
@RequestParam(value = "nickname", required = false) String nickname) {
String s_bCommentDate = null; // 开始时间
String s_eCommentDate = null; // 结束时间
if (StringUtil.isNotEmpty(commentDates)) {
String[] strs = commentDates.split(" - "); // 拆分时间段
s_bCommentDate = strs[0];
s_eCommentDate = strs[1];
}
boolean flag = false;
User user = (User) session.getAttribute("user");
if (user != null) {
String artIds = user.getArticleIds();
if (artIds != null) {
List<String> idsList = Arrays.asList(artIds.split(","));
if (idsList.contains(id.toString())) {
mav.addObject("flag", true);
} else {
mav.addObject("flag", flag);
}
} else {
mav.addObject("flag", flag);
}
}
mav.addObject("article", article);
mav.setViewName("/foreground/detail");
return mav;
}
/**
* 文章详情
*
* @return
*/
@RequestMapping("/myDetail/{id}")
public ModelAndView myDetail(@PathVariable(value = "id", required = false) Integer id, HttpSession session) {
ModelAndView mav = new ModelAndView();
articleService.increaseClick(id);
Article article = articleService.findById(id);
Article tempArticle = new Article();
tempArticle.setClassify(article.getClassify());
session.setAttribute("similarityList", articleService.list(tempArticle, null, null, 0, 10));
session.setAttribute("RandomArticleList", articleService.getRandomArticle(10)); // 10条随机文章
// 判断该文章是否收藏
boolean flag = false;
User user = (User) session.getAttribute("user");
if (user != null && user.getArticleIds() != null) {
String artIds = user.getArticleIds();
List<String> idsList = Arrays.asList(artIds.split(","));
if (idsList.contains(id.toString())) {
mav.addObject("flag", true);
} else {
mav.addObject("flag", flag);
}
}
}
/**
* 分页查询评论
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/massageList")
public Map<String, Object> massageList(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
List<Comment> commentList = commentService.massageList(page - 1, pageSize);
Long total = commentService.getCount2();
int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("totalPage", totalPage);
resultMap.put("data", commentList);
return resultMap;
}
/**
* 添加评论
* @Title: add
* @param comment 评论实体
* @return 参数说明
* @return Map<String,Object> 返回类型
* @throws
*/
@RequestMapping("/add")
public Map<String, Object> add(Comment comment, HttpSession session) {
User currentUser = (User) session.getAttribute("user");
Map<String, Object> resultMap = new HashMap<String, Object>();
comment.setCommentDate(new Date());
comment.setUser(currentUser);
commentService.add(comment);
if (comment.getArticle() != null) {
articleService.increaseComment(comment.getArticle().getArticleId());
}
resultMap.put("comment", comment);
resultMap.put("success", true);
return resultMap;
}
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.remove(artId);
String ret = StringUtils.join(lineIdList, ",");
user.setArticleIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewCollection");
return mav;
}
/**
* 收藏
* @param request
* @param userId
* @return
*/
@RequestMapping("/addCollection")
public ModelAndView addCollection(HttpServletRequest request, String artId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 当前登录用户
String artIds = user.getArticleIds();
List<String> tempList = Arrays.asList(artIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(artId);
String ret = StringUtils.join(lineIdList, ",");
user.setArticleIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewCollection");
return mav;
}
}
package com.longwang.util;
/**
* IP工具类
* @ClassName: IPUtil
}
}
package com.longwang.controller.admin;
/**
* 文章控制器
*
*/
@RestController
@RequestMapping("/admin/article")
public class ArticleAdminController {
@Resource
private ArticleService articleService;
@Resource
private StartupRunner startupRunner;