吴树波 1 mese fa
parent
commit
1e40151ab3

+ 9 - 0
fs-admin/src/main/java/com/fs/course/controller/FsUserCoursePeriodController.java

@@ -19,6 +19,7 @@ import com.fs.course.service.IFsUserCourseVideoRedPackageService;
 import com.fs.course.vo.FsPeriodCountVO;
 import com.fs.course.vo.FsUserCoursePeriodVO;
 import com.fs.course.vo.PeriodRedPacketVO;
+import com.fs.course.vo.UpdateCourseTimeVo;
 import com.fs.his.vo.OptionsVO;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -142,6 +143,14 @@ public class FsUserCoursePeriodController extends BaseController {
     public R addCourse(@RequestBody FsUserCoursePeriodDays entity){
         return fsUserCoursePeriodDaysService.addCourse(entity);
     }
+    @PostMapping("/updateCourseTime")
+    public R updateCourseTime(@RequestBody UpdateCourseTimeVo vo){
+        return fsUserCoursePeriodDaysService.updateCourseTime(vo);
+    }
+    @PostMapping("/updateCourseDate")
+    public R updateCourseDate(@RequestBody UpdateCourseTimeVo vo){
+        return fsUserCoursePeriodDaysService.updateCourseDate(vo);
+    }
     @PostMapping("/updateListCourseData")
     public R updateListCourseData(@RequestBody List<FsUserCoursePeriodDays> entity){
         return fsUserCoursePeriodDaysService.updateListCourseData(entity);

+ 10 - 1
fs-common/src/main/java/com/fs/common/utils/date/DateUtil.java

@@ -493,5 +493,14 @@ public final class DateUtil {
 		return itemEdate;
 	}
 
-
+	public static boolean isWithinRangeSafe(LocalDate targetDate, LocalDate startDate, LocalDate endDate) {
+		LocalDate actualStart = startDate.isBefore(endDate) ? startDate : endDate;
+		LocalDate actualEnd = startDate.isBefore(endDate) ? endDate : startDate;
+		return !targetDate.isBefore(actualStart) && !targetDate.isAfter(actualEnd);
+	}
+	public static boolean isWithinRangeSafe(LocalDateTime targetDate, LocalDateTime startDate, LocalDateTime endDate) {
+		LocalDateTime actualStart = startDate.isBefore(endDate) ? startDate : endDate;
+		LocalDateTime actualEnd = startDate.isBefore(endDate) ? endDate : startDate;
+		return !targetDate.isBefore(actualStart) && !targetDate.isAfter(actualEnd);
+	}
 }

+ 12 - 1
fs-service-system/src/main/java/com/fs/course/domain/FsUserCoursePeriodDays.java

@@ -3,6 +3,7 @@ package com.fs.course.domain;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.Date;
 import java.util.List;
 
@@ -47,11 +48,15 @@ public class FsUserCoursePeriodDays extends BaseEntityTow {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime startDateTime;
-
     /** 结束时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime endDateTime;
+    /** 领取红包时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "领取红包时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime lastJoinTime;
+
 
     /** 课程ID */
     @Excel(name = "课程ID")
@@ -75,4 +80,10 @@ public class FsUserCoursePeriodDays extends BaseEntityTow {
     private String courseName;
     @TableField(exist = false)
     private String videoName;
+    @TableField(exist = false)
+    private LocalTime startTime;
+    @TableField(exist = false)
+    private LocalTime endTime1;
+    @TableField(exist = false)
+    private LocalTime joinTime;
 }

+ 4 - 0
fs-service-system/src/main/java/com/fs/course/service/IFsUserCoursePeriodDaysService.java

@@ -7,6 +7,7 @@ import com.fs.course.param.CompanyRedPacketParam;
 import com.fs.course.param.PeriodCountParam;
 import com.fs.course.vo.FsPeriodCountVO;
 import com.fs.course.vo.PeriodRedPacketVO;
+import com.fs.course.vo.UpdateCourseTimeVo;
 import com.fs.his.vo.OptionsVO;
 
 import java.util.List;
@@ -109,4 +110,7 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
      */
     R periodCourseMove(Long id, Long targetId);
 
+    R updateCourseTime(UpdateCourseTimeVo vo);
+
+    R updateCourseDate(UpdateCourseTimeVo vo);
 }

+ 7 - 6
fs-service-system/src/main/java/com/fs/course/service/impl/FsCourseQuestionBankServiceImpl.java

@@ -148,7 +148,8 @@ public class FsCourseQuestionBankServiceImpl implements IFsCourseQuestionBankSer
         //日志id
         Long logId = null;
 
-        FsCourseAnswerLogs rightLog = new FsCourseAnswerLogs();
+        new FsCourseAnswerLogs();
+        FsCourseAnswerLogs rightLog;
         //判断短链类型
         if (param.getLinkType()!=null&&param.getLinkType()==1){
             rightLog = courseAnswerLogsMapper.selectRightLogByCourseVideo(param.getVideoId(), param.getUserId(),null);
@@ -174,11 +175,11 @@ public class FsCourseQuestionBankServiceImpl implements IFsCourseQuestionBankSer
 
             rightLog = courseAnswerLogsMapper.selectRightLogByCourseVideo(param.getVideoId(), param.getUserId(), param.getQwUserId());
             if (rightLog != null) {
-                if (log.getRewardType() != null) {
-                    return R.error("该课程已答题完成,不可重复答题");
-                } else {
-                    return R.ok("答题成功");
-                }
+//                if (log.getRewardType() != null) {
+//                    return R.error("该课程已答题完成,不可重复答题");
+//                } else {
+//                }
+                return R.ok("该课程已答题完成,不可重复答题");
             }
             errorCount = courseAnswerLogsMapper.selectErrorCountByCourseVideo(param.getVideoId(), param.getUserId(),param.getQwUserId());
         }

+ 30 - 0
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodDaysServiceImpl.java

@@ -4,6 +4,7 @@ import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.sql.Wrapper;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
@@ -24,6 +25,7 @@ import com.fs.course.param.PeriodCountParam;
 import com.fs.course.service.IFsUserCoursePeriodDaysService;
 import com.fs.course.vo.FsPeriodCountVO;
 import com.fs.course.vo.PeriodRedPacketVO;
+import com.fs.course.vo.UpdateCourseTimeVo;
 import com.fs.course.vo.newfs.FsCourseAnalysisCountVO;
 import com.fs.his.vo.OptionsVO;
 import com.fs.store.mapper.FsUserMapper;
@@ -153,6 +155,9 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
             day.setLesson(dayList.size() + i.getAndIncrement());
             day.setDayDate(period.getPeriodStartingTime().plusDays(day.getLesson()));
             day.setCourseId(entity.getCourseId());
+            day.setStartDateTime(LocalDateTime.of(day.getDayDate(), entity.getStartTime()));
+            day.setEndDateTime(LocalDateTime.of(day.getDayDate(), entity.getEndTime1()));
+            day.setLastJoinTime(LocalDateTime.of(day.getDayDate(), entity.getJoinTime()));
             day.setVideoId(e);
             day.setCreateTime(new Date());
             return day;
@@ -264,6 +269,31 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
         return R.ok();
     }
 
