Bladeren bron

添加机构小组相关接口

yuanliang 1 jaar geleden
bovenliggende
commit
64c9ca538d
14 gewijzigde bestanden met toevoegingen van 241 en 158 verwijderingen
  1. 0 17
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java
  2. 74 38
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantGroupAlbumController.java
  3. 6 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/io/request/TenantAlbumVo.java
  4. 0 16
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java
  5. 10 10
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/TenantAlbumVo.java
  6. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TenantGroupAlbum.java
  7. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/mapper/TenantGroupAlbumMapper.java
  8. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantGroupAlbumService.java
  9. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantGroupAlbumServiceImpl.java
  10. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantGroupServiceImpl.java
  11. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumWrapper.java
  12. 98 71
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantGroupAlbumWrapper.java
  13. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantGroupWrapper.java
  14. 17 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantGroupAlbumMapper.xml

+ 0 - 17
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java

@@ -180,7 +180,6 @@ public class TenantAlbumController {
                 }
 
             });
-            tenantAlbumSheets =tenantAlbumSheets.stream().filter(o -> o.getMusicSheetName() != null).collect(Collectors.toList());
 
 
             sheetData.setTenantAlbumSheetList(tenantAlbumSheets);
@@ -199,13 +198,6 @@ public class TenantAlbumController {
     @ApiOperation(value = "新增专辑", notes = "新增专辑")
     @PreAuthorize("@pcs.hasPermissions('tenantAlbum/save')")
     public HttpResponseResult<Boolean> save(@Validated @RequestBody TenantAlbumVo.TenantAlbum album) {
-        //判断当前机构是否已经绑定机构专辑
-        List<TenantAlbumRef> list = tenantAlbumRefService.lambdaQuery()
-                .eq(TenantAlbumRef::getTenantId, album.getTenantId())
-                .list();
-        if (CollectionUtils.isNotEmpty(list)) {
-            throw new BizException("当前机构已有专辑");
-        }
 
         // 检查曲目重复
         if (CollectionUtils.isNotEmpty(album.getMusicSheetData())) {
@@ -244,15 +236,6 @@ public class TenantAlbumController {
     @PreAuthorize("@pcs.hasPermissions('tenantAlbum/update')")
     public HttpResponseResult<Boolean> update( @RequestBody TenantAlbumVo.TenantAlbum album) {
 
-        //判断当前机构是否已经绑定机构专辑
-        List<TenantAlbumRef> list = tenantAlbumRefService.lambdaQuery()
-                .eq(TenantAlbumRef::getTenantId, album.getTenantId())
-                .ne(TenantAlbumRef::getTenantAlbumId, album.getId())
-                .list();
-        if (CollectionUtils.isNotEmpty(list)) {
-            throw new BizException("当前机构已有专辑");
-        }
-
         // 检查曲目重复
         if (CollectionUtils.isNotEmpty(album.getMusicSheetData())) {
             List<Long> musicIds = album.getMusicSheetData().stream().flatMap(o -> o.getMusicSheetList()

+ 74 - 38
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantGroupAlbumController.java

@@ -1,11 +1,15 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.microsvc.toolkit.common.response.template.R;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.TenantGroupAlbum;
+import com.yonge.cooleshow.biz.dal.enums.PeriodEnum;
 import com.yonge.cooleshow.biz.dal.service.TenantGroupAlbumService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantGroupAlbumWrapper;
 import io.swagger.annotations.Api;
@@ -16,6 +20,11 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
 @Slf4j
 @Validated
 @RestController
@@ -26,53 +35,80 @@ public class TenantGroupAlbumController {
     @Autowired
     private TenantGroupAlbumService tenantGroupAlbumService;
 
-	@ApiOperation(value = "详情", notes = "机构小组专辑配置表-根据详情ID查询单条, 传入id")
-    @PreAuthorize("@auditsvc.hasPermissions('tenantGroupAlbum/detail', {'BACKEND'})")
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "详情", notes = "机构小组专辑配置表-根据详情ID查询单条, 传入id")
+    @PreAuthorize("@pcs.hasPermissions('tenantGroupAlbum/detail', {'BACKEND'})")
     //@GetMapping("/detail/{id}")
     public R<TenantGroupAlbum> detail(@PathVariable("id") Long id) {
-    
-    	TenantGroupAlbum wrapper = tenantGroupAlbumService.detail(id);
-        
+
+        TenantGroupAlbum wrapper = tenantGroupAlbumService.detail(id);
+
         return R.from(wrapper);
-	}
-    
-    @ApiOperation(value = "查询分页", notes = "机构小组专辑配置表- 传入 TenantGroupAlbumWrapper.TenantGroupAlbumQuery") 
-    @PreAuthorize("@auditsvc.hasPermissions('tenantGroupAlbum/page', {'BACKEND'})") 
+    }
+
+    @ApiOperation(value = "查询分页", notes = "机构小组专辑配置表- 传入 TenantGroupAlbumWrapper.TenantGroupAlbumQuery")
+    @PreAuthorize("@pcs.hasPermissions('tenantGroupAlbum/page', {'BACKEND'})")
     @PostMapping("/page")
-    public R<PageInfo<TenantGroupAlbum>> page(@RequestBody TenantGroupAlbumWrapper.TenantGroupAlbumQuery query) {
-        
-        IPage<TenantGroupAlbum> pages = tenantGroupAlbumService.selectPage(QueryInfo.getPage(query), query);
-        
+    public R<PageInfo<TenantGroupAlbumWrapper.TenantGroupAlbumVo>> page(@RequestBody TenantGroupAlbumWrapper.TenantGroupAlbumQuery query) {
+
+        IPage<TenantGroupAlbumWrapper.TenantGroupAlbumVo> pages = tenantGroupAlbumService.selectPage(QueryInfo.getPage(query), query);
+
         return R.from(QueryInfo.pageInfo(pages));
-	}
-    
+    }
+
     @ApiOperation(value = "新增", notes = "机构小组专辑配置表- 传入 TenantGroupAlbumWrapper.TenantGroupAlbum")
-    @PreAuthorize("@auditsvc.hasPermissions('tenantGroupAlbum/save', {'BACKEND'})")
-	//@PostMapping("/save")
-	public R<JSONObject> add(@Validated @RequestBody TenantGroupAlbum tenantGroupAlbum) {
-        
+    @PreAuthorize("@pcs.hasPermissions('tenantGroupAlbum/save', {'BACKEND'})")
+    @PostMapping("/save")
+    public R<JSONObject> add(@Validated @RequestBody TenantGroupAlbumWrapper.TenantGroupAlbum tenantGroupAlbum) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
         // 新增数据
-        tenantGroupAlbumService.save(tenantGroupAlbum);
-        
+        TenantGroupAlbum record = JSON.parseObject(JSON.toJSONString(tenantGroupAlbum), TenantGroupAlbum.class);
+        record.setPurchasePeriod(PeriodEnum.DAY.getCode());
+        record.setCreateBy(sysUser.getId());
+        record.setUpdateBy(sysUser.getId());
+        record.setStatus(false);
+        record.setDelFlag(false);
+        tenantGroupAlbumService.save(record);
+
         return R.defaultR();
-	}
-    
+    }
+
     @ApiOperation(value = "修改", notes = "机构小组专辑配置表- 传入 TenantGroupAlbumWrapper.TenantGroupAlbum")
-    @PreAuthorize("@auditsvc.hasPermissions('tenantGroupAlbum/update', {'BACKEND'})")
-	//@PostMapping("/update")
-	public R<JSONObject> update(@Validated @RequestBody TenantGroupAlbum tenantGroupAlbum) {
-        
+    @PreAuthorize("@pcs.hasPermissions('tenantGroupAlbum/update', {'BACKEND'})")
+    @PostMapping("/update")
+    public R<JSONObject> update(@Validated @RequestBody TenantGroupAlbumWrapper.TenantGroupAlbum tenantGroupAlbum) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+
+        TenantGroupAlbum record = JSON.parseObject(JSON.toJSONString(tenantGroupAlbum), TenantGroupAlbum.class);
+        record.setUpdateBy(sysUser.getId());
         // 更新数据
-        tenantGroupAlbumService.updateById(tenantGroupAlbum);
-        
+        tenantGroupAlbumService.updateById(record);
+
         return R.defaultR();
-	}
-
-	@ApiOperation(value = "删除", notes = "机构小组专辑配置表- 传入id")
-    @PreAuthorize("@auditsvc.hasPermissions('tenantGroupAlbum/remove', {'BACKEND'})")
-	//@PostMapping("/remove")    
-	public R<Boolean> remove(@RequestParam Long id) {
-    
-		return R.from(tenantGroupAlbumService.removeById(id));
-	}
+    }
+
+    @ApiOperation(value = "删除", notes = "机构小组专辑配置表- 传入id")
+    @PreAuthorize("@pcs.hasPermissions('tenantGroupAlbum/remove', {'BACKEND'})")
+    @PostMapping("/remove")
+    public R<Boolean> remove(@Validated @RequestBody TenantGroupAlbumWrapper.Remove remove) {
+        tenantGroupAlbumService.lambdaUpdate()
+                .set(TenantGroupAlbum::getDelFlag, true)
+                .eq(TenantGroupAlbum::getId, remove.getId())
+                .update();
+        return R.from(true);
+    }
+
+    @ApiOperation(value = "删除", notes = "机构小组专辑配置表- 传入id")
+    @PreAuthorize("@pcs.hasPermissions('tenantGroupAlbum/remove', {'BACKEND'})")
+    @PostMapping("/updateStatus")
+    public R<Boolean> remove(@RequestBody TenantGroupAlbumWrapper.UpdateStatus updateStatus) {
+        List<Long> ids = Arrays.stream(updateStatus.getIds().split(",")).map(Long::valueOf).collect(Collectors.toList());
+        tenantGroupAlbumService.lambdaUpdate()
+                .set(TenantGroupAlbum::getStatus, updateStatus.getStatus())
+                .in(TenantGroupAlbum::getId, ids)
+                .update();
+        return R.from(true);
+    }
 }

+ 6 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/io/request/TenantAlbumVo.java

@@ -69,6 +69,12 @@ public class TenantAlbumVo {
         @ApiModelProperty("专辑分类等级ID")
         private Long categoryLevelId;
 
+        @ApiModelProperty("采购周期类型")
+        private String purchaseTypes;
+
+        @ApiModelProperty("专辑采购金额")
+        private String purchaseJson;
+
         public String jsonString() {
             return JSON.toJSONString(this);
         }

+ 0 - 16
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java

@@ -185,13 +185,6 @@ public class TenantAlbumController {
     @ApiOperation(value = "新增专辑", notes = "新增专辑")
     @PreAuthorize("@pcs.hasPermissions('tenantAlbum/save')")
     public HttpResponseResult<Boolean> save(@Validated @RequestBody TenantAlbumVo.TenantAlbum album) {
-        //判断当前机构是否已经绑定机构专辑
-        List<TenantAlbumRef> list = tenantAlbumRefService.lambdaQuery()
-                .eq(TenantAlbumRef::getTenantId, album.getTenantId())
-                .list();
-        if (CollectionUtils.isNotEmpty(list)) {
-            throw new BizException("当前机构已有专辑");
-        }
 
         // 检查曲目重复
         if (CollectionUtils.isNotEmpty(album.getMusicSheetData())) {
@@ -230,15 +223,6 @@ public class TenantAlbumController {
     @PreAuthorize("@pcs.hasPermissions('tenantAlbum/update')")
     public HttpResponseResult<Boolean> update( @RequestBody TenantAlbumVo.TenantAlbum album) {
 
-        //判断当前机构是否已经绑定机构专辑
-        List<TenantAlbumRef> list = tenantAlbumRefService.lambdaQuery()
-                .eq(TenantAlbumRef::getTenantId, album.getTenantId())
-                .ne(TenantAlbumRef::getTenantAlbumId, album.getId())
-                .list();
-        if (CollectionUtils.isNotEmpty(list)) {
-            throw new BizException("当前机构已有专辑");
-        }
-
         // 检查曲目重复
         if (CollectionUtils.isNotEmpty(album.getMusicSheetData())) {
             List<Long> musicIds = album.getMusicSheetData().stream().flatMap(o -> o.getMusicSheetList()

+ 10 - 10
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/TenantAlbumVo.java

@@ -1,25 +1,19 @@
 package com.yonge.cooleshow.admin.io.request;
 
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.microsvc.toolkit.common.response.paging.QueryInfo;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
-import com.yonge.cooleshow.biz.dal.entity.TenantAlbumMusic;
 import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.math.BigDecimal;
-import java.util.List;
-
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 机构专辑
@@ -75,6 +69,12 @@ public class TenantAlbumVo {
         @ApiModelProperty("曲目相关信息")
         private List<MusicSheetData> musicSheetData = new ArrayList<>();
 
+        @ApiModelProperty("采购周期类型")
+        private String purchaseTypes;
+
+        @ApiModelProperty("专辑采购金额")
+        private String purchaseJson;
+
         public String jsonString() {
             return JSON.toJSONString(this);
         }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TenantGroupAlbum.java

@@ -23,8 +23,8 @@ import java.math.BigDecimal;
 @TableName("tenant_group_album")
 public class TenantGroupAlbum implements Serializable {
 
-    @ApiModelProperty("主键ID") 
-    @TableId(value = "id_",type = IdType.AUTO)
+    @ApiModelProperty("主键ID")
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
 
     @ApiModelProperty("机构小组ID") 

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/mapper/TenantGroupAlbumMapper.java

@@ -22,7 +22,7 @@ public interface TenantGroupAlbumMapper extends BaseMapper<TenantGroupAlbum> {
 	 * @param param TenantGroupAlbumWrapper.TenantGroupAlbumQuery
 	 * @return List<TenantGroupAlbumWrapper.TenantGroupAlbum>
 	 */
-	List<TenantGroupAlbum> selectPage(@Param("page") IPage<TenantGroupAlbum> page, @Param("param") TenantGroupAlbumWrapper.TenantGroupAlbumQuery param);
+	List<TenantGroupAlbumWrapper.TenantGroupAlbumVo> selectPage(@Param("page") IPage<TenantGroupAlbumWrapper.TenantGroupAlbumVo> page, @Param("param") TenantGroupAlbumWrapper.TenantGroupAlbumQuery param);
 
 
     List<TenantGroupAlbumWrapper.BuyTenantAlbum> getBuyAlbumInfo(@Param("param") TenantGroupAlbumWrapper.BuyTenantAlbumQuery query);

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

@@ -28,7 +28,7 @@ public interface TenantGroupAlbumService extends IService<TenantGroupAlbum>  {
      * @param query TenantGroupAlbumWrapper.TenantGroupAlbumQuery
      * @return IPage<TenantGroupAlbum>
      */
-    IPage<TenantGroupAlbum> selectPage(IPage<TenantGroupAlbum> page, TenantGroupAlbumWrapper.TenantGroupAlbumQuery query);
+    IPage<TenantGroupAlbumWrapper.TenantGroupAlbumVo> selectPage(IPage<TenantGroupAlbumWrapper.TenantGroupAlbumVo> page, TenantGroupAlbumWrapper.TenantGroupAlbumQuery query);
 	
     /**
      * 添加

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

@@ -59,7 +59,7 @@ public class TenantGroupAlbumServiceImpl extends ServiceImpl<TenantGroupAlbumMap
      * @return IPage<TenantGroupAlbum>
      */
     @Override
-    public IPage<TenantGroupAlbum> selectPage(IPage<TenantGroupAlbum> page, TenantGroupAlbumWrapper.TenantGroupAlbumQuery query) {
+    public IPage<TenantGroupAlbumWrapper.TenantGroupAlbumVo> selectPage(IPage<TenantGroupAlbumWrapper.TenantGroupAlbumVo> page, TenantGroupAlbumWrapper.TenantGroupAlbumQuery query) {
         
         return page.setRecords(baseMapper.selectPage(page, query));
     }

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

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -18,9 +19,12 @@ import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.entity.TenantGroup;
+import com.yonge.cooleshow.biz.dal.entity.TenantGroupAlbum;
+import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
+import com.yonge.cooleshow.biz.dal.mapper.TenantGroupAlbumMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantGroupMapper;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
@@ -64,6 +68,8 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
     private ImGroupMemberService imGroupMemberService;
     @Autowired
     private SysUserService sysUserService;
+    @Autowired
+    private TenantGroupAlbumMapper tenantGroupAlbumMapper;
 
     /**
      * 查询详情
@@ -112,12 +118,24 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
             List<Long> adminIdList = records.stream().map(TenantGroupWrapper.TenantGroup::getAdminId).distinct().collect(Collectors.toList());
             Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> mapByIds = sysUserService.getMapByIds(adminIdList);
 
+            List<Long> ids = records.stream().map(TenantGroupWrapper.TenantGroup::getId).collect(Collectors.toList());
+            QueryWrapper<TenantGroupAlbum> queryWrapper = new QueryWrapper<>();
+            queryWrapper.select("count(*) as count,tenant_group_id_ as tenantGroupId");
+            queryWrapper.lambda().in(TenantGroupAlbum::getTenantGroupId, ids);
+            queryWrapper.groupBy("tenant_group_id_");
+            List<Map<String, Object>> maps = tenantGroupAlbumMapper.selectMaps(queryWrapper);
+            Map<Long, Integer> countByGroupId = new HashMap<>();
+            maps.forEach(next -> {
+                JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(next));
+                countByGroupId.put(jsonObject.getLong("tenantGroupId"), jsonObject.getInteger("count"));
+            });
             for (TenantGroupWrapper.TenantGroup record : records) {
                 record.setGroupUserCount(groupBy.getOrDefault(record.getId(), 0));
                 record.setImGroupExist(existImgGroupIds.contains(record.getImGroupId()));
                 if (mapByIds.containsKey(record.getAdminId())) {
                     record.setAdminName(mapByIds.get(record.getAdminId()).getUsername());
                 }
+                record.setAlbumCount(countByGroupId.getOrDefault(record.getId(), 0));
             }
         }
         return iPage;
@@ -315,6 +333,10 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
                 .eq(Student::getTenantId, group.getTenantId())
                 .eq(Student::getTenantGroupId, id)
                 .set(Student::getTenantGroupId, -1L));
+
+        tenantGroupAlbumMapper.update(null, Wrappers.<TenantGroupAlbum>lambdaUpdate()
+                .set(TenantGroupAlbum::getDelFlag, true)
+                .eq(TenantGroupAlbum::getTenantGroupId, id));
         return removeById(id);
     }
 

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumWrapper.java

@@ -145,6 +145,12 @@ public class TenantAlbumWrapper {
         @ApiModelProperty("曲目相关信息")
         private List<MusicSheetData> musicSheetData = new ArrayList<>();
 
+        @ApiModelProperty("采购周期类型")
+        private String purchaseTypes;
+
+        @ApiModelProperty("专辑采购金额")
+        private String purchaseJson;
+
 
         @ApiModelProperty("机构专辑有效期开始时间 ")
         @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 98 - 71
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantGroupAlbumWrapper.java

@@ -1,22 +1,20 @@
 package com.yonge.cooleshow.biz.dal.wrapper;
 
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-
-import java.math.BigDecimal;
-import java.util.Optional;
-
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.Optional;
+
 /**
  * 机构小组专辑配置表
  * 2024-01-24 13:32:00
@@ -25,25 +23,34 @@ import org.apache.commons.lang3.StringUtils;
 public class TenantGroupAlbumWrapper {
 
     @Data
-	@Builder
+    @Builder
     @NoArgsConstructor
     @AllArgsConstructor
     @ApiModel(" TenantGroupAlbumQuery-机构小组专辑配置表")
     public static class TenantGroupAlbumQuery implements QueryInfo {
-    
-    	@ApiModelProperty("当前页")
+
+        @ApiModelProperty("当前页")
         private Integer page;
-        
+
         @ApiModelProperty("分页行数")
         private Integer rows;
-        
+
         @ApiModelProperty("关键字匹配")
-		private String keyword;
-        
+        private String keyword;
+
+        @ApiModelProperty("机构ID")
+        private Long tenantId;
+
+        @ApiModelProperty("机构专辑ID")
+        private Long tenantAlbumId;
+
+        @ApiModelProperty("机构小组ID")
+        private Long tenantGroupId;
+
         public String getKeyword() {
             return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
         }
-        
+
         public String jsonString() {
             return JSON.toJSONString(this);
         }
@@ -51,104 +58,124 @@ public class TenantGroupAlbumWrapper {
         public static TenantGroupAlbumQuery from(String json) {
             return JSON.parseObject(json, TenantGroupAlbumQuery.class);
         }
-    }  
-
-	@ApiModel(" TenantGroupAlbum-机构小组专辑配置表")
-    public static class TenantGroupAlbum {
-        
-        public String jsonString() {
-            return JSON.toJSONString(this);
-        }
-
-        public static TenantGroupAlbum from(String json) {
-            return JSON.parseObject(json, TenantGroupAlbum.class);
-        }
-	}
-
+    }
 
     @Data
-    @ApiModel(" BuyTenantAlbumQuery-可购买机构专辑信息查询")
-    public static class BuyTenantAlbumQuery {
-
-        @ApiModelProperty("机构ID")
-        private Long tenantId;
+    @ApiModel(" TenantGroupAlbum-机构小组专辑配置表")
+    public static class TenantGroupAlbum {
+        @ApiModelProperty("主键ID")
+        private Long id;
 
-        @ApiModelProperty("小组ID")
+        @ApiModelProperty("机构小组ID")
+        @NotNull(message = "小组不能为空")
         private Long tenantGroupId;
-    }
-
 
+        @ApiModelProperty("专辑ID")
+        @NotNull(message = "专辑ID不能为空")
+        private Long tenantAlbumId;
 
-        @Data
-    @ApiModel(" BuyTenantAlbum-可购买机构专辑信息")
-    public static class BuyTenantAlbum {
+        @ApiModelProperty("采购数量")
+        @NotNull(message = "有效期不能为空")
+        private Integer purchaseNum;
 
-        @ApiModelProperty("专辑ID")
-        private Long id;
+        @ApiModelProperty("原价")
+        private BigDecimal originalPrice;
 
+        @ApiModelProperty("售价")
+        private BigDecimal actualPrice;
 
-        @ApiModelProperty("专辑名称")
-        private String name;
+        @ApiModelProperty("购买次数限制")
+        @NotNull(message = "购买次数限制不能为空")
+        private Boolean buyTimesFlag;
 
-        @ApiModelProperty("专辑介绍")
-        private String describe;
+        @ApiModelProperty("购买次数")
+        private Integer buyTimes = 0;
 
-        @ApiModelProperty("专辑封面")
-        private String coverImg;
 
-        @ApiModelProperty("曲目数")
-        private Integer musicNum;
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
 
+        public static TenantGroupAlbum from(String json) {
+            return JSON.parseObject(json, TenantGroupAlbum.class);
+        }
+    }
 
-        @ApiModelProperty("曲目声部分类(多个,分隔)")
-        private String subjectTypes;
 
+    @Data
+    @ApiModel("修改状态")
+    public static class UpdateStatus {
 
-        @ApiModelProperty("采购周期类型")
-        private String purchaseTypes;
+        @ApiModelProperty("id")
+        @NotNull
+        private String ids;
 
+        @ApiModelProperty("状态")
+        @NotNull
+        private Boolean status;
 
+    }
 
-        @ApiModelProperty("采购金额数据")
-        private String purchaseJson;
+    @Data
+    @ApiModel("修改状态")
+    public static class Remove {
 
+        @ApiModelProperty("id")
+        @NotNull
+        private Long id;
+    }
 
-        @ApiModelProperty("机构小组专辑ID ,学生购买需传参")
-        private Long tenantGroupAlbumId;
+    @Data
+    @ApiModel(" TenantGroupAlbum-机构小组专辑配置表")
+    public static class TenantGroupAlbumVo {
+        @ApiModelProperty("主键ID")
+        private Long id;
 
         @ApiModelProperty("机构小组ID")
         private Long tenantGroupId;
 
+        @ApiModelProperty("专辑ID")
+        private Long tenantAlbumId;
 
         @ApiModelProperty("采购数量")
         private Integer purchaseNum;
 
-        @ApiModelProperty("采购周期")
-        private String purchasePeriod;
-
         @ApiModelProperty("原价")
         private BigDecimal originalPrice;
 
         @ApiModelProperty("售价")
         private BigDecimal actualPrice;
 
-
         @ApiModelProperty("购买次数限制")
         private Boolean buyTimesFlag;
 
-        @ApiModelProperty("购买次数")
+        @ApiModelProperty("购买次数")
         private Integer buyTimes;
 
-        @ApiModelProperty("已购买次数")
-        private Integer buyedTimes;
+        @ApiModelProperty("状态")
+        private Boolean status;
 
-        public String jsonString() {
-            return JSON.toJSONString(this);
-        }
+        @ApiModelProperty("采购周期")
+        private String purchasePeriod;
+
+        @ApiModelProperty("创建时间")
+        private Date createTime;
+
+        @ApiModelProperty("创建人")
+        private Long createBy;
+
+        @ApiModelProperty("更新人")
+        private Long updateBy;
+
+        @ApiModelProperty("更新时间")
+        private Date updateTime;
+
+        @ApiModelProperty("机构小组名称")
+        private String tenantGroupName;
+
+        @ApiModelProperty("专辑名称")
+        private String tenantAlbumName;
 
-        public static TenantGroupAlbum from(String json) {
-            return JSON.parseObject(json, TenantGroupAlbum.class);
-        }
     }
 
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantGroupWrapper.java

@@ -102,6 +102,9 @@ public class TenantGroupWrapper {
         @ApiModelProperty("群成员数量")
         private Integer groupUserCount = 0;
 
+        @ApiModelProperty("专辑数量")
+        private Integer albumCount = 0;
+
         public String jsonString() {
             return JSON.toJSONString(this);
         }

+ 17 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantGroupAlbumMapper.xml

@@ -23,10 +23,26 @@
         , t.update_time_ AS updateTime
         </sql> 
     
-    <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.entity.TenantGroupAlbum">
+    <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.wrapper.TenantGroupAlbumWrapper$TenantGroupAlbumVo">
 		SELECT         
         	<include refid="baseColumns" />
+        ,tg.name_ tenantGroupName
+        ,tg.name_ tenantGroupName
 		FROM tenant_group_album t
+        LEFT JOIN tenant_group tg ON t.tenant_group_id_ = tg.id_
+        LEFT JOIN tenant_album ta ON t.tenant_album_id_ = ta.id_
+        <where>
+            t.del_flag_ = 0
+            <if test="param.tenantAlbumId != null">
+                AND t.tenant_album_id_ = #{param.tenantAlbumId}
+            </if>
+            <if test="param.tenantId != null">
+                AND tg.tenant_id_ = #{param.tenantId}
+            </if>
+            <if test="param.tenantGroupId != null">
+                AND tg.id_ = #{param.tenantGroupId}
+            </if>
+        </where>
 	</select>
 
     <select id="getBuyAlbumInfo"