liweifan 3 lat temu
rodzic
commit
0846dbef2f

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

@@ -797,11 +797,15 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
             teacherSalary.setReduceSalary(ex.subtract(ac));
             //备注是为直播课手续费
             teacherSalary.setReduceSalaryRemark(SysConfigConstant.LIVE_SERVICE_RATE);
-            teacherSalaryList.add(teacherSalary);
+            if (teacherSalary.getExpectSalary().compareTo(BigDecimal.ZERO) > 0) {
+                teacherSalaryList.add(teacherSalary);
+            }
         });
-        courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
-        //写老师账户
-        addTeacherAccount(orderParam, teacherSalaryList, totalExpectPrice);
+        if(CollectionUtils.isNotEmpty(teacherSalaryList)){
+            courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
+            //写老师账户
+            addTeacherAccount(orderParam, teacherSalaryList, totalExpectPrice);
+        }
         log.info("buyLiveCourseSuccess ok");
         //课程购买成功后进行消息推送
         buyLiveSendMessage(studentPayment, courseGroup);
@@ -816,10 +820,12 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         List<UserAccountRecordDto> userAccountRecordDtos = new ArrayList<>();
         for (CourseScheduleTeacherSalary salary : teacherSalaryList) {
             UserAccountRecordDto dto = new UserAccountRecordDto(orderParam.getMerchId(), PostStatusEnum.WAIT, salary.getActualSalary(),
-                    InOrOutEnum.IN, AccountBizTypeEnum.LIVE, salary.getCourseScheduleId(), orderParam.getGoodName(), orderParam.getOrderNo(), orderParam.getUserId(),accountPeriodTime);
+                    InOrOutEnum.IN, AccountBizTypeEnum.LIVE, salary.getCourseScheduleId(), orderParam.getGoodName(), orderParam.getOrderNo(), orderParam.getUserId(), accountPeriodTime);
             userAccountRecordDtos.add(dto);
         }
