|
@@ -343,20 +343,52 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
|
isUpdateUserMoney = true;
|
|
|
}
|
|
|
if (newOrder.getBalancePayFee() != null && newOrder.getBalancePayFee() > 0) {
|
|
|
+ //线上余额>0优先抵扣
|
|
|
+ Double onlineMoney = cmUserDao.findOnlineMoney(newOrder.getUserID());
|
|
|
+ Double userMoney = cmUserDao.findUserMoney(newOrder.getUserID());
|
|
|
+ //线上使用余额
|
|
|
+ Double onlineUseMoney = 0d;
|
|
|
+ //线下使用余额
|
|
|
+ Double userUseMoney = 0d;
|
|
|
+ //可用余额
|
|
|
+ Double ableUserMoney = cmUserDao.findAbleUserMoney(newOrder.getUserID());
|
|
|
+ if (onlineMoney > newOrder.getBalancePayFee()) {
|
|
|
+ onlineUseMoney = newOrder.getBalancePayFee();
|
|
|
+ } else {
|
|
|
+ userUseMoney = newOrder.getBalancePayFee() - onlineMoney;
|
|
|
+ }
|
|
|
+// ableUserMoney = MathUtil.sub(ableUserMoney, MathUtil.add(onlineUseMoney, userUseMoney)).doubleValue();
|
|
|
+// onlineMoney = MathUtil.sub(onlineMoney, onlineUseMoney).doubleValue();
|
|
|
+// userMoney = MathUtil.sub(userMoney, userUseMoney).doubleValue();
|
|
|
if (!isUpdateUserMoney) {
|
|
|
- // 更新用户余额
|
|
|
+ // 只更新用户可用余额,不从user表减线上/线下余额
|
|
|
cmUserDao.updateAbleUserMoney(newOrder.getBpOrderUserinfo());
|
|
|
}
|
|
|
- //添加余额收支记录
|
|
|
- CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
|
|
|
- cmUserBalanceRecord.setUserId(newOrder.getUserID());
|
|
|
- cmUserBalanceRecord.setType("2");
|
|
|
- cmUserBalanceRecord.setBalanceType("1");
|
|
|
- cmUserBalanceRecord.setAddDate(new Date());
|
|
|
- cmUserBalanceRecord.setAmount(String.valueOf(newOrder.getBalancePayFee()));
|
|
|
- cmUserBalanceRecord.setOrderId(newOrder.getOrderID());
|
|
|
- cmUserBalanceRecord.setDelFlag("0");
|
|
|
- cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
|
+ Date date = new Date();
|
|
|
+ if (onlineUseMoney > 0) {
|
|
|
+ //添加余额收支记录
|
|
|
+ CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
|
|
|
+ cmUserBalanceRecord.setUserId(newOrder.getUserID());
|
|
|
+ cmUserBalanceRecord.setType("2");
|
|
|
+ cmUserBalanceRecord.setBalanceType("10");
|
|
|
+ cmUserBalanceRecord.setAddDate(date);
|
|
|
+ cmUserBalanceRecord.setAmount(String.valueOf(onlineUseMoney));
|
|
|
+ cmUserBalanceRecord.setOrderId(newOrder.getOrderID());
|
|
|
+ cmUserBalanceRecord.setDelFlag("0");
|
|
|
+ cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
|
+ }
|
|
|
+ if (userUseMoney > 0) {
|
|
|
+ //添加余额收支记录
|
|
|
+ CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
|
|
|
+ cmUserBalanceRecord.setUserId(newOrder.getUserID());
|
|
|
+ cmUserBalanceRecord.setType("2");
|
|
|
+ cmUserBalanceRecord.setBalanceType("1");
|
|
|
+ cmUserBalanceRecord.setAddDate(date);
|
|
|
+ cmUserBalanceRecord.setAmount(String.valueOf(userUseMoney));
|
|
|
+ cmUserBalanceRecord.setOrderId(newOrder.getOrderID());
|
|
|
+ cmUserBalanceRecord.setDelFlag("0");
|
|
|
+ cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//订单客户
|