From a47e5b8a2f7e6002887cde5934fbe2eff157f1eb Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Wed, 31 Jan 2024 18:02:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/portal/api/sysnotice/SysNotice.java | 30 +++ .../api/sysnotice/SysNoticeDetailsVo.java | 35 ++++ .../portal/api/sysnotice/SysNoticeDto.java | 38 ++++ .../portal/api/sysnotice/SysNoticeFeign.java | 53 ++++++ .../api/sysnotice/SysNoticeFeignFallback.java | 12 ++ .../portal/api/sysnotice/SysNoticeListVo.java | 16 ++ .../portal/api/sysnotice/SysNoticeQuery.java | 25 +++ .../portal/api/sysnotice/SysNoticeVo.java | 24 +++ .../portal/api/sysnotice/SysNoticesQuery.java | 21 +++ .../api/sysnotice/SysNoticessQuery.java | 21 +++ .../anrui/portal/api/sysnotice/UrlQuery.java | 16 ++ .../portal/biz/sysnotice/SysNoticeMapper.java | 25 +++ .../portal/biz/sysnotice/SysNoticeMapper.xml | 26 +++ .../portal/biz/sysnotice/SysNoticeRest.java | 63 +++++++ .../biz/sysnotice/SysNoticeService.java | 175 ++++++++++++++++++ doc/databases/portal_tables.sql | 28 +++ 16 files changed, 608 insertions(+) create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNotice.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDetailsVo.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDto.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeign.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeignFallback.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeListVo.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeQuery.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeVo.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticesQuery.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticessQuery.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/UrlQuery.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.xml create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeRest.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeService.java diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNotice.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNotice.java new file mode 100644 index 0000000000..479fc55e27 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNotice.java @@ -0,0 +1,30 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Data +public class SysNotice extends BaseEntity { + + private static final long serialVersionUID = 8324297245354558865L; + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("有效期至") + private String validityDate; + @ApiModelProperty("类别") + private String type; + @ApiModelProperty("类别key") + private String typeKey; + @ApiModelProperty("是否置顶") + private String topping; + @ApiModelProperty("内容") + private String content; + @ApiModelProperty("附件") + private String files; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDetailsVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDetailsVo.java new file mode 100644 index 0000000000..3aca922657 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDetailsVo.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/31 + **/ +@Data +public class SysNoticeDetailsVo { + + private String sid; + + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("有效期至") + private String validityDate; + @ApiModelProperty("类别") + private String type; + @ApiModelProperty("类别key") + private String typeKey; + @ApiModelProperty("是否置顶") + private String topping; + @ApiModelProperty("内容") + private String content; + @ApiModelProperty("附件") + private List filesList = new ArrayList<>(); + + private String createTime; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDto.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDto.java new file mode 100644 index 0000000000..22be5060df --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDto.java @@ -0,0 +1,38 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/31 + **/ +@Data +public class SysNoticeDto implements Dto { + private static final long serialVersionUID = 8074080443156103663L; + + private String sid; + + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("有效期至") + private String validityDate; + @ApiModelProperty("类别") + private String type; + @ApiModelProperty("类别key") + private String typeKey; + @ApiModelProperty("是否置顶") + private String topping; + @ApiModelProperty("内容") + private String content; + @ApiModelProperty("附件") + private List filesList = new ArrayList<>(); + + private String createTime; + +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeign.java new file mode 100644 index 0000000000..fe1e776d64 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeign.java @@ -0,0 +1,53 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Api(tags = "通知公告") +@FeignClient( + contextId = "anrui-portal-SysNotice", + name = "anrui-portal", + path = "v1/SysNotice", + fallback = SysNoticeFeignFallback.class) +public interface SysNoticeFeign { + + @ApiOperation("分页列表") + @PostMapping("/listPage") + ResultBean> listPage(@RequestBody PagerQuery pagerQuery); + + @ApiOperation("新增修改保存") + @PostMapping("/saveOrUpdate") + ResultBean saveOrUpdate(@RequestBody SysNoticeDto dto); + + @ApiOperation("初始化") + @GetMapping("/getDetails") + ResultBean getDetails(@RequestParam("sid") String sid); + + @ApiOperation("开启关闭:1是开启,2是关闭") + @PostMapping("/setState") + ResultBean setState(@RequestBody SysNoticesQuery query); + + @ApiOperation("置顶是,取消置顶否") + @PostMapping("/setTopping") + ResultBean setTopping(@RequestBody SysNoticessQuery query); + + @ApiOperation("首页通知公告") + @GetMapping("/getLists") + ResultBean> getLists(); + + @ApiOperation("删除/批量删除") + @DeleteMapping("/delBySids") + ResultBean delBySids(@RequestBody String[] sids); +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeignFallback.java new file mode 100644 index 0000000000..044f1b3731 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Component +public class SysNoticeFeignFallback { +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeListVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeListVo.java new file mode 100644 index 0000000000..9bc23c699c --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeListVo.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/31 + **/ +@Data +public class SysNoticeListVo { + + private String sid; + private String title; + private String createTime; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeQuery.java new file mode 100644 index 0000000000..c222ec6e06 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Data +public class SysNoticeQuery implements Query { + private static final long serialVersionUID = -2087301472856056824L; + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("发布时间开始") + private String createDateStart; + @ApiModelProperty("发布时间结束") + private String createDateEnd; + @ApiModelProperty("是否置顶") + private String topping; + @ApiModelProperty("开启1,关闭2") + private String state; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeVo.java new file mode 100644 index 0000000000..605db06062 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeVo.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Data +public class SysNoticeVo { + private String sid; + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("发布时间") + private String createDate; + @ApiModelProperty("有效期至") + private String validityDate; + @ApiModelProperty("状态") + private String stateValue; + @ApiModelProperty("是否置顶") + private String topping; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticesQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticesQuery.java new file mode 100644 index 0000000000..8d39001a72 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticesQuery.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/31 + **/ +@Data +public class SysNoticesQuery { + + @ApiModelProperty("sids") + private List sidsList = new ArrayList<>(); + @ApiModelProperty("1开启、2关闭") + private String state; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticessQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticessQuery.java new file mode 100644 index 0000000000..c22ec685c3 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticessQuery.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/31 + **/ +@Data +public class SysNoticessQuery { + + @ApiModelProperty("sids") + private List sidsList = new ArrayList<>(); + @ApiModelProperty("置顶是、取消置顶否") + private String topping; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/UrlQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/UrlQuery.java new file mode 100644 index 0000000000..1dbd8c34e2 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/UrlQuery.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/31 + **/ +@Data +public class UrlQuery { + + private String url; + + +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.java new file mode 100644 index 0000000000..122d28133b --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.portal.biz.sysnotice; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.portal.api.sysnotice.SysNotice; +import com.yxt.anrui.portal.api.sysnotice.SysNoticeListVo; +import com.yxt.anrui.portal.api.sysnotice.SysNoticeVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Mapper +public interface SysNoticeMapper extends BaseMapper { + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + List getLists(); +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.xml new file mode 100644 index 0000000000..6e0fdb9a6f --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.xml @@ -0,0 +1,26 @@ + + + + + + + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeRest.java new file mode 100644 index 0000000000..638caf95ed --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeRest.java @@ -0,0 +1,63 @@ +package com.yxt.anrui.portal.biz.sysnotice; + +import com.yxt.anrui.portal.api.sysnotice.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Api(tags = "通知公告") +@RestController +@RequestMapping("v1/SysNotice") +public class SysNoticeRest implements SysNoticeFeign { + + @Autowired + private SysNoticeService sysNoticeService; + + @Override + public ResultBean> listPage(PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = sysNoticeService.listPageVo(pagerQuery); + return rb.success().setData(pv); + } + + @Override + public ResultBean saveOrUpdate(SysNoticeDto dto) { + return sysNoticeService.saveOrUpdateNotice(dto); + } + + @Override + public ResultBean getDetails(String sid) { + return sysNoticeService.getDetails(sid); + } + + @Override + public ResultBean setState(SysNoticesQuery query) { + return sysNoticeService.setState(query); + } + + @Override + public ResultBean setTopping(SysNoticessQuery query) { + return sysNoticeService.setTopping(query); + } + + @Override + public ResultBean> getLists() { + return sysNoticeService.getLists(); + } + + @Override + public ResultBean delBySids(String[] sids) { + return sysNoticeService.delAllBySids(sids); + } +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeService.java new file mode 100644 index 0000000000..d102a8d104 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeService.java @@ -0,0 +1,175 @@ +package com.yxt.anrui.portal.biz.sysnotice; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.portal.api.sysnotice.*; +import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplate; +import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Service +public class SysNoticeService extends MybatisBaseService { + + @Autowired + private FileUploadComponent fileUploadComponent; + + public PagerVo listPageVo(PagerQuery pagerQuery) { + SysNoticeQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + qw.eq("1", 1); + //标题 + if (StringUtils.isNotBlank(query.getTitle())) { + qw.like("sn.title", query.getTitle()); + } + qw.apply(StringUtils.isNotBlank(query.getCreateDateStart()), "date_format (sn.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateDateEnd()), "date_format (sn.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateDateEnd() + "','%Y-%m-%d')" + ); + if (StringUtils.isNotBlank(query.getTopping())) { + qw.like("sn.topping", query.getTopping()); + } + if (StringUtils.isNotBlank(query.getState())) { + qw.eq("sn.state", query.getState()); + } + qw.orderByDesc("sn.createTime"); + } + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveOrUpdateNotice(SysNoticeDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isBlank(sid)) { + SysNotice sysNotice = new SysNotice(); + BeanUtil.copyProperties(dto, sysNotice, "sid"); + List filss = dto.getFilesList(); + filss.removeAll(Collections.singleton(null)); + if (!filss.isEmpty()) { + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); + filesList.removeAll(Collections.singleton(null)); + if (!filesList.isEmpty()) { + String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + sysNotice.setFiles(files); + } + } + baseMapper.insert(sysNotice); + } else { + SysNotice sysNotice = fetchBySid(sid); + if (sysNotice == null) { + return rb.setMsg("该通知公告不存在"); + } + BeanUtil.copyProperties(dto, sysNotice, "sid"); + List filss = dto.getFilesList(); + filss.removeAll(Collections.singleton(null)); + if (!filss.isEmpty()) { + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); + filesList.removeAll(Collections.singleton(null)); + if (!filesList.isEmpty()) { + String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + sysNotice.setFiles(files); + } + } else { + sysNotice.setFiles(""); + } + baseMapper.updateById(sysNotice); + } + return rb.success(); + } + + public ResultBean getDetails(String sid) { + ResultBean rb = ResultBean.fireFail(); + SysNoticeDetailsVo sysNoticeDetailsVo = new SysNoticeDetailsVo(); + SysNotice sysNotice = fetchBySid(sid); + if (sysNotice == null) { + return rb.setMsg("该通知公告不存在"); + } + BeanUtil.copyProperties(sysNotice, sysNoticeDetailsVo); + sysNoticeDetailsVo.setCreateTime(DateUtil.format(sysNotice.getCreateTime(), "yyyy-MM-dd")); + String filesss = sysNotice.getFiles(); + List lists = new ArrayList<>(); + if (StringUtils.isNotBlank(filesss)) { + List fileList = Arrays.asList(filesss.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + for (int i = 0; i < fileList.size(); i++) { + UrlQuery urlQuery = new UrlQuery(); + urlQuery.setUrl(fileList.get(i)); + lists.add(urlQuery); + } + sysNoticeDetailsVo.setFilesList(lists); + } + return rb.success().setData(sysNoticeDetailsVo); + } + + public ResultBean setState(SysNoticesQuery query) { + ResultBean rb = ResultBean.fireFail(); + List sidsList = query.getSidsList(); + sidsList.removeAll(Collections.singleton(null)); + if (sidsList.isEmpty()) { + return rb.setMsg("请选择数据"); + } + String state = query.getState(); + for (String sid : sidsList) { + SysNotice sysNotice = fetchBySid(sid); + if (sysNotice == null) { + return rb.setMsg("操作的数据中包含不存在的数据,请刷新后操作"); + } + sysNotice.setState(Integer.valueOf(state).intValue()); + baseMapper.updateById(sysNotice); + } + return rb.success(); + } + + public ResultBean> getLists() { + ResultBean> rb = ResultBean.fireFail(); + List list = baseMapper.getLists(); + list.removeAll(Collections.singleton(null)); + return rb.success().setData(list); + } + + public ResultBean delAllBySids(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + delBySids(sids); + return rb.success().setMsg("删除成功"); + } + + public ResultBean setTopping(SysNoticessQuery query) { + ResultBean rb = ResultBean.fireFail(); + List sidsList = query.getSidsList(); + sidsList.removeAll(Collections.singleton(null)); + if (sidsList.isEmpty()) { + return rb.setMsg("请选择数据"); + } + String topping = query.getTopping(); + for (String sid : sidsList) { + SysNotice sysNotice = fetchBySid(sid); + if (sysNotice == null) { + return rb.setMsg("操作的数据中包含不存在的数据,请刷新后操作"); + } + sysNotice.setTopping(topping); + baseMapper.updateById(sysNotice); + } + return rb.success(); + } +} diff --git a/doc/databases/portal_tables.sql b/doc/databases/portal_tables.sql index be69ba5b1a..8a7e78049c 100644 --- a/doc/databases/portal_tables.sql +++ b/doc/databases/portal_tables.sql @@ -819,3 +819,31 @@ CREATE TABLE `sys_report_parameter` AUTO_INCREMENT = 18 DEFAULT CHARSET = utf8 COMMENT ='统计参数表'; + +DROP TABLE IF EXISTS `sys_notice`; +CREATE TABLE `sys_notice` +( + `id` int(11) NOT NULL AUTO_INCREMENT, + `sid` varchar(64) NOT NULL COMMENT 'sid', + `lockVersion` int(11) NOT NULL DEFAULT '0' COMMENT '记录版本,锁', + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', + `modifyTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录最后修改时间', + `isEnable` int(11) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用', + `state` int(11) DEFAULT '1' COMMENT '状态', + `isDelete` int(11) DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除', + `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息', + `createBySid` varchar(64) DEFAULT NULL COMMENT '创建者', + `updateBySid` varchar(64) DEFAULT NULL COMMENT '更新者', + `title` text DEFAULT NULL COMMENT '标题', + `validityDate` varchar(500) DEFAULT NULL COMMENT '有效期至', + `type` varchar(500) DEFAULT NULL COMMENT '类别', + `typeKey` varchar(500) DEFAULT NULL COMMENT '类别Key', + `topping` varchar(500) DEFAULT NULL COMMENT '是否置顶', + `content` text DEFAULT NULL COMMENT '内容', + `files` text DEFAULT NULL COMMENT '附件', + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE = InnoDB + AUTO_INCREMENT = 18 + DEFAULT CHARSET = utf8 COMMENT ='通知公告'; +