+    @Override
+    public R updateCourseTime(UpdateCourseTimeVo vo) {
+        List<FsUserCoursePeriodDays> list = fsUserCoursePeriodDaysMapper.selectBatchIds(vo.getIds());
+        list.forEach(day -> {
+            day.setStartDateTime(LocalDateTime.of(day.getDayDate(), vo.getStartTime()));
+            day.setEndDateTime(LocalDateTime.of(day.getDayDate(), vo.getEndTime1()));
+            day.setLastJoinTime(LocalDateTime.of(day.getDayDate(), vo.getJoinTime()));
+            fsUserCoursePeriodDaysMapper.updateById(day);
+        });
+        return R.ok();
+    }
+
+    @Override
+    public R updateCourseDate(UpdateCourseTimeVo vo) {
+        FsUserCoursePeriodDays day = getById(vo.getId());
+        FsUserCoursePeriod period = fsUserCoursePeriodMapper.selectFsUserCoursePeriodById(day.getPeriodId());
+        if(!DateUtil.isWithinRangeSafe(vo.getDayDate(), period.getPeriodStartingTime(), period.getPeriodEndTime())) return R.error("时间不在营期范围内");
+        day.setDayDate(vo.getDayDate());
+        day.setStartDateTime(LocalDateTime.of(day.getDayDate(), day.getStartDateTime().toLocalTime()));
+        day.setEndDateTime(LocalDateTime.of(day.getDayDate(), day.getEndDateTime().toLocalTime()));
+        day.setLastJoinTime(LocalDateTime.of(day.getDayDate(), day.getLastJoinTime().toLocalTime()));
+        updateById(day);
+        return R.ok();
+    }
+
     private static FsCourseAnalysisCountVO getCourseAnalysisCountVO(FsUserCoursePeriodDays v, Map<Long, FsCourseAnalysisCountVO> courseMap, Map<Long, FsCourseAnalysisCountVO> redPacketMap, Map<Long, FsCourseAnalysisCountVO> answerMap) {
         FsCourseAnalysisCountVO countVO = new FsCourseAnalysisCountVO();
         FsCourseAnalysisCountVO courseVO = courseMap.getOrDefault(v.getVideoId(), countVO);

+ 19 - 0
fs-service-system/src/main/java/com/fs/course/vo/UpdateCourseTimeVo.java

@@ -0,0 +1,19 @@
+package com.fs.course.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.util.List;
+
+@Data
+public class UpdateCourseTimeVo {
+
+    private List<Long> ids;
+    private Long id;
+    private LocalTime startTime;
+    private LocalTime endTime1;
+    private LocalTime joinTime;
+    private LocalDate dayDate;
+}

+ 3 - 1
fs-service-system/src/main/java/com/fs/sop/service/impl/CompanySopRoleServiceImpl.java

@@ -51,7 +51,9 @@ public class CompanySopRoleServiceImpl extends ServiceImpl<CompanySopRoleMapper,
      */
     @Override
     public List<Company> selectCompanySopRoleList(CompanySopRole companySopRole){
-        List<Company> companyList = companyService.selectCompanyList(new Company());
+        Company company = new Company();
+        company.setIsDel(0);
+        List<Company> companyList = companyService.selectCompanyList(company);
         List<Long> companyIdList = PubFun.listToNewList(companyList, Company::getCompanyId);
         companySopRole.setCompanyIds(companyIdList);
         List<CompanySopRole> roleList = baseMapper.selectCompanySopRoleList(companySopRole);