diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java index 8998b9cd..dcb9e317 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java @@ -56,8 +56,8 @@ public class OutSideDataServiceImpl implements IOutSideDataService { String responseStr = okHttpUtil.doPostJson(url, json, headers); JsonNode rootNode= mapper.readTree(responseStr); - JsonNode result = rootNode.get("result")!=null ?( rootNode.get("result").get("data") !=null ? rootNode.get("result").get("data"):null):null; - if(rootNode.get("result")!=null & rootNode.get("result").isArray()) { + JsonNode result = rootNode.get("result")!=null ? ( rootNode.get("result").get("data") !=null ? rootNode.get("result").get("data"):null):null; + if(result!=null && result.isArray()) { //这里应该是单独的线程去处理 for(JsonNode JsonNode :result) { AudienceUser au=new AudienceUser(); @@ -166,7 +166,7 @@ public class OutSideDataServiceImpl implements IOutSideDataService { String token = TokenProxy.getToken(request); String type="application/json"; String[] headers=new String[] {"token",token,"Content-Type",type}; - String url= getBaseUrl("/org/listOrgIds"); + String url= getBaseUrl("/org/manageOrgIds"); ObjectMapper mapper=new ObjectMapper(); String responseStr=null; try{ @@ -178,7 +178,7 @@ public class OutSideDataServiceImpl implements IOutSideDataService { return null; } - if(rootNode.get("result")!=null & rootNode.get("result").isObject()) { + if(rootNode.get("result")!=null & rootNode.get("result").isArray()) { JsonNode result = rootNode.get("result"); Iterator elements = result.elements(); while (elements.hasNext()){ @@ -191,6 +191,72 @@ public class OutSideDataServiceImpl implements IOutSideDataService { return orgIds; } + +// public static void main(String[] args) { +//// List orgIds = new ArrayList<>(); +//// String token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzUzMDkxMDcsImV4cCI6MTY3NTMxNjMwNywiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjdFMDY1NzQxLTkzRUItRTc1Ni02Mzk5LUIwQTA1QUY2NEE3OSIsInVJZCI6Ijk2NTM2OTU4MjM5Mjk3MTI2NCIsInBlcm1pc3Npb24iOiIifQ==.6780daf88206d3f4f2cfc184268f4c1b80f25a916105219a5a6f2e904762b1e8"; +//// String type="application/json"; +//// String[] headers=new String[] {"token",token,"Content-Type",type}; +//// String url= ("https://u.boe.com/userbasic/org/manageOrgIds"); +//// ObjectMapper mapper=new ObjectMapper(); +//// String responseStr=null; +//// try{ +//// OkHttpUtil http=new OkHttpUtil(); +//// responseStr = http.doPostJson(url,"{}", headers); +//// System.out.println(responseStr); +//// JsonNode rootNode= mapper.readTree(responseStr); +//// int code = rootNode.get("status").asInt(); +//// System.out.println("code="+code); +//// if(code!=200) { +//// log.error("获取当前用户拥有权限机构id错误:"+responseStr); +//// } +//// +//// if(rootNode.get("result")!=null & rootNode.get("result").isArray()) { +//// JsonNode result = rootNode.get("result"); +//// Iterator elements = result.elements(); +//// while (elements.hasNext()){ +//// orgIds.add(elements.next().toString()); +//// } +//// } +//// for(String str : orgIds) { +//// System.out.println(str); +//// } +//// }catch (Exception e){ +//// log.error("获取当前用户有权限的机构id错误",e); +//// } +// String token="eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzUzMTY3OTMsImV4cCI6MTY3NTMyMzk5MywiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjdFMDY1NzQxLTkzRUItRTc1Ni02Mzk5LUIwQTA1QUY2NEE3OSIsInVJZCI6Ijk2NTM2OTU4MjM5Mjk3MTI2NCIsInBlcm1pc3Npb24iOiIifQ==.75814a454f8a022cbe24f29eb956b5350f1212fc105b951df8bc2a82975a05a4"; +// String url= "https://u.boe.com/userbasic/audience/memberList"; +// Map params = new HashMap<>(); +// params.put("audienceId", "70061506155860912129"); +// String json = null; +// List list=new ArrayList(); +// ObjectMapper mapper=new ObjectMapper(); +// try { +// +// json = mapper.writeValueAsString(params); +// OkHttpUtil http=new OkHttpUtil(); +// String[] headers=new String[] {"token",token,"Content-Type","application/json"}; +// String responseStr = http.doPostJson(url, json, headers); +// System.out.println(responseStr); +// JsonNode rootNode= mapper.readTree(responseStr); +// +// JsonNode result = rootNode.get("result")!=null ? ( rootNode.get("result").get("data") !=null ? rootNode.get("result").get("data"):null):null; +// if(result!=null && result.isArray()) { +// //这里应该是单独的线程去处理 +// for(JsonNode JsonNode :result) { +// AudienceUser au=new AudienceUser(); +// au.setId(JsonNode.get("id").asText()); +// au.setName(JsonNode.get("userName").asText()); +// au.setCode(JsonNode.get("userNo").asText()); +// list.add(au); +// System.out.println(au.getName()); +// } +// } +// } catch (Exception e) { +// log.error("获取受众用户列表错误",e); +// } +// +// } private String getBaseUrl(String url) { String baseUrl=SysConstant.getConfigValue("xboe.server.userbasic.url"); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/article/service/impl/ArticleServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/article/service/impl/ArticleServiceImpl.java index 48ea9b69..c705440b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/article/service/impl/ArticleServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/article/service/impl/ArticleServiceImpl.java @@ -68,21 +68,28 @@ public class ArticleServiceImpl implements IArticleService{ @Override public List
articelList(Integer type) { + OrderCondition oc=OrderCondition.desc("sysCreateTime"); + if(type==2){ + oc=OrderCondition.desc("views"); + } //先查出带有图片的 List
articles = new ArrayList<>(); - Article article = dao.findOne(FieldFilters.eq("status", Article.STATUS_PUBLISH), FieldFilters.eq("deleted", false), FieldFilters.eq("enabled", true), - FieldFilters.isNotNull("coverurl"), FieldFilters.ge("coverurl", "")); - articles.add(article); - +// Article article = dao.findOne(FieldFilters.eq("status", Article.STATUS_PUBLISH), FieldFilters.eq("deleted", false), FieldFilters.eq("enabled", true), +// FieldFilters.isNotNull("coverurl"), FieldFilters.ne("coverurl", "")); +// articles.add(article); + List
tops =dao.findList(1, oc,FieldFilters.eq("status", Article.STATUS_PUBLISH), FieldFilters.eq("deleted", false), FieldFilters.eq("enabled", true), + FieldFilters.isNotNull("coverurl"),FieldFilters.ne("coverurl", "")); + + Article first=tops.get(0); + articles.add(first); + QueryBuilder builder = QueryBuilder.from(Article.class); - if(type==2){ - builder.addOrder(OrderCondition.desc("views")); - }else{ - builder.addOrder(OrderCondition.desc("sysCreateTime")); - } + + builder.addOrder(oc); builder.addFilter(FieldFilters.eq("status", Article.STATUS_PUBLISH)); builder.addFilter(FieldFilters.eq("enabled",true)); builder.addFilter(FieldFilters.eq("deleted",false)); + builder.addFilter(FieldFilters.ne("id", first.getId()));//去除第一个 builder.setPageSize(3); List
list = dao.findList(builder.builder()); articles.addAll(list); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java index e0f0ef48..d8670126 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java @@ -1,4 +1,4 @@ -package com.xboe.module.course.api; + package com.xboe.module.course.api; import java.io.OutputStream; import java.util.ArrayList; @@ -115,6 +115,7 @@ public class CourseManageApi extends ApiBaseController{ try { List orgIds = outSideDataService.getOrgIds(); String ids= StringUtils.join(orgIds,","); + //log.info("获取到的用户的组织机构权限ids",ids); String aid=getCurrent().getAccountId(); //如果前端查询当前人的,这里去掉 if(StringUtils.isNotBlank( dto.getAid())) { diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/user/api/MessageApi.java b/servers/boe-server-all/src/main/java/com/xboe/system/user/api/MessageApi.java index 4d7ff5d7..fd0116d2 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/user/api/MessageApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/user/api/MessageApi.java @@ -22,6 +22,7 @@ import com.xboe.core.log.AutoLog; import com.xboe.system.user.entity.Message; import com.xboe.system.user.service.IMessageService; import com.xboe.system.user.service.MessageSender; +import com.xboe.system.user.vo.BatchMessage; import lombok.extern.slf4j.Slf4j; @@ -105,6 +106,45 @@ public class MessageApi extends ApiBaseController { return error("发布消息失败",e.getMessage()); } } + + @PostMapping("/batch-send") + @AutoLog(module = "消息",action = "批量发送消息") + public JsonResponse batchSave(@RequestBody BatchMessage message){ + + if(message.getAcceptIds()==null || message.getAcceptIds().isEmpty()) { + return badRequest("无发送人信息"); + } + + if(message.getAcceptNames()==null || message.getAcceptNames().isEmpty()) { + return badRequest("无发送人姓名信息"); + } + + if(message.getAcceptIds().size()!=message.getAcceptNames().size()) { + return badRequest("发送人姓名信息不相符"); + } + + if(StringUtil.isBlank(message.getTitle())){ + return badRequest("标题不能为空"); + } + + if(StringUtil.isBlank(message.getTitle())){ + return badRequest("标题不能为空"); + } + if(StringUtil.isBlank(message.getContent())){ + return badRequest("内容不能为空"); + } + try { + //message.setIsRead(false); +// message.setMsgType(1); +// message.setMsgTime(LocalDateTime.now()); + //MessageSender.send(message); + return success(true); + } catch (Exception e) { + log.error("发布消息失败",e); + return error("发布消息失败",e.getMessage()); + } + } + /** * 当前登陆人未读消息条数 * */ diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/user/api/SysManagerApi.java b/servers/boe-server-all/src/main/java/com/xboe/system/user/api/SysManagerApi.java index 517676d1..48b43343 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/user/api/SysManagerApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/user/api/SysManagerApi.java @@ -31,7 +31,6 @@ public class SysManagerApi extends ApiBaseController { /** * 分页查询 - * * @return */ @PostMapping("/page") @@ -47,7 +46,6 @@ public class SysManagerApi extends ApiBaseController { /** * 保存 - * * @param sysManager * @return */ diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/user/service/IMessageService.java b/servers/boe-server-all/src/main/java/com/xboe/system/user/service/IMessageService.java index 3b52343b..8e7692fe 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/user/service/IMessageService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/user/service/IMessageService.java @@ -5,6 +5,7 @@ import java.util.Map; import com.xboe.common.PageList; import com.xboe.system.user.entity.Message; +import com.xboe.system.user.vo.BatchMessage; /** * 消息接口 @@ -20,6 +21,12 @@ public interface IMessageService { * 查看消息 * */ PageList queryMobile(int pageIndex,int pageSize,String aid,Boolean isRead); + + /** + * 批量保存 + * @param batch + */ + void batchSave(List list); /** * 删除消息 diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/user/service/MessageSender.java b/servers/boe-server-all/src/main/java/com/xboe/system/user/service/MessageSender.java index bccd86a8..35f24431 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/user/service/MessageSender.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/user/service/MessageSender.java @@ -1,7 +1,12 @@ package com.xboe.system.user.service; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + import org.springframework.stereotype.Component; +import com.xboe.common.utils.IDGenerator; import com.xboe.system.user.entity.Message; /** @@ -16,9 +21,44 @@ public class MessageSender { public MessageSender(IMessageService service) { MessageSender.messageService=service; } + public static void send(Message msg) { if(messageService!=null){ messageService.save(msg); } } + + public static void batchSend(List acceptIds,List acceptNames, Message data) { + if(messageService!=null){ + List msgList=new ArrayList(); + int n=acceptIds.size(); + LocalDateTime now=LocalDateTime.now(); + for(int i=0;i ids) { dao.deleteByFilter(FieldFilters.in("id",ids)); } @Override + @Transactional public Message detail(String id) { Message message = dao.get(id); if(!message.getIsRead()){ @@ -75,6 +77,7 @@ public class MessageServiceImpl implements IMessageService { } @Override + @Transactional public void save(Message message) { dao.save(message); } @@ -89,6 +92,7 @@ public class MessageServiceImpl implements IMessageService { } @Override + @Transactional public void updateIsRead(List ids) { dao.update(UpdateBuilder.from(Message.class) .addUpdateField("isRead",true) @@ -113,6 +117,7 @@ public class MessageServiceImpl implements IMessageService { } @Override + @Transactional public void remove(String aid) { dao.deleteByFilter(FieldFilters.eq("acceptId",aid)); } @@ -128,6 +133,7 @@ public class MessageServiceImpl implements IMessageService { } @Override + @Transactional public void setReadByAcceptId(String aid) { dao.update("Update "+Message.class.getSimpleName()+" set isRead=?1 where acceptId=?2 and isRead=?3", true,aid,false); } @@ -137,4 +143,14 @@ public class MessageServiceImpl implements IMessageService { dao.deleteByField("acceptId", aid); } + + @Override + @Transactional + public void batchSave(List list) { + +// for(Message msg : list) { +// +// } + dao.saveList(list); + } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/user/vo/BatchMessage.java b/servers/boe-server-all/src/main/java/com/xboe/system/user/vo/BatchMessage.java new file mode 100644 index 00000000..f56b04d1 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/system/user/vo/BatchMessage.java @@ -0,0 +1,43 @@ +package com.xboe.system.user.vo; + +import java.util.List; + +import lombok.Data; + +/** + * 批量消息 + * + */ +@Data +public class BatchMessage { + + /** + * 提交人id + */ + private List acceptIds; + + private List acceptNames; + + private String refId; + + private String refType; + + private Integer pageType; + + /** + * 页面参数 默认是id + */ + private String pageParams; + + private String sendName; + + private String sendAid; + + private Integer sendType; + + private String title; + + private String content; + + private Integer source; +}