package com.bsd.cases.controller; import com.alibaba.fastjson.JSONObject; import com.bsd.cases.model.CaseUsers; import com.bsd.cases.service.CaseUsersService; import com.bsd.cases.util.AjaxResult; import com.bsd.cases.util.JWTUtil; import com.bsd.cases.util.LogUtils; import com.bsd.cases.util.WechatAccessUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.slf4j.Logger; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @Api("后台登录API") @RestController @RequestMapping("api") @CrossOrigin public class CaseIndexController { Logger logger = LogUtils.getBussinessLogger(); String mofang = "876215850057f8245d2bd82554bd7e7c"; String erp = "cb472ab819ba7209e37fbf0e501a2964"; @Resource private CaseUsersService caseUsersService; @RequiresAuthentication @ApiOperation(value = "获取当前用", notes = "获取当前用户,只需要在Header设置token,不需要传参") @GetMapping("user") public AjaxResult currentUser() { AjaxResult ajaxResult = new AjaxResult(); ajaxResult.setRetcode(AjaxResult.SUCCESS); CaseUsers caseUsers = caseUsersService.currentUser(); ajaxResult.setData(caseUsers); return ajaxResult; } @ApiOperation(value = "微信登录", notes = "微信登录") @ApiImplicitParams({ @ApiImplicitParam(name = "code", value = "微信授权code") }) @PostMapping("autologin") public AjaxResult autoLogin(String params) { AjaxResult ajaxResult = new AjaxResult(); try { String token = caseUsersService.autoLogin(params); ajaxResult.setRetcode(AjaxResult.SUCCESS); ajaxResult.setData(token); ajaxResult.setRetmsg("自动登录成功"); } catch (RuntimeException e) { e.printStackTrace(); ajaxResult.setRetmsg("自动登录失败:" + e.getMessage()); ajaxResult.setRetcode(AjaxResult.FAILED); } return ajaxResult; } @ApiOperation(value = "后台登录", notes = "后台登录") @ApiImplicitParams({ @ApiImplicitParam(name = "userName", value = "用户名"), @ApiImplicitParam(name = "password", value = "密码") }) @PostMapping("adminlogin") public AjaxResult adminLogin(@RequestBody JSONObject params) { AjaxResult ajaxResult = new AjaxResult(); try { String userName = params.getString("userName"); String password = params.getString("password"); if (null == userName) { ajaxResult.setRetmsg("登录失败, 用户名或密码错误!"); ajaxResult.setRetcode(AjaxResult.FAILED); } else { CaseUsers caseUsers = caseUsersService.findUser(userName, password); ajaxResult.setData(JWTUtil.sign(caseUsers.getUserNo())); ajaxResult.setRetmsg("登录成功"); ajaxResult.setRetcode(AjaxResult.SUCCESS); } } catch (Exception e) { e.printStackTrace(); ajaxResult.setRetmsg("登录失败, 用户名或密码错误!"); ajaxResult.setRetcode(AjaxResult.FAILED); } return ajaxResult; } @ApiOperation(value = "通过用户工号获取用户信息PC", notes = "通过用户工号获取用户信息PC") @ApiImplicitParams({ @ApiImplicitParam(name = "userNo", value = "userNo") }) @PostMapping("findbyuserno") public AjaxResult findByUserno(@RequestBody JSONObject params) { AjaxResult ajaxResult = new AjaxResult(); try { CaseUsers caseUsers = caseUsersService.findByUserNo(params); ajaxResult.setRetcode(AjaxResult.SUCCESS); ajaxResult.setData(caseUsers); ajaxResult.setRetmsg("获取用户信息成功"); if (caseUsers == null) { ajaxResult.setRetcode(AjaxResult.FAILED); ajaxResult.setRetmsg("查询用户信息不存在"); } } catch (RuntimeException e) { e.printStackTrace(); ajaxResult.setRetmsg("用户已报名活动"); ajaxResult.setRetcode(AjaxResult.FAILED); } catch (Exception e) { e.printStackTrace(); ajaxResult.setRetmsg("获取用户信息失败:" + e.getMessage()); ajaxResult.setRetcode(AjaxResult.FAILED); } return ajaxResult; } @RequestMapping("/401") @ResponseStatus(HttpStatus.UNAUTHORIZED) public AjaxResult unauthorized(HttpServletResponse servletResponse) { AjaxResult ajaxResult = new AjaxResult(); ajaxResult.setRetmsg("用户认证失败"); ajaxResult.setRetcode(401); return ajaxResult; } @RequestMapping("wxconfig") public AjaxResult wxconfig(String url) { AjaxResult ajaxResult = new AjaxResult(); try { JSONObject jsonObject = WechatAccessUtils.share(url); ajaxResult.setData(jsonObject); ajaxResult.setRetcode(AjaxResult.SUCCESS); ajaxResult.setRetmsg("获取微信配置成功"); } catch (Exception e) { e.printStackTrace(); ajaxResult.setRetmsg("自动登录失败:" + e.getMessage()); ajaxResult.setRetcode(AjaxResult.FAILED); } return ajaxResult; } }