liujunchi 3 yıl önce
ebeveyn
işleme
173080595f
30 değiştirilmiş dosya ile 757 ekleme ve 27 silme
  1. 3 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java
  2. 5 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java
  3. 5 0
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/SysUserFeignService.java
  4. 5 0
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/fallback/SysUserFeignServiceFallback.java
  5. 10 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/TokenController.java
  6. 21 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java
  7. 3 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/UmsAdminServiceImpl.java
  8. 5 0
      cooleshow-mall/mall-portal/pom.xml
  9. 9 3
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/PmsPortalProductController.java
  10. 51 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/open/OpenShareController.java
  11. 72 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/ShareProductVo.java
  12. 34 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/ShareProfitParam.java
  13. 10 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/PmsPortalProductService.java
  14. 23 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/PmsPortalProductServiceImpl.java
  15. 34 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ShareProfitParam.java
  16. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java
  17. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MemberPriceSettingsService.java
  18. 8 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  19. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupService.java
  20. 44 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  21. 20 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MemberPriceSettingsServiceImpl.java
  22. 15 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  23. 37 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupServiceImpl.java
  24. 38 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupShareVo.java
  25. 114 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ShareProfitVo.java
  26. 54 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MemberPriceSettingsController.java
  27. 5 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java
  28. 5 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java
  29. 4 4
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VideoLessonGroupController.java
  30. 93 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/OpenShareController.java

+ 3 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -45,4 +45,7 @@ public interface AdminFeignService {
     //老师课酬
     @PostMapping(value = "/task/teacherEarning")
     HttpResponseResult<Object> sendTeacherEarning();
+
+    @GetMapping(value = "/sysConfig/findConfigValue")
+    HttpResponseResult<String> findConfigValue(String paramName);
 }

+ 5 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java

@@ -29,4 +29,9 @@ public class AdminFeignServiceFallback implements AdminFeignService {
     public HttpResponseResult<Object> sendTeacherEarning() {
         return null;
     }
+
+    @Override
+    public HttpResponseResult<String> findConfigValue(String paramName) {
+        return null;
+    }
 }

+ 5 - 0
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/SysUserFeignService.java

@@ -12,6 +12,7 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
 import java.util.List;
 
 @FeignClient(contextId = "sysUserFeignService", name = "auth-server", configuration = { FeignConfiguration.class }, fallback = SysUserFeignServiceFallback.class)
@@ -60,4 +61,8 @@ public interface SysUserFeignService {
 	@PostMapping(value = "user/list")
 	HttpResponseResult<List<SysUser>> page(@RequestBody SysUserQueryInfo queryInfo);
 
+	@GetMapping("/client")
+	@ApiOperation(value = "获取登录用户client")
+	HttpResponseResult<String> client();
+
 }

+ 5 - 0
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/fallback/SysUserFeignServiceFallback.java

@@ -79,4 +79,9 @@ public class SysUserFeignServiceFallback implements SysUserFeignService {
 		return HttpResponseResult.failed("请求失败");
 	}
 
+	@Override
+	public HttpResponseResult<String> client() {
+		return null;
+	}
+
 }

+ 10 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/TokenController.java

@@ -298,4 +298,14 @@ public class TokenController extends BaseController {
         redissonClient.getBucket(CacheNameEnum.QR_LOGIN_CODE.getRedisKey(code)).set(dto, 5, TimeUnit.MINUTES);
         return HttpResponseResult.succeed(dto);
     }
+
+    @GetMapping("/client")
+    @ApiOperation(value = "获取登录用户client")
+    public HttpResponseResult<String> client() throws IOException {
+        AuthUser authUser = SecurityUtils.getUser();
+        if (authUser == null) {
+            return HttpResponseResult.failed("请先登录");
+        }
+        return succeed(authUser.getClientId());
+    }
 }

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

