luodangjia
2024-09-12 cab3810cada6499726ad2d584c84452fbfb107ee
Merge remote-tracking branch 'origin/master'
2个文件已添加
77个文件已修改
970 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/GunStatusStatisticsVO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StatusModeStatisticsVO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/dto/SettlementConfirmAdd.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TSettlementConfirm.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderInvoiceVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserRoleController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TCarportController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TMonitoringEquipmentController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingGunMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingGunService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TFaultMessageServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingLotServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingLotMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderQueryDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TActivityController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/THtmlController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TInvoiceTypeController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
@@ -41,7 +41,7 @@
            }
            @Override
            public R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(ExchangeRecordGoodsQuery couponId) {
            public R<List<ExchangeRecordVO>> getExchangeRecordByCouponId(ExchangeRecordGoodsQuery couponId) {
                return R.fail("根据优惠券id查询领取记录:"+throwable.getMessage());
            }
    
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
@@ -43,7 +43,7 @@
     * @return
     */
    @PostMapping("/t-app-coupon/getExchangeRecordByCouponId")
    R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId);
    R<List<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId);
    /**
     * 后台远程调用 给用户发放优惠券
     */
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java
@@ -37,5 +37,7 @@
    @ApiModelProperty(value = "优惠券id")
    private Integer couponId;
    @ApiModelProperty(value = " 是否删除0否1是 前端忽略")
    private Integer delFlag;
    private Boolean delFlag;
    @ApiModelProperty(value = " 是否删除0否1是 前端忽略")
    private Long id;
}
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
@@ -49,6 +49,11 @@
                return R.fail("根据枪编号获取充电枪失败:" + throwable.getMessage());
            }
            @Override
            public R<String> updateChargingGunById(TChargingGun chargingGun) {
                return R.fail("编辑充电枪失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
@@ -50,5 +50,12 @@
     */
    @PostMapping("/t-charging-gun/getChargingGunByCode/{code}")
    R<TChargingGun> getChargingGunByCode(@PathVariable("code") String code);
    /**
     * 编辑充电枪
     * @param chargingGun
     * @return
     */
    @PostMapping("/t-charging-gun/updateChargingGunById")
    R<String> updateChargingGunById(@RequestBody TChargingGun chargingGun);
}
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/GunStatusStatisticsVO.java
New file
@@ -0,0 +1,21 @@
package com.ruoyi.chargingPile.api.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
@Data
@ApiModel(value = "设备状态统计VO")
public class GunStatusStatisticsVO implements Serializable {
    @ApiModelProperty(value = "充电桩类型统计 key:充电模式(1=超级快充,2=快充,3=慢充)")
    private Map<Integer,Integer> modeStatistics;
    @ApiModelProperty(value = "状态统计 key:充电模式(1=离线,2=故障,3=充电中)")
    private Map<Integer,Integer> statusStatistics;
    @ApiModelProperty(value = "状态统计根据类型分组")
    private List<StatusModeStatisticsVO> statusModeStatistics;
}
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StatusModeStatisticsVO.java
New file
@@ -0,0 +1,33 @@
package com.ruoyi.chargingPile.api.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel(value = "状态统计根据类型分组VO")
public class StatusModeStatisticsVO implements Serializable {
    @ApiModelProperty(value = "充电模式(1=超级快充,2=快充,3=慢充)")
    private Integer chargeMode;
    @ApiModelProperty(value = "空闲")
    private Integer freeCount;
    @ApiModelProperty(value = "充满")
    private Integer filledCount;
    @ApiModelProperty(value = "插枪")
    private Integer insertCount;
    @ApiModelProperty(value = "充电中")
    private Integer chargingCount;
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/dto/SettlementConfirmAdd.java
@@ -1,11 +1,18 @@
package com.ruoyi.order.api.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TSettlementConfirm;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
@@ -21,6 +28,106 @@
    private String endTime;
    @ApiModelProperty(value = "点击去生成 传1 填完表格数据点击保存 传2")
    private Integer state;
    @ApiModelProperty(value = "保存的数据")
    private TSettlementConfirm data;
    @ApiModelProperty(value = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "合作商id")
    private Integer partnerId;
    @ApiModelProperty(value = "结算电费备注")
    private String remark;
    @ApiModelProperty(value = "结算服务费备注")
    private String serviceRemark;
    @ApiModelProperty(value = "计量电量(电量合计)")
    private BigDecimal meteringElectronic;
    @ApiModelProperty(value = "充电电量")
    private BigDecimal chargingElectronic;
    @ApiModelProperty(value = "电损电量")
    private BigDecimal lossElectronic;
    @ApiModelProperty(value = "收入合计")
    private BigDecimal income;
    @ApiModelProperty(value = "场地费")
    private BigDecimal venue;
    @ApiModelProperty(value = "计量电费")
    private BigDecimal metering;
    @ApiModelProperty(value = "清洁费")
    private BigDecimal clean;
    @ApiModelProperty(value = "日常维护费")
    private BigDecimal maintain;
    @ApiModelProperty(value = "成本")
    private BigDecimal cost;
    @ApiModelProperty(value = "合计可分配金额")
    private BigDecimal distribution;
    @ApiModelProperty(value = "利润")
    private BigDecimal profitMoney;
    @ApiModelProperty(value = "新能源利润")
    private BigDecimal newMoney;
    @ApiModelProperty(value = "新能源结算金额")
    private BigDecimal newSettlement;
    @ApiModelProperty(value = "供电局结算电费")
    private BigDecimal supplyElectronic;
    @ApiModelProperty(value = "合作商承担电损占比")
    private BigDecimal proportionPartner;
    @ApiModelProperty(value = "承担金额")
    private BigDecimal proportionMoney;
    @ApiModelProperty(value = "本期结算电费总金额 (实际电费转账)")
    private BigDecimal totalElectronic;
    @ApiModelProperty(value = "本期结算服务费总金额(实际服务费转账)")
    private BigDecimal totalService;
    @ApiModelProperty(value = "合作商充电服务费根据合同约定分成比例")
    private BigDecimal servicePartner;
    @ApiModelProperty(value = "合作商充电服务费根据合同约定分成金额")
    private BigDecimal serviceMoney;
    @ApiModelProperty(value = "三方收费(合计三方平台收费)")
    private BigDecimal sharingAmount;
    @ApiModelProperty(value = " 交易手续费 三方收费*0.06%")
    private BigDecimal commissionAmount;
    @ApiModelProperty(value = "充电电费计费(平台合计电费)")
    private BigDecimal electrovalence;
    @ApiModelProperty(value = "充电服务费计费(实收服务费)")
    private BigDecimal serviceCharge;
    @ApiModelProperty(value = "交易手续费计费")
    private BigDecimal orderCommission;
    @ApiModelProperty(value = "会员抵扣")
    private BigDecimal vipDiscount;
    @ApiModelProperty(value = "优惠券抵扣")
    private BigDecimal couponDiscount;
//    @ApiModelProperty(value = "类型(1=开始,2=结束)")
//    @TableField("type")
//    private Integer type;
//    @ApiModelProperty(value = "开始时间")
//    @TableField("start_time")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
//    private LocalDateTime startTime;
//    @ApiModelProperty(value = "结束时间")
//    @TableField("end_time")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
//    private LocalDateTime endTime;
    @ApiModelProperty(value = "站点名称")
    private String siteName;
    @ApiModelProperty(value = "合作商名称")
    private String partnerName;
    @ApiModelProperty(value = "uid")
    private String uid;
    @ApiModelProperty(value = "结账日期 2024年09月06日17:10:06至2024年09月06日17:10:06")
    private String time;
    @ApiModelProperty(value = "充电记录明细")
    private List<TChargingOrder> list;
    @ApiModelProperty(value = "收入合计涨幅/跌幅 正数为涨幅负数为跌幅 字段为空 说明没有上月记录 不展示涨幅跌幅")
    private String incomePercentage;
    @ApiModelProperty(value = "总利润涨幅/跌幅 正数为涨幅负数为跌幅 字段为空 说明没有上月记录 不展示涨幅跌幅")
    private String totalPercentage;
    @ApiModelProperty(value = "利用率")
    private String rate;
    @ApiModelProperty(value = "参与电力市场交易退补电费")
    private Integer electronicRefund;
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -113,6 +113,11 @@
            public R<String> updateChargingOrder(TChargingOrder chargingOrder) {
                return R.fail("修改充电订单失败:" + throwable.getMessage());
            }
            @Override
            public R<String> stopCharging(String id) {
                return R.fail("手动停止充电失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
@@ -4,6 +4,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ChargingOrderGroup;
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.order.api.factory.ChargingOrderFallbackFactory;
import com.ruoyi.order.api.model.ChargingListQuery;
import com.ruoyi.order.api.model.TChargingOrder;
@@ -12,6 +13,8 @@
import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery;
import com.ruoyi.order.api.vo.ChargingBillVO;
import com.ruoyi.order.api.vo.SettlementTotalVO;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import com.ruoyi.order.api.vo.GetChargingOrderByLicensePlate;
import org.springframework.cloud.openfeign.FeignClient;
@@ -126,4 +129,12 @@
     */
    @PostMapping("/t-charging-order/updateChargingOrder")
    R<String> updateChargingOrder(@RequestBody TChargingOrder chargingOrder);
    /**
     * 手动停止充电
     * @param id
     * @return
     */
    @PutMapping(value = "/t-charging-order/stopCharging/{id}")
    R<String> stopCharging(@PathVariable("id") String id);
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TSettlementConfirm.java
@@ -133,39 +133,16 @@
    @TableField("coupon_discount")
    private BigDecimal couponDiscount;
    @ApiModelProperty(value = "类型(1=开始,2=结束)")
    @TableField("type")
    private Integer type;
    @ApiModelProperty(value = "开始时间")
    @TableField("start_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime startTime;
    @ApiModelProperty(value = "结束时间")
    @TableField("end_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime endTime;
    @ApiModelProperty(value = "站点名称")
    @TableField(exist = false)
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderInvoiceVO.java
@@ -6,6 +6,7 @@
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel(value = "发票管理VO")
@@ -27,5 +28,7 @@
    private BigDecimal addedService;
    @ApiModelProperty(value = "用户电话")
    private String userPhone;
    @ApiModelProperty(value = "充电订单ids")
    private List<String> ids;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java
@@ -39,7 +39,6 @@
    /**
     * 获取参数配置列表
     */
    @RequiresPermissions("system:config:list")
    @GetMapping("/list")
    public TableDataInfo list(SysConfig config) {
        startPage();
@@ -48,7 +47,6 @@
    }
    
    @Log(title = "参数管理", businessType = BusinessType.EXPORT)
    @RequiresPermissions("system:config:export")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysConfig config) {
        List<SysConfig> list = configService.selectConfigList(config);
@@ -75,7 +73,6 @@
    /**
     * 新增参数配置
     */
    @RequiresPermissions("system:config:add")
    @Log(title = "参数管理", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysConfig config) {
@@ -89,7 +86,6 @@
    /**
     * 修改参数配置
     */
    @RequiresPermissions("system:config:edit")
    @Log(title = "参数管理", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@Validated @RequestBody SysConfig config) {
@@ -103,7 +99,6 @@
    /**
     * 删除参数配置
     */
    @RequiresPermissions("system:config:remove")
    @Log(title = "参数管理", businessType = BusinessType.DELETE)
    @DeleteMapping("/{configIds}")
    public AjaxResult remove(@PathVariable Long[] configIds) {
@@ -114,7 +109,6 @@
    /**
     * 刷新参数缓存
     */
    @RequiresPermissions("system:config:remove")
    @Log(title = "参数管理", businessType = BusinessType.CLEAN)
    @DeleteMapping("/refreshCache")
    public AjaxResult refreshCache() {
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java
@@ -39,7 +39,6 @@
    /**
     * 获取部门列表
     */
    @RequiresPermissions("system:dept:list")
    @GetMapping("/list")
    public AjaxResult list(SysDept dept)
    {
@@ -50,7 +49,6 @@
    /**
     * 查询部门列表(排除节点)
     */
    @RequiresPermissions("system:dept:list")
    @GetMapping("/list/exclude/{deptId}")
    public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
    {
@@ -62,7 +60,6 @@
    /**
     * 根据部门编号获取详细信息
     */
    @RequiresPermissions("system:dept:query")
    @GetMapping(value = "/{deptId}")
    public AjaxResult getInfo(@PathVariable Long deptId)
    {
@@ -73,7 +70,6 @@
    /**
     * 新增部门
     */
    @RequiresPermissions("system:dept:add")
    @Log(title = "部门管理", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysDept dept)
@@ -89,7 +85,6 @@
    /**
     * 修改部门
     */
    @RequiresPermissions("system:dept:edit")
    @Log(title = "部门管理", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@Validated @RequestBody SysDept dept)
@@ -115,7 +110,6 @@
    /**
     * 删除部门
     */
    @RequiresPermissions("system:dept:remove")
    @Log(title = "部门管理", businessType = BusinessType.DELETE)
    @DeleteMapping("/{deptId}")
    public AjaxResult remove(@PathVariable Long deptId)
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java
@@ -42,7 +42,6 @@
    @Autowired
    private ISysDictTypeService dictTypeService;
    @RequiresPermissions("system:dict:list")
    @GetMapping("/list")
    public TableDataInfo list(SysDictData dictData)
    {
@@ -52,7 +51,6 @@
    }
    @Log(title = "字典数据", businessType = BusinessType.EXPORT)
    @RequiresPermissions("system:dict:export")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysDictData dictData)
    {
@@ -64,7 +62,6 @@
    /**
     * 查询字典数据详细
     */
    @RequiresPermissions("system:dict:query")
    @GetMapping(value = "/{dictCode}")
    public AjaxResult getInfo(@PathVariable Long dictCode)
    {
@@ -88,7 +85,6 @@
    /**
     * 新增字典类型
     */
    @RequiresPermissions("system:dict:add")
    @Log(title = "字典数据", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysDictData dict)
@@ -100,7 +96,6 @@
    /**
     * 修改保存字典类型
     */
    @RequiresPermissions("system:dict:edit")
    @Log(title = "字典数据", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@Validated @RequestBody SysDictData dict)
@@ -112,7 +107,6 @@
    /**
     * 删除字典类型
     */
    @RequiresPermissions("system:dict:remove")
    @Log(title = "字典类型", businessType = BusinessType.DELETE)
    @DeleteMapping("/{dictCodes}")
    public AjaxResult remove(@PathVariable Long[] dictCodes)
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java
@@ -36,7 +36,6 @@
    @Autowired
    private ISysDictTypeService dictTypeService;
    @RequiresPermissions("system:dict:list")
    @GetMapping("/list")
    public TableDataInfo list(SysDictType dictType)
    {
@@ -46,7 +45,6 @@
    }
    @Log(title = "字典类型", businessType = BusinessType.EXPORT)
    @RequiresPermissions("system:dict:export")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysDictType dictType)
    {
@@ -58,7 +56,6 @@
    /**
     * 查询字典类型详细
     */
    @RequiresPermissions("system:dict:query")
    @GetMapping(value = "/{dictId}")
    public AjaxResult getInfo(@PathVariable Long dictId)
    {
@@ -68,7 +65,6 @@
    /**
     * 新增字典类型
     */
    @RequiresPermissions("system:dict:add")
    @Log(title = "字典类型", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysDictType dict)
@@ -84,7 +80,6 @@
    /**
     * 修改字典类型
     */
    @RequiresPermissions("system:dict:edit")
    @Log(title = "字典类型", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@Validated @RequestBody SysDictType dict)
@@ -100,7 +95,6 @@
    /**
     * 删除字典类型
     */
    @RequiresPermissions("system:dict:remove")
    @Log(title = "字典类型", businessType = BusinessType.DELETE)
    @DeleteMapping("/{dictIds}")
    public AjaxResult remove(@PathVariable Long[] dictIds)
@@ -112,7 +106,6 @@
    /**
     * 刷新字典缓存
     */
    @RequiresPermissions("system:dict:remove")
    @Log(title = "字典类型", businessType = BusinessType.CLEAN)
    @DeleteMapping("/refreshCache")
    public AjaxResult refreshCache()
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java
@@ -56,7 +56,6 @@
    /**
     * 根据菜单编号获取详细信息
     */
    @RequiresPermissions("system:menu:query")
    @GetMapping(value = "/{menuId}")
    public AjaxResult getInfo(@PathVariable Long menuId)
    {
@@ -98,7 +97,6 @@
    /**
     * 新增菜单
     */
    @RequiresPermissions("system:menu:add")
    @Log(title = "菜单管理", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysMenu menu)
@@ -118,7 +116,6 @@
    /**
     * 修改菜单
     */
    @RequiresPermissions("system:menu:edit")
    @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@Validated @RequestBody SysMenu menu)
@@ -142,7 +139,6 @@
    /**
     * 删除菜单
     */
    @RequiresPermissions("system:menu:remove")
    @Log(title = "菜单管理", businessType = BusinessType.DELETE)
    @DeleteMapping("/{menuId}")
    public AjaxResult remove(@PathVariable("menuId") Long menuId)
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java
@@ -37,7 +37,6 @@
    /**
     * 获取通知公告列表
     */
    @RequiresPermissions("system:notice:list")
    @GetMapping("/list")
    public TableDataInfo list(SysNotice notice)
    {
@@ -49,7 +48,6 @@
    /**
     * 根据通知公告编号获取详细信息
     */
    @RequiresPermissions("system:notice:query")
    @GetMapping(value = "/{noticeId}")
    public AjaxResult getInfo(@PathVariable Long noticeId)
    {
@@ -59,7 +57,6 @@
    /**
     * 新增通知公告
     */
    @RequiresPermissions("system:notice:add")
    @Log(title = "通知公告", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysNotice notice)
@@ -71,7 +68,6 @@
    /**
     * 修改通知公告
     */
    @RequiresPermissions("system:notice:edit")
    @Log(title = "通知公告", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@Validated @RequestBody SysNotice notice)
@@ -83,7 +79,6 @@
    /**
     * 删除通知公告
     */
    @RequiresPermissions("system:notice:remove")
    @Log(title = "通知公告", businessType = BusinessType.DELETE)
    @DeleteMapping("/{noticeIds}")
    public AjaxResult remove(@PathVariable Long[] noticeIds)
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java
@@ -61,7 +61,6 @@
    
    
    @Log(title = "操作日志", businessType = BusinessType.EXPORT)
    @RequiresPermissions("system:operlog:export")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysOperLog operLog) {
        List<SysOperLog> list = operLogService.selectOperLogList(operLog);
@@ -70,13 +69,11 @@
    }
    
    @Log(title = "操作日志", businessType = BusinessType.DELETE)
    @RequiresPermissions("system:operlog:remove")
    @DeleteMapping("/{operIds}")
    public AjaxResult remove(@PathVariable Long[] operIds) {
        return toAjax(operLogService.deleteOperLogByIds(operIds));
    }
    
    @RequiresPermissions("system:operlog:remove")
    @Log(title = "操作日志", businessType = BusinessType.CLEAN)
    @DeleteMapping("/clean")
    public AjaxResult clean() {
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java
@@ -39,7 +39,6 @@
    /**
     * 获取岗位列表
     */
    @RequiresPermissions("system:post:list")
    @GetMapping("/list")
    public TableDataInfo list(SysPost post)
    {
@@ -49,7 +48,6 @@
    }
    @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
    @RequiresPermissions("system:post:export")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysPost post)
    {
@@ -61,7 +59,6 @@
    /**
     * 根据岗位编号获取详细信息
     */
    @RequiresPermissions("system:post:query")
    @GetMapping(value = "/{postId}")
    public AjaxResult getInfo(@PathVariable Long postId)
    {
@@ -71,7 +68,6 @@
    /**
     * 新增岗位
     */
    @RequiresPermissions("system:post:add")
    @Log(title = "岗位管理", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysPost post)
@@ -91,7 +87,6 @@
    /**
     * 修改岗位
     */
    @RequiresPermissions("system:post:edit")
    @Log(title = "岗位管理", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@Validated @RequestBody SysPost post)
@@ -111,7 +106,6 @@
    /**
     * 删除岗位
     */
    @RequiresPermissions("system:post:remove")
    @Log(title = "岗位管理", businessType = BusinessType.DELETE)
    @DeleteMapping("/{postIds}")
    public AjaxResult remove(@PathVariable Long[] postIds)
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -252,7 +252,6 @@
    /**
     * 删除角色
     */
    @RequiresPermissions("system:role:remove")
    @Log(title = "角色管理", businessType = BusinessType.DELETE)
    @DeleteMapping("/{roleIds}")
    @ApiOperation(value = "删除角色", tags = {"管理后台-角色管理"})
@@ -264,7 +263,6 @@
    /**
     * 查询已分配用户角色列表
     */
    @RequiresPermissions("system:role:list")
    @GetMapping("/authUser/allocatedList")
    public TableDataInfo allocatedList(SysUser user) {
        startPage();
@@ -275,7 +273,6 @@
    /**
     * 查询未分配用户角色列表
     */
    @RequiresPermissions("system:role:list")
    @GetMapping("/authUser/unallocatedList")
    public TableDataInfo unallocatedList(SysUser user) {
        startPage();
@@ -287,7 +284,6 @@
    /**
     * 获取对应角色部门树列表
     */
    @RequiresPermissions("system:role:query")
    @GetMapping(value = "/deptTree/{roleId}")
    public AjaxResult deptTree(@PathVariable("roleId") Long roleId) {
        AjaxResult ajax = AjaxResult.success();
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -524,7 +524,6 @@
    /**
     * 重置密码
     */
    @RequiresPermissions("system:user:edit")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @PutMapping("/resetPwd")
    @ApiOperation(value = "重置密码", tags = {"管理后台-系统用户管理"})
@@ -539,7 +538,6 @@
    /**
     * 状态修改
     */
    @RequiresPermissions("system:user:edit")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @PutMapping("/changeStatus")
    public AjaxResult changeStatus(@RequestBody SysUser user) {
@@ -552,7 +550,6 @@
    /**
     * 根据用户编号获取授权角色
     */
    @RequiresPermissions("system:user:query")
    @GetMapping("/authRole/{userId}")
    public AjaxResult authRole(@PathVariable("userId") Long userId) {
        AjaxResult ajax = AjaxResult.success();
@@ -566,7 +563,6 @@
    /**
     * 用户授权角色
     */
    @RequiresPermissions("system:user:edit")
    @Log(title = "用户管理", businessType = BusinessType.GRANT)
    @PutMapping("/authRole")
    public AjaxResult insertAuthRole(Long userId, Long[] roleIds) {
@@ -578,7 +574,6 @@
    /**
     * 获取部门树列表
     */
    @RequiresPermissions("system:user:list")
    @GetMapping("/deptTree")
    public AjaxResult deptTree(SysDept dept) {
        return success(deptService.selectDeptTreeList(dept));
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java
@@ -39,7 +39,6 @@
    @Autowired
    private RedisService redisService;
    @RequiresPermissions("monitor:online:list")
    @GetMapping("/list")
    public TableDataInfo list(String ipaddr, String userName)
    {
@@ -73,7 +72,6 @@
    /**
     * 强退用户
     */
    @RequiresPermissions("monitor:online:forceLogout")
    @Log(title = "在线用户", businessType = BusinessType.FORCE)
    @DeleteMapping("/{tokenId}")
    public AjaxResult forceLogout(@PathVariable String tokenId)
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserRoleController.java
@@ -37,7 +37,6 @@
    /**
     * 查询用户和角色关联列表
     */
    @RequiresPermissions("car:role:list")
    @GetMapping("/list")
    public TableDataInfo list(SysUserRole sysUserRole) {
        startPage();
@@ -48,7 +47,6 @@
    /**
     * 导出用户和角色关联列表
     */
    @RequiresPermissions("car:role:export")
    @Log(title = "用户和角色关联", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysUserRole sysUserRole) {
@@ -60,7 +58,6 @@
    /**
     * 获取用户和角色关联详细信息
     */
    @RequiresPermissions("car:role:query")
    @GetMapping(value = "/{userId}")
    public AjaxResult getInfo(@PathVariable("userId") Long userId) {
        return success(sysUserRoleService.selectSysUserRoleByUserId(userId));
@@ -69,7 +66,6 @@
    /**
     * 新增用户和角色关联
     */
    @RequiresPermissions("car:role:add")
    @Log(title = "用户和角色关联", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SysUserRole sysUserRole) {
@@ -79,7 +75,6 @@
    /**
     * 修改用户和角色关联
     */
    @RequiresPermissions("car:role:edit")
    @Log(title = "用户和角色关联", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SysUserRole sysUserRole) {
@@ -89,7 +84,6 @@
    /**
     * 删除用户和角色关联
     */
    @RequiresPermissions("car:role:remove")
    @Log(title = "用户和角色关联", businessType = BusinessType.DELETE)
    @DeleteMapping("/{userIds}")
    public AjaxResult remove(@PathVariable Long[] userIds) {
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -202,7 +202,7 @@
     * @return
     */
    @PostMapping("/getExchangeRecordByCouponId")
    public R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId){
    public R<List<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId){
        return R.ok(tAppCouponService.pagelist(couponId));
    }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -26,6 +26,9 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.domain.BasePojo;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.auth.AuthUtil;
import com.ruoyi.common.security.service.TokenService;
@@ -114,6 +117,8 @@
    private VipClient vipClient;
    @Resource
    private TInviteUserService inviteUserService;
    @Resource
    private GiveVipUtil giveVipUtil;
    /**
@@ -149,8 +154,9 @@
    public R<List<Long>> getUserIdsByPhone(@RequestParam("phone") String phone) {
        return R.ok(appUserService.list(new QueryWrapper<TAppUser>().like("phone",phone)).stream().map(TAppUser::getId).collect(Collectors.toList()));
    }
    @Resource
    private GiveVipUtil giveVipUtil;
    @ApiOperation(value = "单位管理列表", tags = {"用户管理-单位管理"})
    @PostMapping(value = "/unit/page")
    public R<Page<TCompany>> unitPage(@RequestBody UnitListQueryDto unitListQueryDto) {
@@ -180,6 +186,7 @@
    @ApiOperation(value = "单位管理添加或编辑", tags = {"用户管理-单位管理"})
    @PostMapping(value = "/unit/addOrUpdate")
    @Log(title = "【单位管理】添加或编辑单位", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    public R add(@RequestBody TCompany tCompany) {
        //拿到单位列表
       otherClient.unitAddorUpadate(tCompany);
@@ -191,6 +198,7 @@
    @ApiOperation(value = "单位管理删除", tags = {"用户管理-单位管理"})
    @DeleteMapping(value = "/unit/delete")
    @Log(title = "【单位管理】删除单位", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public R add(@RequestParam String ids) {
        String[] split = ids.split(",");
        for (String s : split) {
@@ -349,6 +357,7 @@
    @ApiOperation(value = "用户添加编辑", tags = {"用户管理-用户列表"})
    @PostMapping(value = "/user/addOrUpdate")
    @Log(title = "【用户列表】添加编辑用户", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    public R addOrUpdate(@RequestBody TAppUser  tAppUser) {
        if (tAppUser.getId() != null){
            //为编辑操作,要进行vip的逻辑处理
@@ -466,6 +475,7 @@
    @ApiOperation(value = "冻结解冻用户", tags = {"后台-用户管理-用户列表"})
    @PostMapping(value = "/user/status/change")
    @Log(title = "【用户列表】冻结解冻用户", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    public R pointsDetail(@RequestBody UserChangeDto userChangeDto) {
        TAppUser appUser = appUserService.getById(userChangeDto.getUserId());
        appUser.setStatus(userChangeDto.getStatus());
@@ -476,6 +486,7 @@
    @ApiOperation(value = "修改单位", tags = {"后台-用户管理-用户列表"})
    @PostMapping(value = "/user/unit/change")
    @Log(title = "【用户列表】修改用户单位", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    public R unitChange(@RequestBody UnitChangeDto unitChangeDto) {
        for (String s : unitChangeDto.getIds().split(",")) {
            TAppUser byId = appUserService.getById(s);
@@ -487,6 +498,7 @@
    @ApiOperation(value = "删除用户", tags = {"后台-用户管理-用户列表"})
    @DeleteMapping(value = "/user/delete")
    @Log(title = "【用户列表】删除用户", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public R userDelete(String ids) {
        String[] split = ids.split(",");
        for (String s : split) {
@@ -596,6 +608,7 @@
    @ApiOperation(value = "赠送会员", tags = {"用户管理-用户列表"})
    @PostMapping(value = "/user/give/vip")
    @Log(title = "【用户列表】赠送会员", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
    public R giveVip(@RequestBody GiveVipDto  giveVipDto) {
        String[] split = giveVipDto.getUserIds().split(",");
        for (String s : split) {
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
@@ -2,6 +2,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.other.api.dto.TagListQueryDto;
import com.ruoyi.account.api.model.TAppUserTag;
import com.ruoyi.account.service.TAppUserTagService;
@@ -45,6 +48,7 @@
    @ApiOperation(value = "标签添加或修改", tags = {"用户管理-用户标签管理"})
    @PostMapping(value = "/tags/add")
    @Log(title = "【用户标签管理】标签添加或修改", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    public R<Page<TUserTag>> tagAdd(@RequestBody TUserTag tUserTag) {
        //拿到单位列表
        otherClient.addorUpdateTag(tUserTag);
@@ -53,6 +57,7 @@
    @ApiOperation(value = "标签删除", tags = {"用户管理-用户标签管理"})
    @DeleteMapping(value = "/tags/delete")
    @Log(title = "【用户标签管理】删除标签", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public R delete(String ids) {
        //拿到单位列表
        String[] split = ids.split(",");
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java
@@ -20,7 +20,7 @@
 */
public interface TAppCouponMapper extends BaseMapper<TAppCoupon> {
    List<ExchangeRecordVO> pageList(@Param("pageInfo")PageInfo<ExchangeRecordVO> pageInfo,@Param("req") ExchangeRecordGoodsQuery dto);
    List<ExchangeRecordVO> pageList(@Param("req") ExchangeRecordGoodsQuery dto);
    List<CouponListVOVO> couponList(@Param("pageInfo")PageInfo<CouponListVOVO> pageInfo,@Param("userId") Long userId);
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java
@@ -9,6 +9,8 @@
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
import java.util.List;
/**
 * <p>
 *  服务类
@@ -19,7 +21,7 @@
 */
public interface TAppCouponService extends IService<TAppCoupon> {
    PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery couponId);
    List<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery couponId);
    PageInfo<CouponListVOVO> couponList(CouponListDto dto);
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.account.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.dto.CouponListDto;
import com.ruoyi.account.api.model.TAppCoupon;
@@ -28,6 +29,7 @@
import com.ruoyi.other.api.feignClient.VipClient;
import io.swagger.models.auth.In;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@@ -36,6 +38,7 @@
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
@@ -69,26 +72,34 @@
    private TokenService tokenService;
    @Override
    public PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery dto) {
    public List<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery dto) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        PageInfo<ExchangeRecordVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
        List<ExchangeRecordVO> list = this.baseMapper.pageList(pageInfo,dto);
        QueryWrapper<TAppCoupon> wrapper = new QueryWrapper<>();
        wrapper.eq("coupon_id",dto.getCouponId());
        List<TAppCoupon> tAppCoupons = this.baseMapper.selectList(wrapper);
        List<ExchangeRecordVO> list = new ArrayList<>();
        // 订单ids
        StringBuilder stringBuilder = new StringBuilder();
        for (TAppCoupon tAppCoupon : tAppCoupons) {
            ExchangeRecordVO exchangeRecordVO = new ExchangeRecordVO();
            BeanUtils.copyProperties(tAppCoupon,exchangeRecordVO);
            list.add(exchangeRecordVO);
        }
        for (ExchangeRecordVO exchangeRecordVO : list) {
            switch (exchangeRecordVO.getWaysToObtain()){
                case 1:
                    if (exchangeRecordVO.getOrderId()!=null){
                        stringBuilder.append(exchangeRecordVO.getOrderId()).append(",");
                    if (exchangeRecordVO.getId()!=null){
                        stringBuilder.append("-").append(exchangeRecordVO.getId()).append(",");
                    }else{
                        stringBuilder.append("0").append(",");
                    }
                    break;
                case 2:
                    if (exchangeRecordVO.getOrderId()!=null){
                        stringBuilder.append("-").append(exchangeRecordVO.getOrderId()).append(",");
                    if (exchangeRecordVO.getId()!=null){
                        stringBuilder.append(exchangeRecordVO.getId()).append(",");
                    }else{
                        stringBuilder.append("-").append("0").append(",");
                        stringBuilder.append("0").append(",");
                    }
                    break;
            }
@@ -97,7 +108,7 @@
            exchangeRecordVO.setEndTime1(format.format(date));
            exchangeRecordVO.setCreateTime1(format.format(date1));
            if (exchangeRecordVO.getStatus()==1){
                if (exchangeRecordVO.getDelFlag() == 1){
                if (exchangeRecordVO.getDelFlag()){
                    // 删除了 就是已取消状态
                    exchangeRecordVO.setStatus(4);
                }else{
@@ -112,7 +123,7 @@
                }
            }
            if (exchangeRecordVO.getStatus()==2){
                if (exchangeRecordVO.getDelFlag() == 1){
                if (exchangeRecordVO.getDelFlag()){
                    // 删除了 就是已取消状态
                    exchangeRecordVO.setStatus(4);
                }else{
@@ -120,7 +131,6 @@
                }
            }
        }
        // 去除最后一个字符
        if (StringUtils.hasText(stringBuilder.toString())){
            String string = stringBuilder.deleteCharAt(stringBuilder.length() - 1).toString();
@@ -130,9 +140,7 @@
                list.get(i).setOrderId(data.get(i));
            }
        }
        pageInfo.setRecords(list);
        return pageInfo;
        return list;
    }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
@@ -57,7 +57,16 @@
            }
        }
        if(Objects.nonNull(appUser.getStatus())){
            throwInfo(appUser.getStatus());
            switch (appUser.getStatus()){
                case 1:
                    break;
                case 2:
                    throw new ServiceException("账号被冻结,请联系管理员");
                case 3:
                    appUser = new TAppUser();
                    appUser.setPhone(appletUserDecodeData.getPhoneNumber());
                    break;
            }
        }
        appUser.setInviteUserId(inviteUserId);
        appUser.setAvatar(appletUserDecodeData.getAvatarUrl());
@@ -89,7 +98,16 @@
            }
        }
        if(Objects.nonNull(appUser.getStatus())){
            throwInfo(appUser.getStatus());
            switch (appUser.getStatus()){
                case 1:
                    break;
                case 2:
                    throw new ServiceException("账号被冻结,请联系管理员");
                case 3:
                    appUser = new TAppUser();
                    appUser.setPhone(phone);
                    break;
            }
        }
        appUser.setInviteUserId(inviteUserId);
        appUser.setAliOpenid(response.getOpenId());
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml
@@ -55,7 +55,7 @@
                AND t1.del_flag = 0
            </if>
        </where>
        ORDER BY create_time DESC
        ORDER BY t1.create_time DESC
    </select>
    <select id="couponList" resultType="com.ruoyi.other.api.vo.CouponListVOVO">
        SELECT
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
@@ -12,6 +12,8 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
@@ -53,6 +55,7 @@
    @ResponseBody
    @PostMapping("/addPartner")
    @ApiOperation(value = "添加合作商", tags = {"管理后台-合作商管理"})
    @Log(title = "【合作商列表】添加合作商", businessType = BusinessType.INSERT)
    public AjaxResult addPartner(@RequestBody Partner partner){
        return partnerService.addPartner(partner);
    }
@@ -81,6 +84,7 @@
    @ResponseBody
    @PostMapping("/editPartner")
    @ApiOperation(value = "编辑合作商", tags = {"管理后台-合作商管理"})
    @Log(title = "【合作商列表】编辑合作商", businessType = BusinessType.UPDATE)
    public AjaxResult editPartner(@RequestBody Partner partner){
        return partnerService.editPartner(partner);
    }
@@ -93,6 +97,7 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true)
    })
    @Log(title = "【合作商列表】删除合作商", businessType = BusinessType.DELETE)
    public AjaxResult delPartner(@RequestParam("id") List<Integer> id){
        return partnerService.delPartner(id);
    }
@@ -101,6 +106,7 @@
    @ResponseBody
    @PostMapping("/resetPassword")
    @ApiOperation(value = "合作商重置密码", tags = {"管理后台-合作商管理"})
    @Log(title = "【合作商列表】重置合作商密码", businessType = BusinessType.UPDATE)
    public AjaxResult resetPassword(@RequestBody ResetPassword resetPassword){
        return partnerService.resetPassword(resetPassword);
    }
@@ -135,6 +141,7 @@
    @ResponseBody
    @PostMapping("/setPermissionConfiguration/{siteId}")
    @ApiOperation(value = "设置合作商权限", tags = {"管理后台-站点管理"})
    @Log(title = "【合作商列表】设置合作商权限", businessType = BusinessType.OTHER)
    public AjaxResult setPermissionConfiguration(@RequestBody SetPermissionConfiguration req){
        partnerService.setPermissionConfiguration(req);
        return AjaxResult.success();
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -20,6 +20,8 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.model.TChargingOrder;
@@ -27,6 +29,8 @@
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
import com.ruoyi.system.api.model.SysUserRoleVo;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -82,6 +86,11 @@
    @Resource
    private ChargingOrderClient chargingOrderClient;
    @Resource
    private SysUserRoleClient userRoleClient;
    /**
     * 根据站点id 查询所有充电桩
@@ -298,6 +307,7 @@
    @ResponseBody
    @PostMapping("/addSite")
    @ApiOperation(value = "添加站点", tags = {"管理后台-站点管理"})
    @Log(title = "【站点管理】添加站点", businessType = BusinessType.INSERT)
    public AjaxResult addSite(@RequestBody Site site){
        return siteService.addSite(site);
    }
@@ -317,6 +327,7 @@
    @ResponseBody
    @PostMapping("/editSite")
    @ApiOperation(value = "编辑站点", tags = {"管理后台-站点管理"})
    @Log(title = "【站点管理】编辑站点", businessType = BusinessType.UPDATE)
    public AjaxResult editSite(@RequestBody Site site){
        return siteService.editSite(site);
    }
@@ -327,6 +338,7 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "站点id", name = "id", dataTypeClass = Integer.class, required = true)
    })
    @Log(title = "【站点管理】删除站点", businessType = BusinessType.DELETE)
    public AjaxResult delSite(@RequestParam("id") Integer[] id){
        return siteService.delSite(id);
    }
@@ -339,6 +351,7 @@
            @ApiImplicitParam(value = "站点id", name = "id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(value = "计费策略id", name = "accountingStrategyId", dataTypeClass = Integer.class, required = true)
    })
    @Log(title = "【站点管理】设置站点计费策略", businessType = BusinessType.OTHER)
    public AjaxResult setAccountingStrategy(@PathVariable("id") Integer id, @RequestParam("accountingStrategyId") Integer accountingStrategyId){
        siteService.setAccountingStrategy(id, accountingStrategyId);
        return AjaxResult.success();
@@ -361,7 +374,8 @@
            //非管理员需要根据角色和用户配置查询允许的站点数据
            if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                List<SysUserRoleVo> data2 = userRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                data.addAll(data1);
                Set<Integer> list = new HashSet<>(data);
                wrapper.in(Site::getId, list);
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -100,9 +100,9 @@
    /**
     * 添加计费策略管理
     */
    @Log(title = "添加计费策略", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "添加计费策略")
    @PostMapping(value = "/add")
    @Log(title = "【计费策略】添加计费策略", businessType = BusinessType.INSERT)
    public AjaxResult<Integer> add(@RequestBody TAccountingStrategyDTO dto) {
        if(null != dto.getSiteId()){
            dto.setAuditStatus(3);
@@ -128,7 +128,7 @@
    /**
     * 修改计费策略
     */
    @Log(title = "修改计费策略", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @Log(title = "【计费策略】修改计费策略", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "修改计费策略")
    @PostMapping(value = "/update")
    public AjaxResult<String> update(@RequestBody TAccountingStrategyDTO dto) {
@@ -251,7 +251,7 @@
    /**
     * 删除计费策略
     */
    @Log(title = "删除计费策略", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【计费策略】删除计费策略", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-计费策略"},value = "删除计费策略")
    @DeleteMapping(value = "/deleteById")
    public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) {
@@ -270,7 +270,7 @@
    /**
     * 批量删除计费策略
     */
    @Log(title = "批量删除计费策略", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【计费策略】批量删除计费策略", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-计费策略"},value = "批量删除计费策略")
    @DeleteMapping(value = "/deleteByIds")
    public AjaxResult<Boolean> deleteByIds(@RequestParam String ids) {
@@ -306,6 +306,7 @@
    @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "审核")
    @PostMapping(value = "/auth/pass")
    @Log(title = "【计费模板审核】审核计费模板", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
    public AjaxResult<PageInfo<TAccountingStrategyVO>> authPass(@RequestBody SteategyPassDto steategyPassDto) {
        TAccountingStrategy byId = accountingStrategyService.getById(steategyPassDto.getId());
        Long userId = SecurityUtils.getLoginUser().getUserid();
@@ -348,6 +349,7 @@
    @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "删除")
    @DeleteMapping(value = "/delete")
    @Log(title = "【计费模板审核】删除计费模板审核", businessType = BusinessType.DELETE)
    public R delete(String ids) {
        String[] split = ids.split(",");
        for (String s : split) {
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -98,12 +98,16 @@
    /**
     * 建桩申请
     */
    @Log(title = "建桩申请", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
    @ApiOperation(tags = {"小程序-建桩申请"},value = "建桩申请")
    @PostMapping(value = "/add")
    public AjaxResult<Boolean> add(@RequestBody TApplyChargingPileDTO dto) {
        // 验证验证码
        String code = redisService.getCacheObject(dto.getLandlordPhone() + Constants.APPLY_CHARGING);
        String code;
        if(dto.getLandlordHandling().equals(1)){
            code = redisService.getCacheObject(dto.getLandlordPhone() + Constants.APPLY_CHARGING);
        }else {
            code = redisService.getCacheObject(dto.getAgentPhone() + Constants.APPLY_CHARGING);
        }
        if(StringUtils.isEmpty(code)){
            return AjaxResult.error("验证码已过期,请重新获取验证码!");
        }
@@ -116,7 +120,7 @@
        return AjaxResult.ok(applyChargingPileService.save(dto));
    }
    @Log(title = "建桩申请", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
    @Log(title = "【申请建桩】添加建桩申请", businessType = BusinessType.INSERT)
    @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "建桩申请")
    @PostMapping(value = "/manage/add")
    public AjaxResult<Boolean> manageAdd(@RequestBody TApplyChargingPile dto) {
@@ -136,6 +140,7 @@
    @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "导出")
    @PutMapping(value = "/export")
    @Log(title = "【申请建桩】导出建桩申请列表", businessType = BusinessType.EXPORT)
    public R export(String landlordPhone,HttpServletResponse response) {
        try {
        response.setCharacterEncoding(Constants.UTF8);
@@ -249,6 +254,7 @@
    @ApiOperation(value = "下载-已出账", tags = {"管理后台-充电算账单"})
    @PutMapping("/downloadBill")
    @Log(title = "【充电算账单】下载算账单", businessType = BusinessType.EXPORT)
    public R downloadBill(@RequestBody ExportUidDto uid, HttpServletResponse response)
    {
        ChargingListQuery chargingListQuery = new ChargingListQuery();
@@ -289,6 +295,7 @@
    }
    @ApiOperation(value = "下载", tags = {"管理后台-账户结算账单"})
    @PutMapping("/downloadAccount")
    @Log(title = "【账户结算账单】下载账单", businessType = BusinessType.EXPORT)
    public R downloadAccount(@RequestBody ChargingListQuery dto,HttpServletResponse response)
    {   dto.setPageCurr(1);
        dto.setPageSize(99999999);
@@ -323,6 +330,7 @@
    @ApiOperation(value = "导出", tags = {"管理后台-结算汇总表"})
    @PutMapping("/downloadSettlementTotal")
    @Log(title = "【结算汇总表】下载汇总表", businessType = BusinessType.EXPORT)
    public R downloadSettlementTotal(@RequestBody ExportUidDto uid,HttpServletResponse response)
    {
        SettlementTotalVO data = chargingOrderClient.settlementTotalR(uid.getTime()).getData();
@@ -358,6 +366,7 @@
    }
    @ApiOperation(value = "下载", tags = {"管理后台-结算表记录"})
    @PutMapping("/downloadSettlement")
    @Log(title = "【结算表记录】下载结算表", businessType = BusinessType.EXPORT)
    public R downloadSettlement(@RequestBody ExportUidDto uid,HttpServletResponse response)
    {
        TSettlementConfirm data = chargingOrderClient.downloadSettlement(uid.getUid()).getData();
@@ -410,6 +419,7 @@
    @ApiOperation(value = "下载-未出账", tags = {"管理后台-充电算账单"})
    @PutMapping("/download")
    @Log(title = "【充电算账单】下载算账单", businessType = BusinessType.EXPORT)
    public R download(String uid,HttpServletResponse response)
    {
        ChargingListQuery chargingListQuery = new ChargingListQuery();
@@ -466,6 +476,7 @@
    @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "修改备注")
    @PostMapping(value = "/remark")
    @Log(title = "【申请建桩】修改备注", businessType = BusinessType.UPDATE)
    public AjaxResult<TApplyChargingPile> remark(@RequestBody ApplyChargingRemarkDto applyChargingRemarkDt) {
        TApplyChargingPile byId = applyChargingPileService.getById(applyChargingRemarkDt.getId());
        byId.setRemark(applyChargingRemarkDt.getRemark());
@@ -474,6 +485,7 @@
    }
    @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "删除")
    @DeleteMapping(value = "/remark")
    @Log(title = "【申请建桩】删除建桩申请", businessType = BusinessType.DELETE)
    public AjaxResult remark(String ids) {
        String[] split = ids.split(",");
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TCarportController.java
@@ -55,7 +55,7 @@
    /**
     * 添加车库管理
     */
    @Log(title = "添加车库", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @Log(title = "【车库】添加车库", businessType = BusinessType.INSERT)
    @ApiOperation(tags = {"后台-车库"},value = "添加车库")
    @PostMapping(value = "/add")
    public AjaxResult<Boolean> add(@RequestBody TCarport dto) {
@@ -65,7 +65,7 @@
    /**
     * 修改车库
     */
    @Log(title = "修改车库", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @Log(title = "【车库】修改车库", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-车库"},value = "修改车库")
    @PostMapping(value = "/update")
    public AjaxResult<Boolean> update(@RequestBody TCarport dto) {
@@ -84,7 +84,7 @@
    /**
     * 删除车库
     */
    @Log(title = "删除车库", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【车库】删除车库", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-车库"},value = "删除车库")
    @DeleteMapping(value = "/deleteById")
    public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) {
@@ -97,7 +97,7 @@
    /**
     * 批量删除车库
     */
    @Log(title = "批量删除车库", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【车库】批量删除车库", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-车库"},value = "批量删除车库")
    @DeleteMapping(value = "/deleteByIds")
    public AjaxResult<Boolean> deleteByIds(@RequestParam String ids) {
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
@@ -4,12 +4,14 @@
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.dto.TChargingGunDTO;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.chargingPile.api.model.TFaultMessage;
import com.ruoyi.chargingPile.api.query.TChargingGunQuery;
import com.ruoyi.chargingPile.api.vo.GunStatusStatisticsVO;
import com.ruoyi.chargingPile.api.vo.SiteNameVO;
import com.ruoyi.chargingPile.api.vo.TChargingGunVO;
import com.ruoyi.chargingPile.service.ISiteService;
@@ -23,8 +25,10 @@
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.integration.api.feignClient.IntegrationClient;
import com.ruoyi.integration.api.model.EndCharge;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,8 +43,10 @@
import java.io.FileReader;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -58,7 +64,7 @@
    @Autowired
    private TChargingGunService chargingGunService;
    @Autowired
    private IntegrationClient integrationClient;
    private ChargingOrderClient chargingOrderClient;
    @Resource
    private TChargingPileService chargingPileService;
@@ -77,7 +83,7 @@
    /**
     * 添加充电枪管理
     */
    @Log(title = "添加充电枪", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @Log(title = "【充电桩信息】添加充电枪", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"管理后台-充电桩信息"},value = "添加充电枪")
    @PostMapping(value = "/add")
    public AjaxResult add(@RequestBody TChargingGunDTO dto) {
@@ -87,7 +93,7 @@
    /**
     * 修改充电枪
     */
    @Log(title = "修改充电枪", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @Log(title = "【充电桩信息】修改充电枪", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"管理后台-充电桩信息"},value = "修改充电枪")
    @PostMapping(value = "/update")
    public AjaxResult update(@RequestBody TChargingGunDTO dto) {
@@ -106,7 +112,7 @@
    /**
     * 删除充电枪
     */
    @Log(title = "删除充电枪", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【充电桩信息】删除充电枪", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"管理后台-充电桩信息"},value = "删除充电枪")
    @DeleteMapping(value = "/deleteById")
    public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) {
@@ -118,7 +124,7 @@
    /**
     * 批量删除充电枪
     */
    @Log(title = "批量删除充电枪", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【充电桩信息】批量删除充电枪", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-充电枪"},value = "批量删除充电枪")
    @DeleteMapping(value = "/deleteByIds")
    public AjaxResult<Boolean> deleteByIds(@RequestParam String ids) {
@@ -129,13 +135,12 @@
    /**
     * 结束充电
     */
    @Log(title = "结束充电", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @Log(title = "【充电桩信息】结束充电", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-充电枪"},value = "结束充电")
    @PutMapping(value = "/stopCharging")
    public AjaxResult<String> stopCharging(@RequestParam("id") Integer id) {
        // TODO 硬件 结束充电
//        EndCharge endCharge = new EndCharge();
//        integrationClient.endCharge(endCharge);
    public AjaxResult<String> stopCharging(@RequestParam("id") String id) {
        // 硬件 结束充电
        chargingOrderClient.stopCharging(id);
        return AjaxResult.success();
    }
    
@@ -143,6 +148,7 @@
    
    @ApiOperation(tags = {"管理后台-充电桩信息"},value = "下载二维码")
    @GetMapping(value = "/downloadQRCode/{id}")
    @Log(title = "【充电桩信息】下载二维码", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
    public void downloadQRCode(@PathVariable Integer id, HttpServletResponse response){
        try {
            TChargingGun chargingGun = chargingGunService.getById(id);
@@ -166,7 +172,22 @@
            e.printStackTrace();
        }
    }
    /**
     * 设备状态统计
     */
    @ApiOperation(tags = {"后台-工作台"},value = "设备状态统计")
    @PutMapping(value = "/gunStatusStatistics")
    public AjaxResult<GunStatusStatisticsVO> gunStatusStatistics() {
        List<Integer> siteIds = new ArrayList<>();
        Long userId = SecurityUtils.getUserId();
        //获取当前登录的siteIds
        PageInfo<GetSiteListDTO> siteList1 = siteService.getSiteList1(userId);
        for (GetSiteListDTO datum : siteList1.getRecords()) {
            siteIds.add(datum.getId());
        }
        return AjaxResult.ok(chargingGunService.gunStatusStatistics(siteIds));
    }
    
    /**
     * 根据id获取充电枪完整名称
@@ -223,5 +244,20 @@
                .eq(TChargingGun::getCode, code)
                .last("LIMIT 1")));
    }
    /**
     * 根据枪编号获取充电枪
     * @param code
     * @return
     */
    /**
     * 编辑充电枪
     * @param chargingGun
     * @return
     */
    @PostMapping("/updateChargingGunById")
    public R<String> updateChargingGunById(@RequestBody TChargingGun chargingGun){
        chargingGunService.updateById(chargingGun);
        return R.ok();
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
@@ -110,7 +110,7 @@
    }
    
    @ResponseBody
    @Log(title = "添加充电桩数据", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @Log(title = "【充电桩信息】添加充电桩数据", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @PostMapping("/addChargingPile")
    @ApiOperation(value = "添加充电桩数据", tags = {"管理后台-充电桩信息"})
    public AjaxResult addChargingPile(@RequestBody TChargingPile chargingPile){
@@ -128,7 +128,7 @@
    
    
    @ResponseBody
    @Log(title = "编辑充电桩数据", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @Log(title = "【充电桩信息】编辑充电桩数据", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @PostMapping("/editChargingPile")
    @ApiOperation(value = "编辑充电桩数据", tags = {"管理后台-充电桩信息"})
    public AjaxResult editChargingPile(@RequestBody TChargingPile chargingPile){
@@ -139,7 +139,7 @@
    
    @ResponseBody
    @DeleteMapping("/delChargingPile")
    @Log(title = "删除充电桩", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【充电桩信息】删除充电桩", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(value = "删除充电桩", tags = {"管理后台-充电桩信息"})
    @ApiImplicitParams({
            @ApiImplicitParam(value = "充电桩id", name = "id", dataTypeClass = Integer.class, required = true)
@@ -150,7 +150,7 @@
    
    
    @ResponseBody
    @Log(title = "批量设置计费策略", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @Log(title = "【充电桩信息】批量设置计费策略", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @PostMapping("/batchSetAccountingStrategy")
    @ApiOperation(value = "批量设置计费策略", tags = {"管理后台-充电桩信息"})
    public AjaxResult batchSetAccountingStrategy(@RequestBody BatchSetAccountingStrategy setAccountingStrategy){
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java
@@ -6,6 +6,9 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
@@ -41,6 +44,7 @@
    @ResponseBody
    @DeleteMapping("/delChargingPileNotification")
    @ApiOperation(value = "删除系统通知", tags = {"管理后台-系统通知"})
    @Log(title = "【系统通知】删除系统通知", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public AjaxResult delChargingPileNotification(@RequestParam("id") Long id){
        TChargingPileNotification chargingPileNotification = chargingPileNotificationService.getById(id);
        chargingPileNotificationService.removeById(chargingPileNotification);
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java
@@ -72,6 +72,7 @@
    @ResponseBody
    @PostMapping("/addFaultMessage")
    @ApiOperation(value = "添加故障信息", tags = {"管理后台-设备监控"})
    @Log(title = "【设备监控】添加故障信息", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    public AjaxResult addFaultMessage(@RequestBody TFaultMessage faultMessage){
        faultMessageService.save(faultMessage);
        return AjaxResult.success();
@@ -81,6 +82,7 @@
    @ResponseBody
    @DeleteMapping("/delFaultMessage/{id}")
    @ApiOperation(value = "删除故障信息", tags = {"管理后台-设备监控"})
    @Log(title = "【设备监控】删除故障信息", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public AjaxResult delFaultMessage(@PathVariable Integer id){
        faultMessageService.removeById(id);
        return AjaxResult.success();
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TMonitoringEquipmentController.java
@@ -52,7 +52,7 @@
    /**
     * 添加监控管理
     */
    @Log(title = "添加监控", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @Log(title = "【监控管理 】添加监控", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-监控"},value = "添加监控")
    @PostMapping(value = "/add")
    public AjaxResult<Boolean> add(@RequestBody TMonitoringEquipmentDTO dto) {
@@ -62,7 +62,7 @@
    /**
     * 修改监控
     */
    @Log(title = "修改监控", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @Log(title = "【监控管理 】修改监控", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-监控"},value = "修改监控")
    @PostMapping(value = "/update")
    public AjaxResult<Boolean> update(@RequestBody TMonitoringEquipmentDTO dto) {
@@ -81,7 +81,7 @@
    /**
     * 删除监控
     */
    @Log(title = "删除监控", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【监控管理 】删除监控", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-监控"},value = "删除监控")
    @DeleteMapping(value = "/deleteById")
    public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) {
@@ -91,7 +91,7 @@
    /**
     * 批量删除监控
     */
    @Log(title = "批量删除监控", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【监控管理 】批量删除监控", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-监控"},value = "批量删除监控")
    @DeleteMapping(value = "/deleteByIds")
    public AjaxResult<Boolean> deleteByIds(@RequestParam String ids) {
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
@@ -80,7 +80,7 @@
    /**
     * 添加停车场管理
     */
    @Log(title = "添加停车场", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @Log(title = "【停车场】添加停车场", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-停车场"},value = "添加停车场")
    @PostMapping(value = "/add")
    public AjaxResult<Boolean> add(@RequestBody TParkingLotDTO dto) {
@@ -90,7 +90,7 @@
    /**
     * 修改停车场
     */
    @Log(title = "修改停车场", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @Log(title = "【停车场】修改停车场", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-停车场"},value = "修改停车场")
    @PostMapping(value = "/update")
    public AjaxResult<Boolean> update(@RequestBody TParkingLotDTO dto) {
@@ -109,7 +109,7 @@
    /**
     * 删除停车场
     */
    @Log(title = "删除停车场", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【停车场】删除停车场", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-停车场"},value = "删除停车场")
    @DeleteMapping(value = "/deleteById")
    public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) {
@@ -125,7 +125,7 @@
    /**
     * 批量删除停车场
     */
    @Log(title = "批量删除停车场", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【停车场】批量删除停车场", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-停车场"},value = "批量删除停车场")
    @DeleteMapping(value = "/deleteByIds")
    public AjaxResult<Boolean> deleteByIds(@RequestParam String ids) {
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
@@ -21,6 +21,7 @@
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.order.api.query.TOrderInvoiceQuery;
import com.ruoyi.order.api.vo.TCharingUserEquimentVO;
import com.ruoyi.order.api.vo.TOrderInvoiceVO;
@@ -80,6 +81,7 @@
    }
    @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "导出")
    @PutMapping("/export")
    @Log(title = "【停车记录】导出停车记录", businessType = BusinessType.EXPORT,operatorType = OperatorType.MANAGE)
    public void export(@RequestBody ParkingRecordQuery query)
    {
        List<TParkingRecordVO> records = parkingRecordService.pageList(query).getParkingRecordVOS().getRecords();
@@ -130,6 +132,7 @@
    @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "出场")
    @GetMapping(value = "/out")
    @Log(title = "【停车记录】修改出场状态", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    public R out(Long id) {
        TParkingRecord byId = parkingRecordService.getById(id);
        byId.setStatus(2);
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java
@@ -7,6 +7,9 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
@@ -45,6 +48,7 @@
    @ResponseBody
    @PostMapping("/addRepair")
    @ApiOperation(value = "添加报修记录", tags = {"管理后台-设备监控"})
    @Log(title = "【设备监控】添加报修记录", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    public AjaxResult addRepair(@RequestBody TRepair repair){
        repairService.save(repair);
        return AjaxResult.success();
@@ -54,6 +58,7 @@
    @ResponseBody
    @DeleteMapping("/delRepair/{id}")
    @ApiOperation(value = "删除报修记录", tags = {"管理后台-设备监控"})
    @Log(title = "【设备监控】删除报修记录", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public AjaxResult delRepair(@PathVariable Integer id){
        repairService.removeById(id);
        return AjaxResult.success();
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java
@@ -50,7 +50,7 @@
    /**
     * 添加车道管理
     */
    @Log(title = "添加车道", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @Log(title = "【停车场配置】添加车道", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-车道"},value = "添加车道")
    @PostMapping(value = "/add")
    public AjaxResult<Boolean> add(@RequestBody TVehicleRamp dto) {
@@ -61,7 +61,7 @@
    /**
     * 修改车道
     */
    @Log(title = "修改车道", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @Log(title = "【停车场配置】修改车道", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-车道"},value = "修改车道")
    @PostMapping(value = "/update")
    public AjaxResult<Boolean> update(@RequestBody TVehicleRamp dto) {
@@ -80,7 +80,7 @@
    /**
     * 删除车道
     */
    @Log(title = "删除车道", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【停车场配置】删除车道", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-车道"},value = "删除车道")
    @DeleteMapping(value = "/deleteById")
    public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) {
@@ -90,7 +90,7 @@
    /**
     * 批量删除车道
     */
    @Log(title = "批量删除车道", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @Log(title = "【停车场配置】批量删除车道", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-车道"},value = "批量删除车道")
    @DeleteMapping(value = "/deleteByIds")
    public AjaxResult<Boolean> deleteByIds(@RequestParam String ids) {
@@ -101,7 +101,7 @@
    /**
     * 开关闸车道
     */
    @Log(title = "开关闸车道", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @Log(title = "【停车场配置】开关闸车道", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    @ApiOperation(tags = {"后台-车道"},value = "开关闸车道")
    @PostMapping(value = "/openOrDown")
    public AjaxResult<String> openOrDown(@RequestBody TVehicleRamp dto) {
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingGunMapper.java
@@ -3,12 +3,14 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.query.TChargingGunQuery;
import com.ruoyi.chargingPile.api.vo.StatusModeStatisticsVO;
import com.ruoyi.chargingPile.api.vo.TChargingGunVO;
import com.ruoyi.common.core.web.page.PageInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@@ -30,4 +32,18 @@
     */
    List<TChargingGunVO> pageList(@Param("query") TChargingGunQuery query, @Param("pageInfo")PageInfo<TChargingGunVO> pageInfo, @Param("siteIds") Set<Integer> siteIds);
    /**
     * 统计充电枪状态
     * @param siteIds
     * @return
     */
    Map<Integer, Integer> getModeStatistics(@Param("siteIds")List<Integer> siteIds);
    /**
     * 统计充电枪状态
     * @param siteIds
     * @param chargeMode
     * @return
     */
    StatusModeStatisticsVO getStatusModeStatistics(@Param("siteIds")List<Integer> siteIds, @Param("chargeMode")Integer chargeMode);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingGunService.java
@@ -5,11 +5,13 @@
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.query.TChargingGunQuery;
import com.ruoyi.chargingPile.api.vo.ChargingGunCountVO;
import com.ruoyi.chargingPile.api.vo.GunStatusStatisticsVO;
import com.ruoyi.chargingPile.api.vo.TChargingGunVO;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
/**
@@ -50,4 +52,11 @@
     * @return
     */
    Map<String, ChargingGunCountVO> getChargingGunCount(Integer siteId);
    /**
     * 设备状态统计
     * @param siteIds
     * @return
     */
    GunStatusStatisticsVO gunStatusStatistics(List<Integer> siteIds);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
@@ -22,7 +22,9 @@
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysRoleClient;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
import com.ruoyi.system.api.model.GetSysRoleByIds;
import com.ruoyi.system.api.model.SysUserRoleVo;
import io.seata.spring.annotation.GlobalTransactional;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@@ -62,6 +64,9 @@
    
    @Resource
    private RoleSiteClient roleSiteClient;
    @Resource
    private SysUserRoleClient userRoleClient;
    
    
    
@@ -410,7 +415,8 @@
        Partner partner = this.getById(partnerId);
        SysUser sysUser = sysUserClient.queryUserByUserName(partner.getAccount()).getData();
        List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
        List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
        List<SysUserRoleVo> data2 = userRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
        List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
        collect.addAll(data);
        collect.addAll(data1);
        Set<Integer> siteIds = new HashSet<>(collect);
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -133,7 +133,8 @@
            //非管理员需要根据角色和用户配置查询允许的站点数据
            if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                data.addAll(data1);
                ids = new HashSet<>(data);
            }
@@ -310,7 +311,8 @@
            //非管理员需要根据角色和用户配置查询允许的站点数据
            if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                data.addAll(data1);
                ids = new HashSet<>(data);
            }
@@ -332,7 +334,8 @@
            //非管理员需要根据角色和用户配置查询允许的站点数据
            if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                data.addAll(data1);
                ids = new HashSet<>(data);
            }
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
@@ -7,9 +7,7 @@
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.chargingPile.api.query.TChargingGunQuery;
import com.ruoyi.chargingPile.api.vo.ChargingGunCountVO;
import com.ruoyi.chargingPile.api.vo.TChargingGunVO;
import com.ruoyi.chargingPile.api.vo.TMonitoringEquipmentVO;
import com.ruoyi.chargingPile.api.vo.*;
import com.ruoyi.chargingPile.domain.SiteMenu;
import com.ruoyi.chargingPile.mapper.TChargingGunMapper;
import com.ruoyi.chargingPile.service.IPartnerService;
@@ -25,18 +23,15 @@
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
import com.ruoyi.system.api.model.SysUserRoleVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.HashSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.util.Set;
/**
 * <p>
@@ -63,6 +58,9 @@
    @Autowired
    private TChargingPileService chargingPileService;
    @Resource
    private SysUserRoleClient sysUserRoleClient;
    
    
    
@@ -80,7 +78,8 @@
            //非管理员需要根据角色和用户配置查询允许的站点数据
            if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                data.addAll(data1);
                siteIds = new HashSet<>(data);
            }
@@ -182,6 +181,63 @@
        return map;
    }
    @Override
    public GunStatusStatisticsVO gunStatusStatistics(List<Integer> siteIds) {
        GunStatusStatisticsVO gunStatusStatisticsVO = new GunStatusStatisticsVO();
        if(CollectionUtils.isEmpty(siteIds)){
            Map<Integer, Integer> modeStatisticsNull = new HashMap<>();
            modeStatisticsNull.put(1, 0);
            modeStatisticsNull.put(2, 0);
            modeStatisticsNull.put(3, 0);
            gunStatusStatisticsVO.setModeStatistics(modeStatisticsNull);
            Map<Integer, Integer> statusStatisticsNull = new HashMap<>();
            statusStatisticsNull.put(1, 0);
            statusStatisticsNull.put(2, 0);
            statusStatisticsNull.put(3, 0);
            gunStatusStatisticsVO.setStatusStatistics(statusStatisticsNull);
            List<StatusModeStatisticsVO> statusModeStatistics = new ArrayList<>();
            for (int i = 1; i < 4; i++) {
                StatusModeStatisticsVO statusModeStatisticsVO = new StatusModeStatisticsVO();
                statusModeStatisticsVO.setChargeMode(i);
                statusModeStatisticsVO.setChargingCount(0);
                statusModeStatisticsVO.setFilledCount(0);
                statusModeStatisticsVO.setInsertCount(0);
                statusModeStatisticsVO.setFreeCount(0);
                statusModeStatistics.add(statusModeStatisticsVO);
            }
            gunStatusStatisticsVO.setStatusModeStatistics(statusModeStatistics);
        }
        Map<Integer, Integer> modeStatistics = this.baseMapper.getModeStatistics(siteIds);
        gunStatusStatisticsVO.setModeStatistics(modeStatistics);
        Map<Integer, Integer> statusStatistics = new HashMap<>();
        // 离线
        Long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(TChargingGun.class)
                .eq(TChargingGun::getStatus, 1));
        statusStatistics.put(1, count.intValue());
        // 故障
        count = this.baseMapper.selectCount(Wrappers.lambdaQuery(TChargingGun.class)
                .eq(TChargingGun::getStatus, 7));
        statusStatistics.put(2, count.intValue());
        // 充电中
        count = this.baseMapper.selectCount(Wrappers.lambdaQuery(TChargingGun.class)
                .in(TChargingGun::getStatus, Arrays.asList(3,4,5,6)));
        statusStatistics.put(3, count.intValue());
        gunStatusStatisticsVO.setModeStatistics(statusStatistics);
        List<StatusModeStatisticsVO> statusModeStatisticsVOS = new ArrayList<>();
        StatusModeStatisticsVO statusModeStatistics1 = this.baseMapper.getStatusModeStatistics(siteIds,1);
        StatusModeStatisticsVO statusModeStatistics2 = this.baseMapper.getStatusModeStatistics(siteIds,2);
        StatusModeStatisticsVO statusModeStatistics3 = this.baseMapper.getStatusModeStatistics(siteIds,3);
        statusModeStatisticsVOS.add(statusModeStatistics1);
        statusModeStatisticsVOS.add(statusModeStatistics2);
        statusModeStatisticsVOS.add(statusModeStatistics3);
        gunStatusStatisticsVO.setStatusModeStatistics(statusModeStatisticsVOS);
        return gunStatusStatisticsVO;
    }
    private ChargingGunCountVO getGunCount(Integer chargeMode, List<TChargingGun> list){
        ChargingGunCountVO chargingGunCountVO = new ChargingGunCountVO();
        chargingGunCountVO.setTotalCount(list.stream().filter(tChargingGun -> tChargingGun.getChargeMode().equals(chargeMode)).collect(Collectors.toList()).size());
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java
@@ -15,6 +15,8 @@
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
import com.ruoyi.system.api.model.SysUserRoleVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -44,6 +46,9 @@
    
    @Resource
    private RoleSiteClient roleSiteClient;
    @Resource
    private SysUserRoleClient sysUserRoleClient;
    
    
    
@@ -71,7 +76,8 @@
                //非管理员需要根据角色和用户配置查询允许的站点数据
                if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                    List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                    List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                    List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                    List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                    data.addAll(data1);
                    siteIds = new HashSet<>(data);
                }
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -36,6 +36,8 @@
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
import com.ruoyi.system.api.model.SysUserRoleVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -87,6 +89,9 @@
    
    @Resource
    private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
    @Resource
    private SysUserRoleClient sysUserRoleClient;
    
    
    
@@ -111,7 +116,8 @@
            //非管理员需要根据角色和用户配置查询允许的站点数据
            if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                data.addAll(data1);
                siteIds = new HashSet<>(data);
            }
@@ -283,7 +289,8 @@
                //非管理员需要根据角色和用户配置查询允许的站点数据
                if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                    List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                    List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                    List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                    List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                    data.addAll(data1);
                    siteIds = new HashSet<>(data);
                }
@@ -366,7 +373,8 @@
                //非管理员需要根据角色和用户配置查询允许的站点数据
                if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                    List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                    List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                    List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                    List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                    data.addAll(data1);
                    siteIds = new HashSet<>(data);
                }
@@ -413,7 +421,8 @@
                //非管理员需要根据角色和用户配置查询允许的站点数据
                if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                    List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                    List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                    List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                    List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                    data.addAll(data1);
                    siteIds = new HashSet<>(data);
                }
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TFaultMessageServiceImpl.java
@@ -10,6 +10,8 @@
import com.ruoyi.chargingPile.service.TChargingPileNotificationService;
import com.ruoyi.chargingPile.service.TChargingPileService;
import com.ruoyi.chargingPile.service.TFaultMessageService;
import com.ruoyi.common.core.constant.MsgConstants;
import com.ruoyi.common.core.utils.HttpUtils;
import com.ruoyi.common.core.utils.MsgUtil;
import com.ruoyi.common.core.web.page.PageInfo;
import lombok.extern.slf4j.Slf4j;
@@ -43,7 +45,8 @@
        Site site = siteService.getById(dto.getSiteId());
        TChargingPile chargingPile = chargingPileService.getById(dto.getChargingPileId());
        String siteName = site.getName();
        String result = MsgUtil.faultMsg(site.getPhone(), site.getName(), chargingPile.getNumber() + "");
        String reqStr = MsgUtil.faultMsg(site.getPhone(), site.getName(), chargingPile.getNumber() + "");
        String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr);
        log.info("故障短信提醒:{}",result);
        if(siteName.length()>10){
            siteName = siteName.substring(0,10);
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingLotServiceImpl.java
@@ -15,6 +15,8 @@
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
import com.ruoyi.system.api.model.SysUserRoleVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -43,6 +45,12 @@
    @Resource
    private RoleSiteClient roleSiteClient;
    @Resource
    private SysUserRoleClient sysUserRoleClient;
    @Override
    public PageInfo<TParkingLotVO> pageList(TParkingLotQuery query) {
@@ -58,7 +66,8 @@
            //非管理员需要根据角色和用户配置查询允许的站点数据
            if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                data.addAll(data1);
                siteIds = new HashSet<>(data);
            }
@@ -91,7 +100,8 @@
            //非管理员需要根据角色和用户配置查询允许的站点数据
            if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
                List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
                List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
                List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
                data.addAll(data1);
                siteIds = new HashSet<>(data);
            }
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml
@@ -68,5 +68,35 @@
        </where>
        ORDER BY tcg.create_time DESC
    </select>
    <select id="getModeStatistics" resultType="java.util.Map">
        SELECT
        charge_mode,
        IFNULL(COUNT(charge_mode),0) AS modeCount
        FROM t_charging_gun
        WHERE del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
        <if test="siteIds != null and siteIds.size()>0">
            AND site_id IN
            <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
                #{siteId}
            </foreach>
        </if>
        GROUP BY charge_mode
    </select>
    <select id="getStatusModeStatistics" resultType="com.ruoyi.chargingPile.api.vo.StatusModeStatisticsVO">
        SELECT
        charge_mode,
        IFNULL((SELECT COUNT(*) FROM your_table WHERE status = 2),0) AS freeCount,
        IFNULL((SELECT COUNT(*) FROM your_table WHERE status = 5),0) AS filledCount,
        IFNULL((SELECT COUNT(*) FROM your_table WHERE status = 3),0) AS insertCount,
        IFNULL((SELECT COUNT(*) FROM your_table WHERE status = 4),0) AS chargingCount
        FROM t_charging_gun
        WHERE del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} AND charge_mode = #{chargeMode}
        <if test="siteIds != null and siteIds.size()>0">
            AND site_id IN
            <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
                #{siteId}
            </foreach>
        </if>
    </select>
</mapper>
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingLotMapper.xml
@@ -39,7 +39,7 @@
                AND tpl.site_id = #{query.siteId}
            </if>
            <if test="null != siteIds and siteIds.size() > 0">
                and tcg.site_id in
                and tpl.site_id in
                <foreach collection="siteIds" index="index" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java
@@ -95,14 +95,24 @@
                switch (message.getCharging_gun_status()){
                    case 0:
                        faultMessage.setStatus(1);
                        chargingGun.setStatus(1);
                        break;
                    case 1:
                        faultMessage.setStatus(2);
                        chargingGun.setStatus(7);
                        break;
                }
                faultMessage.setDownTime(LocalDateTime.now());
                faultMessageClient.createFaultMessage(faultMessage);
            }else {
                switch (message.getCharging_gun_status()){
                    case 2:
                        chargingGun.setStatus(2);
                        break;
                    case 3:
                        chargingGun.setStatus(4);
                        break;
                }
                // 空闲 充电 查询是否该设备之前存在离线记录或者故障记录
                faultMessage = faultMessageClient.getFaultMessageByGunId(chargingGun.getId()).getData();
                if(Objects.nonNull(faultMessage)){
@@ -110,6 +120,7 @@
                    faultMessageClient.updateFaultMessage(faultMessage);
                }
            }
            chargingGunClient.updateChargingGunById(chargingGun);
        }
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -142,6 +142,12 @@
        PageInfo<TSettlementConfirm> res = chargingOrderService.settlementList(dto);
        return R.ok(res);
    }
    @GetMapping(value = "/deleteSettlement")
    @ApiOperation(value = "结算表记录-删除", tags = {"管理后台-财务结算"})
    public R deleteSettlement(String uid) {
        tSettlementConfirmService.removeById(uid);
        return R.ok();
    }
    @GetMapping(value = "/downloadSettlement/{uid}")
    public R<TSettlementConfirm> downloadSettlement(@PathVariable("uid") String uid) {
        TSettlementConfirm byId = tSettlementConfirmService.getById(uid);
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
@@ -223,7 +223,7 @@
     */
    @GetMapping("/getCodeByOrderId/{goodsIds}")
    public R<List<String>> getCodeByOrderId(@PathVariable("goodsIds") String goodsIds){
        String[] split = goodsIds.split("-");
        String[] split = goodsIds.split(",");
        List<String> strings = new ArrayList<>();
        for (String s : split) {
            if (s.contains("-")){
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderQueryDto.java
@@ -8,11 +8,15 @@
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
@ApiModel("支付订单查询dto")
public class PayOrderQueryDto extends BasePage {
    @ApiModelProperty("订单编号")
    private String code;
    @ApiModelProperty("开票跳转-订单ids数组")
    private List<String> ids;
    @ApiModelProperty("1充电订单2购物订单3vip订单4停车订单")
    private Integer type;
    @ApiModelProperty("手机号")
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -450,8 +450,14 @@
        this.save(chargingOrder);
        //添加订单的计费策略
        TAccountingStrategy accountingStrategy = accountingStrategyClient.getAccountingStrategyById(tChargingGun.getAccountingStrategyId()).getData();
        List<TAccountingStrategyDetail> strategyDetailList = accountingStrategyDetailClient.getListByAccountingStrategyId(tChargingGun.getAccountingStrategyId()).getData();
        Integer accountingStrategyId = tChargingGun.getAccountingStrategyId();
        if(null == accountingStrategyId){
            //查询站点上面的计费策略
            Site site = siteClient.getSiteByIds(Arrays.asList(tChargingGun.getSiteId())).getData().get(0);
            accountingStrategyId = site.getAccountingStrategyId();
        }
        TAccountingStrategy accountingStrategy = accountingStrategyClient.getAccountingStrategyById(accountingStrategyId).getData();
        List<TAccountingStrategyDetail> strategyDetailList = accountingStrategyDetailClient.getListByAccountingStrategyId(accountingStrategyId).getData();
        AccountingStrategyOrder accountingStrategyOrder = new AccountingStrategyOrder();
        BeanUtils.copyProperties(accountingStrategy, accountingStrategyOrder);
        accountingStrategyOrder.setChargingOrderId(chargingOrder.getId());
@@ -1798,18 +1804,25 @@
        String startTime = dto.getStartTime();
        String endTime = dto.getEndTime();
        // 将这两个时间转化为localDateTime
        tSettlementConfirm.setStartTime(LocalDateTime.parse(startTime));
        tSettlementConfirm.setEndTime(LocalDateTime.parse(endTime));
        // 创建 DateTimeFormatter 对象,指定格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        // 将字符串解析为 LocalDateTime 对象
        LocalDateTime localDateTime = LocalDateTime.parse(startTime, formatter);
        LocalDateTime localDateTime1 = LocalDateTime.parse(endTime, formatter);
        tSettlementConfirm.setEndTime(localDateTime1);
        tSettlementConfirm.setStartTime(localDateTime);
        // 根据站点id和开始时间和结束时间和归属日期 查询充电订单列表
        QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
                .eq("site_id", dto.getSiteId())
                .eq("recharge_payment_status",2);
        switch (dto.getType()){
            case 1:
                eq.between("start_time", startTime, endTime);
                eq.between("start_time", localDateTime, localDateTime1);
                break;
            case 2:
                eq.between("end_time", startTime, endTime);
                eq.between("end_time", localDateTime, localDateTime1);
                break;
        }
        List<TChargingOrder> tChargingOrders = this.baseMapper.selectList(eq);
@@ -1833,13 +1846,23 @@
        BigDecimal paymentAmount = new BigDecimal("0");
        for (TChargingOrder tChargingOrder : tChargingOrders) {
            // 累加充电总度数
            chargingElectronic = chargingElectronic.add(tChargingOrder.getChargingCapacity());
            if (tChargingOrder.getChargingCapacity()!=null){
                chargingElectronic = chargingElectronic.add(tChargingOrder.getChargingCapacity());
            }
            // 累加分佣
            sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
            if (tChargingOrder.getSharingAmount()!=null) {
                sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
            }
            // 累加电费
            if (tChargingOrder.getElectrovalence()!=null) {
            electrovalence = electrovalence.add(tChargingOrder.getElectrovalence());
            }
            // 累加服务费
            serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
            if (tChargingOrder.getServiceCharge()!=null){
                serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
            }
            // 累加会员折扣
            if (tChargingOrder.getVipDiscountAmount()!=null){
                vipDiscount = vipDiscount.add(tChargingOrder.getVipDiscountAmount());
@@ -1848,11 +1871,13 @@
            if (tChargingOrder.getCouponDiscountAmount()!=null){
                couponDiscount = couponDiscount.add(tChargingOrder.getCouponDiscountAmount());
            }
            if (tChargingOrder.getRefundStatus() == 2){
            if (tChargingOrder.getRefundStatus()!=null &&tChargingOrder.getRefundStatus() == 2){
                // 如果成功退款 那么减去退款金额
                paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount().subtract(tChargingOrder.getRefundAmount()));
            }else{
                paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
                if (tChargingOrder.getPaymentAmount()!=null){
                    paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
                }
            }
        }
        // 三方交易手续费 三方收费*0.6%
@@ -1868,34 +1893,36 @@
        tSettlementConfirm.setVipDiscount(vipDiscount);
        tSettlementConfirm.setCouponDiscount(couponDiscount);
        tSettlementConfirm.setSiteId(dto.getSiteId());
        tSettlementConfirm.setMeteringElectronic(dto.getData().getMeteringElectronic());
        tSettlementConfirm.setChargingElectronic(chargingElectronic);
        tSettlementConfirm.setLossElectronic(dto.getData().getLossElectronic());
        tSettlementConfirm.setIncome(chargingElectronic.add(serviceCharge));
        tSettlementConfirm.setVenue(dto.getData().getVenue());
        tSettlementConfirm.setMetering(dto.getData().getMetering());
        tSettlementConfirm.setClean(dto.getData().getClean());
        tSettlementConfirm.setMaintain(dto.getData().getMaintain());
        tSettlementConfirm.setCost(dto.getData().getVenue().add(dto.getData().getClean()).add(dto.getData().getMaintain()));
        tSettlementConfirm.setProfitMoney(new BigDecimal("0"));
        tSettlementConfirm.setNewMoney(new BigDecimal("0"));
        tSettlementConfirm.setNewSettlement(new BigDecimal("0"));
        tSettlementConfirm.setVipDiscount(vipDiscount);
        tSettlementConfirm.setCouponDiscount(couponDiscount);
        tSettlementConfirm.setSupplyElectronic(dto.getData().getSupplyElectronic());
        tSettlementConfirm.setType(dto.getType());
        tSettlementConfirm.setProportionPartner(dto.getData().getProportionPartner());
        tSettlementConfirm.setProportionMoney(dto.getData().getProportionMoney());
        tSettlementConfirm.setTotalElectronic(dto.getData().getTotalElectronic());
        tSettlementConfirm.setTotalService(dto.getData().getTotalService());
        tSettlementConfirm.setRemark(dto.getData().getRemark());
        tSettlementConfirm.setServicePartner(dto.getData().getServicePartner());
        tSettlementConfirm.setServiceMoney(dto.getData().getServiceMoney());
        tSettlementConfirm.setTotalService(dto.getData().getTotalService());
        tSettlementConfirm.setServiceRemark(dto.getData().getServiceRemark());
        tSettlementConfirm.setDistribution(dto.getData().getDistribution());
        tSettlementConfirm.setIncome(dto.getData().getElectrovalence().add(dto.getData().getServiceCharge()));
        if (dto.getState() == 2){
            tSettlementConfirm.setSupplyElectronic(dto.getSupplyElectronic());
            tSettlementConfirm.setVenue(dto.getVenue());
            tSettlementConfirm.setMetering(dto.getMetering());
            tSettlementConfirm.setClean(dto.getClean());
            tSettlementConfirm.setLossElectronic(dto.getLossElectronic());
            tSettlementConfirm.setMaintain(dto.getMaintain());
            tSettlementConfirm.setMeteringElectronic(dto.getMeteringElectronic());
            tSettlementConfirm.setProportionPartner(dto.getProportionPartner());
            tSettlementConfirm.setProportionMoney(dto.getProportionMoney());
            tSettlementConfirm.setTotalElectronic(dto.getTotalElectronic());
            tSettlementConfirm.setTotalService(dto.getTotalService());
            tSettlementConfirm.setRemark(dto.getRemark());
            tSettlementConfirm.setServicePartner(dto.getServicePartner());
            tSettlementConfirm.setServiceMoney(dto.getServiceMoney());
            tSettlementConfirm.setTotalService(dto.getTotalService());
            tSettlementConfirm.setServiceRemark(dto.getServiceRemark());
            tSettlementConfirm.setDistribution(dto.getDistribution());
            tSettlementConfirm.setIncome(dto.getElectrovalence().add(dto.getServiceCharge()));
            tSettlementConfirm.setCost(dto.getVenue().add(dto.getClean()).add(dto.getMaintain()));
            tSettlementConfirmMapper.insert(tSettlementConfirm);
        }
        return tSettlementConfirm;
@@ -1922,7 +1949,7 @@
        }
        pageInfo.setRecords(list);
        return null;
        return pageInfo;
    }
    @Override
@@ -2082,13 +2109,23 @@
        tSettlementConfirm.setVipDiscount(vipDiscount);
        tSettlementConfirm.setCouponDiscount(couponDiscount);
        // 本月
        BigDecimal subtract = income.subtract(beforeIncome).divide(beforeIncome).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"));
        tSettlementConfirm.setIncomePercentage(subtract+"%");
        if (beforeIncome.compareTo(new BigDecimal("0")) == 0){
            tSettlementConfirm.setIncomePercentage(0+"%");
            tSettlementConfirm.setIncomePercentage(0+"%");
        }else{
            BigDecimal subtract = income.subtract(beforeIncome).divide(beforeIncome).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"));
            tSettlementConfirm.setIncomePercentage(subtract+"%");
            tSettlementConfirm.setIncomePercentage(subtract+"%");
        }
        // 比较总利润 收入合计-成本合计
        BigDecimal subtract1 = income.subtract(cost);
        BigDecimal subtract2 = beforeIncome.subtract(beforeCost);
        tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%");
        tSettlementConfirm.setIncomePercentage(subtract+"%");
        if (subtract2.compareTo(new BigDecimal("0")) == 0){
            tSettlementConfirm.setTotalPercentage(0+"%");
        }else{
            tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%");
        }
        tSettlementConfirm.setElectronicRefund(0);
        // 查询上次汇报数据 进行比对涨幅跌幅
        total.add(tSettlementConfirm);
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java
@@ -75,8 +75,7 @@
            wrapper.eq(TExchangeOrder::getStatus, query.getStatus());
        }
        long count = this.count(wrapper);
        Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize();
        List<TExchangeOrder> list = this.list(wrapper.orderByDesc(TExchangeOrder::getCreateTime).last(" limit " + pageCurr + "," + query.getPageSize()));
        List<TExchangeOrder> list = this.list(wrapper.orderByDesc(TExchangeOrder::getCreateTime).last(" limit " + query.getPageCurr() + "," + query.getPageSize()));
        List<MyExchangeOrderList> pageList = new ArrayList<>();
        for (TExchangeOrder tExchangeOrder : list) {
            MyExchangeOrderList exchangeOrderList = new MyExchangeOrderList();
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -255,6 +255,14 @@
        query.setUserIds(userList.stream().map(TAppUser::getId).collect(Collectors.toList()));
        PageInfo<TOrderInvoiceVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
        List<TOrderInvoiceVO> list = this.baseMapper.pageList(query,pageInfo);
        for (TOrderInvoiceVO tOrderInvoiceVO : list) {
            List<Long> collect = orderInvoiceDetailService.lambdaQuery().eq(TOrderInvoiceDetail::getOrderInvoiceId, tOrderInvoiceVO.getId())
                    .eq(TOrderInvoiceDetail::getOrderType, 1).list().stream()
                    .map(TOrderInvoiceDetail::getOrderId).collect(Collectors.toList());
            // 将其全部转化为String
            tOrderInvoiceVO.setIds(collect.stream().map(String::valueOf).collect(Collectors.toList()));
        }
        // 查询这个开票的订单ids
        List<Long> ids = list.stream().map(TOrderInvoiceVO::getId).collect(Collectors.toList());
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -201,8 +201,7 @@
            wrapper.eq(TShoppingOrder::getStatus, query.getStatus());
        }
        long count = this.count(wrapper);
        Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize();
        List<TShoppingOrder> list = this.list(wrapper.orderByDesc(TShoppingOrder::getCreateTime).last(" limit " + pageCurr + ", " + query.getPageSize()));
        List<TShoppingOrder> list = this.list(wrapper.orderByDesc(TShoppingOrder::getCreateTime).last(" limit " + query.getPageCurr() + ", " + query.getPageSize()));
        List<MyShoppingOrderList> pageList = new ArrayList<>();
        for (TShoppingOrder tShoppingOrder : list) {
            MyShoppingOrderList myShoppingOrderList = new MyShoppingOrderList();
ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
@@ -24,7 +24,6 @@
        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
        username: nacos
        password: nacos
        ip: 192.168.110.85
      config:
        # 配置中心地址
        server-addr: 192.168.110.169:8848
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -193,6 +193,12 @@
                    <if test="data.createTime2 != null">
                        AND o.create_time &lt;= #{data.createTime2}
                    </if>
                    <if test="data.ids != null and data.ids() > 0">
                        AND o.id IN
                        <foreach collection="data.ids" item="id" open="(" separator="," close=")">
                            #{id}
                        </foreach>
                    </if>
                </where>
        ORDER BY o.create_time desc
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TActivityController.java
@@ -3,6 +3,9 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.other.api.domain.TActivity;
import com.ruoyi.other.api.domain.TAdvertising;
import com.ruoyi.other.api.dto.AdvertisingDTO;
@@ -30,18 +33,21 @@
    private TActivityService activityService;
    @PostMapping("/saveActivity")
    @ApiOperation(tags = {"管理后台-活动管理"},value = "活动添加")
    @Log(title = "【活动管理】添加活动", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    public AjaxResult saveActivity(@RequestBody TActivity dto) {
        activityService.save(dto);
        return AjaxResult.success();
    }
    @GetMapping("/delete")
    @ApiOperation(tags = {"管理后台-活动管理"},value = "活动删除")
    @Log(title = "【活动管理】删除活动", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public AjaxResult delete(String ids) {
        activityService.removeBatchByIds(Arrays.asList(ids.split(",")));
        return AjaxResult.success();
    }
    @PostMapping("/updateVip")
    @ApiOperation(tags = {"管理后台-活动管理"},value = "活动修改")
    @Log(title = "【活动管理】修改活动", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    public AjaxResult updateActivity(@RequestBody TActivity dto) {
        activityService.updateById(dto);
        return AjaxResult.success();
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.other.api.domain.TAdvertising;
import com.ruoyi.other.api.domain.TVip;
import com.ruoyi.other.api.dto.AdvertisingDTO;
@@ -37,18 +38,21 @@
    private TAdvertisingService advertisingService;
    @PostMapping("/saveAdvertising")
    @ApiOperation(tags = {"管理后台-广告管理"},value = "广告添加")
    @Log(title = "【广告管理】添加广告", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    public AjaxResult saveAdvertising(@RequestBody TAdvertising dto) {
        advertisingService.save(dto);
        return AjaxResult.success();
    }
    @GetMapping("/delete")
    @ApiOperation(tags = {"管理后台-广告管理"},value = "广告删除")
    @Log(title = "【广告管理】删除广告", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public AjaxResult delete(String ids) {
        advertisingService.removeBatchByIds(Arrays.asList(ids.split(",")));
        return AjaxResult.success();
    }
    @PostMapping("/updateVip")
    @ApiOperation(tags = {"管理后台-广告管理"},value = "广告修改")
    @Log(title = "【广告管理】修改广告", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    public AjaxResult updateVip(@RequestBody TAdvertising dto) {
        advertisingService.updateById(dto);
        return AjaxResult.success();
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -10,6 +10,9 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.other.api.domain.Region;
import com.ruoyi.other.api.domain.TCoupon;
import com.ruoyi.other.api.domain.TGoods;
@@ -66,6 +69,7 @@
    }
    @PostMapping("/saveGoods")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券添加")
    @Log(title = "【优惠券管理】添加优惠券", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    public AjaxResult saveActivity(@RequestBody TCoupon dto) {
        tCouponService.save(dto);
        return AjaxResult.success();
@@ -75,6 +79,7 @@
    @GetMapping("/delete")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券删除")
    @Log(title = "【优惠券管理】删除优惠券", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public AjaxResult delete(String ids) {
        tCouponService.removeBatchByIds(Arrays.asList(ids.split(",")));
        return AjaxResult.success();
@@ -84,6 +89,7 @@
    @PostMapping("/updateVip")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券修改")
    @Log(title = "【优惠券管理】修改优惠券", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    public AjaxResult updateActivity(@RequestBody TCoupon dto) {
        tCouponService.updateById(dto);
        return AjaxResult.success();
@@ -106,10 +112,9 @@
    @PostMapping("/exchangeRecord")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券查看详情-兑换记录")
    public AjaxResult<PageInfo<ExchangeRecordVO>> exchangeRecord(@RequestBody ExchangeRecordGoodsQuery dto) {
        PageInfo<ExchangeRecordVO> data = appCouponClient.getExchangeRecordByCouponId(dto).getData();
        List<ExchangeRecordVO> records = data.getRecords();
        for (ExchangeRecordVO record : records) {
    public AjaxResult<List<ExchangeRecordVO>> exchangeRecord(@RequestBody ExchangeRecordGoodsQuery dto) {
        List<ExchangeRecordVO> data = appCouponClient.getExchangeRecordByCouponId(dto).getData();
        for (ExchangeRecordVO record : data) {
            TCoupon byId = tCouponService.getById(record.getCouponId());
            if (byId!=null){
                    record.setDiscountAmount("¥"+byId.getDiscountAmount());
@@ -130,6 +135,7 @@
    private IRegionService regionService;
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "发放优惠券")
    @PostMapping(value = "/grantCoupon")
    @Log(title = "【优惠券管理】发放优惠券", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
    public AjaxResult grantCoupon(@RequestBody GrantCouponDto dto) {
        TCoupon byId = tCouponService.getById(dto.getCouponId());
        Integer waysToObtain = byId.getWaysToObtain();
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.TEnterpriseUserApplication;
import com.ruoyi.other.query.PassDto;
@@ -55,7 +56,7 @@
        return AjaxResult.ok(enterpriseUserApplicationService.save(dto));
    }
    @Log(title = "添加集团用户申请", businessType = BusinessType.INSERT)
    @Log(title = "【集团用户申请】添加集团用户申请", businessType = BusinessType.INSERT)
    @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "后台添加集团用户申请")
    @PostMapping(value = "/back/add")
    public AjaxResult<Boolean> backAdd(@Validated @RequestBody TEnterpriseUserApplication dto) {
@@ -80,8 +81,9 @@
            return R.ok(page);
        }
    }
    @Log(title = "【集团用户申请】填写备注", businessType = BusinessType.INSERT)
    @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "备注")
    @PostMapping(value = "/remark")
    public AjaxResult pass(@RequestBody PassDto passDto) {
@@ -92,8 +94,9 @@
        enterpriseUserApplicationService.updateById(byId);
        return AjaxResult.success();
    }
    @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "备注")
    @Log(title = "【集团用户申请】删除申请数据", businessType = BusinessType.DELETE)
    @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "删除")
    @DeleteMapping(value = "/delete")
    public AjaxResult delete(String ids) {
        String[] split = ids.split(",");
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java
@@ -6,6 +6,8 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.other.api.domain.TEvaluationTag;
import com.ruoyi.other.api.domain.TInvoiceType;
import com.ruoyi.other.api.vo.TEvaluationTagVO;
@@ -56,6 +58,7 @@
    @ResponseBody
    @PostMapping("/addEvaluationTag")
    @ApiOperation(value = "添加评价标签", tags = {"管理后台-评价标签设置"})
    @Log(title = "【评价标签设置】添加评价标签", businessType = BusinessType.INSERT)
    public AjaxResult addEvaluationTag(@RequestBody TEvaluationTag evaluationTag){
        evaluationTagService.save(evaluationTag);
        return AjaxResult.success();
@@ -73,6 +76,7 @@
    @ResponseBody
    @PostMapping("/editEvaluationTag")
    @ApiOperation(value = "编辑评价标签", tags = {"管理后台-评价标签设置"})
    @Log(title = "【评价标签设置】编辑评价标签", businessType = BusinessType.UPDATE)
    public AjaxResult editEvaluationTag(@RequestBody TEvaluationTag evaluationTag){
        evaluationTagService.updateById(evaluationTag);
        return AjaxResult.success();
@@ -82,6 +86,7 @@
    @ResponseBody
    @DeleteMapping("/delEvaluationTag")
    @ApiOperation(value = "删除评价标签", tags = {"管理后台-评价标签设置"})
    @Log(title = "【评价标签设置】删除评价标签", businessType = BusinessType.DELETE)
    public AjaxResult<TInvoiceType> delEvaluationTag(@RequestParam("id") Integer[] id){
        List<TEvaluationTag> tEvaluationTags = evaluationTagService.listByIds(Arrays.asList(id));
        for (TEvaluationTag evaluationTag : tEvaluationTags) {
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
@@ -16,6 +16,8 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.api.feignClient.OrderClient;
import com.ruoyi.order.api.model.TShoppingOrder;
@@ -84,6 +86,7 @@
    @PostMapping("/saveGoods")
    @ApiOperation(tags = {"管理后台-商品管理"},value = "商品添加")
    @Log(title = "【商品管理】添加商品", businessType = BusinessType.INSERT)
    public AjaxResult saveActivity(@RequestBody TGoods dto) {
        goodsService.save(dto);
        return AjaxResult.success();
@@ -93,6 +96,7 @@
    @GetMapping("/delete")
    @ApiOperation(tags = {"管理后台-商品管理"},value = "商品删除")
    @Log(title = "【商品管理】删除商品", businessType = BusinessType.DELETE)
    public AjaxResult delete(String ids) {
        goodsService.removeBatchByIds(Arrays.asList(ids.split(",")));
        return AjaxResult.success();
@@ -102,6 +106,7 @@
    @PostMapping("/updateVip")
    @ApiOperation(tags = {"管理后台-商品管理"},value = "商品修改")
    @Log(title = "【商品管理】修改商品", businessType = BusinessType.UPDATE)
    public AjaxResult updateActivity(@RequestBody TGoods dto) {
        goodsService.updateById(dto);
        return AjaxResult.success();
@@ -222,6 +227,7 @@
            grantCouponDto.setCouponId(exchangeDto.getGoodId());
            grantCouponDto.setWaysToObtain(1);
            grantCouponDto.setEndTime(LocalDateTime.now());
            grantCouponDto.setType(3);
            appCouponClient.grantCoupon(grantCouponDto);
        }
        //生成消耗积分的记录
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/THtmlController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.other.api.domain.THtml;
import com.ruoyi.other.api.domain.TNotice;
import com.ruoyi.other.service.THtmlService;
@@ -29,6 +31,7 @@
    @ApiOperation(tags = {"后台-内容设置-协议服务"},value = "新增修改")
    @PostMapping(value = "/saveOrUpdate")
    @Log(title = "【协议服务】新增修改协议", businessType = BusinessType.INSERT)
    public AjaxResult saveOrUpdate(@RequestBody THtml tHtml) {
        THtml one = htmlService.lambdaQuery().eq(THtml::getType, tHtml.getType()).one();
        if(one!=null){
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java
@@ -6,6 +6,8 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.other.api.domain.THtml;
import com.ruoyi.other.api.domain.TIntegralRule;
import com.ruoyi.other.api.dto.SaveHtml;
@@ -44,6 +46,7 @@
    
    @PostMapping("/saveSet")
    @ApiOperation(tags = {"管理后台-积分管理"},value = "保存积分设置")
    @Log(title = "【积分管理】保存积分设置", businessType = BusinessType.INSERT)
    public R saveSet(@RequestBody TIntegralRule dto) {
        TIntegralRule one = integralRuleService.getOne(null);
        if (one!=null){
@@ -78,6 +81,7 @@
    @PostMapping("/saveInfo")
    @ApiOperation(tags = {"管理后台-积分管理"},value = "保存积分说明")
    @Log(title = "【积分管理】保存积分说明", businessType = BusinessType.INSERT)
    public R saveInfo(@RequestBody SaveHtml dto) {
        THtml g = htmlService.getOne(new QueryWrapper<THtml>().eq("type",dto.getType()));
        if (g == null){
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TInvoiceTypeController.java
@@ -5,6 +5,8 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.other.api.domain.TInvoiceType;
import com.ruoyi.other.query.InvoiceTypePageList;
import com.ruoyi.other.service.TInvoiceTypeService;
@@ -40,13 +42,12 @@
        PageInfo<TInvoiceType> pageInfo = invoiceTypeService.pageList(pageList);
        return AjaxResult.success(pageInfo);
    }
    @ResponseBody
    @GetMapping("/pageListR")
    @ApiOperation(value = "获取开票公司和类型列表", tags = {"管理后台-发票管理"})
    public R<List<TInvoiceType>> pageListR( String company){
    public R<List<TInvoiceType>> pageListR(String invoicingCompany ){
        List<TInvoiceType> list = new ArrayList<>();
        if (StringUtils.hasLength(company)){
            list = invoiceTypeService.lambdaQuery().eq(TInvoiceType::getInvoicingCompany, company).list();
        if (StringUtils.hasLength(invoicingCompany )){
            list = invoiceTypeService.lambdaQuery().eq(TInvoiceType::getInvoicingCompany, invoicingCompany).list();
        }else{
            list = invoiceTypeService.lambdaQuery().list();
        }
@@ -57,6 +58,7 @@
    @ResponseBody
    @PostMapping("/addInvoiceType")
    @ApiOperation(value = "添加发票类型", tags = {"管理后台-发票类型管理"})
    @Log(title = "【发票类型管理】添加发票类型", businessType = BusinessType.INSERT)
    public AjaxResult addInvoiceType(@RequestBody TInvoiceType invoiceType){
        invoiceTypeService.save(invoiceType);
        return AjaxResult.success();
@@ -74,6 +76,7 @@
    @ResponseBody
    @PostMapping("/editInvoiceType")
    @ApiOperation(value = "编辑发票类型", tags = {"管理后台-发票类型管理"})
    @Log(title = "【发票类型管理】编辑发票类型", businessType = BusinessType.UPDATE)
    public AjaxResult editInvoiceType(@RequestBody TInvoiceType invoiceType){
        invoiceTypeService.updateById(invoiceType);
        return AjaxResult.success();
@@ -83,6 +86,7 @@
    @ResponseBody
    @DeleteMapping("/delInvoiceType")
    @ApiOperation(value = "删除发票类型", tags = {"管理后台-发票类型管理"})
    @Log(title = "【发票类型管理】删除发票类型", businessType = BusinessType.DELETE)
    public AjaxResult<TInvoiceType> delInvoiceType(Integer[] id){
        List<TInvoiceType> tInvoiceTypes = invoiceTypeService.listByIds(Arrays.asList(id));
        for (TInvoiceType invoiceType : tInvoiceTypes) {
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.other.api.domain.TNotice;
import com.ruoyi.other.api.dto.NoticeQueryDto;
import com.ruoyi.other.mapper.SysNoticeMapper;
@@ -32,6 +34,7 @@
    @ApiOperation(tags = {"后台-内容设置-公告管理"},value = "新增修改")
    @PostMapping(value = "/saveOrUpdate")
    @Log(title = "【公告管理】新增修改公告", businessType = BusinessType.INSERT)
    public AjaxResult saveOrUpdate(@RequestBody TNotice notice) {
        noticeService.saveOrUpdate(notice);
        return AjaxResult.success();
@@ -39,6 +42,7 @@
    @ApiOperation(tags = {"后台-内容设置-公告管理"},value = "删除")
    @DeleteMapping(value = "/deleteById")
    @Log(title = "【公告管理】删除公告", businessType = BusinessType.DELETE)
    public AjaxResult deleteById(String ids) {
        String[] split = ids.split(",");
        for (String id : split) {
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.other.api.domain.TSystemConfiguration;
import com.ruoyi.other.service.TSystemConfigurationService;
import io.swagger.annotations.ApiOperation;
@@ -43,6 +45,7 @@
    @ApiOperation(tags = {"后台-内容设置"},value = "客户信息,系统内容设置")
    @PostMapping(value = "/save")
    @Log(title = "【系统内容设置】保存系统内容设置", businessType = BusinessType.INSERT)
    public AjaxResult getDetailById(@RequestBody TSystemConfiguration systemConfiguration) {
        systemConfigurationService.saveOrUpdate(systemConfiguration);
        return AjaxResult.success();
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
@@ -8,6 +8,8 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.TCoupon;
import com.ruoyi.other.api.domain.TIntegralRule;
@@ -52,18 +54,21 @@
    private TokenService tokenService;
    @PostMapping("/saveVip")
    @ApiOperation(tags = {"管理后台-会员管理"},value = "会员添加")
    @Log(title = "【会员管理】添加会员", businessType = BusinessType.INSERT)
    public AjaxResult saveVip(@RequestBody TVip dto) {
        vipService.save(dto);
        return AjaxResult.success();
    }
    @GetMapping("/delete")
    @ApiOperation(tags = {"管理后台-会员管理"},value = "会员删除")
    @Log(title = "【会员管理】删除会员", businessType = BusinessType.DELETE)
    public AjaxResult delete(String ids) {
        vipService.removeBatchByIds(Arrays.asList(ids.split(",")));
        return AjaxResult.success();
    }
    @PostMapping("/updateVip")
    @ApiOperation(tags = {"管理后台-会员管理"},value = "会员修改")
    @Log(title = "【会员管理】修改会员", businessType = BusinessType.UPDATE)
    public AjaxResult updateVip(@RequestBody TVip dto) {
            vipService.updateById(dto);
        return AjaxResult.success();