Forráskód Böngészése

feat:叮当国医-现在不能看的课,需要显示倒计时

caoliqin 4 napja
szülő
commit
5959414d1d

+ 15 - 0
fs-admin/src/main/java/com/fs/his/controller/FsStorePaymentController.java

@@ -133,6 +133,21 @@ public class FsStorePaymentController extends BaseController
 
         return AjaxResult.success( fsStorePaymentService.updateFsStorePaymentByDecryptForm(paymentId));
     }
+
+    /**
+     * 批量互医同步支付明细(临时)
+     */
+    @PostMapping(value = "/batchUpdate")
+    public AjaxResult batchUpdate(@RequestBody List<Long> paymentIds)
+    {
+        if(!paymentIds.isEmpty()){
+            for (Long paymentId : paymentIds) {
+                fsStorePaymentService.updateFsStorePaymentByDecryptForm(paymentId);
+            }
+        }
+        return AjaxResult.success("成功");
+    }
+
     @PreAuthorize("@ss.hasPermi('his:storePayment:refund')")
     @GetMapping(value = "refund/{paymentId}")
     public R refund(@PathVariable("paymentId") Long paymentId)

+ 1 - 0
fs-common/src/main/java/com/fs/common/enums/BizResponseEnum.java

@@ -9,6 +9,7 @@ public enum BizResponseEnum {
     FAIL(500, "操作失败"),
     PARAM_ERROR(400, "参数错误"),
     DATA_NOT_EXIST(1002, "数据不存在"),
+    WATCH_LATEST_COURSE(482, "请观看最新的课程项目"),
     WAIT_APPROVAL(505, "等待审核");
 
     private final Integer code;

+ 24 - 5
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -2626,8 +2626,15 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
 //        FsCourseWatchLog watchCourseVideo = courseWatchLogMapper.getWatchCourseVideoByFsUser(param.getUserId(), param.getVideoId(), param.getCompanyUserId());
         FsCourseWatchLog watchCourseVideo = courseWatchLogMapper.getCourseWatchLogByUser(param.getUserId(), param.getVideoId(), param.getPeriodId());
 
-        if (!isUserCoursePeriodValid(param)) {
-            return ResponseResult.fail(ExceptionCodeEnum.WATCH_LATEST_COURSE.getCode(), ExceptionCodeEnum.WATCH_LATEST_COURSE.getDescription());
+        Map<String, Object> userCoursePeriodValid = isUserCoursePeriodValid(param);
+        if (CloudHostUtils.hasCloudHostName("叮当国医") ) {
+            if (!((boolean)userCoursePeriodValid.get("isWithinRangeSafe"))) {
+                return ResponseResult.fail(BizResponseEnum.WATCH_LATEST_COURSE, userCoursePeriodValid);
+            }
+        } else {
+            if (!((boolean)userCoursePeriodValid.get("isWithinRangeSafe"))) {
+                return ResponseResult.fail(ExceptionCodeEnum.WATCH_LATEST_COURSE.getCode(), ExceptionCodeEnum.WATCH_LATEST_COURSE.getDescription());
+            }
         }
         // 项目看课数限制
         if (!EXCLUDE_PROJECTS.contains(signProjectName) && !CloudHostUtils.hasCloudHostName("弘德堂")) {
@@ -2702,7 +2709,8 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
      * @param param 查询参数
      * @return 如果当前时间在有效范围内且状态为1,返回true,否则返回false
      */
-    public boolean isUserCoursePeriodValid(FsUserCourseAddCompanyUserParam param) {
+    public Map<String, Object> isUserCoursePeriodValid(FsUserCourseAddCompanyUserParam param) {
+        Map<String, Object> map = new HashMap<>();
         // 查询课程周期信息
         FsUserCoursePeriodDays periodDays = getPeriodDaysInfo(param);
 
@@ -2720,9 +2728,20 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
         log.error("传入参数:开始时间:{},结束时间:{},periodDays={}", effectiveStartTime, effectiveEndTime, periodDays);
         if (ObjectUtils.isEmpty(effectiveStartTime) || ObjectUtils.isEmpty(effectiveEndTime)) {
             log.error("请检查营期时间!");
-            return false;
+            map.put("isWithinRangeSafe", false);
+            return map;
+        }
+        boolean isWithinRangeSafe = DateUtil.isWithinRangeSafe(LocalDateTime.now(), effectiveStartTime, effectiveEndTime) && periodDays.getStatus() == 1;
+        map.put("isWithinRangeSafe", isWithinRangeSafe);
+        // 计算差值,如果是未到开课时间的课程,计算出时间差值
+        if(periodDays.getStatus() != 2 && LocalDateTime.now().isBefore(effectiveStartTime)){
+            long millis = Duration.between(LocalDateTime.now(), effectiveStartTime).toMillis();
+            map.put("millis", millis);
+            map.put("countdown", true);
+        } else {
+            map.put("countdown", false);
         }
-        return DateUtil.isWithinRangeSafe(LocalDateTime.now(), effectiveStartTime, effectiveEndTime) && periodDays.getStatus() == 1;
+        return map;
     }
 
     // 其他辅助方法保持不变