Browse Source

bug提交

chenweida 7 years ago
parent
commit
45b96a5076

+ 4 - 0
svr/svr-manage/src/main/java/com/yihu/jw/manage/cache/login/LoginCache.java

@ -20,4 +20,8 @@ public class LoginCache {
    public static void addCache(String key,ManageUserVO manageUserVO) {
        user.put(key,manageUserVO);
    }
    public static void cleanUser(String key){
        user.remove(key);
    }
}

+ 17 - 6
svr/svr-manage/src/main/java/com/yihu/jw/manage/controller/login/LoginController.java

@ -1,5 +1,6 @@
package com.yihu.jw.manage.controller.login;
import com.yihu.jw.manage.cache.login.LoginCache;
import com.yihu.jw.manage.model.system.ManageUser;
import com.yihu.jw.manage.service.login.LoginService;
import com.yihu.jw.restmodel.common.Envelop;
@ -27,13 +28,23 @@ public class LoginController extends EnvelopRestController {
        try {
            ManageUser data = loginService.login(username, password);
            return Envelop.getSuccess("登陆成功", data);
        }catch (Exception e){
        } catch (Exception e) {
            error(e);
            return Envelop.getError("登陆失败:"+e.getMessage(), -1);
            return Envelop.getError("登陆失败:" + e.getMessage(), -1);
        }
    }
}
    @GetMapping("/loginout")
    public Envelop loginout(@RequestParam(required = true, name = "userCode") String userCode) {
        try {
            //从缓存清空
            LoginCache.cleanUser(userCode);
            return Envelop.getSuccess("登出成功");
        } catch (Exception e) {
            error(e);
            return Envelop.getError("登出成功:" + e.getMessage(), -1);
        }
    }
    @GetMapping("/index")
    public Envelop index(
@ -42,8 +53,8 @@ public class LoginController extends EnvelopRestController {
        try {
            Map<String, List> data = loginService.index(userCode);
            return Envelop.getSuccess("获取信息成功", data);
        }catch (Exception e){
            return Envelop.getError("获取信息成功:"+e.getMessage(), -1);
        } catch (Exception e) {
            return Envelop.getError("获取信息成功:" + e.getMessage(), -1);
        }
    }
}

+ 3 - 0
svr/svr-manage/src/main/java/com/yihu/jw/manage/dao/system/UserDao.java

@ -12,4 +12,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface UserDao extends PagingAndSortingRepository<ManageUser, Integer>, JpaSpecificationExecutor<ManageUser> {
   @Query("from ManageUser u where u.loginAccount=?1 and u.status=1 ")
    ManageUser findByAccount(String username);
    @Query("from ManageUser u where u.code=?1 and u.status=1 ")
    ManageUser findByCode(String usercode);
}

+ 13 - 1
svr/svr-manage/src/main/java/com/yihu/jw/manage/interceptors/UserInterceptor.java

