浏览代码

add:曲目购买服务费

liujunchi 3 年之前
父节点
当前提交
327f5ad6b7

+ 27 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetPurchaseRecord.java

@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -47,10 +49,35 @@ public class MusicSheetPurchaseRecord extends BaseEntity {
     @ApiModelProperty(value = "购买价格")
     private java.math.BigDecimal purchasePrice;  //购买价格
 
+
+	@TableField("original_price_")
+	@ApiModelProperty(value = "原价")
+	private BigDecimal originalPrice;
+
+
+	@TableField("music_sheet_service_fee")
+	@ApiModelProperty("服务费")
+	private BigDecimal musicSheetServiceFee;
+
     @TableField("order_status_")
     @ApiModelProperty(value = "订单状态(1:已完成;0:取消)")
     private YesOrNoEnum orderStatus;  //订单状态(1:已完成;0:取消)
 
+	public BigDecimal getOriginalPrice() {
+		return originalPrice;
+	}
+
+	public void setOriginalPrice(BigDecimal originalPrice) {
+		this.originalPrice = originalPrice;
+	}
+
+	public BigDecimal getMusicSheetServiceFee() {
+		return musicSheetServiceFee;
+	}
+
+	public void setMusicSheetServiceFee(BigDecimal musicSheetServiceFee) {
+		this.musicSheetServiceFee = musicSheetServiceFee;
+	}
 
 	public MusicSheetPurchaseRecord setId(Long id) {
 	    this.id = id;

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

@@ -20,6 +20,7 @@ import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.*;
 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;
@@ -30,6 +31,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -57,6 +60,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
     private MusicFavoriteService musicFavoriteService;
 
     @Autowired
+    private SysConfigService sysConfigService;
+
+    @Autowired
     private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService;
 
     @Autowired
@@ -356,14 +362,28 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
     }
 
     @Override
+    @Transactional
     public void buyMusicSheetSuccess(UserOrderDetailVo userOrderDetailVo) {
+
+
+        // 曲目服务费比例
+        String musicSheetServiceFee= sysConfigService.findConfigValue(SysConfigConstant.MUSIC_SHEET_SERVICE_FEE);
+        BigDecimal serviceFee = new BigDecimal(musicSheetServiceFee).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
+        //支付金额
+        BigDecimal actualPrice = userOrderDetailVo.getActualPrice();
+
+        //服务费
+        BigDecimal serviceFeeAmount = actualPrice.multiply(serviceFee).setScale(2, RoundingMode.HALF_UP);
+
         // 保存购买记录
         MusicSheetPurchaseRecord musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
         musicSheetPurchaseRecord.setMusicSheetId(userOrderDetailVo.getBizId());
         musicSheetPurchaseRecord.setOrderNo(userOrderDetailVo.getOrderNo());
-        musicSheetPurchaseRecord.setPurchasePrice(userOrderDetailVo.getExpectPrice());
+        musicSheetPurchaseRecord.setPurchasePrice(actualPrice);
         musicSheetPurchaseRecord.setPurchaseTime(new Date());
         musicSheetPurchaseRecord.setTeacherId(userOrderDetailVo.getMerchId());
+        musicSheetPurchaseRecord.setOriginalPrice(userOrderDetailVo.getOriginalPrice());
+        musicSheetPurchaseRecord.setMusicSheetServiceFee(serviceFeeAmount);
         musicSheetPurchaseRecord.setOrderStatus(YesOrNoEnum.YES);
         musicSheetPurchaseRecord.setStudentId(userOrderDetailVo.getUserId());
         musicSheetPurchaseRecordService.save(musicSheetPurchaseRecord);
@@ -372,7 +392,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
         UserAccountRecordDto userAccountRecordDto = new UserAccountRecordDto();
         userAccountRecordDto.setUserId(userOrderDetailVo.getMerchId());
         userAccountRecordDto.setFrozenType(FrozenTypeEnum.NONE);
-        userAccountRecordDto.setTransAmount(musicSheetPurchaseRecord.getPurchasePrice());
+
+        //
+        userAccountRecordDto.setTransAmount(actualPrice.subtract(serviceFeeAmount).setScale(2, RoundingMode.HALF_UP));
         userAccountRecordDto.setInOrOut(InOrOutEnum.IN);
         userAccountRecordDto.setBizType(AccountBizTypeEnum.MUSIC);
         userAccountRecordDto.setBizId(musicSheetPurchaseRecord.getMusicSheetId());