yonge 2 năm trước cách đây
mục cha
commit
e629639f36

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupLogDao.java

@@ -1,9 +1,13 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupLog;
 import com.yonge.toolset.mybatis.dal.BaseDAO;
 
 public interface VideoLessonGroupLogDao extends BaseDAO<Long, VideoLessonGroupLog> {
 
+	Long queryMaxVersion(Long videoLessonGroupId);
 	
+	VideoLessonGroupLog queryByVideoLessonGroupId(@Param("videoLessonGroupId") Long videoLessonGroupId, @Param("version") Long version);
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonAuthRecord.java

@@ -55,6 +55,9 @@ public class VideoLessonAuthRecord extends BaseEntity {
     @TableField("update_time_")
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
+    
+    @TableField("version_")
+    private Long version;
 
     public Long getId() {
         return id;
@@ -135,4 +138,12 @@ public class VideoLessonAuthRecord extends BaseEntity {
     public void setAuthType(AuthTypeEnum authType) {
         this.authType = authType;
     }
+
+	public Long getVersion() {
+		return version;
+	}
+
+	public void setVersion(Long version) {
+		this.version = version;
+	}
 }

+ 20 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonGroupLog.java

@@ -11,6 +11,8 @@ public class VideoLessonGroupLog {
 	@ApiModelProperty(value = "主键",required = false)
 	private Long id;
 	
+	private Long videoLessonGroupId;
+	
 	@ApiModelProperty(value = "课程名称",required = false)
 	private String lessonName;
 	
@@ -71,11 +73,21 @@ public class VideoLessonGroupLog {
 	@ApiModelProperty(value = "更新时间",required = false)
 	private java.util.Date updateTime;
 	
+	private Long version;
+	
 	public VideoLessonGroupLog setId(Long id){
 		this.id = id;
 		return this;
 	}
 	
+	public Long getVideoLessonGroupId() {
+		return videoLessonGroupId;
+	}
+
+	public void setVideoLessonGroupId(Long videoLessonGroupId) {
+		videoLessonGroupId = videoLessonGroupId;
+	}
+
 	public Long getId(){
 		return this.id;
 	}
@@ -259,6 +271,14 @@ public class VideoLessonGroupLog {
 		return this.updateTime;
 	}
 			
+	public Long getVersion() {
+		return version;
+	}
+
+	public void setVersion(Long version) {
+		this.version = version;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupLogService.java

@@ -5,4 +5,7 @@ import com.yonge.toolset.mybatis.service.BaseService;
 
 public interface VideoLessonGroupLogService extends BaseService<Long, VideoLessonGroupLog> {
 
+	Long queryMaxVersion(Long videoLessonGroupId);
+	
+	VideoLessonGroupLog queryByVideoLessonGroupId(Long videoLessonGroupId, Long version);
 }

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

@@ -19,5 +19,15 @@ public class VideoLessonGroupLogServiceImpl extends BaseServiceImpl<Long, VideoL
 	public BaseDAO<Long, VideoLessonGroupLog> getDAO() {
 		return videoLessonGroupLogDao;
 	}
+
+	@Override
+	public Long queryMaxVersion(Long videoLessonGroupId) {
+		return videoLessonGroupLogDao.queryMaxVersion(videoLessonGroupId);
+	}
+
+	@Override
+	public VideoLessonGroupLog queryByVideoLessonGroupId(Long videoLessonGroupId, Long version) {
+		return videoLessonGroupLogDao.queryByVideoLessonGroupId(videoLessonGroupId, version);
+	}
 	
 }

+ 23 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupServiceImpl.java

@@ -1,8 +1,5 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
-import io.netty.util.internal.StringUtil;
-
-import java.lang.reflect.InvocationTargetException;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
@@ -37,7 +34,6 @@ import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupLog;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
-import com.yonge.cooleshow.biz.dal.enums.AuthTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum;
@@ -169,6 +165,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         record.setAuditId(examineVo.getAuditId());
         record.setAuditName(examineVo.getAuditName());
         record.setRemarks(examineVo.getRemarks());
+        record.setVersion(videoLessonGroupLogService.queryMaxVersion(examineVo.getId()));
         recordDao.insert(record);
 
         //清状态
@@ -262,6 +259,8 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         if (!longList.contains(subjectId)) {
             throw new BizException("该声部无法选择");
         }
+        
+        Date date = new Date();
 
         //添加组
         lessonGroup.setTeacherId(sysUser.getId());
@@ -288,6 +287,22 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         record.setAuditStatus(AuthStatusEnum.DOING.getCode());
         record.setAuthType(AuthTypeEnum.ADD);
         recordDao.insert(record);*/
+        
+        VideoLessonGroupLog  videoLessonGroupLog = new VideoLessonGroupLog();
+        
+        try {
+			BeanUtils.copyProperties(videoLessonGroupLog, lessonGroup);
+		} catch (Exception e) {
+			throw new BizException("属性复制失败");
+		}
+        videoLessonGroupLog.setId(null);
+        videoLessonGroupLog.setVideoLessonGroupId(lessonGroup.getId());
+        videoLessonGroupLog.setCreateTime(date);
+        videoLessonGroupLog.setUpdateTime(date);
+        videoLessonGroupLog.setModifierId(sysUser.getId());
+        videoLessonGroupLog.setVersion(videoLessonGroupLogService.queryMaxVersion(lessonGroup.getId()) + 1);
+        
+        videoLessonGroupLogService.insert(videoLessonGroupLog);
     }
 
     /**
@@ -393,9 +408,12 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
 		} catch (Exception e) {
 			throw new BizException("属性复制失败");
 		}
+        videoLessonGroupLog.setId(null);
+        videoLessonGroupLog.setVideoLessonGroupId(lessonGroup.getId());
         videoLessonGroupLog.setCreateTime(date);
         videoLessonGroupLog.setUpdateTime(date);
         videoLessonGroupLog.setModifierId(sysUser.getId());
+        videoLessonGroupLog.setVersion(videoLessonGroupLogService.queryMaxVersion(lessonGroup.getId()) + 1);
         
         videoLessonGroupLogService.insert(videoLessonGroupLog);
 
@@ -455,7 +473,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         videoLessonAuthGroup.setVideoList(details);
 
         //查询上一次的提交
-        VideoLessonGroupLog lastDetil = baseMapper.lastAuthGroupDetil(videoGroupId);
+        VideoLessonGroupLog lastDetil = videoLessonGroupLogService.queryByVideoLessonGroupId(videoGroupId, videoLessonAuthGroup.getVersion());
         videoLessonAuthGroup.setLastVideoLessonGroupLog(lastDetil);
         
         return videoLessonAuthGroup;

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonAuthGroup.java

@@ -37,6 +37,8 @@ public class VideoLessonAuthGroup extends VideoLessonGroup {
 
     @ApiModelProperty("上一次的修改记录")
     private VideoLessonGroupLog lastVideoLessonGroupLog;
+    
+    private Long version;
 
     public String getRemarks() {
         return remarks;
@@ -102,4 +104,12 @@ public class VideoLessonAuthGroup extends VideoLessonGroup {
 		this.lastVideoLessonGroupLog = lastVideoLessonGroupLog;
 	}
 
+	public Long getVersion() {
+		return version;
+	}
+
+	public void setVersion(Long version) {
+		this.version = version;
+	}
+
 }

+ 19 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupLogMapper.xml

@@ -6,6 +6,7 @@
 	<resultMap type="com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupLog"
 		id="BaseResultMap">
 		<result column="id_" property="id" />
+		<result column="video_lesson_group_id_" property="videoLessonGroupId" />
 		<result column="lesson_name_" property="lessonName" />
 		<result column="lesson_subject_" property="lessonSubject" />
 		<result column="lesson_desc_" property="lessonDesc" />
@@ -26,6 +27,7 @@
 		<result column="audit_version_" property="auditVersion" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
+		<result column="version_" property="version" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -46,8 +48,8 @@
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO
 		video_lesson_group_log
-		(id_,lesson_name_,lesson_subject_,lesson_desc_,lesson_price_,lesson_cover_url_,teacher_id_,lesson_count_,sort_number_,lesson_tag_,top_flag_,hot_flag_,shelves_flag_,shelves_time_,shelves_reason_,shelves_id_,modifier_id_,remarks,audit_version_,create_time_,update_time_)
-		VALUES(#{id},#{lessonName},#{lessonSubject},#{lessonDesc},#{lessonPrice},#{lessonCoverUrl},#{teacherId},#{lessonCount},#{sortNumber},#{lessonTag},#{topFlag},#{hotFlag},#{shelvesFlag},#{shelvesTime},#{shelvesReason},#{shelvesId},#{modifierId},#{remarks},#{auditVersion},#{createTime},#{updateTime})
+		(id_,video_lesson_group_id_,lesson_name_,lesson_subject_,lesson_desc_,lesson_price_,lesson_cover_url_,teacher_id_,lesson_count_,sort_number_,lesson_tag_,top_flag_,hot_flag_,shelves_flag_,shelves_time_,shelves_reason_,shelves_id_,modifier_id_,remarks,audit_version_,create_time_,update_time_,version_)
+		VALUES(#{id},#{videoLessonGroupId},#{lessonName},#{lessonSubject},#{lessonDesc},#{lessonPrice},#{lessonCoverUrl},#{teacherId},#{lessonCount},#{sortNumber},#{lessonTag},#{topFlag},#{hotFlag},#{shelvesFlag},#{shelvesTime},#{shelvesReason},#{shelvesId},#{modifierId},#{remarks},#{auditVersion},#{createTime},#{updateTime},#{version})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -118,6 +120,12 @@
 			<if test="lessonTag != null">
 				lesson_tag_ = #{lessonTag},
 			</if>
+			<if test="videoLessonGroupId != null">
+				video_lesson_group_id_ = #{videoLessonGroupId},
+			</if>
+			<if test="version != null">
+				version_ = #{version},
+			</if>
 		</set>
 		WHERE id_ = #{id}
 	</update>
@@ -136,7 +144,14 @@
 
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM
-		video_lesson_group_log
+		SELECT COUNT(*) FROM video_lesson_group_log
+	</select>
+	
+	<select id="queryMaxVersion" resultType="long">
+		SELECT ifnull(max(version_),0) FROM video_lesson_group_log where video_lesson_group_id_ = #{videoLessonGroupId}
+	</select>
+	
+	<select id="queryByVideoLessonGroupId" resultMap="BaseResultMap">
+		SELECT * FROM video_lesson_group_log where video_lesson_group_id_ = #{videoLessonGroupId} and version_ = #{version}
 	</select>
 </mapper>

+ 14 - 37
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml

@@ -26,35 +26,6 @@
 		<result column="update_time_" jdbcType="TIMESTAMP" property="updateTime" />
 	</resultMap>
 
-	<resultMap type="com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupLog"
-		id="VideoLessonGroupLogMap">
-		<result column="id_" property="id" />
-		<result column="lesson_name_" property="lessonName" />
-		<result column="lesson_subject_" property="lessonSubject" />
-		<result column="lesson_desc_" property="lessonDesc" />
-		<result column="lesson_price_" property="lessonPrice" />
-		<result column="lesson_cover_url_" property="lessonCoverUrl" />
-		<result column="teacher_id_" property="teacherId" />
-		<result column="lesson_count_" property="lessonCount" />
-		<result column="sort_number_" property="sortNumber" />
-		<result column="lesson_tag_" property="lessonTag" />
-		<result column="top_flag_" property="topFlag" />
-		<result column="hot_flag_" property="hotFlag" />
-		<result column="shelves_flag_" property="shelvesFlag" />
-		<result column="shelves_time_" property="shelvesTime" />
-		<result column="shelves_reason_" property="shelvesReason" />
-		<result column="shelves_id_" property="shelvesId" />
-		<result column="modifier_id_" property="modifierId" />
-		<result column="remarks" property="remarks" />
-		<result column="audit_version_" property="auditVersion" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time_" property="updateTime" />
-		<result column="subjectName" property="subjectName" />
-		<result column="teacherName" property="teacherName" />
-		<result column="realName" property="realName" />
-		<result column="teacherPhone" property="teacherPhone" />
-	</resultMap>
-
 	<sql id="baseColumns">
 		g.id_ AS id,
 		g.lesson_name_ AS lessonName,
@@ -99,6 +70,8 @@
 		g.update_time_ AS updateTime,
 		g.audit_id_ AS auditId,
 		g.audit_name_ AS auditName,
+		g.audit_status_ AS auditStatus,
+		g.audit_version_ as auditVersion,
 	</sql>
 
 	<update id="updateGroup" parameterType="com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupUpVo">
@@ -351,13 +324,11 @@
 	<select id="queryGroupList" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonAuthGroup">
 		SELECT
 			<include refid="recordColumns"/>
-			r.remarks as remarks,
 			s.name_ AS subjectName,
 			t.username_ AS teacherName,
 			t.real_name_ AS realName,
 			t.phone_ AS teacherPhone
 		FROM video_lesson_group g
-		LEFT JOIN video_lesson_auth_record r ON g.id_ = r.video_group_id_
 		LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
 		LEFT JOIN sys_user t ON g.teacher_id_=t.id_
 		<where>
@@ -399,12 +370,13 @@
 			r.group_id_ as groupId,
 			r.audit_status_ AS auditStatus,
 			r.remarks as remarks,
+			r.version_ as version,
 			s.name_ AS subjectName,
 			t.username_ AS teacherName,
 			t.real_name_ AS realName,
 			t.phone_ AS teacherPhone
 		FROM video_lesson_auth_record r
-		LEFT JOIN video_lesson_group g ON g.id_=r.video_group_id_
+		LEFT JOIN video_lesson_group_log g ON g.video_lesson_group_id_=r.video_group_id_ and r.version_ = g.version_
 		LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
 		LEFT JOIN sys_user t ON g.teacher_id_=t.id_
 		<where>
@@ -455,21 +427,26 @@
 			t.real_name_ AS realName,
 			t.phone_ AS teacherPhone
 		FROM video_lesson_auth_record r
-		LEFT JOIN video_lesson_group g ON g.id_=r.video_group_id_
+		LEFT JOIN video_lesson_group_log g ON g.video_group_id_=r.video_group_id_ and g.version_ = r.version_
 		LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
 		LEFT JOIN sys_user t ON g.teacher_id_=t.id_
 		where r.video_group_id_ = #{videoGroupId}
 	</select>
 
-	<select id="lastAuthGroupDetil" resultMap="VideoLessonGroupLogMap">
+	<select id="lastAuthGroupDetil" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonAuthGroup">
 		SELECT
-			gl.*,
+			<include refid="recordColumns"/>
+			r.video_group_id_ as videoGroupId,
+			r.group_id_ as groupId,
+			r.audit_status_ AS auditStatus,
+			r.remarks as remarks,
+			r.version_ as version,
 			s.name_ AS subjectName,
 			t.username_ AS teacherName,
 			t.real_name_ AS realName,
 			t.phone_ AS teacherPhone
-		FROM video_lesson_group_log gl
-		LEFT JOIN video_lesson_group g ON g.id_=gl.video_group_id_
+		FROM video_lesson_auth_record r
+		LEFT JOIN video_lesson_group g ON g.id_=r.video_group_id_
 		LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
 		LEFT JOIN sys_user t ON g.teacher_id_=t.id_
 		where gl.video_group_id_ != #{videoGroupId}