From 150ba043f53cd5de5b60ced4aec5dc041307471a Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Thu, 1 Feb 2024 15:07:55 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=8F=8A=E6=8E=A8=E9=80=81=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../portal/api/sysappendix/SysAppendix.java | 32 +++++ .../api/sysappendix/SysAppendixQuery.java | 20 +++ .../portal/api/sysnotice/NoticeAppListVo.java | 33 +++++ .../portal/api/sysnotice/PushNoticeAppVo.java | 24 ++++ .../portal/api/sysnotice/PushNoticeQuery.java | 35 ++++++ .../anrui/portal/api/sysnotice/SysNotice.java | 13 ++ .../api/sysnotice/SysNoticeAppDetails.java | 29 +++++ .../portal/api/sysnotice/SysNoticeDto.java | 2 + .../portal/api/sysnotice/SysNoticeFeign.java | 12 ++ .../portal/api/sysnotice/SysNoticeListVo.java | 3 + .../anrui/portal/api/sysnotice/UrlQuery.java | 2 + .../anrui/portal/biz/index/AppIndexRest.java | 31 +++-- .../biz/sysappendix/SysAppendixMapper.java | 23 ++++ .../biz/sysappendix/SysAppendixMapper.xml | 21 ++++ .../biz/sysappendix/SysAppendixService.java | 79 ++++++++++++ .../portal/biz/sysnotice/SysNoticeMapper.java | 3 + .../portal/biz/sysnotice/SysNoticeMapper.xml | 17 ++- .../portal/biz/sysnotice/SysNoticeRest.java | 15 +++ .../biz/sysnotice/SysNoticeService.java | 117 +++++++++++++++++- .../LoanSecondarySalesApplyService.java | 36 +++++- 20 files changed, 525 insertions(+), 22 deletions(-) create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendix.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendixQuery.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/NoticeAppListVo.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeAppVo.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeQuery.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeAppDetails.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.xml create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixService.java diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendix.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendix.java new file mode 100644 index 0000000000..075f15e280 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendix.java @@ -0,0 +1,32 @@ +package com.yxt.anrui.portal.api.sysappendix; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/1 + **/ +@Data +public class SysAppendix extends BaseEntity { + private static final long serialVersionUID = -6810446025754215365L; + + @ApiModelProperty("文件名") + private String fileName; + @ApiModelProperty("文件类型") + private String fileType; + @ApiModelProperty("上传人姓名") + private String name; + @ApiModelProperty("关联sid") + private String linkSid; + @ApiModelProperty("附件类型") + private String attachType; + @ApiModelProperty("文件大小") + private String fileSize; + @ApiModelProperty("文件的相对路径") + private String filePath; + + +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendixQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendixQuery.java new file mode 100644 index 0000000000..fdb25ddd8d --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendixQuery.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.portal.api.sysappendix; + +import com.yxt.anrui.portal.api.sysnotice.UrlQuery; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/1 + **/ +@Data +public class SysAppendixQuery { + + private String linkSid; + + private List filesList = new ArrayList<>(); +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/NoticeAppListVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/NoticeAppListVo.java new file mode 100644 index 0000000000..8d9fb6a039 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/NoticeAppListVo.java @@ -0,0 +1,33 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/1 + **/ +@Data +public class NoticeAppListVo { + + private PushNoticeAppVo pageInfo; + + private String title; + + private String sid; + + @ApiModelProperty("移动端页面地址") + @JsonIgnore + private String moduleAction; + @ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件") + @JsonIgnore + private String app_type; + @ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)") + @JsonIgnore + private String args_json; + @ApiModelProperty("插件sid") + @JsonIgnore + private String moduleSid; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeAppVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeAppVo.java new file mode 100644 index 0000000000..314e0763ab --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeAppVo.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/1 + **/ +@Data +public class PushNoticeAppVo { + + private String path; + + private String modulePluginName; + + private Integer moduleVersion; + + private String json; + + private String type; + + private String moduleAction; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeQuery.java new file mode 100644 index 0000000000..5d495c368b --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeQuery.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.portal.api.sysnotice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/1 + **/ +@Data +public class PushNoticeQuery { + + @ApiModelProperty("移动端页面地址") + private String moduleAction; + @ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件") + private String app_type; + @ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)") + private String args_json; + @ApiModelProperty("插件sid") + private String moduleSid; + private String title; + private String sid; + private String pcUrl; + @ApiModelProperty("类别") + private String type; + @ApiModelProperty("类别key") + private String typeKey; + + private String createTime; + @ApiModelProperty("有效期至") + private String validityDate; + @ApiModelProperty("用户sid") + private String userSid; +} 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 index 479fc55e27..9023ef5306 100644 --- 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 @@ -27,4 +27,17 @@ public class SysNotice extends BaseEntity { private String content; @ApiModelProperty("附件") private String files; + @ApiModelProperty("生成类型0添加1自动") + private String createType; + + private String pcUrl; + @ApiModelProperty("移动端页面地址") + private String moduleAction; + @ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件") + private String app_type; + @ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)") + private String args_json; + @ApiModelProperty("插件sid") + private String moduleSid; + } diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeAppDetails.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeAppDetails.java new file mode 100644 index 0000000000..182692a886 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeAppDetails.java @@ -0,0 +1,29 @@ +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/2/1 + **/ +@Data +public class SysNoticeAppDetails { + + + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("有效期至") + private String validityDate; + @ApiModelProperty("内容") + private String content; + @ApiModelProperty("附件") + private List filesList = new ArrayList<>(); + @ApiModelProperty("发布日期") + 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 index 22be5060df..271f7914b1 100644 --- 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 @@ -35,4 +35,6 @@ public class SysNoticeDto implements Dto { private String createTime; + private String userSid; + } 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 index fe1e776d64..3c7a0dd315 100644 --- 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 @@ -50,4 +50,16 @@ public interface SysNoticeFeign { @ApiOperation("删除/批量删除") @DeleteMapping("/delBySids") ResultBean delBySids(@RequestBody String[] sids); + + @ApiOperation("自动推送通知公告") + @PostMapping("/savePushNotice") + ResultBean savePushNotice(@RequestBody PushNoticeQuery query); + + @ApiOperation("移动端通知公告") + @GetMapping("/getAppDetails") + ResultBean> getAppDetails(); + + @ApiOperation("移动端") + @GetMapping("/getDetailsApp") + ResultBean getDetailsApp(@RequestParam("sid") String sid); } 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 index 9bc23c699c..d49e8aee5c 100644 --- 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 @@ -1,5 +1,6 @@ package com.yxt.anrui.portal.api.sysnotice; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -13,4 +14,6 @@ public class SysNoticeListVo { private String sid; private String title; private String createTime; + @ApiModelProperty("pc的页面地址") + private String pcUrl; } 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 index 1dbd8c34e2..6e438b9939 100644 --- 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 @@ -12,5 +12,7 @@ public class UrlQuery { private String url; + private String name; + } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexRest.java index 290bfe2a92..c091509dc4 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexRest.java @@ -5,11 +5,15 @@ import com.yxt.anrui.portal.api.banner.BannerVo; import com.yxt.anrui.portal.api.formnotice.FormNoticeQuery; import com.yxt.anrui.portal.api.formnotice.FormNoticeVo; import com.yxt.anrui.portal.api.index.*; +import com.yxt.anrui.portal.api.sysnotice.NoticeAppListVo; +import com.yxt.anrui.portal.api.sysnotice.SysNoticeFeign; +import com.yxt.anrui.portal.api.sysnotice.SysNoticeListVo; import com.yxt.anrui.portal.biz.appsubsetversion.AppSubsetVersionService; import com.yxt.anrui.portal.biz.banner.BannerService; import com.yxt.anrui.portal.biz.flow.FlowableService; import com.yxt.anrui.portal.biz.formnotice.FormNoticeService; import com.yxt.anrui.portal.biz.sysmobilemenurole.SysMobileMenuRoleService; +import com.yxt.anrui.portal.biz.sysnotice.SysNoticeService; import com.yxt.anrui.portal.biz.sysuser.SysUserService; import com.yxt.anrui.terminal.api.autoservice.baseInfo.AppAutoServiceBaseInfoQuery; import com.yxt.anrui.terminal.api.autoservice.baseInfo.AppAutoServiceBaseInfoVo; @@ -70,6 +74,8 @@ public class AppIndexRest implements AppIndexFeign { private AppAutoserviceBaseInfoFeign appAutoserviceBaseInfoFeign; @Autowired private AppAutoRiskBaseInfoFeign appAutoRiskBaseInfoFeign; + @Autowired + private SysNoticeService sysNoticeService; @Override public ResultBean index(String userSid) { @@ -78,21 +84,22 @@ public class AppIndexRest implements AppIndexFeign { Map map = new HashMap(); appVo.setUserSid(userSid); // 待办数量 -// appVo.setNotWorkNum(flowableService.getTodoNum(userSid).getData()); appVo.setNotWorkNum(0); // 待阅数量 -// appVo.setNotReadNum(messageListFeign.selectUnReadCount("", userSid).getData()); appVo.setNotReadNum(0); // 通知公告列表 - FormNoticeQuery formNoticeQuery = new FormNoticeQuery(); + /* FormNoticeQuery formNoticeQuery = new FormNoticeQuery(); PagerQuery formNoticeQueryPage = new PagerQuery<>(); formNoticeQueryPage.setParams(formNoticeQuery); formNoticeQueryPage.getParams().setClosingDate(DateUtils.dateConvertStr(new Date())); //取前6条 formNoticeQueryPage.setSize(6); - List formNoticeVoList = formNoticeService.pageList(formNoticeQueryPage).getRecords(); - map.put("tips", formNoticeVoList); + List formNoticeVoList = formNoticeService.pageList(formNoticeQueryPage).getRecords();*/ + ResultBean> listResultBean = sysNoticeService.getAppDetails(); + List sysNoticeListVoList = listResultBean.getData(); + sysNoticeListVoList.removeAll(Collections.singleton(null)); + map.put("tips", sysNoticeListVoList); // 子应用列表 String linkSid = LINKSID; @@ -101,8 +108,8 @@ public class AppIndexRest implements AppIndexFeign { //查询该用户是否有权限 List stringList = sysMobileMenuRoleService.selectAppSidList(userSid); List subsetVersionVoList = new ArrayList<>(); - if(!stringList.isEmpty()){ - subsetVersionVoList = appSubsetVersionService.selectVersionListOne(linkSid, path,stringList); + if (!stringList.isEmpty()) { + subsetVersionVoList = appSubsetVersionService.selectVersionListOne(linkSid, path, stringList); subsetVersionVoList.stream().forEach(item -> { item.setCornerNum(""); }); @@ -186,7 +193,7 @@ public class AppIndexRest implements AppIndexFeign { } item.setCornerNum(String.valueOf(count)); - } else if("e25e13b5-f2ed-421f-bdb3-6f2eca2a3028".equals(item.getAppSid())){ + } else if ("e25e13b5-f2ed-421f-bdb3-6f2eca2a3028".equals(item.getAppSid())) { //业务 ResultBean indexCountVo = ResultBean.fireFail(); if (StringUtils.isNotBlank(orgPath)) { @@ -208,7 +215,7 @@ public class AppIndexRest implements AppIndexFeign { } } item.setCornerNum(String.valueOf(count)); - }else if ("fec4e243-491a-11ec-94cd-fa163e0cb33c".equals(item.getAppSid())){ + } else if ("fec4e243-491a-11ec-94cd-fa163e0cb33c".equals(item.getAppSid())) { //风控 ResultBean indexCountVo = ResultBean.fireFail(); if (StringUtils.isNotBlank(orgPath)) { @@ -235,7 +242,7 @@ public class AppIndexRest implements AppIndexFeign { } } item.setCornerNum(String.valueOf(count)); - }else{ + } else { item.setCornerNum(""); } }); @@ -243,8 +250,8 @@ public class AppIndexRest implements AppIndexFeign { } @Override - public ResultBean> getBusinessList(String userSid, String appSid,String orgPath) { - return appIndexService.getBusinessList(userSid, appSid,orgPath); + public ResultBean> getBusinessList(String userSid, String appSid, String orgPath) { + return appIndexService.getBusinessList(userSid, appSid, orgPath); } @Override diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.java new file mode 100644 index 0000000000..24be60ff6a --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.portal.biz.sysappendix; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo; +import com.yxt.anrui.portal.api.sysappendix.SysAppendix; +import com.yxt.anrui.portal.api.sysnotice.UrlQuery; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/1 + **/ +@Mapper +public interface SysAppendixMapper extends BaseMapper { + List selectByLinkSid(String linkSid); + + int deleteByLinkSid(String linkSid); + + List selectByLinkSids(String sid); +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.xml new file mode 100644 index 0000000000..fcbb6191ad --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.xml @@ -0,0 +1,21 @@ + + + + + + + delete + from sys_appendix + where linkSid = #{linkSid} + + + + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixService.java new file mode 100644 index 0000000000..ae8531fd49 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixService.java @@ -0,0 +1,79 @@ +package com.yxt.anrui.portal.biz.sysappendix; + +import com.yxt.anrui.portal.api.sysappendix.SysAppendix; +import com.yxt.anrui.portal.api.sysappendix.SysAppendixQuery; +import com.yxt.anrui.portal.api.sysnotice.UrlQuery; +import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.File; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/1 + **/ +@Service +public class SysAppendixService extends MybatisBaseService { + + @Autowired + private FileUploadComponent fileUploadComponent; + + @Transactional(rollbackFor = Exception.class) + public int saveOrUpdateAppAppendix(SysAppendixQuery query) { + int i = 0; + String urlPrefix = fileUploadComponent.getUrlPrefix(); + String uploadPath = fileUploadComponent.getUploadPath(); + List list = query.getFilesList(); + List appendixList = baseMapper.selectByLinkSid(query.getLinkSid()); + // 去重列表(删除) + appendixList.stream().forEach(item -> { + item.setFilePath(urlPrefix + item.getFilePath()); + }); + List s = list.stream().map(v->v.getUrl()).collect(Collectors.toList()); + List oldList = appendixList.stream().map(SysAppendix::getFilePath).collect(Collectors.toList()); + List delList = oldList.stream().filter(item -> !s.contains(item)).collect(Collectors.toList()); + // 删除旧数据 + baseMapper.deleteByLinkSid(query.getLinkSid()); + + // 增加 + for (UrlQuery strs : list) { + String str = strs.getUrl(); + String pathLoc = str.replace(urlPrefix, uploadPath); + pathLoc = pathLoc.replace("/", File.separator); + File file = new File(pathLoc); + String size = ""; + if (file != null) { + size = fileUploadComponent.getPrintSize(file.length()); + } + String suffix = str.substring(str.lastIndexOf(".") + 1); // 文件类型 + String fileName = str.substring(str.lastIndexOf("/") + 1, str.lastIndexOf(".")); // 文件名 + SysAppendix commonAppendix = new SysAppendix(); + commonAppendix.setFileName(strs.getName()); + commonAppendix.setFileType(suffix); + commonAppendix.setLinkSid(query.getLinkSid()); + commonAppendix.setAttachType(""); + commonAppendix.setFileSize(size); + commonAppendix.setFilePath(str.replace(urlPrefix, "")); + i = insert(commonAppendix); + } + // 删除原文件 + if (i == 1) { + for (String path : delList) { + String pathLoc = path.replace(urlPrefix, uploadPath); + pathLoc = pathLoc.substring(0, pathLoc.lastIndexOf("/") + 1).replace("/", File.separator); + fileUploadComponent.deleteFiles(path, pathLoc); + } + } + return i; + } + + public List selectByLinKSid(String sid) { + return baseMapper.selectByLinkSids(sid); + } +} 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 index 122d28133b..9234933cca 100644 --- 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 @@ -4,6 +4,7 @@ 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.NoticeAppListVo; import com.yxt.anrui.portal.api.sysnotice.SysNotice; import com.yxt.anrui.portal.api.sysnotice.SysNoticeListVo; import com.yxt.anrui.portal.api.sysnotice.SysNoticeVo; @@ -22,4 +23,6 @@ public interface SysNoticeMapper extends BaseMapper { IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List getLists(); + + List getAppDetails(); } 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 index 6e0fdb9a6f..4f873cb3af 100644 --- 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 @@ -2,7 +2,8 @@ + + \ 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 index 638caf95ed..f3908d2c23 100644 --- 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 @@ -60,4 +60,19 @@ public class SysNoticeRest implements SysNoticeFeign { public ResultBean delBySids(String[] sids) { return sysNoticeService.delAllBySids(sids); } + + @Override + public ResultBean savePushNotice(PushNoticeQuery query) { + return sysNoticeService.savePushNotice(query); + } + + @Override + public ResultBean> getAppDetails() { + return sysNoticeService.getAppDetails(); + } + + @Override + public ResultBean getDetailsApp(String sid) { + return sysNoticeService.getDetailsApp(sid); + } } 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 index 29d2f3ce0b..4a70c8469b 100644 --- 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 @@ -2,9 +2,14 @@ package com.yxt.anrui.portal.biz.sysnotice; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionVo; +import com.yxt.anrui.portal.api.sysappendix.SysAppendixQuery; import com.yxt.anrui.portal.api.sysnotice.*; +import com.yxt.anrui.portal.biz.appsubsetversion.AppSubsetVersionService; +import com.yxt.anrui.portal.biz.sysappendix.SysAppendixService; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -13,12 +18,13 @@ 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.context.annotation.Bean; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -31,6 +37,10 @@ public class SysNoticeService extends MybatisBaseService listPageVo(PagerQuery pagerQuery) { SysNoticeQuery query = pagerQuery.getParams(); @@ -72,8 +82,19 @@ public class SysNoticeService extends MybatisBaseService maps = new HashMap<>(); + maps.put("sid", sysNotice.getSid()); + sysNotice.setArgs_json(JSONObject.toJSONString(maps)); baseMapper.insert(sysNotice); } else { SysNotice sysNotice = fetchBySid(sid); @@ -81,6 +102,12 @@ public class SysNoticeService extends MybatisBaseService maps = new HashMap<>(); + maps.put("sid", sysNotice.getSid()); + sysNotice.setArgs_json(JSONObject.toJSONString(maps)); List filss = dto.getFilesList(); filss.removeAll(Collections.singleton(null)); if (!filss.isEmpty()) { @@ -89,6 +116,10 @@ public class SysNoticeService extends MybatisBaseService lists = new ArrayList<>(); if (StringUtils.isNotBlank(filesss)) { - List fileList = Arrays.asList(filesss.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + List fileList = sysAppendixService.selectByLinKSid(sid); for (int i = 0; i < fileList.size(); i++) { UrlQuery urlQuery = new UrlQuery(); - urlQuery.setUrl(fileList.get(i)); + urlQuery.setUrl(fileUploadComponent.getUrlPrefix() + fileList.get(i).getUrl()); + urlQuery.setName(fileList.get(i).getName()); lists.add(urlQuery); } sysNoticeDetailsVo.setFilesList(lists); @@ -171,4 +203,77 @@ public class SysNoticeService extends MybatisBaseService> getAppDetails() { + ResultBean> rb = ResultBean.fireFail(); + List list = baseMapper.getAppDetails(); + list.removeAll(Collections.singleton(null)); + //定义的app的sid的index集合 + Map> appVer = new HashMap<>(); + if (!list.isEmpty()) { + for (int i = 0; i < list.size(); i++) { + NoticeAppListVo noticeAppListVo = list.get(i); + PushNoticeAppVo pageInfo = new PushNoticeAppVo(); + pageInfo.setModuleAction(noticeAppListVo.getModuleAction()); + pageInfo.setType(noticeAppListVo.getApp_type()); + pageInfo.setJson(noticeAppListVo.getArgs_json()); + String moduleSid = noticeAppListVo.getModuleSid(); + List integers = appVer.get(moduleSid); + if (integers == null) { + integers = new ArrayList<>(); + } + integers.add(i); + appVer.put(moduleSid, integers); + noticeAppListVo.setPageInfo(pageInfo); + } + // 循环取map:若为同一个app版本,则只查询一次 + for (String key : appVer.keySet()) { + AppSubsetVersionVo appSubsetVersions = appSubsetVersionService.selectByAppSidOne(key); + if (appSubsetVersions != null) { + List integers = appVer.get(key); + for (int i = 0; i < integers.size(); i++) { + Integer integer = integers.get(i); + String path = fileUploadComponent.getUrlPrefix(); + list.get(integer).getPageInfo().setPath(path + appSubsetVersions.getUpdateUrl()); + list.get(integer).getPageInfo().setModuleVersion(appSubsetVersions.getVersionCode()); + list.get(integer).getPageInfo().setModulePluginName(appSubsetVersions.getModulePluginName()); + } + } + } + } + return rb.success().setData(list); + } + + public ResultBean getDetailsApp(String sid) { + ResultBean rb = ResultBean.fireFail(); + SysNoticeAppDetails sysNoticeAppDetails = new SysNoticeAppDetails(); + SysNotice sysNotice = fetchBySid(sid); + if (sysNotice == null) { + return rb.setMsg("该通知公告不存在"); + } + BeanUtil.copyProperties(sysNotice, sysNoticeAppDetails); + sysNoticeAppDetails.setCreateTime(DateUtil.format(sysNotice.getCreateTime(), "yyyy-MM-dd")); + String filesss = sysNotice.getFiles(); + if (StringUtils.isNotBlank(filesss)) { + List fileList = Arrays.asList(filesss.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + sysNoticeAppDetails.setFilesList(fileList); + } + } + return rb.success().setData(sysNoticeAppDetails); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java index c1d19688d4..4256434add 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java @@ -3,6 +3,7 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -17,6 +18,8 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.sysnotice.PushNoticeQuery; +import com.yxt.anrui.portal.api.sysnotice.SysNoticeFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; @@ -65,6 +68,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -109,6 +115,8 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanSecondarySalesApplyQuery query = pq.getParams(); @@ -469,7 +477,33 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService maps = new HashMap<>(); + maps.put("sid", businessSid); + pushNoticeQuery.setArgs_json(JSONObject.toJSONString(maps)); + ResultBean resultBeans = sysNoticeFeign.savePushNotice(pushNoticeQuery); } else { //极光推送 loanSecondarySalesApply = fetchBySid(businessSid);