Browse Source

添加字段

刘俊驰 1 year ago
parent
commit
edb041f86a

+ 16 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/StudentTime.java

@@ -25,6 +25,13 @@ public class StudentTime implements Serializable {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date firstVipTime;
+
+
+    @ApiModelProperty("第一次购买svip时间 ")
+    @TableField(value = "first_svip_time_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date firstSvipTime;
     @ApiModelProperty("第一次购买陪练课时间 ")
     @TableField(value = "first_practice_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -65,6 +72,15 @@ public class StudentTime implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date firstActivityTime;
 
+
+    public Date getFirstSvipTime() {
+        return firstSvipTime;
+    }
+
+    public void setFirstSvipTime(Date firstSvipTime) {
+        this.firstSvipTime = firstSvipTime;
+    }
+
     public Date getFirstActivityTime() {
         return firstActivityTime;
     }

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/EVipType.java

@@ -23,6 +23,7 @@ public enum EVipType implements BaseEnum<String, EVipType> {
 
     // 不是vip
     NOT_VIP("不是vip"),
+    ALL_VIP("所有VIP"),
 
     ;
     @EnumValue

+ 43 - 43
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java

@@ -169,49 +169,49 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
                     vo.setTenantImg(tenantInfo.getLogo());
                 }
                 //查询机构专辑曲目表
-                List<TenantAlbumMusic> tenantAlbumMusics = tenantAlbumMusicService.lambdaQuery()
-                        .eq(TenantAlbumMusic::getTenantAlbumId, i.getId())
-                        .eq(TenantAlbumMusic::getDelFlag, false)
-                        .list();
-
-                Map<SubjectTypeEnum, List<TenantAlbumMusic>> groupByType =
-                        tenantAlbumMusics.stream().collect(Collectors.groupingBy(TenantAlbumMusic::getSubjectType));
-
-                List<Long> musicSheetIdlist = tenantAlbumMusics.stream().map(next -> next.getMusicSheetId()).distinct().collect(Collectors.toList());
-
-                StudentMusicSheetSearch search = new StudentMusicSheetSearch();
-                search.setMusicSheetIdlist(musicSheetIdlist);
-                search.setPage(1);
-                search.setRows(9999);
-
-                IPage<MusicSheetVo> records = musicSheetService.selectStudentPage(PageUtil.getPage(search), search, ClientEnum.TENANT_STUDENT);
-
-                Map<Long, MusicSheetVo> idMsMap = records.getRecords().stream()
-                        .collect(Collectors.toMap(MusicSheet::getId, Function.identity()));
-
-                List<TenantAlbumWrapper.MusicSheetData> musicSheetData = vo.getMusicSheetData();
-
-                groupByType.forEach((key, value) -> {
-                    value.sort(Comparator.comparing(TenantAlbumMusic::getSortNumber));
-                    TenantAlbumWrapper.MusicSheetData sheetData = new TenantAlbumWrapper.MusicSheetData();
-                    sheetData.setSubjectType(key);
-                    List<TenantAlbumWrapper.TenantAlbumSheet> tenantAlbumSheets = value.stream().map(next -> {
-
-                        TenantAlbumWrapper.TenantAlbumSheet tenantAlbumSheet = new TenantAlbumWrapper.TenantAlbumSheet();
-                        BeanUtils.copyProperties(next, tenantAlbumSheet);
-                        Long musicSheetId = tenantAlbumSheet.getMusicSheetId();
-                        MusicSheetVo musicSheet = idMsMap.getOrDefault(musicSheetId, new MusicSheetVo());
-                        tenantAlbumSheet.setMusicSheetName(musicSheet.getMusicSheetName());
-                        tenantAlbumSheet.setMusicTag(musicSheet.getMusicTag());
-                        tenantAlbumSheet.setComposer(musicSheet.getComposer());
-                        return tenantAlbumSheet;
-                    }).collect(Collectors.toList());
-
-
-                    sheetData.setTenantAlbumSheetList(tenantAlbumSheets);
-                    musicSheetData.add(sheetData);
-                    vo.setMusicSheetData(musicSheetData);
-                });
+//                List<TenantAlbumMusic> tenantAlbumMusics = tenantAlbumMusicService.lambdaQuery()
+//                        .eq(TenantAlbumMusic::getTenantAlbumId, i.getId())
+//                        .eq(TenantAlbumMusic::getDelFlag, false)
+//                        .list();
+//
+//                Map<SubjectTypeEnum, List<TenantAlbumMusic>> groupByType =
+//                        tenantAlbumMusics.stream().collect(Collectors.groupingBy(TenantAlbumMusic::getSubjectType));
+//
+//                List<Long> musicSheetIdlist = tenantAlbumMusics.stream().map(next -> next.getMusicSheetId()).distinct().collect(Collectors.toList());
+
+//                StudentMusicSheetSearch search = new StudentMusicSheetSearch();
+//                search.setMusicSheetIdlist(musicSheetIdlist);
+//                search.setPage(1);
+//                search.setRows(9999);
+//
+//                IPage<MusicSheetVo> records = musicSheetService.selectStudentPage(PageUtil.getPage(search), search, ClientEnum.TENANT_STUDENT);
+//
+//                Map<Long, MusicSheetVo> idMsMap = records.getRecords().stream()
+//                        .collect(Collectors.toMap(MusicSheet::getId, Function.identity()));
+//
+//                List<TenantAlbumWrapper.MusicSheetData> musicSheetData = vo.getMusicSheetData();
+//
+//                groupByType.forEach((key, value) -> {
+//                    value.sort(Comparator.comparing(TenantAlbumMusic::getSortNumber));
+//                    TenantAlbumWrapper.MusicSheetData sheetData = new TenantAlbumWrapper.MusicSheetData();
+//                    sheetData.setSubjectType(key);
+//                    List<TenantAlbumWrapper.TenantAlbumSheet> tenantAlbumSheets = value.stream().map(next -> {
+//
+//                        TenantAlbumWrapper.TenantAlbumSheet tenantAlbumSheet = new TenantAlbumWrapper.TenantAlbumSheet();
+//                        BeanUtils.copyProperties(next, tenantAlbumSheet);
+//                        Long musicSheetId = tenantAlbumSheet.getMusicSheetId();
+//                        MusicSheetVo musicSheet = idMsMap.getOrDefault(musicSheetId, new MusicSheetVo());
+//                        tenantAlbumSheet.setMusicSheetName(musicSheet.getMusicSheetName());
+//                        tenantAlbumSheet.setMusicTag(musicSheet.getMusicTag());
+//                        tenantAlbumSheet.setComposer(musicSheet.getComposer());
+//                        return tenantAlbumSheet;
+//                    }).collect(Collectors.toList());
+//
+//
+//                    sheetData.setTenantAlbumSheetList(tenantAlbumSheets);
+//                    musicSheetData.add(sheetData);
+//                    vo.setMusicSheetData(musicSheetData);
+//                });
                 list.add(vo);
             });
         }

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