-        userAccountService.accountRecord(userAccountRecordDtos);
+        if (CollectionUtils.isNotEmpty(userAccountRecordDtos)) {
+            userAccountService.accountRecord(userAccountRecordDtos);
+        }
     }
 
     /**

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

@@ -1115,16 +1115,20 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             teacherSalary.setReduceSalaryRemark(SysConfigConstant.PRACTICE_SERVICE_FEE);//扣除原因
             teacherSalary.setStatus(TeacherSalaryEnum.NOT_START.getCode());
             teacherSalary.setCreateTime(now);
-            teacherSalaryList.add(teacherSalary);
+
+            if (teacherSalary.getExpectSalary().compareTo(BigDecimal.ZERO) > 0) {
+                teacherSalaryList.add(teacherSalary);
+            }
 
             teacherId = payment.getTeacherId();
             studentId = payment.getUserId();
         }
-        courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
-        log.info("buyPracticeCourseSuccess ok");
-
-        //写老师账户
-        addTeacherAccount(orderParam, teacherSalaryList);
+        if(CollectionUtils.isNotEmpty(teacherSalaryList)){
+            courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
+            log.info("buyPracticeCourseSuccess ok");
+            //写老师账户
+            addTeacherAccount(orderParam, teacherSalaryList);
+        }
 
         Set<Long> studentIds = new HashSet();
         studentIds.add(studentId);
@@ -1155,7 +1159,10 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                     InOrOutEnum.IN, AccountBizTypeEnum.PRACTICE, salary.getCourseScheduleId(), orderParam.getGoodName(), orderParam.getOrderNo(), orderParam.getUserId(), accountPeriodTime);
             userAccountRecordDtos.add(dto);
         }
-        userAccountService.accountRecord(userAccountRecordDtos);
+
+        if (CollectionUtils.isNotEmpty(userAccountRecordDtos)) {
+            userAccountService.accountRecord(userAccountRecordDtos);
+        }
     }
 
     /**

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

@@ -21,6 +21,7 @@ import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.PlatformCashAccountRecordService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.vo.PlatformCashAccountRecordSummaryVo;
+import org.springframework.util.CollectionUtils;
 
 /**
  * 平台账户流水表(PlatformCashAccountRecord)表服务实现类
@@ -75,7 +76,11 @@ public class PlatformCashAccountRecordServiceImpl extends ServiceImpl<PlatformCa
 
         List<PlatformCashAccountRecord> list = getDao().queryCanAccountByBizType(paramNames);
         List<Long> recordIds = list.stream().map(PlatformCashAccountRecord::getId).collect(Collectors.toList());
-        getDao().batchRecorded(recordIds);
+        if(!CollectionUtils.isEmpty(recordIds)){
+            getDao().batchRecorded(recordIds);
+        }
+        //老师账户修改
+        userAccountRecordService.updateWaitRecord();
         return true;
     }
 

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

@@ -39,6 +39,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 
 @Service
@@ -68,7 +69,7 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         return detail;
     }
 
-    public UserAccountVo dealUserAccountVo(UserAccountVo detail){
+    public UserAccountVo dealUserAccountVo(UserAccountVo detail) {
         detail.setAmountUnrecorded(
                 null == detail.getAmountUnrecorded() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : detail.getAmountUnrecorded().setScale(2, RoundingMode.HALF_UP));
         detail.setAmountRecorded(
@@ -99,8 +100,13 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         if (CollectionUtils.isEmpty(accountRecordDtos)) {
             return HttpResponseResult.succeed();
         }
+        //0元过滤
+        List<UserAccountRecordDto> accountRecords = accountRecordDtos.stream().filter(o ->
+                BigDecimal.ZERO.compareTo(o.getTransAmount()) < 0
+        ).collect(Collectors.toList());
+
         //校验参数
-        for (UserAccountRecordDto accountRecordDto : accountRecordDtos) {
+        for (UserAccountRecordDto accountRecordDto : accountRecords) {
             if (null == accountRecordDto.getInOrOut()
                     || null == accountRecordDto.getPostStatus()
                     || (!PostStatusEnum.WAIT.equals(accountRecordDto.getPostStatus()) && !PostStatusEnum.FROZEN.equals(accountRecordDto.getPostStatus()))
@@ -123,7 +129,7 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
             }
         }
         //按照不同的账户分组
-        Map<Long, List<UserAccountRecordDto>> accountMap = accountRecordDtos.stream().collect(Collectors.groupingBy(UserAccountRecordDto::getAccountId));
+        Map<Long, List<UserAccountRecordDto>> accountMap = accountRecords.stream().collect(Collectors.groupingBy(UserAccountRecordDto::getAccountId));
         Set<Long> accountIds = accountMap.keySet();
 
         for (Long accountId : accountIds) {
@@ -418,23 +424,23 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
     public void mallTeacherRecordState(MallOrderItemDto shareDto) {
         // 平台修改收入状态
         if (shareDto.getStatus().equals(PostStatusEnum.RECORDED)) {
-            platformCashAccountRecordService.mallRecordedRecord(shareDto.getProductSkuId(),shareDto.getOrderSn(),GoodTypeEnum.MALL.getCode());
+            platformCashAccountRecordService.mallRecordedRecord(shareDto.getProductSkuId(), shareDto.getOrderSn(), GoodTypeEnum.MALL.getCode());
 
         } else if (shareDto.getStatus().equals(PostStatusEnum.CANCEL)) {
-            platformCashAccountRecordService.cancelRecord(shareDto.getOrderSn(),GoodTypeEnum.MALL.getCode(),shareDto.getProductSkuId());
+            platformCashAccountRecordService.cancelRecord(shareDto.getOrderSn(), GoodTypeEnum.MALL.getCode(), shareDto.getProductSkuId());
         }
 
 
         // 修改老师分润
         List<UserAccountRecord> list = userAccountRecordService.lambdaQuery()
-                                                               .eq(UserAccountRecord::getOrderNo, shareDto.getOrderSn())
-                                                               .eq(UserAccountRecord::getBizId, shareDto.getProductSkuId())
-                                                               .list();
+                .eq(UserAccountRecord::getOrderNo, shareDto.getOrderSn())
+                .eq(UserAccountRecord::getBizId, shareDto.getProductSkuId())
+                .list();
         if (CollectionUtils.isEmpty(list)) {
             return;
         }
         for (UserAccountRecord userAccount : list) {
-            this.accountChange(userAccount,shareDto.getStatus());
+            this.accountChange(userAccount, shareDto.getStatus());
         }
     }
 
@@ -473,7 +479,7 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         platformCashAccountRecordService.save(platformCashAccountRecord);
 
         //分润
-        if (null != shareDto.getPromoterId() && !shareDto.getPromoterId().equals(shareDto.getUserId()) && shareDto.getPromoterId() !=0) {
+        if (null != shareDto.getPromoterId() && !shareDto.getPromoterId().equals(shareDto.getUserId()) && shareDto.getPromoterId() != 0) {
             //获取分润收益费率
             BigDecimal shareFeeRate = userOrderService.getShareFreeByGoodType(GoodTypeEnum.MALL);
             if (shareFeeRate.compareTo(BigDecimal.ZERO) > 0) {
@@ -494,8 +500,8 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         }
     }
 
-    public AccountTotal dealAccountTotal(AccountTotal info){
-        if(null == info){
+    public AccountTotal dealAccountTotal(AccountTotal info) {
+        if (null == info) {
             info = new AccountTotal();
         }
         info.setTotalInAmount(

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

@@ -168,7 +168,6 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         BigDecimal serviceFeeAmount = actualPrice.multiply(liveServiceRate).setScale(2, RoundingMode.HALF_UP);
         //老师入账金额
         BigDecimal transAmount = actualPrice.subtract(serviceFeeAmount).setScale(2, RoundingMode.HALF_UP);
-
         //插入老师账户变更记录-老师预收
         userAccountService.accountRecord(
                 new UserAccountRecordDto(userOrderDetailVo.getMerchId(), PostStatusEnum.WAIT, transAmount, InOrOutEnum.IN,