新增讲师管理页面及crud操作

新增腾讯云cos对象存储
This commit is contained in:
xjs 2022-06-29 17:21:35 +08:00
parent 196e037077
commit 87d711fc67
76 changed files with 2741 additions and 1 deletions

View File

@ -0,0 +1,64 @@
package com.xjs.utils;
import lombok.Data;
//统一返回结果类
@Data
public class Result<T> {
private Integer code; //状态码
private String message; //返回状态信息成功 失败
private T data; //返回数据
public Result() {}
//成功的方法没有data数据
// public static<T> Result<T> ok() {
// Result<T> result = new Result<>();
// result.setCode(200);
// result.setMessage("成功");
// return result;
// }
//失败的方法,没有data数据
// public static<T> Result<T> fail() {
// Result<T> result = new Result<>();
// result.setCode(201);
// result.setMessage("失败");
// return result;
// }
//成功的方法有data数据
public static<T> Result<T> ok(T data) {
Result<T> result = new Result<>();
if(data != null) {
result.setData(data);
}
result.setCode(200);
result.setMessage("成功");
return result;
}
//失败的方法,有data数据
public static<T> Result<T> fail(T data) {
Result<T> result = new Result<>();
if(data != null) {
result.setData(data);
}
result.setCode(500);
result.setMessage("失败");
return result;
}
public Result<T> message(String msg){
this.setMessage(msg);
return this;
}
public Result<T> code(Integer code){
this.setCode(code);
return this;
}
}

View File

@ -0,0 +1,20 @@
package com.xjs.classroom.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum CouponRangeType {
ALL(1,"通用"),
;
@EnumValue
private Integer code ;
private String comment ;
CouponRangeType(Integer code, String comment ){
this.code=code;
this.comment=comment;
}
}

View File

@ -0,0 +1,19 @@
package com.xjs.classroom.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum CouponStatus {
NOT_USED(0,"未使用"),
USED(1,"已使用");
@EnumValue
private Integer code ;
private String comment ;
CouponStatus(Integer code, String comment ){
this.code=code;
this.comment=comment;
}
}

View File

@ -0,0 +1,19 @@
package com.xjs.classroom.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum CouponType {
REGISTER(1,"注册"),
RECOMMEND(2,"推荐购买");
@EnumValue
private Integer code;
private String comment ;
CouponType(Integer code, String comment ){
this.code=code;
this.comment=comment;
}
}

View File

@ -0,0 +1,21 @@
package com.xjs.classroom.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum OrderStatus {
//订单状态0->待付款1->待发货2->待团长收货3->待用户收货已完成-1->已取消
UNPAID(0,"待支付"),
PAID(1,"已支付"),
;
@EnumValue
private Integer code ;
private String comment ;
OrderStatus(Integer code, String comment ){
this.code = code;
this.comment=comment;
}
}

View File

@ -0,0 +1,21 @@
package com.xjs.classroom.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum PaymentStatus {
UNPAID(1,"支付中"),
PAID(2,"已支付");
//REFUND(-1,"已退款");
@EnumValue
private Integer code ;
private String comment ;
PaymentStatus(Integer code, String comment) {
this.code = code;
this.comment = comment;
}
}

View File

@ -0,0 +1,20 @@
package com.xjs.classroom.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum PaymentType {
ALIPAY(1,"支付宝"),
WEIXIN(2,"微信" );
@EnumValue
private Integer code ;
private String comment ;
PaymentType(Integer code, String comment ){
this.code = code;
this.comment=comment;
}
}

View File

@ -0,0 +1,93 @@
package com.xjs.classroom.model.activity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ApiModel(description = "CouponInfo")
@TableName("coupon_info")
public class CouponInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "购物券类型 1 现金券")
@TableField("coupon_type")
private String couponType;
@ApiModelProperty(value = "优惠卷名字")
@TableField("coupon_name")
private String couponName;
@ApiModelProperty(value = "金额")
@TableField("amount")
private BigDecimal amount;
@ApiModelProperty(value = "使用门槛 0->没门槛")
@TableField("condition_amount")
private BigDecimal conditionAmount;
@ApiModelProperty(value = "可以领取的开始日期")
@TableField("start_time")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@ApiModelProperty(value = "可以领取的结束日期")
@TableField("end_time")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
@ApiModelProperty(value = "使用范围[1->全场通用]")
@TableField("range_type")
private String rangeType;
@ApiModelProperty(value = "使用范围描述")
@TableField("rule_desc")
private String ruleDesc;
@ApiModelProperty(value = "发行数量")
@TableField("publish_count")
private Integer publishCount;
@ApiModelProperty(value = "每人限领张数")
@TableField("per_limit")
private Integer perLimit;
@ApiModelProperty(value = "已使用数量")
@TableField("use_count")
private Integer useCount;
@ApiModelProperty(value = "领取数量")
@TableField("receive_count")
private Integer receiveCount;
@ApiModelProperty(value = "过期时间")
@TableField("expire_time")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expireTime;
@ApiModelProperty(value = "发布状态[0-未发布1-已发布]")
@TableField("publish_status")
private Boolean publishStatus;
@ApiModelProperty(value = "使用状态")
@TableField(exist = false)
private String couponStatus;
@ApiModelProperty(value = "优惠券领取表id")
@TableField(exist = false)
private Long couponUseId;
@ApiModelProperty(value = "领取时间")
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date getTime;
}

View File

@ -0,0 +1,51 @@
package com.xjs.classroom.model.activity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel(description = "CouponUse")
@TableName("coupon_use")
public class CouponUse extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "购物券ID")
@TableField("coupon_id")
private Long couponId;
@ApiModelProperty(value = "用户ID")
@TableField("user_id")
private Long userId;
@ApiModelProperty(value = "订单ID")
@TableField("order_id")
private Long orderId;
@ApiModelProperty(value = "购物券状态0未使用 1已使用")
@TableField("coupon_status")
private String couponStatus;
@ApiModelProperty(value = "获取时间")
@TableField("get_time")
private Date getTime;
@ApiModelProperty(value = "使用时间")
@TableField("using_time")
private Date usingTime;
@ApiModelProperty(value = "支付时间")
@TableField("used_time")
private Date usedTime;
@ApiModelProperty(value = "过期时间")
@TableField("expire_time")
private Date expireTime;
}

View File

