Merge remote-tracking branch 'origin/master'

master
zyy 5 years ago
commit d3244a3306

@ -82,4 +82,92 @@ public class CaseCategoryController {
}
return ajaxResult;
}
/**
*
* @param ajaxRequest
* @return
*/
@RequestMapping("/save-category")
public AjaxResult getAllCategory(@RequestBody AjaxRequest ajaxRequest) {
AjaxResult ajaxResult = new AjaxResult();
JSONObject data = ajaxRequest.getData();
if (null == data){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("data missing");
}else {
ajaxResult = caseCategoryService.saveCategory(data);
}
return ajaxResult;
}
/**
*
* @param ajaxRequest
* @return
*/
@RequestMapping("/get-bak-category-by-parent-id")
public AjaxResult getCategoryByParentId(@RequestBody AjaxRequest ajaxRequest) {
AjaxResult ajaxResult = new AjaxResult();
JSONObject data = ajaxRequest.getData();
if (null == data){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("data missing");
}else {
Long parentId = data.getLong("parentId");
ajaxResult.setData(caseCategoryService.getBakCategoryByParentId(parentId));
}
return ajaxResult;
}
/**
*
* @param ajaxRequest
* @return
*/
@RequestMapping("/search-bak-category")
public AjaxResult searchBakCategory(@RequestBody AjaxRequest ajaxRequest) {
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");
if (null==pageNum){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("分页参数不可为空");
}else {
String name = data.getString("name");
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setData(caseCategoryService.searchBakCategory(name,pageNum));
}
}
return ajaxResult;
}
/**
*
* @param jsonObject
* @return
*/
@RequestMapping("/del-category")
public AjaxResult delCategory(@RequestBody JSONObject jsonObject) {
AjaxResult ajaxResult = new AjaxResult();
try{
Long categoryId = jsonObject.getLong("categoryId");
if (null==categoryId){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("文章Id不可为空");
}else {
ajaxResult = caseCategoryService.delCategory(categoryId);
}
}catch (Exception e) {
e.printStackTrace();
ajaxResult.setRetmsg("操作失败:" + e.getMessage());
ajaxResult.setRetcode(AjaxResult.FAILED);
}
return ajaxResult;
}
}

@ -28,20 +28,13 @@ public class CaseContentAttachmentController {
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("data missing");
}else {
Integer pageNum = data.getInteger("pageNum");
Integer pageSize = data.getInteger("pageSize");
if (null==pageNum|| null == pageSize){
Long contentId = data.getLong("contentId");
if (null == contentId){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("分页参数不可为空");
ajaxResult.setRetmsg("文章id不可为空");
}else {
Long contentId = data.getLong("contentId");
if (null == contentId){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("文章id不可为空");
}else {
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setData(caseContentAttachmentService.getCaseContentAttachment(contentId));
}
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setData(caseContentAttachmentService.getCaseContentAttachment(contentId));
}
}
return ajaxResult;

@ -72,4 +72,29 @@ public class CaseContentCommentsController {
}
return ajaxResult;
}
/**
*
* @param ajaxRequest
* @param request
* @return
*/
@RequestMapping("/del-comments")
public AjaxResult delComments(@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 commentsId = data.getLong("contentId");
if (null == commentsId){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("评论id不可为空");
}else {
ajaxResult =caseContentCommentsService.delComments(commentsId);
}
}
return ajaxResult;
}
}

