Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

JX.Li 3 miesięcy temu
rodzic
commit
047b164025

+ 5 - 0
.idea/jarRepositories.xml

@@ -3,6 +3,11 @@
   <component name="RemoteRepositoriesConfiguration">
     <remote-repository>
       <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
       <option name="name" value="Maven Central repository" />
       <option name="url" value="https://repo1.maven.org/maven2" />
     </remote-repository>

+ 42 - 0
src/main/java/com/sooka/module/web/cms/CertificateAuthController.java

@@ -0,0 +1,42 @@
+package com.sooka.module.web.cms;
+
+import com.sooka.common.annotation.FormToken;
+import com.sooka.common.utils.ControllerUtil;
+import com.sooka.common.utils.JsonUtil;
+import com.sooka.common.utils.StrUtil;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/cms/certificate")
+public class CertificateAuthController {
+//    @FormToken
+    @RequestMapping("/auth")
+    @ResponseBody
+    public Map<String, Object> certificateAuth(
+            HttpServletRequest request,
+            @RequestParam(value = "verifyCode",required = false) String verifyCode,
+            @RequestParam(value = "certificateNum",required = false) String certificateNum,
+            @RequestParam(value = "username",required = false) String username,
+            @RequestParam(value = "telephone",required = false) String telephone,
+            @RequestParam(value = "certificateType",required = false) String certificateType,
+            @RequestParam(value = "idNumber",required = false) String idNumber){
+        System.out.println("verifyCode = " + verifyCode);
+        System.out.println("certificateNum = " + certificateNum);
+        System.out.println("username = " + username);
+        System.out.println("telephone = " + telephone);
+        System.out.println("idNumber = " + idNumber);
+        System.out.println("certificateType = " + certificateType);
+        if(StrUtil.isBlank(verifyCode)|| !ControllerUtil.validate(verifyCode,request)) {
+            return JsonUtil.toMAP(false,"验证码输入错误");
+        }
+        return JsonUtil.toMAP(true,"验证成功");
+    }
+}

+ 28 - 32
src/main/java/com/sooka/module/web/system/service/impl/CmsUserServiceImpl.java

@@ -1,20 +1,14 @@
 package com.sooka.module.web.system.service.impl;
 
 import com.google.common.collect.Maps;
-import com.sooka.common.constant.CmsConst;
-import com.sooka.common.utils.CheckSumUtil;
 import com.sooka.common.utils.ControllerUtil;
 import com.sooka.common.utils.JsonUtil;
 import com.sooka.common.utils.StrUtil;
-import com.sooka.component.shiro.PasswordKit;
 import com.sooka.module.web.system.service.CmsUserService;
-import com.sooka.module.web.system.vo.UserVo;
 import com.sooka.mybatis.mapper.TCmsUserMapper;
 import com.sooka.mybatis.model.TCmsUser;
-import org.apache.commons.beanutils.BeanUtils;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.authc.*;
-import org.apache.shiro.subject.Subject;
+import org.apache.shiro.crypto.SecureRandomNumberGenerator;
+import org.apache.shiro.crypto.hash.Md5Hash;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.Cache;
 import org.springframework.cache.ehcache.EhCacheCacheManager;
@@ -53,6 +47,14 @@ public class CmsUserServiceImpl implements CmsUserService {
         return tryCount;
     }
 
