刘俊驰 1 anno fa
parent
commit
0c3bfcc97a

+ 49 - 4
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/TenantGroupAlbumController.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.student.controller;
 
+import com.beust.jcommander.internal.Lists;
 import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
@@ -7,9 +8,11 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.service.TenantGroupAlbumService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantGroupAlbumWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
@@ -18,7 +21,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Validated
@@ -35,26 +42,64 @@ public class TenantGroupAlbumController {
 
 	@ApiOperation(value = "学生可购买机构专辑信息")
 	@GetMapping("/buyAlbumInfo")
-	public HttpResponseResult<List<TenantGroupAlbumWrapper.BuyTenantAlbum>> buyAlbumInfo(@RequestParam(required = false) Long tenantGroupAlbumId) {
+	public HttpResponseResult<List<TenantGroupAlbumWrapper.BuyTenantAlbum>> buyAlbumInfo(@RequestParam(required = false) Long tenantGroupAlbumId
+        ,@RequestParam(required = false) Long tenantAlbumId) {
 
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || null == user.getId()) {
             return HttpResponseResult.failed(HttpStatus.FORBIDDEN, "请登录");
         }
+        TenantGroupAlbumWrapper.BuyTenantAlbumQuery query = new TenantGroupAlbumWrapper.BuyTenantAlbumQuery();
+        query.setTenantGroupAlbumId(tenantGroupAlbumId);
+        query.setUserId(user.getId());
+        query.setClientType(ClientEnum.STUDENT);
+        if (tenantAlbumId != null) {
+            query.setTenantAlbumIds(Lists.newArrayList(tenantAlbumId));
+        }
     
-		return HttpResponseResult.succeed(tenantGroupAlbumService.buyAlbumInfo(tenantGroupAlbumId,user.getId(), ClientEnum.STUDENT));
+		return HttpResponseResult.succeed(tenantGroupAlbumService.buyAlbumInfo(query));
 	}
 
 
+    @ApiOperation(value = "学生小组专辑信息")
+    @GetMapping("/albumList")
+    public HttpResponseResult<Collection<TenantGroupAlbumWrapper.BuyTenantAlbum>> albumList() {
+
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return HttpResponseResult.failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        TenantGroupAlbumWrapper.BuyTenantAlbumQuery query = new TenantGroupAlbumWrapper.BuyTenantAlbumQuery();
+        query.setUserId(user.getId());
+        query.setClientType(ClientEnum.STUDENT);
+        List<TenantGroupAlbumWrapper.BuyTenantAlbum> buyTenantAlbums = tenantGroupAlbumService.buyAlbumInfo(query);
+        // 同ID去重
+        if (CollectionUtils.isEmpty(buyTenantAlbums)) {
+            return HttpResponseResult.succeed(new ArrayList<>());
+        }
+        Collection<TenantGroupAlbumWrapper.BuyTenantAlbum> result = buyTenantAlbums.stream().collect(Collectors
+            .toMap(TenantGroupAlbumWrapper.BuyTenantAlbum::getId, o -> o, (o1, o2) -> o1)).values();
+
+        return HttpResponseResult.succeed(result);
+    }
+
     @ApiOperation(value = "学生可购买机构专辑信息")
     @GetMapping("/buyAlbumInfoDetail")
-    public HttpResponseResult<TenantGroupAlbumWrapper.BuyTenantAlbum> buyAlbumInfoDetail(@RequestParam Long tenantGroupAlbumId) {
+    public HttpResponseResult<TenantGroupAlbumWrapper.BuyTenantAlbum> buyAlbumInfoDetail(@RequestParam Long tenantAlbumId) {
 
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || null == user.getId()) {
             return HttpResponseResult.failed(HttpStatus.FORBIDDEN, "请登录");
         }
 
-        return HttpResponseResult.succeed(tenantGroupAlbumService.buyAlbumInfoDetail(tenantGroupAlbumId,user.getId(), ClientEnum.STUDENT));
+        TenantGroupAlbumWrapper.BuyTenantAlbumQuery query = new TenantGroupAlbumWrapper.BuyTenantAlbumQuery();
+        query.setTenantAlbumIds(Lists.newArrayList(tenantAlbumId));
+        query.setUserId(user.getId());
+        query.setClientType(ClientEnum.STUDENT);
+        List<TenantGroupAlbumWrapper.BuyTenantAlbum> boughtAlbumInfo = tenantGroupAlbumService.buyAlbumInfo(query);
+        if (CollectionUtils.isNotEmpty(boughtAlbumInfo)) {
+            return HttpResponseResult.succeed(boughtAlbumInfo.get(0));
+        }
+        throw new BizException("未找到专辑信息");
     }
 }