@ -0,0 +1,43 @@
package com.xjs.classroom.model.base;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Data
public class BaseEntity implements Serializable {
@ApiModelProperty(value = "id")
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("update_time")
private Date updateTime;
@ApiModelProperty(value = "逻辑删除(1:已删除0:未删除)")
@JsonIgnore
@TableLogic
@TableField("is_deleted")
private Integer isDeleted;
@ApiModelProperty(value = "其他参数")
@TableField(exist = false)
private Map<String,Object> param = new HashMap<>();
}

View File

@ -0,0 +1,33 @@
package com.xjs.classroom.model.base;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.Id;
import lombok.Data;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.annotation.Transient;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Data
public class BaseMongoEntity implements Serializable {
@ApiModelProperty(value = "id")
@Id
private String id;
@ApiModelProperty(value = "创建时间")
@CreatedDate
private Date createTime;
@ApiModelProperty(value = "更新时间")
@LastModifiedDate
private Date updateTime;
@ApiModelProperty(value = "其他参数")
@Transient //被该注解标注的将不会被录入到数据库中只作为普通的javaBean属性
private Map<String,Object> param = new HashMap<>();
}

View File

@ -0,0 +1,20 @@
package com.xjs.classroom.model.base;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "MqRepeatRecord")
@TableName("mq_repeat_record")
public class MqRepeatRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "业务编号")
@TableField("business_no")
private String businessNo;
}

View File

@ -0,0 +1,46 @@
package com.xjs.classroom.model.live;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel(description = "LiveCourse")
@TableName("live_course")
public class LiveCourse extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程id")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "直播名称")
@TableField("course_name")
private String courseName;
@ApiModelProperty(value = "直播开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("start_time")
private Date startTime;
@ApiModelProperty(value = "直播结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("end_time")
private Date endTime;
@ApiModelProperty(value = "主播老师id")
@TableField("teacher_id")
private Long teacherId;
@ApiModelProperty(value = "课程封面图片路径")
@TableField("cover")
private String cover;
}

View File

@ -0,0 +1,41 @@
package com.xjs.classroom.model.live;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "LiveCourseAccount")
@TableName("live_course_account")
public class LiveCourseAccount extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "直播课程id")
@TableField("live_course_id")
private Long liveCourseId;
@ApiModelProperty(value = "主播登录账号")
@TableField("zhubo_account")
private String zhuboAccount;
@ApiModelProperty(value = "主播登录密码")
@TableField("zhubo_password")
private String zhuboPassword;
@ApiModelProperty(value = "主播登录秘钥")
@TableField("zhubo_key")
private String zhuboKey;
@ApiModelProperty(value = "助教登录秘钥")
@TableField("admin_key")
private String adminKey;
@ApiModelProperty(value = "学生登录秘钥")
@TableField("user_key")
private String userKey;
}

View File

@ -0,0 +1,37 @@
package com.xjs.classroom.model.live;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "LiveCourseConfig")
@TableName("live_course_config")
public class LiveCourseConfig extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "直播课程id")
@TableField("live_course_id")
private Long liveCourseId;
@ApiModelProperty(value = "界面模式 1全屏模式 0二分屏 2课件模式")
@TableField("page_view_mode")
private Integer pageViewMode;
@ApiModelProperty(value = "是否开启 观看人数 0否 1是")
@TableField("number_enable")
private Integer numberEnable;
@ApiModelProperty(value = "商城是否开启 0未开启 1开启")
@TableField("store_enable")
private Integer storeEnable;
@ApiModelProperty(value = "1商品列表,2商城链接,3商城二维码")
@TableField("store_type")
private Integer storeType;
}

View File

@ -0,0 +1,25 @@
package com.xjs.classroom.model.live;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "CourseDescription")
@TableName("live_course_description")
public class LiveCourseDescription extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程ID")
@TableField("live_course_id")
private Long liveCourseId;
@ApiModelProperty(value = "课程简介")
@TableField("description")
private String description;
}

View File

@ -0,0 +1,61 @@
package com.xjs.classroom.model.live;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "LiveCourseGoods")
@TableName("live_course_goods")
public class LiveCourseGoods extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "直播课程id")
@TableField("live_course_id")
private Long liveCourseId;
@ApiModelProperty(value = "推荐点播课程id")
@TableField("goods_id")
private Long goodsId;
@ApiModelProperty(value = "商品名称")
@TableField("name")
private String name;
@ApiModelProperty(value = "图片")
@TableField("img")
private String img;
@ApiModelProperty(value = "商品现价")
@TableField("price")
private String price;
@ApiModelProperty(value = "商品原价")
@TableField("originalPrice")
private String originalPrice;
@ApiModelProperty(value = "商品标签")
@TableField("tab")
private Integer tab;
@ApiModelProperty(value = "商品链接")
@TableField("url")
private String url;
@ApiModelProperty(value = "商品状态0下架1上架2推荐")
@TableField("putaway")
private String putaway;
@ApiModelProperty(value = "购买模式(1,链接购买 2,二维码购买)")
@TableField("pay")
private Integer pay;
@ApiModelProperty(value = "商品二维码")
@TableField("qrcode")
private String qrcode;
}

View File

@ -0,0 +1,57 @@
package com.xjs.classroom.model.live;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "LiveVisitor")
@TableName("live_visitor")
public class LiveVisitor extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "直播课程id")
@TableField("live_course_id")
private Long liveCourseId;
@ApiModelProperty(value = "直播课程")
@TableField("course_name")
private String courseName;
@ApiModelProperty(value = "来访者用户id")
@TableField("user_id")
private String userId;
@ApiModelProperty(value = "昵称")
@TableField("nick_name")
private String nickName;
@ApiModelProperty(value = "进入时间")
@TableField("join_time")
private String joinTime;
@ApiModelProperty(value = "离开的时间")
@TableField("leave_time")
private String leaveTime;
@ApiModelProperty(value = "用户地理位置")
@TableField("location")
private String location;
@ApiModelProperty(value = "用户停留的时间(单位:秒)")
@TableField("duration")
private Long duration;
@ApiModelProperty(value = "用户停留时间(时分秒)")
@TableField("duration_time")
private String durationTime;
@ApiModelProperty(value = "平台来访者id去重使用")
@TableField("live_visitor_id")
private String liveVisitorId;
}

View File

