Browse Source

Merge branch 'dev_v1.3.6_20221011' into online

liujunchi 2 years ago
parent
commit
8efa0d2d90
21 changed files with 270 additions and 17 deletions
  1. 20 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java
  2. 24 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicAlbumController.java
  3. 21 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java
  4. 52 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/AdjustModel.java
  5. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicSheetSearch.java
  6. 5 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ShareProfitParam.java
  7. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AccountBizTypeEnum.java
  8. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java
  9. 33 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicAlbumServiceImpl.java
  10. 6 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  11. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PlatformCashAccountRecordServiceImpl.java
  12. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  13. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountRecordServiceImpl.java
  14. 20 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountServiceImpl.java
  15. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  16. 12 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ShareProfitVo.java
  17. 20 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/AccountTotal.java
  18. 4 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  19. 4 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountMapper.xml
  20. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountRecordMapper.xml
  21. 17 4
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/OpenShareController.java

+ 20 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java

@@ -146,6 +146,12 @@ public interface SysConfigConstant {
      * @updateTime 2022/4/20 11:43
      */
     String GOOD_LOGO_ACTI_REGIST = "good_logo_acti_regist";
+    /***
+     * 专辑购买图片
+     * @author liweifan
+     * @updateTime 2022/4/20 11:43
+     */
+    String GOOD_LOGO_ALBUM = "good_logo_album";
 
 
     /**
@@ -283,6 +289,10 @@ public interface SysConfigConstant {
      */
     String MUSIC_SHARE_FEE = "music_share_fee";
     /**
+     * 乐谱推荐分润比例
+     */
+    String MUSIC_ALBUM_FEE = "music_album_fee";
+    /**
      * 商品推荐分润比例
      */
     String MALL_SHARE_FEE = "mall_share_fee";
@@ -307,6 +317,11 @@ public interface SysConfigConstant {
      */
     String MUSIC_ACCOUNT_PERIOD = "music_account_period";
     /**
+     * 专辑账期
+     */
+    String ALBUM_ACCOUNT_PERIOD = "album_account_period";
+
+    /**
      * 活动报名账期
      */
     String ACTI_REGIST_ACCOUNT_PERIOD = "acti_regist_account_period";
@@ -315,4 +330,9 @@ public interface SysConfigConstant {
      */
     String MALL_ACCOUNT_PERIOD = "mall_account_period";
 
+    /**
+     * 曲目置顶数
+     */
+    String MUSIC_SHEET_TOP_NUM = "music_sheet_top_num";
+
 }

+ 24 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicAlbumController.java

@@ -5,9 +5,11 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetDto;
 import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetSortDto;
+import com.yonge.cooleshow.biz.dal.dto.AdjustModel;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.mybatis.support.PageUtil;
@@ -202,4 +204,26 @@ public class MusicAlbumController extends BaseController {
         return status(musicAlbumService.addMusicSheet(query.getAlbumId(),query.getAlbumMusicList(),sysUser.getId()));
     }
 
+
+
+    /**
+     * 设置排序值 和加精
+     */
+    @PostMapping("/adjust")
+    @ApiOperation(value = "专辑调整设置")
+    public HttpResponseResult<Boolean> adjust(@RequestBody @Valid AdjustModel model) {
+
+
+
+        MusicAlbum musicAlbum = new MusicAlbum();
+        musicAlbum.setId(model.getId());
+        musicAlbum.setSortNumber(model.getSort());
+
+        musicAlbumService.updateById(musicAlbum);
+
+        return succeed();
+    }
+
+
+
 }

+ 21 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.yonge.cooleshow.biz.dal.dto.AdjustModel;
 import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -362,4 +363,24 @@ public class MusicSheetController extends BaseController {
     }
 
 
+    /**
+     * 设置排序值 和加精
+     */
+    @PostMapping("/adjust")
+    @ApiOperation(value = "曲目调整设置")
+    public HttpResponseResult<Boolean> adjust(@RequestBody @Valid AdjustModel model) {
+
+        MusicSheet musicSheet = new MusicSheet();
+        musicSheet.setId(model.getId());
+        musicSheet.setSortNumber(model.getSort());
+        musicSheet.setExquisiteFlag(model.getExquisiteFlag());
+
+        musicSheetService.updateById(musicSheet);
+
+        return succeed();
+    }
+
+
+
+
 }