@@ -225,4 +225,25 @@ public interface SysConfigConstant {
      * 敏感词-白名单
      */
     String WHITE_LIST = "white_list";
+
+
+    /** 老师分享曲目二维码跳转链接 */
+    String TEACHER_MUSIC_SHEET_SHARE_PROFIT_URL = "teacher_music_sheet_share_profit_url";
+
+
+    /** 老师分享直播课二维码跳转链接 */
+    String TEACHER_LIVE_GROUP_SHARE_PROFIT_URL = "teacher_live_group_share_profit_url";
+
+
+    /** 老师分享视频课二维码跳转链接 */
+    String TEACHER_VIDEO_GROUP_SHARE_PROFIT_URL = "teacher_video_group_share_profit_url";
+
+
+    /** 老师分享VIP二维码跳转链接 */
+    String TEACHER_VIP_SHARE_PROFIT_URL = "teacher_vip_share_profit_url";
+
+
+
+    /** 老师分享商品二维码跳转链接 */
+    String TEACHER_PRODUCT_SHARE_PROFIT_URL = "teacher_product_share_profit_url";
 }

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/UmsAdminServiceImpl.java

@@ -272,6 +272,9 @@ public class UmsAdminServiceImpl implements UmsAdminService {
                                  .filter(id -> !finalHasRoleAdminIdList.contains(id))
                                  .collect(Collectors.toList());
 
+        if (CollectionUtils.isEmpty(adminIdList)) {
+            return true;
+        }
         // 设置权限
         List<UmsAdminRoleRelation> list = new ArrayList<>();
         for (Long adminId : adminIdList) {

+ 5 - 0
cooleshow-mall/mall-portal/pom.xml

@@ -40,6 +40,11 @@
             <groupId>com.yonge.cooleshow</groupId>
             <artifactId>auth-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.yonge.cooleshow</groupId>
+            <artifactId>cooleshow-api</artifactId>
+            <version>1.0</version>
+        </dependency>
 <!--        <dependency>-->
 <!--            <groupId>com.yonge.cooleshow</groupId>-->
 <!--            <artifactId>mall-pay</artifactId>-->

+ 9 - 3
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/PmsPortalProductController.java

@@ -1,5 +1,10 @@
 package com.yonge.cooleshow.portal.controller;
 
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.security.AuthUser;
+import com.yonge.cooleshow.common.security.SecurityUtils;
 import com.yonge.cooleshow.mall.common.api.CommonPage;
 import com.yonge.cooleshow.mall.common.api.CommonResult;
 import com.yonge.cooleshow.mbg.mapper.OmsCartItemMapper;
@@ -12,6 +17,7 @@ import com.yonge.cooleshow.portal.dto.ProductSearch;
 import com.yonge.cooleshow.portal.dto.ProductSearchConditionVo;
 import com.yonge.cooleshow.portal.service.PmsPortalProductService;
 import com.yonge.cooleshow.portal.service.UmsMemberService;
+import com.yonge.toolset.base.util.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,7 +41,8 @@ public class PmsPortalProductController {
     private UmsMemberService umsMemberService;
     @Autowired
     private PmsPortalProductService portalProductService;
-
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
     @Autowired
     private OmsCartItemMapper omsCartItemMapper;
 
@@ -85,8 +92,7 @@ public class PmsPortalProductController {
         }catch (Exception e) {
             return CommonResult.success(0);
         }
+    }
 
 
-
-    }
 }

+ 51 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/open/OpenShareController.java

@@ -0,0 +1,51 @@
+package com.yonge.cooleshow.portal.controller.open;
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.portal.dto.ShareProfitParam;
+import com.yonge.cooleshow.portal.service.PmsPortalProductService;
+import com.yonge.toolset.base.util.StringUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/open")
+@Api(value = "开放权限接口-分享", hidden = true)
+public class OpenShareController extends BaseController {
+    private final static Logger log = LoggerFactory.getLogger(OpenShareController.class);
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private PmsPortalProductService portalProductService;
+
+
+    @ApiOperation(value = "老师商品分享分润")
+    @PostMapping(value="/productProfit")
+    @ResponseBody
+    public CommonResult shareProductProfit(@RequestBody ShareProfitParam param) {
+        SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
+        if (sysUser == null  || sysUser.getId() == null) {
+            return CommonResult.failed("用户信息获取失败");
+        }
+        HttpResponseResult<String> client = sysUserFeignService.client();
+        if (client.getStatus()) {
+            if (!StringUtil.isEmpty(client.getData()) && "teacher".equals(client.getData())) {
+                return CommonResult.success(portalProductService.shareProductProfit(sysUser, param.getBizId()));
+            }
+        } else {
+            return CommonResult.success(portalProductService.shareProductProfit(sysUser, param.getBizId()));
+        }
+        return CommonResult.failed("分享功能暂未开放");
+    }
+}