@ -0,0 +1,55 @@
package com.xjs.classroom.model.order;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(description = "OrderDetail")
@TableName("order_detail")
public class OrderDetail extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程id")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "课程名称")
@TableField("course_name")
private String courseName;
@ApiModelProperty(value = "课程封面图片路径")
@TableField("cover")
private String cover;
@ApiModelProperty(value = "订单编号")
@TableField("order_id")
private Long orderId;
@ApiModelProperty(value = "用户id")
@TableField("user_id")
private Long userId;
@ApiModelProperty(value = "原始金额")
@TableField("origin_amount")
private BigDecimal originAmount;
@ApiModelProperty(value = "优惠劵减免金额")
@TableField("coupon_reduce")
private BigDecimal couponReduce;
@ApiModelProperty(value = "最终金额")
@TableField("final_amount")
private BigDecimal finalAmount;
@ApiModelProperty(value = "会话id 当前会话id 继承购物车中会话id")
@TableField("session_id")
private String sessionId;
}

View File

@ -0,0 +1,74 @@
package com.xjs.classroom.model.order;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ApiModel(description = "OrderInfo")
@TableName("order_info")
public class OrderInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户id")
@TableField("user_id")
private Long userId;
@ApiModelProperty(value = "昵称")
@TableField("nick_name")
private String nickName;
@TableField("phone")
private String phone;
@ApiModelProperty(value = "原始金额")
@TableField("origin_amount")
private BigDecimal originAmount;
@ApiModelProperty(value = "优惠券减免")
@TableField("coupon_reduce")
private BigDecimal couponReduce;
@ApiModelProperty(value = "最终金额")
@TableField("final_amount")
private BigDecimal finalAmount;
@ApiModelProperty(value = "订单状态")
@TableField("order_status")
private String orderStatus;
@ApiModelProperty(value = "订单交易编号(第三方支付用)")
@TableField("out_trade_no")
private String outTradeNo;
@ApiModelProperty(value = "订单描述(第三方支付用)")
@TableField("trade_body")
private String tradeBody;
@ApiModelProperty(value = "session id")
@TableField("session_id")
private String sessionId;
@ApiModelProperty(value = "地区id")
@TableField("province")
private String province;
@ApiModelProperty(value = "支付时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("pay_time")
private Date payTime;
@ApiModelProperty(value = "失效时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("expire_time")
private Date expireTime;
}

View File

@ -0,0 +1,63 @@
package com.xjs.classroom.model.order;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.enums.PaymentStatus;
import com.xjs.classroom.enums.PaymentType;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ApiModel(description = "PaymentInfo")
@TableName("payment_info")
public class PaymentInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "对外业务编号")
@TableField("out_trade_no")
private String outTradeNo;
@ApiModelProperty(value = "订单编号")
@TableField("order_id")
private Long orderId;
@ApiModelProperty(value = "用户id")
@TableField("user_id")
private Long userId;
@ApiModelProperty(value = "支付宝交易编号")
@TableField("alipay_trade_no")
private String alipayTradeNo;
@ApiModelProperty(value = "支付金额")
@TableField("total_amount")
private BigDecimal totalAmount;
@ApiModelProperty(value = "交易内容")
@TableField("trade_body")
private String tradeBody;
@ApiModelProperty(value = "paymentType")
@TableField("payment_type")
private PaymentType paymentType;
@ApiModelProperty(value = "支付状态")
@TableField("payment_status")
private PaymentStatus paymentStatus;
@ApiModelProperty(value = "回调信息")
@TableField("callback_content")
private String callbackContent;
@ApiModelProperty(value = "回调时间")
@TableField("callback_time")
private Date callbackTime;
}

View File

@ -0,0 +1,65 @@
package com.xjs.classroom.model.user;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "UserInfo")
@TableName("user_info")
public class UserInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "手机号")
@TableField("phone")
private String phone;
@ApiModelProperty(value = "用户密码")
@TableField("password")
private String password;
@ApiModelProperty(value = "用户姓名")
@TableField("name")
private String name;
@ApiModelProperty(value = "昵称")
@TableField("nick_name")
private String nickName;
@ApiModelProperty(value = "性别")
@TableField("sex")
private Integer sex;
@ApiModelProperty(value = "头像")
@TableField("avatar")
private String avatar;
@ApiModelProperty(value = "")
@TableField("province")
private String province;
@ApiModelProperty(value = "0未订阅 1已订阅")
@TableField("subscribe")
private Integer subscribe;
@ApiModelProperty(value = "小程序open id")
@TableField("open_id")
private String openId;
@ApiModelProperty(value = "微信开放平台unionID")
@TableField("union_id")
private String unionId;
@ApiModelProperty(value = "推荐人用户id")
@TableField("recommend_id")
private Long recommendId;
@ApiModelProperty(value = "status")
@TableField("status")
private Integer status;
}

View File

@ -0,0 +1,33 @@
package com.xjs.classroom.model.user;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "UserLoginLog")
@TableName("user_login_log")
public class UserLoginLog extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户id")
@TableField("user_id")
private Long userId;
@ApiModelProperty(value = "登录ip")
@TableField("ip")
private String ip;
@ApiModelProperty(value = "登录城市")
@TableField("city")
private String city;
@ApiModelProperty(value = "登录类型【0-web1-移动】")
@TableField("type")
private Boolean type;
}

View File

@ -0,0 +1,29 @@
package com.xjs.classroom.model.vod;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "Chapter")
@TableName("chapter")
public class Chapter extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程ID")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "章节名称")
@TableField("title")
private String title;
@ApiModelProperty(value = "显示排序")
@TableField("sort")
private Integer sort;
}

View File

@ -0,0 +1,41 @@
package com.xjs.classroom.model.vod;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "Comment")
@TableName("comment")
public class Comment extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程id")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "讲师id")
@TableField("teacher_id")
private Long teacherId;
@ApiModelProperty(value = "会员id")
@TableField("user_id")
private Long userId;
@ApiModelProperty(value = "会员昵称")
@TableField("nickname")
private String nickname;
@ApiModelProperty(value = "会员头像")
@TableField("avatar")
private String avatar;
@ApiModelProperty(value = "评论内容")
@TableField("content")
private String content;
}

View File

