|
|
@@ -581,6 +581,143 @@ public class QwSopTempServiceImpl implements IQwSopTempService {
|
|
|
fsUserCourseVideoRedPackageService.batchSaveFsUserCourseVideoRedPackage(redPackage);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private void createSopTempRulesTwo(QwSopTemp temp, List<FsUserCourseVideo> videoList, FsUserCourse fsUserCourse) {
|
|
|
+ AtomicInteger i = new AtomicInteger(1);
|
|
|
+ Integer gap = temp.getGap();
|
|
|
+ List<QwSopTempDay> collect = videoList.stream().map(e -> {
|
|
|
+ QwSopTempDay day = new QwSopTempDay();
|
|
|
+ day.setTempId(temp.getId());
|
|
|
+ day.setDayNum(i.getAndIncrement() * gap);
|
|
|
+ day.setName("第" + day.getDayNum() + "天");
|
|
|
+ day.setSorts(day.getDayNum());
|
|
|
+ day.setList(new ArrayList<>());
|
|
|
+ List<String> timeList = new ArrayList<>();
|
|
|
+ if (temp.getTimeList() != null) {
|
|
|
+ timeList = JSON.parseArray(JSON.toJSONString(temp.getTimeList()), String.class);
|
|
|
+ }
|
|
|
+ AtomicInteger sorts = new AtomicInteger(0);
|
|
|
+ List<QwSopTempRules> rulesList = timeList.stream().map(time -> {
|
|
|
+ QwSopTempRules rules = new QwSopTempRules();
|
|
|
+ rules.setTempId(temp.getId());
|
|
|
+ rules.setName(day.getName());
|
|
|
+
|
|
|
+ if (!"河山医院".equals(cloudHostProper.getCompanyName())){
|
|
|
+ if (temp.getOpenOfficial().equals("1")) {
|
|
|
+ rules.setIsOfficial(sorts.get() == 0 ? "1" : "0");
|
|
|
+ } else {
|
|
|
+ rules.setIsOfficial("0");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (day.getDayNum() == 1 && sorts.get() == 0 && temp.getOpenOfficial().equals("1")) {
|
|
|
+ rules.setTime("01:05");
|
|
|
+ } else {
|
|
|
+ rules.setTime(time);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ rules.setIsOfficial("0");
|
|
|
+ rules.setTime(time);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (temp.getOpenIsAtAll() != null && temp.getOpenIsAtAll().equals("1")){
|
|
|
+ rules.setIsAtAll(1);
|
|
|
+ }else {
|
|
|
+ rules.setIsAtAll(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ rules.setContentType(2);
|
|
|
+ rules.setType(2);
|
|
|
+ rules.setCourseType(0);
|
|
|
+ rules.setCourseId(e.getCourseId());
|
|
|
+ rules.setVideoId(e.getVideoId());
|
|
|
+ // 设置消息类型
|
|
|
+
|
|
|
+ QwSopTempContent content = new QwSopTempContent();
|
|
|
+ content.setTempId(temp.getId());
|
|
|
+ content.setContentType(3);
|
|
|
+ QwSopTempSetting2.Content.Setting setting = new QwSopTempSetting2.Content.Setting();
|
|
|
+ setting.setLinkTitle(e.getTitle());
|
|
|
+ setting.setMiniprogramTitle(e.getTitle());
|
|
|
+
|
|
|
+ //用课节图片做封面
|
|
|
+ if ("今正科技".equals(cloudHostProper.getCompanyName())) {
|
|
|
+ setting.setMiniprogramPicUrl(!StringUtil.isNullOrEmpty(e.getThumbnail()) ? e.getThumbnail() : fsUserCourse.getImgUrl());
|
|
|
+ setting.setLinkImageUrl(!StringUtil.isNullOrEmpty(e.getThumbnail()) ? e.getThumbnail() : fsUserCourse.getImgUrl());
|
|
|
+ } else {
|
|
|
+ setting.setMiniprogramPicUrl(fsUserCourse.getImgUrl());
|
|
|
+ setting.setLinkImageUrl(fsUserCourse.getImgUrl());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ setting.setIsBindUrl(1);
|
|
|
+ setting.setLinkDescribe(e.getTitle());
|
|
|
+ setting.setContentType("4");
|
|
|
+ content.setContent(JSON.toJSONString(setting));
|
|
|
+ content.setIsBindUrl(1);
|
|
|
+ List<QwSopTempContent> qwSopTempContents = new ArrayList<>();
|
|
|
+ qwSopTempContents.add(content);
|
|
|
+
|
|
|
+ QwSopTempContent content3 = new QwSopTempContent();
|
|
|
+ content3.setTempId(temp.getId());
|
|
|
+ content3.setContentType(3);
|
|
|
+
|
|
|
+ if (!temp.getTimeDesc().isEmpty()){
|
|
|
+
|
|
|
+ QwSopTempSetting2.Content.Setting setting3 = new QwSopTempSetting2.Content.Setting();
|
|
|
+ setting3.setValue(temp.getTimeDesc().get(sorts.get()));
|
|
|
+ setting3.setContentType("1");
|
|
|
+ content3.setContent(JSON.toJSONString(setting3));
|
|
|
+
|
|
|
+ qwSopTempContents.add(content3);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ rules.setSorts(sorts.getAndIncrement());
|
|
|
+ if (rules.getSorts() == 0) {
|
|
|
+ rules.setCourseType(0);
|
|
|
+ } else if (rules.getSorts() == 1) {
|
|
|
+ rules.setCourseType(1);
|
|
|
+ } else {
|
|
|
+ rules.setCourseType(4);
|
|
|
+ }
|
|
|
+ rules.setList(qwSopTempContents);
|
|
|
+ return rules;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ day.getList().addAll(rulesList);
|
|
|
+ return day;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ qwSopTempDayService.addOrUpdateBatch(collect);
|
|
|
+ List<QwSopTempRules> ruleList = collect.stream().flatMap(e -> e.getList().stream().peek(r -> r.setDayId(e.getId()))).collect(Collectors.toList());
|
|
|
+ qwSopTempRulesService.saveList(ruleList);
|
|
|
+ List<QwSopTempContent> contentList = ruleList.stream().flatMap(e -> e.getList().stream().peek(r -> {
|
|
|
+ r.setDayId(e.getDayId());
|
|
|
+ r.setRulesId(e.getId());
|
|
|
+ })).collect(Collectors.toList());
|
|
|
+ qwSopTempContentService.saveList(contentList);
|
|
|
+ SysConfig sysConfig = sysConfigService.selectConfigByConfigKey("course.config");
|
|
|
+ CourseConfig courseConfig = JSON.parseObject(sysConfig.getConfigValue(), CourseConfig.class);
|
|
|
+ List<Long> videoIdList = PubFun.listToNewList(ruleList, QwSopTempRules::getVideoId);
|
|
|
+ Map<Long, Optional<BigDecimal>> redMap;
|
|
|
+ if (!videoIdList.isEmpty()) {
|
|
|
+ List<FsUserCourseVideoRedPackage> redPackageList = fsUserCourseVideoRedPackageService.listByCompanyIdAndVideoIds(temp.getCompanyId(), videoIdList);
|
|
|
+ redMap = redPackageList.stream().collect(Collectors.groupingBy(FsUserCourseVideoRedPackage::getVideoId, Collectors.mapping(FsUserCourseVideoRedPackage::getRedPacketMoney, Collectors.reducing((e1, e2) -> e1))));
|
|
|
+ } else {
|
|
|
+ redMap = new HashMap<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<FsUserCourseVideoRedPackage> redPackage = ruleList.stream().filter(e -> e.getVideoId() != null && e.getSorts() == 0).map(e -> {
|
|
|
+ FsUserCourseVideoRedPackage red = new FsUserCourseVideoRedPackage();
|
|
|
+ red.setCompanyId(temp.getCompanyId());
|
|
|
+ red.setVideoId(e.getVideoId());
|
|
|
+ red.setRedPacketMoney(redMap.getOrDefault(e.getVideoId(), Optional.ofNullable(courseConfig.getRedPackageMoney())).orElse(BigDecimal.ZERO));
|
|
|
+ red.setRuleId(e.getId());
|
|
|
+ red.setDataType(3);
|
|
|
+ return red;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ fsUserCourseVideoRedPackageService.batchSaveFsUserCourseVideoRedPackage(redPackage);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<QwSopTempRedPackageVo> redList(String id) {
|
|
|
List<QwSopTempDay> dayList = qwSopTempRulesService.listByTempIdAll(id);
|
|
|
@@ -691,17 +828,14 @@ public class QwSopTempServiceImpl implements IQwSopTempService {
|
|
|
}
|
|
|
QwSopTempDay qwSopTempDay = first.get();
|
|
|
|
|
|
- // 构造timeList timeDesc time
|
|
|
- sopTemp.setTime(LocalTime.now());
|
|
|
-
|
|
|
sopTemp.setTimeList(tempRulesList.stream()
|
|
|
- .filter(e -> e.getTempId().equals(sopTemp.getId()) && Objects.equals(e.getIsOfficial(), "0")
|
|
|
+ .filter(e -> e.getTempId().equals(sopTemp.getId())
|
|
|
&& Objects.equals(e.getDayId(), qwSopTempDay.getId())
|
|
|
).map(QwSopTempRules::getTime)
|
|
|
.collect(Collectors.toList()));
|
|
|
|
|
|
sopTemp.setTimeDesc(contentList.stream().filter(e -> e.getTempId().equals(sopTemp.getId())
|
|
|
- && Objects.isNull(e.getIsBindUrl())
|
|
|
+ && Objects.equals(1,e.getContentType())
|
|
|
&& Objects.equals(qwSopTempDay.getId(), e.getDayId())
|
|
|
)
|
|
|
.map(m -> JSONObject.parseObject(m.getContent()).getString("value")).collect(Collectors.toList()));
|
|
|
@@ -711,7 +845,7 @@ public class QwSopTempServiceImpl implements IQwSopTempService {
|
|
|
|
|
|
qwSopTempMapper.updateQwSopTemp(sopTemp);
|
|
|
|
|
|
- createSopTempRules(sopTemp, addVideoList, fsUserCourse);
|
|
|
+ createSopTempRulesTwo(sopTemp, addVideoList, fsUserCourse);
|
|
|
|
|
|
// 更新排序
|
|
|
List<QwSopTempRules> newTempRulesList = qwSopTempRulesService.listByCourseIdAndTempId(courseId, teId);
|