|
@@ -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.support.PageUtil;
|
|
import com.yonge.cooleshow.biz.dal.vo.*;
|
|
import com.yonge.cooleshow.biz.dal.vo.*;
|
|
import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
|
|
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.entity.HttpResponseResult;
|
|
import com.yonge.cooleshow.common.exception.BizException;
|
|
import com.yonge.cooleshow.common.exception.BizException;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@@ -30,6 +31,8 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.math.RoundingMode;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -57,6 +60,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
private MusicFavoriteService musicFavoriteService;
|
|
private MusicFavoriteService musicFavoriteService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private SysConfigService sysConfigService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService;
|
|
private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
@@ -356,14 +362,28 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional
|
|
public void buyMusicSheetSuccess(UserOrderDetailVo userOrderDetailVo) {
|
|
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 musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
|
|
musicSheetPurchaseRecord.setMusicSheetId(userOrderDetailVo.getBizId());
|
|
musicSheetPurchaseRecord.setMusicSheetId(userOrderDetailVo.getBizId());
|
|
musicSheetPurchaseRecord.setOrderNo(userOrderDetailVo.getOrderNo());
|
|
musicSheetPurchaseRecord.setOrderNo(userOrderDetailVo.getOrderNo());
|
|
- musicSheetPurchaseRecord.setPurchasePrice(userOrderDetailVo.getExpectPrice());
|
|
|
|
|
|
+ musicSheetPurchaseRecord.setPurchasePrice(actualPrice);
|
|
musicSheetPurchaseRecord.setPurchaseTime(new Date());
|
|
musicSheetPurchaseRecord.setPurchaseTime(new Date());
|
|
musicSheetPurchaseRecord.setTeacherId(userOrderDetailVo.getMerchId());
|
|
musicSheetPurchaseRecord.setTeacherId(userOrderDetailVo.getMerchId());
|
|
|
|
+ musicSheetPurchaseRecord.setOriginalPrice(userOrderDetailVo.getOriginalPrice());
|
|
|
|
+ musicSheetPurchaseRecord.setMusicSheetServiceFee(serviceFeeAmount);
|
|
musicSheetPurchaseRecord.setOrderStatus(YesOrNoEnum.YES);
|
|
musicSheetPurchaseRecord.setOrderStatus(YesOrNoEnum.YES);
|
|
musicSheetPurchaseRecord.setStudentId(userOrderDetailVo.getUserId());
|
|
musicSheetPurchaseRecord.setStudentId(userOrderDetailVo.getUserId());
|
|
musicSheetPurchaseRecordService.save(musicSheetPurchaseRecord);
|
|
musicSheetPurchaseRecordService.save(musicSheetPurchaseRecord);
|
|
@@ -372,7 +392,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
UserAccountRecordDto userAccountRecordDto = new UserAccountRecordDto();
|
|
UserAccountRecordDto userAccountRecordDto = new UserAccountRecordDto();
|
|
userAccountRecordDto.setUserId(userOrderDetailVo.getMerchId());
|
|
userAccountRecordDto.setUserId(userOrderDetailVo.getMerchId());
|
|
userAccountRecordDto.setFrozenType(FrozenTypeEnum.NONE);
|
|
userAccountRecordDto.setFrozenType(FrozenTypeEnum.NONE);
|
|
- userAccountRecordDto.setTransAmount(musicSheetPurchaseRecord.getPurchasePrice());
|
|
|
|
|
|
+
|
|
|
|
+ //
|
|
|
|
+ userAccountRecordDto.setTransAmount(actualPrice.subtract(serviceFeeAmount).setScale(2, RoundingMode.HALF_UP));
|
|
userAccountRecordDto.setInOrOut(InOrOutEnum.IN);
|
|
userAccountRecordDto.setInOrOut(InOrOutEnum.IN);
|
|
userAccountRecordDto.setBizType(AccountBizTypeEnum.MUSIC);
|
|
userAccountRecordDto.setBizType(AccountBizTypeEnum.MUSIC);
|
|
userAccountRecordDto.setBizId(musicSheetPurchaseRecord.getMusicSheetId());
|
|
userAccountRecordDto.setBizId(musicSheetPurchaseRecord.getMusicSheetId());
|