@ -0,0 +1,68 @@
package com.xjs.classroom.model.vod;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ApiModel(description = "Course")
@TableName("course")
public class Course extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程讲师ID")
@TableField("teacher_id")
private Long teacherId;
@ApiModelProperty(value = "课程专业ID")
@TableField("subject_id")
private Long subjectId;
@ApiModelProperty(value = "课程专业父级ID")
@TableField("subject_parent_id")
private Long subjectParentId;
@ApiModelProperty(value = "课程标题")
@TableField("title")
private String title;
@ApiModelProperty(value = "课程销售价格设置为0则可免费观看")
@TableField("price")
private BigDecimal price;
@ApiModelProperty(value = "总课时")
@TableField("lesson_num")
private Integer lessonNum;
@ApiModelProperty(value = "视频总时长(秒)")
@TableField("duration_sum")
private Float durationSum;
@ApiModelProperty(value = "课程封面图片路径")
@TableField("cover")
private String cover;
@ApiModelProperty(value = "销售数量")
@TableField("buy_count")
private Long buyCount;
@ApiModelProperty(value = "浏览数量")
@TableField("view_count")
private Long viewCount;
@ApiModelProperty(value = "课程状态 0未发布 1已发布")
@TableField("status")
private Integer status;
@ApiModelProperty(value = "课程发布时间")
@TableField("publish_time")
private Date publishTime;
}

View File

@ -0,0 +1,25 @@
package com.xjs.classroom.model.vod;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "CourseCollect")
@TableName("course_collect")
public class CourseCollect extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程讲师ID")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "会员ID")
@TableField("user_id")
private Long userId;
}

View File

@ -0,0 +1,52 @@
package com.xjs.classroom.model.vod;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Data
@ApiModel(description = "CourseDescription")
@TableName("course_description")
public class CourseDescription {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
@TableId(type = IdType.INPUT)
private Long id;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("update_time")
private Date updateTime;
@ApiModelProperty(value = "逻辑删除(1:已删除0:未删除)")
@JsonIgnore
@TableLogic
@TableField("is_deleted")
private Integer isDeleted;
@ApiModelProperty(value = "其他参数")
@TableField(exist = false)
private Map<String,Object> param = new HashMap<>();
@ApiModelProperty(value = "课程ID")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "课程简介")
@TableField("description")
private String description;
}

View File

@ -0,0 +1,61 @@
package com.xjs.classroom.model.vod;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Data
@ApiModel(description = "Subject")
@TableName("subject")
public class Subject {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("update_time")
private Date updateTime;
@ApiModelProperty(value = "逻辑删除(1:已删除0:未删除)")
@JsonIgnore
@TableLogic
@TableField("is_deleted")
private Integer isDeleted;
@ApiModelProperty(value = "其他参数")
@TableField(exist = false)
private Map<String,Object> param = new HashMap<>();
@ApiModelProperty(value = "类别名称")
@TableField("title")
private String title;
@ApiModelProperty(value = "父ID")
@TableField("parent_id")
private Long parentId;
@ApiModelProperty(value = "排序字段")
@TableField("sort")
private Integer sort;
@ApiModelProperty(value = "是否包含子节点")
@TableField(exist = false)
private boolean hasChildren;
}

View File

@ -0,0 +1,62 @@
package com.xjs.classroom.model.vod;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xjs.classroom.model.base.BaseEntity;
import com.xjs.validation.group.AddGroup;
import com.xjs.validation.group.UpdateGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDate;
@Data
@ApiModel(description = "Teacher")
@TableName("teacher")
public class Teacher extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "讲师名称")
@TableField("name")
@NotBlank(message = "讲师名称不能为空", groups = {UpdateGroup.class,AddGroup.class})
@Size(max = 10, message = "请控制讲师名称长度在10字符", groups = {UpdateGroup.class, AddGroup.class})
private String name;
@ApiModelProperty(value = "讲师简介")
@TableField("intro")
@Size(max = 50, message = "请控制讲师简介长度在10字符", groups = {UpdateGroup.class,AddGroup.class})
private String intro;
@ApiModelProperty(value = "讲师资历,一句话说明讲师")
@Size(max = 500, message = "请控制讲师资历长度在500字符", groups = {UpdateGroup.class,AddGroup.class})
@TableField("career")
private String career;
@ApiModelProperty(value = "头衔 1高级讲师 2首席讲师")
@TableField("level")
@NotNull(message = "讲师名称不能为空", groups = {UpdateGroup.class,AddGroup.class})
private Integer level;
@ApiModelProperty(value = "讲师头像")
@TableField("avatar")
@NotBlank(message = "讲师头像不能为空", groups = {UpdateGroup.class,AddGroup.class})
private String avatar;
@ApiModelProperty(value = "排序")
@TableField("sort")
@NotNull(message = "排序不能为空", groups = {UpdateGroup.class,AddGroup.class})
private Integer sort;
@ApiModelProperty(value = "入驻时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@TableField("join_date")
@NotNull(message = "入驻时间不能为空", groups = {UpdateGroup.class,AddGroup.class})
private LocalDate joinDate;
}

View File

@ -0,0 +1,65 @@
package com.xjs.classroom.model.vod;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "Video")
@TableName("video")
public class Video extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程ID")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "章节ID")
@TableField("chapter_id")
private Long chapterId;
@ApiModelProperty(value = "节点名称")
@TableField("title")
private String title;
@ApiModelProperty(value = "云端视频资源")
@TableField("video_source_id")
private String videoSourceId;
@ApiModelProperty(value = "原始文件名称")
@TableField("video_original_name")
private String videoOriginalName;
@ApiModelProperty(value = "排序字段")
@TableField("sort")
private Integer sort;
@ApiModelProperty(value = "播放次数")
@TableField("play_count")
private Long playCount;
@ApiModelProperty(value = "是否可以试听0收费 1免费")
@TableField("is_free")
private Integer isFree;
@ApiModelProperty(value = "视频时长(秒)")
@TableField("duration")
private Float duration;
@ApiModelProperty(value = "视频源文件大小(字节)")
@TableField("size")
private Long size;
@ApiModelProperty(value = "乐观锁")
@TableField("version")
private Long version;
@ApiModelProperty(value = "状态")
@TableField("status")
private Integer status;
}

View File

@ -0,0 +1,50 @@
package com.xjs.classroom.model.vod;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel(description = "VideoVisitor")
@TableName("video_visitor")
public class VideoVisitor extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程id")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "视频id")
@TableField("video_id")
private Long videoId;
@ApiModelProperty(value = "来访者用户id")
@TableField("user_id")
private Long userId;
@ApiModelProperty(value = "昵称")
@TableField("nick_name")
private String nickName;
@ApiModelProperty(value = "进入时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("join_time")
private Date joinTime;
@ApiModelProperty(value = "离开的时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("leave_time")
private Date leaveTime;
@ApiModelProperty(value = "用户停留的时间(单位:秒)")
@TableField("duration")
private Long duration;
}

View File

@ -0,0 +1,34 @@
package com.xjs.classroom.model.wechat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "菜单")
@TableName("menu")
public class Menu extends BaseEntity {
@ApiModelProperty(value = "id")
@TableField("parent_id")
private Long parentId;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "类型")
private String type;
@ApiModelProperty(value = "网页 链接,用户点击菜单可打开链接")
private String url;
@ApiModelProperty(value = "菜单KEY值用于消息接口推送")
@TableField("meun_key")
private String meunKey;
@ApiModelProperty(value = "排序")
private Integer sort;
}

