无关风月
2025-03-10 49fb5dff4e64c84572f9fad27ebd2969705d3eaf
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
4个文件已修改
77 ■■■■ 已修改文件
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -2266,4 +2266,6 @@
        return chargingOrderService.getNotPaymentChargingOrder();
    }
    
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -648,21 +648,19 @@
                        long times = rechargeAmount1.divide(s_total_amount, 0, RoundingMode.DOWN).longValue();
                        if(times > m){
                            //充电时间跨度两个计费策略,需要继续对下一个策略进行计算
                            serviceCharge = s_server_amount.multiply(new BigDecimal(m));
                            serviceCharge = serviceCharge.add(s_server_amount.multiply(new BigDecimal(m)));
                            rechargeAmount1 = rechargeAmount1.subtract(s_total_amount.multiply(new BigDecimal(m)));
                            if(null != discount){
                                discountAmount = discountAmount.add(serviceCharge.multiply(new BigDecimal(1).subtract(discount)));
                            }
                            nowTimeMillis = null;
                        }else{
                            serviceCharge = s_server_amount.multiply(new BigDecimal(times));
                            if(null != discount){
                                discountAmount = discountAmount.add(serviceCharge.multiply(new BigDecimal(1).subtract(discount)));
                            }
                            serviceCharge = serviceCharge.add(s_server_amount.multiply(new BigDecimal(times)));
                            break;
                        }
                    }
                }
                if(null != discount){
                    discountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(discount));
                }
                if(discountAmount.compareTo(BigDecimal.ZERO) >= 0){
                    //计算会员最大优惠金额
                    TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
@@ -673,9 +671,12 @@
                    }
                }
                discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN);
                if(discountAmount.compareTo(BigDecimal.ZERO) >= 0){
                    data.setChargeNum(data.getChargeNum() - 1);
                    appUserVipDetailClient.updateAppUserVipDetail(data);
                }
            }
        }
        
        //机子上显示的金额为用户充值的金额+会员折扣金额
        BigDecimal account_balance = chargingOrder.getRechargeAmount().add(discountAmount).setScale(4, RoundingMode.HALF_EVEN);
@@ -924,6 +925,18 @@
                    BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
                    chargingOrderRefund.setRefundFee(refund_fee);
                    chargingOrderRefundService.updateById(chargingOrderRefund);
                    //回退会员折扣次数
                    if(chargingOrder.getVipDiscountAmount().compareTo(BigDecimal.ZERO) > 0){
                        TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
                        GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
                        getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
                        getAppUserVipDetail.setVipId(appUser.getVipId());
                        TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
                        if(null != data){
                            data.setChargeNum(data.getChargeNum() + 1);
                            appUserVipDetailClient.updateAppUserVipDetail(data);
                        }
                    }
                }
            }
            if(2 == rechargePaymentType){
@@ -935,6 +948,19 @@
                RefundResp resp = aliPaymentClient.refund(dto).getData();
                if(null != resp){
                    chargingOrderRefundService.save(chargingOrderRefund);
                    //回退会员折扣次数
                    if(chargingOrder.getVipDiscountAmount().compareTo(BigDecimal.ZERO) > 0){
                        TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
                        GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
                        getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
                        getAppUserVipDetail.setVipId(appUser.getVipId());
                        TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
                        if(null != data){
                            data.setChargeNum(data.getChargeNum() + 1);
                            appUserVipDetailClient.updateAppUserVipDetail(data);
                        }
                    }
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
@@ -2075,10 +2101,10 @@
        if(null == chargingOrder){
            return R.ok();
        }
//        Integer status = chargingOrder.getStatus();
//        if(status == 5){
//            return R.ok();
//        }
        Integer status = chargingOrder.getStatus();
        if(status == 5){
            return R.ok();
        }
        
        //如果使用优惠券需要判断优惠券是否满足使用条件
        //根据实际的充电金额计算退款金额   退回费用=(原金额/总金额)*(总金额-实际充电金额)
@@ -3728,7 +3754,6 @@
        chargingOrder.setStatus(2);
        chargingOrder.setPayTime(LocalDateTime.now());
        chargingOrder.setChargeAmount(chargingOrder.getRechargeAmount());
        chargingOrder.setVipDiscountAmount(BigDecimal.ZERO);
        this.save(chargingOrder);
        
        Integer accountingStrategyId = tChargingGun.getAccountingStrategyId();
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
@@ -344,17 +344,29 @@
    @ApiOperation(value = "购买会员", tags = {"小程序-个人中心"})
    @GetMapping("/vipInfo/pay")
    public Object vipInfoPay(@RequestParam("vipId")Integer vipId,@RequestParam("buyType") Integer buyType,
        @RequestParam("payType") Integer payType
    ) {
        @RequestParam("payType") Integer payType) {
        LocalDateTime now = LocalDateTime.now();
        TVip byId = vipService.getById(vipId);
        if (byId==null){
            return R.ok("当前会员不存在,请刷新后重试。");
        }
        if(byId.getReveal() == 0){
            return R.ok("无效的会员");
        }
        if(1 == buyType && byId.getMonthlyCardDiscountReveal() == 0){
            return R.ok("无效的会员");
        }
        if(2 == buyType && byId.getSeasonCardDiscountReveal() == 0){
            return R.ok("无效的会员");
        }
        if(3 == buyType && byId.getAnnualCardReveal() == 0){
            return R.ok("无效的会员");
        }
        BigDecimal payMoney = BigDecimal.ZERO;
        BigDecimal discountMoney = BigDecimal.ZERO;
        BigDecimal discount = BigDecimal.ZERO;
        LocalDateTime now = LocalDateTime.now();
        switch (buyType){
            case 1:
                if (byId.getMonthlyCardDiscountStart()!=null&&(now.isAfter(byId.getMonthlyCardDiscountStart())&&now.isBefore(byId.getMonthlyCardDiscountEnd()))){
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
@@ -124,7 +124,7 @@
            paymentOrder.setAmount(shopOrder.getPaymentAmount());
            paymentOrder.setOpenId(user.getWxOpenid());
            paymentOrder.setDescription("购买会员");
            return    AjaxResult.success(wxPaymentClient.orderPay(paymentOrder).getData());
            return AjaxResult.success(wxPaymentClient.orderPay(paymentOrder).getData());
        }else {
            AliPaymentReq req = new AliPaymentReq();
            req.setOutTradeNo(shopOrder.getCode());