浏览代码

问题修改

yuanliang 1 年之前
父节点
当前提交
b81916c3b5

+ 21 - 16
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -24,6 +24,7 @@ import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumRefMapper;
+import com.yonge.cooleshow.biz.dal.mapper.TenantGroupAlbumMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantGroupMapper;
 import com.yonge.cooleshow.biz.dal.mapper.UserTenantBindRecordMapper;
 import com.yonge.cooleshow.biz.dal.service.*;
@@ -128,6 +129,9 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 
     @Autowired
     private UserTenantBindRecordMapper userTenantBindRecordMapper;
+
+    @Autowired
+    private TenantGroupAlbumMapper tenantGroupAlbumMapper;
     @Override
     public StudentVo detail(Long userId) {
         return baseMapper.detail(userId);
@@ -191,13 +195,15 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 
         // 判断是否是机构学生 机构学生 检测机构专辑购买记录
         TenantInfo tenantInfo = tenantInfoService.detail(detail.getTenantId());
-        if (tenantInfo != null) {
+        Long tenantGroupId = detail.getTenantGroupId();
+        if (tenantInfo != null && tenantGroupId != null && tenantGroupId != -1L) {
             studentHomeVo.setTenantName(tenantInfo.getName());
-            QueryWrapper<TenantAlbumRef> queryWrapper = new QueryWrapper<>();
-            queryWrapper.lambda().eq(TenantAlbumRef::getTenantId, detail.getTenantId());
-            List<TenantAlbumRef> albumRefs = tenantAlbumRefMapper.selectList(queryWrapper);
-            if (!albumRefs.isEmpty()) {
-                List<Long> albIds = albumRefs.stream().map(TenantAlbumRef::getTenantAlbumId).distinct().collect(Collectors.toList());
+            QueryWrapper<TenantGroupAlbum> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(TenantGroupAlbum::getTenantGroupId, tenantGroupId);
+            List<TenantGroupAlbum> tenantGroupAlbums = tenantGroupAlbumMapper.selectList(queryWrapper);
+            List<Long> albIds = new ArrayList<>();
+            if (!tenantGroupAlbums.isEmpty()) {
+                albIds.addAll(tenantGroupAlbums.stream().map(TenantGroupAlbum::getTenantAlbumId).distinct().collect(Collectors.toList()));
                 QueryWrapper<TenantAlbum> query = new QueryWrapper<>();
                 query.lambda().in(TenantAlbum::getId, albIds)
                         .eq(TenantAlbum::getStatus,true);
@@ -206,23 +212,22 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                     studentHomeVo.setTenantAlbumStatus(1);
                 }
             }
-            UserTenantAlbumRecord record = userTenantAlbumRecordService.lambdaQuery()
+            List<UserTenantAlbumRecord> record = userTenantAlbumRecordService.lambdaQuery()
                     .eq(UserTenantAlbumRecord::getUserId, detail.getUserId())
                     .eq(UserTenantAlbumRecord::getClientType, ClientEnum.STUDENT)
                     .gt(UserTenantAlbumRecord::getEndTime,new Date())
                     .orderByAsc(UserTenantAlbumRecord::getEndTime)
-                    .last("limit 1").one();
-            if (record == null || record.getEndTime().getTime() < System.currentTimeMillis()) {
+                    .list();
+            if (record.isEmpty()) {
                 studentHomeVo.setTenantAlbumFlag(YesOrNoEnum.NO);
-                if (record != null) {
-                    studentHomeVo.setTenantAlbumStartTime(record.getStartTime());
-                    studentHomeVo.setTenantAlbumEndTime(record.getEndTime());
-                }
             } else {
-                studentHomeVo.setTenantAlbumStatus(2);
+                long count = record.stream().filter(next -> albIds.contains(next.getTenantAlbumId())).count();
+                if (count > 0) {
+                    studentHomeVo.setTenantAlbumStatus(2);
+                }
                 studentHomeVo.setTenantAlbumFlag(YesOrNoEnum.YES);
-                studentHomeVo.setTenantAlbumStartTime(record.getStartTime());
-                studentHomeVo.setTenantAlbumEndTime(record.getEndTime());
+                studentHomeVo.setTenantAlbumStartTime(record.get(0).getStartTime());
+                studentHomeVo.setTenantAlbumEndTime(record.get(0).getEndTime());
             }
 
         }