View File

@ -0,0 +1,24 @@
package com.xjs.classroom.vo.acl;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel(description = "管理员登录信息")
public class AdminLoginVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "管理员id")
private Long adminId;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "仓库id")
private Long wareId;
}

View File

@ -0,0 +1,49 @@
package com.xjs.classroom.vo.activity;
import com.xjs.classroom.model.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "CouponInfo")
public class CouponInfoVo extends BaseEntity {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "优惠券领取表id")
private Long couponUseId;
@ApiModelProperty(value = "是否可用")
private Integer available;
@ApiModelProperty(value = "优惠卷名字")
private String name;
@ApiModelProperty(value = "卡有效开始时间 (时间戳, 单位毫秒)")
private Long startAt;
@ApiModelProperty(value = "卡有效结束时间 (时间戳, 单位毫秒)")
private Long endAt;
@ApiModelProperty(value = "满减条件")
private String condition;
@ApiModelProperty(value = "描述信息,优惠券可用时展示")
private String description;
@ApiModelProperty(value = "不可用原因,优惠券不可用时展示")
private String reason;
@ApiModelProperty(value = "折扣券优惠金额,单位分")
private String value;
@ApiModelProperty(value = "折扣券优惠金额文案")
private String valueDesc;
@ApiModelProperty(value = "单位文案")
private String unitDesc;
}

View File

@ -0,0 +1,21 @@
package com.xjs.classroom.vo.activity;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
@Data
public class CouponUseQueryVo {
@ApiModelProperty(value = "购物券ID")
private Long couponId;
@ApiModelProperty(value = "购物券状态1未使用 2已使用")
private String couponStatus;
@ApiModelProperty(value = "获取时间")
private String getTimeBegin;
@ApiModelProperty(value = "使用时间")
private String getTimeEnd;
}

View File

@ -0,0 +1,17 @@
package com.xjs.classroom.vo.activity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "领取优惠券vo")
public class GiveCouponVo {
@ApiModelProperty(value = "购物券类型")
private Integer couponType;
@ApiModelProperty(value = "优惠卷名字")
private Long userId;
}

View File

@ -0,0 +1,17 @@
package com.xjs.classroom.vo.live;
import com.xjs.classroom.model.live.LiveCourseConfig;
import com.xjs.classroom.model.live.LiveCourseGoods;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(description = "LiveCourseConfig")
public class LiveCourseConfigVo extends LiveCourseConfig {
@ApiModelProperty(value = "商品列表")
private List<LiveCourseGoods> liveCourseGoodsList;
}

View File

@ -0,0 +1,38 @@
package com.xjs.classroom.vo.live;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class LiveCourseFormVo {
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "直播名称")
private String courseName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "直播开始时间")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "直播结束时间")
private Date endTime;
@ApiModelProperty(value = "主播老师id")
private Long teacherId;
@ApiModelProperty(value = "主播密码")
private String password;
@ApiModelProperty(value = "课程简介")
private String description;
@ApiModelProperty(value = "课程封面图片路径")
private String cover;
}

View File

@ -0,0 +1,38 @@
package com.xjs.classroom.vo.live;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "LiveCourseGoods")
public class LiveCourseGoodsView {
@ApiModelProperty(value = "商品名称")
private String name;
@ApiModelProperty(value = "图片")
private String img;
@ApiModelProperty(value = "商品现价")
private String price;
@ApiModelProperty(value = "商品原价")
private String originalPrice;
@ApiModelProperty(value = "商品标签")
private String tab;
@ApiModelProperty(value = "商品链接")
private String url;
@ApiModelProperty(value = "商品状态0下架1上架2推荐")
private String putaway;
@ApiModelProperty(value = "购买模式(1,链接购买 2,二维码购买)")
private String pay;
@ApiModelProperty(value = "商品二维码")
private String qrcode = "";
}

View File

@ -0,0 +1,40 @@
package com.xjs.classroom.vo.live;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class LiveCourseQueryVo {
@ApiModelProperty(value = "课程id")
private Long courseId;
@ApiModelProperty(value = "直播名称")
private String courseName;
@ApiModelProperty(value = "直播开始时间")
private Date startTime;
@ApiModelProperty(value = "直播结束时间")
private Date endTime;
@ApiModelProperty(value = "接入方主播账号或ID或手机号等最长32位")
private String account;
@ApiModelProperty(value = "主播表id")
private Long liveZhuboId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "updateTime")
private Date updateTime;
@ApiModelProperty(value = "isDeleted")
private Integer isDeleted;
}

View File

@ -0,0 +1,24 @@
package com.xjs.classroom.vo.live;
import com.xjs.classroom.model.live.LiveCourse;
import com.xjs.classroom.model.vod.Teacher;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class LiveCourseVo extends LiveCourse {
@ApiModelProperty(value = "主播老师")
private Teacher teacher;
private Integer liveStatus;
@ApiModelProperty(value = "直播开始时间")
private String startTimeString;
@ApiModelProperty(value = "直播结束时间")
private String endTimeString;
}

View File

@ -0,0 +1,13 @@
package com.xjs.classroom.vo.live;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
@Data
public class LiveVisitorQueryVo {
@ApiModelProperty(value = "直播课程id")
private Long liveCourseId;
}

View File

@ -0,0 +1,18 @@
package com.xjs.classroom.vo.order;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class OrderFormVo {
@ApiModelProperty(value = "课程id")
private Long courseId;
@ApiModelProperty(value = "优惠券id")
private Long couponId;
@ApiModelProperty(value = "优惠券领取表id")
private Long couponUseId;
}

View File

