无关风月
2024-10-23 94b0a6092c7bcc11bec5f8a3cbee3c46acf12a23
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
12个文件已修改
128 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
@@ -59,6 +59,11 @@
            public R<TAppCoupon> getAppCouponById(Long id) {
                return R.fail("根据id获取优惠券领取记录失败:" + throwable.getMessage());
            }
            @Override
            public R updateAppCoupon(TAppCoupon appCoupon) {
                return R.fail("修改用户优惠券失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
@@ -62,4 +62,13 @@
     */
    @PostMapping(value = "/t-app-coupon/getAppCouponById")
    R<TAppCoupon> getAppCouponById(@RequestParam("id") Long id);
    /**
     * 修改用户优惠券
     * @param appCoupon
     * @return
     */
    @PostMapping(value = "/t-app-coupon/updateAppCoupon")
    R updateAppCoupon(@RequestBody TAppCoupon appCoupon);
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java
@@ -13,7 +13,8 @@
    @ApiModelProperty(value = "uid")
    private String uid;
    @ApiModelProperty(value = "orderIdStr")
    private String orderIdStr;
    @ApiModelProperty(value = "充电订单")
    private TChargingOrder chargingOrder;
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -306,5 +306,16 @@
        TAppCoupon appCoupon = tAppCouponService.getById(id);
        return R.ok(appCoupon);
    }
    /**
     * 修改用户优惠券
     * @param appCoupon
     * @return
     */
    @PostMapping("/updateAppCoupon")
    public R updateAppCoupon(@RequestBody TAppCoupon appCoupon){
        tAppCouponService.updateById(appCoupon);
        return R.ok();
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -65,6 +65,9 @@
    @Autowired
    private SysUserClient sysUserClient;
    @Resource
    private IntegrationClient integrationClient;
    @Autowired
    public TAccountingStrategyController(TAccountingStrategyService accountingStrategyService, TAccountingStrategyDetailService accountingStrategyDetailService) {
@@ -118,7 +121,7 @@
        accountingStrategyService.save(dto);
        if(null != dto.getSiteId()){
            //下发硬件数据
            List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).list();
            List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).eq(TChargingPile::getDelFlag, 0).list();
            for (TChargingPile tChargingPile : list) {
                integrationClient.setupBillingModel1(tChargingPile.getCode());
            }
@@ -178,11 +181,6 @@
                });
                accountingStrategyDetailService.saveBatch(accountingStrategyDetails);
            }
            //下发硬件数据
            List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).list();
            for (TChargingPile tChargingPile : list) {
                integrationClient.setupBillingModel1(tChargingPile.getCode());
            }
        }else {
            // 删除计费策略明细信息
            accountingStrategyDetailService.remove(Wrappers.lambdaQuery(TAccountingStrategyDetail.class)
@@ -192,6 +190,14 @@
            // 添加明细
            dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId()));
            accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails());
        }
        if(null != dto.getSiteId()){
            //下发硬件数据
            List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).eq(TChargingPile::getDelFlag, 0).list();
            for (TChargingPile tChargingPile : list) {
                integrationClient.setupBillingModel1(tChargingPile.getCode());
            }
        }
        return AjaxResult.success();
    }
@@ -323,8 +329,7 @@
        return AjaxResult.ok(accountingStrategyService.pageList(query));
    }
    @Resource
    private IntegrationClient integrationClient;
    @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "审核")
    @PostMapping(value = "/auth/pass")
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -24,6 +24,7 @@
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.integration.api.feignClient.IntegrationClient;
import com.ruoyi.other.api.domain.TVip;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
import com.ruoyi.other.api.feignClient.UserSiteClient;
@@ -76,6 +77,9 @@
    private SysUserRoleClient sysUserRoleClient;
    @Resource
    private TParkingLotService parkingLotService;
    @Resource
    private IntegrationClient integrationClient;
    
    