@@ -257,12 +257,32 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
      * @return
      */
     @Override
-    public VipCardRecordWrapper.UserVip UserVipInfo (Long userId, ClientEnum clientEnum) {
+    public VipCardRecordWrapper.UserVip UserVipInfo(Long userId, ClientEnum clientEnum) {
         // 获取生效中的会员记录
         VipCardRecordWrapper.UserVip userVip = new VipCardRecordWrapper.UserVip();
         List<VipCardRecord> vipCardRecords = this.getEfficientVipRecord(userId,clientEnum);
         if (CollectionUtils.isEmpty(vipCardRecords)) {
             userVip.setVipType(EVipType.NOT_VIP);
+            // 判断有没有过期的会员类型
+            Integer vipCount = this.lambdaQuery()
+                .eq(VipCardRecord::getUserId, userId)
+                .eq(VipCardRecord::getEfficientFlag, true)
+                .eq(VipCardRecord::getVipType, EVipType.VIP)
+                .eq(VipCardRecord::getClientType, clientEnum.name())
+                .count();
+            Integer svipCount = this.lambdaQuery()
+                .eq(VipCardRecord::getUserId, userId)
+                .eq(VipCardRecord::getEfficientFlag, true)
+                .eq(VipCardRecord::getVipType, EVipType.SVIP)
+                .eq(VipCardRecord::getClientType, clientEnum.name())
+                .count();
+            if (vipCount>0&&svipCount>0) {
+                userVip.setExpireVipType(EVipType.ALL_VIP);
+            } else if (vipCount>0) {
+                userVip.setExpireVipType(EVipType.VIP);
+            } else if (svipCount>0) {
+                userVip.setExpireVipType(EVipType.SVIP);
+            }
         } else {
             // 存在没有结束时间的SVIP记录 永久SVIP
             List<VipCardRecord> svipList = vipCardRecords.stream().filter(o -> o.getVipType() == EVipType.SVIP).collect(Collectors.toList());
@@ -275,6 +295,16 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
                 } else {
                     Optional<VipCardRecord> max = svipList.stream().max(Comparator.comparing(VipCardRecord::getEndTime));
                     max.ifPresent(vipCardRecord -> userVip.setSvipEndDate(vipCardRecord.getEndTime()));
+                }
+            } else {
+                Integer svipCount = this.lambdaQuery()
+                    .eq(VipCardRecord::getUserId, userId)
+                    .eq(VipCardRecord::getEfficientFlag, true)
+                    .eq(VipCardRecord::getVipType, EVipType.SVIP)
+                    .eq(VipCardRecord::getClientType, clientEnum.name())
+                    .count();
+                if (svipCount>0) {
+                    userVip.setExpireVipType(EVipType.SVIP);
 
                 }
             }
@@ -286,6 +316,16 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
                 }
                 Optional<VipCardRecord> max = vipList.stream().max(Comparator.comparing(VipCardRecord::getEndTime));
                 max.ifPresent(vipCardRecord -> userVip.setVipEndDate(vipCardRecord.getEndTime()));