@ -0,0 +1,34 @@
package com.xjs.classroom.vo.order;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
@Data
public class OrderInfoQueryVo {
@ApiModelProperty(value = "用户id")
private Long userId;
@ApiModelProperty(value = "nickName")
private String nickName;
@ApiModelProperty(value = "phone")
private String phone;
@ApiModelProperty(value = "订单状态")
private Integer orderStatus;
@ApiModelProperty(value = "订单交易编号(第三方支付用)")
private String outTradeNo;
@ApiModelProperty(value = "地区id")
private String province;
@ApiModelProperty(value = "创建时间")
private String createTimeBegin;
@ApiModelProperty(value = "创建时间")
private String createTimeEnd;
}

View File

@ -0,0 +1,28 @@
package com.xjs.classroom.vo.order;
import com.xjs.classroom.model.order.OrderInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class OrderInfoVo extends OrderInfo {
@ApiModelProperty(value = "课程id")
private Long courseId;
@ApiModelProperty(value = "课程名称")
private String courseName;
@ApiModelProperty(value = "课程封面图片路径")
private String cover;
@ApiModelProperty(value = "总时长:分钟")
private Integer durationSum;
@ApiModelProperty(value = "观看进度总时长:分钟")
private Integer progressSum;
@ApiModelProperty(value = "观看进度")
private Integer progress;
}

View File

@ -0,0 +1,16 @@
package com.xjs.classroom.vo.user;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class BindPhoneVo {
@ApiModelProperty(value = "手机号")
private String phone;
@ApiModelProperty(value = "验证码")
private String code;
}

View File

@ -0,0 +1,22 @@
package com.xjs.classroom.vo.user;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserInfoQueryVo {
@ApiModelProperty(value = "昵称")
private String nickName;
@ApiModelProperty(value = "身份证号码")
private String idNo;
@ApiModelProperty(value = "性别")
private String sex;
@ApiModelProperty(value = "电话号码")
private String phone;
}

View File

@ -0,0 +1,22 @@
package com.xjs.classroom.vo.vod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@ApiModel("课程章节对象")
@Data
public class ChapterVo {
@ApiModelProperty(value = "章节ID")
private Long id;
@ApiModelProperty(value = "章节标题")
private String title;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "章节下的课时列表")
private List<VideoVo> children = new ArrayList<>();
}

View File

@ -0,0 +1,43 @@
package com.xjs.classroom.vo.vod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author helen
* @since 2020/6/6
*/
@ApiModel("课程基本信息")
@Data
public class CourseFormVo {
@ApiModelProperty(value = "课程ID")
private Long id;
@ApiModelProperty(value = "课程讲师ID")
private Long teacherId;
@ApiModelProperty(value = "课程专业ID")
private Long subjectId;
@ApiModelProperty(value = "课程专业父级ID")
private Long subjectParentId;
@ApiModelProperty(value = "课程标题")
private String title;
@ApiModelProperty(value = "课程销售价格设置为0则可免费观看")
private BigDecimal price;
@ApiModelProperty(value = "总课时")
private Integer lessonNum;
@ApiModelProperty(value = "课程封面图片路径")
private String cover;
@ApiModelProperty(value = "课程简介")
private String description;
}

View File

@ -0,0 +1,30 @@
package com.xjs.classroom.vo.vod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author helen
* @since 2020/6/6
*/
@ApiModel("课程观看进度")
@Data
public class CourseProgressVo {
@ApiModelProperty(value = "课程ID")
private Long courseId;
@ApiModelProperty(value = "用户ID")
private Long userId;
@ApiModelProperty(value = "总时长")
private Float durationSum;
@ApiModelProperty(value = "观看进度总时长")
private Float progressSum;
@ApiModelProperty(value = "观看进度")
private Integer progress;
}

View File

@ -0,0 +1,30 @@
package com.xjs.classroom.vo.vod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author helen
* @since 2020/6/6
*/
@ApiModel("课程发布对象")
@Data
public class CoursePublishVo {
@ApiModelProperty(value = "课程ID")
private String id;
@ApiModelProperty(value = "课程标题")
private String title;
@ApiModelProperty(value = "课程封面图片路径")
private String cover;
@ApiModelProperty(value = "总课时")
private Integer lessonNum;
@ApiModelProperty(value = "一级分类标题")
private String subjectParentTitle;
@ApiModelProperty(value = "二级分类标题")
private String subjectTitle;
@ApiModelProperty(value = "讲师姓名")
private String teacherName;
@ApiModelProperty(value = "课程销售价格")
private String price;//只用于显示
}

View File

@ -0,0 +1,22 @@
package com.xjs.classroom.vo.vod;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
@Data
public class CourseQueryVo {
@ApiModelProperty(value = "课程讲师ID")
private Long teacherId;
@ApiModelProperty(value = "课程专业ID")
private Long subjectId;
@ApiModelProperty(value = "课程专业父级ID")
private Long subjectParentId;
@ApiModelProperty(value = "课程标题")
private String title;
}

View File

@ -0,0 +1,41 @@
package com.xjs.classroom.vo.vod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author helen
* @since 2020/6/6
*/
@ApiModel("课程对象")
@Data
public class CourseVo {
@ApiModelProperty(value = "课程ID")
private String id;
@ApiModelProperty(value = "课程标题")
private String title;
@ApiModelProperty(value = "一级分类标题")
private String subjectParentTitle;
@ApiModelProperty(value = "二级分类标题")
private String subjectTitle;
@ApiModelProperty(value = "讲师id")
private Long teacherId;
@ApiModelProperty(value = "讲师姓名")
private String teacherName;
@ApiModelProperty(value = "总课时")
private Integer lessonNum;
@ApiModelProperty(value = "课程销售价格")
private String price;//只用于显示
@ApiModelProperty(value = "课程封面图片路径")
private String cover;
@ApiModelProperty(value = "销售数量")
private Long buyCount;
@ApiModelProperty(value = "浏览数量")
private Long viewCount;
@ApiModelProperty(value = "课程状态")
private String status;
@ApiModelProperty(value = "课程发布时间")
private String publishTime;
}

View File

@ -0,0 +1,30 @@
package com.xjs.classroom.vo.vod;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* <p>
* Dict
* </p>
*
* @author qy
*/
@Data
public class SubjectEeVo {
@ExcelProperty(value = "id" ,index = 0)
private Long id;
@ExcelProperty(value = "课程分类名称" ,index = 1)
private String title;
@ExcelProperty(value = "上级id" ,index = 2)
private Long parentId;
@ExcelProperty(value = "排序" ,index = 3)
private Integer sort;
}

View File

