|
@@ -202,7 +202,7 @@ public class SubmitOrderListener {
|
|
|
isUseTransfee = Boolean.TRUE;
|
|
|
}
|
|
|
//把钱换算成积分
|
|
|
- actualItem = this.doGetOrderItemPoints(Arith.mul(useActualItem, 100), expiryQueue, orderNumber);
|
|
|
+ actualItem = this.doGetOrderItemPoints(Arith.mul(useActualItem, 100), expiryQueue, orderNumber,userId,mergerOrder.getPlatform());
|
|
|
//把积分换算成钱
|
|
|
if (actualItem > 0) {
|
|
|
actualItem = Arith.div(actualItem, 100);
|
|
@@ -398,10 +398,11 @@ public class SubmitOrderListener {
|
|
|
}
|
|
|
|
|
|
|
|
|
- private Double doGetOrderItemPoints(Double actualTotal, ArrayDeque<PointsRecord> expiryQueue, String orderNumber) {
|
|
|
+ private Double doGetOrderItemPoints(Double actualTotal, ArrayDeque<PointsRecord> expiryQueue, String orderNumber, String userId, Integer platform) {
|
|
|
PointsRecord pointsRecord = expiryQueue.poll();
|
|
|
PointsRecord pr = new PointsRecord();
|
|
|
if (pointsRecord != null) {
|
|
|
+ Long point = pointsRecordMapper.statisticsPoint(userId, platform);
|
|
|
//判定可用金额
|
|
|
BigDecimal points = pointsRecord.getPoints() != null ? pointsRecord.getPoints() : BigDecimal.ZERO;
|
|
|
BigDecimal variablePoints = pointsRecord.getVariablePoints() != null ? pointsRecord.getVariablePoints() : BigDecimal.ZERO;
|
|
@@ -432,18 +433,18 @@ public class SubmitOrderListener {
|
|
|
pr.setVariablePoints(BigDecimal.valueOf(actualTotal));
|
|
|
actualTotal = 0.0;
|
|
|
}
|
|
|
- pointsRecord.setCurrentlyAvailablePoints(pointsRecord.getPoints().subtract(pointsRecord.getVariablePoints()));
|
|
|
+ pointsRecord.setCurrentlyAvailablePoints(BigDecimal.valueOf(point).subtract(pointsRecord.getVariablePoints()));
|
|
|
int update = pointsRecordMapper.updateById(pointsRecord);
|
|
|
if (update > 0) {
|
|
|
pr.setId(null);
|
|
|
pr.setPointsType(2);
|
|
|
pr.setOrderNumber(orderNumber);
|
|
|
- pr.setCurrentlyAvailablePoints(pr.getPoints().subtract(pr.getVariablePoints()));
|
|
|
+ pr.setCurrentlyAvailablePoints(BigDecimal.valueOf(point).subtract(pr.getVariablePoints()));
|
|
|
pointsRecordMapper.insert(pr);
|
|
|
}
|
|
|
// 插入数据库
|
|
|
if (actualTotal > 0.0) {
|
|
|
- actualTotal = this.doGetOrderItemPoints(actualTotal, expiryQueue, orderNumber);
|
|
|
+ actualTotal = this.doGetOrderItemPoints(actualTotal, expiryQueue, orderNumber, userId, platform);
|
|
|
}
|
|
|
}
|
|
|
return actualTotal;
|