Bladeren bron

视频课手续费

cy 2 jaren geleden
bovenliggende
commit
58e8e66956

+ 30 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonPurchaseRecord.java

@@ -8,6 +8,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.math.BigDecimal;
+
 /**
  * 视频课购买记录表
  * @author yzp
@@ -31,20 +33,43 @@ public class VideoLessonPurchaseRecord extends BaseEntity {
 
     @TableField("purchase_time_")
     @ApiModelProperty(value = "购买时间")
-    private java.util.Date purchaseTime;  //购买时间
+    private java.util.Date purchaseTime;
+
+	@TableField("original_price_")
+	@ApiModelProperty(value = "原价")
+	private BigDecimal originalPrice;
+
+	@TableField("expect_price_")
+	@ApiModelProperty(value = "预计价格")
+	private BigDecimal expectPrice;
 
     @TableField("pay_money_")
     @ApiModelProperty(value = "支付金额")
-    private java.math.BigDecimal payMoney;  //支付金额
+    private BigDecimal payMoney;
 
     @TableField("order_no_")
     @ApiModelProperty(value = "订单流水号")
-    private String orderNo;  //订单流水号
+    private String orderNo;
 
     @TableField("order_status_")
-    @ApiModelProperty(value = "订单状态(1:已完成;0:取消)")
-    private Integer orderStatus;  //订单状态(1:已完成;0:取消)
+    @ApiModelProperty(value = "订单状态(1:已完成;0:取消/支付中)")
+    private Integer orderStatus;
+
+	public BigDecimal getOriginalPrice() {
+		return originalPrice;
+	}
+
+	public void setOriginalPrice(BigDecimal originalPrice) {
+		this.originalPrice = originalPrice;
+	}
+
+	public BigDecimal getExpectPrice() {
+		return expectPrice;
+	}
 
+	public void setExpectPrice(BigDecimal expectPrice) {
+		this.expectPrice = expectPrice;
+	}
 
 	public VideoLessonPurchaseRecord setId(Long id) {
 	    this.id = id;
@@ -109,10 +134,8 @@ public class VideoLessonPurchaseRecord extends BaseEntity {
 	    return this.orderStatus;
 	}
 
-
     @Override
     public String toString() {
         return ToStringBuilder.reflectionToString(this);
     }
-
 }

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

@@ -890,7 +890,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      */
     @Transactional(rollbackFor = Exception.class)
     public void buyPracticeCourseSuccess(UserOrderDetailVo orderParam) {
-        log.info("学生购买陪练课-成功-回调,请求参数:{}", JSON.toJSONString(orderParam));
+        log.info("buyPracticeCourseSuccess  param:{}", JSON.toJSONString(orderParam));
         String orderNo = orderParam.getOrderNo();
         List<CourseScheduleStudentPaymentVo> paymentList = paymentDao.selectPaymentList(orderNo);
         if (paymentList.isEmpty()) {
@@ -928,6 +928,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             teacherSalary.setCreateTime(now);
         }
         courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
+        log.info("buyPracticeCourseSuccess ok");
     }
 
     /**
@@ -952,6 +953,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         this.removeByIds(scheduleIds);
         //删除course_group数据
         courseGroupService.removeById(courseGroupId);
+        log.info("buyPracticeCourseFailed ok");
     }
 
     /**

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

@@ -13,10 +13,12 @@ import com.yonge.cooleshow.biz.dal.dao.VideoLessonPurchaseRecordDao;
 import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.service.UserAccountService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonPurchaseRecordService;
 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.cooleshow.common.exception.BizException;
 import org.slf4j.Logger;
@@ -27,6 +29,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 
 /**
@@ -49,6 +52,8 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
     private VideoLessonGroupDao videoLessonGroupDao;
     @Autowired
     private UserAccountService userAccountService;
+    @Autowired
+    private SysConfigService sysConfigService;
 
     public VideoLessonPurchaseRecordDao getDao() {
         return videoLessonPurchaseRecordDao;
@@ -81,15 +86,17 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         purchaseRecord.setOrderNo(orderNo);
         purchaseRecord.setStudentId(studentId);
         purchaseRecord.setOrderStatus(0);
+        purchaseRecord.setOriginalPrice(BigDecimal.valueOf(lessonGroup.getLessonPrice()));//原价
+        purchaseRecord.setExpectPrice(BigDecimal.valueOf(lessonGroup.getLessonPrice()));//预计价格
         videoLessonPurchaseRecordDao.insert(purchaseRecord);
 
         OrderCreateRes orderCreateRes = new OrderCreateRes();
         orderCreateRes.setRes(true);
         orderCreateRes.setMerchId(lessonGroup.getTeacherId());
         orderCreateRes.setBizId(orderReqInfo.getCouponId());
-        orderCreateRes.setOriginalPrice(BigDecimal.valueOf(lessonGroup.getLessonPrice()));
-        orderCreateRes.setExpectPrice(BigDecimal.valueOf(lessonGroup.getLessonPrice()));
-        orderCreateRes.setActualPrice(purchaseRecord.getPayMoney());
+        orderCreateRes.setOriginalPrice(BigDecimal.valueOf(lessonGroup.getLessonPrice()));//原价
+        orderCreateRes.setExpectPrice(BigDecimal.valueOf(lessonGroup.getLessonPrice()));//预计价格
+        orderCreateRes.setActualPrice(purchaseRecord.getPayMoney());//实际价格
         orderCreateRes.setGoodNum(lessonGroup.getLessonCount());
         orderCreateRes.setGoodType(GoodTypeEnum.VIDEO);
         HttpResponseResult<OrderCreateRes> httpResponseResult = new HttpResponseResult<>();
@@ -105,7 +112,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
      */
     @Transactional(rollbackFor = Exception.class)
     public void buyVideoCourseSuccess(UserOrderDetailVo orderParam) {
-        log.info("学生购买视频课-成功-回调,请求参数:{}", JSON.toJSONString(orderParam));
+        log.info("buyVideoCourseSuccess  param:{}", JSON.toJSONString(orderParam));
         String orderNo = orderParam.getOrderNo();
 
         VideoLessonPurchaseRecord purchaseRecord = videoLessonPurchaseRecordDao.selectOne(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
@@ -114,21 +121,29 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
             throw new BizException("课程组购买记录不存在!");
         }
 
-        //video_lesson_purchase_record中order_status_改为1
+        //支付状态改为1
         videoLessonPurchaseRecordDao.updateStatus(orderNo);
+
+        //查询直播课服务费
+        String videoServiceRateStr = sysConfigService.findConfigValue(SysConfigConstant.VIDEO_LESSON_SERVICE_FEE);
+        BigDecimal liveServiceRate = new BigDecimal(videoServiceRateStr).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
+
         //查询组信息
         VideoLessonGroup lessonGroup = videoLessonGroupDao.selectById(purchaseRecord.getVideoLessonGroupId());
 
         //记录流水
+        BigDecimal payMoney = purchaseRecord.getPayMoney();//学生支付金额
         UserAccountRecordDto userAccountRecord = new UserAccountRecordDto();
         userAccountRecord.setUserId(lessonGroup.getTeacherId());
-        userAccountRecord.setTransAmount(purchaseRecord.getPayMoney());
+        //扣除手续费后所得金额
+        userAccountRecord.setTransAmount(payMoney.subtract(payMoney.multiply(liveServiceRate)).setScale(2, RoundingMode.HALF_UP));
         userAccountRecord.setInOrOut(InOrOutEnum.IN);
         userAccountRecord.setBizType(AccountBizTypeEnum.VIDEO);
         userAccountRecord.setBizId(lessonGroup.getTeacherId());
         userAccountRecord.setBizName(lessonGroup.getLessonName());
         userAccountRecord.setOrderNo(orderNo);
         userAccountService.accountChange(userAccountRecord);
+        log.info("buyVideoCourseSuccess ok");
     }
 
     /**
@@ -149,6 +164,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         //删除video_lesson_purchase_record数据
         videoLessonPurchaseRecordDao.delete(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
                 .eq(VideoLessonPurchaseRecord::getOrderNo, orderNo));
+        log.info("buyVideoCourseFailed ok");
     }
 
     /**