课程api
This commit is contained in:
parent
ef1c10a06e
commit
7d89fee77b
|
|
@ -1,5 +1,5 @@
|
||||||
package com.ruoyi.framework.jwt;
|
package com.ruoyi.framework.jwt;
|
||||||
|
|
||||||
import com.auth0.jwt.JWT;
|
import com.auth0.jwt.JWT;
|
||||||
import com.auth0.jwt.JWTVerifier;
|
import com.auth0.jwt.JWTVerifier;
|
||||||
import com.auth0.jwt.algorithms.Algorithm;
|
import com.auth0.jwt.algorithms.Algorithm;
|
||||||
|
|
@ -8,16 +8,16 @@ import com.auth0.jwt.interfaces.DecodedJWT;
|
||||||
import com.ruoyi.framework.web.util.ServletUtils;
|
import com.ruoyi.framework.web.util.ServletUtils;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Mr.Li
|
* @author Mr.Li
|
||||||
* @create 2018-07-12 14:23
|
* @create 2018-07-12 14:23
|
||||||
* @desc JWT工具类
|
* @desc JWT工具类
|
||||||
**/
|
**/
|
||||||
public class JwtUtil {
|
public class JwtUtil {
|
||||||
|
|
||||||
private static final long EXPIRE_TIME = 5 * 60 * 1000;
|
private static final long EXPIRE_TIME = 5 * 60 * 1000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验token是否正确
|
* 校验token是否正确
|
||||||
*
|
*
|
||||||
|
|
@ -39,7 +39,7 @@ public class JwtUtil {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得token中的信息无需secret解密也能获得
|
* 获得token中的信息无需secret解密也能获得
|
||||||
*
|
*
|
||||||
|
|
@ -47,14 +47,14 @@ public class JwtUtil {
|
||||||
*/
|
*/
|
||||||
public static String getLoginName() {
|
public static String getLoginName() {
|
||||||
try {
|
try {
|
||||||
String token = ServletUtils.getRequest().getHeader("token");
|
String token = ServletUtils.getRequest().getHeader("Authorization");
|
||||||
DecodedJWT jwt = JWT.decode(token);
|
DecodedJWT jwt = JWT.decode(token);
|
||||||
return jwt.getClaim("loginName").asString();
|
return jwt.getClaim("loginName").asString();
|
||||||
} catch (JWTDecodeException e) {
|
} catch (JWTDecodeException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成签名,5min后过期
|
* 生成签名,5min后过期
|
||||||
*
|
*
|
||||||
|
|
@ -70,6 +70,6 @@ public class JwtUtil {
|
||||||
.withClaim("loginName", loginName)
|
.withClaim("loginName", loginName)
|
||||||
.withExpiresAt(date)
|
.withExpiresAt(date)
|
||||||
.sign(algorithm);
|
.sign(algorithm);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
package com.ruoyi.train.course.controller;
|
||||||
|
|
||||||
|
import com.ruoyi.common.annotation.Log;
|
||||||
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
|
import com.ruoyi.common.utils.ExcelUtil;
|
||||||
|
import com.ruoyi.framework.jwt.JwtUtil;
|
||||||
|
import com.ruoyi.framework.web.base.BaseController;
|
||||||
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
|
import com.ruoyi.system.domain.SysUser;
|
||||||
|
import com.ruoyi.train.course.domain.TrainCourse;
|
||||||
|
import com.ruoyi.train.course.domain.TrainCourseCategory;
|
||||||
|
import com.ruoyi.train.course.domain.TrainCourseSection;
|
||||||
|
import com.ruoyi.train.course.service.ITrainCourseCategoryService;
|
||||||
|
import com.ruoyi.train.course.service.ITrainCourseSectionService;
|
||||||
|
import com.ruoyi.train.course.service.ITrainCourseService;
|
||||||
|
import net.sf.json.JSONObject;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 课程 信息操作处理
|
||||||
|
*
|
||||||
|
* @author zhujj
|
||||||
|
* @date 2018-12-23
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/v1")
|
||||||
|
public class ApiTrainCourseController extends BaseController {
|
||||||
|
@Autowired
|
||||||
|
private ITrainCourseService trainCourseService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ITrainCourseCategoryService trainCourseCategoryService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ITrainCourseSectionService trainCourseSectionService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询课程列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/trainCourse/list")
|
||||||
|
@ResponseBody
|
||||||
|
public AjaxResult list(TrainCourse trainCourse) {
|
||||||
|
List<TrainCourse> list = trainCourseService.selectTrainCoursePage( trainCourse );
|
||||||
|
AjaxResult success = success( "查询成功" );
|
||||||
|
success.put( "data", list );
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询课程详情
|
||||||
|
*/
|
||||||
|
@GetMapping("/trainCourse/{id}")
|
||||||
|
public AjaxResult get(@PathVariable("id") Integer id) {
|
||||||
|
TrainCourse trainCourse = trainCourseService.selectById( id );
|
||||||
|
TrainCourseCategory courseCategory = trainCourseCategoryService.selectCategoryById( (long) trainCourse.getTrainCourseCategoryId() );
|
||||||
|
JSONObject jsonObject = JSONObject.fromObject( trainCourse );
|
||||||
|
jsonObject.put( "courseCategory", courseCategory );
|
||||||
|
AjaxResult success = success( "查询成功" );
|
||||||
|
success.put( "data", jsonObject );
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询课程章节详情
|
||||||
|
*/
|
||||||
|
@GetMapping("/trainCourse/{id}/section")
|
||||||
|
public AjaxResult trainCourseSection(@PathVariable("id") Integer id) {
|
||||||
|
TrainCourseSection trainCourseSection = new TrainCourseSection();
|
||||||
|
trainCourseSection.setTrainCourseId( id );
|
||||||
|
List<TrainCourseSection> trainCourseSections = trainCourseSectionService.selectTrainCourseSectionList( trainCourseSection );
|
||||||
|
|
||||||
|
AjaxResult success = success( "查询成功" );
|
||||||
|
success.put( "data", trainCourseSections );
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -14,6 +14,7 @@ import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.framework.web.util.ServletUtils;
|
import com.ruoyi.framework.web.util.ServletUtils;
|
||||||
import com.ruoyi.framework.web.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
|
import com.ruoyi.system.service.ISysUserService;
|
||||||
import com.ruoyi.vip.domain.VipUser;
|
import com.ruoyi.vip.domain.VipUser;
|
||||||
import com.ruoyi.vip.service.IVipUserService;
|
import com.ruoyi.vip.service.IVipUserService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
|
|
@ -36,51 +37,50 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
@Api("用户信息管理")
|
@Api("用户信息管理")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/v1/vip/user")
|
@RequestMapping("/api/v1")
|
||||||
public class ApiVipUserController extends BaseController {
|
public class ApiVipUserController extends BaseController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IVipUserService userService;
|
private IVipUserService userService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService sysUserService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysPasswordService passwordService;
|
private SysPasswordService passwordService;
|
||||||
|
|
||||||
@ApiOperation("用户登陆")
|
@ApiOperation("用户登陆")
|
||||||
@Log(title = "用户登陆", businessType = BusinessType.EXPORT)
|
@Log(title = "用户登陆", businessType = BusinessType.EXPORT)
|
||||||
@RequestMapping(value = "/login", method = RequestMethod.POST,produces= "application/json;charset=UTF-8")
|
@RequestMapping(value = "/vip/user/login", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
|
||||||
public AjaxResult login(@RequestBody SysUser user) {
|
public AjaxResult login(@RequestBody SysUser user) {
|
||||||
AjaxResult success = success("登陆成功");
|
AjaxResult success = success( "登陆成功" );
|
||||||
boolean rememberMe=false;
|
boolean rememberMe = false;
|
||||||
UsernamePasswordToken token = new UsernamePasswordToken(user.getUserName(), user.getPassword(), rememberMe);
|
UsernamePasswordToken token = new UsernamePasswordToken( user.getUserName(), user.getPassword(), rememberMe );
|
||||||
Subject subject = SecurityUtils.getSubject();
|
Subject subject = SecurityUtils.getSubject();
|
||||||
try
|
try {
|
||||||
{
|
subject.login( token );
|
||||||
subject.login(token);
|
String tokenSign = JwtUtil.sign( user.getUserName(), user.getUserName() );
|
||||||
String tokenSign=JwtUtil.sign(user.getUserName(),user.getUserName());
|
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
|
|
||||||
json.put("token",tokenSign);
|
json.put( "token", tokenSign );
|
||||||
success.put("data",json);
|
success.put( "data", json );
|
||||||
return success;
|
return success;
|
||||||
}
|
} catch (AuthenticationException e) {
|
||||||
catch (AuthenticationException e)
|
|
||||||
{
|
|
||||||
String msg = "用户或密码错误";
|
String msg = "用户或密码错误";
|
||||||
if (StringUtils.isNotEmpty(e.getMessage()))
|
if (StringUtils.isNotEmpty( e.getMessage() )) {
|
||||||
{
|
|
||||||
msg = e.getMessage();
|
msg = e.getMessage();
|
||||||
}
|
}
|
||||||
return error(msg);
|
return error( msg );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@GetMapping("/info")
|
|
||||||
|
@GetMapping("/member/user/info")
|
||||||
public AjaxResult get() {
|
public AjaxResult get() {
|
||||||
AjaxResult success = success("登陆成功");
|
AjaxResult success = success( "登陆成功" );
|
||||||
VipUser vipUser = userService.selectUserByLoginName(JwtUtil.getLoginName());
|
SysUser vipUser = sysUserService.selectUserByLoginName( JwtUtil.getLoginName() );
|
||||||
success.put("user", vipUser);
|
success.put( "data", vipUser );
|
||||||
SysUser vipUser2 =ShiroUtils.getSysUser();
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public TableDataInfo list(VipUser user) {
|
public TableDataInfo list(VipUser user) {
|
||||||
|
|
@ -114,7 +114,6 @@ public class ApiVipUserController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改保存用户
|
* 修改保存用户
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue