Browse Source

Merge branch 'feature/1113-vipCourse' of http://git.dayaedu.com/yonge/cooleshow into feature/1113-vipCourse

刘俊驰 7 months ago
parent
commit
d5039bce30

+ 4 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -201,6 +201,10 @@ public interface AdminFeignService {
     @GetMapping("/task/workOverdue")
     HttpResponseResult<Object> workOverdue();
 
+    //课程开始前一20分组提醒
+    @GetMapping("/task/courseStartRemind")
+    HttpResponseResult<Object> courseStartRemind();
+
 
     /**
      * 账号注销校验

+ 5 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java

@@ -201,6 +201,11 @@ public class AdminFeignServiceFallback implements AdminFeignService {
     }
 
     @Override
+    public HttpResponseResult<Object> courseStartRemind() {
+        return null;
+    }
+
+    @Override
     public ImUserInfo register(String userId, String clientType, String username, String avatar) {
         return null;
     }

+ 12 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MemberPriceSettingsController.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.enums.EVipType;
 import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
+import com.yonge.cooleshow.biz.dal.wrapper.ActivityPlayWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
@@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -52,7 +54,7 @@ public class MemberPriceSettingsController extends BaseController {
 	@GetMapping("/groupList")
 	@ApiOperation(value = "按分类分组")
 	@PreAuthorize("@pcs.hasPermissions('memberPriceSettings/groupList')")
-	public HttpResponseResult<Map<EVipType, List<MemberPriceSettingsVo>>> groupList() {
+	public HttpResponseResult<List<ActivityPlayWrapper.GroupListDto>> groupList() {
 		MemberPriceSettingsSearch query = new MemberPriceSettingsSearch();
 		query.setStatus(true);
 		query.setSearchType("VIP,SVIP,DISCOUNT");
@@ -61,7 +63,15 @@ public class MemberPriceSettingsController extends BaseController {
 		IPage<MemberPriceSettingsVo> pages = memberPriceSettingsService.selectPage(PageUtil.getPage(query), query);
 		List<MemberPriceSettingsVo> records = pages.getRecords();
 		if (CollectionUtils.isNotEmpty(records)) {
-			return succeed(records.stream().collect(Collectors.groupingBy(MemberPriceSettingsVo::getVipType)));
+			List<ActivityPlayWrapper.GroupListDto> groupListDto = new ArrayList<>();
+			Map<EVipType, List<MemberPriceSettingsVo>> collect = records.stream().collect(Collectors.groupingBy(MemberPriceSettingsVo::getVipType));
+			collect.forEach((k, v) -> {
+				ActivityPlayWrapper.GroupListDto dto = new ActivityPlayWrapper.GroupListDto();
+				dto.setType(k.getCode());
+				dto.setMemberList(v);
+				groupListDto.add(dto);
+			});
+			return succeed(groupListDto);
 		}
 		return succeed();
 	}

+ 20 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/CourseStartRemindTask.java

@@ -0,0 +1,20 @@
+package com.yonge.cooleshow.task.jobs;
+
+import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.task.core.BaseTask;
+import com.yonge.cooleshow.task.core.TaskException;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class CourseStartRemindTask extends BaseTask {
+
+    @Resource
+    private AdminFeignService adminFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        adminFeignService.courseStartRemind();
+    }
+}

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseSchedule.java

@@ -113,6 +113,6 @@ public class CourseSchedule implements Serializable {
 
     @ApiModelProperty("是否推送过开课消息")
     @TableField("push_start_msg_")
-    private Boolean pushStartMsg = false;
+    private Boolean pushStartMsg;
 }
 

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

@@ -102,6 +102,9 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
     @Autowired
     private TeacherService teacherService;
 
+    @Autowired
+    private VipCardRecordService vipCardRecordService;
+
     //保存/更新拓展字段
     private static final Map<ActivityTypeEnum, Consumer<ActivityPlanDto>> saveOrUpdateExpand = new HashMap<>();
     //开始活动(活动刚开始触发)
@@ -331,6 +334,10 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
             item.setActivityId(activityId);
             if(activityPlan.getActivityType() == ActivityTypeEnum.MEMBER){
                 item.setHideFlag(true);
+                VipCardRecord cardRecord = vipCardRecordService.getById(item.getVipCardId());
+                if(cardRecord != null){
+                    item.setUnit(UnitEnum.valueOf(cardRecord.getType().getCode()));
+                }
             }
         }
 

+ 4 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -2917,10 +2917,13 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void courseStartRemind() {
+        //距离开课时间小于等于20分钟
         List<CourseSchedule> courseSchedules = this.lambdaQuery()
                 .eq(CourseSchedule::getStatus, CourseScheduleEnum.NOT_START.getCode())
+                .in(CourseSchedule::getType, CourseScheduleEnum.PRACTICE.getCode(), CourseScheduleEnum.VIP.getCode())
                 .eq(CourseSchedule::getPushStartMsg, false)
-                .lt(CourseSchedule::getStartTime, DateUtil.offsetMinute(new Date(), 20))
+                .eq(CourseSchedule::getLock, 0)
+                .lt(CourseSchedule::getStartTime, DateUtil.offsetMinute(new Date(), 21))
                 .list();
         if (CollectionUtils.isEmpty(courseSchedules)) {
             return;

+ 32 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/ActivityPlayWrapper.java

@@ -0,0 +1,32 @@
+package com.yonge.cooleshow.biz.dal.wrapper;
+
+import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 曲谱表
+ * 2022-12-07 10:16:58
+ */
+@ApiModel(value = "MusicSheetWrapper对象", description = "曲谱表查询对象")
+public class ActivityPlayWrapper {
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class GroupListDto{
+        @ApiModelProperty("分类")
+        private String type;
+
+        @ApiModelProperty("会员列表")
+        private List<MemberPriceSettingsVo> memberList;
+	}
+
+}