@ -19,7 +19,7 @@ import javax.servlet.http.HttpServletRequest;
public class CaseContentController {
@Resource
private CaseContentService contentService;
private CaseContentService caseContentService;
@Resource
private CaseContentLikeService caseContentLikeService;
@ -44,7 +44,7 @@ public class CaseContentController {
ajaxResult.setRetmsg("分级id不可为空");
}else {
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setData(contentService.getContentListByCategoryId(categoryId,pageNum,pageSize));
ajaxResult.setData(caseContentService.getContentListByCategoryId(categoryId,pageNum,pageSize));
}
}
}
@ -65,20 +65,20 @@ public class CaseContentController {
ajaxResult.setRetmsg("文章id不可为空");
}else {
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setData(contentService.getContentDetailByContentId(contentId));
ajaxResult.setData(caseContentService.getContentDetailByContentId(contentId));
}
}
return ajaxResult;
}
/**
*
* /
* @param ajaxRequest
* @param request
* @return
*/
@RequestMapping("/add-like")
public AjaxResult addLike(@RequestBody AjaxRequest ajaxRequest, HttpServletRequest request) {
@RequestMapping("/update-like")
public AjaxResult updateLike(@RequestBody AjaxRequest ajaxRequest, HttpServletRequest request) {
AjaxResult ajaxResult = new AjaxResult();
JSONObject data = ajaxRequest.getData();
if (null == data){
@ -91,9 +91,108 @@ public class CaseContentController {
ajaxResult.setRetmsg("文章id不可为空");
}else {
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setData(caseContentLikeService.addLike(contentId));
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;
}
}

@ -2,6 +2,8 @@ package com.bsd.cases.mapper;
import com.bsd.cases.model.CaseCategory;
import com.bsd.cases.util.CommonMapper;
import com.bsd.cases.vo.CaseCategoryVo;
import com.bsd.cases.vo.CaseContentBakVo;
import com.bsd.cases.vo.CaseSearchVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@ -11,4 +13,6 @@ import java.util.List;
@Repository
public interface CaseCategoryMapper extends CommonMapper<CaseCategory> {
List<CaseSearchVo> search(@Param("name") String name);
List<CaseCategoryVo> searchCaseCategoryVo(@Param("name") String name);
}

@ -2,8 +2,16 @@ package com.bsd.cases.mapper;
import com.bsd.cases.model.CaseContent;
import com.bsd.cases.util.CommonMapper;
import com.bsd.cases.vo.CaseContentBakVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CaseContentMapper extends CommonMapper<CaseContent> {
List<CaseContentBakVo> searchBak(@Param("name") String name
, @Param("level1Id") Long level1Id
, @Param("level2Id") Long level2Id
, @Param("level3Id") Long level3Id);
}

@ -2,8 +2,10 @@ package com.bsd.cases.mapper;
import com.bsd.cases.model.CaseContentMaterial;
import com.bsd.cases.util.CommonMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Repository
@Mapper
public interface CaseContentMaterialMapper extends CommonMapper<CaseContentMaterial> {
}

@ -25,6 +25,7 @@
package com.bsd.cases.model;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
@ -42,7 +43,9 @@ public class BaseEntity {
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createDateTime;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateDateTime;
private Long createBy;
private Long updateBy;

@ -11,5 +11,11 @@ public class CaseContentAttachment extends BaseEntity{
private Long contentId;
private String attachmentName;
private String attachmentUrl;
private String size;
private String type;
}

@ -1,9 +1,10 @@
package com.bsd.cases.service;
import com.alibaba.fastjson.JSONObject;
import com.bsd.cases.util.AjaxRequest;
import com.bsd.cases.util.AjaxResult;
import com.bsd.cases.vo.CaseSearchVo;
import com.bsd.cases.util.PageAjax;
import com.bsd.cases.vo.CaseCategoryVo;
import com.bsd.cases.vo.CaseContentBakVo;
import java.util.List;
@ -33,6 +34,32 @@ public interface CaseCategoryService<CaseCategory> extends BaseService<CaseCateg
*/
JSONObject search(String name,Integer pageNum,Integer pageSize);
/**
*
* @param jsonObject
* @return
*/
AjaxResult saveCategory(JSONObject jsonObject);
AjaxResult saveOrUpdateCategory(JSONObject jsonObject);
/**
*
* @param categoryId
* @return
*/
AjaxResult delCategory(Long categoryId);
/**
*
* @param parentId
* @return
*/
List<CaseCategory> getBakCategoryByParentId(Long parentId);
/**
*
* @param name
* @param pageNum
* @return
*/
PageAjax<CaseCategoryVo> searchBakCategory(String name, Integer pageNum);
}

@ -10,4 +10,6 @@ public interface CaseContentCommentsService<CaseContentComments> extends BaseSer
JSONObject getCaseContentCommentsByContentId(Long contentId, Integer pageNum, Integer pageSize);
AjaxResult addComments(Long contentId,String comments);
AjaxResult delComments(Long commentsId);
}

@ -4,5 +4,5 @@ import com.bsd.cases.util.AjaxResult;
public interface CaseContentLikeService<CaseContentLike> extends BaseService<CaseContentLike> {
AjaxResult addLike(Long contentId);
AjaxResult updateLike(Long contentId);
}

@ -1,6 +1,11 @@
package com.bsd.cases.service;
import com.alibaba.fastjson.JSONObject;
import com.bsd.cases.util.AjaxRequest;
import com.bsd.cases.util.AjaxResult;
import com.bsd.cases.util.PageAjax;
import com.bsd.cases.vo.CaseContentBakVo;
import com.bsd.cases.vo.CaseContentDetailBakVo;
import com.bsd.cases.vo.CaseContentDetailVo;
import com.bsd.cases.vo.CaseContentVo;
@ -10,4 +15,20 @@ public interface CaseContentService<CaseContent> extends BaseService<CaseContent
JSONObject getContentListByCategoryId(Long categoryId, Integer pageNum, Integer pageSize);
CaseContentDetailVo getContentDetailByContentId(Long contentId);
AjaxResult saveContent(JSONObject jsonObject);
AjaxResult delContent(Long contentId);
/**
*
* @param name
* @param level1
* @param level2
* @param level3
* @return
*/
PageAjax<CaseContentBakVo> searchBakContentByParam(String name, Long level1, Long level2, Long level3, Integer pageNum);
CaseContentDetailBakVo getCaseContentDetailBakVoByContentID(Long contentId);
}

