yuanliang пре 2 година
родитељ
комит
b098f87fcb

+ 26 - 9
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java

@@ -54,8 +54,6 @@ public class TenantAlbumController {
 
     @Autowired
     private TenantAlbumRefService tenantAlbumRefService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
 
     @Autowired
     private TenantInfoService tenantInfoService;
@@ -98,6 +96,8 @@ public class TenantAlbumController {
         vo.setTenantId(one.getTenantId());
         //查询曲目表
 
+        TenantInfo tenantInfo = tenantInfoService.getById(one.getTenantId());
+        vo.setTenantName(tenantInfo.getName());
         List<TenantAlbumMusic> tenantAlbumMusics = tenantAlbumMusicService.lambdaQuery()
                 .eq(TenantAlbumMusic::getTenantAlbumId, id)
                 .eq(TenantAlbumMusic::getDelFlag, false)
@@ -127,22 +127,39 @@ public class TenantAlbumController {
     @ApiOperation(value = "新增专辑", notes = "新增专辑")
     @PreAuthorize("@pcs.hasPermissions('tenantAlbum/save')")
     public HttpResponseResult<Boolean> save(@Validated @RequestBody TenantAlbumVo.TenantAlbum album) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        TenantInfo tenantInfo = tenantInfoService.lambdaQuery().eq(TenantInfo::getUserId, sysUser.getId())
-                .last("limit 1").one();
-        if (tenantInfo == null) {
-            throw new BizException("非法请求");
-        }
+        TenantAlbum tenantAlbum = JSON.parseObject(album.jsonString(), TenantAlbum.class);
+        List<TenantAlbumVo.MusicSheetData> musicSheetData = album.getMusicSheetData();
+
+        List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList = musicSheetData.stream().map(next ->
+                        JSON.parseObject(JSON.toJSONString(next), TenantAlbumWrapper.MusicSheetData.class))
+                .collect(Collectors.toList());
+        tenantAlbumService.insertTenantAlbum(album.getTenantId(), tenantAlbum, musicSheetDataList);
+        return HttpResponseResult.succeed();
+    }
 
+    @PostMapping("/update")
+    @ApiOperation(value = "修改专辑", notes = "修改专辑")
+    @PreAuthorize("@pcs.hasPermissions('tenantAlbum/save')")
+    public HttpResponseResult<Boolean> update(@Validated @RequestBody TenantAlbumVo.TenantAlbum album) {
         TenantAlbum tenantAlbum = JSON.parseObject(album.jsonString(), TenantAlbum.class);
         List<TenantAlbumVo.MusicSheetData> musicSheetData = album.getMusicSheetData();
 
         List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList = musicSheetData.stream().map(next ->
                         JSON.parseObject(JSON.toJSONString(next), TenantAlbumWrapper.MusicSheetData.class))
                 .collect(Collectors.toList());
-        tenantAlbumService.insertTenantAlbum(tenantInfo.getId(), tenantAlbum, musicSheetDataList);
+        tenantAlbumService.updateAlbum(album.getTenantId(), tenantAlbum, musicSheetDataList);
         return HttpResponseResult.succeed();
     }
 
+    @PostMapping("/updateStatus")
+    @ApiOperation(value = "启用/冻结", notes = "启用/冻结")
+    @PreAuthorize("@pcs.hasPermissions('tenantAlbum/updateStatus')")
+    public HttpResponseResult<Boolean> updateStatus(@Validated @RequestBody TenantAlbumVo.UpdateStatus status) {
+        tenantAlbumService.lambdaUpdate()
+                .set(TenantAlbum::getStatus, status.getStatus())
+                .eq(TenantAlbum::getId, status.getId())
+                .update();
+        return HttpResponseResult.succeed();
+    }
 
 }

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

@@ -45,9 +45,6 @@ public class TenantAlbumVo {
         @ApiModelProperty("机构ID")
         private Long tenantId;
 
-        @ApiModelProperty("机构名称")
-        private Long tenantName;
-
         @ApiModelProperty("专辑名称")
         private String name;
 
@@ -106,4 +103,18 @@ public class TenantAlbumVo {
         private Date createTime;
     }
 
+
+    @Data
+    @ApiModel("专辑启用/停用")
+    public static class UpdateStatus {
+
+        @ApiModelProperty("专辑ID")
+        @NotNull
+        private Long id;
+
+        @ApiModelProperty("启用/停用")
+        @NotNull
+        private Boolean status;
+    }
+
 }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantAlbumService.java

@@ -61,6 +61,8 @@ public interface TenantAlbumService extends IService<TenantAlbum>  {
     void insertTenantAlbum(Long tenantId,TenantAlbum tenantAlbum,
                            List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList);
 
+    void updateAlbum(Long id, TenantAlbum tenantAlbum, List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList);
+
 
     /**
      * 添加机构专辑数据

+ 25 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumServiceImpl.java

@@ -190,7 +190,6 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
             }
         }
 
-
         userOrderDetail.setGoodUrl(userOrderService.getGoodUrlByType(orderGoodsInfo.getGoodType()));
         userOrderDetail.setBizId(tenantAlbum.getId());
         userOrderDetail.setGoodNum(orderGoodsInfo.getGoodNum());
@@ -240,11 +239,35 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
         tenantAlbumRefService.add(ref);
 
         //曲目表赋值
+        insertAlbumMusic(tenantId, tenantAlbum, musicSheetDataList);
+    }
+
+    @Override
+    public void updateAlbum(Long tenantId, TenantAlbum tenantAlbum,
+                            List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList) {
+
+        List<String> subjectTypeNames = musicSheetDataList.stream().map(next -> next.getSubjectType().name())
+                .distinct().collect(Collectors.toList());
+        tenantAlbum.setSubjectTypes(String.join(",", subjectTypeNames));
+        this.updateById(tenantAlbum);
+
+        tenantAlbumMusicService.lambdaUpdate()
+                .set(TenantAlbumMusic::getDelFlag, true)
+                .eq(TenantAlbumMusic::getTenantAlbumId, tenantAlbum)
+                .eq(TenantAlbumMusic::getTenantId, tenantId)
+                .update();
+
+        insertAlbumMusic(tenantId, tenantAlbum, musicSheetDataList);
+
+    }
+
+    private void insertAlbumMusic(Long tenantId, TenantAlbum tenantAlbum,
+                                  List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList) {
+        //曲目表赋值
         List<TenantAlbumMusic> tenantAlbumMusics = musicSheetDataList.stream().map(next -> {
             AtomicInteger sort = new AtomicInteger(1);
             return next.getMusicSheetIdList().stream().map(tenantAlbumMusic -> {
                 TenantAlbumMusic tenantAlbumMusic1 = new TenantAlbumMusic();
-                //tenantAlbumMusic1.setId(tenantAlbumMusic);
                 tenantAlbumMusic1.setTenantId(tenantId);
                 tenantAlbumMusic1.setSubjectType(next.getSubjectType());
                 tenantAlbumMusic1.setTenantAlbumId(tenantAlbum.getId());