You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

175 lines
5.6 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
}
}