+    public boolean matches(TCmsUser user, String newPassword) {
+        return user.getPassword().equals(encryptPassword(user.getUsername(), newPassword, user.getSalt()));
+    }
+
+    public String encryptPassword(String loginName, String password, String salt) {
+        return new Md5Hash(loginName + password + salt).toHex();
+    }
+
     @Override
     public Map<String, Object> login(HttpServletRequest request) {
         String username = request.getParameter("username"), password = request.getParameter("password"),
@@ -66,37 +68,19 @@ public class CmsUserServiceImpl implements CmsUserService {
             return result;
         }
         HttpSession session = request.getSession();
-        Subject currentUser = SecurityUtils.getSubject();
-        UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(username, password);
-        /*是否需要记住我*/
-        if ("true".equals(remberMe)) {
-            usernamePasswordToken.setRememberMe(true);
-        }
         try {
-            currentUser.login(usernamePasswordToken);
             TCmsUser user = selectByUsername(username);
             user.setLoginTime(new Date());
             user.setLastIp(ControllerUtil.getRemoteAddress(request));
             /*更新用户的登陆信息*/
             userMapper.updateByPrimaryKey(user);
-            /*userVo和TSysUser没什么区别,只是增加了siteId*/
-            UserVo userVo = new UserVo();
-            BeanUtils.copyProperties(userVo, user);
             /*设置session*/
-            session.setAttribute(CmsConst.SITE_USER_SESSION_KEY, userVo);
+            session.setAttribute("cms-login-user", user);
             result.put("success", true);
             result.put("message", "登录成功!");
-        } catch (UnknownAccountException e) {
-            result.put("message", "账号输入错误!");
-        } catch (IncorrectCredentialsException e) {
-            result.put("message", "密码输入错误!");
-            putInCache(cache, username);
-        } catch (LockedAccountException e) {
-            result.put("message", "当前账号已被停用!");
-        } catch (AuthenticationException ae) {
-            result.put("message", "账号或者密码输入错误!");
         } catch (Exception e) {
-            result.put("message", "发生了一个错误!");
+            result.put("message", "账号或者密码输入错误!");
+            putInCache(cache, username);
         }
         return result;
     }
@@ -106,13 +90,25 @@ public class CmsUserServiceImpl implements CmsUserService {
         return userMapper.selectByUsername(username);
     }
 
