Browse Source

1.添加缓存
2.首页-学区查询

liuyuqiang 2 years ago
parent
commit
35bf82d969

+ 6 - 0
sooka-admin/pom.xml

@@ -72,6 +72,12 @@
             <artifactId>sooka-schooldistrict</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-core</artifactId>
+            <version>5.8.2</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 6 - 0
sooka-admin/src/main/java/com/sooka/web/controller/schooldistrict/BtpSchoolPvController.java

@@ -5,6 +5,7 @@ import com.sooka.common.core.controller.BaseController;
 import com.sooka.common.core.domain.AjaxResult;
 import com.sooka.common.core.page.TableDataInfo;
 import com.sooka.common.enums.BusinessType;
+import com.sooka.common.utils.CacheUtils;
 import com.sooka.common.utils.poi.ExcelUtil;
 import com.sooka.schooldistrict.domain.BtpPolicestationVillage;
 import com.sooka.schooldistrict.domain.BtpSchool;
@@ -21,6 +22,8 @@ import org.springframework.web.bind.annotation.*;
 import java.util.Arrays;
 import java.util.List;
 
+import static com.sooka.common.constant.Constants.SCHOOL_NAME_CACHE;
+
 /**
  * 学区配置Controller
  *
@@ -92,6 +95,7 @@ public class BtpSchoolPvController extends BaseController {
     @PostMapping("/add")
     @ResponseBody
     public AjaxResult addSave(BtpSchoolPv btpSchoolPv) {
+        CacheUtils.removeAll(SCHOOL_NAME_CACHE);
         return toAjax(btpSchoolPvService.insertBtpSchoolPv(btpSchoolPv));
     }
 
@@ -117,6 +121,7 @@ public class BtpSchoolPvController extends BaseController {
     @PostMapping("/edit")
     @ResponseBody
     public AjaxResult editSave(String removeId, BtpSchoolPv btpSchoolPv) {
+        CacheUtils.removeAll(SCHOOL_NAME_CACHE);
         int result = btpSchoolPvService.deleteBtpSchoolPvBySchoolIdAndVIds(removeId);
         if (result > 0) {
             return toAjax(btpSchoolPvService.insertBtpSchoolPv(btpSchoolPv));
@@ -132,6 +137,7 @@ public class BtpSchoolPvController extends BaseController {
     @PostMapping("/remove")
     @ResponseBody
     public AjaxResult remove(String ids) {
+        CacheUtils.removeAll(SCHOOL_NAME_CACHE);
         return toAjax(btpSchoolPvService.deleteBtpSchoolPvBySchoolIdAndVIds(ids));
     }
 }

+ 6 - 7
sooka-admin/src/main/java/com/sooka/web/controller/system/SysIndexController.java

@@ -6,6 +6,7 @@ import java.util.List;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.hutool.core.date.DateUtil;
 import com.sooka.schooldistrict.domain.BtpPolicestationVillage;
 import com.sooka.schooldistrict.domain.BtpSchoolPv;
 import com.sooka.schooldistrict.service.IBtpPolicestationVillageService;
@@ -146,19 +147,17 @@ public class SysIndexController extends BaseController
     @GetMapping("/system/main")
     public String main(ModelMap mmap)
     {
+        mmap.put("title", noticeService.selectNoticeById(1L));
+        mmap.put("notice", noticeService.selectNoticeById(2L));
         SysNotice sysNotice = noticeService.selectNoticeById(10L);
-        if (true) {
+        String[] date = Convert.toStrArray(" 至 ", sysNotice.getNoticeContent());
+        if (DateUtil.isIn(DateUtils.getNowDate(), DateUtils.parseDate(date[0]), DateUtils.parseDate(date[1]))) {
             mmap.put("flag", true);
-            mmap.put("title", noticeService.selectNoticeById(1L));
-            mmap.put("notice", noticeService.selectNoticeById(2L));
             mmap.put("policestations", btpPolicestationVillageService.getPolicestationVillagesByParentId(0L));
-            mmap.put("villages", Arrays.asList(new BtpPolicestationVillage()));
         } else {
             mmap.put("flag", false);
             mmap.put("announcement", noticeService.selectNoticeById(11L));
-            List<BtpPolicestationVillage> list = Arrays.asList(new BtpPolicestationVillage());
-            mmap.put("policestations", list);
-            mmap.put("villages", list);
+            mmap.put("policestations", Arrays.asList(new BtpPolicestationVillage()));
         }
         return "main";
     }

+ 1 - 1
sooka-admin/src/main/resources/application.yml

@@ -101,7 +101,7 @@ shiro:
     # 验证码开关
     captchaEnabled: true
     # 验证码类型 math 数组计算 char 字符
-    captchaType: char
+    captchaType: math
   cookie:
     # 设置Cookie的域名 默认空,即当前访问的域名
     domain: 

+ 25 - 37
sooka-admin/src/main/resources/templates/main.html

@@ -9,8 +9,6 @@
     <link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
     <link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
     <link href="../static/css/style.min.css" th:href="@{/css/style.min.css}" rel="stylesheet"/>
-	<link th:href="@{/ajax/libs/select2/select2.min.css?v=4.0.13}" rel="stylesheet"/>
-	<link th:href="@{/ajax/libs/select2/select2-bootstrap.min.css?v=4.0.13}" rel="stylesheet"/>
 	<style>
 		.gray-bg{
 			background: url(../../img/xit_bg.png) no-repeat top;
@@ -92,16 +90,17 @@
 <body class="gray-bg">
 	<h1 class="xit_logo"><img src="../../img/xit_logo.png"/> </h1>
 	<div class="wrapper wrapper-content animated fadeInRight ibox-content2">
-		<div class="sel_zx">
-			<span class="on">按小学查询</span>
-			<span>按中学查询</span>
+		<div id="schoolType" class="sel_zx">
+			<span class="on" value="1">按小学查询</span>
+			<span value="2">按中学查询</span>
 		</div>
 		<form class="form-horizontal sel_form" id="form-pv-add">
 			<div class="row">
 			<div class="form-group2 col-sm-4">
 				<label class="col-sm-3 control-label is-required">派出所:</label>
 				<div class="col-sm-9">
-					<select id="pId" name="pId" class="form-control select2-multiple">
+					<select id="pId" class="form-control m-b">
+						<option value="">请选择</option>
 						<option th:each="policestation:${policestations}" th:value="${policestation.pvId}" th:text="${policestation.pvName}"></option>
 					</select>
 				</div>
@@ -109,8 +108,8 @@
 			<div class="form-group2 col-sm-4">
 				<label class="col-sm-3 control-label is-required">委(村):</label>
 				<div class="col-sm-9">
-					<select id="vId" class="form-control select2-multiple">
-						<option th:each="village:${villages}" th:value="${village.pvId}" th:text="${village.pvName}" ></option>
+					<select id="vId" class="form-control m-b">
+						<option value="">请选择</option>
 					</select>
 				</div>
 			</div>
@@ -127,31 +126,32 @@
 				<div class="btn-group-sm  col-md-1" id="toolbar" role="group">
 					<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证,请稍候..." onclick="submitHandler()">查询</button>
 				</div>
-
 			</div>
-
 		</form>
 		<div class="form-group ss_jg">
 			<label class="ck_tit control-label">关于您所选的关键词有以下结果可供参考:</label>
 			<span id="schoolId" class="ss_span"></span>
 		</div>
-
 	</div>
 	<script th:inline="javascript"> var ctx = [[@{/}]]; var captchaType = [[${captchaType}]]; </script>
     <script th:src="@{/js/jquery.min.js}"></script>
     <script th:src="@{/js/bootstrap.min.js}"></script>
     <script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
 	<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
-	<script th:src="@{/ajax/libs/select2/select2.min.js?v=4.0.13}"></script>
 	<script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
 	<script src="../static/sooka/js/ry-ui.js" th:src="@{/sooka/js/ry-ui.js?v=4.7.6}"></script>
     <script type="text/javascript">
 		function submitHandler() {
+			var pId = $("#pId").val(), vId = $("#vId").val();
+			if (pId == "" || vId == "") {
+				$.modal.msg("请选择派出所、委(村)");
+				return;
+			}
 			$.modal.loading($("#btnSubmit").data("loading"));
 			$.post("/system/select", {
-				schoolType: $("#schoolType").val(),
-				pId: $("#pId").val(),
-				vId: $("#vId").val(),
+				schoolType: $("#schoolType span[class='on']").attr("value"),
+				pId: pId,
+				vId: vId,
 				validateCode: $("input[name='validateCode']").val()
 			}, function(r) {
 				if (r.code == web_status.SUCCESS) {
@@ -172,36 +172,24 @@
 		}
 
 		function getData(array) {
+			var str = "<option value=''>请选择</option>";
 			$.each(array, function (index, item) {
-				item.id = item.pvId;
-				item.text = item.pvName;
+				str += "<option value='" + item.pvId + "'>" + item.pvName + "</option>";
 			})
-			return array;
+			return str;
 		}
 
 		$(function() {
-			$('#pId').select2({
-				placeholder: "请选择派出所",
-				allowClear: false
-			}).on('select2:select', function (e) {
-				//处理自己的业务
+			$("#schoolType span").click(function () {
+				$("#schoolType span").removeClass("on");
+				$(this).addClass("on");
+			});
+
+			$('#pId').on('change', function (e) {
 				$.get("/schooldistrict/policestationvillage/getPolicestationVillagesByParentId?parentId=" + this.value, function(result) {
-					$('#vId').empty().select2({
-						data: getData(result),
-						placeholder: "请选择委(村)",
-						allowClear: false
-					});
+					$('#vId').empty().append(getData(result));
 				});
 			});
-			$('#vId').select2({
-				placeholder: "请选择委(村)",
-				allowClear: false
-			});
-			$('#schoolType').select2({
-				placeholder: "请选择中、小学",
-				allowClear: false,
-				minimumResultsForSearch: -1
-			});
 
 			$('.imgcode').click(function() {
 				var url = ctx + "captcha/captchaImage?type=" + captchaType + "&s=" + Math.random();

+ 1 - 1
sooka-admin/src/main/resources/templates/schooldistrict/config/add.html

@@ -27,7 +27,7 @@
                 <label class="col-sm-3 control-label is-required">委(村):</label>
                 <div class="col-sm-8">
                     <select id="vId" name="vId" class="form-control select2-multiple" multiple>
-                        <option th:each="village:${villages}" th:value="${village.pvId}" th:text="${village.pvName}" ></option>
+                        <option th:each="village:${villages}" th:value="${village.pvId}" th:text="${village.pvName}"></option>
                     </select>
                 </div>
             </div>

+ 6 - 0
sooka-common/src/main/java/com/sooka/common/constant/Constants.java

@@ -83,6 +83,12 @@ public class Constants
     public static final String SYS_DICT_KEY = "sys_dict:";
 
     /**
+     *
+     * 学区查询 cache name
+     */
+    public static final String SCHOOL_NAME_CACHE = "school-name:";
+
+    /**
      * 资源映射路径 前缀
      */
     public static final String RESOURCE_PREFIX = "/profile";