@ -4,17 +4,22 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bsd.cases.constants.Constants;
import com.bsd.cases.mapper.CaseCategoryMapper;
import com.bsd.cases.mapper.CaseContentMapper;
import com.bsd.cases.model.CaseCategory;
import com.bsd.cases.model.CaseContent;
import com.bsd.cases.model.CaseUsers;
import com.bsd.cases.service.CaseCategoryService;
import com.bsd.cases.util.AjaxRequest;
import com.bsd.cases.util.AjaxResult;
import com.bsd.cases.util.PageAjax;
import com.bsd.cases.util.PageUtils;
import com.bsd.cases.vo.CaseCategoryVo;
import com.bsd.cases.vo.CaseSearchVo;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.ArrayList;
@ -27,6 +32,8 @@ public class CaseCategoryServiceImpl extends BaseServiceImpl<CaseCategoryMapper,
@Resource
private CaseCategoryMapper caseCategoryMapper;
@Resource
private CaseContentMapper caseContentMapper;
/**
* 12
@ -114,7 +121,7 @@ public class CaseCategoryServiceImpl extends BaseServiceImpl<CaseCategoryMapper,
* @return
*/
@Override
public AjaxResult saveOrUpdateCategory(JSONObject jsonObject) {
public AjaxResult saveCategory(JSONObject jsonObject) {
AjaxResult ajaxResult = new AjaxResult();
Long categoryId = jsonObject.getLong("categoryId");
String name = jsonObject.getString("name");
@ -156,13 +163,102 @@ public class CaseCategoryServiceImpl extends BaseServiceImpl<CaseCategoryMapper,
}
}
}
caseCategoryMapper.insert(caseCategory);
ajaxResult.setRetmsg("成功新增类别");
ajaxResult.setRetcode(AjaxResult.SUCCESS);
}else {
//走更新
CaseCategory caseCategory = caseCategoryMapper.selectByPrimaryKey(categoryId);
if (StringUtils.isNotEmpty(name)){
caseCategory.setName(name);
}
if (StringUtils.isNotEmpty(url)){
caseCategory.setUrl(url);
}
if (null != level){
caseCategory.setLevel(level);
}
if (null != parentId){
caseCategory.setParentId(parentId);
}
caseCategory.setUpdateDateTime(new Date());
caseCategoryMapper.updateByPrimaryKeySelective(caseCategory);
ajaxResult.setRetmsg("成功更新类别");
ajaxResult.setRetcode(AjaxResult.SUCCESS);
}
return ajaxResult;
}
return null;
/**
*
* @param categoryId
* @return
*/
@Override
public AjaxResult delCategory(Long categoryId) {
AjaxResult ajaxResult = new AjaxResult();
CaseCategory caseCategory = caseCategoryMapper.selectByPrimaryKey(categoryId);
Integer count;
if (caseCategory.getState() == Constants.STATE_INVALID){
ajaxResult.setRetmsg("类别已删除,不可重复操作");
ajaxResult.setRetcode(AjaxResult.FAILED);
}else {
if (3 == caseCategory.getLevel()){
//判断下级有没有文章
CaseContent findCaseContent = new CaseContent();
findCaseContent.setState(Constants.STATE_VALID);
findCaseContent.setCategoryId(categoryId);
count = caseContentMapper.selectCount(findCaseContent);
}else {
CaseCategory findCaseCategory = new CaseCategory();
findCaseCategory.setState(Constants.STATE_VALID);
findCaseCategory.setParentId(categoryId);
count = caseCategoryMapper.selectCount(findCaseCategory);
}
if (count>0){
ajaxResult.setRetmsg("下级目录有内容,不可删除");
ajaxResult.setRetcode(AjaxResult.FAILED);
return ajaxResult;
}
caseCategory.setState(Constants.STATE_INVALID);
caseCategory.setUpdateDateTime(new Date());
caseCategoryMapper.updateByPrimaryKeySelective(caseCategory);
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setRetmsg("成功删除类别");
}
return ajaxResult;
}
/**
* parentId
* @param parentId
* @return
*/
@Override
public List<CaseCategory> getBakCategoryByParentId(Long parentId) {
CaseCategory findCaseCategory = new CaseCategory();
findCaseCategory.setState(Constants.STATE_VALID);
if (null == parentId) {
//获取一级分类
findCaseCategory.setLevel(1);
}else {
//获取其他分类
findCaseCategory.setParentId(parentId);
}
List<CaseCategory> caseCategoryList = caseCategoryMapper.select(findCaseCategory);
return caseCategoryList;
}
@Override
public PageAjax<CaseCategoryVo> searchBakCategory(String name, Integer pageNum) {
// Example example = new Example(CaseCategory.class);
// Example.Criteria criteria = example.createCriteria();
// criteria.andEqualTo("state", Constants.STATE_VALID);
// criteria.andLike("name", "%"+name+"%");
PageHelper.startPage(pageNum, Constants.PAGE_SIZE);
List<CaseCategoryVo> caseCategoryList = caseCategoryMapper.searchCaseCategoryVo(name);
PageAjax<CaseCategoryVo> pageAjax = new PageAjax<>(caseCategoryList);
return pageAjax;
}