+    /**
+     * 生成随机盐
+     */
+    public static String randomSalt() {
+        // 一个Byte占两个字节,此处生成的3字节,字符串长度为6
+        SecureRandomNumberGenerator secureRandom = new SecureRandomNumberGenerator();
+        String hex = secureRandom.nextBytes(3).toHex();
+        return hex;
+    }
+
     @Override
     public String insert(TCmsUser user) {
         /* 加工password */
         if (!StrUtil.isBlank(user.getPassword().trim())) {
-            String salt = CheckSumUtil.getMD5(user.getUsername().trim());
-            user.setPassword(PasswordKit.encodePassword(user.getPassword().trim(), salt));
-            user.setSalt(salt);
+//            String salt = CheckSumUtil.getMD5(user.getUsername().trim());
+//            user.setPassword(PasswordKit.encodePassword(user.getPassword().trim(), salt));
+//            user.setSalt(salt);
+            user.setSalt(randomSalt());
+            user.setPassword(encryptPassword(user.getUsername(), user.getPassword(), user.getSalt()));
         }
         if (userMapper.insert(user) > 0) {
             return JsonUtil.toSUCCESS("注册成功");

+ 1 - 1
src/main/resources/static/js/login/login.js

@@ -38,7 +38,7 @@ $(function() {
                             location.reload();
                         },3000);
 					} else {
-						show_msg(obj.message, $("#system").val());
+						show_msg(obj.message, $("#system").val(), true);
 					}
 				},
 				error : function(XmlHttpRequest, textStatus, errorThrown) {

+ 54 - 51
src/main/resources/static/js/login/login_tooltips.js

@@ -1,60 +1,63 @@
 var msgdsq;
+
 //错误时:提示调用方法
-function show_err_msg(msg){
-	 $('.msg_bg').html('');
-	 clearTimeout(msgdsq);
-	 $('body').append('<div class="sub_err" style="position:absolute;top:60px;left:0;width:500px;z-index:999999;"></div>');
-	 var errhtml='<div  class="bac" style="padding:8px 0px;border:1px solid #ff0000;width:100%;margin:0 auto;background-color:#fff;color:#B90802;border:3px #ff0000 solid;text-align:center;font-size:16px;font-family:微软雅黑;"><img style="margin-right:10px;" src="../static/images/error.png">';
-	 var errhtmlfoot='</div>';	 
-	 $('.msg_bg').height($(document).height());
-	 $('.sub_err').html(errhtml+msg+errhtmlfoot);
-	 var left=($(document).width()-500)/2;
-	 $('.sub_err').css({'left':left+'px'});
-	 var scroll_height=$(document).scrollTop(); 
-	 $('.sub_err').animate({'top': scroll_height+120},300);
-	 msgdsq=setTimeout(function(){				     
-		 $('.sub_err').animate({'top': scroll_height+80},300);
-		 setTimeout(function(){
-			 $('.msg_bg').remove();
-			 $('.sub_err').remove();
-		 },300);
-	 }, "1500");
+function show_err_msg(msg) {
+    $('.msg_bg').html('');
+    clearTimeout(msgdsq);
+    $('body').append('<div class="sub_err" style="position:absolute;top:60px;left:0;width:500px;z-index:999999;"></div>');
+    var errhtml = '<div  class="bac" style="padding:8px 0px;border:1px solid #ff0000;width:100%;margin:0 auto;background-color:#fff;color:#B90802;border:3px #ff0000 solid;text-align:center;font-size:16px;font-family:微软雅黑;"><img style="margin-right:10px;" src="/static/images/error.png">';
+    var errhtmlfoot = '</div>';
+    $('.msg_bg').height($(document).height());
+    $('.sub_err').html(errhtml + msg + errhtmlfoot);
+    var left = ($(document).width() - 500) / 2;
+    $('.sub_err').css({'left': left + 'px'});
+    var scroll_height = $(document).scrollTop();
+    $('.sub_err').animate({'top': scroll_height + 120}, 300);
+    msgdsq = setTimeout(function () {
+        $('.sub_err').animate({'top': scroll_height + 80}, 300);
+        setTimeout(function () {
+            $('.msg_bg').remove();
+            $('.sub_err').remove();
+        }, 300);
+    }, "1500");
 }
 
 //正确时:提示调用方法
-function show_msg(msg,url){	
-     $('.msg_bg').html('');
-	 clearTimeout(msgdsq);
-	 $('body').append('<div class="sub_err" style="position:absolute;top:60px;left:0;width:500px;z-index:999999;"></div>');
-	 var htmltop='<div class="bac" style="padding:8px 0px;border:1px solid #090;width:100%;margin:0 auto;background-color:#FFF2F8;color:#090;border:3px #090 solid;;text-align:center;font-size:16px;"><img style="margin-right:10px;" src="../static/images/loading.gif">';
-	 var htmlfoot='</div>';
-	 $('.msg_bg').height($(document).height());
-	 var left=($(document).width()-500)/2;
-	 $('.sub_err').css({'left':left+'px'});
-	 $('.sub_err').html(htmltop+msg+htmlfoot);
-	 var scroll_height=$(document).scrollTop(); 
-	 $('.sub_err').animate({'top': scroll_height+120},500);	 
-	 msgdsq=setTimeout(function(){	    
-		   $('.sub_err').animate({'top': scroll_height+80},500);
-		   setTimeout(function(){
-			   $('.msg_bg').remove();
-			   $('.sub_err').remove();
-			   if(url!='')
-			   {	     
-				  location.href=url;
-			   }		   
-		   },800);	 
-		   
-	 }, "1200");  
+function show_msg(msg, url, type) {
+    $('.msg_bg').html('');
+    clearTimeout(msgdsq);
+    $('body').append('<div class="sub_err" style="position:absolute;top:60px;left:0;width:500px;z-index:999999;"></div>');
+    if (type) {
+        var htmltop = '<div class="bac" style="padding:8px 0px;border:1px solid #090;width:100%;margin:0 auto;background-color:#FFF2F8;color:#090;border:3px #090 solid;;text-align:center;font-size:16px;"><img style="margin-right:10px;" src="/static/images/loading.gif">';
+    } else {
+        var htmltop = '<div class="bac" style="padding:8px 0px;border:1px solid #090;width:100%;margin:0 auto;background-color:#FFF2F8;color:#090;border:3px #090 solid;;text-align:center;font-size:16px;"><img style="margin-right:10px;" src="/static/images/error.png">';
+    }
+    var htmlfoot = '</div>';
+    $('.msg_bg').height($(document).height());
+    var left = ($(document).width() - 500) / 2;
+    $('.sub_err').css({'left': left + 'px'});
+    $('.sub_err').html(htmltop + msg + htmlfoot);
+    var scroll_height = $(document).scrollTop();
+    $('.sub_err').animate({'top': scroll_height + 120}, 500);
+    msgdsq = setTimeout(function () {
+        $('.sub_err').animate({'top': scroll_height + 80}, 500);
+        setTimeout(function () {
+            $('.msg_bg').remove();
+            $('.sub_err').remove();
+            if (url != '') {
+                location.href = url;
+            }
+        }, 800);
+
+    }, "1200");
 }
 
 //显示加载动画
-function show_loading()
-{
-	var str='<div class="msg_bg" style="background:#000;opacity:0.5;filter:alpha(opacity=50);z-index:99998;width:100%;position:absolute;left:0;top:0"></div>';
-	str+='<div class="msg_bg" style="z-index:99999;width:100%;position:absolute;left:0;top:0;text-align:center;"><img src="/static/images/loading.gif" alt="" class="loading"></div>'
-	$('body').append(str);
-	var scroll_height=$(document).scrollTop(); 
-	$('.msg_bg').height($(document).height());
-	$('.loading').css('margin-top',scroll_height+240);
+function show_loading() {
+    var str = '<div class="msg_bg" style="background:#000;opacity:0.5;filter:alpha(opacity=50);z-index:99998;width:100%;position:absolute;left:0;top:0"></div>';
+    str += '<div class="msg_bg" style="z-index:99999;width:100%;position:absolute;left:0;top:0;text-align:center;"><img src="/static/images/loading.gif" alt="" class="loading"></div>'
+    $('body').append(str);
+    var scroll_height = $(document).scrollTop();
+    $('.msg_bg').height($(document).height());
+    $('.loading').css('margin-top', scroll_height + 240);
 }

+ 8 - 4
src/main/resources/static/js/register/login.js

@@ -6,10 +6,14 @@ $(function () {
         // ajax提交表单,#login_form为表单的ID。如:$('#login_form').ajaxSubmit(function(data)
         $.post("/login", {username: "test", password: "123456", "verifyCode": $("#j_captcha").val()}, function (data) {
             var obj = eval(data);
-            show_err_msg(obj.message);
-            setTimeout(function () {
-                location.reload();
-            }, 3000);
+            if (obj.success) {
+                show_msg(obj.message, "/");
+            } else {
+                show_err_msg(obj.message);
+                setTimeout(function () {
+                    location.reload();
+                }, 3000);
+            }
         }, "json");
     });
 });

+ 18 - 0
src/main/resources/templates/www/tuiyijunren/content-jyxx.html

@@ -0,0 +1,18 @@
+<!--头部开始-->
+@includeFileTemplate("/www/tuiyijunren/include/header.html"){}
+<!--头部结束-->
+<!--中间内容开始-->
+<div class="er_content">
+	<div class="dqwz"><span>当前位置:<a href="${frontPath}/${site.siteId}">网站首页</a>><a href="${frontPath}/${site.siteId}/1221.html">就业信息</a>><a href="${frontPath}/${site.siteId}/${category.categoryId}.html">${category.categoryName}</a></span></div>
+	<div class="news_txt">
+		<h1>${content.title!}</h1>
+		<h5><i class="laiy">来源:${content.author!}</i><i class="date">时间:${content.inputdate,dateFormat="yyyy-MM-dd"}</i></h5>
+		<p>${content.content}</p>
+	</div>
+</div>
+<!--中间内容结束-->
+<!--底部开始-->
+@includeFileTemplate("/www/tuiyijunren/include/footer.html"){}
+<!--底部结束-->
+</body>
+</html>

+ 2 - 2
src/main/resources/templates/www/tuiyijunren/include/header-index.html

@@ -36,13 +36,13 @@
         <a class="on" href="${frontPath}/${site.siteId}">网站首页</a>
         <a href="${frontPath}/${site.siteId}/1217.html">最新动态</a>
         <a href="${frontPath}/${site.siteId}/1213.html">政策宣传</a>
-        <a>就业信息</a>
+        <a href="${frontPath}/${site.siteId}/1221.html">就业信息</a>
         <a href="${frontPath}/${site.siteId}/1226.html">创业服务</a>
         <a href="${frontPath}/${site.siteId}/1229.html">学历提升</a>
         <a href="${frontPath}/${site.siteId}/1236.html">综合服务</a>
         <a href="${frontPath}/${site.siteId}/1238.html">孵化基地</a>
         <a  href="${frontPath}/${site.siteId}/1241.html">合作企业</a>
-        <a>证书认证</a>
+        <a href="${frontPath}/${site.siteId}/1244.html">证书认证</a>
     </div>
 </div>
 <!--导航结束-->

+ 3 - 3
src/main/resources/templates/www/tuiyijunren/include/header.html

@@ -27,13 +27,13 @@
         <a class="navi" href="${frontPath}/${site.siteId}">网站首页</a>
         <a class="navi" href="${frontPath}/${site.siteId}/1217.html">最新动态</a>
         <a class="navi" href="${frontPath}/${site.siteId}/1213.html">政策宣传</a>
-        <a class="navi">就业信息</a>
+        <a class="navi" href="${frontPath}/${site.siteId}/1221.html">就业信息</a>
         <a class="navi" href="${frontPath}/${site.siteId}/1226.html">创业服务</a>
         <a class="navi" href="${frontPath}/${site.siteId}/1229.html">学历提升</a>
         <a class="navi" href="${frontPath}/${site.siteId}/1236.html">综合服务</a>
         <a class="navi" href="${frontPath}/${site.siteId}/1238.html">孵化基地</a>
         <a class="navi" href="${frontPath}/${site.siteId}/1241.html">合作企业</a>
-        <a class="navi">证书认证</a>
+        <a class="navi" href="${frontPath}/${site.siteId}/1244.html">证书认证</a>
     </div>
 </div>
 <script>
@@ -46,7 +46,7 @@
         [1229, 1230, 1231], // 学历提升
         [1236, 1235, 1234, 1233], // 综合服务
         [1238, 1239, 1240], // 孵化基地
-        // [1213], // 合作企业
+        [1241], // 合作企业
         // [1213], // 证书认证
     ]
     let url = window.location.href;

+ 39 - 14
src/main/resources/templates/www/tuiyijunren/index.html

@@ -133,10 +133,15 @@
                             <img src="${bean.thumb!}" alt="${bean.title!}"/>
                             <a class="text" href="${bean.url!}">
                                 <h5>${bean.title!}</h5>
-                                <p><span>联系人:${bean.author!}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>咨询电话:${bean.author!}</span></p>
-                                <span>${bean.description!}</span>
+                                <p><span>联系人:${bean.author!}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>咨询电话:${bean.keywords!}</span></p>
+                                <span style="height: 105px !important;
+                                    overflow:hidden !important;
+                                    text-overflow: ellipsis !important;
+                                    -webkit-line-clamp: 4 !important;
+                                    display: -webkit-box !important;
+                                    -webkit-box-orient: vertical !important;font-size: 16px;">${bean.description!}</span>
                             </a>
-                            <a class="more">查看详细</a>
+                            <a class="more" href="${bean.url!}">查看详细</a>
                         </li>
                     </a>
                 </#cms_content_list>
@@ -192,11 +197,16 @@
         <div class="dpsg_list">
             <#cms_content_list siteId="${site.siteId}" categoryId="1225" orderBy="2" isHot="0" hasChild="0" isRecommend="0" size="3" titleLen="30" var="bean">
                 <a class="dpsg_list_div clearfix" aos="fade-up" href="${bean.url!}">
-                    <img src="${resPath}/tuiyijunren/images/twjr_img5.png"/>
+                    <img src="${bean.thumb!}" alt="${bean.title!}"/>
                     <div class="text">
                         <h1>${bean.title!}</h1>
-                        <h4>3月培训期</h4>
-                        <p>${bean.description!}</p>
+                        <h4>${bean.keywords!}</h4>
+                        <p style="height: 60px !important;
+                                    overflow:hidden !important;
+                                    text-overflow: ellipsis !important;
+                                    -webkit-line-clamp: 2 !important;
+                                    display: -webkit-box !important;
+                                    -webkit-box-orient: vertical !important;">${bean.description!}</p>
                     </div>
                 </a>
 
@@ -249,10 +259,23 @@
         <div class="yzgw_list clearfix">
             <#cms_content_list siteId="${site.siteId}" categoryId="1223" orderBy="2" isHot="0" hasChild="0" isRecommend="0" size="6" titleLen="12" var="bean">
                 <a class="yzgw_list_div" aos="fade-up" href="${bean.url!}">
-                    <h1>${bean.title!}<b>5K-8K</b></h1>
-                    <h4><span class="address">长春-南关</span><span>五险一金</span><span>周末双休</span></h4>
-                    <h5>长春动画学院</h5>
-                    <p>民营教育企业&nbsp;&nbsp;|&nbsp;&nbsp;20-99人</p>
+                    <h1>
+                        ${bean.title!}
+                        <!--<b>5K-8K</b>-->
+                        <b>${bean.content}</b>
+                    </h1>
+                    <!--<h4><span class="address">长春-南关</span><span>五险一金</span><span>周末双休</span></h4>-->
+                    <h4><span class="address">${bean.keywords!}</span></h4>
+                    <!--<h4><span class="address">长春-南关 五险一金 周末双休</span></h4>-->
+                    <!--<h5>长春动画学院</h5>-->
+                    <h5>${bean.author!}</h5>
+                    <!--<p>民营教育企业&nbsp;&nbsp;|&nbsp;&nbsp;20-99人</p>-->
+                    <p style="height: 20px !important;
+                        overflow:hidden !important;
+                        text-overflow: ellipsis !important;
+                        -webkit-line-clamp: 1 !important;
+                        display: -webkit-box !important;
+                        -webkit-box-orient: vertical !important;">${bean.description!}</p>
                 </a>
 
                 <!--<li aos="fade-up" aos-duration="500">-->
@@ -320,12 +343,14 @@
     }
 </script>
 
