|
@@ -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");
|
|
|
}
|
|
|
|
|
|
/**
|