|
@@ -4,14 +4,12 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.caimei365.order.components.ProductService;
|
|
|
import com.caimei365.order.components.WeChatService;
|
|
|
-import com.caimei365.order.constant.Constant;
|
|
|
import com.caimei365.order.mapper.*;
|
|
|
import com.caimei365.order.model.ResponseJson;
|
|
|
-import com.caimei365.order.model.bo.PayParamBo;
|
|
|
+import com.caimei365.order.model.bo.OrderParamBo;
|
|
|
import com.caimei365.order.model.dto.RechargeDto;
|
|
|
-import com.caimei365.order.model.po.*;
|
|
|
import com.caimei365.order.model.dto.SubmitDto;
|
|
|
-import com.caimei365.order.model.bo.OrderParamBo;
|
|
|
+import com.caimei365.order.model.po.*;
|
|
|
import com.caimei365.order.model.vo.*;
|
|
|
import com.caimei365.order.service.RemoteCallService;
|
|
|
import com.caimei365.order.service.SubmitService;
|
|
@@ -29,7 +27,6 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
@@ -2520,7 +2517,23 @@ public class SubmitServiceImpl implements SubmitService {
|
|
|
* 由于余额抵扣过的子订单可以修改,有收款非余额抵扣的仅需改变子订单相关应收/应付金额
|
|
|
* 如果有余额抵扣,应计算余额抵扣金额,如果子订单应收总金额减少且余额抵扣金额大于应收,
|
|
|
* 则退还余额给用户,同时计算子订单的收款状态修改
|
|
|
+ *
|
|
|
+ * 未确认订单的余额抵扣记录还没有生成,额外逻辑处理
|
|
|
*/
|
|
|
+ if (0 == shopOrder.getStatus() && null != shopOrder.getAccountAmount() && MathUtil.compare(shopOrder.getAccountAmount(), 0) > 0) {
|
|
|
+ /**
|
|
|
+ * 涨价 余额不够抵扣,不做操作
|
|
|
+ * 降价 1.余额超出,退还余额 2.余额不够,不做操作
|
|
|
+ * 不变 不做操作
|
|
|
+ */
|
|
|
+ if (shopOrder.getNeedPayAmount() < shopOrder.getAccountAmount()) {
|
|
|
+ double updateMoney = MathUtil.sub(shopOrder.getAccountAmount(), shopOrder.getNeedPayAmount()).doubleValue();
|
|
|
+ // 差价+原金额
|
|
|
+ double ableUserMoney = MathUtil.add(baseMapper.getAbleUserMoney(shopOrder.getUserId()), updateMoney).doubleValue();
|
|
|
+ // 退还用户余额
|
|
|
+ orderClubMapper.updateAbleUserMoneyByUserId(ableUserMoney, shopOrder.getUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
List<BalanceRecordPo> records = baseMapper.findShopOrderBalanceRecord(shopOrder.getShopOrderId());
|
|
|
if (null != records && records.size() > 0) {
|
|
|
double total = records.stream().mapToDouble(BalanceRecordPo::getAmount).sum();
|