Browse Source

监督端-公告管理

dev-V1.0.1
niujiyi 5 months ago
parent
commit
50dc46d735
  1. 31
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/SysNoticeInfoController.java
  2. 3
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementCarouselBannerBo.java
  3. 3
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/SysNoticeInfoBo.java
  4. 12
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/SysNoticeInfoVo.java
  5. 10
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementCarouselBannerServiceImpl.java
  6. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementEducationServicesServiceImpl.java
  7. 89
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/SysNoticeInfoServiceImpl.java

31
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/SysNoticeInfoController.java

@ -2,6 +2,7 @@ package com.zdxt.enforcementcode.controller.web.supervision;
import java.util.List;
import cn.dev33.satoken.annotation.SaIgnore;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
@ -39,7 +40,7 @@ public class SysNoticeInfoController extends BaseController {
/**
* 查询系统公告信息主列表
*/
@SaCheckPermission("enforcementcode:noticeInfo:list")
@SaIgnore
@GetMapping("/list")
public TableDataInfo<SysNoticeInfoVo> list(SysNoticeInfoBo bo, PageQuery pageQuery) {
return sysNoticeInfoService.queryPageList(bo, pageQuery);
@ -61,32 +62,29 @@ public class SysNoticeInfoController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("enforcementcode:noticeInfo:query")
@GetMapping("/{id}")
public R<SysNoticeInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
@SaIgnore
@GetMapping("/getInfo")
public R<SysNoticeInfoVo> getInfo(String id) {
return R.ok(sysNoticeInfoService.queryById(id));
}
/**
* 新增系统公告信息主
*/
@SaCheckPermission("enforcementcode:noticeInfo:add")
@SaIgnore
@Log(title = "系统公告信息主", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysNoticeInfoBo bo) {
@PostMapping("/add")
public R<Void> add(@RequestBody SysNoticeInfoBo bo) {
return toAjax(sysNoticeInfoService.insertByBo(bo));
}
/**
* 修改系统公告信息主
*/
@SaCheckPermission("enforcementcode:noticeInfo:edit")
@SaIgnore
@Log(title = "系统公告信息主", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysNoticeInfoBo bo) {
@PostMapping("/edit")
public R<Void> edit(@RequestBody SysNoticeInfoBo bo) {
return toAjax(sysNoticeInfoService.updateByBo(bo));
}
@ -95,11 +93,10 @@ public class SysNoticeInfoController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("enforcementcode:noticeInfo:remove")
@SaIgnore
@Log(title = "系统公告信息主", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
@GetMapping("/remove")
public R<Void> remove(String[] ids) {
return toAjax(sysNoticeInfoService.deleteWithValidByIds(List.of(ids), true));
}
}

3
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementCarouselBannerBo.java

@ -132,5 +132,8 @@ public class EnforcementCarouselBannerBo extends BaseEntity {
*/
private List<ZdxtFileBo> fileList;
private Date startTime;
private Date endTime;
}

3
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/SysNoticeInfoBo.java

@ -93,5 +93,8 @@ public class SysNoticeInfoBo extends BaseEntity {
*/
private String remark;
private Date startTime;
private Date endTime;
}

12
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/SysNoticeInfoVo.java

@ -58,12 +58,24 @@ public class SysNoticeInfoVo implements Serializable {
@ExcelProperty(value = "内容发布到 1-企业端 2-执法端 3-监督端 0-全部")
private Integer targetPlatform;
/**
* 发布平台标签(字典翻译)
*/
@ExcelProperty(value = "发布平台名称")
private String targetPlatformLabel;
/**
* 状态 1-待发布 2-已发布 3-已下架
*/
@ExcelProperty(value = "状态 1-待发布 2-已发布 3-已下架")
private Integer status;
/**
* 状态名称(字典翻译)
*/
@ExcelProperty(value = "状态名称")
private String statusLabel;
/**
* 有效时间(由发布时间+显示天数计算,默认为空)
*/

10
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementCarouselBannerServiceImpl.java

@ -1,6 +1,7 @@
package com.zdxt.enforcementcode.service.impl;
import com.zdxt.enforcementcode.domain.bean.EnforcementCarouselBanner;
import com.zdxt.enforcementcode.domain.bean.SysNoticeInfo;
import com.zdxt.enforcementcode.domain.bo.ZdxtFileBo;
import com.zdxt.enforcementcode.domain.vo.EnforcementEducationServicesVo;
import com.zdxt.enforcementcode.domain.vo.ZdxtFileVo;
@ -142,7 +143,7 @@ public class EnforcementCarouselBannerServiceImpl implements IEnforcementCarouse
} else {
lqw.eq(bo.getTargetPlatform() != null, EnforcementCarouselBanner::getTargetPlatform, bo.getTargetPlatform());
}
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), EnforcementCarouselBanner::getTitle, bo.getTitle());
lqw.like(StringUtils.isNotBlank(bo.getTitle()), EnforcementCarouselBanner::getTitle, bo.getTitle());
lqw.eq(bo.getTargetPlatform() != null, EnforcementCarouselBanner::getTargetPlatform, bo.getTargetPlatform());
lqw.eq(bo.getCarouselPosition() != null, EnforcementCarouselBanner::getCarouselPosition, bo.getCarouselPosition());
lqw.eq(bo.getDisplayDays() != null, EnforcementCarouselBanner::getDisplayDays, bo.getDisplayDays());
@ -158,6 +159,13 @@ public class EnforcementCarouselBannerServiceImpl implements IEnforcementCarouse
lqw.like(StringUtils.isNotBlank(bo.getCreateByName()), EnforcementCarouselBanner::getCreateByName, bo.getCreateByName());
lqw.like(StringUtils.isNotBlank(bo.getUpdateByName()), EnforcementCarouselBanner::getUpdateByName, bo.getUpdateByName());
lqw.eq(bo.getIsDelete() != null, EnforcementCarouselBanner::getIsDelete, bo.getIsDelete());
// 发布时间根据开始时间和结束时间进行范围过滤
if (bo.getStartTime() != null) {
lqw.ge(EnforcementCarouselBanner::getCreateTime, bo.getStartTime());
}
if (bo.getEndTime() != null) {
lqw.le(EnforcementCarouselBanner::getCreateTime, bo.getEndTime());
}
return lqw;
}

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementEducationServicesServiceImpl.java

@ -243,7 +243,7 @@ public class EnforcementEducationServicesServiceImpl implements IEnforcementEduc
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EnforcementEducationServices> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(EnforcementEducationServices::getId);
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), EnforcementEducationServices::getTitle, bo.getTitle());
lqw.like(StringUtils.isNotBlank(bo.getTitle()), EnforcementEducationServices::getTitle, bo.getTitle());
lqw.eq(StringUtils.isNotBlank(bo.getPublishDeptIds()), EnforcementEducationServices::getPublishDeptIds, bo.getPublishDeptIds());
lqw.like(StringUtils.isNotBlank(bo.getPublishDeptNames()), EnforcementEducationServices::getPublishDeptNames, bo.getPublishDeptNames());
lqw.eq(bo.getTargetPlatform() != null, EnforcementEducationServices::getTargetPlatform, bo.getTargetPlatform());