+ 52 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/AdjustModel.java

@@ -0,0 +1,52 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-10-12
+ */
+@ApiModel("曲目调整 排序和精品")
+public class AdjustModel {
+
+    @ApiModelProperty("id")
+    @NotNull(message = "id不能为空")
+    private Long id;
+
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+    @ApiModelProperty(value = "精品标志(0:否;1:是)")
+    private YesOrNoEnum exquisiteFlag;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public YesOrNoEnum getExquisiteFlag() {
+        return exquisiteFlag;
+    }
+
+    public void setExquisiteFlag(YesOrNoEnum exquisiteFlag) {
+        this.exquisiteFlag = exquisiteFlag;
+    }
+}

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicSheetSearch.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.yonge.cooleshow.biz.dal.enums.AccompanimentTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.AudioTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
@@ -22,6 +23,9 @@ import java.util.List;
 @ApiModel(value = "MusicSheetSearch对象", description = "曲目表查询对象")
 public class MusicSheetSearch  extends QueryInfo{
 
+    @ApiModelProperty(value = "曲目音频类型 MP3:mp3, MIDI:midi,")
+    private AudioTypeEnum audioType;
+
     @ApiModelProperty("曲目编号/名称")
     private String idAndName;
 
@@ -74,6 +78,14 @@ public class MusicSheetSearch  extends QueryInfo{
     @ApiModelProperty(value = "伴奏类型 HOMEMODE:自制伴奏  COMMON:普通伴奏")
     private AccompanimentTypeEnum accompanimentType;
 
+    public AudioTypeEnum getAudioType() {
+        return audioType;
+    }
+
+    public void setAudioType(AudioTypeEnum audioType) {
+        this.audioType = audioType;
+    }
+
     public AccompanimentTypeEnum getAccompanimentType() {
         return accompanimentType;
     }

+ 5 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ShareProfitParam.java

@@ -2,6 +2,8 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 
 import io.swagger.annotations.ApiModelProperty;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * Description
  *
@@ -11,9 +13,11 @@ import io.swagger.annotations.ApiModelProperty;
 public class ShareProfitParam {
 
     @ApiModelProperty("分享人id")
+    @NotNull(message = "分享人id不能为空")
     private Long userId;
 
-    @ApiModelProperty("曲目/直播课/视频课 id")
+    @ApiModelProperty("曲目/专辑/直播课/视频课 id")
+    @NotNull(message = "分享内容不能为空")
     private Long bizId;
 
     public Long getUserId() {

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

@@ -25,6 +25,7 @@ public enum AccountBizTypeEnum implements BaseEnum<String, AccountBizTypeEnum> {
     LIVE_SHARE("直播课分润"),
     VIDEO_SHARE("视频课分润"),
     MUSIC_SHARE("乐谱分润"),
+    ALBUM_SHARE("专辑分润"),
     VIP_SHARE("会员分润"),
     MALL_SHARE("商品分润"),
     ACTI_REGIST_SHARE("活动报名分润"),

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java

@@ -13,6 +13,7 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.vo.AlbumDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 
 import java.util.List;
@@ -141,4 +142,9 @@ public interface MusicAlbumService extends IService<MusicAlbum> {
      * @return
      */
     Boolean updateMusicSheet(MusicAlbumSheetSortDto query);
+
+    /**
+     * 专辑分享分润
+     */
+    ShareProfitVo albumShareProfit(SysUser sysUser, Long albumId);
 }

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

@@ -9,6 +9,10 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
+import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
+import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.biz.dal.dao.AlbumMusicRelateDao;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetPurchaseRecordDao;
@@ -18,6 +22,7 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetPurchaseRecordService;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
+import com.yonge.cooleshow.common.enums.ActivityShareEnum;
 import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,6 +67,8 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
     private static final Logger log = LoggerFactory.getLogger(MusicAlbumServiceImpl.class);
 
     @Autowired
+    private ActivityPlanService activityPlanService;
+    @Autowired
     private MusicAlbumDao musicAlbumDao;
 
     @Autowired
@@ -373,6 +380,32 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
 
     }
 
+    @Override
+    public ShareProfitVo albumShareProfit(SysUser sysUser, Long albumId) {
+        MusicAlbumDetailSearch query = new MusicAlbumDetailSearch();
+
+        query.setId(albumId);
+        query.setType(2);
+        query.setRows(200);
+        query.setState(YesOrNoEnum.YES);
+        AlbumDetailVo detail = detail(PageUtil.getPage(query), query, null, null);
+        if (detail == null) {
+            throw new BizException("未找到专辑信息");
+        }
+        ShareProfitVo shareProfitVo = new ShareProfitVo();
+        ActivityPlanVo activityPlanVo = activityPlanService.activityShare(ActivityShareEnum.VIP, sysUser.getId());
+        if (activityPlanVo != null) {
+            shareProfitVo.setActivityId(activityPlanVo.getId());
+            shareProfitVo.setDiscount(YesOrNoEnum.YES);
+        }
+        shareProfitVo.setTeacherId(sysUser.getId());
+        shareProfitVo.setName(sysUser.getUsername());
+        shareProfitVo.setAvatar(sysUser.getAvatar());
+        shareProfitVo.setType("ALBUM");
+        shareProfitVo.setMusicAlbum(detail);
+        return shareProfitVo;
+    }
+
     private boolean checkNameRepeat(String albumName, Long id) {
         LambdaQueryChainWrapper<MusicAlbum> eq = this.lambdaQuery()
                                                      .eq(MusicAlbum::getDelFlag,0)

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

@@ -1255,8 +1255,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 		for (String subjectId : subjectIdsStr.split(",")) {
 			Integer count = this.lambdaQuery().eq(MusicSheet::getDelFlag, YesOrNoEnum.NO).eq(MusicSheet::getTopFlag, YesOrNoEnum.YES)
 					.eq(MusicSheet::getState, YesOrNoEnum.YES).apply(!subjectId.isEmpty(), "FIND_IN_SET ('" + subjectId + "',music_subject_)").count();
-			if (count >= 20) {
-				throw new BizException("首页推荐数量达到[20]上限,请先取消其他曲谱推荐");
+            String topNum = sysConfigService.findConfigValue(SysConfigConstant.MUSIC_SHEET_TOP_NUM);
+            if (StringUtil.isEmpty(topNum)) {
+                throw new BizException("获取置顶配置失败");
+            }
+            if (count >= Integer.parseInt(topNum)) {
+				throw new BizException("首页推荐数量达到[" +topNum+"]上限,请先取消其他曲谱推荐");
 			}
 		}
         musicSheet.setTopFlag(YesOrNoEnum.YES);

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

@@ -71,6 +71,8 @@ public class PlatformCashAccountRecordServiceImpl extends ServiceImpl<PlatformCa
         paramNames.add(AccountBizTypeEnum.VIDEO_SHARE.getCode());
         paramNames.add(AccountBizTypeEnum.MUSIC.getCode());
         paramNames.add(AccountBizTypeEnum.MUSIC_SHARE.getCode());
+        paramNames.add(AccountBizTypeEnum.ALBUM.getCode());
+        paramNames.add(AccountBizTypeEnum.ALBUM_SHARE.getCode());
         paramNames.add(AccountBizTypeEnum.VIP.getCode());
         paramNames.add(AccountBizTypeEnum.VIP_SHARE.getCode());
         paramNames.add(AccountBizTypeEnum.ACTI_REGIST.getCode());

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

@@ -492,7 +492,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         //修改视频封面
         styleVideo.forEach(o -> {
             TeacherStyleVideo old = oldMap.get(o.getId());
-            if (!o.getCover().equals(old.getCover())) {
+            if (old != null && !o.getCover().equals(old.getCover())) {
                 teacherStyleVideoService.update(Wrappers.<TeacherStyleVideo>lambdaUpdate()
                         .set(TeacherStyleVideo::getCover, o.getCover())
                         .set(TeacherStyleVideo::getAuthStatus, AuthStatusEnum.DOING)

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

@@ -99,6 +99,8 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
         paramNames.add(AccountBizTypeEnum.VIDEO_SHARE.getCode());
         paramNames.add(AccountBizTypeEnum.MUSIC.getCode());
         paramNames.add(AccountBizTypeEnum.MUSIC_SHARE.getCode());
+        paramNames.add(AccountBizTypeEnum.ALBUM.getCode());
+        paramNames.add(AccountBizTypeEnum.ALBUM_SHARE.getCode());
         paramNames.add(AccountBizTypeEnum.VIP.getCode());
         paramNames.add(AccountBizTypeEnum.VIP_SHARE.getCode());
         List<UserAccountRecord> accountRecords = baseMapper.queryCanAccountByBizType(paramNames);

+ 20 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountServiceImpl.java

@@ -305,6 +305,7 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         BigDecimal liveShareAmount = BigDecimal.ZERO;
         BigDecimal videoShareAmount = BigDecimal.ZERO;
         BigDecimal musicShareAmount = BigDecimal.ZERO;
+        BigDecimal albumShareAmount = BigDecimal.ZERO;
         BigDecimal vipShareAmount = BigDecimal.ZERO;
         BigDecimal mallShareAmount = BigDecimal.ZERO;
         BigDecimal actiRegistShareAmount = BigDecimal.ZERO;
@@ -320,6 +321,7 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
             liveShareAmount = liveShareAmount.add(info.getLiveShareAmount());
             videoShareAmount = videoShareAmount.add(info.getVideoShareAmount());
             musicShareAmount = musicShareAmount.add(info.getMusicShareAmount());
+            albumShareAmount = albumShareAmount.add(info.getAlbumShareAmount());
             vipShareAmount = vipShareAmount.add(info.getVipShareAmount());
             mallShareAmount = mallShareAmount.add(info.getMallShareAmount());
             actiRegistShareAmount = actiRegistShareAmount.add(info.getActiRegistShareAmount());
@@ -329,7 +331,7 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         total.setTotalInAmount(
                 practiceAmount.add(liveAmount).add(videoAmount).add(musicAmount)
                         .add(liveShareAmount).add(videoShareAmount).add(musicShareAmount)
-                        .add(vipShareAmount).add(mallShareAmount).add(actiRegistShareAmount)
+                        .add(vipShareAmount).add(mallShareAmount).add(actiRegistShareAmount).add(albumShareAmount)
         );
         if (total.getTotalInAmount().doubleValue() > 0) {
             total.setPracticeAmount(practiceAmount);
@@ -367,6 +369,11 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
                     .divide(total.getTotalInAmount(), 4, RoundingMode.HALF_UP)
                     .multiply(new BigDecimal("100")));
 
+            total.setAlbumShareAmount(albumShareAmount);
+            total.setAlbumShareRate(total.getAlbumShareAmount()
+                                         .divide(total.getTotalInAmount(), 4, RoundingMode.HALF_UP)
+                                         .multiply(new BigDecimal("100")));
+
             total.setVipShareAmount(vipShareAmount);
             total.setVipShareRate(total.getVipShareAmount()
                     .divide(total.getTotalInAmount(), 4, RoundingMode.HALF_UP)
@@ -378,9 +385,18 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
                     .multiply(new BigDecimal("100")));
 
             total.setActiRegistShareAmount(actiRegistShareAmount);
-            total.setActiRegistShareRate(total.getActiRegistShareAmount()
-                    .divide(total.getTotalInAmount(), 4, RoundingMode.HALF_UP)
-                    .multiply(new BigDecimal("100")));
+            total.setActiRegistShareRate(
+                    BigDecimal.valueOf(100)
+                            .subtract(total.getPracticeRate())
+                            .subtract(total.getLiveRate())
+                            .subtract(total.getVideoRate())
+                            .subtract(total.getMusicRate())
+                            .subtract(total.getLiveShareRate())
+                            .subtract(total.getVideoShareRate())
+                            .subtract(total.getAlbumShareRate())
+                            .subtract(total.getVipShareRate())
+                            .subtract(total.getMallShareRate())
+            );
         }
         total.setInfoList(infoList);
         return HttpResponseResult.succeed(total);

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

@@ -777,6 +777,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             configValue = sysConfigService.findConfigValue(SysConfigConstant.GOOD_LOGO_PIANO_ROOM);
         } else if (GoodTypeEnum.ACTI_REGIST.equals(goodTypeEnum)) {
             configValue = sysConfigService.findConfigValue(SysConfigConstant.GOOD_LOGO_ACTI_REGIST);
+        } else if (GoodTypeEnum.ALBUM.equals(goodTypeEnum)) {
+            configValue = sysConfigService.findConfigValue(SysConfigConstant.GOOD_LOGO_ALBUM);
         }
         return configValue;
     }
@@ -1026,6 +1028,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.VIDEO_ACCOUNT_PERIOD)));
         } else if (GoodTypeEnum.MUSIC.equals(goodType)) {
             instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.MUSIC_ACCOUNT_PERIOD)));
+        } else if (GoodTypeEnum.ALBUM.equals(goodType)) {
+            instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.ALBUM_ACCOUNT_PERIOD)));
         } else if (GoodTypeEnum.ACTI_REGIST.equals(goodType)) {
             instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.ACTI_REGIST_ACCOUNT_PERIOD)));
         }