+ 11 - 1
sooka-schooldistrict/src/main/java/com/sooka/schooldistrict/service/impl/BtpSchoolPvServiceImpl.java

@@ -1,6 +1,8 @@
 package com.sooka.schooldistrict.service.impl;
 
 import com.sooka.common.core.text.Convert;
+import com.sooka.common.utils.CacheUtils;
+import com.sooka.common.utils.StringUtils;
 import com.sooka.schooldistrict.domain.BtpSchoolPv;
 import com.sooka.schooldistrict.mapper.BtpSchoolPvMapper;
 import com.sooka.schooldistrict.service.IBtpSchoolPvService;
@@ -10,6 +12,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
+import static com.sooka.common.constant.Constants.SCHOOL_NAME_CACHE;
+
 /**
  * 学区配置Service业务层处理
  *
@@ -82,6 +86,12 @@ public class BtpSchoolPvServiceImpl implements IBtpSchoolPvService {
 
     @Override
     public List<String> getSchoolName(BtpSchoolPv btpSchoolPv) {
-        return btpSchoolPvMapper.getSchoolName(btpSchoolPv);
+        String key = btpSchoolPv.getSchoolType() + "_" + btpSchoolPv.getpId() + "_" + btpSchoolPv.getvId();
+        Object schoolNames = CacheUtils.get(SCHOOL_NAME_CACHE, key);
+        if (StringUtils.isNull(schoolNames)) {
+            schoolNames = btpSchoolPvMapper.getSchoolName(btpSchoolPv);
+            CacheUtils.put(SCHOOL_NAME_CACHE, key, schoolNames);
+        }
+        return StringUtils.cast(schoolNames);
     }
 }