src/main/java/com/xcong/farmer/cms/configurations/security/WebSecurityConfig.java
@@ -53,6 +53,8 @@ .antMatchers("/api/common/doUpload").permitAll() .antMatchers("/api/common/uploadFile").permitAll() .antMatchers("/api/messageBoard/addMessage").permitAll() .antMatchers("/api/article/webArticleInPage").permitAll() .antMatchers("/api/column/webColumnInList").permitAll() .antMatchers("/image/**").permitAll() .anyRequest().authenticated() .and().apply(securityConfiguereAdapter()); src/main/java/com/xcong/farmer/cms/modules/system/controller/AdminArticleController.java
@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; @RestController @@ -81,4 +82,10 @@ public Result delObjs(@RequestBody @Valid AdminDeleteDto adminDeleteDto) { return iArticleService.delObjs(adminDeleteDto); } @ApiOperation(value = "网站文章分页列表查询", notes = "网站文章分页列表查询") @PostMapping(value = "/webArticleInPage") public Result webArticleInPage(HttpServletRequest request, @RequestBody @Valid WebArticleInPageDto webArticleInPageDto) { return iArticleService.webArticleInPage(request,webArticleInPageDto); } } src/main/java/com/xcong/farmer/cms/modules/system/controller/AdminColumnController.java
@@ -5,6 +5,7 @@ import com.xcong.farmer.cms.modules.system.service.IColumnService; import com.xcong.farmer.cms.modules.system.vo.AdminColumnVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeColumnInfoVo; import com.xcong.farmer.cms.modules.system.vo.WebColumnVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; @@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; @RestController @@ -65,4 +67,11 @@ return iColumnService.delObjs(adminDeleteDto); } @ApiOperation(value = "网页栏目列表", notes = "网页栏目列表") @ApiResponses({@ApiResponse(code = 200, message = "ok", response = WebColumnVo.class)}) @GetMapping(value = "/webColumnInList") public Result webColumnInList(HttpServletRequest request) { return iColumnService.getWebColumnInList(request); } } src/main/java/com/xcong/farmer/cms/modules/system/dto/WebArticleInPageDto.java
New file @@ -0,0 +1,50 @@ package com.xcong.farmer.cms.modules.system.dto; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @Data @ApiModel(value = "WebArticleInPageDto", description = "参数接收类") public class WebArticleInPageDto { @ApiModelProperty(value = "作者", example = "张") private String author; @ApiModelProperty(value = "关键词", example = "关于") private String queryKey; @ApiModelProperty(value = "栏目ID", example = "1") private Long columnId; @ApiModelProperty(value = "每页条数", example = "10") private Integer pageSize; @ApiModelProperty(value = "第几页", example = "1") private Integer pageNum; @ApiModelProperty(value = "一周内,一月内,一年内", example = "一月内") private String timeType; public String getTimeType() { if (this.timeType == null) { return null; } switch (this.timeType) { case "一周内" : return DateUtil.formatDateTime(DateUtil.offsetDay(new Date(),-7)); case "一月内" : return DateUtil.formatDateTime(DateUtil.offsetMonth(new Date(),-1)); case "一年内" : return DateUtil.formatDateTime(DateUtil.offsetMonth(new Date(),-12)); default: return null; } } } src/main/java/com/xcong/farmer/cms/modules/system/mapper/ArticleMapper.java
@@ -6,6 +6,7 @@ import com.xcong.farmer.cms.modules.system.entity.ArticleEntity; import com.xcong.farmer.cms.modules.system.vo.AdminArticleVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeArticleInfoVo; import com.xcong.farmer.cms.modules.system.vo.WebArticleVo; import io.swagger.models.auth.In; import org.apache.ibatis.annotations.Param; @@ -22,4 +23,6 @@ ArticleEntity selectArticleById(@Param("id") Long id); IPage<ArticleEntity> selectArticleInPage(Page<ArticleEntity> page, @Param("record") ArticleEntity article); IPage<WebArticleVo> selectWebArticleInPage(Page<WebArticleVo> page, ArticleEntity articleEntity); } src/main/java/com/xcong/farmer/cms/modules/system/mapper/ColumnMapper.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xcong.farmer.cms.modules.system.entity.ColumnEntity; import com.xcong.farmer.cms.modules.system.vo.AdminColumnVo; import com.xcong.farmer.cms.modules.system.vo.WebColumnVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -20,4 +21,6 @@ List<ColumnEntity> selectColumnByParentId(@Param("parentId") Long parentId, @Param("companyId") Long companyId); IPage<ColumnEntity> selectColumnInPage(Page<ColumnEntity> page, @Param("record") ColumnEntity column); List<WebColumnVo> selectWebColumnInListByParentId(@Param("parentId") Long parentidDefault, @Param("companyId") Long companyId); } src/main/java/com/xcong/farmer/cms/modules/system/service/IArticleService.java
@@ -2,11 +2,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.xcong.farmer.cms.common.response.Result; import com.xcong.farmer.cms.modules.system.dto.AdminAddArticleDto; import com.xcong.farmer.cms.modules.system.dto.AdminArticleDto; import com.xcong.farmer.cms.modules.system.dto.AdminDeleteDto; import com.xcong.farmer.cms.modules.system.dto.AdminUpdateArticleDto; import com.xcong.farmer.cms.modules.system.dto.*; import com.xcong.farmer.cms.modules.system.entity.ArticleEntity; import javax.servlet.http.HttpServletRequest; public interface IArticleService extends IService<ArticleEntity> { @@ -30,4 +29,5 @@ Result updateIstopOff(Long id); Result webArticleInPage(HttpServletRequest request, WebArticleInPageDto webArticleInPageDto); } src/main/java/com/xcong/farmer/cms/modules/system/service/IColumnService.java
@@ -8,6 +8,8 @@ import com.xcong.farmer.cms.modules.system.dto.AdminUpdateColumnDto; import com.xcong.farmer.cms.modules.system.entity.ColumnEntity; import javax.servlet.http.HttpServletRequest; public interface IColumnService extends IService<ColumnEntity> { Result getColumnInPage(AdminColumnDto adminColumnDto); @@ -23,4 +25,6 @@ Result getColumnInList(); Result delObjs(AdminDeleteDto adminDeleteDto); Result getWebColumnInList(HttpServletRequest request); } src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java
@@ -8,20 +8,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.farmer.cms.common.response.Result; import com.xcong.farmer.cms.modules.core.service.ICmsCoreService; import com.xcong.farmer.cms.modules.system.dto.AdminAddArticleDto; import com.xcong.farmer.cms.modules.system.dto.AdminArticleDto; import com.xcong.farmer.cms.modules.system.dto.AdminDeleteDto; import com.xcong.farmer.cms.modules.system.dto.AdminUpdateArticleDto; import com.xcong.farmer.cms.modules.system.entity.ArticleEntity; import com.xcong.farmer.cms.modules.system.entity.ColumnEntity; import com.xcong.farmer.cms.modules.system.entity.UserEntity; import com.xcong.farmer.cms.modules.system.entity.UserRoleEntity; import com.xcong.farmer.cms.modules.system.dto.*; import com.xcong.farmer.cms.modules.system.entity.*; import com.xcong.farmer.cms.modules.system.mapper.ArticleMapper; import com.xcong.farmer.cms.modules.system.mapper.ColumnMapper; import com.xcong.farmer.cms.modules.system.mapper.CompanyMapper; import com.xcong.farmer.cms.modules.system.service.IArticleService; import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; import com.xcong.farmer.cms.modules.system.vo.AdminArticleVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeArticleInfoVo; import com.xcong.farmer.cms.modules.system.vo.WebArticleVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -35,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @Service @Slf4j @@ -42,6 +39,9 @@ @Resource private ColumnMapper columnMapper; @Resource private CompanyMapper companyMapper; @Autowired private ICmsCoreService cmsCoreService; @@ -116,6 +116,9 @@ articleEntity.setIsTop(isTop); Integer releaseStatus = adminAddArticleDto.getReleaseStatus(); articleEntity.setReleaseStatus(releaseStatus); if(ArticleEntity.RELEASE_STATUS_YES == releaseStatus){ articleEntity.setReleaseTime(new Date()); } String articleDetails = adminAddArticleDto.getArticleDetails(); articleEntity.setArticleDetails(articleDetails); String uploadFile = adminAddArticleDto.getUploadFile(); @@ -160,8 +163,6 @@ } Integer isTop = adminUpdateArticleDto.getIsTop(); articleEntity.setIsTop(isTop); Integer releaseStatus = adminUpdateArticleDto.getReleaseStatus(); articleEntity.setReleaseStatus(releaseStatus); String title = adminUpdateArticleDto.getTitle(); articleEntity.setTitle(title); String childTitle = adminUpdateArticleDto.getChildTitle(); @@ -187,7 +188,11 @@ if(ObjectUtil.isNotEmpty(releaseTime)){ articleEntity.setReleaseTime(releaseTime); } Integer releaseStatus = adminUpdateArticleDto.getReleaseStatus(); articleEntity.setReleaseStatus(releaseStatus); if(ArticleEntity.RELEASE_STATUS_YES == releaseStatus){ articleEntity.setReleaseTime(new Date()); } String articleDetails = adminUpdateArticleDto.getArticleDetails(); articleEntity.setArticleDetails(articleDetails); String uploadFile = adminUpdateArticleDto.getUploadFile(); @@ -196,6 +201,8 @@ articleEntity.setArticleUrl(adminUpdateArticleDto.getArticleUrl()); articleEntity.setType(adminUpdateArticleDto.getType()); articleEntity.setContentType(adminUpdateArticleDto.getContentType()); String authorBelong = adminUpdateArticleDto.getAuthorBelong(); articleEntity.setAuthorBelong(authorBelong); this.baseMapper.updateById(articleEntity); return Result.ok("更新成功"); } @@ -250,12 +257,48 @@ } @Override public Result webArticleInPage(HttpServletRequest request, WebArticleInPageDto webArticleInPageDto) { StringBuffer requestURL = request.getRequestURL(); List<CompanyEntity> companyEntities = companyMapper.selectList(new QueryWrapper<>()); Long companyId = 0L; if(CollUtil.isNotEmpty(companyEntities)){ for(CompanyEntity companyEntity : companyEntities){ boolean contains = StrUtil.contains(requestURL, companyEntity.getWebAddress()); if(contains){ companyId = companyEntity.getId(); } } } Page<WebArticleVo> page = new Page<>(webArticleInPageDto.getPageNum(), webArticleInPageDto.getPageSize()); ArticleEntity articleEntity = new ArticleEntity(); Long columnId = webArticleInPageDto.getColumnId() == null ? 0L : webArticleInPageDto.getColumnId(); if(columnId != 0L){ articleEntity.setColumnId(columnId); } String author = webArticleInPageDto.getAuthor(); if(StrUtil.isNotEmpty(author)){ articleEntity.setAuthor(author); } String queryKey = webArticleInPageDto.getQueryKey(); if(StrUtil.isNotEmpty(queryKey)){ articleEntity.setTitle(queryKey); } if(UserEntity.USER_BELONG_TOP != companyId){ articleEntity.setCompanyId(companyId); } IPage<WebArticleVo> list = this.baseMapper.selectWebArticleInPage(page,articleEntity); return Result.ok(list); } @Override public Result updateStatusOn(Long id) { ArticleEntity articleEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } articleEntity.setReleaseStatus(ArticleEntity.RELEASE_STATUS_YES); articleEntity.setReleaseTime(new Date()); this.baseMapper.updateById(articleEntity); return Result.ok("操作成功"); } src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java
@@ -11,16 +11,15 @@ import com.xcong.farmer.cms.modules.system.dto.AdminColumnDto; import com.xcong.farmer.cms.modules.system.dto.AdminDeleteDto; import com.xcong.farmer.cms.modules.system.dto.AdminUpdateColumnDto; import com.xcong.farmer.cms.modules.system.entity.ArticleEntity; import com.xcong.farmer.cms.modules.system.entity.ColumnEntity; import com.xcong.farmer.cms.modules.system.entity.NavigationBarEntity; import com.xcong.farmer.cms.modules.system.entity.UserEntity; import com.xcong.farmer.cms.modules.system.entity.*; import com.xcong.farmer.cms.modules.system.mapper.ArticleMapper; import com.xcong.farmer.cms.modules.system.mapper.ColumnMapper; import com.xcong.farmer.cms.modules.system.mapper.CompanyMapper; import com.xcong.farmer.cms.modules.system.service.IColumnService; import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; import com.xcong.farmer.cms.modules.system.vo.AdminColumnVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeColumnInfoVo; import com.xcong.farmer.cms.modules.system.vo.WebColumnVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,6 +28,7 @@ import cn.hutool.core.util.ObjectUtil; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; @@ -38,6 +38,8 @@ @Autowired private ArticleMapper articleMapper; @Autowired private CompanyMapper companyMapper; @Override public Result getColumnInPage(AdminColumnDto adminColumnDto) { @@ -277,4 +279,41 @@ } return Result.ok("删除成功"); } @Override public Result getWebColumnInList(HttpServletRequest request) { StringBuffer requestURL = request.getRequestURL(); List<CompanyEntity> companyEntities = companyMapper.selectList(new QueryWrapper<>()); Long companyId = 0L; if(CollUtil.isNotEmpty(companyEntities)){ for(CompanyEntity companyEntity : companyEntities){ boolean contains = StrUtil.contains(requestURL, companyEntity.getWebAddress()); if(contains){ companyId = companyEntity.getId(); } } } List<WebColumnVo> records = this.baseMapper.selectWebColumnInListByParentId(ColumnEntity.PARENTID_DEFAULT,companyId); if(CollUtil.isNotEmpty(records)){ for(WebColumnVo webColumnVo : records){ Long id = webColumnVo.getId(); QueryWrapper<ColumnEntity> objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("parent_id",id); objectQueryWrapper.eq("company_id",companyId); List<ColumnEntity> columnEntities = this.baseMapper.selectList(objectQueryWrapper); List<WebColumnVo> adminColumnVoChilds = new ArrayList<>(); if(CollUtil.isNotEmpty(columnEntities)){ for(ColumnEntity columnEntityChild : columnEntities){ WebColumnVo child = new WebColumnVo(); child.setId(columnEntityChild.getId()); child.setColumnName(columnEntityChild.getColumnName()); child.setColumnCode(columnEntityChild.getColumnCode()); adminColumnVoChilds.add(child); } } webColumnVo.setChild(adminColumnVoChilds); } } return Result.ok(records); } } src/main/java/com/xcong/farmer/cms/modules/system/vo/WebArticleVo.java
New file @@ -0,0 +1,53 @@ package com.xcong.farmer.cms.modules.system.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @Data @ApiModel(value = "WebArticleVo", description = "返回") public class WebArticleVo { private Long id; @ApiModelProperty(value = "标题") private String title; @ApiModelProperty(value = "标题") private String childTitle; @ApiModelProperty(value = "作者") private String author; @ApiModelProperty(value = "作者所属单位") private String authorBelong; @ApiModelProperty(value = "描述") private String remark; @ApiModelProperty(value = "所属栏目名称") private String columnName; @ApiModelProperty(value = "访问量") private Integer visits; @ApiModelProperty(value = "主图") private String mainDiagram; @ApiModelProperty(value = "图集") private String atlas; @ApiModelProperty(value = "发布时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date releaseTime; @ApiModelProperty(value = "设置成热门文章 0:否 1:是") private Integer isTop; @ApiModelProperty(value = "文章详情") private String articleDetails; } src/main/java/com/xcong/farmer/cms/modules/system/vo/WebColumnVo.java
New file @@ -0,0 +1,23 @@ package com.xcong.farmer.cms.modules.system.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "WebColumnVo", description = "返回") public class WebColumnVo { private Long id; @ApiModelProperty(value = "栏目名称") private String columnName; @ApiModelProperty(value = "栏目编码") private String columnCode; @ApiModelProperty(value = "子菜单") private List<WebColumnVo> child; } src/main/resources/mapper/ArticleMapper.xml
@@ -82,4 +82,35 @@ </if> </where> </select> <select id="selectWebArticleInPage" resultType="com.xcong.farmer.cms.modules.system.vo.WebArticleVo"> SELECT a.*, b.column_name columnName FROM t_article a left join t_column b on a.column_id = b.id <where> and a.del_status = 1 and a.release_status = 1 <if test="record != null" > <if test="record.companyId != null"> and a.company_id = #{record.companyId} </if> <if test="record.columnId != null"> and a.column_id = #{record.columnId} </if> <if test="record.title!=null"> and a.title like concat ('%',#{record.title},'%') </if> <if test="record.author!=null"> and a.author like concat ('%',#{record.author},'%') </if> <if test="record.timeType!=null"> and a.release_time > #{record.timeType} </if> </if> </where> order by a.is_top desc,a.create_time desc </select> </mapper> src/main/resources/mapper/ColumnMapper.xml
@@ -51,4 +51,14 @@ </foreach> </if> </select> <select id="selectWebColumnInListByParentId" resultType="com.xcong.farmer.cms.modules.system.vo.WebColumnVo"> SELECT a.* FROM t_column a where a.parent_id = #{parentId} and a.company_id = #{companyId} order by a.order_num ASC,a.create_time desc </select> </mapper> src/test/java/com/xcong/farmer/cms/KssframeworkApplicationTests.java
@@ -4,6 +4,7 @@ import com.xcong.farmer.cms.common.response.Result; import com.xcong.farmer.cms.common.utils.FileUtils; import com.xcong.farmer.cms.configurations.properties.CmsProperties; import com.xcong.farmer.cms.modules.system.dto.WebArticleInPageDto; import com.xcong.farmer.cms.modules.system.entity.CmsTemplateEntity; import com.xcong.farmer.cms.modules.system.mapper.CmsTemplateMapper; import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; @@ -90,6 +91,23 @@ String pathName = FileUtils.path(templatePath, cmsTemplateEntity.getPath()); System.out.println(templatePath); System.out.println(pathName); byte[] bytes = new byte[0]; try { bytes = Files.readAllBytes(Paths.get(pathName)); } catch (IOException e) { e.printStackTrace(); System.out.println("未找到模板"); } String content = new String(bytes, StandardCharsets.UTF_8); System.out.println(content); } @Test public void dateTest(){ WebArticleInPageDto webArticleInPageDto = new WebArticleInPageDto(); webArticleInPageDto.setTimeType("一周内"); System.out.println(webArticleInPageDto.getTimeType()); } }