+ 72 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/ShareProductVo.java

@@ -0,0 +1,72 @@
+package com.yonge.cooleshow.portal.dto;
+
+import com.yonge.cooleshow.portal.domain.PmsPortalProductDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-07-21
+ */
+@ApiModel("分享商品信息")
+public class ShareProductVo implements Serializable {
+
+
+    @ApiModelProperty("老师id")
+    private Long teacherId;
+    @ApiModelProperty("推荐老师姓名")
+    private String name;
+
+    @ApiModelProperty("推荐老师头像")
+    private String avatar;
+
+    @ApiModelProperty("二维码链接")
+    private String url;
+
+    @ApiModelProperty("商品信息")
+    private PmsPortalProductDetail productDetail;
+
+    public Long getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Long teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public PmsPortalProductDetail getProductDetail() {
+        return productDetail;
+    }
+
+    public void setProductDetail(PmsPortalProductDetail productDetail) {
+        this.productDetail = productDetail;
+    }
+}

+ 34 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/ShareProfitParam.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.portal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-07-22
+ */
+public class ShareProfitParam {
+
+    @ApiModelProperty("分享人id")
+    private Long userId;
+
+    @ApiModelProperty("曲目/直播课/视频课 id")
+    private Long bizId;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getBizId() {
+        return bizId;
+    }
+
+    public void setBizId(Long bizId) {
+        this.bizId = bizId;
+    }
+}

+ 10 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/PmsPortalProductService.java

@@ -1,9 +1,11 @@
 package com.yonge.cooleshow.portal.service;
 
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.mbg.model.PmsProduct;
 import com.yonge.cooleshow.portal.domain.PmsPortalProductDetail;
 import com.yonge.cooleshow.portal.domain.PmsProductCategoryNode;
 import com.yonge.cooleshow.portal.dto.ProductSearchConditionVo;
+import com.yonge.cooleshow.portal.dto.ShareProductVo;
 
 import java.util.List;
 
@@ -33,4 +35,12 @@ public interface PmsPortalProductService {
      * @return ProductSearchConditionVo
      */
     ProductSearchConditionVo searchCondition();
+
+    /**
+     * 老师分享商品分润
+     *
+     * @param sysUser 推荐人信息
+     * @param productId 商品id
+     */
+    ShareProductVo shareProductProfit(SysUser sysUser, Long productId);
 }

+ 23 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/PmsPortalProductServiceImpl.java

@@ -3,6 +3,9 @@ package com.yonge.cooleshow.portal.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.github.pagehelper.PageHelper;
+import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.mbg.mapper.*;
 import com.yonge.cooleshow.mbg.model.*;
 import com.yonge.cooleshow.portal.dao.PortalProductDao;
@@ -10,7 +13,9 @@ import com.yonge.cooleshow.portal.domain.PmsPortalProductDetail;
 import com.yonge.cooleshow.portal.domain.PmsProductCategoryNode;
 import com.yonge.cooleshow.portal.dto.ProductCategorySmallVo;
 import com.yonge.cooleshow.portal.dto.ProductSearchConditionVo;
+import com.yonge.cooleshow.portal.dto.ShareProductVo;
 import com.yonge.cooleshow.portal.service.PmsPortalProductService;
