没有合适的资源?快使用搜索试试~ 我知道了~
首页选课学习v3.1模块需求分析
资源详情
资源推荐
String status = xcChooseCourse.getStatus();
if (!"701001".equals(status)){
XueChengPlusException.cast("选课未成功,无法添加到课程表");
}
//查询我的课程表
XcCourseTables xcCourseTables =
getXcCourseTables(xcChooseCourse.getUserId(),
xcChooseCourse.getCourseId());
if(xcCourseTables!=null){
return xcCourseTables;
}
XcCourseTables xcCourseTablesNew = new XcCourseTables();
xcCourseTablesNew.setChooseCourseId(xcChooseCourse.getId());
xcCourseTablesNew.setUserId(xcChooseCourse.getUserId());
xcCourseTablesNew.setCourseId(xcChooseCourse.getCourseId());
xcCourseTablesNew.setCompanyId(xcChooseCourse.getCompanyId());
xcCourseTablesNew.setCourseName(xcChooseCourse.getCourseName());
xcCourseTablesNew.setCreateDate(LocalDateTime.now());
xcCourseTablesNew.setValidtimeStart(xcChooseCourse.getValidtimeSta
rt());
xcCourseTablesNew.setValidtimeEnd(xcChooseCourse.getValidtimeEnd()
);
xcCourseTablesNew.setCourseType(xcChooseCourse.getOrderType());
xcCourseTablesMapper.insert(xcCourseTablesNew);
return xcCourseTablesNew;
}
/**
* @description 根据课程和用户查询我的课程表中某一门课程
* @param userId
* @param courseId
* @return com.xuecheng.learning.model.po.XcCourseTables
* @author Mr.M
* @date 2022/10/2 17:07
*/
public XcCourseTables getXcCourseTables(String userId,Long
courseId){
XcCourseTables xcCourseTables =
xcCourseTablesMapper.selectOne(new
LambdaQueryWrapper<XcCourseTables>().eq(XcCourseTables::getUserId,
userId).eq(XcCourseTables::getCourseId, courseId));
return xcCourseTables;
}
2.2.5.5 添加收费课程
Java
//添加收费课程
public XcChooseCourse addChargeCoruse(String userId,CoursePublish
coursepublish){
//如果存在待支付交易记录直接返回
LambdaQueryWrapper<XcChooseCourse> queryWrapper = new
LambdaQueryWrapper<>();
queryWrapper = queryWrapper.eq(XcChooseCourse::getUserId,
userId)
.eq(XcChooseCourse::getCourseId,
coursepublish.getId())
.eq(XcChooseCourse::getOrderType, "700002")//收费订单
.eq(XcChooseCourse::getStatus, "701002");//待支付
List<XcChooseCourse> xcChooseCourses =
xcChooseCourseMapper.selectList(queryWrapper);
if (xcChooseCourses != null && xcChooseCourses.size()>0) {
return xcChooseCourses.get(0);
}
XcChooseCourse xcChooseCourse = new XcChooseCourse();
xcChooseCourse.setCourseId(coursepublish.getId());
xcChooseCourse.setCourseName(coursepublish.getName());
xcChooseCourse.setCoursePrice(coursepublish.getPrice());
xcChooseCourse.setUserId(userId);
xcChooseCourse.setCompanyId(coursepublish.getCompanyId());
xcChooseCourse.setOrderType("700002");//收费课程
xcChooseCourse.setCreateDate(LocalDateTime.now());
xcChooseCourse.setStatus("701002");//待支付
xcChooseCourse.setValidDays(coursepublish.getValidDays());
xcChooseCourse.setValidtimeStart(LocalDateTime.now());
xcChooseCourse.setValidtimeEnd(LocalDateTime.now().plusDays(course
publish.getValidDays()));
xcChooseCourseMapper.insert(xcChooseCourse);
return xcChooseCourse;
}
2.2.5.6 获取学习资格
定义获取学习资格接口
Java
public interface MyCourseTablesService {
public XcChooseCourseDto addChooseCourse(String userId, Long
courseId);
/**
* @description 判断学习资格
* @param userId
* @param courseId
* @return XcCourseTablesDto 学习资格状态
[{"code":"702001","desc":"正常学习"},{"code":"702002","desc":"没有
选课或选课后没有支付"},{"code":"702003","desc":"已过期需要申请续期或重
新支付"}]
* @author Mr.M
* @date 2022/10/3 7:37
*/
public XcCourseTablesDto getLearningStatus(String userId, Long
courseId);
}
接口实现如下:
Java
/**
* @description 判断学习资格
* @param userId
* @param courseId
* @return XcCourseTablesDto 学习资格状态
[{"code":"702001","desc":"正常学习"},{"code":"702002","desc":"没有
选课或选课后没有支付"},{"code":"702003","desc":"已过期需要申请续期或重
新支付"}]
* @author Mr.M
* @date 2022/10/3 7:37
*/
public XcCourseTablesDto getLearningStatus(String userId, Long
courseId){
//查询我的课程表
XcCourseTables xcCourseTables = getXcCourseTables(userId,
courseId);
if(xcCourseTables==null){
XcCourseTablesDto xcCourseTablesDto = new
XcCourseTablesDto();
//没有选课或选课后没有支付
xcCourseTablesDto.setLearnStatus("702002");
return xcCourseTablesDto;
}
XcCourseTablesDto xcCourseTablesDto = new XcCourseTablesDto();
BeanUtils.copyProperties(xcCourseTables,xcCourseTablesDto);
//是否过期,true 过期,false 未过期
boolean isExpires =
xcCourseTables.getValidtimeEnd().isBefore(LocalDateTime.now());
if(!isExpires){
//正常学习
xcCourseTablesDto.setLearnStatus("702001");
return xcCourseTablesDto;
}else{
//已过期
xcCourseTablesDto.setLearnStatus("702003");
return xcCourseTablesDto;
}
}
2.2.5.7 service 接口完善
完善 Service 接口
Java
@Transactional
@Override
public XcChooseCourseDto addChooseCourse(String userId, Long
courseId) {
//查询课程信息
CoursePublish coursepublish =
contentServiceClient.getCoursepublish(courseId);
//课程收费标准
String charge = coursepublish.getCharge();
//选课记录
XcChooseCourse chooseCourse = null;
if ("201000".equals(charge)) {//课程免费
//添加免费课程
chooseCourse = addFreeCoruse(userId, coursepublish);
//添加到我的课程表
XcCourseTables xcCourseTables =
addCourseTabls(chooseCourse);
} else {
//添加收费课程
chooseCourse = addChargeCoruse(userId, coursepublish);
}
XcChooseCourseDto xcChooseCourseDto = new XcChooseCourseDto();
BeanUtils.copyProperties(chooseCourse,xcChooseCourseDto);
//获取学习资格
XcCourseTablesDto xcCourseTablesDto =
getLearningStatus(userId, courseId);
xcChooseCourseDto.setLearnStatus(xcCourseTablesDto.getLearnStatus(
));
return xcChooseCourseDto;
}
2.2.5.8 完善 controller
Java
@Autowired
MyCourseTablesService courseTablesService;
@ApiOperation("添加选课")
@PostMapping("/choosecourse/{courseId}")
public XcChooseCourseDto addChooseCourse(@PathVariable("courseId")
Long courseId) {
//登录用户
SecurityUtil.XcUser user = SecurityUtil.getUser();
if(user == null){
XueChengPlusException.cast("请登录后继续选课");
}
String userId = user.getId();
剩余114页未读,继续阅读
xiaoli8748_软件开发
- 粉丝: 1w+
- 资源: 1436
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- zlib-1.2.12压缩包解析与技术要点
- 微信小程序滑动选项卡源码模版发布
- Unity虚拟人物唇同步插件Oculus Lipsync介绍
- Nginx 1.18.0版本WinSW自动安装与管理指南
- Java Swing和JDBC实现的ATM系统源码解析
- 掌握Spark Streaming与Maven集成的分布式大数据处理
- 深入学习推荐系统:教程、案例与项目实践
- Web开发者必备的取色工具软件介绍
- C语言实现李春葆数据结构实验程序
- 超市管理系统开发:asp+SQL Server 2005实战
- Redis伪集群搭建教程与实践
- 掌握网络活动细节:Wireshark v3.6.3网络嗅探工具详解
- 全面掌握美赛:建模、分析与编程实现教程
- Java图书馆系统完整项目源码及SQL文件解析
- PCtoLCD2002软件:高效图片和字符取模转换
- Java开发的体育赛事在线购票系统源码分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功