@ -91,4 +91,41 @@ public class CaseContentCommentsServiceImpl extends BaseServiceImpl<CaseContentC
ajaxResult.setRetcode(AjaxResult.SUCCESS);
return ajaxResult;
}
/**
*
* @param commentsId
* @return
*/
@Override
public AjaxResult delComments(Long commentsId) {
AjaxResult ajaxResult = new AjaxResult();
CaseUsers caseUsers = caseUsersService.currentUser();
CaseContentComments caseContentComments = caseContentCommentsMapper.selectByPrimaryKey(commentsId);
if (caseUsers.getId()!= caseContentComments.getCreateBy()){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("无权限删除非本人的评论");
return ajaxResult;
}else {
caseContentComments.setState(Constants.STATE_INVALID);
caseContentComments.setUpdateDateTime(new Date());
caseContentCommentsMapper.updateByPrimaryKeySelective(caseContentComments);
//更新统计
CaseContentStatical findCaseContentStatical = new CaseContentStatical();
findCaseContentStatical.setState(Constants.STATE_VALID);
findCaseContentStatical.setContentId(caseContentComments.getContentId());
CaseContentStatical caseContentStatical = caseContentStaticalMapper.selectOne(findCaseContentStatical);
CaseContentComments findCaseContentComments = new CaseContentComments();
findCaseContentComments.setState(Constants.STATE_VALID);
findCaseContentComments.setContentId(caseContentComments.getContentId());
Integer num = caseContentCommentsMapper.selectCount(findCaseContentComments);
caseContentStatical.setCommentsNum(num);
caseContentStatical.setUpdateDateTime(new Date());
caseContentStaticalMapper.updateByPrimaryKeySelective(caseContentStatical);
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setRetmsg("已删除评论");
}
return ajaxResult;
}
}