+import com.yonge.toolset.base.string.MessageFormatter;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -47,6 +52,9 @@ public class PmsPortalProductServiceImpl implements PmsPortalProductService {
     private PortalProductDao portalProductDao;
 
     @Autowired
+    private AdminFeignService adminFeignService;
+
+    @Autowired
     private PmsProductAttributeCategoryMapper productAttributeCategoryMapper;
 
     @Override
@@ -189,6 +197,21 @@ public class PmsPortalProductServiceImpl implements PmsPortalProductService {
         return result;
     }
 
+    @Override
+    public ShareProductVo shareProductProfit(SysUser sysUser, Long productId) {
+        PmsPortalProductDetail detail = detail(productId);
+        ShareProductVo  shareProductVo = new ShareProductVo();
+        shareProductVo.setProductDetail(detail);
+        shareProductVo.setAvatar(sysUser.getAvatar());
+        shareProductVo.setTeacherId(sysUser.getId());
+        shareProductVo.setName(sysUser.getUsername());
+        // String url = adminFeignService.findConfigValue(SysConfigConstant.TEACHER_PRODUCT_SHARE_PROFIT_URL).getData();
+
+        // shareProductVo.setUrl(MessageFormatter.arrayFormat(url, detail.getProduct().getId(), sysUser.getId()));
+
+        return shareProductVo;
+    }
+
 
     private  List<PmsProductAttributeCategory>  getHomeProductAttributeCategory() {
         PmsProductAttributeCategoryExample example = new PmsProductAttributeCategoryExample();

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

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.biz.dal.dto.search;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-07-22
+ */
+public class ShareProfitParam {
+
+    @ApiModelProperty("分享人id")
+    private Long userId;
+
+    @ApiModelProperty("曲目/直播课/视频课 id")
+    private Long bizId;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getBizId() {
+        return bizId;
+    }
+
+    public void setBizId(Long bizId) {
+        this.bizId = bizId;
+    }
+}

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.CourseGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
@@ -320,5 +321,14 @@ public interface CourseGroupService extends IService<CourseGroup> {
      * @return
      */
     IPage<CourseGroupPianoDetailVo> selectPianoGroupTeacherDetail(IPage<CourseGroupPianoDetailVo> page, CourseGroupDetailSearch search);
+
+    /**
+     * 直播课分享分润
+     *
+     * @param sysUser 推荐人
+     * @param liveGroupId 直播课程组id
+     * @return
+     */
+    ShareProfitVo shareLiveCourseProfit(SysUser sysUser, Long liveGroupId);
 }
 

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MemberPriceSettingsService.java

@@ -2,10 +2,12 @@ package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
 import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
 import com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings;
+import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -53,4 +55,13 @@ public interface MemberPriceSettingsService extends IService<MemberPriceSettings
      */
     void orderSuccess(UserOrderDetailVo orderDetailVo);
 
+    /**
+     * 老师分享VIP 分润
+     *
+     * @param sysUser 推荐人信息
+     * @param vipId 会员id
+     * @return
+     */
+    ShareProfitVo shareVipProfit(SysUser sysUser, Long vipId);
+
 }

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

@@ -14,7 +14,6 @@ import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.utils.easyexcel.ExcelDataReaderProperty;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -267,4 +266,12 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * @param: userId
      */
     List<StudentTotalVo> queryStudentTotal(Long userId);
+
+    /**
+     * 老师乐谱分享分润
+     *
+     * @param sysUser 分享人
+     * @param musicSheetId 曲目id
+     */
+    ShareProfitVo shareMusicSheetProfit(SysUser sysUser, Long musicSheetId);
 }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupService.java

@@ -50,4 +50,13 @@ public interface VideoLessonGroupService extends IService<VideoLessonGroup> {
     IPage<LessonGroupVo> selectLessonGroupById(IPage<LessonGroupVo> page, VideoLessonGroupSearch query);
 
     CountVideoGroupVo countVideoGroup();
+
+    /**
+     * 视频课分享分润
+     *
+     * @param sysUser 推荐人信息
+     * @param videoGroupId 课程组id
+     * @return
+     */
+    ShareProfitVo shareVideoCourseProfit(SysUser sysUser, Long videoGroupId);
 }

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

