Bläddra i källkod

Merge remote-tracking branch 'origin/feature/0721-tenant' into feature/0721-tenant

yuanliang 1 år sedan
förälder
incheckning
e03f7bbb70

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

@@ -13,11 +13,14 @@ import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import com.yonge.cooleshow.biz.dal.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.enums.AudioTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.service.CourseCoursewareService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
+import com.yonge.cooleshow.biz.dal.service.TenantAlbumMusicService;
 import com.yonge.cooleshow.biz.dal.vo.CourseCoursewareVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
 import org.apache.commons.collections.CollectionUtils;
@@ -56,6 +59,9 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
     @Autowired
     private TeacherDao teacherDao;
 
+    @Autowired
+    private TenantAlbumMusicService tenantAlbumMusicService;
+
 	@Override
     public CourseCoursewareVo detail(Long id) {
         return baseMapper.detail(id);
@@ -159,6 +165,20 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
             }
         }
 
+        // 查询老师所在机构存在机构曲目
+        if (query.getClientType().equals(ClientEnum.TEACHER)) {
+            TeacherVo detail = teacherDao.detail(query.getUserId());
+            if (detail != null) {
+                List<Long> musicSheetIds = tenantAlbumMusicService.getMusicIdsByTenantIds(detail.getTenantId());
+
+                for (CourseCoursewareVo record : records) {
+                    if (musicSheetIds.contains(record.getMusicSheetId())) {
+                        record.setStatus(YesOrNoEnum.YES);
+                    }
+                }
+            }
+        }
+
         courseCoursewareVoIPage.setRecords(records);
         return courseCoursewareVoIPage;
     }

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

@@ -939,7 +939,12 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         if(CollectionUtils.isNotEmpty(teacherSalaryList)){
             courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
             //写老师账户
-            addTeacherAccount(orderParam, teacherSalaryList, totalExpectPrice);
+
+            // 判断是否结算给老师,不结算,不写入老师入账记录
+            Teacher teacher = teacherService.getById(courseGroup.getTeacherId());
+            if (teacher != null && teacher.getIsSettlement() != null && teacher.getIsSettlement()) {
+                addTeacherAccount(orderParam, teacherSalaryList, totalExpectPrice);
+            }
         }
         log.info("buyLiveCourseSuccess ok");
         //课程购买成功后进行消息推送

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

@@ -1186,8 +1186,13 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         if (CollectionUtils.isNotEmpty(teacherSalaryList)) {
             courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
             log.info("buyPracticeCourseSuccess ok");
-            //写老师账户
-            addTeacherAccount(orderParam, teacherSalaryList);
+
+            // 判断是否结算给老师,不结算,不写入老师入账记录
+            Teacher teacher = teacherService.getById(teacherId);
+            if (teacher != null && teacher.getIsSettlement() != null && teacher.getIsSettlement()) {
+                //写老师账户
+                addTeacherAccount(orderParam, teacherSalaryList);
+            }
         }
 
         Set<Long> studentIds = new HashSet();

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

