Ver Fonte

发布提醒14天、3月和6月未更新数据源切换

gt há 2 anos atrás
pai
commit
10ec1b6c28

+ 5 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/controller/ArticleController.java

@@ -104,4 +104,9 @@ public class ArticleController {
         map.put("date", date);
         return articleService.getNAFBArticleByDate(map);
     }
+
+    @GetMapping("/publicRemind")
+    public Map<String, Object> publicRemind() {
+        return articleService.publicRemind();
+    }
 }

+ 6 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/service/ArticleService.java

@@ -148,4 +148,10 @@ public interface ArticleService {
 	 * @return
 	 */
 	Map<String, Object> getNAFBArticleByDate(Map<String, Object> map);
+
+	/**
+	 * 发布提醒
+	 * @return
+	 */
+    Map<String, Object> publicRemind();
 }

+ 167 - 3
nngkxxdp/src/main/java/com/example/nngkxxdp/service/impl/ArticleServiceImpl.java

@@ -1,12 +1,14 @@
 package com.example.nngkxxdp.service.impl;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
 import cn.hutool.core.convert.Convert;
+import com.example.nngkxxdp.dao.HlwInterfaceDao;
+import com.example.nngkxxdp.dao.TjDao;
 import org.springframework.stereotype.Service;
 
 import com.alibaba.fastjson.JSONArray;