@@ -26,6 +26,7 @@ import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
+import com.yonge.toolset.base.string.MessageFormatter;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.utils.date.DateUtil;
@@ -35,7 +36,9 @@ import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -104,6 +107,16 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      */
     @Override
     public LiveCourseInfoVo queryLiveCourseInfo(Long groupId) {
+        return queryLiveCourseInfo(groupId,getSysUser());
+    }
+
+    /**
+     * 查询课程组详情-直播课详情
+     *
+     * @param groupId 课程组id
+     */
+
+    private LiveCourseInfoVo queryLiveCourseInfo(Long groupId,SysUser sysUser) {
         CourseGroup group = Optional.ofNullable(groupId).map(this::getById)
                 .orElseThrow(() -> new BizException("课程组信息不存在"));
 
@@ -123,12 +136,14 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         result.setSalesEndDate(group.getSalesEndDate());
         result.setMixStudentNum(group.getMixStudentNum());
         result.setImGroupId(group.getImGroupId());
-        Optional.ofNullable(group.getTeacherId()).map(this::getSysUser)
-                .ifPresent(sysUser -> {
-                    result.setTeacherName(sysUser.getRealName());
-                    result.setUserName(sysUser.getUsername());
-                    result.setAvatar(sysUser.getAvatar());
-                });
+        SysUser teacher = getSysUser(group.getTeacherId());
+        if (teacher == null) {
+            throw new BizException("用户不存在");
+        }
+
+        result.setTeacherName(teacher.getRealName());
+        result.setUserName(teacher.getUsername());
+        result.setAvatar(teacher.getAvatar());
         Optional.ofNullable(group.getSubjectId()).map(subjectService::get)
                 .ifPresent(subject -> result.setSubjectName(subject.getName()));
         //课程组计划
@@ -139,7 +154,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         param.put("orderState", OrderStatusEnum.PAID.getCode());
         result.setStudentList(courseScheduleStudentPaymentService.queryStudentInfoByGroupId(param));
         //查询是否购买过该课程组
-        Long id = getSysUser().getId();
+        Long id = sysUser.getId();
 
         //这里修改为,订单完成后才算购买过,待支付和支付中订单不算
         //因为页面再点击购买按钮时,会请求/userOrder/getPendingOrder接口,如果有支付中的订单,用户选择继续支付或取消订单
@@ -1197,5 +1212,27 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         }
         return detailPage;
     }
+
+    @Override
+    public ShareProfitVo shareLiveCourseProfit(SysUser sysUser, Long liveGroupId) {
+        LiveCourseInfoVo liveCourseInfoVo = queryLiveCourseInfo(liveGroupId, sysUser);
+        SysUser teacher = this.getSysUser(liveCourseInfoVo.getTeacherId());
+
+        LiveCourseGroupShareVo liveCourseGroupShareVo = new LiveCourseGroupShareVo();
+        BeanUtils.copyProperties(liveCourseInfoVo,liveCourseGroupShareVo);
+        liveCourseGroupShareVo.setShareTeacherAvatar(teacher.getAvatar());
+        liveCourseGroupShareVo.setShareTeacherName(teacher.getUsername());
+
+        String teacherLiveGroupShareProfitUrl= sysConfigService.findConfigValue(SysConfigConstant.TEACHER_LIVE_GROUP_SHARE_PROFIT_URL);
+
+        ShareProfitVo result = new ShareProfitVo();
+        result.setTeacherId(sysUser.getId());
+        result.setType("LIVE");
+        result.setLiveCourseGroup(liveCourseGroupShareVo);
+        result.setUrl(MessageFormatter.arrayFormat(teacherLiveGroupShareProfitUrl,liveGroupId, sysUser.getId()));
+        result.setName(sysUser.getUsername());
+        result.setAvatar(sysUser.getAvatar());
+        return result;
+    }
 }
 

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

@@ -2,18 +2,20 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.entity.VipCardRecord;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.PeriodEnum;
-import com.yonge.cooleshow.biz.dal.service.StudentService;
-import com.yonge.cooleshow.biz.dal.service.SysMessageService;
-import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
+import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.biz.dal.vo.StudentVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
+import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.string.MessageFormatter;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.utils.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,7 +26,6 @@ import com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings;
 import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
 import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
 import com.yonge.cooleshow.biz.dal.dao.MemberPriceSettingsDao;
-import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
@@ -40,6 +41,8 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
     @Autowired
     private SysMessageService sysMessageService;
 
+    @Autowired
+    private SysConfigService sysConfigService;
     @Override
     public MemberPriceSettingsVo detail(Long id) {
         return baseMapper.detail(id);
@@ -98,7 +101,19 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
         authSend(studentVo.getUserId(), studentVo.getPhone(), DateUtil.format(vipCardRecord.getEndTime(), DateUtil.DEFAULT_PATTERN));
     }
 
-
+    @Override
+    public ShareProfitVo shareVipProfit(SysUser sysUser, Long vipId) {
+        ShareProfitVo result = new ShareProfitVo();
+        MemberPriceSettingsVo detail = detail(vipId);
+        result.setVip(detail);
+        result.setAvatar(sysUser.getAvatar());
+        result.setName(sysUser.getUsername());
+        result.setTeacherId(sysUser.getId());
+
+        String teacherVipShareProfitUrl= sysConfigService.findConfigValue(SysConfigConstant.TEACHER_VIP_SHARE_PROFIT_URL);
+        result.setUrl(MessageFormatter.arrayFormat(teacherVipShareProfitUrl, detail.getId(), sysUser.getId()));
+        return result;
+    }
 
 
     // 发送会员购买消息推送

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

