| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package com.ljsd.controller;
- import com.google.gson.Gson;
- import com.ljsd.pojo.NoticeInfo;
- import com.ljsd.pojo.ResMsg;
- import com.ljsd.util.BaseGlobal;
- import com.mongodb.DBObject;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.*;
- /**
- * 常驻 中 高优先级 同等优先级按最新发布的
- */
- public class GetNoticeController extends HttpServlet {
- private static Gson gson = new Gson();
- private final static String _NOTICE_INFO = "notice_info";
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
- req.setCharacterEncoding("UTF-8");
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application/json; charset=utf-8");
- ResMsg resMsg = new ResMsg();
- resMsg.setCode(1);
- try (PrintWriter out = response.getWriter();) {
- Comparator<NoticeInfo> comparator = (o1, o2) -> {
- if (o1.getStartTime() < o2.getStartTime()) {
- return -1;
- } else if (o1.getStartTime() == o2.getStartTime()) {
- return 0;
- } else {
- return 1;
- }
- };
- TreeSet<NoticeInfo> highLevelList = new TreeSet(comparator);
- TreeSet<NoticeInfo> mediumLevelList = new TreeSet(comparator);
- TreeSet<NoticeInfo> normalList = new TreeSet(comparator);
- long localtime = System.currentTimeMillis();
- NoticeInfo res = new NoticeInfo();
- res.setTitle(new String("公告".getBytes("gbk"), "utf-8"));
- res.setContent(new String("暂无公告...".getBytes("gbk"), "utf-8"));
- List<DBObject> allDBObject = BaseGlobal.getInstance().mongoDBPool.findAll(_NOTICE_INFO);
- for (DBObject db : allDBObject) {
- NoticeInfo noticeInfo = dbToNoticeInfo(db);
- if (noticeInfo == null) {
- break;
- }
- //0:常驻;1:优先级中;2:优先级高
- switch(noticeInfo.getLeve()){
- case 0 :
- normalList.add(noticeInfo);
- break;
- case 1 :
- mediumLevelList.add(noticeInfo);
- break;
- case 2 :
- highLevelList.add(noticeInfo);
- break;
- }
- }
- if(highLevelList.size() > 0){
- res = highLevelList.last();
- } else if(mediumLevelList.size() > 0){
- res = mediumLevelList.last();
- } else if (normalList.size() > 0) {
- res = normalList.last();
- }
- Map<String, String> parms = new HashMap<>();
- parms.put("title", res.getTitle());
- parms.put("content", res.getContent());
- resMsg.setParms(parms);
- out.print(gson.toJson(resMsg));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- //转成NoticeInfo类型
- public NoticeInfo dbToNoticeInfo(DBObject db) {
- NoticeInfo noticeInfo = new NoticeInfo();
- if(db == null){
- return null;
- }
- noticeInfo.setTitle(db.get("title").toString());
- noticeInfo.setContent(db.get("content").toString());
- noticeInfo.setLeve(Integer.parseInt(db.get("grade").toString()));
- noticeInfo.setStartTime(Long.parseLong(db.get("publish_time").toString()));
- return noticeInfo;
- }
- }
|