package com.bsd.cases.controller; import com.alibaba.fastjson.JSONObject; import com.bsd.cases.service.CaseContentLikeService; import com.bsd.cases.service.CaseContentService; import com.bsd.cases.service.OssService; import com.bsd.cases.util.AjaxRequest; import com.bsd.cases.util.AjaxResult; import com.bsd.cases.util.LogUtils; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; @CrossOrigin @RestController @RequestMapping("/case-content") public class CaseContentController { @Resource private CaseContentService caseContentService; @Resource private CaseContentLikeService caseContentLikeService; @Value("${oss.filedir}") private String filedir; private Logger logger = LogUtils.getBussinessLogger(); @Resource private OssService ossService; @RequestMapping("/get-content-list-by-category-id") public AjaxResult getContentListByCategoryId(@RequestBody AjaxRequest ajaxRequest, HttpServletRequest request) { AjaxResult ajaxResult = new AjaxResult(); JSONObject data = ajaxRequest.getData(); if (null == data){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("data missing"); }else { Integer pageNum = data.getInteger("pageNum"); Integer pageSize = data.getInteger("pageSize"); if (null==pageNum|| null == pageSize){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("分页参数不可为空"); }else { Long categoryId = data.getLong("categoryId"); if (null == categoryId){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("分级id不可为空"); }else { ajaxResult.setRetcode(AjaxResult.SUCCESS); ajaxResult.setData(caseContentService.getContentListByCategoryId(categoryId,pageNum,pageSize)); } } } return ajaxResult; } @RequestMapping("/get-content-detail-by-category-id") public AjaxResult getContentDetailByContentId(@RequestBody AjaxRequest ajaxRequest, HttpServletRequest request) { AjaxResult ajaxResult = new AjaxResult(); JSONObject data = ajaxRequest.getData(); if (null == data){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("data missing"); }else { Long contentId = data.getLong("contentId"); if (null == contentId){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("文章id不可为空"); }else { ajaxResult.setRetcode(AjaxResult.SUCCESS); ajaxResult.setData(caseContentService.getContentDetailByContentId(contentId)); } } return ajaxResult; } /** * 点赞/取消点赞文章 * @param ajaxRequest * @param request * @return */ @RequestMapping("/update-like") public AjaxResult updateLike(@RequestBody AjaxRequest ajaxRequest, HttpServletRequest request) { AjaxResult ajaxResult = new AjaxResult(); JSONObject data = ajaxRequest.getData(); if (null == data){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("data missing"); }else { Long contentId = data.getLong("contentId"); if (null == contentId){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("文章id不可为空"); }else { ajaxResult.setRetcode(AjaxResult.SUCCESS); ajaxResult.setData(caseContentLikeService.updateLike(contentId)); } } return ajaxResult; } /** * 新增或者更新文章 * @param ajaxRequest * @return */ @RequestMapping("/save-content") public AjaxResult saveContent(@RequestBody AjaxRequest ajaxRequest) { AjaxResult ajaxResult = new AjaxResult(); JSONObject data = ajaxRequest.getData(); if (null == data){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("data missing"); }else { ajaxResult = caseContentService.saveContent(data); } return ajaxResult; } /** * 删除文章 * @param ajaxRequest * @return */ @RequestMapping("/del-content") public AjaxResult delContent(@RequestBody AjaxRequest ajaxRequest) { AjaxResult ajaxResult = new AjaxResult(); JSONObject data = ajaxRequest.getData(); if (null == data){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("data missing"); }else { Long contentId = data.getLong("contentId"); if (null == contentId){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("文章id不可为空"); }else { ajaxResult = caseContentService.delContent(contentId); } } return ajaxResult; } /** * 后台搜索文章 * @param jsonObject * @return */ @RequestMapping("/search-bak-content") public AjaxResult searchBakContent(@RequestBody JSONObject jsonObject) { AjaxResult ajaxResult = new AjaxResult(); try { String name = jsonObject.getString("name"); Long level1Id = jsonObject.getLong("level1Id"); Long level2Id = jsonObject.getLong("level2Id"); Long level3Id = jsonObject.getLong("level3Id"); Integer pageNum = jsonObject.getInteger("pageNum"); if (null == pageNum){ ajaxResult.setRetmsg("分页参数不可为空"); ajaxResult.setRetcode(AjaxResult.FAILED); }else { ajaxResult.setData(caseContentService.searchBakContentByParam(name,level1Id,level2Id,level3Id,pageNum)); ajaxResult.setRetmsg("操作成功"); ajaxResult.setRetcode(AjaxResult.SUCCESS); } } catch (Exception e) { e.printStackTrace(); ajaxResult.setRetmsg("操作失败:" + e.getMessage()); ajaxResult.setRetcode(AjaxResult.FAILED); } return ajaxResult; } /** * 后台通过文章id获取文章 * @param jsonObject * @return */ @RequestMapping("/get-bak-content-by-content-id") public AjaxResult getCaseContentDetailBakVoByContentID(@RequestBody JSONObject jsonObject) { AjaxResult ajaxResult = new AjaxResult(); try { Long contentId = jsonObject.getLong("contentId"); if (null == contentId){ ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("文章id不可为空"); }else { ajaxResult.setRetcode(AjaxResult.SUCCESS); ajaxResult.setData(caseContentService.getCaseContentDetailBakVoByContentID(contentId)); } } catch (Exception e) { e.printStackTrace(); ajaxResult.setRetmsg("操作失败:" + e.getMessage()); ajaxResult.setRetcode(AjaxResult.FAILED); } return ajaxResult; } /** * @CK * files就是文件流,filedir是oss路径 * @return */ @RequestMapping(value = "/upload-content-url", produces = "text/html;charset=UTF-8") public String uploadContentUrl(MultipartFile file) { Map value = new HashMap<>(); try { if(file!=null){ //保存文件 String url = ossService.uploadCategoryUrl(file,filedir); logger.debug("图片路径{}",url); value.put("code", 2000); value.put("msg", "图片上传成功"); value.put("url",url); } } catch (Exception e) { e.printStackTrace(); value.put("code", 2001); value.put("msg", "图片上传失败"); } return JSONObject.toJSONString(value); } }