@@ -838,6 +838,21 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
         return baseMapper.queryStudentTotal(userId);
     }
 
+    @Override
+    public ShareProfitVo shareMusicSheetProfit(SysUser sysUser, Long musicSheetId) {
+        ShareProfitVo result = new ShareProfitVo();
+        MusicSheetDetailVo musicSheet = detail(musicSheetId,null,null);
+
+        result.setTeacherId(sysUser.getId());
+        result.setType("MUSIC");
+        result.setMusicSheet(musicSheet);
+        result.setAvatar(sysUser.getAvatar());
+        result.setName(sysUser.getUsername());
+        String teacherMusicShareProfitUrl= sysConfigService.findConfigValue(SysConfigConstant.TEACHER_MUSIC_SHEET_SHARE_PROFIT_URL);
+        result.setUrl(MessageFormatter.arrayFormat(teacherMusicShareProfitUrl,musicSheetId, sysUser.getId()));
+        return result;
+    }
+
     private SysUser getSysUser(Long userId) {
         return Optional.ofNullable(userId)
                        .map(sysUserFeignService::queryUserById)

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

@@ -21,12 +21,15 @@ import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum;
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.service.SysMessageService;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService;
 import com.yonge.cooleshow.biz.dal.vo.*;
+import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
+import com.yonge.toolset.base.string.MessageFormatter;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
@@ -69,6 +72,9 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     @Autowired
     private SysUserFeignService sysUserFeignService;
 
+    @Autowired
+    private SysConfigService sysConfigService;
+
     public VideoLessonGroupDao getDao() {
         return videoLessonGroupDao;
     }
@@ -262,20 +268,26 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     public VideoLessonStudentVo selectVideoLesson(Long groupId) {
         VideoLessonStudentVo lessonStudentVo = new VideoLessonStudentVo();
 
-        VideoLessonGroupSearch query = new VideoLessonGroupSearch();
-        query.setGroupId(groupId);
-        List<VideoLessonGroupVo> lessonGroup = videoLessonGroupDao.selectPage(null, query);
-        if (CollectionUtils.isEmpty(lessonGroup)) {
-            return lessonStudentVo;
-        }
-        lessonStudentVo.setLessonGroup(lessonGroup.get(0));
+        VideoLessonGroupVo videoLessonGroupVo = detail(groupId);
+        if (videoLessonGroupVo == null) return lessonStudentVo;
 
+        lessonStudentVo.setLessonGroup(videoLessonGroupVo);
         VideoLessonSearch search = new VideoLessonSearch();
         search.setVideoLessonGroupId(groupId);
         lessonStudentVo.setDetailList(videoLessonGroupDetailDao.selectPage(null, search));
         return lessonStudentVo;
     }
 
+    private VideoLessonGroupVo detail(Long groupId) {
+        VideoLessonGroupSearch query = new VideoLessonGroupSearch();
+        query.setGroupId(groupId);
+        List<VideoLessonGroupVo> lessonGroup = videoLessonGroupDao.selectPage(null, query);
+        if (CollectionUtils.isEmpty(lessonGroup)) {
+            return null;
+        }
+        return lessonGroup.get(0);
+    }
+
     /**
      * @Description: 修改视频课组&视频课
      * @Author: cy
@@ -362,4 +374,22 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         countVideoGroup.setVideoLessonList(baseMapper.selectVideoLesson());
         return countVideoGroup;
     }
+
+    @Override
+    public ShareProfitVo shareVideoCourseProfit(SysUser sysUser, Long videoGroupId) {
+
+        VideoLessonStudentVo videoLessonStudentVo = selectVideoLesson(videoGroupId);
+
+        String teacherVideoGroupShareProfitUrl= sysConfigService.findConfigValue(SysConfigConstant.TEACHER_VIDEO_GROUP_SHARE_PROFIT_URL);
+
+        ShareProfitVo result = new ShareProfitVo();
+        result.setType("VIDEO");
+        result.setTeacherId(sysUser.getId());
+        result.setVideoGroup(videoLessonStudentVo);
+        result.setUrl(MessageFormatter.arrayFormat(teacherVideoGroupShareProfitUrl, videoGroupId, sysUser.getId()));
+        result.setName(sysUser.getUsername());
+        result.setAvatar(sysUser.getAvatar());
+        return result;
+
+    }
 }

+ 38 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupShareVo.java

@@ -0,0 +1,38 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-07-20
+ */
+@ApiModel("直播课分享")
+public class LiveCourseGroupShareVo extends LiveCourseInfoVo {
+
+
+    @ApiModelProperty("老师名称")
+    private String shareTeacherName;
+
+    @ApiModelProperty("老师头像")
+    private String shareTeacherAvatar;
+
+    public String getShareTeacherName() {
+        return shareTeacherName;
+    }
+
+    public void setShareTeacherName(String shareTeacherName) {
+        this.shareTeacherName = shareTeacherName;
+    }
+
+    public String getShareTeacherAvatar() {
+        return shareTeacherAvatar;
+    }
+
+    public void setShareTeacherAvatar(String shareTeacherAvatar) {
+        this.shareTeacherAvatar = shareTeacherAvatar;
+    }
+}

+ 114 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ShareProfitVo.java

@@ -0,0 +1,114 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description 老师乐谱分享信息
+ *
+ * @author liujunchi
+ * @date 2022-04-01
+ */
+@ApiModel( description = "老师分享分润信息")
+public class ShareProfitVo {
+
+    @ApiModelProperty("老师id")
+    private Long teacherId;
+
+    @ApiModelProperty("推荐老师姓名")
+    private String name;
+
+    @ApiModelProperty("推荐老师头像")
+    private String avatar;
+
+    @ApiModelProperty("二维码链接")
+    private String url;
+
+    @ApiModelProperty("曲目: MUSIC,直播课 :LIVE,视频课:VIDEO ,会员 :VIP")
+    private String type;
+
+    @ApiModelProperty("乐谱信息")
+    private MusicSheetDetailVo musicSheet;
+
+    @ApiModelProperty("直播课程组信息")
+    private LiveCourseGroupShareVo liveCourseGroup;
+
+    @ApiModelProperty("视频课信息")
+    private VideoLessonStudentVo videoGroup;
+
+    @ApiModelProperty("会员信息")
+    private MemberPriceSettingsVo vip;
+
+    public Long getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Long teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public MemberPriceSettingsVo getVip() {
+        return vip;
+    }
+
+    public void setVip(MemberPriceSettingsVo vip) {
+        this.vip = vip;
+    }
+
+    public VideoLessonStudentVo getVideoGroup() {
+        return videoGroup;
+    }
+
+    public void setVideoGroup(VideoLessonStudentVo videoGroup) {
+        this.videoGroup = videoGroup;
+    }
+
+    public LiveCourseGroupShareVo getLiveCourseGroup() {
+        return liveCourseGroup;
+    }
+
+    public void setLiveCourseGroup(LiveCourseGroupShareVo liveCourseGroup) {
+        this.liveCourseGroup = liveCourseGroup;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public MusicSheetDetailVo getMusicSheet() {
+        return musicSheet;
+    }
+
+    public void setMusicSheet(MusicSheetDetailVo musicSheet) {
+        this.musicSheet = musicSheet;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+}

+ 54 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MemberPriceSettingsController.java

@@ -0,0 +1,54 @@
+package com.yonge.cooleshow.teacher.controller;
+
+import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
+import com.yonge.cooleshow.biz.dal.entity.SysConfig;
+import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RequestMapping("memberPriceSettings")
+@Api(tags = "会员价格设置")
+@RestController
+public class MemberPriceSettingsController extends BaseController {
+	@Autowired
+	private MemberPriceSettingsService memberPriceSettingsService;
+	@Autowired
+	private SysConfigService sysConfigService;
+
+	/**
+	 * 查询单条
+	 */
+	@GetMapping("/detail/{id}")
+	@ApiOperation(value = "详情", notes = "传入id")
+	public HttpResponseResult<MemberPriceSettingsVo> detail(@PathVariable("id") Long id) {
+		return succeed(memberPriceSettingsService.detail(id));
+	}
+
+	@PostMapping("/list")
+	@ApiOperation(value = "查询列表")
+	public HttpResponseResult<List<MemberPriceSettingsVo>> list(@RequestBody MemberPriceSettingsSearch query) {
+		List<MemberPriceSettingsVo> list = memberPriceSettingsService.selectList(query);
+		return succeed(list);
+	}
+
+	@PostMapping("/vipPermissions")
+	@ApiOperation(value = "查询vip权限")
+	public HttpResponseResult<List<SysConfig>> vipPermissions() {
+		Map<String,Object> params = new HashMap<>();
+		params.put("group", "VIP_PERMISSION");
+		List<SysConfig> configs = sysConfigService.findAll(params);
+		return succeed(configs);
+	}
+
+
+}

+ 5 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

@@ -3,6 +3,8 @@ package com.yonge.cooleshow.teacher.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.search.ShareProfitParam;
+import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.common.enums.SysUserType;
 import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
@@ -148,4 +150,7 @@ public class MusicSheetController extends BaseController {
         }
         return succeed(musicSheetService.countTeacherMusicSheet(sysUser));
     }
+
+
+
 }

+ 5 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java

@@ -5,11 +5,13 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
+import com.yonge.cooleshow.biz.dal.dto.search.ShareProfitParam;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
 import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
 import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
+import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.BizException;
@@ -100,5 +102,8 @@ public class TeacherCourseGroupController extends BaseController {
         return Optional.ofNullable(sysUserFeignService.queryUserInfo())
                 .orElseThrow(() -> new BizException("用户不存在"));
     }
+
+
+
 }
 

