官网 修改新闻详情

This commit is contained in:
liuxiao 2024-07-10 09:55:04 +08:00
parent 97a246dcc1
commit c051cc1d7b
5 changed files with 37 additions and 101 deletions

View File

@ -41,10 +41,8 @@ public class GwLableController extends BaseController {
private final IGwLableService iGwLableService;
/**
* 查询标签封面信息
列表
* 查询标签封面信息列表
*/
@SaCheckPermission("official:lable:list")
@GetMapping("/list")
public TableDataInfo<GwLableVo> list(GwLableBo bo, PageQuery pageQuery) {
return iGwLableService.queryPageList(bo, pageQuery);

View File

@ -41,8 +41,7 @@ public class GwSlideshowController extends BaseController {
private final IGwSlideshowService iGwSlideshowService;
/**
* 查询新闻信息
列表
* 查询新闻信息列表
*/
@SaCheckPermission("official:slideshow:list")
@GetMapping("/list")
@ -67,7 +66,7 @@ public class GwSlideshowController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("official:slideshow:query")
/*@SaCheckPermission("official:slideshow:query")*/
@GetMapping("/{id}")
public R<GwSlideshowVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return R.ok(iGwSlideshowService.queryById(id));

View File

@ -71,17 +71,4 @@ public class GwSlideshowBo extends BaseEntity {
@NotBlank(message = "是否置顶 0否 1是不能为空", groups = { AddGroup.class, EditGroup.class })
private String isTop;
/**
* 创建者id
*/
@NotNull(message = "创建者id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long createUserId;
/**
* 更新者id
*/
@NotNull(message = "更新者id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long updateUserId;
}

View File

@ -17,16 +17,13 @@ import com.ruoyi.official.domain.GwSlideshow;
import com.ruoyi.official.mapper.GwSlideshowMapper;
import com.ruoyi.official.service.IGwSlideshowService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
* 新闻信息
Service业务层处理
* Service业务层处理
*
* @author ruoyi
* @date 2024-06-19
@ -39,25 +36,29 @@ public class GwSlideshowServiceImpl implements IGwSlideshowService {
/**
* 查询新闻信息
*/
@Override
public GwSlideshowVo queryById(Long id){
public GwSlideshowVo queryById(Long id) {
GwSlideshowVo gwSlideshowVo = baseMapper.selectVoById(id);
//查询详情时返回上一篇下一篇处理
List<GwSlideshow> list = baseMapper.selectList(Wrappers.<GwSlideshow>lambdaQuery().orderByDesc(GwSlideshow::getCreateTime));
getPrevNextArticles(id, gwSlideshowVo, list);
return gwSlideshowVo;
}
private Map<String, Object> getPrevNextArticles(Long id, GwSlideshowVo gwSlideshowVo, List<GwSlideshow> list) {
Map<String, Object> hashMap = new HashMap<>(16);
if(CollUtil.isNotEmpty(list)&&list.size()>1){
List<Long> collect = list.stream().map(GwSlideshow::getId).collect(Collectors.toList());
if (collect.contains(id)){
int currentSubscript = collect.indexOf(id);
hashMap.put("previous",ObjectUtil.isNotEmpty(list.get(currentSubscript-1))?list.get(currentSubscript-1):null);
hashMap.put("nextArticle",ObjectUtil.isNotEmpty(list.get(currentSubscript-1))?list.get(currentSubscript+1):null);
gwSlideshowVo.setSlideshowMap(hashMap);
}
if (CollUtil.isEmpty(list)) return hashMap;
Optional<GwSlideshow> first = list.stream().filter(itx -> Objects.equals(itx.getId(), id)).findFirst();
if (first.isPresent()) {
int index = list.indexOf(first.get());
if (index > 0) hashMap.put("previous", list.get(index - 1));
if (index < list.size() - 1) hashMap.put("nextArticle", list.get(index + 1));
}
return gwSlideshowVo;
gwSlideshowVo.setSlideshowMap(hashMap);
return hashMap;
}
/**
@ -89,15 +90,12 @@ public class GwSlideshowServiceImpl implements IGwSlideshowService {
lqw.eq(StringUtils.isNotBlank(bo.getNewsContent()), GwSlideshow::getNewsContent, bo.getNewsContent());
lqw.eq(StringUtils.isNotBlank(bo.getAbstracts()), GwSlideshow::getAbstracts, bo.getAbstracts());
lqw.eq(StringUtils.isNotBlank(bo.getIsTop()), GwSlideshow::getIsTop, bo.getIsTop());
lqw.eq(bo.getCreateUserId() != null, GwSlideshow::getCreateUserId, bo.getCreateUserId());
lqw.eq(bo.getUpdateUserId() != null, GwSlideshow::getUpdateUserId, bo.getUpdateUserId());
lqw.orderByDesc(GwSlideshow::getCreateTime);
return lqw;
}
/**
* 新增新闻信息
*/
@Override
public Boolean insertByBo(GwSlideshowBo bo) {
@ -112,7 +110,6 @@ public class GwSlideshowServiceImpl implements IGwSlideshowService {
/**
* 修改新闻信息
*/
@Override
public Boolean updateByBo(GwSlideshowBo bo) {
@ -124,28 +121,27 @@ public class GwSlideshowServiceImpl implements IGwSlideshowService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(GwSlideshow entity){
private void validEntityBeforeSave(GwSlideshow entity) {
//TODO 做一些数据校验,如唯一约束
//存在已置顶的数据不允许添加编辑
if (ObjectUtil.isNotEmpty(entity.getId())){
if (ObjectUtil.isNotEmpty(entity.getId())) {
//编辑
boolean exists = baseMapper.exists(Wrappers.<GwSlideshow>lambdaQuery().eq(GwSlideshow::getIsTop, "1"));
if (exists)throw new RuntimeException("已存在置顶的图片信息!");
}else {
if (exists && entity.getIsTop().equals("1")) throw new RuntimeException("已存在置顶的图片信息!");
} else {
//新增
boolean exists = baseMapper.exists(Wrappers.<GwSlideshow>lambdaQuery().eq(GwSlideshow::getIsTop, "1"));
if (exists)throw new RuntimeException("已存在置顶的图片信息!");
if (exists && entity.getIsTop().equals("1")) throw new RuntimeException("已存在置顶的图片信息!");
}
}
/**
* 批量删除新闻信息
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;

View File

@ -1,14 +1,7 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="封面" prop="cover">
<el-input
v-model="queryParams.cover"
placeholder="请输入封面"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="标题名称" prop="captionName">
<el-input
v-model="queryParams.captionName"
@ -33,38 +26,15 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="摘要" prop="abstract">
<el-form-item label="摘要" prop="abstracts">
<el-input
v-model="queryParams.abstract"
v-model="queryParams.abstracts"
placeholder="请输入摘要"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否置顶 0否 1是" prop="isTop">
<el-input
v-model="queryParams.isTop"
placeholder="请输入是否置顶 0否 1是"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建者id" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建者id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="更新者id" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入更新者id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -119,7 +89,7 @@
<el-table v-loading="loading" :data="slideshowList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键id" align="center" prop="id" v-if="true"/>
<el-table-column label="主键id" align="center" prop="id" v-if="false"/>
<el-table-column label="封面" align="center" prop="cover" />
<el-table-column label="标题名称" align="center" prop="captionName" />
<el-table-column label="发布时间" align="center" prop="releaseTime" width="180">
@ -129,7 +99,7 @@
</el-table-column>
<el-table-column label="集团名称" align="center" prop="groupName" />
<el-table-column label="新闻内容" align="center" prop="newsContent" />
<el-table-column label="摘要" align="center" prop="abstract" />
<el-table-column label="摘要" align="center" prop="abstracts" />
<el-table-column label="是否置顶 0否 1是" align="center" prop="isTop" />
<el-table-column label="创建者id" align="center" prop="createUserId" />
<el-table-column label="更新者id" align="center" prop="updateUserId" />
@ -185,18 +155,12 @@
<el-form-item label="新闻内容">
<editor v-model="form.newsContent" :min-height="192"/>
</el-form-item>
<el-form-item label="摘要" prop="abstract">
<el-input v-model="form.abstract" placeholder="请输入摘要" />
<el-form-item label="摘要" prop="abstracts">
<el-input v-model="form.abstracts" placeholder="请输入摘要" />
</el-form-item>
<el-form-item label="是否置顶 0否 1是" prop="isTop">
<el-input v-model="form.isTop" placeholder="请输入是否置顶 0否 1是" />
</el-form-item>
<el-form-item label="创建者id" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建者id" />
</el-form-item>
<el-form-item label="更新者id" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入更新者id" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
@ -242,10 +206,8 @@ export default {
releaseTime: undefined,
groupName: undefined,
newsContent: undefined,
abstract: undefined,
abstracts: undefined,
isTop: undefined,
createUserId: undefined,
updateUserId: undefined,
},
//
form: {},
@ -269,18 +231,12 @@ export default {
newsContent: [
{ required: true, message: "新闻内容不能为空", trigger: "blur" }
],
abstract: [
abstracts: [
{ required: true, message: "摘要不能为空", trigger: "blur" }
],
isTop: [
{ required: true, message: "是否置顶 0否 1是不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建者id不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "更新者id不能为空", trigger: "blur" }
],
}
};
},
@ -312,7 +268,7 @@ export default {
releaseTime: undefined,
groupName: undefined,
newsContent: undefined,
abstract: undefined,
abstracts: undefined,
isTop: undefined,
createBy: undefined,
createUserId: undefined,