@@ -460,6 +460,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
     @Override
     public TenantAlbumWrapper.TenantAlbum detailAlbum(String albumId) {
         Long tenantAlbumId;
+        Integer size = 0;
         TenantAlbumWrapper.TenantAlbum album = new TenantAlbumWrapper.TenantAlbum();
         if (StringUtils.isEmpty(albumId)){
             //如果没传专辑id  则查询对应机构的专辑详情
@@ -486,6 +487,12 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
             tenantAlbumId = Long.parseLong(albumId);
         }
 
+        //获取对应机构专辑状态
+        TenantAlbum one = tenantAlbumService.lambdaQuery().eq(TenantAlbum::getId, tenantAlbumId).last("limit 1").one();
+        if (!ObjectUtil.isEmpty(one)){
+            album.setStatus(one.getStatus());
+        }
+
 
         //查询对应专辑的详情
         List<TenantAlbum> list = tenantAlbumService.lambdaQuery().eq(TenantAlbum::getStatus, true).eq(TenantAlbum::getId, tenantAlbumId).list();
@@ -504,7 +511,10 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         List<TenantAlbumMusic> tenantAlbumMusiclist = tenantAlbumMusicService.lambdaQuery().eq(TenantAlbumMusic::getTenantAlbumId, tenantAlbumId)
                 .eq(TenantAlbumMusic::getDelFlag,false).list();
         List<Long> MusicSheetIds = tenantAlbumMusiclist.stream().map(TenantAlbumMusic::getMusicSheetId).collect(Collectors.toList());
-        int size = MusicSheetIds.size();
+        if (CollectionUtils.isNotEmpty(MusicSheetIds)){
+            size = musicSheetService.lambdaQuery().in(MusicSheet::getId, MusicSheetIds).eq(MusicSheet::getState, true)
+                    .eq(MusicSheet::getDelFlag, false).count();
+        }
 
         //获取合奏曲目数量
         List<TenantAlbumMusic> ensembleLits = tenantAlbumMusicService.lambdaQuery().eq(TenantAlbumMusic::getSubjectType, "ENSEMBLE")
@@ -580,6 +590,13 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
 
         TenantAlbumWrapper.TenantAlbum album = new TenantAlbumWrapper.TenantAlbum();
 
+        //获取对应机构专辑状态
+        TenantAlbum one = tenantAlbumService.lambdaQuery().eq(TenantAlbum::getId, tenantAlbumId).last("limit 1").one();
+        if (!ObjectUtil.isEmpty(one)){
+            album.setStatus(one.getStatus());
+        }
+
+
         //查询对应专辑的详情
         List<TenantAlbum> list = tenantAlbumService.lambdaQuery().eq(TenantAlbum::getStatus, true).eq(TenantAlbum::getId, tenantAlbumId).list();
         if (CollectionUtils.isEmpty(list)){

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

@@ -179,6 +179,14 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         //musicSheet.setState(YesOrNoEnum.NO);
         this.saveOrUpdate(musicSheet);
 
+        if (StringUtil.isEmpty(musicSheet.getMusicSubject())
+                && musicSheet.getMusicSheetType().equals(MusicSheetTypeEnum.CONCERT)) {
+            this.lambdaUpdate()
+                    .eq(MusicSheet::getId, musicSheet.getId())
+                    .set(MusicSheet::getMusicSubject,"")
+                    .update();
+        }
+
         if (musicSheet.getAuditStatus() == null || AuthStatusEnum.DOING.getCode().equals(musicSheet.getAuditStatus().getCode())) {
             musicSheetAuthRecordService.setAuditDoing(musicSheet.getId(), originalMusicSheetId, lastMusicSheetId);
         }
@@ -209,6 +217,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
         Map<Long, TenantInfo> tenantInfoMap = tenantInfoService.getMapByIds(tenantIds);
         for (MusicSheetVo record : records) {
+            if (record.getSourceType() == null) {
+                break;
+            }
             switch (record.getSourceType()) {
                 case TENANT:
                     TenantInfo tenantInfo = tenantInfoMap.get(record.getUserId());
@@ -896,6 +907,14 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             musicSheet.setUpdateBy(userId);
             //musicSheet.setState(YesOrNoEnum.NO);
             this.saveOrUpdate(musicSheet);
+
+            if (StringUtil.isEmpty(musicSheet.getMusicSubject())
+                    && musicSheet.getMusicSheetType().equals(MusicSheetTypeEnum.CONCERT)) {
+                this.lambdaUpdate()
+                        .eq(MusicSheet::getId, musicSheet.getId())
+                        .set(MusicSheet::getMusicSubject,"")
+                        .update();
+            }
             if (musicSheet.getAuditStatus() == null || AuthStatusEnum.DOING.getCode().equals(musicSheet.getAuditStatus().getCode())) {
                 musicSheetAuthRecordService.setAuditDoing(musicSheet.getId(),originalMusicSheetId,lastMusicSheetId);
             }
@@ -1037,8 +1056,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 // 老师收入
                 BigDecimal teacherAmount = BigDecimal.ONE.subtract(serviceFee).multiply(expectPrice);
 
-                // 加入账户
-                addTeacherAccount(userOrderDetailVo, teacherAmount, userOrderDetailVo.getBizId());
+                // 判断是否结算给老师,不结算,不写入老师入账记录
+                Teacher teacher = teacherService.getById(musicSheet.getUserId());
+                if (teacher != null && teacher.getIsSettlement() != null && teacher.getIsSettlement()) {
+                    // 加入账户
+                    addTeacherAccount(userOrderDetailVo, teacherAmount, userOrderDetailVo.getBizId());
+                }
             }
         }
 

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

@@ -146,6 +146,9 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     private MusicAlbumService musicAlbumService;
 
     @Autowired
+    private TeacherService teacherService;
+
+    @Autowired
     private UserOrderService userOrderService;
 
     @Autowired
@@ -1261,23 +1264,31 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         if (null != orderDetailVo.getRecomUserId() && orderDetailVo.getRecomUserId() != 0
                 && !orderDetailVo.getRecomUserId().equals(orderDetailVo.getMerchId())
                 && !orderDetailVo.getUserId().equals(orderDetailVo.getRecomUserId())) {
-            //获取分润收益费率
-            BigDecimal shareFeeRate = getShareFreeByGoodType(orderDetailVo.getGoodType()
-                    , orderDetailVo.getBizId());
-            //入老师账户
-            BigDecimal shareFee = platformFee.multiply(shareFeeRate).setScale(2, RoundingMode.HALF_UP);
-            if (shareFee.compareTo(BigDecimal.ZERO) > 0) {
-                AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(orderDetailVo.getGoodType().getCode() + "_SHARE");
-                if (null != bizTypeEnum) {
-                    //插入分润老师账户变更记录-分润老师预收
-                    HttpResponseResult<UserAccountRecord> recomRecordRes = userAccountService.accountRecord(
-                            new UserAccountRecordDto(orderDetailVo.getRecomUserId(), PostStatusEnum.WAIT, shareFee, InOrOutEnum.IN,
-                                    bizTypeEnum, orderDetailVo.getBizId(), bizTypeEnum.getMsg(), orderDetailVo.getOrderNo(), orderDetailVo.getUserId(), accountPeriodTime));
-                    if (recomRecordRes.getStatus()) {
-                        //插入平台预支
-                        platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getRecomUserId(), shareFee,
-                                InOrOutEnum.OUT, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo(), accountPeriodTime);
-                        platformCashAccountRecordService.save(platformCashAccountRecord);
+
+            // 判断是否结算给分享人
+
+            // 判断是否结算给老师,不结算,不写入老师入账记录
+            Teacher teacher = teacherService.getById(orderDetailVo.getRecomUserId());
+            if (teacher != null && teacher.getIsSettlement() != null && teacher.getIsSettlement()) {
+
+                //获取分润收益费率
+                BigDecimal shareFeeRate = getShareFreeByGoodType(orderDetailVo.getGoodType()
+                        , orderDetailVo.getBizId());
+                //入老师账户
+                BigDecimal shareFee = platformFee.multiply(shareFeeRate).setScale(2, RoundingMode.HALF_UP);
+                if (shareFee.compareTo(BigDecimal.ZERO) > 0) {
+                    AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(orderDetailVo.getGoodType().getCode() + "_SHARE");
+                    if (null != bizTypeEnum) {
+                        //插入分润老师账户变更记录-分润老师预收
+                        HttpResponseResult<UserAccountRecord> recomRecordRes = userAccountService.accountRecord(
+                                new UserAccountRecordDto(orderDetailVo.getRecomUserId(), PostStatusEnum.WAIT, shareFee, InOrOutEnum.IN,
+                                        bizTypeEnum, orderDetailVo.getBizId(), bizTypeEnum.getMsg(), orderDetailVo.getOrderNo(), orderDetailVo.getUserId(), accountPeriodTime));
+                        if (recomRecordRes.getStatus()) {
+                            //插入平台预支
+                            platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getRecomUserId(), shareFee,
+                                    InOrOutEnum.OUT, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo(), accountPeriodTime);
+                            platformCashAccountRecordService.save(platformCashAccountRecord);
+                        }
                     }
                 }
             }

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

@@ -22,6 +22,7 @@ import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.mybatis.support.PageUtil;
+import com.yonge.toolset.utils.obj.ObjectUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.checkerframework.checker.units.qual.A;
@@ -280,7 +281,9 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
         }
         //获取对应机构专辑状态
         TenantAlbum one = tenantAlbumService.lambdaQuery().eq(TenantAlbum::getId, tenantAlbumId).last("limit 1").one();
-        album.setStatus(one.getStatus());
+        if (!ObjectUtil.isEmpty(one)){
+            album.setStatus(one.getStatus());
+        }
 
         StudentVo detail = detailStudent(sysUser.getId());
         // 判断是否是机构学生 机构学生 检测机构专辑购买记录

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

@@ -169,7 +169,12 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         //查询组信息
         VideoLessonGroup lessonGroup = videoLessonGroupDao.selectById(purchaseRecord.getVideoLessonGroupId());
         //记录流水
-        addTeacherAccount(orderParam, lessonGroup);
+
+        // 判断是否结算给老师,不结算,不写入老师入账记录
+        Teacher teacher = teacherService.getById(lessonGroup.getTeacherId());
+        if (teacher != null && teacher.getIsSettlement() != null && teacher.getIsSettlement()) {
+            addTeacherAccount(orderParam, lessonGroup);
+        }
         videoSend(lessonGroup.getTeacherId(), purchaseRecord.getStudentId(), lessonGroup);
 
         // 赠品曲目、专辑插入用户曲目购买记录表