+ 4 - 4
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VideoLessonGroupController.java

@@ -1,14 +1,12 @@
 package com.yonge.cooleshow.teacher.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.dto.search.ShareProfitParam;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
+import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.valid.AddGroup;
 import com.yonge.cooleshow.biz.dal.valid.UpdateGroup;
-import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupUpVo;
-import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo;
-import com.yonge.cooleshow.biz.dal.vo.VideoLessonStudentVo;
-import com.yonge.cooleshow.biz.dal.vo.VideoLessonVo;
 import com.yonge.toolset.base.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -153,4 +151,6 @@ public class VideoLessonGroupController extends BaseController {
         videoLessonGroupService.update(lessonVo,sysUser);
         return succeed();
     }
+
+
 }

+ 93 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/OpenShareController.java

@@ -0,0 +1,93 @@
+package com.yonge.cooleshow.teacher.controller.open;
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.search.ShareProfitParam;
+import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
+import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
+import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
+import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService;
+import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/open")
+@Api(value = "开放权限接口-分享", hidden = true)
+public class OpenShareController extends BaseController {
+    private final static Logger log = LoggerFactory.getLogger(OpenShareController.class);
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private VideoLessonGroupService videoLessonGroupService;
+
+    @Autowired
+    private MusicSheetService musicSheetService;
+
+    @Autowired
+    private MemberPriceSettingsService memberPriceSettingsService;
+
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CourseGroupService courseGroupService;
+
+    @ApiOperation(value = "老师乐谱分享分润")
+    @PostMapping(value="/musicShareProfit")
+    public HttpResponseResult<ShareProfitVo> shareMusicSheetProfit(@RequestBody ShareProfitParam param) {
+        SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(musicSheetService.shareMusicSheetProfit(sysUser,param.getBizId()));
+    }
+
+
+    @ApiOperation(value = "老师直播课分享分润")
+    @PostMapping(value= "/liveShareProfit")
+    public HttpResponseResult<ShareProfitVo> shareLiveCourseProfit(@RequestBody ShareProfitParam param) {
+        SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(courseGroupService.shareLiveCourseProfit(sysUser, param.getBizId()));
+    }
+
+
+
+    @ApiOperation(value = "老师视频课分享分润")
+    @PostMapping(value= "/videoShareProfit")
+    public HttpResponseResult<ShareProfitVo> shareVideoCourseProfit(@RequestBody ShareProfitParam param) {
+        SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(videoLessonGroupService.shareVideoCourseProfit(sysUser, param.getBizId()));
+    }
+
+
+
+    @ApiOperation(value = "老师VIP分享分润")
+    @PostMapping(value="/vipProfit")
+    public HttpResponseResult<ShareProfitVo> shareVipProfit(@RequestBody ShareProfitParam param) {
+        SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(memberPriceSettingsService.shareVipProfit(sysUser,param.getBizId()));
+    }
+}