Browse Source

通知公告列表及推送相关

master
dimengzhe 1 year ago
parent
commit
150ba043f5
  1. 32
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendix.java
  2. 20
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysappendix/SysAppendixQuery.java
  3. 33
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/NoticeAppListVo.java
  4. 24
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeAppVo.java
  5. 35
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/PushNoticeQuery.java
  6. 13
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNotice.java
  7. 29
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeAppDetails.java
  8. 2
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDto.java
  9. 12
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeign.java
  10. 3
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeListVo.java
  11. 2
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/UrlQuery.java
  12. 31
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexRest.java
  13. 23
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.java
  14. 21
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.xml
  15. 79
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixService.java
  16. 3
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.java
  17. 17
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.xml
  18. 15
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeRest.java
  19. 117
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeService.java
  20. 36
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java

32
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;
}

20
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<UrlQuery> filesList = new ArrayList<>();
}

33
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;
}

24
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;
}

35
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;
}

13
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;
}

29
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<String> filesList = new ArrayList<>();
@ApiModelProperty("发布日期")
private String createTime;
}

2
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;
}

12
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<List<NoticeAppListVo>> getAppDetails();
@ApiOperation("移动端")
@GetMapping("/getDetailsApp")
ResultBean<SysNoticeAppDetails> getDetailsApp(@RequestParam("sid") String sid);
}

3
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;
}

2
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;
}