@ -11,6 +11,7 @@ import com.bsd.cases.model.CaseUsers;
import com.bsd.cases.service.CaseContentLikeService;
import com.bsd.cases.service.CaseUsersService;
import com.bsd.cases.util.AjaxResult;
import org.apache.ibatis.annotations.Case;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -36,7 +37,7 @@ public class CaseContentLikeServiceImpl extends BaseServiceImpl<CaseContentLikeM
* @return
*/
@Override
public AjaxResult addLike(Long contentId) {
public AjaxResult updateLike(Long contentId) {
AjaxResult ajaxResult = new AjaxResult();
CaseUsers caseUsers = caseUsersService.currentUser();
CaseContent findCaseContent = new CaseContent();
@ -47,14 +48,35 @@ public class CaseContentLikeServiceImpl extends BaseServiceImpl<CaseContentLikeM
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("未找到该文章");
}else {
CaseContentLike caseContentLike = new CaseContentLike();
caseContentLike.setContentId(contentId);
caseContentLike.setCreateDateTime(new Date());
caseContentLike.setUpdateDateTime(new Date());
caseContentLike.setCreateBy(caseUsers.getId());
caseContentLike.setUpdateBy(caseUsers.getId());
caseContentLike.setState(Constants.STATE_VALID);
caseContentLikeMapper.insert(caseContentLike);
CaseContentLike findMeContentLike = new CaseContentLike();
findMeContentLike.setState(Constants.STATE_VALID);
findMeContentLike.setContentId(contentId);
findMeContentLike.setCreateBy(caseUsers.getId());
CaseContentLike meContentLike = caseContentLikeMapper.selectOne(findMeContentLike);
if (null == meContentLike){
//点赞
CaseContentLike caseContentLike = new CaseContentLike();
caseContentLike.setContentId(contentId);
caseContentLike.setCreateDateTime(new Date());
caseContentLike.setUpdateDateTime(new Date());
caseContentLike.setCreateBy(caseUsers.getId());
caseContentLike.setUpdateBy(caseUsers.getId());
caseContentLike.setState(Constants.STATE_VALID);
caseContentLikeMapper.insert(caseContentLike);
ajaxResult.setData(1);
}else {
//取消点赞
if (0 == meContentLike.getState()){
meContentLike.setState(Constants.STATE_VALID);
ajaxResult.setData(1);
}else {
meContentLike.setState(Constants.STATE_INVALID);
ajaxResult.setData(0);
}
caseContentLikeMapper.updateByPrimaryKeySelective(meContentLike);
}
//更新点赞统计数据
CaseContentLike findCaseContentLike = new CaseContentLike();
findCaseContentLike.setContentId(contentId);
findCaseContentLike.setState(Constants.STATE_VALID);
@ -66,7 +88,6 @@ public class CaseContentLikeServiceImpl extends BaseServiceImpl<CaseContentLikeM
caseContentStatical.setLikeNum(likeNum);
caseContentStatical.setUpdateDateTime(new Date());
caseContentStaticalMapper.updateByPrimaryKeySelective(caseContentStatical);
ajaxResult.setRetmsg("已成功点赞");
ajaxResult.setRetcode(AjaxResult.SUCCESS);
}
return ajaxResult;

@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service("caseContentScoreService")
@Transactional
@ -53,6 +54,16 @@ public class CaseContentScoreServiceImpl extends BaseServiceImpl<CaseContentScor
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("评分不可大于5或小于0");
}else {
CaseContentScore findCaseContentScore = new CaseContentScore();
findCaseContentScore.setUpdateBy(caseUsers.getId());
findCaseContentScore.setContentId(contentId);
findCaseContentScore.setState(Constants.STATE_VALID);
Integer count = caseContentScoreMapper.selectCount(findCaseContentScore);
if (count>1){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("不可重复打分");
return ajaxResult;
}
CaseContentScore caseContentScore = new CaseContentScore();
caseContentScore.setScore(score);
caseContentScore.setContentId(contentId);

@ -7,10 +7,17 @@ import com.bsd.cases.mapper.*;
import com.bsd.cases.model.*;
import com.bsd.cases.service.CaseContentService;
import com.bsd.cases.service.CaseUsersService;
import com.bsd.cases.util.AjaxRequest;
import com.bsd.cases.util.AjaxResult;
import com.bsd.cases.util.PageAjax;
import com.bsd.cases.util.PageUtils;
import com.bsd.cases.vo.CaseContentBakVo;
import com.bsd.cases.vo.CaseContentDetailBakVo;
import com.bsd.cases.vo.CaseContentDetailVo;
import com.bsd.cases.vo.CaseContentVo;
import com.github.pagehelper.PageHelper;
import com.sun.org.apache.bcel.internal.generic.NEW;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -53,6 +60,7 @@ public class CaseContentServiceImpl extends BaseServiceImpl<CaseContentMapper, C
@Override
public JSONObject getContentListByCategoryId(Long categoryId,Integer pageNum,Integer pageSize) {
CaseCategory caseCategory = caseCategoryMapper.selectByPrimaryKey(categoryId);
CaseContent findCaseContent = new CaseContent();
findCaseContent.setState(Constants.STATE_VALID);
findCaseContent.setCategoryId(categoryId);
@ -78,6 +86,7 @@ public class CaseContentServiceImpl extends BaseServiceImpl<CaseContentMapper, C
caseContentVoList.add(caseContentVo);
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("url",caseCategory.getUrl());
jsonObject.put("list",caseContentVoList);
jsonObject.put("total",pageJson.getInteger("total"));
jsonObject.put("pageNum",pageNum);
@ -157,4 +166,209 @@ public class CaseContentServiceImpl extends BaseServiceImpl<CaseContentMapper, C
}
return caseContentDetailVo;
}
/**
*
* @param jsonObject
* @return
*/
@Override
public AjaxResult saveContent(JSONObject jsonObject) {
AjaxResult ajaxResult = new AjaxResult();
String contentTitle = jsonObject.getString("contentTitle");
String url = jsonObject.getString("url");
String content = jsonObject.getString("content");
Long categoryId = jsonObject.getLong("categoryId");
Long contentId = jsonObject.getLong("contentId");
JSONArray contentAttachmentJson = jsonObject.getJSONArray("contentAttachmentJson");
JSONArray contentMaterialJson = jsonObject.getJSONArray("contentMaterialJson");
if (null == contentId){
//新增
if (StringUtils.isBlank(contentTitle)){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("文章标题不可以为空");
return ajaxResult;
}
if (StringUtils.isBlank(url)){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("文章预览图地址不可以为空");
return ajaxResult;
}
if (StringUtils.isBlank(content)){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("文章正文不可以为空");
return ajaxResult;
}
if (null == categoryId){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("文章类别id不可以为空");
return ajaxResult;
}
CaseContent caseContent = new CaseContent();
caseContent.setContentTitle(contentTitle);
caseContent.setCategoryId(categoryId);
caseContent.setContent(content);
caseContent.setUrl(url);
caseContent.setUpdateDateTime(new Date());
caseContentMapper.insert(caseContent);
contentId = caseContent.getId();
//插入统计
CaseContentStatical caseContentStatical = new CaseContentStatical();
caseContentStatical.setContentId(caseContent.getId());
caseContentStatical.setLikeNum(0);
caseContentStatical.setViewNum(0);
caseContentStatical.setCommentsNum(0);
caseContentStatical.setScore(0.0);
caseContentStatical.setCreateDateTime(new Date());
caseContentStatical.setUpdateDateTime(new Date());
caseContentStatical.setState(Constants.STATE_VALID);
caseContentStaticalMapper.insert(caseContentStatical);
ajaxResult.setRetmsg("文章新增成功");
}else {
//更新
CaseContent caseContent = caseContentMapper.selectByPrimaryKey(contentId);
if (StringUtils.isNotEmpty(contentTitle)){
caseContent.setContentTitle(contentTitle);
}
if (StringUtils.isNotEmpty(url)){
caseContent.setUrl(url);
}
if (StringUtils.isNotEmpty(content)){
caseContent.setContent(content);
}
if (null != categoryId){
caseContent.setCategoryId(categoryId);
}
caseContent.setUpdateDateTime(new Date());
caseContentMapper.updateByPrimaryKeySelective(caseContent);
if (contentMaterialJson !=null && contentAttachmentJson.size()>0){
CaseContentMaterial findCaseContentMaterial = new CaseContentMaterial();
findCaseContentMaterial.setContentId(contentId);
findCaseContentMaterial.setState(Constants.STATE_VALID);
List<CaseContentMaterial> caseContentMaterialList = caseContentMaterialMapper.select(findCaseContentMaterial);
for (CaseContentMaterial caseContentMaterial:caseContentMaterialList){
caseContentMaterial.setState(Constants.STATE_INVALID);
caseContentMaterial.setUpdateDateTime(new Date());
caseContentMaterialMapper.updateByPrimaryKeySelective(caseContentMaterial);
}
}
if (contentAttachmentJson !=null && contentAttachmentJson.size()>0 ){
CaseContentAttachment findCaseContentAttachment = new CaseContentAttachment();
findCaseContentAttachment.setContentId(contentId);
findCaseContentAttachment.setState(Constants.STATE_VALID);
List<CaseContentAttachment> caseContentAttachmentList = caseContentAttachmentMapper.select(findCaseContentAttachment);
for (CaseContentAttachment caseContentAttachment:caseContentAttachmentList){
caseContentAttachment.setState(Constants.STATE_INVALID);
caseContentAttachment.setUpdateDateTime(new Date());
caseContentAttachmentMapper.updateByPrimaryKeySelective(caseContentAttachment);
}
}
ajaxResult.setRetmsg("文章更新成功");
}
if (contentMaterialJson !=null && contentAttachmentJson.size()>0){
List<CaseContentMaterial> caseContentMaterialList = new ArrayList<>();
for (int i = 0;i<contentMaterialJson.size();i++){
CaseContentMaterial caseContentMaterial = new CaseContentMaterial();
caseContentMaterial.setContentId(contentId);
JSONObject materialJson = contentMaterialJson.getJSONObject(i);
String materialUrl = materialJson.getString("url");
caseContentMaterial.setUrl(materialUrl);
Integer type = materialJson.getInteger("type");
caseContentMaterial.setType(type);
Integer orderBy = materialJson.getInteger("orderBy");
caseContentMaterial.setOrderBy(orderBy);
caseContentMaterial.setState(Constants.STATE_VALID);
caseContentMaterial.setCreateDateTime(new Date());
caseContentMaterial.setUpdateDateTime(new Date());
caseContentMaterialList.add(caseContentMaterial);
}
caseContentMaterialMapper.insertList(caseContentMaterialList);
}
if (contentAttachmentJson !=null && contentAttachmentJson.size()>0 ){
List<CaseContentAttachment> caseContentAttachmentList = new ArrayList<>();
for (int i = 0;i<contentAttachmentJson.size(); i++ ){
CaseContentAttachment caseContentAttachment = new CaseContentAttachment();
caseContentAttachment.setContentId(contentId);
JSONObject attachmentJson =contentAttachmentJson.getJSONObject(i);
String attachmentUrl = attachmentJson.getString("attachmentUrl");
caseContentAttachment.setAttachmentUrl(attachmentUrl);
String size = attachmentJson.getString("size");
caseContentAttachment.setSize(size);
String type = attachmentJson.getString("type");
caseContentAttachment.setType(type);
String attachmentName = attachmentJson.getString("attachmentName");
caseContentAttachment.setAttachmentName(attachmentName);
caseContentAttachment.setState(Constants.STATE_VALID);
caseContentAttachment.setCreateDateTime(new Date());
caseContentAttachment.setUpdateDateTime(new Date());
caseContentAttachmentList.add(caseContentAttachment);
}
caseContentAttachmentMapper.insertList(caseContentAttachmentList);
}
ajaxResult.setRetcode(AjaxResult.SUCCESS);
return ajaxResult;
}
/**
*
* @param contentId
* @return
*/
@Override
public AjaxResult delContent(Long contentId) {
AjaxResult ajaxResult = new AjaxResult();
CaseContent caseContent = caseContentMapper.selectByPrimaryKey(contentId);
if (caseContent.getState() == Constants.STATE_INVALID){
ajaxResult.setRetmsg("文章已删除,不可重复操作");
ajaxResult.setRetcode(AjaxResult.FAILED);
}else {
caseContent.setState(Constants.STATE_INVALID);
caseContent.setUpdateDateTime(new Date());
caseContentMapper.updateByPrimaryKeySelective(caseContent);
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setRetmsg("成功删除文章");
}
return ajaxResult;
}
@Override
public PageAjax<CaseContentBakVo> searchBakContentByParam(String name, Long level1, Long level2, Long level3,Integer pageNum) {
PageHelper.startPage(pageNum, Constants.PAGE_SIZE);
List<CaseContentBakVo> caseContentBakVoList = caseContentMapper.searchBak(name,level1,level2,level3);
PageAjax<CaseContentBakVo> pageAjax = new PageAjax<>(caseContentBakVoList);
return pageAjax;
}
@Override
public CaseContentDetailBakVo getCaseContentDetailBakVoByContentID(Long contentId) {
CaseContent caseContent = caseContentMapper.selectByPrimaryKey(contentId);
CaseContentDetailBakVo caseContentDetailBakVo = new CaseContentDetailBakVo();
caseContentDetailBakVo.setId(contentId);
caseContentDetailBakVo.setCategoryId(caseContent.getCategoryId());
caseContentDetailBakVo.setContent(caseContent.getContent());
caseContentDetailBakVo.setContentTitle(caseContent.getContentTitle());
caseContentDetailBakVo.setUrl(caseContent.getUrl());
caseContentDetailBakVo.setState(caseContent.getState());
caseContentDetailBakVo.setCreateDateTime(caseContent.getCreateDateTime());
caseContentDetailBakVo.setUpdateDateTime(caseContent.getUpdateDateTime());
caseContentDetailBakVo.setCreateBy(caseContent.getCreateBy());
caseContentDetailBakVo.setUpdateBy(caseContent.getCreateBy());
CaseContentMaterial findCaseContentMaterial = new CaseContentMaterial();
findCaseContentMaterial.setContentId(contentId);
findCaseContentMaterial.setState(Constants.STATE_VALID);
List<CaseContentMaterial> caseContentMaterialList = caseContentMaterialMapper.select(findCaseContentMaterial);
caseContentDetailBakVo.setCaseContentMaterialList(caseContentMaterialList);
CaseContentAttachment findCaseContentAttachment = new CaseContentAttachment();
findCaseContentAttachment.setState(Constants.STATE_VALID);
findCaseContentAttachment.setContentId(contentId);
List<CaseContentAttachment> caseContentAttachmentList = caseContentAttachmentMapper.select(findCaseContentAttachment);
caseContentDetailBakVo.setCaseContentAttachmentList(caseContentAttachmentList);
return caseContentDetailBakVo;
}
}

