jiaosong
2023-10-24 867caeae0bd2353c6cc9e79d7504efff303587c9
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -394,6 +394,8 @@
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    @Override
    public void closeGoodsorder( Goodsorder goodsorder ,int type ) {
        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        List<MemberRides> memberRides = getMemberRidesForClose(goodsorder.getId());
        //默认结算为押金金额
        BigDecimal closeMoney = new BigDecimal(0.00);
@@ -441,6 +443,7 @@
            refundDTO.setTotalAmount(goodsorder.getMoney());
            refundDTO.setMemberId(goodsorder.getMemberId());
            refundDTO.setReason(Constants.REFUND_TYPE.get(type).getName());
            refundDTO.setCreator(principal.getId());
            refundDTO.setType(type);
            Refund refund = wxMiniUtilService.wxRefund(refundDTO);
            update.setCloseId(refund.getId());
@@ -529,7 +532,7 @@
        BigDecimal refundMoney = total == null?new BigDecimal(0):Constants.formatDecimalNum(total.getMoney());
        //可退剩余 单位元
        BigDecimal canBalance =Constants.translateMoney(Constants.formatDecimalNum(goodsorder.getMoney()).subtract(refundMoney));
        if(canBalance.compareTo(money) > Constants.ZERO){
        if(canBalance.compareTo(money) >= Constants.ZERO){
            RefundDTO refundDTO = new RefundDTO();
            refundDTO.setOrderId(orderId);
            refundDTO.setCanBalance(canBalance);
@@ -565,7 +568,7 @@
        BigDecimal reduce =  total!=null?Constants.formatDecimalNum(total.getMoney()):new BigDecimal(0);
        goodsorderCanBanlanceDTO.setHasRefundMoney(Constants.translateMoney(reduce));
        BigDecimal subtract = Constants.translateMoney(goodsorder.getMoney()).subtract(goodsorderCanBanlanceDTO.getCloseMoney()).subtract(goodsorderCanBanlanceDTO.getHasRefundMoney());
        BigDecimal subtract = Constants.translateMoney(goodsorder.getMoney()).subtract(goodsorderCanBanlanceDTO.getHasRefundMoney());
        goodsorderCanBanlanceDTO.setCanBanlanceMoney(subtract.compareTo(new BigDecimal("0")) > 0 ? subtract : new BigDecimal("0"));
        return goodsorderCanBanlanceDTO;
    }