PassportAction.java 3.11 KB
package com.cjs.cms.action.pub;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.cjs.cms.dao.admin.FunctionDao;
import com.cjs.cms.dao.user.UserDao;
import com.cjs.cms.model.admin.FunctionInfo;
import com.cjs.cms.model.user.UserInfo;
import com.cjs.cms.util.web.DesUtil;

/**
 * 账号操作
 * 
 * @author tongyufu
 *
 */
@Controller
@RequestMapping("/pub")
public class PassportAction {

    @Autowired
    private UserDao     userDao;
    @Autowired
    private FunctionDao functionDao;
    Logger              log = LogManager.getLogger();

    @RequestMapping(method = RequestMethod.GET, value = "login")
    public String toLogin() {
        return "login.jsp";
    }

    @RequestMapping(method = RequestMethod.POST, value = "login")
    public String login(UserInfo user, Model model, HttpSession session,
                        RedirectAttributes redirectAttributes) throws Exception {
        user.setPassword(DesUtil.encrypt(user.getPassword(), DesUtil.KEY));
        user = userDao.login(user);
        if (user == null) {
            model.addAttribute("msg", "登录失败:账号或密码错误");
            return "login.jsp";
        }
        if (user.getState() != 1) {
            model.addAttribute("msg", "登录失败:账号状态异常,请联系管理员");
            return "login.jsp";
        }
        //根据角色登录自己的权限界面
        Map<String, Object> idParams = new HashMap<String, Object>();
        List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
        idParams.put("parentId", 0);
        idParams.put("roleId", user.getRoleId());
        List<FunctionInfo> functionParent = functionDao.getFunctionByRole(idParams);
        Map<String, Object> functionAll = null;
        for (FunctionInfo fInfo : functionParent) {
            idParams.put("parentId", fInfo.getId());
            List<FunctionInfo> functionChild = functionDao.getFunctionByRole(idParams);
            functionAll = new HashMap<String, Object>();
            functionAll.put("son", functionChild);
            functionAll.put("id", fInfo.getId());
            functionAll.put("fName", fInfo.getFunctionName());
            functionAll.put("url", fInfo.getParentId());
            result.add(functionAll);
        }
        userDao.updateLoginCount(user.getId());
        session.setAttribute(UserInfo.USER, user);
        session.setAttribute("userFunction", result);
        session.setAttribute("functionAll", result);
        return "redirect:/";
    }

    @RequestMapping("/exit")
    public String exit(HttpSession session) {
        session.invalidate();
        return "login.jsp";
    }
}