|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|