-
授课老师管理
-
订单管理
-
菜单管理
-
友情链接管理
-
系统属性管理
-
自定义帖子管理
-
轮转图片帖子管理
3. 前端
======
3.1 首页
3.2 课程
提供按照课程的类别,类型以及搜索框进行快速查询相关课程
点击任意一门课程,免费课程可以直接观看,vip课程则需要通过支付宝或者微信缴费开通vip进行观看
3.3 登入
学习课程时候需要登录才能观看相关视频资料
登入后可以查看个人中心的相关功能
在我的订单界面可以查看已经购买的课程
3.4 商品兑换
3.5 课程发布
在课程发布页面可以提交发布的课程资料
在我的发布页面可以查看所有已经发布的课程相关信息,查看审核状态
4. 后端
4.1 登录
4.2 系统管理
包括用户管理,角色管理,菜单管理,可以查看对应的信息并添加,导入,修改或删除
角色管理界面可以为角色分配权限
4.3 课程管理
可以添加课程,对课程进行分类管理:公共课程,专业课程,免费课程等
在类别管理中可以添加课程的分类信息
在审核功能处可以对上传的视频进行审核
4.4 教师管理
4.5 导航菜单
4.6 轮播管理
4.7 通知管理
4.8 礼品管理
5,系统的核心代码
=========
/**
-
操作日志记录注解
-
Created by xiaomeng 2020-03-21 17:03
*技术交流v:kaifazixun
-
操作日志记录注解
-
Created by wangfan on 2020-03-21 17:03
*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperLog {
/**
- 模块
*/
String value();
/**
- 功能
*/
String desc();
/**
- 是否记录请求参数
*/
boolean param() default true;
/**
- 是否记录返回结果
*/
boolean result() default false;
}*
*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperLog {
/**
- 模块
*/
String value();
/**
- 功能
*/
String desc();
/**
- 是否记录请求参数
*/
boolean param() default true;
/**
- 是否记录返回结果
*/
boolean result() default false;
}
@Aspect
@Component
public class OperLogAspect {
private ThreadLocal startTime = new ThreadLocal<>();
@Autowired
private OperRecordService operRecordService;
@Pointcut(“@annotation(com.egao.common.core.annotation.OperLog)”)
public void operLog() {
}
@Before(“operLog()”)
public void doBefore(JoinPoint joinPoint) throws Throwable {
startTime.set(System.currentTimeMillis());
}
@AfterReturning(pointcut = “operLog()”, returning = “result”)
public void doAfterReturning(JoinPoint joinPoint, Object result) {
saveLog(joinPoint, result, null);
}
@AfterThrowing(value = “operLog()”, throwing = “e”)
public void doAfterThrowing(JoinPoint joinPoint, Exception e) {
saveLog(joinPoint, null, e);
}
private void saveLog(JoinPoint joinPoint, Object result, Exception e) {
// 获取reques对象
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = (attributes == null ? null : attributes.getRequest());
// 构建操作日志
OperRecord operRecord = new OperRecord();
operRecord.setUserId(getLoginUserId());
if (startTime.get() != null) operRecord.setSpendTime(System.currentTimeMillis() - startTime.get());
if (request != null) {
operRecord.setRequestMethod(request.getMethod());
operRecord.setUrl(request.getRequestURI());
operRecord.setIp(UserAgentGetter.getIp(request));
}
// 记录异常信息
if (e != null) {
operRecord.setState(1);
operRecord.setComments(StrUtil.sub(e.toString(), 0, 2000));
}
public class BaseController {
/**
- 获取当前登录的user
*/
public User getLoginUser() {
Subject subject = SecurityUtils.getSubject();
if (subject == null) return null;
Object object = subject.getPrincipal();
if (object != null) return (User) object;
return null;
}
/**
- 获取当前登录的userId
*/
public Integer getLoginUserId() {
User loginUser = getLoginUser();
return loginUser == null ? null : loginUser.getUserId();
}
}
/**
-
用户管理
-
Created by xiaomeng 2020-12-24 16:10
*技术交流V:kaifazixun
*/
@Controller
@RequestMapping(“/sys/user”)
public class UserController extends BaseController {
@Autowired
private UserService userService;
@Autowired
private DictionaryDataService dictionaryDataService;
@Autowired
private RoleService roleService;
@Autowired
private OrganizationService organizationService;
@RequiresPermissions(“sys:user:view”)
@RequestMapping()
public String view(Model model) {
model.addAttribute(“sexList”, dictionaryDataService.listByDictCode(“sex”));
model.addAttribute(“organizationTypeList”, dictionaryDataService.listByDictCode(“organization_type”));
model.addAttribute(“rolesJson”, JSON.toJSONString(roleService.list()));
return “system/user.html”;
}
/**
- 个人中心
*/
@RequestMapping(“/info”)
public String userInfo(Model model) {
model.addAttribute(“user”, userService.getFullById(getLoginUserId()));
model.addAttribute(“sexList”, dictionaryDataService.listByDictCode(“sex”));
return “index/user-info.html”;
}
/**
- 分页查询用户
*/
@OperLog(value = “用户管理”, desc = “分页查询”)
@RequiresPermissions(“sys:user:list”)
@ResponseBody
@RequestMapping(“/page”)
public PageResult page(HttpServletRequest request) {
PageParam pageParam = new PageParam<>(request);
pageParam.setDefaultOrder(null, new String[]{“create_time”});
return userService.listPage(pageParam);
}
/**
- 查询全部用户
*/
@OperLog(value = “用户管理”, desc = “查询全部”)
@RequiresPermissions(“sys:user:list”)
@ResponseBody
@RequestMapping(“/list”)
public JsonResult list(HttpServletRequest request) {
PageParam pageParam = new PageParam<>(request);
List records = userService.listAll(pageParam.getNoPageParam());
return JsonResult.ok().setData(pageParam.sortRecords(records));
}
/**
- 根据id查询用户
*/
@OperLog(value = “用户管理”, desc = “根据id查询”)
@RequiresPermissions(“sys:user:list”)
@ResponseBody
@RequestMapping(“/get”)
public JsonResult get(Integer id) {
PageParam pageParam = new PageParam<>();
pageParam.put(“userId”, id);
List records = userService.listAll(pageParam.getNoPageParam());
return JsonResult.ok().setData(pageParam.getOne(records));
}
/**
-
字典管理
-
Created by xiaomeng on 2021-03-14 11:29:03
-
技术交流加v:kafazixun
*/
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/7323ebdd3046890ed3f38cd953cf562d.jpeg)
读者福利
由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴
更多笔记分享
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
8)]
[外链图片转存中…(img-mWVg2agC-1713430580678)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/7323ebdd3046890ed3f38cd953cf562d.jpeg)
读者福利
由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴
[外链图片转存中…(img-VX9uRPrG-1713430580679)]
[外链图片转存中…(img-0xXavJEL-1713430580679)]
[外链图片转存中…(img-DDdYvbFg-1713430580679)]
更多笔记分享
[外链图片转存中…(img-HvnoRGu0-1713430580679)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!