| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- package com.mrxu.admin;
- import com.alibaba.fastjson.JSONObject;
- import com.mrxu.admin.controller.AdminBaseController;
- import com.mrxu.base.dto.LoginDto;
- import com.mrxu.base.entity.SysMenu;
- import com.mrxu.base.enums.MenuForFront;
- import com.mrxu.base.model.LoginUserInfo;
- import com.mrxu.base.service.SysMenuService;
- import com.mrxu.framework.boot.bean.ResponseObj;
- import com.mrxu.framework.common.util.MrxuAssert;
- import com.wf.captcha.utils.CaptchaUtil;
- import io.swagger.annotations.Api;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.shiro.SecurityUtils;
- import org.apache.shiro.authc.UsernamePasswordToken;
- import org.apache.shiro.authz.annotation.RequiresUser;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.web.servlet.error.ErrorController;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.util.List;
- @Slf4j
- @Api(tags = "商户管理")
- @Controller
- @RequiredArgsConstructor(onConstructor = @__(@Autowired))
- public class MainController extends AdminBaseController implements ErrorController {
- @Value("${spring.profiles.active}")
- private String profiles;
- // 万能验证码
- private String rightCode = "0add8f2717b0691442d548f1fd277e4f";
- private final SysMenuService menuService;
- @ResponseBody
- @RequestMapping("/login.json")
- public ResponseObj<String> login(String username, String password, String code, @RequestParam(defaultValue="false",required=true)Boolean remember, HttpServletRequest request) {
- log.info("登录用户:{}",username);
- MrxuAssert.isNotEmpty(username,"请输入账号");
- // 为了方便本地dev环境不校验验证码
- if(!"dev".equals(profiles)) {
- MrxuAssert.isTrue(rightCode.equals(code) || CaptchaUtil.ver(code, request),"验证码不正确");
- }
- SecurityUtils.getSubject().login(new UsernamePasswordToken(username, password, remember));
- log.info("用户:{}登录成功",username);
- return success(request.getSession().getId());
- }
- @ResponseBody
- @PostMapping("/login")
- public ResponseObj<String> login(@RequestBody LoginDto loginDto, HttpServletRequest request) {
- SecurityUtils.getSubject().login(new UsernamePasswordToken(loginDto.getUsername(),
- loginDto.getPassword(), loginDto.getRemember()));
- return success(request.getSession().getId());
- }
- @RequiresUser
- @ResponseBody
- @GetMapping("/getUserInfo.json")
- public ResponseObj<LoginUserInfo> getUserInfo() {
- LoginUserInfo userInfo = new LoginUserInfo();
- return success(userInfo);
- }
- /**
- * 主页
- */
- @RequestMapping({"/", "/index"})
- public String index(Model model) {
- List<SysMenu> menus = menuService.getUserMenuTree(getLoginUser(), MenuForFront.oldFront);
- model.addAttribute("menus",menus);
- JSONObject tenant = new JSONObject();
- model.addAttribute("tenant",tenant);
- return "index.html";
- }
- /**
- * 登录页
- */
- @GetMapping("/login.html")
- public String login() {
- return "login.html";
- }
- /**
- * logout退出
- * @return
- */
- @GetMapping("/logout")
- public String logout() {
- if(SecurityUtils.getSubject() != null) {
- SecurityUtils.getSubject().logout();
- }
- return "redirect:/login.html";
- }
- @GetMapping("/home.html")
- public String home() {
- return "crm/home.html";
- }
- /**
- * 图形验证码
- */
- @RequestMapping("/assets/captcha")
- public void captcha(HttpServletRequest request, HttpServletResponse response) {
- try {
- CaptchaUtil.out(5, request, response);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /**
- * 主页弹窗页面
- */
- @RequestMapping("/tpl/{name}")
- public String tpl(@PathVariable("name") String name) {
- return "index/" + name + ".html";
- }
- /**
- * 错误页
- */
- @RequestMapping("/error")
- public String error(HttpServletRequest request) {
- String code = request.getAttribute("javax.servlet.error.status_code").toString();
- if("404".equals(code)) {
- return "error/404.html";
- }
- request.setAttribute("message",request.getAttribute("javax.servlet.error.message"));
- return "error/500.html";
- }
- // 1 第一次提交修改
- @Override
- public String getErrorPath() {
- return "/error";
- }
- }
|