+ 6 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TenantGroupAlbumController.java

@@ -40,7 +40,11 @@ public class TenantGroupAlbumController {
         if (user == null || null == user.getId()) {
             return HttpResponseResult.failed(HttpStatus.FORBIDDEN, "请登录");
         }
-    
-		return HttpResponseResult.succeed(tenantGroupAlbumService.buyAlbumInfo(tenantGroupAlbumId,user.getId(), ClientEnum.TEACHER));
+
+        TenantGroupAlbumWrapper.BuyTenantAlbumQuery query = new TenantGroupAlbumWrapper.BuyTenantAlbumQuery();
+        query.setTenantGroupAlbumId(tenantGroupAlbumId);
+        query.setUserId(user.getId());
+        query.setClientType(ClientEnum.TEACHER);
+		return HttpResponseResult.succeed(tenantGroupAlbumService.buyAlbumInfo(query));
 	}
 }

+ 6 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantGroupAlbumController.java

@@ -40,7 +40,12 @@ public class TenantGroupAlbumController {
         if (user == null || null == user.getId()) {
             return HttpResponseResult.failed(HttpStatus.FORBIDDEN, "请登录");
         }
+
+        TenantGroupAlbumWrapper.BuyTenantAlbumQuery query = new TenantGroupAlbumWrapper.BuyTenantAlbumQuery();
+        query.setTenantGroupAlbumId(tenantGroupAlbumId);
+        query.setUserId(user.getId());
+        query.setClientType(ClientEnum.TENANT);
     
-		return HttpResponseResult.succeed(tenantGroupAlbumService.buyAlbumInfo(tenantGroupAlbumId, user.getId(), ClientEnum.TENANT));
+		return HttpResponseResult.succeed(tenantGroupAlbumService.buyAlbumInfo(query));
 	}
 }

+ 1 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantGroupAlbumService.java

@@ -46,13 +46,9 @@ public interface TenantGroupAlbumService extends IService<TenantGroupAlbum>  {
     /**
      * 可购买机构信息
      *
-     * @param tenantGroupAlbumId
-     * @param userId             用户ID
-     * @param clientType         客户端类型
      */
-    List<TenantGroupAlbumWrapper.BuyTenantAlbum> buyAlbumInfo(Long tenantGroupAlbumId, Long userId, ClientEnum clientType);
+    List<TenantGroupAlbumWrapper.BuyTenantAlbum> buyAlbumInfo(TenantGroupAlbumWrapper.BuyTenantAlbumQuery query);
 
     void updateStatus(TenantGroupAlbumWrapper.UpdateStatus updateStatus);
 
-    TenantGroupAlbumWrapper.BuyTenantAlbum buyAlbumInfoDetail(Long tenantAlbumId, Long userId, ClientEnum clientType);
 }

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

@@ -106,28 +106,24 @@ public class TenantGroupAlbumServiceImpl extends ServiceImpl<TenantGroupAlbumMap
     }
 
     @Override