@ -0,0 +1,29 @@
package com.xjs.classroom.vo.vod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author helen
* @since 2020/6/5
*/
@ApiModel("课程分类列表")
@Data
public class SubjectVo {
@ApiModelProperty(value = "课程分类ID")
private Long id;
@ApiModelProperty(value = "课程分类名称")
private String title;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "课程二级分类列表")
private List<SubjectVo> children = new ArrayList<>();
}

View File

@ -0,0 +1,27 @@
package com.xjs.classroom.vo.vod;
import com.xjs.validation.group.SelectGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Size;
@Data
public class TeacherQueryVo {
@ApiModelProperty(value = "讲师姓名")
@Size(max = 10, message = "请控制讲师名称长度在10字符", groups = {SelectGroup.class})
private String name;
@ApiModelProperty(value = "头衔 1高级讲师 2首席讲师")
private Integer level;
@ApiModelProperty(value = "入驻时间")
private String joinDateBegin;
@ApiModelProperty(value = "入驻时间")
private String joinDateEnd;
}

View File

@ -0,0 +1,19 @@
package com.xjs.classroom.vo.vod;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class VideoVisitorCountVo {
@ApiModelProperty(value = "进入时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private String joinTime;
@ApiModelProperty(value = "用户个数")
private Integer userCount;
}

View File

@ -0,0 +1,22 @@
package com.xjs.classroom.vo.vod;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class VideoVisitorQueryVo {
@ApiModelProperty(value = "课程id")
private Long courseId;
@ApiModelProperty(value = "视频id")
private Long videoId;
@ApiModelProperty(value = "进入时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date joinTime;
}

View File

@ -0,0 +1,34 @@
package com.xjs.classroom.vo.vod;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class VideoVisitorVo {
@ApiModelProperty(value = "课程id")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "视频id")
@TableField("video_id")
private Long videoId;
@ApiModelProperty(value = "来访者用户id")
@TableField("user_id")
private String userId;
@ApiModelProperty(value = "昵称")
@TableField("nick_name")
private String nickName;
@ApiModelProperty(value = "进入时间")
@TableField("join_time")
private String joinTime;
@ApiModelProperty(value = "用户停留的时间(单位:秒)")
@TableField("duration")
private Long duration;
}

View File

@ -0,0 +1,20 @@
package com.xjs.classroom.vo.vod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("课时信息")
@Data
public class VideoVo {
@ApiModelProperty(value = "课时ID")
private Long id;
@ApiModelProperty(value = "课时标题")
private String title;
@ApiModelProperty(value = "是否可以试听")
private Integer isFree;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "视频ID")
private String videoSourceId;
}

View File

@ -0,0 +1,18 @@
package com.xjs.classroom.vo.wechat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "优惠券消息")
public class CouponMessageVo {
@ApiModelProperty(value = "优惠券id")
private Long couponId;
@ApiModelProperty(value = "用户id")
private Long userId;
}

View File

@ -0,0 +1,39 @@
package com.xjs.classroom.vo.wechat;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(description = "菜单")
public class MenuVo {
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "id")
private Long parentId;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "类型")
private String type;
@ApiModelProperty(value = "url")
private String url;
@ApiModelProperty(value = "菜单key")
private String meunKey;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "下级")
@TableField(exist = false)
private List<MenuVo> children;
}

View File

@ -0,0 +1,17 @@
package com.xjs.classroom.vo.wechat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@ApiModel("分享签名对象")
@Data
public class WxJsapiSignatureVo {
private String appId;
private String nonceStr;
private long timestamp;
private String url;
private String signature;
//加密用户id
private String userEedId;
}

View File

@ -20,7 +20,6 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>

View File

@ -0,0 +1,22 @@
package com.xjs.classroom.vod;
import com.ruoyi.common.security.annotation.EnableCustomConfig;
import com.ruoyi.common.security.annotation.EnableRyFeignClients;
import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 启动器
* @author xiejs
* @since 2022-06-29
*/
@SpringBootApplication
@EnableCustomConfig
@EnableCustomSwagger2
@EnableRyFeignClients
public class ClassroomServiceVodApp {
public static void main(String[] args) {
SpringApplication.run(ClassroomServiceVodApp.class, args);
}
}

View File

