Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	pom.xml
weifanli 2 years ago
parent
commit
8f794abab6
18 changed files with 170 additions and 88 deletions
  1. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonPurchaseRecordDao.java
  2. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java
  3. 39 51
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonPurchaseRecord.java
  4. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java
  5. 13 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  6. 11 10
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  7. 14 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonPurchaseRecordServiceImpl.java
  8. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java
  9. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseStudent.java
  10. 10 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupVo.java
  11. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherLiveCourseInfoVo.java
  12. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonPurchaseStudent.java
  13. 9 6
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml
  14. 9 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  15. 1 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupDetailMapper.xml
  16. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonPurchaseRecordMapper.xml
  17. 0 1
      pom.xml
  18. 4 1
      toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/provider/KS3StoragePlugin.java

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonPurchaseRecordDao.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.dao;
 
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonPurchaseRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -19,5 +20,5 @@ public interface VideoLessonPurchaseRecordDao extends BaseMapper<VideoLessonPurc
     Long selectTeacherByDetail(Long videoId);
 
     //修改订单状态
-    void updateStatus(String orderNo);
+    void updateStatus(@Param("orderNo") String orderNo,@Param("status") String status);
 }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java

@@ -83,6 +83,10 @@ public class CourseGroup implements Serializable {
     @ApiModelProperty(value = "预计上课人数")
     private Integer preStudentNum;
 
+    @TableField("im_group_id_")
+    @ApiModelProperty(value = "直播课成课后生成的im群id")
+    private String imGroupId;
+
     @TableField("course_start_time_")
     @ApiModelProperty(value = "课程开始时间")
     private Date courseStartTime;
@@ -224,6 +228,14 @@ public class CourseGroup implements Serializable {
         this.preStudentNum = preStudentNum;
     }
 
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
+
     public Date getCourseStartTime() {
         return courseStartTime;
     }

+ 39 - 51
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonPurchaseRecord.java

@@ -6,9 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * 视频课购买记录表
@@ -52,90 +52,78 @@ public class VideoLessonPurchaseRecord extends BaseEntity {
     private String orderNo;
 
     @TableField("order_status_")
-    @ApiModelProperty(value = "订单状态(1:已完成;0:取消/支付中)")
-    private Integer orderStatus;
+    @ApiModelProperty(value = "订单状态(WAIT_PAY待支付,PAYING支付中,PAID已付款,CLOSE已关闭,FAIL支付失败)")
+    private String orderStatus;
 
-	public BigDecimal getOriginalPrice() {
-		return originalPrice;
+	public Long getId() {
+		return id;
 	}
 
-	public void setOriginalPrice(BigDecimal originalPrice) {
-		this.originalPrice = originalPrice;
+	public void setId(Long id) {
+		this.id = id;
 	}
 
-	public BigDecimal getExpectPrice() {
-		return expectPrice;
-	}
-
-	public void setExpectPrice(BigDecimal expectPrice) {
-		this.expectPrice = expectPrice;
+	public Long getVideoLessonGroupId() {
+		return videoLessonGroupId;
 	}
 
-	public VideoLessonPurchaseRecord setId(Long id) {
-	    this.id = id;
-	    return this;
+	public void setVideoLessonGroupId(Long videoLessonGroupId) {
+		this.videoLessonGroupId = videoLessonGroupId;
 	}
 
-	public Long getId() {
-	    return this.id;
+	public Long getStudentId() {
+		return studentId;
 	}
 
-	public VideoLessonPurchaseRecord setVideoLessonGroupId(Long videoLessonGroupId) {
-	    this.videoLessonGroupId = videoLessonGroupId;
-	    return this;
+	public void setStudentId(Long studentId) {
+		this.studentId = studentId;
 	}
 
-	public Long getVideoLessonGroupId() {
-	    return this.videoLessonGroupId;
+	public Date getPurchaseTime() {
+		return purchaseTime;
 	}
 
-	public VideoLessonPurchaseRecord setStudentId(Long studentId) {
-	    this.studentId = studentId;
-	    return this;
+	public void setPurchaseTime(Date purchaseTime) {
+		this.purchaseTime = purchaseTime;
 	}
 
-	public Long getStudentId() {
-	    return this.studentId;
+	public BigDecimal getOriginalPrice() {
+		return originalPrice;
 	}
 
-	public VideoLessonPurchaseRecord setPurchaseTime(java.util.Date purchaseTime) {
-	    this.purchaseTime = purchaseTime;
-	    return this;
+	public void setOriginalPrice(BigDecimal originalPrice) {
+		this.originalPrice = originalPrice;
 	}
 
-	public java.util.Date getPurchaseTime() {
-	    return this.purchaseTime;
+	public BigDecimal getExpectPrice() {
+		return expectPrice;
 	}
 
-	public VideoLessonPurchaseRecord setPayMoney(java.math.BigDecimal payMoney) {
-	    this.payMoney = payMoney;
-	    return this;
+	public void setExpectPrice(BigDecimal expectPrice) {
+		this.expectPrice = expectPrice;
 	}
 
-	public java.math.BigDecimal getPayMoney() {
-	    return this.payMoney;
+	public BigDecimal getPayMoney() {
+		return payMoney;
 	}
 
-	public VideoLessonPurchaseRecord setOrderNo(String orderNo) {
-	    this.orderNo = orderNo;
-	    return this;
+	public void setPayMoney(BigDecimal payMoney) {
+		this.payMoney = payMoney;
 	}
 
 	public String getOrderNo() {
-	    return this.orderNo;
+		return orderNo;
 	}
 
-	public VideoLessonPurchaseRecord setOrderStatus(Integer orderStatus) {
-	    this.orderStatus = orderStatus;
-	    return this;
+	public void setOrderNo(String orderNo) {
+		this.orderNo = orderNo;
 	}
 
-	public Integer getOrderStatus() {
-	    return this.orderStatus;
+	public String getOrderStatus() {
+		return orderStatus;
 	}
 
-    @Override
-    public String toString() {
-        return ToStringBuilder.reflectionToString(this);
-    }
+	public void setOrderStatus(String orderStatus) {
+		this.orderStatus = orderStatus;
+	}
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java

@@ -33,7 +33,7 @@ public interface ImGroupService extends IService<ImGroup> {
     * @author zx
     * @date 2022/3/22 11:17
     */
-    void autoCreate(Long courseGroupId,String courseGroupType) throws Exception;
+    String autoCreate(Long courseGroupId,String courseGroupType) throws Exception;
 
     /**
     * @description: 关闭群聊、解散

+ 13 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -80,6 +80,8 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     private TeacherFreeTimeService teacherFreeTimeService;
     @Autowired
     private CourseScheduleTeacherSalaryService courseScheduleTeacherSalaryService;
+    @Autowired
+    private ImGroupService imGroupService;
 
     @Override
     public CourseGroupDao getDao() {
@@ -267,7 +269,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         timeList.forEach(o -> {
             boolean checkDataTime = courseScheduleService.checkTeacherCourseTime(teacherId, startTimeFun.apply(o), endTimeFun.apply(o));
             if (checkDataTime) {
-                throw new BizException("预计安排在" + DateUtil.dateToString(startTimeFun.apply(o), "yyyy年MM月dd号 HH点mm分") + "的课程已被学员选择!");
+                throw new BizException("预计安排在" + DateUtil.dateToString(startTimeFun.apply(o), "yyyy年MM月dd号 HH点mm分") + "的课程时间存在冲突!");
             }
         });
     }
@@ -706,14 +708,17 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
             return;
         }
         courseGroupList.forEach(courseGroup -> {
-            if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum()) {
-                //人数达标则修改课程组为进行中状态
-                courseGroup.setStatus(CourseGroupEnum.ING.getCode());
-            } else {
-                //人数未达标则修改课程组为取消状态
-                courseGroup.setStatus(CourseGroupEnum.CANCEL.getCode());
-            }
             try {
+                if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum()) {
+                    //人数达标则修改课程组为进行中状态
+                    courseGroup.setStatus(CourseGroupEnum.ING.getCode());
+                    //建立群组
+                    String imGroupId = imGroupService.autoCreate(courseGroup.getId(), courseGroup.getType());
+                    courseGroup.setImGroupId(imGroupId);
+                } else {
+                    //人数未达标则修改课程组为取消状态
+                    courseGroup.setStatus(CourseGroupEnum.CANCEL.getCode());
+                }
                 this.updateById(courseGroup);
             } catch (Exception ignored) {
             }

+ 11 - 10
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -79,17 +79,17 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void autoCreate(Long courseGroupId,String courseGroupType) throws Exception {
+    public String autoCreate(Long courseGroupId, String courseGroupType) throws Exception {
         //获取课程组
         CourseGroup courseGroup = courseGroupService.getById(courseGroupId);
-        if(courseGroup.getTeacherId() == null){
-            return;
+        if (courseGroup.getTeacherId() == null) {
+            return null;
         }
         //获取学员列表
         Set<Long> studentIds = courseScheduleStudentPaymentDao.queryStudentIds(courseGroupId, courseGroupType);
         studentIds.removeAll(Collections.singleton(null));
-        if(CollectionUtils.isEmpty(studentIds)){
-            return;
+        if (CollectionUtils.isEmpty(studentIds)) {
+            return null;
         }
         Date now = new Date();
         Long teacherId = courseGroup.getTeacherId();
@@ -102,18 +102,19 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         imGroup.setType(ImGroup.ImGroupType.COURSE);
         imGroup.setCreateTime(now);
         imGroup.setUpdateTime(now);
-        String imGroupId = UUID.randomUUID().toString() + imGroup.getType().getCode();
+        String imGroupId = UUID.randomUUID() + imGroup.getType().getCode();
         imGroup.setId(imGroupId);
         this.baseMapper.insert(imGroup);
         //保存老师学员关联的通讯录
-        imUserFriendService.saveUserFriend(teacherId,studentIds);
+        imUserFriendService.saveUserFriend(teacherId, studentIds);
         //处理本地群成员列表
         List<GroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(), true, ImGroupMember.ImGroupMemberRoleType.TEACHER);
-        groupMembers.addAll(imGroupMemberService.initGroupMembers(imGroupId,studentIds,ImGroupMember.ImGroupMemberRoleType.STUDENT));
+        groupMembers.addAll(imGroupMemberService.initGroupMembers(imGroupId, studentIds, ImGroupMember.ImGroupMemberRoleType.STUDENT));
         //创建融云群
-        this.rtcCreate(courseGroup.getTeacherId(),imGroupId,imGroup.getName());
+        this.rtcCreate(courseGroup.getTeacherId(), imGroupId, imGroup.getName());
         //加入融云群
-        imGroupMemberService.join(groupMembers,imGroupId);
+        imGroupMemberService.join(groupMembers, imGroupId);
+        return imGroupId;
     }
 
     //创建融云群

+ 14 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonPurchaseRecordServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
@@ -13,6 +14,7 @@ import com.yonge.cooleshow.biz.dal.dao.VideoLessonPurchaseRecordDao;
 import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
+import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.service.UserAccountService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonPurchaseRecordService;
@@ -55,6 +57,8 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
     private UserAccountService userAccountService;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private UserOrderDao userOrderDao;
 
     public VideoLessonPurchaseRecordDao getDao() {
         return videoLessonPurchaseRecordDao;
@@ -94,7 +98,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
 
         purchaseRecord.setOrderNo(orderNo);
         purchaseRecord.setStudentId(studentId);
-        purchaseRecord.setOrderStatus(0);
+        purchaseRecord.setOrderStatus(OrderStatusEnum.WAIT_PAY.getCode());
         purchaseRecord.setOriginalPrice(lessonGroup.getLessonPrice());//原价
         purchaseRecord.setExpectPrice(lessonGroup.getLessonPrice());//预计价格
         videoLessonPurchaseRecordDao.insert(purchaseRecord);
@@ -130,8 +134,14 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
             throw new BizException("课程组购买记录不存在!");
         }
 
-        //支付状态改为1
-        videoLessonPurchaseRecordDao.updateStatus(orderNo);
+        //查询订单状态
+        UserOrder userOrder = userOrderDao.selectOne(Wrappers.<UserOrder>lambdaQuery()
+                .eq(UserOrder::getOrderNo, orderNo));
+        if (userOrder == null) {
+            throw new BizException("订单不存在!");
+        }
+        //修改支付状态
+        videoLessonPurchaseRecordDao.updateStatus(orderNo,userOrder.getStatus().getCode());
 
         //查询直播课服务费
         String videoServiceRateStr = sysConfigService.findConfigValue(SysConfigConstant.VIDEO_LESSON_SERVICE_FEE);
@@ -148,7 +158,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         userAccountRecord.setTransAmount(payMoney.subtract(payMoney.multiply(liveServiceRate)).setScale(2, RoundingMode.HALF_UP));
         userAccountRecord.setInOrOut(InOrOutEnum.IN);
         userAccountRecord.setBizType(AccountBizTypeEnum.VIDEO);
-        userAccountRecord.setBizId(lessonGroup.getTeacherId());
+        userAccountRecord.setBizId(lessonGroup.getId());
         userAccountRecord.setBizName(lessonGroup.getLessonName());
         userAccountRecord.setOrderNo(orderNo);
         userAccountService.accountChange(userAccountRecord);

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java

@@ -70,6 +70,9 @@ public class CourseGroupVo implements Serializable {
     @ApiModelProperty(value = "最少成课人数")
     private Integer mixStudentNum;
 
+    @ApiModelProperty(value = "直播课成课后生成的im群id")
+    private String imGroupId;
+
     public Long getCourseGroupId() {
         return courseGroupId;
     }
@@ -205,4 +208,12 @@ public class CourseGroupVo implements Serializable {
     public void setMixStudentNum(Integer mixStudentNum) {
         this.mixStudentNum = mixStudentNum;
     }
+
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseStudent.java

@@ -54,6 +54,9 @@ public class CourseStudent implements Serializable {
     @ApiModelProperty(value = "头像")
     private String avatar;
 
+    @ApiModelProperty(value = "直播课成课后生成的im群id")
+    private String imGroupId;
+
     public Integer getCourseId() {
         return courseId;
     }
@@ -165,5 +168,13 @@ public class CourseStudent implements Serializable {
     public void setAvatar(String avatar) {
         this.avatar = avatar;
     }
+
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
 }
 

+ 10 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupVo.java

@@ -17,7 +17,6 @@ import java.util.Date;
 @ApiModel("平台方 老师详情直播课列表")
 public class LiveCourseGroupVo {
 
-
     @ApiModelProperty("课程组编号")
     private Long courseGroupId;
 
@@ -52,6 +51,8 @@ public class LiveCourseGroupVo {
     @ApiModelProperty("课程简介")
     private String courseIntroduce;
 
+    @ApiModelProperty(value = "直播课成课后生成的im群id")
+    private String imGroupId;
 
     public Long getCourseNum() {
         return courseNum;
@@ -140,4 +141,12 @@ public class LiveCourseGroupVo {
     public void setStatus(CourseGroupEnum status) {
         this.status = status;
     }
+
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherLiveCourseInfoVo.java

@@ -40,6 +40,9 @@ public class TeacherLiveCourseInfoVo implements Serializable {
     @ApiModelProperty(value = "课程图片")
     private String backgroundPic;
 
+    @ApiModelProperty(value = "直播课成课后生成的im群id")
+    private String imGroupId;
+
     public Long getCourseGroupId() {
         return courseGroupId;
     }
@@ -103,4 +106,12 @@ public class TeacherLiveCourseInfoVo implements Serializable {
     public void setBackgroundPic(String backgroundPic) {
         this.backgroundPic = backgroundPic;
     }
+
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonPurchaseStudent.java

@@ -21,9 +21,20 @@ public class VideoLessonPurchaseStudent extends BaseEntity {
     @ApiModelProperty("昵称")
     private String username;
 
+    @ApiModelProperty("真实姓名")
+    private String realName;
+
     @ApiModelProperty(value = "性别 0女 1男")
     private Integer gender;
 
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
     public Long getUserId() {
         return userId;
     }

+ 9 - 6
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -23,24 +23,25 @@
         <result column="updated_by_" jdbcType="INTEGER" property="updatedBy"/>
         <result column="updated_time_" jdbcType="TIMESTAMP" property="updatedTime"/>
         <result column="pre_student_num_" jdbcType="INTEGER" property="preStudentNum"/>
+        <result column="im_group_id_" jdbcType="VARCHAR" property="imGroupId"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id_
-        , type_, teacher_id_, name_, subject_id_, single_course_minutes_, course_num_, complete_course_num_, course_introduce_, course_price_, status_, sales_start_date_, sales_end_date_, background_pic_, mix_student_num_,pre_student_num_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_
+        , type_, teacher_id_, name_, subject_id_, single_course_minutes_, course_num_, complete_course_num_, course_introduce_, course_price_, status_, sales_start_date_, sales_end_date_, background_pic_, mix_student_num_,pre_student_num_, im_group_id_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.CourseGroup">
         insert into course_group(type_, teacher_id_, name_, subject_id_, single_course_minutes_, course_num_,
         complete_course_num_, course_introduce_, course_price_, status_, sales_start_date_, sales_end_date_, background_pic_,
-        mix_student_num_,pre_student_num_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_)
+        mix_student_num_,pre_student_num_,im_group_id_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_)
         values
         <foreach collection="entities" item="entity" separator=",">
             (#{entity.type}, #{entity.teacherId}, #{entity.name}, #{entity.subjectId}, #{entity.singleCourseMinutes},
             #{entity.courseNum}, #{entity.completeCourseNum}, #{entity.courseIntroduce}, #{entity.coursePrice}, #{entity.status},
             #{entity.salesStartDate}, #{entity.salesEndDate}, #{entity.backgroundPic}, #{entity.mixStudentNum},
-            #{entity.preStudentNum},#{entity.courseStartTime}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedBy},
+            #{entity.preStudentNum},#{entity.imGroupId},#{entity.courseStartTime}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedBy},
             #{entity.updatedTime})
         </foreach>
     </insert>
@@ -51,7 +52,7 @@
         b.name_                       as courseGroupName,
         s.name_                       as subjectName,
         b.teacher_id_                 as teacherId,
-        u.real_name_                  as teacherName,
+        u.username_                  as teacherName,
         b.course_start_time_          as courseStartTime,
         b.single_course_minutes_      as singleCourseMinutes,
         b.status_                     as `status`,
@@ -62,7 +63,8 @@
         u.avatar_ as avatar,
         b.sales_start_date_           as salesStartDate,
         b.sales_end_date_             as salesEndDate,
-        b.mix_student_num_            as mixStudentNum
+        b.mix_student_num_            as mixStudentNum,
+        b.im_group_id_              as imGroupId
         from course_group as b
         left join subject as s on b.subject_id_ = s.id_
         left join sys_user as u on b.teacher_id_ = u.id_
@@ -96,7 +98,8 @@
         cg.status_ as status,
         cg.course_num_ as courseNum,
         cg.created_time_ as createTime,
-        cg.course_introduce_ as courseIntroduce
+        cg.course_introduce_ as courseIntroduce,
+        cg.im_group_id_  as imGroupId
         from course_group cg
         left join course_schedule_student_payment cssp on cg.id_ = cssp.course_group_id_
         <if test="param.search != null and param.search != ''">

+ 9 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -121,7 +121,8 @@
         a.end_time_ as endTime,
         a.status_ as `status`,
         b.pre_student_num_ as studentCount,
-        b.background_pic_ as backgroundPic
+        b.background_pic_ as backgroundPic,
+        b.im_group_id_  as imGroupId
         from course_schedule as a
         left join course_group as b on a.course_group_id_ = b.id_
         left join subject as s on b.subject_id_ = s.id_
@@ -137,6 +138,7 @@
             AND b.subject_id_ = #{param.subjectId}
         </if>
     </select>
+
     <select id="queryTeacherPracticeCourse" resultType="com.yonge.cooleshow.biz.dal.vo.MyCourseVo">
         SELECT
             u.id_ AS userId,
@@ -222,6 +224,7 @@
         <![CDATA[ AND s.class_date_  >= #{startDate} ]]>
         <![CDATA[ AND s.class_date_  <= #{endDate} ]]>
     </select>
+
     <select id="queryStudentPracticeCourse" resultType="com.yonge.cooleshow.biz.dal.vo.MyCourseVo">
         SELECT
             s.id_ AS courseId,
@@ -313,6 +316,7 @@
         AND cs.class_date_=#{param.classDate}
         ORDER BY startTime
     </select>
+
     <select id="queryCourseScheduleStudent" resultType="java.lang.String"
             parameterType="com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch">
         SELECT class_date_ FROM course_schedule
@@ -320,6 +324,7 @@
         <![CDATA[ AND class_date_  >= #{startDate} ]]>
         <![CDATA[ AND class_date_  <= #{endDate} ]]>
     </select>
+
     <select id="teacherList" resultType="com.yonge.cooleshow.biz.dal.vo.PracticeTeacherVo">
         SELECT
         t.user_id_ AS teacherId,
@@ -410,13 +415,14 @@
         cs.end_time_ AS endTime,
         cs.status_ AS `status`,
         cs.type_ AS courseType,
-        su.real_name_ AS userId,
+        su.username_ AS userId,
         CONCAT(g.name_,'-第',cs.class_num_,'课') AS name,
         IFNULL(g.pre_student_num_, 0) AS payCount,
         g.background_pic_ AS cover,
         g.subject_id_ AS subjectId,
         sb.name_ AS subjectName,
-        su.avatar_ AS avatar
+        su.avatar_ AS avatar,
+        g.im_group_id_  as imGroupId
         FROM
         course_schedule_student_payment as a
         LEFT JOIN course_schedule cs on a.course_id_ = cs.id_

+ 1 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupDetailMapper.xml

@@ -65,6 +65,7 @@
 	<select id="selectPageStudent" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonPurchaseStudent">
 		SELECT
 		id_ AS userId,
+		real_name_ AS realName,
 		<include refid="userDetail"/>
 		FROM sys_user
 		WHERE id_ IN

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonPurchaseRecordMapper.xml

@@ -27,6 +27,6 @@
 		(SELECT video_lesson_group_id_ FROM video_lesson_group_detail WHERE id_=#{videoId})
 	</select>
 	<update id="updateStatus" parameterType="java.lang.String">
-		UPDATE video_lesson_purchase_record SET order_status_=1 WHERE order_no_=#{orderNo}
+		UPDATE video_lesson_purchase_record SET order_status_=#{status} WHERE order_no_=#{orderNo}
 	</update>
 </mapper>

+ 0 - 1
pom.xml

@@ -381,6 +381,5 @@
 		<module>cooleshow-mall</module>
         <module>cooleshow-websocket</module>
         <module>cooleshow-api</module>
-
     </modules>
 </project>

+ 4 - 1
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/provider/KS3StoragePlugin.java

@@ -2,10 +2,10 @@ package com.yonge.toolset.thirdparty.storage.provider;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import com.alibaba.fastjson.JSON;
 import com.ksyun.ks3.dto.PostObjectFormFields;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
 import org.apache.commons.io.FileUtils;
@@ -152,6 +152,9 @@ public class KS3StoragePlugin implements StoragePlugin, InitializingBean, Dispos
         Map<String, String> postData = uploadSign.getPostData();
         //无法确定值得表单项
         List<String> unknowValueField = uploadSign.getUnknowValueField();
+        if (unknowValueField==null){
+            unknowValueField=new ArrayList<>();
+        }
 
         Ks3ClientConfig config = new Ks3ClientConfig();
         // 设置域名