@@ -395,5 +399,11 @@
            tChargingGun.setAccountingStrategyId(accountingStrategyId);
        }
        chargingGunService.updateBatchById(list);
        //下发硬件数据
        List<TChargingPile> list1 = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, id).eq(TChargingPile::getDelFlag, 0).list();
        for (TChargingPile tChargingPile : list1) {
            integrationClient.setupBillingModel1(tChargingPile.getCode());
        }
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -265,10 +265,15 @@
        Long count = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, orderId).count();
        payOrderChargingInfo.setPeriodCount(count);
        if (byId.getAppUserCarId()!=null) {
        List<Long> carid = new ArrayList<>();
        carid.add(byId.getAppUserCarId());
        R<List<TAppUserCar>> carByIds = appUserCarClient.getCarByIds(carid);
        payOrderChargingInfo.setCarNum(carByIds.getData().get(0).getLicensePlate());
        }
        payOrderChargingInfo.setStartTime(byId.getStartTime());
        payOrderChargingInfo.setEndTime(byId.getEndTime());
        payOrderChargingInfo.setTimeCount(payOrderChargingInfo.calculateDuration());
        return R.ok(payOrderChargingInfo);
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java
@@ -5,7 +5,7 @@
import com.ruoyi.order.api.model.TChargingOrder;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.Duration;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -37,4 +37,18 @@
    private String carNum;
    private TChargingOrder tChargingOrder;
    private Long periodCount;
    private String timeCount;
    public String calculateDuration() {
        if (startTime == null || endTime == null) {
            return "00:00:00";
        }
        Duration duration = Duration.between(startTime, endTime);
        long totalSeconds = duration.getSeconds();
        long hours = totalSeconds / 3600;
        long minutes = (totalSeconds % 3600) / 60;
        long seconds = totalSeconds % 60;
        return String.format("%02d:%02d:%02d", hours, minutes, seconds);
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -199,7 +199,7 @@
                }
                BigDecimal add = tChargingOrder.getElectrovalence().add(tChargingOrder.getServiceCharge());
                tChargingOrder.setTotalAmount(add.toString());
                tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount().toString());
                tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0");
                UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(tChargingOrder.getCode()).getData();
                if (data5!=null){
                    if (data5.getTime_remaining()!=null){
@@ -247,7 +247,7 @@
                if (tChargingOrder.getElectrovalence()!=null){
                    electrovalence = electrovalence.add(tChargingOrder.getElectrovalence());
                }
                if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() == 2){
                if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus()!=null && tChargingOrder.getRefundStatus()== 2){
                    refundAmount = refundAmount.add(tChargingOrder.getRefundAmount());
                }
                // 累加累计服务费
@@ -621,7 +621,7 @@
            chargingBillListVO.setPaymentAmount(paymentAmount);
            chargingBillListVO.setOrderAmount(orderAmount);
            chargingBillListVO.setElectrovalence(electrovalence);
            chargingBillListVO.setServiceCharge(serviceCharge);
            chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,RoundingMode.HALF_DOWN));
            chargingBillListVO.setCommissionAmount(commissionAmount);
            chargingBillListVO.setSharingAmount(sharingAmount);
            chargingBillListVO.setChargingCapacity(chargingCapacity);
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -916,30 +916,29 @@
                appUserTagClient.addUserTag(data1);
            }
        }
        //充电评率
        //充电频率
        List<TUserTag> userTagList2 = data.stream().filter(s -> s.getStandardCondition() == 2).collect(Collectors.toList());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (TUserTag tUserTag : userTagList2) {
            TAppUserTag appUserTag = new TAppUserTag();
            appUserTag.setAppUserId(chargingOrder.getAppUserId());
            appUserTag.setUserTagId(tUserTag.getId());
            TAppUserTag data1 = appUserTagClient.getUserTag(appUserTag).getData();
            if(null == data1){
                Integer day = JSON.parseObject(tUserTag.getConditions()).getInteger("day");
                Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
                Calendar start = Calendar.getInstance();
                start.set(Calendar.DAY_OF_YEAR, start.get(Calendar.DAY_OF_YEAR) + day);
            LocalDateTime endTime = LocalDateTime.now();
            endTime.plusDays(day);
            String start = tUserTag.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
            String end = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
                count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
                        .eq(TChargingOrder::getRechargePaymentStatus, 2).isNotNull(TChargingOrder::getPaymentAmount)
                        .between(TChargingOrder::getStartTime, sdf.format(start.getTime()), sdf.format(new Date())).eq(TChargingOrder::getDelFlag, 0));
                //加上本次充电
                if(count1 >= times){
                    .between(TChargingOrder::getStartTime, start, end).eq(TChargingOrder::getDelFlag, 0));
            if(null == data1 && (count1 + 1) >= times){
                    data1 = new TAppUserTag();
                    data1.setAppUserId(chargingOrder.getAppUserId());
                    data1.setUserTagId(tUserTag.getId());
                    data1.setCreateTime(LocalDateTime.now());
                    appUserTagClient.addUserTag(data1);
                }
            }
        }
    }