89
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/SysNoticeInfoServiceImpl.java

@ -3,6 +3,8 @@ package com.zdxt.enforcementcode.service.impl;
import cn.hutool.core.util.IdUtil;
import com.zdxt.enforcementcode.domain.bean.SysNoticeInfo;
import com.zdxt.enforcementcode.domain.bo.enterprise.EnterpriseNoticeListInfoBo;
import com.zdxt.enforcementcode.domain.vo.EnforcementCarouselBannerVo;
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -12,12 +14,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.satoken.utils.LoginHelper;
import org.springframework.stereotype.Service;
import com.zdxt.enforcementcode.domain.bo.SysNoticeInfoBo;
import com.zdxt.enforcementcode.domain.vo.SysNoticeInfoVo;
import com.zdxt.enforcementcode.mapper.SysNoticeInfoMapper;
import com.zdxt.enforcementcode.service.ISysNoticeInfoService;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Collection;
@ -34,7 +38,7 @@ import java.util.Collection;
public class SysNoticeInfoServiceImpl implements ISysNoticeInfoService {
private final SysNoticeInfoMapper baseMapper;
private final DictService dictService;
/**
* 企业端-系统公告信息主列表
* @param bo
@ -53,7 +57,46 @@ public class SysNoticeInfoServiceImpl implements ISysNoticeInfoService {
*/
@Override
public SysNoticeInfoVo queryById(String id){
return baseMapper.selectVoById(id);
SysNoticeInfoVo sysNoticeInfoVo = baseMapper.selectVoById(id);
// 设置字典标签
setDictLabels(sysNoticeInfoVo);
return sysNoticeInfoVo;
}
/**
* 为列表设置字典标签
*
* @param records 记录列表
*/
private void setDictLabels(List<SysNoticeInfoVo> records) {
if (records == null || records.isEmpty()) {
return;
}
records.forEach(this::setDictLabels);
}
/**
* 为单条记录设置字典标签
*
* @param vo 记录对象
*/
private void setDictLabels(SysNoticeInfoVo vo) {
if (vo == null) {
return;
}
// 发布平台标签
if (vo.getTargetPlatform() != null) {
String targetPlatformLabel = dictService.getDictLabel("web_publishing_platform", vo.getTargetPlatform().toString());
vo.setTargetPlatformLabel(targetPlatformLabel);
}
//状态标签
if(vo.getStatus()!=null){
String statusLabel = dictService.getDictLabel("web_status", vo.getStatus().toString());
vo.setStatusLabel(statusLabel);
}
}
/**
@ -67,6 +110,10 @@ public class SysNoticeInfoServiceImpl implements ISysNoticeInfoService {
public TableDataInfo<SysNoticeInfoVo> queryPageList(SysNoticeInfoBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysNoticeInfo> lqw = buildQueryWrapper(bo);
Page<SysNoticeInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
// 为每条记录设置字典标签和已读状态
if (result.getRecords() != null && !result.getRecords().isEmpty()) {
setDictLabels(result.getRecords());
}
return TableDataInfo.build(result);
}
@ -86,8 +133,16 @@ public class SysNoticeInfoServiceImpl implements ISysNoticeInfoService {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysNoticeInfo> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(SysNoticeInfo::getId);
lqw.eq(StringUtils.isNotBlank(bo.getNoticeContent()), SysNoticeInfo::getNoticeContent, bo.getNoticeContent());
lqw.eq(bo.getPublishTime() != null, SysNoticeInfo::getPublishTime, bo.getPublishTime());
lqw.like(StringUtils.isNotBlank(bo.getNoticeContent()), SysNoticeInfo::getNoticeContent, bo.getNoticeContent());
// 发布时间根据开始时间和结束时间进行范围过滤
if (bo.getStartTime() != null) {
lqw.ge(SysNoticeInfo::getPublishTime, bo.getStartTime());
}
if (bo.getEndTime() != null) {
lqw.le(SysNoticeInfo::getPublishTime, bo.getEndTime());
}
lqw.eq(bo.getDisplayDays() != null, SysNoticeInfo::getDisplayDays, bo.getDisplayDays());
lqw.eq(bo.getTargetPlatform() != null, SysNoticeInfo::getTargetPlatform, bo.getTargetPlatform());
lqw.eq(bo.getStatus() != null, SysNoticeInfo::getStatus, bo.getStatus());
@ -110,7 +165,18 @@ public class SysNoticeInfoServiceImpl implements ISysNoticeInfoService {
public Boolean insertByBo(SysNoticeInfoBo bo) {
SysNoticeInfo add = MapstructUtils.convert(bo, SysNoticeInfo.class);
add.setId(IdUtil.simpleUUID());
validEntityBeforeSave(add);
add.setPublishTime(new Date(System.currentTimeMillis()));
add.setCreateBy(LoginHelper.getUserId()!= null ? LoginHelper.getUserId() : null);
add.setCreateByName(LoginHelper.getUsername()!= null ? LoginHelper.getUsername() : null);
//1.显示时长为0,则表示永久显示
//2.显示时长不为0,则根据显示时长计算有效时间
if (bo.getDisplayDays() != null && bo.getDisplayDays() > 0) {
long effectiveTimeMillis = add.getPublishTime().getTime() + bo.getDisplayDays() * 24 * 60 * 60 * 1000;
add.setEffectiveTime(new Date(effectiveTimeMillis));
} else {
// 永久显示,有效时间设为null或一个很远的未来时间
add.setEffectiveTime(null);
}
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
@ -127,7 +193,18 @@ public class SysNoticeInfoServiceImpl implements ISysNoticeInfoService {
@Override
public Boolean updateByBo(SysNoticeInfoBo bo) {
SysNoticeInfo update = MapstructUtils.convert(bo, SysNoticeInfo.class);
validEntityBeforeSave(update);
//1.显示时长为0,则表示永久显示
//2.显示时长不为0,则根据显示时长计算有效时间
if (bo.getDisplayDays() != null && bo.getDisplayDays() > 0) {
long effectiveTimeMillis = update.getPublishTime().getTime() + bo.getDisplayDays() * 24 * 60 * 60 * 1000;
update.setEffectiveTime(new Date(effectiveTimeMillis));
} else {
// 永久显示,有效时间设为null或一个很远的未来时间
update.setEffectiveTime(null);
}
update.setUpdateTime(new Date(System.currentTimeMillis()));
update.setUpdateBy(LoginHelper.getUserId()!= null ? LoginHelper.getUserId() : null);
update.setUpdateByName(LoginHelper.getUsername()!= null ? LoginHelper.getUsername() : null);
return baseMapper.updateById(update) > 0;
}

Loading…
Cancel
Save