浏览代码

验证码

liuyuqiang 2 年之前
父节点
当前提交
8b637c2665

+ 1 - 2
sooka-admin/src/main/java/com/sooka/web/controller/schooldistrict/BtpSchoolPvController.java

@@ -51,8 +51,7 @@ public class BtpSchoolPvController extends BaseController {
     /**
      * 查询学区列表
      */
-//    @RequiresPermissions("schooldistrict:index:list")
-    @Log(title = "学区查询", businessType = BusinessType.SELECT)
+    @RequiresPermissions("schooldistrict:index:list")
     @PostMapping("/list")
     @ResponseBody
     public TableDataInfo list(BtpSchoolPv btpSchoolPv) {

+ 32 - 5
sooka-admin/src/main/java/com/sooka/web/controller/system/SysIndexController.java

@@ -7,9 +7,22 @@ import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletResponse;
 
 import com.sooka.business.schooldistrict.domain.BtpPolicestationVillage;
+import com.sooka.business.schooldistrict.domain.BtpSchoolPv;
 import com.sooka.business.schooldistrict.service.IBtpPolicestationVillageService;
+import com.sooka.business.schooldistrict.service.IBtpSchoolPvService;
+import com.sooka.common.annotation.Log;
+import com.sooka.common.constant.Constants;
+import com.sooka.common.enums.BusinessType;
+import com.sooka.common.exception.user.CaptchaException;
+import com.sooka.common.utils.*;
+import com.sooka.framework.manager.AsyncManager;
+import com.sooka.framework.manager.factory.AsyncFactory;
 import com.sooka.system.domain.SysNotice;
 import com.sooka.system.service.ISysNoticeService;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authc.AuthenticationException;
+import org.apache.shiro.authc.UsernamePasswordToken;
+import org.apache.shiro.subject.Subject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
@@ -24,10 +37,6 @@ import com.sooka.common.core.domain.AjaxResult;
 import com.sooka.common.core.domain.entity.SysMenu;
 import com.sooka.common.core.domain.entity.SysUser;
 import com.sooka.common.core.text.Convert;
-import com.sooka.common.utils.CookieUtils;
-import com.sooka.common.utils.DateUtils;
-import com.sooka.common.utils.ServletUtils;
-import com.sooka.common.utils.StringUtils;
 import com.sooka.framework.shiro.service.SysPasswordService;
 import com.sooka.system.service.ISysConfigService;
 import com.sooka.system.service.ISysMenuService;
@@ -55,6 +64,9 @@ public class SysIndexController extends BaseController
     @Autowired
     private IBtpPolicestationVillageService btpPolicestationVillageService;
 
+    @Autowired
+    private IBtpSchoolPvService btpSchoolPvService;
+
     // 系统首页
     @GetMapping("/index")
     public String index(ModelMap mmap)
@@ -138,7 +150,7 @@ public class SysIndexController extends BaseController
         CookieUtils.setCookie(response, "nav-style", style);
     }
 
-    // 系统介绍
+    // 主页
     @GetMapping("/system/main")
     public String main(ModelMap mmap)
     {
@@ -159,6 +171,21 @@ public class SysIndexController extends BaseController
         return "main";
     }
 
+    // 学区查询
+    @Log(title = "学区查询", businessType = BusinessType.SELECT)
+    @PostMapping("/system/select")
+    @ResponseBody
+    public AjaxResult select(BtpSchoolPv btpSchoolPv)
+    {
+        // 验证码校验
+        if (ShiroConstants.CAPTCHA_ERROR.equals(ServletUtils.getRequest().getAttribute(ShiroConstants.CURRENT_CAPTCHA)))
+        {
+            return AjaxResult.error(MessageUtils.message("user.jcaptcha.error"));
+        }
+        List<BtpSchoolPv> list = btpSchoolPvService.selectBtpSchoolPvList(btpSchoolPv);
+        return AjaxResult.success(list);
+    }
+
     // content-main class
     public String contentMainClass(Boolean footer, Boolean tagsView)
     {

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

@@ -48,7 +48,7 @@ spring:
                 url-pattern: /druid/*
                 # 控制台管理用户名和密码
                 login-username: sooka
-                login-password: 123456
+                login-password: sooka123456
             filter:
                 stat:
                     enabled: true

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

@@ -7,7 +7,7 @@ sooka:
   # 版权年份
   copyrightYear: 2023
   # 实例演示开关
-  demoEnabled: true
+  demoEnabled: false
   # 文件路径 示例( Windows配置D:/sooka/uploadPath,Linux配置 /home/sooka/uploadPath)
   profile: C:/sooka/uploadPath
   # 获取ip地址开关

+ 38 - 13
sooka-admin/src/main/resources/templates/main.html

@@ -20,8 +20,8 @@
 				<label class="col-sm-3 control-label is-required">中、小学:</label>
 				<div class="col-sm-8">
 					<select id="schoolType" name="schoolType" class="form-control select2-multiple">
-						<option value="0" th:text="小学"></option>
-						<option value="1" th:text="中学"></option>
+						<option value="1" th:text="小学"></option>
+						<option value="2" th:text="中学"></option>
 					</select>
 				</div>
 			</div>
@@ -41,39 +41,59 @@
 					</select>
 				</div>
 			</div>
+			<div class="row m-t" th:if="${captchaEnabled==true}">
+				<div class="col-xs-6">
+					<input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" />
+				</div>
+				<div class="col-xs-6">
+					<a href="javascript:void(0);" title="点击更换验证码">
+						<img th:src="@{/captcha/captchaImage(type=${captchaType})}" class="imgcode" width="85%"/>
+					</a>
+				</div>
+			</div>
 			<div class="form-group">
 				<label class="col-sm-3 control-label">学校:</label>
 				<div id="schoolId" class="col-sm-8"></div>
 			</div>
 		</form>
 		<div class="btn-group-sm" id="toolbar" role="group">
-			<a class="btn btn-primary btn-rounded btn-sm" onclick="submitHandler()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+			<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证,请稍候..." onclick="submitHandler()">查询</button>
 		</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() {
-			if ($.validate.form('form-pv-add')) {
-				$.post("/schooldistrict/index/list", {
-					schoolType: $("#schoolType").val(),
-					pId: $("#pId").val(),
-					vId: $("#vId").val()
-				}, function(result) {
+			$.modal.loading($("#btnSubmit").data("loading"));
+			$.post("/system/select", {
+				schoolType: $("#schoolType").val(),
+				pId: $("#pId").val(),
+				vId: $("#vId").val(),
+				validateCode: $("input[name='validateCode']").val()
+			}, function(r) {
+				if (r.code == web_status.SUCCESS) {
 					var name = "";
-					if (result.rows.length == 0) {
+					if (r.data.length == 0) {
 						name += "暂无学区 ";
 					} else {
-						$.each(result.rows, function (i, item) {
+						$.each(r.data, function (i, item) {
 							name += item.schoolName + ",";
 						})
 					}
 					$("#schoolId").empty().append(name.substring(0, name.length-1));
-				});
-			}
+				} else {
+					$('.imgcode').click();
+					$(".code").val("");
+					$.modal.msg(r.msg);
+				}
+				$.modal.closeLoading();
+			});
 		}
 
 		function getData(array) {
@@ -107,6 +127,11 @@
 				allowClear: false,
 				minimumResultsForSearch: -1
 			});
+
+			$('.imgcode').click(function() {
+				var url = ctx + "captcha/captchaImage?type=" + captchaType + "&s=" + Math.random();
+				$(".imgcode").attr("src", url);
+			});
 		})
     </script>
 </body>

+ 4 - 0
sooka-admin/src/main/resources/templates/schooldistrict/index/index.html

@@ -54,6 +54,7 @@
     <script th:inline="javascript">
         var editFlag = [[${@permission.hasPermi('schooldistrict:index:edit')}]];
         var removeFlag = [[${@permission.hasPermi('schooldistrict:index:remove')}]];
+        var types = [[${@dict.getType('school_type')}]];
         var prefix = ctx + "schooldistrict/index";
 
         $(function() {
@@ -97,6 +98,9 @@
                 {
                     field: 'schoolType',
                     title: '学校类型',
+                    formatter: function(value, row, index) {
+                        return $.table.selectDictLabel(types, value);
+                    }
                 },
                 {
                     title: '操作',

+ 1 - 0
sooka-business/src/main/resources/mapper/schooldistrict/BtpSchoolPvMapper.xml

@@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="vName"    column="v_name"    />
         <result property="schoolId"    column="school_id"    />
         <result property="schoolName"    column="school_name"    />
+        <result property="schoolType"    column="school_type"    />
     </resultMap>
 
     <sql id="selectBtpSchoolPvVo">

+ 1 - 1
sooka-framework/src/main/java/com/sooka/framework/config/ShiroConfig.java

@@ -295,7 +295,7 @@ public class ShiroConfig
         filterChainDefinitionMap.put("/login", "anon,captchaValidate");
         filterChainDefinitionMap.put("/system/main", "anon,captchaValidate");
         filterChainDefinitionMap.put("/schooldistrict/policestationvillage/getAllByParentId", "anon,captchaValidate");
-        filterChainDefinitionMap.put("/schooldistrict/index/list", "anon,captchaValidate");
+        filterChainDefinitionMap.put("/system/select", "anon,captchaValidate");
         // 注册相关
         filterChainDefinitionMap.put("/register", "anon,captchaValidate");
         // 系统权限列表