@ -0,0 +1,185 @@
package com.xjs.classroom.vod.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xjs.classroom.model.vod.Teacher;
import com.xjs.classroom.vo.vod.TeacherQueryVo;
import com.xjs.classroom.vod.service.TeacherService;
import com.xjs.utils.Result;
import com.xjs.validation.group.AddGroup;
import com.xjs.validation.group.SelectGroup;
import com.xjs.validation.group.UpdateGroup;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 讲师 前端控制器
* </p>
*
* @author xiejs
* @since 2022-06-29
*/
@RestController
@Api(tags = "讲师管理接口")
@RequestMapping("/admin/vod/teacher")
public class TeacherController {
@Autowired
private TeacherService teacherService;
// http://localhost:8301/admin/vod/teacher/findAll
//1 查询所有讲师
// @ApiOperation("查询所有讲师")
// @GetMapping("findAll")
// public List<Teacher> findAllTeacher() {
// //调用service方法
// List<Teacher> list = teacherService.list();
// return list;
// }
@ApiOperation("查询所有讲师")
@GetMapping("findAll")
public Result<List<Teacher>> findAllTeacher() {
//模拟异常
// try {
// int i = 10/0;
// }catch (Exception e) {
// //抛出异常
// throw new GgktException(201,"执行自定义异常处理GgktException");
// }
//调用service方法
List<Teacher> list = teacherService.list();
return Result.ok(list).message("查询数据成功");
}
// remove/1
//2 逻辑删除讲师
@ApiOperation("逻辑删除讲师")
@DeleteMapping("remove/{id}")
public Result removeTeacher(@ApiParam(name = "id", value = "ID", required = true)
@PathVariable(name = "id") Long id) {
boolean isSuccess = teacherService.removeById(id);
if (isSuccess) {
return Result.ok(null);
} else {
return Result.fail(null);
}
}
//3 条件查询分页
@ApiOperation("条件查询分页")
@PostMapping("findQueryPage/{current}/{limit}")
public Result findPage(@PathVariable long current,
@PathVariable long limit,
@RequestBody(required = false) @Validated(SelectGroup.class) TeacherQueryVo teacherQueryVo) {
//创建page对象
Page<Teacher> pageParam = new Page<>(current, limit);
QueryWrapper<Teacher> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("id");
//判断teacherQueryVo对象是否为空
if (teacherQueryVo == null) {//查询全部
IPage<Teacher> pageModel =
teacherService.page(pageParam, null);
return Result.ok(pageModel);
} else {
//获取条件值
String name = teacherQueryVo.getName();
Integer level = teacherQueryVo.getLevel();
String joinDateBegin = teacherQueryVo.getJoinDateBegin();
String joinDateEnd = teacherQueryVo.getJoinDateEnd();
//进行非空判断条件封装
if (StringUtils.hasText(name)) {
wrapper.like("name", name);
}
if (!ObjectUtils.isEmpty(level)) {
wrapper.eq("level", level);
}
if (StringUtils.hasText(joinDateBegin)) {
wrapper.ge("join_date", joinDateBegin);
}
if (StringUtils.hasText(joinDateEnd)) {
wrapper.le("join_date", joinDateEnd);
}
//调用方法分页查询
IPage<Teacher> pageModel = teacherService.page(pageParam, wrapper);
//返回
return Result.ok(pageModel);
}
}
//4 添加讲师
@ApiOperation("添加讲师")
@PostMapping("saveTeacher")
public Result saveTeacher(@RequestBody @Validated(AddGroup.class) Teacher teacher) {
Teacher teacherOne = teacherService.getOne(new LambdaQueryWrapper<Teacher>()
.eq(Teacher::getName, teacher.getName()), false);
if (!ObjectUtils.isEmpty(teacherOne)) {
return Result.fail("讲师"+teacher.getName()+"已存在");
}
boolean isSuccess = teacherService.save(teacher);
if (isSuccess) {
return Result.ok(null);
} else {
return Result.fail(null);
}
}
//5 修改-根据id查询
@ApiOperation("根据id查询")
@GetMapping("getTeacher/{id}")
public Result getTeacher(@PathVariable Long id) {
Teacher teacher = teacherService.getById(id);
return Result.ok(teacher);
}
//6 修改-最终实现
// {...}
@ApiOperation("修改最终实现")
@PostMapping("updateTeacher")
public Result updateTeacher(@RequestBody @Validated(UpdateGroup.class) Teacher teacher) {
boolean isSuccess = teacherService.updateById(teacher);
if (isSuccess) {
return Result.ok(null);
} else {
return Result.fail(null);
}
}
//7 批量删除讲师
// json数组 [1,2,3]
@ApiOperation("批量删除讲师")
@DeleteMapping("removeBatch")
public Result removeBatch(@RequestBody List<Long> idList) {
boolean isSuccess = teacherService.removeByIds(idList);
if (isSuccess) {
return Result.ok(null);
} else {
return Result.fail(null);
}
}
//根据id查询 远程调用
@ApiOperation("根据id查询")
@GetMapping("inner/getTeacher/{id}")
public Teacher getTeacherInfo(@PathVariable Long id) {
Teacher teacher = teacherService.getById(id);
return teacher;
}
}

View File

@ -0,0 +1,16 @@
package com.xjs.classroom.vod.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xjs.classroom.model.vod.Teacher;
/**
* <p>
* 讲师 Mapper 接口
* </p>
*
* @author xiejs
* @since 2022-06-29
*/
public interface TeacherMapper extends BaseMapper<Teacher> {
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xjs.classroom.vod.mapper.TeacherMapper">
</mapper>

View File

@ -0,0 +1,16 @@
package com.xjs.classroom.vod.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xjs.classroom.model.vod.Teacher;
/**
* <p>
* 讲师 服务类
* </p>
*
* @author xiejs
* @since 2022-06-29
*/
public interface TeacherService extends IService<Teacher> {
}

View File

@ -0,0 +1,20 @@
package com.xjs.classroom.vod.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xjs.classroom.model.vod.Teacher;
import com.xjs.classroom.vod.mapper.TeacherMapper;
import com.xjs.classroom.vod.service.TeacherService;
import org.springframework.stereotype.Service;
/**
* <p>
* 讲师 服务实现类
* </p>
*
* @author xiejs
* @since 2022-06-29
*/
@Service
public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> implements TeacherService {
}

View File

@ -0,0 +1,8 @@
Spring Boot Version: ${spring-boot.version}
Spring Application Name: ${spring.application.name}
____ ___ ____. _________ _____.___._____.___.________ _________
\ \/ / | |/ _____/ \__ | |\__ | |\______ \ / _____/
\ / | |\_____ \ ______ / | | / | | | | \ \_____ \
/ \/\__| |/ \ /_____/ \____ | \____ | | ` \/ \
/___/\ \________/_______ / / ______| / ______|/_______ /_______ /
\_/ \/ \/ \/ \/ \/

View File

@ -0,0 +1,29 @@
# Tomcat
server:
port: 8301
# Spring
spring:
application:
# 应用名称
name: xjs-classroom-service-vod
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
#配置组
group: xjs
#命名空间
namespace: xjs-666

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/xjs-classroom/service-vod"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.xjs" level="info" />
<!--打印feign DEBUG日志-->
<logger name="com.xjs.common.client" level="debug"/>
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn" />
<root level="info">
<appender-ref ref="console" />
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
</configuration>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
This is the JRebel configuration file. It maps the running application to your IDE workspace, enabling JRebel reloading for this project.
Refer to https://manuals.jrebel.com/jrebel/standalone/config.html for more information.
-->
<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_3.xsd">
<id>classroom-service-vod</id>
<classpath>
<dir name="D:/Dev/IdeaPerject/GitHub/Cloud/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/target/classes">
</dir>
</classpath>
</application>

View File

@ -0,0 +1,38 @@
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
import java.util.Collections;
public class CodeGet {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/xjs-srb-core?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8",
"root", "root")
.globalConfig(builder -> {
builder.author("xiejs") // 设置作者
.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("D:\\Dev\\IdeaPerject\\GitHub\\Cloud\\xjs-business\\xjs-project-classroom\\classroom-service\\classroom-service-vod\\src\\main\\java"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.xjs.classroom") // 设置父包名
.moduleName("vod") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\Dev\\IdeaPerject\\GitHub\\Cloud\\xjs-business\\xjs-project-classroom\\classroom-service\\classroom-service-vod\\src\\main\\resources\\mapper")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("integral_grade")
.entityBuilder()
.enableLombok()
.logicDeleteColumnName("is_deleted")
.build()
; // 设置需要生成的表名
//.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new VelocityTemplateEngine()) // 使用Freemarker引擎模板默认的是Velocity引擎模板
.execute();
}
}