+            } else {
+                Integer vipCount = this.lambdaQuery()
+                    .eq(VipCardRecord::getUserId, userId)
+                    .eq(VipCardRecord::getEfficientFlag, true)
+                    .eq(VipCardRecord::getVipType, EVipType.VIP)
+                    .eq(VipCardRecord::getClientType, clientEnum.name())
+                    .count();
+                if (vipCount>0) {
+                    userVip.setExpireVipType(EVipType.VIP);
+                }
             }
         }
 

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/VipCardRecordWrapper.java

@@ -15,6 +15,11 @@ public class VipCardRecordWrapper {
         @ApiModelProperty(value = "vip类型 VIP:会员 SVIP:SVIP,PERMANENT_SVIP:永久SVIP,NOT_VIP:不是vip")
         private EVipType vipType;
 
+
+        @ApiModelProperty(value = "vip类型 VIP:会员 SVIP:SVIP,ALL_VIP:全vip")
+        private EVipType expireVipType;
+
+
         @ApiModelProperty(value = "vip结束时间")
         private Date vipEndDate;
 

+ 2 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentTimeMapper.xml

@@ -4,6 +4,7 @@
     <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.StudentTime">
         <result column="user_id_" property="userId" />
         <result column="first_vip_time_" property="firstVipTime" />
+        <result column="first_svip_time_" property="firstSvipTime" />
         <result column="first_practice_time_" property="firstPracticeTime" />
         <result column="first_video_time_" property="firstVideoTime" />
         <result column="first_live_time_" property="firstLiveTime" />
@@ -17,6 +18,7 @@
     <sql id="baseColumns">
          t.user_id_ as userId
         , t.first_vip_time_ as firstVipTime
+        , t.first_svip_time_ as firstSvipTime
         , t.first_practice_time_ as firstPracticeTime
         , t.first_video_time_ as firstVideoTime
         , t.first_live_time_ as firstLiveTime