31
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<AppIndexVo> index(String userSid) {
@ -78,21 +84,22 @@ public class AppIndexRest implements AppIndexFeign {
Map<String, Object> map = new HashMap<String, Object>();
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<FormNoticeQuery> formNoticeQueryPage = new PagerQuery<>();
formNoticeQueryPage.setParams(formNoticeQuery);
formNoticeQueryPage.getParams().setClosingDate(DateUtils.dateConvertStr(new Date()));
//取前6条
formNoticeQueryPage.setSize(6);
List<FormNoticeVo> formNoticeVoList = formNoticeService.pageList(formNoticeQueryPage).getRecords();
map.put("tips", formNoticeVoList);
List<FormNoticeVo> formNoticeVoList = formNoticeService.pageList(formNoticeQueryPage).getRecords();*/
ResultBean<List<NoticeAppListVo>> listResultBean = sysNoticeService.getAppDetails();
List<NoticeAppListVo> 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<String> stringList = sysMobileMenuRoleService.selectAppSidList(userSid);
List<AppSubsetVersionVo> 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<AppAutoServiceBaseInfoVo> 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<AppAutoRiskBaseInfoVo> 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<List<AppIndexNewVo>> getBusinessList(String userSid, String appSid,String orgPath) {
return appIndexService.getBusinessList(userSid, appSid,orgPath);
public ResultBean<List<AppIndexNewVo>> getBusinessList(String userSid, String appSid, String orgPath) {
return appIndexService.getBusinessList(userSid, appSid, orgPath);
}
@Override

23
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<SysAppendix> {
List<SysAppendix> selectByLinkSid(String linkSid);
int deleteByLinkSid(String linkSid);
List<UrlQuery> selectByLinkSids(String sid);
}

21
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysappendix/SysAppendixMapper.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.portal.biz.sysappendix.SysAppendixMapper">
<select id="selectByLinkSid" resultType="com.yxt.anrui.portal.api.sysappendix.SysAppendix">
select *
from sys_appendix
where linkSid = #{linkSid}
</select>
<delete id="deleteByLinkSid">
delete
from sys_appendix
where linkSid = #{linkSid}
</delete>
<select id="selectByLinkSids" resultType="com.yxt.anrui.portal.api.sysnotice.UrlQuery">
select fileName name, filePath url
from sys_appendix
where linkSid = #{sid}
</select>
</mapper>

79
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<SysAppendixMapper, SysAppendix> {
@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<UrlQuery> list = query.getFilesList();
List<SysAppendix> appendixList = baseMapper.selectByLinkSid(query.getLinkSid());
// 去重列表(删除)
appendixList.stream().forEach(item -> {
item.setFilePath(urlPrefix + item.getFilePath());
});
List<String> s = list.stream().map(v->v.getUrl()).collect(Collectors.toList());
List<String> oldList = appendixList.stream().map(SysAppendix::getFilePath).collect(Collectors.toList());
List<String> 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<UrlQuery> selectByLinKSid(String sid) {
return baseMapper.selectByLinkSids(sid);
}
}

3
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<SysNotice> {
IPage<SysNoticeVo> selectPageVo(IPage<SysNotice> page, @Param(Constants.WRAPPER) QueryWrapper<SysNotice> qw);
List<SysNoticeListVo> getLists();
List<NoticeAppListVo> getAppDetails();
}

17
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.xml

@ -2,7 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.portal.biz.sysnotice.SysNoticeMapper">
<select id="selectPageVo" resultType="com.yxt.anrui.portal.api.sysnotice.SysNoticeVo">
select sn.sid,sn.title,
select sn.sid,
sn.title,
DATE_FORMAT(sn.createTime, '%Y-%m-%d') as createDate,
sn.validityDate,
case state
@ -17,10 +18,20 @@
</select>
<select id="getLists" resultType="com.yxt.anrui.portal.api.sysnotice.SysNoticeListVo">
select sid, title, DATE_FORMAT(createTime, '%Y-%m-%d') as createTime
select sid, title, DATE_FORMAT(createTime, '%Y-%m-%d') as createTime, pcUrl, appUrl
from sys_notice
where state = 1 and (validityDate is null or validityDate = '' or validityDate>NOW())
where state = 1
and (validityDate is null or validityDate = '' or validityDate > NOW())
order by topping desc, createTime desc
limit 4
</select>
<select id="getAppDetails" resultType="com.yxt.anrui.portal.api.sysnotice.NoticeAppListVo">
select sid, title, moduleAction, app_type, args_json, moduleSid
from sys_notice
where state = 1
and (validityDate is null or validityDate = '' or validityDate > NOW())
order by topping desc, createTime desc
limit 6
</select>
</mapper>

15
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<List<NoticeAppListVo>> getAppDetails() {
return sysNoticeService.getAppDetails();
}
@Override
public ResultBean<SysNoticeAppDetails> getDetailsApp(String sid) {
return sysNoticeService.getDetailsApp(sid);
}
}

117
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<SysNoticeMapper, SysNot
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private SysAppendixService sysAppendixService;
@Autowired
private AppSubsetVersionService appSubsetVersionService;
public PagerVo<SysNoticeVo> listPageVo(PagerQuery<SysNoticeQuery> pagerQuery) {
SysNoticeQuery query = pagerQuery.getParams();
@ -72,8 +82,19 @@ public class SysNoticeService extends MybatisBaseService<SysNoticeMapper, SysNot
if (!filesList.isEmpty()) {
String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
sysNotice.setFiles(files);
SysAppendixQuery sysAppendixQuery = new SysAppendixQuery();
sysAppendixQuery.setLinkSid(sysNotice.getSid());
sysAppendixQuery.setFilesList(filss);
sysAppendixService.saveOrUpdateAppAppendix(sysAppendixQuery);
}
}
sysNotice.setCreateBySid(dto.getUserSid());
sysNotice.setApp_type("0");
sysNotice.setModuleAction("com.anrui.android.activity.NoticeActivity");
sysNotice.setModuleSid("fec4e243-491a-11ec-94cd-fa163e0cb33c");
Map<String, Object> 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<SysNoticeMapper, SysNot
return rb.setMsg("该通知公告不存在");
}
BeanUtil.copyProperties(dto, sysNotice, "sid");
sysNotice.setApp_type("0");
sysNotice.setModuleAction("com.anrui.android.activity.NoticeActivity");
sysNotice.setModuleSid("fec4e243-491a-11ec-94cd-fa163e0cb33c");
Map<String, Object> maps = new HashMap<>();
maps.put("sid", sysNotice.getSid());
sysNotice.setArgs_json(JSONObject.toJSONString(maps));
List<UrlQuery> filss = dto.getFilesList();
filss.removeAll(Collections.singleton(null));
if (!filss.isEmpty()) {
@ -89,6 +116,10 @@ public class SysNoticeService extends MybatisBaseService<SysNoticeMapper, SysNot
if (!filesList.isEmpty()) {
String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
sysNotice.setFiles(files);
SysAppendixQuery sysAppendixQuery = new SysAppendixQuery();
sysAppendixQuery.setLinkSid(sysNotice.getSid());
sysAppendixQuery.setFilesList(filss);
sysAppendixService.saveOrUpdateAppAppendix(sysAppendixQuery);
}
} else {
sysNotice.setFiles("");
@ -110,10 +141,11 @@ public class SysNoticeService extends MybatisBaseService<SysNoticeMapper, SysNot
String filesss = sysNotice.getFiles();
List<UrlQuery> lists = new ArrayList<>();
if (StringUtils.isNotBlank(filesss)) {
List<String> fileList = Arrays.asList(filesss.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
List<UrlQuery> 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<SysNoticeMapper, SysNot
}
return rb.success();
}
public ResultBean savePushNotice(PushNoticeQuery query) {
ResultBean rb = ResultBean.fireFail();
SysNotice sysNotice = new SysNotice();
BeanUtil.copyProperties(query, sysNotice);
sysNotice.setCreateBySid(query.getUserSid());
sysNotice.setCreateType("1");
sysNotice.setTopping("是");
sysNotice.setType("公告");
sysNotice.setTypeKey("02");
baseMapper.insert(sysNotice);
return rb.success().setData(sysNotice);
}
public ResultBean<List<NoticeAppListVo>> getAppDetails() {
ResultBean<List<NoticeAppListVo>> rb = ResultBean.fireFail();
List<NoticeAppListVo> list = baseMapper.getAppDetails();
list.removeAll(Collections.singleton(null));
//定义的app的sid的index集合
Map<String, List<Integer>> 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<Integer> 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<Integer> 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<SysNoticeAppDetails> getDetailsApp(String sid) {
ResultBean<SysNoticeAppDetails> 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<String> 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);
}
}

36
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<LoanSecon
private LoanSolutionsDetailService loanSolutionsDetailService;
@Autowired
private LoanSecondarySalesCostMapper loanSecondarySalesCostMapper;
@Autowired
private SysNoticeFeign sysNoticeFeign;
public PagerVo<LoanSecondarySalesApplyVo> listPageVo(PagerQuery<LoanSecondarySalesApplyQuery> pq) {
LoanSecondarySalesApplyQuery query = pq.getParams();
@ -469,7 +477,33 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
loanSecondarySalesApply = fetchBySid(businessSid);
loanSecondarySalesApply.setCloseDate(DateUtil.today());
baseMapper.updateById(loanSecondarySalesApply);
//推公告
PushNoticeQuery pushNoticeQuery = new PushNoticeQuery();
pushNoticeQuery.setApp_type("2");
pushNoticeQuery.setModuleAction("com.anrui.android.plugin.riskcontrol.activity.DetailCarSecondSaleActivity");
pushNoticeQuery.setUserSid(bv.getUserSid());
pushNoticeQuery.setModuleSid("fec4e243-491a-11ec-94cd-fa163e0cb33c");
pushNoticeQuery.setSid(businessSid);
pushNoticeQuery.setCreateTime(DateUtil.today());
pushNoticeQuery.setPcUrl("");
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String closeDates = "";
try {
Date classDate = format.parse(DateUtil.today());
Calendar calendar = Calendar.getInstance(); //使用Calendar日历类对日期进行加减
calendar.setTime(classDate);
calendar.add(Calendar.DAY_OF_MONTH, +3);
classDate = calendar.getTime();
closeDates = format.format(classDate);
} catch (ParseException e) {
e.printStackTrace();
}
pushNoticeQuery.setTitle(loanSecondarySalesApply.getUseOrgName() + "二手车销售公示(竞价截止日期:" + closeDates + ")");
pushNoticeQuery.setValidityDate(closeDates);
Map<String, Object> maps = new HashMap<>();
maps.put("sid", businessSid);
pushNoticeQuery.setArgs_json(JSONObject.toJSONString(maps));
ResultBean resultBeans = sysNoticeFeign.savePushNotice(pushNoticeQuery);
} else {
//极光推送
loanSecondarySalesApply = fetchBySid(businessSid);

Loading…
Cancel
Save