@@ -34,6 +36,12 @@ public class ArticleServiceImpl implements ArticleService {
 	@Resource
 	private SmsMessageDao smsMessageDao;
 
+	@Resource
+	private HlwInterfaceDao hlwInterfaceDao;
+
+	@Resource
+	private TjDao tjDao;
+
 	/**
 	 * 通过ID查询单条数据
 	 *
@@ -357,4 +365,160 @@ public class ArticleServiceImpl implements ArticleService {
 		}
 		return SendUtil.layuiTable(0, null);
 	}
+
+	@Override
+	public Map<String, Object> publicRemind() {
+		Map<String, Object> res = new HashMap<>();
+		Map<String, Object> twoWeek = new HashMap<>();
+		Map<String, Object> threeMonth = new HashMap<>();
+		Map<String, Object> sixMonth = new HashMap<>();
+
+		List<Map<String, Object>> allDept = tjDao.getAllDept(null);
+		Map<String, Object> columns = handleColumn(hlwInterfaceDao.getAllColumn(DateUtil.format(new Date(), "yyyy-MM-dd")));
+
+		for (int i = 0; i < allDept.size(); i++) {
+			Map<String, Object> deptItem = allDept.get(i);
+			String deptname = deptItem.get("deptname").toString();
+			String deptUrl = deptItem.get("deptUrl").toString();
+			String[] chnlids = Convert.toStr(deptItem.get("haveChnlid"), "").split(",");
+			if (chnlids == null || chnlids.length == 0) {
+				continue;
+			}
+			for (int j = 0; j < chnlids.length; j++) {
+				String chnlid = chnlids[j];
+				if (chnlid.equals("286404")) {
+					System.out.println();
+				}
+				Map<String, Object> column = Convert.toMap(String.class, Object.class, columns.get(chnlid));
+				if (Blank.isEmpty(column)) {
+					continue;
+				}
+				String isExceed = Convert.toStr(column.get("isExceed"), "0");
+				if ("0".equals(isExceed)) {
+					continue;
+				}
+				String frequency = column.get("frequency").toString();
+				String lastUpdate = column.get("docreltime").toString();
+				String chnlName = hlwInterfaceDao.getChnlNameByChnlid(chnlid);
+
+				// 两周
+				if ("14".equals(frequency)) {
+					JSONObject obj = Convert.convert(JSONObject.class, twoWeek.get(deptname));
+					if (obj == null) {
+						obj = new JSONObject();
+						JSONArray arr = new JSONArray();
+						JSONObject record = new JSONObject();
+						record.put("columnName", chnlName);
+						record.put("lastUpdate", lastUpdate);
+						record.put("chnlid", chnlid);
+						arr.add(record);
+						obj.put("records", arr);
+						obj.put("count", 1);
+						obj.put("deptUrl", deptUrl);
+					} else {
+						JSONArray arr = obj.getJSONArray("records");
+						JSONObject record = new JSONObject();
+						record.put("columnName", chnlName);
+						record.put("lastUpdate", lastUpdate);
+						record.put("chnlid", chnlid);
+						arr.add(record);
+						obj.put("records", arr);
+						obj.put("count", obj.getInteger("count") + 1);
+					}
+					twoWeek.put(deptname, obj);
+				}
+
+				if ("90".equals(frequency)) {
+					JSONObject obj = Convert.convert(JSONObject.class, threeMonth.get(deptname));
+					if (obj == null) {
+						obj = new JSONObject();
+						JSONArray arr = new JSONArray();
+						JSONObject record = new JSONObject();
+						record.put("columnName", chnlName);
+						record.put("lastUpdate", lastUpdate);
+						record.put("chnlid", chnlid);
+						arr.add(record);
+						obj.put("records", arr);
+						obj.put("count", 1);
+						obj.put("deptUrl", deptUrl);
+					} else {
+						JSONArray arr = obj.getJSONArray("records");
+						JSONObject record = new JSONObject();
+						record.put("columnName", chnlName);
+						record.put("lastUpdate", lastUpdate);
+						record.put("chnlid", chnlid);
+						arr.add(record);
+						obj.put("records", arr);
+						obj.put("count", obj.getInteger("count") + 1);
+					}
+					threeMonth.put(deptname, obj);
+				}
+
+				if ("180".equals(frequency)) {
+					JSONObject obj = Convert.convert(JSONObject.class, sixMonth.get(deptname));
+					if (obj == null) {
+						obj = new JSONObject();
+						JSONArray arr = new JSONArray();
+						JSONObject record = new JSONObject();
+						record.put("columnName", chnlName);
+						record.put("lastUpdate", lastUpdate);
+						record.put("chnlid", chnlid);
+						arr.add(record);
+						obj.put("records", arr);
+						obj.put("count", 1);
+						obj.put("deptUrl", deptUrl);
+					} else {
+						JSONArray arr = obj.getJSONArray("records");
+						JSONObject record = new JSONObject();
+						record.put("columnName", chnlName);
+						record.put("lastUpdate", lastUpdate);
+						record.put("chnlid", chnlid);
+						arr.add(record);
+						obj.put("records", arr);
+						obj.put("count", obj.getInteger("count") + 1);
+					}
+					sixMonth.put(deptname, obj);
+				}
+
+			}
+
+		}
+		res.put("twoWeek", sortRes(twoWeek));
+		res.put("threeMonth", sortRes(threeMonth));
+		res.put("sixMonth", sortRes(sixMonth));
+		return SendUtil.send(true, "", res);
+	}
+
+	/**
+	 * 发布提醒排序
+	 * @param map
+	 * @return
+	 */
+	private Map<Object, Object> sortRes(Map<String, Object> map) {
+		List<String> collect = map.keySet().stream().sorted((k1, k2) ->
+				Convert.convert(JSONObject.class, map.get(k2)).getInteger("count") - Convert.convert(JSONObject.class, map.get(k1)).getInteger("count")
+		).collect(Collectors.toList());
+
+		Map<Object, Object> res = new LinkedHashMap<>();
+		for (int i = 0; i < collect.size(); i++) {
+			String deptName = collect.get(i);
+			res.put(deptName, map.get(deptName));
+		}
+		return res;
+	}
+
+	/**
+	 * 转储为map,chnlid作为key
+	 * @param allColumn
+	 * @return
+	 */
+	private Map<String, Object> handleColumn(List<Map<String, Object>> allColumn) {
+		Map<String, Object> res = new HashMap<>();
+		for (int i = 0; i < allColumn.size(); i++) {
+			Map<String, Object> map = allColumn.get(i);
+			res.put(map.get("chnlid").toString(), map);
+		}
+
+		return res;
+	}
 }

+ 1 - 1
nngkxxdp/src/main/resources/static/page/index.html

@@ -695,7 +695,7 @@
                                         <ul style="color: #fff;font-weight: 600;">
                                             <li>超过14天未更新</li>
                                             <li>超过3月未更新</li>
-                                            <li>超过1年未更新</li>
+                                            <li>超过6月未更新</li>
                                         </ul>
                                     </div>
                                     <div class="flexMessage clearfix">