-    public List<TenantGroupAlbumWrapper.BuyTenantAlbum> buyAlbumInfo(Long tenantGroupAlbumId, Long userId, ClientEnum clientType) {
+    public List<TenantGroupAlbumWrapper.BuyTenantAlbum> buyAlbumInfo(TenantGroupAlbumWrapper.BuyTenantAlbumQuery query) {
         // 学生端 查看小组专辑 获取专辑基本信息, 机构端查看机构专辑 获取专辑基本信息
 
-        TenantGroupAlbumWrapper.BuyTenantAlbumQuery query = new TenantGroupAlbumWrapper.BuyTenantAlbumQuery();
-        query.setUserId(userId);
-        query.setClientType(clientType);
-        query.setTenantGroupAlbumId(tenantGroupAlbumId);
-        if (tenantGroupAlbumId != null) {} else if (clientType == ClientEnum.STUDENT) {
-            Student student = studentService.getById(userId);
+        if (query.getTenantGroupAlbumId() != null) {} else if (query.getClientType() == ClientEnum.STUDENT) {
+            Student student = studentService.getById(query.getUserId());
             if (student.getTenantId() == null || student.getTenantId() <=0 || student.getTenantGroupId() == null) {
                 throw new BizException("学生未加入机构或者小组");
             }
             query.setTenantId(student.getTenantId());
             query.setTenantGroupId(student.getTenantGroupId());
-        } else if (clientType == ClientEnum.TENANT) {
-            TenantStaff tenantStaff = tenantStaffService.getByUserId(userId);
+        } else if (query.getClientType() == ClientEnum.TENANT) {
+            TenantStaff tenantStaff = tenantStaffService.getByUserId(query.getUserId());
             if(tenantStaff == null || tenantStaff.getTenantId() == null) {
                 throw new BizException("机构员工不存在");
             }
             query.setTenantId(tenantStaff.getTenantId());
-        }else if (clientType == ClientEnum.TEACHER) {
-            Teacher teacher = teacherService.getById(userId);
+        }else if (query.getClientType() == ClientEnum.TEACHER) {
+            Teacher teacher = teacherService.getById(query.getUserId());
             if(teacher == null || teacher.getTenantId() == null) {
                 throw new BizException("老师机构信息不存在");
             }
@@ -236,40 +232,4 @@ public class TenantGroupAlbumServiceImpl extends ServiceImpl<TenantGroupAlbumMap
                 .update();
     }
 
-    @Override
-    public TenantGroupAlbumWrapper.BuyTenantAlbum buyAlbumInfoDetail(Long tenantAlbumId, Long userId, ClientEnum clientType) {
-        TenantGroupAlbumWrapper.BuyTenantAlbumQuery query = new TenantGroupAlbumWrapper.BuyTenantAlbumQuery();
-        query.setUserId(userId);
-        query.setTenantGroupAlbumId(tenantAlbumId);
-        query.setClientType(clientType);
-
-        if (clientType == ClientEnum.STUDENT) {
-            Student student = studentService.getById(userId);
-            if (student.getTenantId() == null || student.getTenantId() <=0 || student.getTenantGroupId() == null) {
-                throw new BizException("学生未加入机构或者小组");
-            }
-            query.setTenantId(student.getTenantId());
-            query.setTenantGroupId(student.getTenantGroupId());
-        } else if (clientType == ClientEnum.TENANT) {
-            TenantStaff tenantStaff = tenantStaffService.getByUserId(userId);
-            if(tenantStaff == null || tenantStaff.getTenantId() == null) {
-                throw new BizException("机构员工不存在");
-            }
-            query.setTenantId(tenantStaff.getTenantId());
-        }else if (clientType == ClientEnum.TEACHER) {
-            Teacher teacher = teacherService.getById(userId);
-            if(teacher == null || teacher.getTenantId() == null) {
-                throw new BizException("老师机构信息不存在");
-            }
-            query.setTenantId(teacher.getTenantId());
-        } else {
-            throw new BizException("客户端类型错误");
-        }
-
-        List<TenantGroupAlbumWrapper.BuyTenantAlbum> buyTenantAlbums = tenantAlbumsList(query);
-        if (CollectionUtils.isEmpty(buyTenantAlbums)) {
-            return null;
-        }
-        return buyTenantAlbums.get(0);
-    }
 }