Quellcode durchsuchen

酷乐秀优化

zouxuan vor 6 Monaten
Ursprung
Commit
8575e0c795

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ExposureRecord.java

@@ -17,6 +17,10 @@ public class ExposureRecord implements Serializable {
     @ApiModelProperty(value = "主键")
     private Long id;
 
+    @TableField("teacher_id_")
+    @ApiModelProperty(value = "老师ID")
+    private Long teacherId;
+
     @TableField("exposure_time_")
     @ApiModelProperty(value = "曝光日期")
     private String exposureTime;

+ 33 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ExposureRecordServiceImpl.java

@@ -2,7 +2,10 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.ExposureRecordDao;
+import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import com.yonge.cooleshow.biz.dal.entity.ExposureRecord;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
+import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.service.ExposureRecordService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
@@ -40,10 +43,37 @@ public class ExposureRecordServiceImpl extends ServiceImpl<ExposureRecordDao, Ex
     public void record(List<ExposureRecordWrapper.SaveExposureRecordDto> exposureRecordDto) {
         Date now = new Date();
         String exposureTime = DateUtil.format(now, DateUtil.DEFAULT_PATTERN);
-        exposureRecordDto.forEach(e->e.setExposureTime(exposureTime));
+        for (ExposureRecordWrapper.SaveExposureRecordDto recordDto : exposureRecordDto) {
+            recordDto.setExposureTime(exposureTime);
+            String objectType = recordDto.getObjectType();
+            if ("LIVE".equals(objectType) || "GROUP".equals(objectType)) {
+                CourseGroup courseGroup = courseGroupService.getById(recordDto.getObjectId());
+                if (courseGroup == null) {
+                    log.error("浏览记录失败,对象不存在,类型:{},id:{}", objectType, recordDto.getObjectId());
+                    return;
+                }
+                recordDto.setTeacherId(courseGroup.getTeacherId());
+            } else if ("VIP_COURSE".equals(objectType) || "PRACTICE".equals(objectType)) {
+                recordDto.setTeacherId(recordDto.getObjectId());
+            } else if ("VIDEO".equals(objectType)) {
+                VideoLessonGroup lessonGroup = videoLessonGroupService.getById(recordDto.getObjectId());
+                if (lessonGroup == null) {
+                    log.error("浏览记录失败,对象不存在,类型:{},id:{}", objectType, recordDto.getObjectId());
+                    return;
+                }
+                recordDto.setTeacherId(lessonGroup.getTeacherId());
+            } else if ("MUSIC".equals(objectType)) {
+                MusicSheet musicSheet = musicSheetService.getById(recordDto.getObjectId());
+                if (musicSheet == null) {
+                    log.error("浏览记录失败,对象不存在,类型:{},id:{}", objectType, recordDto.getObjectId());
+                    return;
+                }
+                recordDto.setTeacherId(musicSheet.getCreateBy());
+            }
+        }
         baseMapper.saveExposureRecord(exposureRecordDto);
         //按类型分组
-        Map<String, List<ExposureRecordWrapper.SaveExposureRecordDto>> typeMap = exposureRecordDto.stream().collect(Collectors.groupingBy(ExposureRecordWrapper.SaveExposureRecordDto::getObjectType));
+        /*Map<String, List<ExposureRecordWrapper.SaveExposureRecordDto>> typeMap = exposureRecordDto.stream().collect(Collectors.groupingBy(ExposureRecordWrapper.SaveExposureRecordDto::getObjectType));
         typeMap.forEach((k,v)->{
             List<ExposureRecordWrapper.SaveExposureRecordDto> saveExposureReportDtos = typeMap.get(k);
             //按对象id分组,并获取集合数量
@@ -57,6 +87,6 @@ public class ExposureRecordServiceImpl extends ServiceImpl<ExposureRecordDao, Ex
                     musicSheetService.getDao().updateExposureNum(objectId, exposureNum);
                 }
             });
-        });
+        });*/
     }
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/ExposureRecordWrapper.java

@@ -30,6 +30,9 @@ public class ExposureRecordWrapper {
 
         @ApiModelProperty("曝光时间")
         private String exposureTime;
+
+        @ApiModelProperty("老师ID")
+        private Long teacherId;
 	}
 
 }

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

@@ -4,10 +4,10 @@
 <mapper namespace="com.yonge.cooleshow.biz.dal.dao.ExposureRecordDao">
 
 	<update id="saveExposureRecord">
-		insert into exposure_record (exposure_time_, exposure_num_, object_id_, object_type_, platform_)
+		insert into exposure_record (exposure_time_, exposure_num_, object_id_, object_type_, platform_,teacher_id_)
 		values
 		<foreach collection="beans" item="bean" separator="," >
-			(#{bean.exposureTime}, 1, #{bean.objectId}, #{bean.objectType}, #{bean.platform})
+			(#{bean.exposureTime}, 1, #{bean.objectId}, #{bean.objectType}, #{bean.platform}, #{bean.teacherId})
 		</foreach>
 		ON DUPLICATE KEY UPDATE
 		exposure_num_ = exposure_num_ + 1
@@ -16,7 +16,7 @@
             resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$CourseExposureTotal">
 		select DATE_FORMAT(er.exposure_time_, #{groupBy}) 'date',er.object_type_ as type,
 		       SUM(er.exposure_num_) exposureNum from exposure_record er
-		where er.exposure_time_ BETWEEN #{param.startTime} AND #{param.endTime}
+		where er.exposure_time_ BETWEEN #{param.startTime} AND #{param.endTime} and er.teacher_id_ = #{param.teacherId}
 		<if test="param.type != null and param.type != ''">
 			and er.object_type_ = #{param.type}
 		</if>