@ -1,16 +1,10 @@
package com.bsd.cases.vo;
import com.bsd.cases.model.CaseCategory;
import lombok.Data;
@Data
public class CaseCategoryVo {
private String name;
private Integer level;
private Long parentId;
private String url;
public class CaseCategoryVo extends CaseCategory {
private String parentName;

@ -0,0 +1,24 @@
package com.bsd.cases.vo;
import com.bsd.cases.model.BaseEntity;
import com.bsd.cases.model.CaseCategory;
import com.bsd.cases.model.CaseContent;
import lombok.Data;
@Data
public class CaseContentBakVo extends BaseEntity {
private String contentTitle;
private String url;
private String content;
private Long categoryId;
private String categoryName;
private Long levelId2;
private Long levelId1;
}

@ -0,0 +1,16 @@
package com.bsd.cases.vo;
import com.bsd.cases.model.CaseContent;
import com.bsd.cases.model.CaseContentAttachment;
import com.bsd.cases.model.CaseContentMaterial;
import lombok.Data;
import java.util.List;
@Data
public class CaseContentDetailBakVo extends CaseContent {
private List<CaseContentMaterial> caseContentMaterialList;
private List<CaseContentAttachment> caseContentAttachmentList;
}

@ -38,6 +38,8 @@ logging:
mybatis:
type-aliases-package: com.bsd.cases.model
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
mapper:
mappers: com.bsd.cases.util.CommonMapper
not-empty: false

@ -7,4 +7,17 @@
SELECT id ,1 as type,content_title as `name`,url from case_content ) a
WHERE a.`name` LIKE CONCAT('%',#{name},'%')
</select>
<select id="searchCaseCategoryVo" resultType="com.bsd.cases.vo.CaseCategoryVo">
select ccy.id,ccy.name,ccy.level,ccy.parent_id,ccy2.name as parent_name,ccy.url,ccy.create_date_time,ccy.update_date_time,
ccy.create_by,ccy.update_by,ccy.state
FROM case_category ccy
left join case_category ccy2
on ccy.parent_id = ccy2.id
where
1 = 1 and ccy.state = 1
<if test="name != null and name != ''">
and ccy.`name` LIKE CONCAT('%',#{name},'%')
</if>
</select>
</mapper>

@ -1,5 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bsd.cases.mapper.CaseContentMapper">
<select id="searchBak" resultType="com.bsd.cases.vo.CaseContentBakVo">
SELECT a.id,a.content_title,a.url,a.content,a.category_id,a.level3_name as category_name,a.create_date_time,a.update_date_time,a.create_by,a.update_by,
a.state,a.`level_id2`,ccy.parent_id as `level_id1`
FROM (select cc.`id`,cc.`content_title`,cc.`url`,cc.`content`,cc.`category_id`,ccy.`name` as level3_name,
cc.`create_date_time`,cc.`update_date_time`,cc.`create_by`,cc.`update_by`,cc.`state`,ccy.parent_id as level_id2
FROM case_content cc
left join case_category ccy
on ccy.id = cc.category_id) a
left join case_category ccy
on a.level_id2 = ccy.id
WHERE
1 = 1 AND a.state = 1
<if test="level1Id != null">
AND ccy.parent_id = #{level1Id}
</if>
<if test="level2Id != null">
AND a.`level2_id` = #{level2Id}
</if>
<if test="level3Id != null">
and a.category_id = #{level3Id}
</if>
<if test="name != null and name != ''">
and a.`content_title` LIKE CONCAT('%',#{name},'%')
</if>
</select>
</mapper>

Loading…
Cancel
Save