-<a  href="${frontPath}/${site.siteId}/1243.html" id="ad2" class="container">
-    <!--漂浮开始-->
+
+<a id="ad2" class="container" href="${frontPath}/${site.siteId}/1243.html">
+    <!-- 漂浮开始 -->
     <p class="gb_p1">
-        <span href="javascript:;" onclick="toHide1()">X</span>
+        <span href="javascript:;" onclick="event.preventDefault(); toHide1()">X</span>
     </p>
-    <!--漂浮结束-->
+    <!-- 漂浮结束 -->
+    <!-- 其他内容可以放在这里 -->
 </a>
 <script type="text/javascript">
     function addEvent(obj, evtType, func, cap) {

+ 46 - 0
src/main/resources/templates/www/tuiyijunren/list-jyxx.html

@@ -0,0 +1,46 @@
+<!--头部开始-->
+@includeFileTemplate("/www/tuiyijunren/include/header.html"){}
+<!--头部结束-->
+<!--中间内容开始-->
+<div class="er_content clearfix">
+	<div class="er_left fl">
+		<div class="er_nav">
+			<h4>就业信息</h4>
+			<#cms_category_list  siteId="${site.siteId}" categoryId="1218" isNav="0" var="bean">
+				<a id="${bean.categoryId}" href="${frontPath}/${site.siteId}/${bean.categoryId}.html">${bean.categoryName}</a>
+			</#cms_category_list>
+		</div>
+	</div>
+	<div class="er_right fl">
+		<div class="news_list">
+			<#cms_pagination siteId="${site.siteId}" categoryId="${categoryId}" page="${page}" moreNum="6" var="page">
+				<#cms_content_list siteId="${site.siteId}" categoryId="${categoryId}" orderBy="3" isHot="0" hasChild="0" isRecommend="0" size="4" titleLen="24" var="bean" pageNumber="${page.current}">
+					<a class="news_list_div clearfix" href="${bean.url!}">
+						<img src="${bean.thumb!}" alt="${bean.title!}"/>
+						<div class="news_list_text">
+							<h2>${bean.title!}</h2>
+							<h2>${bean.category.categoryId!}</h2>
+							<span>${bean.description!}</span>
+							<p><i class="date">${bean.inputdate,dateFormat="yyyy年MM月dd日"}</i><i class="djl">点击量:${bean.viewNum!}</i></p>
+						</div>
+					</a>
+				</#cms_content_list>
+			</#cms_pagination>
+		</div>
+		<div class="fenye">
+			@includeFileTemplate("/www/tuiyijunren/include/page.html"){}
+		</div>
+	</div>
+</div>
+<script>
+	$(function () {
+		let id = "${categoryId}";
+		$("#"+id).addClass("on");
+	});
+</script>
+<!--中间内容结束-->
+<!--底部开始-->
+@includeFileTemplate("/www/tuiyijunren/include/footer.html"){}
+<!--底部结束-->
+</body>
+</html>

+ 139 - 0
src/main/resources/templates/www/tuiyijunren/list-zsrz.html

@@ -0,0 +1,139 @@
+<!--头部开始-->
+@includeFileTemplate("/www/tuiyijunren/include/header.html"){}
+<!--头部结束-->
+<!--中间内容开始-->
+<div class="content wid1200">
+    <div class="renzhen-form">
+        <h1>证书认证</h1>
+<!--        <form action="${ctxPath}/cms/certificate/auth" id="certificate_auth_form" method="post">-->
+            <ul>
+                <li>
+                    <div><p>姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名</p>:</div>
+                    <input id="username" name="username" type="text" class="chang-inp" placeholder="请输入姓名"/>
+                </li>
+                <li>
+                    <div><p>身份证号</p>:</div>
+                    <input id="idNumber" name="idNumber" type="text" class="chang-inp" placeholder="请输入身份证号"/>
+                </li>
+                <li>
+                    <div><p>证书类别</p>:</div>
+                    <select id="certificateType" name="certificateType" class="sel">
+                        <option value="0">请选择证书类别</option>
+                        <option value="1">证书类别A</option>
+                        <option value="2">证书类别B</option>
+                        <option value="3">证书类别C</option>
+                        <option value="4">证书类别D</option>
+                    </select>
+                </li>
+                <li>
+                    <div><p>证书编号</p>:</div>
+                    <input id="certificateNum" name="certificateNum" type="text" class="chang-inp"
+                           placeholder="请输入证书编号"/>
+                </li>
+                <li>
+                    <div><p>联系电话</p>:</div>
+                    <input name="telephone" type="text" class="chang-inp" placeholder="请输入联系电话"/>
+                </li>
+                <li>
+                    <div><p>验&nbsp;&nbsp;证&nbsp;&nbsp;码</p>:</div>
+                    <input id="verifyCode" name="verifyCode" type="text" class="yzm-inp" placeholder="请输入验证码"/>
+                    <span class="input-group-addon code zsrz-code" id="basic-addon-code">
+                    <img id="captcha_img" src="${ctxPath}/verify" onclick="changeCode();" alt="点击更换"
+                         title="点击更换" class="m">
+                </span>
+                </li>
+                <li>
+                    <div></div>
+                    <button class="cx-but" id="certificate_auth_btn">免费查询</button>
+                </li>
+            </ul>
+<!--        </form>-->
+    </div>
+</div>
+<script src="${ctxPath}/static/js/login/login_tooltips.js"></script>
+<script src="${ctxPath}/static/BJUI/js/jquery-1.11.3.min.js"></script>
+<script src="${ctxPath}/static/BJUI/js/jquery.cookie.js"></script>
+<script src="${ctxPath}/static/js/login/jquery.form.js"></script>
+<script>
+    /*$(function () {
+        let id = "${categoryId}";
+        $("#"+id).addClass("on");
+    });*/
+
+    function changeCode() {
+        $("#captcha_img").attr("src", "${ctxPath}/verify?t=" + (new Date().getTime()));
+    }
+
+    $('#certificate_auth_btn').click(function () {
+        // show_loading();
+        $('#username').focus();
+        if ($('#username').val() === '') {
+            show_err_msg('姓名不能为空!');
+            $('#username').focus();
+        } else if ($('#idNumber').val() === '') {
+            show_err_msg('身份证号不能为空!');
+            $('#idNumber').focus();
+        } else if ($('#certificateType').val() === '0' || $('#certificateType').val() === '') {
+            show_err_msg('请选择证件类别!');
+            $('#certificateNum').focus();
+        } else if ($('#certificateNum').val() === '') {
+            show_err_msg('证件号码不能为空!');
+            $('#certificateNum').focus();
+        } else if ($('#verifyCode').val() === '') {
+            show_err_msg('验证码还没填呢!');
+            $('#verifyCode').focus();
+        } else {
+            var data = {
+                username: $("#username").val(),
+                idNumber: $("#idNumber").val(),
+                certificateType: $("#certificateType").val(),
+                certificateNum: $("#certificateNum").val(),
+                telephone: $("input[name='telephone']").val(),
+                verifyCode: $("#verifyCode").val()
+            };
+            console.log(data)
+            $.ajax({
+                // 请求的 URL
+                url: "${ctxPath}/cms/certificate/auth",
+                // 请求类型,可以是 GET、POST、PUT、DELETE 等
+                type: "GET",
+                // 发送到服务器的数据,格式为键值对
+                data: data,
+                // 设置请求和响应的格式,常见的有 "json"、"html"、"xml" 等
+                dataType: "json",
+                // 请求成功时的回调函数
+                success: function(response) {
+                    console.log(response);
+                    if(response.success){
+                        show_msg(response.message, '', false)
+                    }else{
+                        show_err_msg(response.message)
+                    }
+                },
+                // 请求失败时的回调函数
+                error: function(xhr, status, error) {
+                    // xhr 是 XMLHttpRequest 对象,status 是请求的状态,error 是错误信息
+                    console.log("请求失败!");
+                    console.log("状态码:" + xhr.status);
+                    console.log("错误信息:" + error);
+                    $("#result").html("请求失败,错误信息:" + error);
+                },
+                // 请求完成后回调函数(请求成功或失败时均调用)
+                complete: function() {
+                    console.log("请求完成!");
+                }
+            });
+        }
+    });
+</script>
+<style>
+    .zsrz-code {
+        width: 165px;
+    }
+</style>
+<!--中间内容结束-->
+<!--底部开始-->
+@includeFileTemplate("/www/tuiyijunren/include/footer.html"){}
+<!--底部结束-->
+</body>
+</html>

+ 4 - 4
src/main/resources/templates/www/tuiyijunren/login.html

@@ -12,10 +12,10 @@
 
 <body class="dl_body">
 	<div class="dl_con">
-	<div class="text">
-		<h1>吉林省退役军人<br>就业创业综合服务平台</h1>
-		<span>退伍不褪色&nbsp;&nbsp;&nbsp;忠诚永记心</span>
-	</div>
+		<div class="text">
+			<h1>吉林省退役军人<br>就业创业综合服务平台</h1>
+			<span>退伍不褪色&nbsp;&nbsp;&nbsp;忠诚永记心</span>
+		</div>
 		<div class="dl_form">
 			<input type="text" placeholder="账号:手机号/邮箱/昵称"/>
 			<input type="text" placeholder="密码:请输入您的密码"/>