@ -1,7 +1,11 @@
package com.yihu.jw.manage.interceptors;
import com.yihu.jw.manage.model.system.ManageUser;
import com.yihu.jw.manage.service.system.UserService;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.exception.ManageException;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
@ -20,6 +24,8 @@ import java.util.List;
public class UserInterceptor implements HandlerInterceptor {
    private static Integer NOT_LOGIN=-1000;
    List<String> unFilters=new ArrayList<>();
    @Autowired
    private UserService userService;
    @PostConstruct
    public void addUnFilterURI(){
        //添加不需要过滤的路径
@ -35,11 +41,17 @@ public class UserInterceptor implements HandlerInterceptor {
            if (unFilters.contains(uri)){
                return true;
            }
            Object obj= requset.getParameterMap().get("userCode");
            String obj= requset.getParameter("userCode");
            if(org.springframework.util.StringUtils.isEmpty(obj)){
                // 未登录
                response.getOutputStream().write(JSONObject.fromObject(Envelop.getError("请登录后再操作!",NOT_LOGIN)).toString().getBytes());
            }
            //判断usercode是否存在
            ManageUser manageUser= userService.findByCode(obj);
            if(manageUser==null){
                // 未登录
                response.getOutputStream().write(JSONObject.fromObject(Envelop.getError("请登录后再操作!",NOT_LOGIN)).toString().getBytes());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

+ 1 - 1
svr/svr-manage/src/main/java/com/yihu/jw/manage/service/login/LoginService.java

@ -79,7 +79,7 @@ public class LoginService {
        return user;
    }
    public Map<String, List> index(String usercode) {
    public Map<String, List> index(String usercode) throws ManageException {
        Map<String, List> data = new HashMap<>();
        //得到角色
        List<ManageRole> roles = roleService.findByUserCode(usercode);

+ 4 - 0
svr/svr-manage/src/main/java/com/yihu/jw/manage/service/system/UserService.java

@ -19,4 +19,8 @@ public class UserService {
    public ManageUser findByAccount(String username) {
        return userDao.findByAccount(username);
    }
    public ManageUser findByCode(String usercode) {
        return userDao.findByCode(usercode);
    }
}

+ 4 - 0
svr/svr-manage/src/main/resources/webapp/common/js/util/util.js

@ -126,6 +126,10 @@ function setUserCode(code) {
    window.localStorage.setItem("userCode", code);
}
function cleanUserCode(){
    window.localStorage.setItem("userCode", null);
}
/**
 * 判断是否有登陆
 * @param data

+ 33 - 112
svr/svr-manage/src/main/resources/webapp/html/index/index.html

@ -55,19 +55,35 @@
                    <div class="logo-element">
                    </div>
                </li>
                <!--生成菜单-->
                <!--<li>
                    <a href="#">
                        <i class="fa fa-home"></i>
                        <span class="nav-label">主页</span>
                        <span class="fa arrow"></span>
                    </a>
                    <ul class="nav nav-second-level">
                        <li>
                            <a class="J_menuItem" href="" data-index="0">主页示例一</a>
                        </li>
                    </ul>
                </li>-->
                <li v-for="menu in menus">
                    <a href="#">
                        <i class="fa fa-home"></i>
                        <span class="nav-label">{{menu.parentMenu.name}}</span>
                        <span class="fa arrow"></span>
                    </a>
                        <ul class="nav nav-second-level" v-for="childMenu in menu.childMenus">
                            <li>
                                <a class="J_menuItem" :href="childMenu.url" data-index="0">{{childMenu.name}}</a>
                            </li>
                        </ul>
                    <ul class="nav nav-second-level" v-for="childMenu in menu.childMenus">
                        <li>
                            <a class="J_menuItem" :href="childMenu.url" data-index="0">{{childMenu.name}}</a>
                        </li>
                    </ul>
                </li>
            </ul>
        </div>
    </nav>
@ -111,7 +127,7 @@
                    </li>
                </ul>
            </button>
            <a href="login.html" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> 退出</a>
            <a href="javascript:void(0)" onclick="loginout()" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> 退出</a>
        </div>
        <div class="row J_mainContent" id="content-main">
            <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="" frameborder="0"
@ -496,122 +512,27 @@
        </div>
    </div>
    <!--右侧边栏结束-->
    <!--mini聊天窗口开始-->
    <div class="small-chat-box fadeInRight animated">
        <div class="heading" draggable="true">
            <small class="chat-date pull-right">
                2015.9.1
            </small>
            与 Beau-zihan 聊天中
        </div>
        <div class="content">
            <div class="left">
                <div class="author-name">
                    Beau-zihan
                    <small class="chat-date">
                        10:02
                    </small>
                </div>
                <div class="chat-message active">
                    你好
                </div>
            </div>
            <div class="right">
                <div class="author-name">
                    游客
                    <small class="chat-date">
                        11:24
                    </small>
                </div>
                <div class="chat-message">
                    你好,请问有帮助文档吗?
                </div>
            </div>
            <div class="left">
                <div class="author-name">
                    Beau-zihan
                    <small class="chat-date">
                        08:45
                    </small>
                </div>
                <div class="chat-message active">
                    有,购买的源码包中有帮助文档,位于docs文件夹下
                </div>
            </div>
            <div class="right">
                <div class="author-name">
                    游客
                    <small class="chat-date">
                        11:24
                    </small>
                </div>
                <div class="chat-message">
                    那除了帮助文档还提供什么样的服务?
                </div>
            </div>
            <div class="left">
                <div class="author-name">
                    Beau-zihan
                    <small class="chat-date">
                        08:45
                    </small>
                </div>
                <div class="chat-message active">
                    1.所有源码(未压缩、带注释版本);
                    <br> 2.说明文档;
                    <br> 3.终身免费升级服务;
                    <br> 4.必要的技术支持;
                    <br> 5.付费二次开发服务;
                    <br> 6.授权许可;
                    <br> ……
                    <br>
                </div>
            </div>
        </div>
        <div class="form-chat">
            <div class="input-group input-group-sm">
                <input type="text" class="form-control"> <span class="input-group-btn"> <button
                    class="btn btn-primary" type="button">发送
            </button> </span>
            </div>
        </div>
    </div>
    <div id="small-chat">
        <span class="badge badge-warning pull-right">5</span>
        <a class="open-small-chat">
            <i class="fa fa-comments"></i>
        </a>
    </div>
    <!--mini聊天窗口结束-->
</div>
<!-- 全局js -->
<script src="/common/js/jquery/jquery-2.1.1.min.js"></script>
<script src="/common/js/bootstrap/bootstrap.min.js"></script>
<script src="/common/js/jquery/jquery.metisMenu.js"></script><!--菜单插件-->
<script src="/common/js/jquery/jquery.slimscroll.min.js"></script>
<script src="/common/js/layer/layer.min.js"></script>
<script src="/common/js/util/util.js"></script>
<script src="/common/js/vue/vue.min.js"></script>
<script type="text/javascript" src="/common/js/jquery/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="/common/js/bootstrap/bootstrap.min.js"></script>
<script type="text/javascript" src="/common/js/jquery/jquery.metisMenu.js"></script><!--菜单插件-->
<script type="text/javascript" src="/common/js/jquery/jquery.slimscroll.min.js"></script>
<script type="text/javascript"src="/common/js/layer/layer.min.js"></script>
<script type="text/javascript" src="/common/js/util/util.js"></script>
<script type="text/javascript" src="/common/js/vue/vue.min.js"></script>
<!-- 自定义js -->
<script src="/common/js/common.js"></script>
<script src="/index/hplus.min.js?v=3.0.0"></script>
<script type="text/javascript" src="/common/js/common.js"></script>
<script type="text/javascript" src="/index/hplus.min.js?v=3.0.0"></script>
<script type="text/javascript" src="/index/contabs.min.js"></script>
<script type="text/javascript" src="/index/index.js"></script>
<!-- 第三方插件 -->
<script src="/common/js/pace/pace.min.js"></script>
<script type="text/javascript" src="/common/js/pace/pace.min.js"></script>
<div class="theme-config">
    <div class="theme-config-box">
        <div class="spin-icon">

+ 25 - 7
svr/svr-manage/src/main/resources/webapp/html/index/index.js

@ -3,16 +3,16 @@ var contentVM;
do_get(
    "/index",
    {},
    function(data){
        if(data.successFlg==true){
    function (data) {
        if (data.successFlg == true) {
            contentVM = new Vue({
                el: '#wrapper',
                data: {
                    role: '',
                    menus:'',
                    aaa:'aaa'
                    menus: '',
                    aaa: 'aaa'
                },
                updated: function() {
                updated: function () {
                    //渲染结束之后调用菜单初始化
                    $('#side-menu').metisMenu();
                }
@ -20,9 +20,27 @@ do_get(
            contentVM.role = data.obj.role;
            contentVM.menus = data.obj.menus;
        }else{
        } else {
            //判断是否登陆
            isLogin(data);
            alert("获取角色,菜单失败")
        }
    }
)
/**
 * 退出
 */
function loginout() {
    do_get(
        "/loginout",
        {},
        function (data) {
            if (data.successFlg == true) {
                //清空用户缓存
                cleanUserCode();
                alert("退出成功")
                window.location.href = '/login/login.html';
            }
        }
    )
}

+ 18 - 14
svr/svr-manage/src/main/resources/webapp/html/login/login.html

@ -27,17 +27,19 @@
        </div>
        <h3>欢迎</h3>
        <form class="m-t" role="form"  id="loginForm" onsubmit="return login()">
        <form class="m-t" role="form" id="loginForm" onsubmit="return login()">
            <div class="form-group">
                <input id="username" name="username" type="text" class="form-control" placeholder="用户名" required="">
            </div>
            <div class="form-group">
                <input id="password" name="password"  type="password" class="form-control" placeholder="密码" required="">
                <input id="password" name="password" type="password" class="form-control" placeholder="密码" required="">
            </div>
            <button id="loginBtn" type="submit" class="btn btn-primary block full-width m-b">登 录</button>
            <p class="text-muted text-center">
                <a href="login.html#"><small>忘记密码了?</small></a> |
                <a href="login.html#">
                    <small>忘记密码了?</small>
                </a> |
                <a href="register.html">注册一个新账号</a>
            </p>
@ -48,24 +50,26 @@
<!-- 全局js -->
<script src="/common/js/jquery/jquery-2.1.1.min.js"></script>
<script src="/common/js/bootstrap/bootstrap.min.js"></script>
<script type="text/javascript" >
    function login(){
        var username=$("#username").val();
        var password=$("#password").val();
<script src="/common/js/common.js"></script>
<script src="/common/js/util/util.js"></script>
<script type="text/javascript">
    function login() {
        var username = $("#username").val();
        var password = $("#password").val();
        $.ajax({
            type: "GET",
            url: "/login",
            data: {
                "username":username,
                "password":password
                "username": username,
                "password": password
            },
            dataType: "json",
            success: function(data){
                if(data.successFlg){
            success: function (data) {
                if (data.successFlg) {
                    //保存用户信息到缓存中
                    window.localStorage.setItem("userCode",data.obj.code);//用户code
                    window.location.href='/index/index.html?u='+data.obj.id;
                }else{
                    setUserCode(data.obj.code)
                    window.location.href = '/index/index.html?u=' + data.obj.id;
                } else {
                    alert("账号或密码错误")
                }
            }