@@ -1052,6 +1056,9 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         if (GoodTypeEnum.MUSIC.equals(goodType)) {
             return getShareFreeByConfigName(SysConfigConstant.MUSIC_SHARE_FEE);
         }
+        if (GoodTypeEnum.ALBUM.equals(goodType)) {
+            return getShareFreeByConfigName(SysConfigConstant.MUSIC_ALBUM_FEE);
+        }
         if (GoodTypeEnum.ACTI_REGIST.equals(goodType)) {
             //获取当前活动的分润比例
             ActivityPlan byId = activityPlanService.getById(bizId);

+ 12 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ShareProfitVo.java

@@ -28,7 +28,7 @@ public class ShareProfitVo {
     @ApiModelProperty("二维码链接")
     private String url;
 
-    @ApiModelProperty("曲目: MUSIC,直播课 :LIVE,视频课:VIDEO ,会员 :VIP")
+    @ApiModelProperty("曲目: MUSIC,ALBUM:专辑 直播课 :LIVE,视频课:VIDEO ,会员 :VIP")
     private String type;
 
     @ApiModelProperty("专属优惠 0:否 1:是")
@@ -40,6 +40,9 @@ public class ShareProfitVo {
     @ApiModelProperty("乐谱信息")
     private MusicSheetDetailVo musicSheet;
 
+    @ApiModelProperty("专辑信息")
+    private AlbumDetailVo musicAlbum;
+
     @ApiModelProperty("直播课程组信息")
     private LiveCourseGroupShareVo liveCourseGroup;
 
@@ -49,6 +52,14 @@ public class ShareProfitVo {
     @ApiModelProperty("会员信息")
     private List<MemberPriceSettingsVo> vip;
 
+    public AlbumDetailVo getMusicAlbum() {
+        return musicAlbum;
+    }
+
+    public void setMusicAlbum(AlbumDetailVo musicAlbum) {
+        this.musicAlbum = musicAlbum;
+    }
+
     public Long getActivityId() {
         return activityId;
     }

+ 20 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/AccountTotal.java

@@ -42,6 +42,10 @@ public class AccountTotal {
     private BigDecimal musicShareAmount = BigDecimal.ZERO;
     @ApiModelProperty("乐谱分润-百分比")
     private BigDecimal musicShareRate = BigDecimal.ZERO;
+    @ApiModelProperty("专辑分润")
+    private BigDecimal albumShareAmount = BigDecimal.ZERO;
+    @ApiModelProperty("专辑分润-百分比")
+    private BigDecimal albumShareRate = BigDecimal.ZERO;
     @ApiModelProperty("直播课分润")
     private BigDecimal liveShareAmount = BigDecimal.ZERO;
     @ApiModelProperty("直播课分润-百分比")
@@ -61,6 +65,22 @@ public class AccountTotal {
     @ApiModelProperty("详情数据")
     private List<AccountTotal> infoList;
 
+    public BigDecimal getAlbumShareAmount() {
+        return albumShareAmount;
+    }
+
+    public void setAlbumShareAmount(BigDecimal albumShareAmount) {
+        this.albumShareAmount = albumShareAmount;
+    }
+
+    public BigDecimal getAlbumShareRate() {
+        return albumShareRate;
+    }
+
+    public void setAlbumShareRate(BigDecimal albumShareRate) {
+        this.albumShareRate = albumShareRate;
+    }
+
     public BigDecimal getTotalInAmount() {
         return totalInAmount;
     }

+ 4 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -145,6 +145,9 @@
         <if test="param.accompanimentType != null">
             and t.accompaniment_type_ = #{param.accompanimentType}
         </if>
+        <if test="param.audioType != null">
+            and t.audio_type_ = #{param.audioType}
+        </if>
 
     </sql>
 
@@ -586,7 +589,7 @@
             sum(if(ms.source_type_ = 'TEACHER',1,0)) as musicSheetTeacherCount,
             count(1) as musicSheetCount
         from music_sheet ms
-        where ms.state_ = 1 and ms.del_flag_ = 0 and ms.audit_status_ = 'PASS' and ms.charge_type_ = 'CHARGE'
+        where ms.state_ = 1 and ms.del_flag_ = 0 and ms.audit_status_ = 'PASS' and find_in_set('CHARGE',ms.payment_type_)
     </select>
 
     <select id="selectPayMusicSheet" resultType="com.yonge.cooleshow.biz.dal.vo.HomeMusicSheetVo$MusicSheetSmall">

+ 4 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountMapper.xml

@@ -84,7 +84,7 @@
                 and a.post_status_ = 'RECORDED' and a.in_or_out_ = 'IN') as amountRecorded,
             (select sum(a.trans_amount_) from user_cash_account_record a where a.account_id_ = t.user_id_
                 and a.post_status_ in ('RECORDED','WAIT') and a.in_or_out_ = 'IN'
-                and a.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','VIP_SHARE','MALL_SHARE','ACTI_REGIST_SHARE')) as amountShare
+                and a.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','ALBUM_SHARE','VIP_SHARE','MALL_SHARE','ACTI_REGIST_SHARE')) as amountShare
         FROM user_cash_account t
         where t.user_id_ = #{id}
     </select>
@@ -110,6 +110,7 @@
             sum(a.liveShareAmount) as liveShareAmount,
             sum(a.videoShareAmount) as videoShareAmount,
             sum(a.musicShareAmount) as musicShareAmount,
+            sum(a.albumShareAmount) as albumShareAmount,
             sum(a.vipShareAmount) as vipShareAmount,
             sum(a.mallShareAmount) as mallShareAmount,
             sum(a.actiRegistShareAmount) as actiRegistShareAmount
@@ -124,6 +125,7 @@
                 sum(if(t.biz_type_ = 'LIVE_SHARE',t.trans_amount_,0)) as liveShareAmount,
                 sum(if(t.biz_type_ = 'VIDEO_SHARE',t.trans_amount_,0)) as videoShareAmount,
                 sum(if(t.biz_type_ = 'MUSIC_SHARE',t.trans_amount_,0)) as musicShareAmount,
+                sum(if(t.biz_type_ = 'ALBUM_SHARE',t.trans_amount_,0)) as albumShareAmount,
                 sum(if(t.biz_type_ = 'VIP_SHARE',t.trans_amount_,0)) as vipShareAmount,
                 sum(if(t.biz_type_ = 'MALL_SHARE',t.trans_amount_,0)) as mallShareAmount,
                 sum(if(t.biz_type_ = 'ACTI_REGIST_SHARE',t.trans_amount_,0)) as actiRegistShareAmount
@@ -175,6 +177,6 @@
         from user_cash_account_record t
         where t.in_or_out_ = 'IN' and t.err_flag_ != 1
           and t.account_id_ = #{param.userId}
-          and t.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','VIP_SHARE','MALL_SHARE','ACTI_REGIST_SHARE')
+          and t.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','ALBUM_SHARE','VIP_SHARE','MALL_SHARE','ACTI_REGIST_SHARE')
     </select>
 </mapper>

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

@@ -114,7 +114,7 @@
         left join sys_user u on t.account_id_ = u.id_
         left join sys_user u1 on t.buy_user_ = u1.id_
         <where>
-            and t.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','VIP_SHARE','MALL_SHARE','ACTI_REGIST_SHARE')
+            and t.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','ALBUM_SHARE','VIP_SHARE','MALL_SHARE','ACTI_REGIST_SHARE')
             <if test="null != param.username and '' != param.username">
                 AND u1.username_ LIKE CONCAT('%', #{param.username}, '%')
             </if>

+ 17 - 4
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/OpenShareController.java

@@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.validation.Valid;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -47,6 +48,9 @@ public class OpenShareController extends BaseController {
     @Autowired
     private SysConfigService sysConfigService;
 
+    @Autowired
+    private MusicAlbumService musicAlbumService;
+
     /**
      * 服务对象
      */
@@ -55,7 +59,7 @@ public class OpenShareController extends BaseController {
 
     @ApiOperation(value = "老师乐谱分享分润")
     @PostMapping(value="/musicShareProfit")
-    public HttpResponseResult<ShareProfitVo> shareMusicSheetProfit(@RequestBody ShareProfitParam param) {
+    public HttpResponseResult<ShareProfitVo> shareMusicSheetProfit(@RequestBody @Valid ShareProfitParam param) {
         SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
@@ -63,10 +67,19 @@ public class OpenShareController extends BaseController {
         return succeed(musicSheetService.shareMusicSheetProfit(sysUser,param.getBizId()));
     }
 
+    @ApiOperation(value = "老师专辑分享分润")
+    @PostMapping(value="/albumShareProfit")
+    public HttpResponseResult<ShareProfitVo> albumShareProfit(@RequestBody @Valid  ShareProfitParam param) {
+        SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(musicAlbumService.albumShareProfit(sysUser,param.getBizId()));
+    }
 
     @ApiOperation(value = "老师直播课分享分润")
     @PostMapping(value= "/liveShareProfit")
-    public HttpResponseResult<ShareProfitVo> shareLiveCourseProfit(@RequestBody ShareProfitParam param) {
+    public HttpResponseResult<ShareProfitVo> shareLiveCourseProfit(@RequestBody @Valid  ShareProfitParam param) {
         SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
@@ -78,7 +91,7 @@ public class OpenShareController extends BaseController {
 
     @ApiOperation(value = "老师视频课分享分润")
     @PostMapping(value= "/videoShareProfit")
-    public HttpResponseResult<ShareProfitVo> shareVideoCourseProfit(@RequestBody ShareProfitParam param) {
+    public HttpResponseResult<ShareProfitVo> shareVideoCourseProfit(@RequestBody @Valid  ShareProfitParam param) {
         SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
@@ -90,7 +103,7 @@ public class OpenShareController extends BaseController {
 
     @ApiOperation(value = "老师VIP分享分润")
     @PostMapping(value="/vipProfit")
-    public HttpResponseResult<ShareProfitVo> shareVipProfit(@RequestBody ShareProfitParam param) {
+    public HttpResponseResult<ShareProfitVo> shareVipProfit(@RequestBody  @Valid ShareProfitParam param) {
         SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");