|
@@ -798,12 +798,15 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
if (expectPrice.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
return;
|
|
|
}
|
|
|
+ //获取账期时间
|
|
|
+ Date accountPeriodTime = getAccountPeriodTime(orderDetailVo);
|
|
|
+
|
|
|
//平台收入
|
|
|
//获取平台服务费率
|
|
|
BigDecimal platformFeeRate = getPlatformFreeByGoodType(orderDetailVo.getGoodType());
|
|
|
if (platformFeeRate.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
//没有卖家的为平台订单,平台全额收益
|
|
|
- if(null == orderDetailVo.getMerchId() || orderDetailVo.getMerchId().equals(0L)){
|
|
|
+ if (null == orderDetailVo.getMerchId() || orderDetailVo.getMerchId().equals(0L)) {
|
|
|
platformFeeRate = BigDecimal.ONE;
|
|
|
}
|
|
|
|
|
@@ -812,11 +815,12 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
PlatformCashAccountRecord platformCashAccountRecord;
|
|
|
if (GoodTypeEnum.PINAO_ROOM.equals(orderDetailVo.getGoodType())) {
|
|
|
platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getUserId(), platformFee,
|
|
|
- InOrOutEnum.IN, PostStatusEnum.RECORDED, AccountBizTypeEnum.PIAON_ROOM, orderDetailVo.getBizId(), orderDetailVo.getOrderNo());
|
|
|
+ InOrOutEnum.IN, PostStatusEnum.RECORDED, AccountBizTypeEnum.PIAON_ROOM, orderDetailVo.getBizId(),
|
|
|
+ orderDetailVo.getOrderNo(),accountPeriodTime);
|
|
|
} else {
|
|
|
AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(orderDetailVo.getGoodType().getCode());
|
|
|
platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getUserId(), platformFee,
|
|
|
- InOrOutEnum.IN, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo());
|
|
|
+ InOrOutEnum.IN, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo(),accountPeriodTime);
|
|
|
}
|
|
|
platformCashAccountRecordService.save(platformCashAccountRecord);
|
|
|
}
|
|
@@ -829,15 +833,15 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
//入老师账户
|
|
|
BigDecimal shareFee = expectPrice.multiply(shareFeeRate).setScale(2, RoundingMode.HALF_UP);
|
|
|
AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(orderDetailVo.getGoodType().getCode() + "_SHARE");
|
|
|
- if(null != bizTypeEnum){
|
|
|
+ if (null != bizTypeEnum) {
|
|
|
//插入分润老师账户变更记录-分润老师预收
|
|
|
HttpResponseResult<UserAccountRecord> recomRecordRes = userAccountService.accountRecord(
|
|
|
new UserAccountRecordDto(orderDetailVo.getRecomUserId(), PostStatusEnum.WAIT, shareFee, InOrOutEnum.IN,
|
|
|
bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getGoodName(), orderDetailVo.getOrderNo()));
|
|
|
- if(recomRecordRes.getStatus()){
|
|
|
+ if (recomRecordRes.getStatus()) {
|
|
|
//插入平台预支
|
|
|
PlatformCashAccountRecord platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getRecomUserId(), shareFee,
|
|
|
- InOrOutEnum.OUT, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo());
|
|
|
+ InOrOutEnum.OUT, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo(),accountPeriodTime);
|
|
|
platformCashAccountRecordService.save(platformCashAccountRecord);
|
|
|
}
|
|
|
}
|
|
@@ -846,6 +850,33 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 获取账期时间
|
|
|
+ *
|
|
|
+ * @param orderDetailVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Date getAccountPeriodTime(UserOrderDetailVo orderDetailVo) {
|
|
|
+ Calendar instance = Calendar.getInstance();
|
|
|
+ GoodTypeEnum goodType = orderDetailVo.getGoodType();
|
|
|
+
|
|
|
+ if (GoodTypeEnum.VIP.equals(goodType)) {
|
|
|
+ instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.VIP_ACCOUNT_PERIOD)));
|
|
|
+ } else if (GoodTypeEnum.VIDEO.equals(goodType)) {
|
|
|
+ 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.PRACTICE.equals(goodType)) {
|
|
|
+ instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_ACCOUNT_PERIOD)));
|
|
|
+ } else if (GoodTypeEnum.LIVE.equals(goodType)) {
|
|
|
+ //直播课取直播课成课时间+账期
|
|
|
+
|
|
|
+
|
|
|
+ instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_ACCOUNT_PERIOD)));
|
|
|
+ }
|
|
|
+ return instance.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 获取分润收益费率
|
|
|
*
|
|
|
* @param goodType
|