package cn.stylefeng.guns.modular.business.dto;
|
|
import cn.stylefeng.guns.modular.business.entity.CourseChapter;
|
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
|
import java.io.Serializable;
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.List;
|
|
|
@ApiModel("课程响应对象信息")
|
@Data
|
public class CourseResponseDTO implements Serializable {
|
|
|
/**
|
* 主键id
|
*/
|
@ApiModelProperty(value = "主键id")
|
@ChineseDescription("主键id")
|
private Long id;
|
/**
|
* 课程/章节名称
|
*/
|
|
@ApiModelProperty(value = "课程名称")
|
@ChineseDescription("课程名称")
|
private String courseName;
|
/**
|
* 课程标签id串,逗号拼接
|
*/
|
|
@ApiModelProperty(value = "课程标签id串,逗号拼接")
|
@ChineseDescription("课程标签id串,逗号拼接")
|
private String courseTagIds;
|
/**
|
* 课程简介
|
*/
|
|
@ApiModelProperty(value = "课程简介")
|
@ChineseDescription("课程简介")
|
private String courseIntroduction;
|
/**
|
* 课程有效期
|
*/
|
|
@ApiModelProperty(value = "课程有效期")
|
@ChineseDescription("课程有效期")
|
private Integer courseValidity;
|
/**
|
* 价格
|
*/
|
@ApiModelProperty(value = "价格")
|
@ChineseDescription("价格")
|
private BigDecimal price;
|
/**
|
* 原价
|
*/
|
|
@ApiModelProperty(value = "原价")
|
@ChineseDescription("原价")
|
private BigDecimal originalPrice;
|
/**
|
* 课程封面图
|
*/
|
|
@ApiModelProperty(value = "课程封面图")
|
@ChineseDescription("课程封面图")
|
private String coverPictureUrl;
|
|
/**
|
* 课程详细图
|
*/
|
|
@ApiModelProperty(value = "课程详细图")
|
@ChineseDescription("课程详细图")
|
private String courseDetailUrl;
|
/**
|
* 课程详细内容
|
*/
|
|
@ApiModelProperty(value = "课程详细内容")
|
@ChineseDescription("课程详细内容")
|
private String courseContent;
|
/**
|
* 总评分
|
*/
|
|
@ApiModelProperty(value = "总评分")
|
@ChineseDescription("总评分")
|
private BigDecimal totalScore;
|
/**
|
* 上架状态 1-上架,2-下架
|
*/
|
|
|
@ApiModelProperty(value = "章节集合")
|
@ChineseDescription("章节集合")
|
private List<CourseChapter> courseChapterList;
|
|
|
|
@ApiModelProperty(value = "课程标签名称集合")
|
@ChineseDescription("课程标签名称集合")
|
private String courseTagNames;
|
|
@ApiModelProperty(value = "是否已购买 true-是,false-否")
|
@ChineseDescription("是否已购买 true-是,false-否")
|
private Boolean isBuy = false;
|
|
@ApiModelProperty(value = "已购买人数")
|
@ChineseDescription("已购买人数")
|
private Integer buyNum = 0;
|
|
@ApiModelProperty(value = "课程订单id")
|
@ChineseDescription("课程订单id")
|
private Long courseOrderId ;
|
|
|
@ApiModel("课程章节响应")
|
@Data
|
public static class CourseChapterResponseDTO extends CourseChapter {
|
|
/**
|
* 课程总时长 单位S
|
*/
|
|
@ApiModelProperty(value = "课程总时长 单位S")
|
@ChineseDescription("课程总时长 单位S")
|
private Long totalTime;
|
/**
|
* 课程已学时长
|
*/
|
@ApiModelProperty(value = "课程已学时长")
|
@ChineseDescription("课程已学时长")
|
private Long learnedTime;
|
|
@ApiModelProperty(value = "已学时长显示")
|
@ChineseDescription("已学时长显示")
|
private String studyShowTime;
|
|
@ApiModelProperty(value = "总时长展示")
|
@ChineseDescription("总时长展示")
|
private String totalShowTime;
|
|
@ApiModelProperty(value = "学习状态 1-已学,0-未学")
|
@ChineseDescription("学习状态 1-已学,0-未学")
|
private Integer studyState = 0;
|
|
@ApiModelProperty("学习百分比")
|
private Integer studyPercent = 0;
|
|
public Integer getStudyPercent() {
|
if (getTotalTime() != null && getLearnedTime() != null){
|
return (int)Math.ceil(getLearnedTime()*100f/getTotalTime());
|
}
|
return studyPercent;
|
}
|
public String getStudyShowTime() {
|
if (this.learnedTime != null){
|
int hour = (int) Math.floor(this.learnedTime.longValue() / 3600f);
|
long minute = (int) Math.floor((this.learnedTime.longValue() % 3600l) / 60f);
|
long sec = (this.learnedTime.longValue() % 3600l) % 60;
|
return String.format("%02d", hour)+":"+String.format("%02d", minute)+":"+String.format("%02d", sec);
|
}
|
return studyShowTime;
|
}
|
|
public String getTotalShowTime() {
|
if (this.totalTime != null){
|
int hour = (int) Math.floor(this.totalTime.longValue() / 3600f);
|
long minute = (int) Math.floor((this.totalTime.longValue() % 3600l) / 60f);
|
long sec = (this.totalTime.longValue() % 3600l) % 60;
|
return String.format("%02d", hour)+":"+String.format("%02d", minute)+":"+String.format("%02d", sec);
|
}
|
return totalShowTime;
|
}
|
|
public Integer getStudyState() {
|
if (this.learnedTime != null){
|
return 1;
|
}
|
return studyState;
|
}
|
|
@ApiModelProperty(value = "章节响应DTO子集")
|
@ChineseDescription("章节响应DTO子集")
|
private List<CourseChapterResponseDTO> childCourseChapterResponseDTOList;
|
|
@ApiModelProperty(value = "最新一次学习位置")
|
@ChineseDescription("最新一次学习位置")
|
private Long lastStudyTime;
|
|
|
}
|
}
|