@@ -1807,6 +1806,9 @@
                        order.setCouponDiscountAmount(couponDiscountAmount);
                        payAmount = payAmount.subtract(couponDiscountAmount);
                    }
                    appCoupon.setStatus(2);
                    appCouponClient.updateAppCoupon(appCoupon);
                }else{
                    order.setAppCouponId(null);
                    order.setCouponDiscountAmount(BigDecimal.ZERO);
@@ -1829,6 +1831,9 @@
                        order.setCouponDiscountAmount(divide);
                        payAmount = payAmount.subtract(divide);
                    }
                    appCoupon.setStatus(2);
                    appCouponClient.updateAppCoupon(appCoupon);
                }else{
                    order.setAppCouponId(null);
                    order.setCouponDiscountAmount(BigDecimal.ZERO);
@@ -2617,12 +2622,13 @@
        info.setRefundAmount(chargingOrder.getRefundAmount());
        LocalDateTime startTime = chargingOrder.getStartTime();
        LocalDateTime endTime = chargingOrder.getEndTime();
        info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
        info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " " + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
        info.setStartHour(startTime.format(DateTimeFormatter.ofPattern("HH:mm")));
        info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
        info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " " + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
        info.setEndHour(endTime.format(DateTimeFormatter.ofPattern("HH:mm")));
        int hour = endTime.getHour() - startTime.getHour();
        int second = endTime.getMinute() - startTime.getMinute();
        long time = (endTime.toEpochSecond(ZoneOffset.UTC) - startTime.toEpochSecond(ZoneOffset.UTC)) / 60;
        long hour = time / 60;
        long second = time % 60;
        info.setDuration(0 == hour ? String.format("%s分钟", second) : String.format("%s小时%s分钟", hour, second));
        return info;
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java
@@ -76,6 +76,7 @@
                TShoppingOrder tShoppingOrder = shoppingOrders.stream().filter(shoppingOrder -> shoppingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null);
                setGoodsInfo(item,tShoppingOrder);
            }
            item.setOrderIdStr(item.getOrderId().toString());
        });
        list.forEach(e->e.setUid(e.getId().toString()));
        pageInfo.setRecords(list);
@@ -98,6 +99,7 @@
            TShoppingOrder tShoppingOrder = shoppingOrderMapper.selectById(orderAppeal.getOrderId());
            setGoodsInfo(orderAppealVO,tShoppingOrder);
        }
        orderAppealVO.setOrderIdStr(orderAppealVO.getOrderId().toString());
        return orderAppealVO;
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -162,9 +162,11 @@
    public List<OrderInvoiceList> getMyOrderInvoiceList(GetOrderInvoiceList query) {
        Long userId = tokenService.getLoginUserApplet().getUserId();
        Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize();
        List<TOrderInvoice> list = this.list(new LambdaQueryWrapper<TOrderInvoice>().eq(TOrderInvoice::getAppUserId, userId)
                .eq(TOrderInvoice::getStatus, query.getStatus()).orderByDesc(TOrderInvoice::getCreateTime)
                .last(" limit " + pageCurr + ", " + query.getPageSize()));
        LambdaQueryWrapper<TOrderInvoice> wrapper = new LambdaQueryWrapper<TOrderInvoice>().eq(TOrderInvoice::getAppUserId, userId);
        if(query.getStatus() != 1){
            wrapper.eq(TOrderInvoice::getStatus, query.getStatus());
        }
        List<TOrderInvoice> list = this.list(wrapper.orderByDesc(TOrderInvoice::getCreateTime).last(" limit " + pageCurr + ", " + query.getPageSize()));
        List<OrderInvoiceList> pageList = new ArrayList<>();
        for (TOrderInvoice tOrderInvoice : list) {
            OrderInvoiceList orderInvoiceList = new OrderInvoiceList();