+ 70 - 67
nngkxxdp/src/main/resources/static/page/js/base/fbtx.item.js

@@ -1,97 +1,100 @@
 function gtTimeReleaseArticle(){
 	lyupload();
-	get("/api/article/getGtTimeReleaseArticle", true, {}, function(res){
+
+	get("/article/publicRemind", true, {}, function(res){
 		if(res.result){
-			var gt7dColumn = res.data.gt7dColumn;
-			var gt7dArticle = res.data.gt7dArticle;
-			var gt1mColumn = res.data.gt1mColumn;
-			var gt1mArticle = res.data.gt1mArticle;
-			var gt3mColumn = res.data.gt3mColumn;
-			var gt3mArticle = res.data.gt3mArticle;
-			var str = "";
-			for(var i = 0; i < gt7dColumn.length; i++){
-				var data = gt7dColumn[i];
+			$("#gt7d").empty();
+			var twoWeek = res.data.twoWeek;
+
+			var str = '';
+			var depts = Object.keys(twoWeek);
+			for(var i = 0; i < Object.keys(twoWeek).length; i++) {
+				var deptName = depts[i];
+				var data = twoWeek[deptName];
+
 				str += '<li class="layui-collapse"> <div class="layui-colla-item">'
-					+ '<p class="messageName layui-colla-title"><a class="layui-font-blue click-hover" href="' 
-					+ data.deptUrl 
-					+ '" target="_blank" style="margin-left: 15px;">' 
-					+ data.columnFirstName 
-					+ '<span class="layui-badge-dot layui-bg-blue badge">' + data.secondCount + '</span>'
+					+ '<p class="messageName layui-colla-title"><a class="layui-font-blue click-hover" href="'
+					+ data.deptUrl
+					+ '" target="_blank" style="margin-left: 15px;">'
+					+ deptName
+					+ '<span class="layui-badge-dot layui-bg-blue badge">' + data.count + '</span>'
 					+ '</a><span class="dx-title click-hover click-event-dxtx" data-deptname="'
-					+ data.columnFirstName 
+					+ deptName
 					+ '">短信提醒</span></p><div class="layui-colla-content">';
-				
-				for(var j = 0; j < gt7dArticle.length; j++){
-					var data1 = gt7dArticle[j];
-					if(data.columnFirstName == data1.columnFirstName){
-						str += '<p class="sameMessage">栏目:<a class="layui-font-blue click-hover" href="' + data1.columnSecondUrl 
-						+ '" target="_blank">' + data1.columnSecondName + '</a></p>'
-						+ '<p class="sameMessage sameMessagesec">最近更新:' + data1.releaseDate.replaceAll("-", ".") + '</p>'
-					}
+
+				for(var j = 0; j < data.records.length; j++){
+					var data1 = data.records[j];
+					str += '<p class="sameMessage">栏目:<a class="layui-font-blue click-hover" target="_blank">' + data1.columnName + '</a></p>'
+						+ '<p class="sameMessage sameMessagesec">最近更新:' + data1.lastUpdate.split(' ')[0].replaceAll("-", ".") + '</p>'
 				}
-				
+
 				str += '</div></div></li>';
-				
+
 			}
 			$("#gt7d").html(str);
-			
-			str = "";
-			for(var i = 0; i < gt1mColumn.length; i++){
-				var data = gt1mColumn[i];
+
+			$("#gt1m").empty();
+			var threeMonth = res.data.threeMonth;
+			var str = '';
+			var depts = Object.keys(threeMonth);
+			for(var i = 0; i < Object.keys(threeMonth).length; i++) {
+				var deptName = depts[i];
+				var data = threeMonth[deptName];
+
 				str += '<li class="layui-collapse"> <div class="layui-colla-item">'
-					+ '<p class="messageName layui-colla-title"><a class="layui-font-blue click-hover" href="' 
-					+ data.deptUrl 
+					+ '<p class="messageName layui-colla-title"><a class="layui-font-blue click-hover" href="'
+					+ data.deptUrl
 					+ '" target="_blank" style="margin-left: 15px;">'
-					+ data.columnFirstName 
-					+ '<span class="layui-badge-dot layui-bg-blue badge">' + data.secondCount + '</span>'
+					+ deptName
+					+ '<span class="layui-badge-dot layui-bg-blue badge">' + data.count + '</span>'
 					+ '</a><span class="dx-title click-hover click-event-dxtx" data-deptname="'
-					+ data.columnFirstName 
+					+ deptName
 					+ '">短信提醒</span></p><div class="layui-colla-content">';
-				
-				for(var j = 0; j < gt1mArticle.length; j++){
-					var data1 = gt1mArticle[j];
-					if(data.columnFirstName == data1.columnFirstName){
-						str += '<p class="sameMessage">栏目:<a class="layui-font-blue click-hover" href="' + data1.columnSecondUrl 
-						+ '" target="_blank">' + data1.columnSecondName + '</a></p>'
-						+ '<p class="sameMessage sameMessagesec">最近更新:' + data1.releaseDate.replaceAll("-", ".") + '</p>'
-					}
+
+				for(var j = 0; j < data.records.length; j++){
+					var data1 = data.records[j];
+					str += '<p class="sameMessage">栏目:<a class="layui-font-blue click-hover" target="_blank">' + data1.columnName + '</a></p>'
+						+ '<p class="sameMessage sameMessagesec">最近更新:' + data1.lastUpdate.split(' ')[0].replaceAll("-", ".") + '</p>'
 				}
-				
+
 				str += '</div></div></li>';
-				
+
 			}
 			$("#gt1m").html(str);
-			
-			str = "";
-			for(var i = 0; i < gt3mColumn.length; i++){
-				var data = gt3mColumn[i];
+
+			$("#gt3m").empty();
+			var sixMonth = res.data.sixMonth;
+			var str = '';
+			var depts = Object.keys(sixMonth);
+			for(var i = 0; i < Object.keys(sixMonth).length; i++) {
+				var deptName = depts[i];
+				var data = sixMonth[deptName];
+
 				str += '<li class="layui-collapse"> <div class="layui-colla-item">'
-					+ '<p class="messageName layui-colla-title"><a class="layui-font-blue click-hover" href="' 
-					+ data.deptUrl 
+					+ '<p class="messageName layui-colla-title"><a class="layui-font-blue click-hover" href="'
+					+ data.deptUrl
 					+ '" target="_blank" style="margin-left: 15px;">'
-					+ data.columnFirstName 
-					+ '<span class="layui-badge-dot layui-bg-blue badge">' + data.secondCount + '</span>'
+					+ deptName
+					+ '<span class="layui-badge-dot layui-bg-blue badge">' + data.count + '</span>'
 					+ '</a><span class="dx-title click-hover click-event-dxtx" data-deptname="'
-					+ data.columnFirstName 
+					+ deptName
 					+ '">短信提醒</span></p><div class="layui-colla-content">';
-				
-				for(var j = 0; j < gt3mArticle.length; j++){
-					var data1 = gt3mArticle[j];
-					if(data.columnFirstName == data1.columnFirstName){
-						str += '<p class="sameMessage">栏目:<a class="layui-font-blue click-hover" href="' + data1.columnSecondUrl 
-						+ '" target="_blank">' + data1.columnSecondName + '</a></p>'
-						+ '<p class="sameMessage sameMessagesec">最近更新:' + data1.releaseDate.replaceAll("-", ".") + '</p>'
-					}
+
+				for(var j = 0; j < data.records.length; j++){
+					var data1 = data.records[j];
+					str += '<p class="sameMessage">栏目:<a class="layui-font-blue click-hover" target="_blank">' + data1.columnName + '</a></p>'
+						+ '<p class="sameMessage sameMessagesec">最近更新:' + data1.lastUpdate.split(' ')[0].replaceAll("-", ".") + '</p>'
 				}
-				
+
 				str += '</div></div></li>';
-				
+
 			}
 			$("#gt3m").html(str);
+
 			element.init();
 			$(".layui-colla-title").on("click","a",function(event){
 				layui.stope(event);
-			})	
+			})
 			$(".layui-colla-title").on("click",".click-event-dxtx",function(event){
 				layui.stope(event);
 				var deptname = $(this).attr("data-deptname");
@@ -114,9 +117,9 @@ function gtTimeReleaseArticle(){
 					  layer.msg("查询失败");
 				})
 			})
-			
+
 		}
-		
+
 	},function(err){
 	})
 }