From 18d2ac4785e5ff819fe077bdd4eb4ee9731ab454 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 24 十月 2024 11:46:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java       |   12 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java                            |    1 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java     |   20 ++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java                 |   10 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java      |   11 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java              |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java     |    5 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/template/结算汇总.xlsx                                  |    0 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java           |    6 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java            |    2 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java                  |   47 ++++-
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java                         |    1 
 ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml                                              |   10 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml                      |   21 +
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java |    1 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java        |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java          |   37 ++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java   |   99 ++++++++++++
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                      |   61 +++---
 ruoyi-service/ruoyi-chargingPile/src/main/resources/template/充电桩申请记录.xlsx                               |    0 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java                |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java                |    3 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java        |   71 ++++++++
 23 files changed, 352 insertions(+), 74 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
index 1ab909b..865d080 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
@@ -88,6 +88,8 @@
     private String couponIds;
     @TableField(exist = false)
     private String vipName;
+    @TableField(exist = false)
+    private Integer type;
 
 
 
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
index ab55bc6..20929f8 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
@@ -5,6 +5,7 @@
 import com.ruoyi.common.core.dto.ExchangeDto;
 import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.order.api.model.ChargingListQuery;
+import com.ruoyi.order.api.model.TGrantVip;
 import com.ruoyi.order.api.model.TShoppingOrder;
 import com.ruoyi.order.api.model.TVipOrder;
 import com.ruoyi.order.api.query.TActivityStatisticsQuery;
@@ -35,6 +36,11 @@
 
 
             @Override
+            public R managementGiveVip(TGrantVip grantVip) {
+                return R.fail("管理后台赠送会员:" + cause.getMessage());
+            }
+
+            @Override
             public R<List<Integer>> getSalesCountByGoodsId(String goodsIds) {
                 return R.fail("根据商品订单ids查询销量:" + cause.getMessage());
             }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
index 300a830..210327e 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
@@ -6,6 +6,7 @@
 import com.ruoyi.common.core.dto.ExchangeDto;
 import com.ruoyi.order.api.factory.OrderFallbackFactory;
 import com.ruoyi.order.api.model.ChargingListQuery;
+import com.ruoyi.order.api.model.TGrantVip;
 import com.ruoyi.order.api.model.TShoppingOrder;
 import com.ruoyi.order.api.model.TVipOrder;
 import com.ruoyi.order.api.query.TActivityStatisticsQuery;
@@ -23,7 +24,8 @@
  */
 @FeignClient(contextId = "OrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = OrderFallbackFactory.class)
 public interface OrderClient {
-
+    @PostMapping(value = "/t-charging-order/management/give/vip")
+    public R managementGiveVip(@RequestBody TGrantVip grantVip);
     @GetMapping("/t-exchange-order/getSalesCountByGoodsIds/{goodsIds}")
     R<List<Integer>> getSalesCountByGoodsId(@PathVariable("goodsIds") String goodsIds);
 
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
index 57bc9ba..cd6ebc7 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
@@ -14,8 +14,11 @@
 public class ChargingOrderListVO  {
     @ApiModelProperty(value = "电站名称")
     private String siteName;
+
     @ApiModelProperty(value = "订单状态")
     private Integer status;
+    @ApiModelProperty(value = "充值支付状态(1=待支付,2=已支付)")
+    private Integer rechargePaymentStatus;
     @ApiModelProperty(value = "电站id")
     private Integer siteId;
     @ApiModelProperty(value = "充电桩id")
@@ -40,6 +43,8 @@
     private BigDecimal electricity;
     @ApiModelProperty(value = "充电到账金额")
     private BigDecimal orderAmount;
+    @ApiModelProperty(value = "会员抵扣金额")
+    private BigDecimal vipDiscountAmount;
     @ApiModelProperty(value = "车牌号")
     private String licensePlate;
     @ApiModelProperty(value = "客户手机号")
@@ -61,6 +66,11 @@
     @ApiModelProperty(value = "开始时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime startTime;
+    @ApiModelProperty(value = "最后支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime payTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
     @ApiModelProperty(value = "结束时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime endTime;
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java
index b443083..29445d2 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java
@@ -17,6 +17,8 @@
 
     @ApiModelProperty(value = "用户手机号")
     private String phone;
+    @ApiModelProperty(value = "用户id")
+    private Long appUserId;
 
     @ApiModelProperty(value = "参与类型 优惠券 会员抵扣 会员活动 赠送会员")
     private String type;
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java
index 17df5bc..be390c2 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java
@@ -42,4 +42,5 @@
 
     @ApiModelProperty(value = "会员名称")
     private String name;
+    private Integer type;
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index e8dc672..7944129 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -225,7 +225,9 @@
      */
     @PostMapping("/grantCoupon")
     public R  grantCoupon(@RequestBody GrantCouponDto dto){
+        if (dto.getWaysToObtain()==null){
         dto.setWaysToObtain(3);
+        }
         List<TAppCoupon> res = new ArrayList<>();
         TCoupon coupon = otherClient.getCouponById(dto.getCouponId()).getData();
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index f035710..f06c968 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -19,6 +19,7 @@
 import com.ruoyi.common.core.dto.PointChangeDto;
 import com.ruoyi.common.core.enums.status.AppUserStatusEnum;
 import com.ruoyi.common.core.utils.JwtUtils;
+import com.ruoyi.common.core.utils.OrderCodeUtil;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -33,8 +34,10 @@
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.order.api.feignClient.ChargingOrderClient;
 import com.ruoyi.order.api.feignClient.ExchangeOrderClient;
+import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.order.api.model.TChargingOrder;
 import com.ruoyi.order.api.model.TExchangeOrder;
+import com.ruoyi.order.api.model.TGrantVip;
 import com.ruoyi.other.api.domain.*;
 import com.ruoyi.other.api.domain.TCoupon;
 import com.ruoyi.other.api.dto.UnitListQueryDto;
@@ -51,6 +54,7 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -76,6 +80,8 @@
     private TAppUserService appUserService;
     @Resource
     private TAppUserTagService appUserTagService;
+    @Autowired
+    private OrderClient orderClient;
 
     @Resource
     private TAppUserVipDetailService tAppUserVipDetailService;
@@ -332,6 +338,13 @@
             appUser.setLastDays( Duration.between(LocalDateTime.now(), appUser.getVipEndTime()).toDays());
             appUser.setUid(appUser.getId().toString());
 
+
+            TAppUserCar one1 = appUserCarService.lambdaQuery().eq(TAppUserCar::getAppUserId, appUser.getId()).orderByDesc(BasePojo::getCreateTime).last("limit 1").one();
+            if (one1!=null){
+                CarNumDto carNumDto = CarUtil.carNum(one1.getLicensePlate());
+                appUser.setPlace(carNumDto.getProvince()+carNumDto.getCity());
+
+            }
         }
         return R.ok(page);
     }
@@ -719,9 +732,31 @@
         } else if (giveVipDto.getType() == 3) {
             plusDay = 12;
         }
-        //增加vipDetail
+            BigDecimal bigDecimal = new BigDecimal("0");
+            TVip info = vipClient.getInfo1(giveVipDto.getVipId()).getData();
+        switch (giveVipDto.getType()){
+            case 1:
+                bigDecimal = bigDecimal.add(info.getMonthlyCard());
+                break;
+            case 2:
+                bigDecimal = bigDecimal.add(info.getSeasonCard());
+                break;
+            case 3:
+                bigDecimal = bigDecimal.add(info.getAnnualCard());
+                break;
+        }
+            //增加vipDetail
         giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay,giveVipDto.getType());
         appUserService.updateById(nowUser);
+        // 新增后台赠送记录
+            TGrantVip tGrantVip = new TGrantVip();
+            tGrantVip.setCode(OrderCodeUtil.getOrderCode("ZS"));
+            tGrantVip.setAppUserId(nowUser.getId());
+            tGrantVip.setVipId(giveVipDto.getVipId());
+            tGrantVip.setOrderAmount(bigDecimal);
+            tGrantVip.setCreateTime(LocalDateTime.now());
+            tGrantVip.setAppUserId(nowUser.getId());
+            orderClient.managementGiveVip(tGrantVip);
         }
         return R.ok();
     }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
index 6802f7c..196895d 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
@@ -64,6 +64,7 @@
             if(null != tAppUserVipDetail.getVipId()){
                 TVip data = vipClient.getInfo1(tAppUserVipDetail.getVipId()).getData();
                 tAppUserVipDetail.setVipName(data.getName());
+				tAppUserVipDetail.setType(data.getType());
             }
         }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
index 66ff91a..19d5fe3 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
@@ -54,6 +54,7 @@
             if(Objects.isNull(appUser)){
                 appUser = new TAppUser();
                 appUser.setPhone(appletUserDecodeData.getPhoneNumber());
+                appUser.setInviteUserId(inviteUserId);
             }
         }
         if(Objects.nonNull(appUser.getStatus())){
@@ -68,14 +69,15 @@
                     break;
             }
         }
-        appUser.setInviteUserId(inviteUserId);
         appUser.setAvatar(appletUserDecodeData.getAvatarUrl());
         appUser.setCity(appletUserDecodeData.getCity());
         appUser.setName(appletUserDecodeData.getNickName());
         appUser.setProvince(appletUserDecodeData.getProvince());
         appUser.setWxOpenid(appletUserDecodeData.getOpenId());
         this.saveOrUpdate(appUser);
-        inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
+        if(Objects.nonNull(inviteUserId)){
+            inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
+        }
         return this.getUserInfo(appUser);
     }
 
@@ -95,6 +97,7 @@
             if(Objects.isNull(appUser)){
                 appUser = new TAppUser();
                 appUser.setPhone(phone);
+                appUser.setInviteUserId(inviteUserId);
             }
         }
         if(Objects.nonNull(appUser.getStatus())){
@@ -109,10 +112,11 @@
                     break;
             }
         }
-        appUser.setInviteUserId(inviteUserId);
         appUser.setAliOpenid(response.getOpenId());
         this.saveOrUpdate(appUser);
-        inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
+        if(Objects.nonNull(inviteUserId)){
+            inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
+        }
         return this.getUserInfo(appUser);
     }
 //    @Override
diff --git "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx"
index fc621e2..763334e 100644
--- "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx"
+++ "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx"
Binary files differ
diff --git "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\347\273\223\347\256\227\346\261\207\346\200\273.xlsx" "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\347\273\223\347\256\227\346\261\207\346\200\273.xlsx"
index 738da66..e66c778 100644
--- "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\347\273\223\347\256\227\346\261\207\346\200\273.xlsx"
+++ "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\347\273\223\347\256\227\346\261\207\346\200\273.xlsx"
Binary files differ
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
index 62bd3c0..b5f7dd1 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -5,10 +5,15 @@
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.ruoyi.account.api.feignClient.AppUserCarClient;
 import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserCar;
 import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
 import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
 import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient;
 import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.model.Partner;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.WebUtils;
@@ -46,9 +51,11 @@
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -80,17 +87,103 @@
         ChargingOrderListInfoVO res = chargingOrderService.chargingInfo(uid);
         return AjaxResult.success(res);
     }
+    @Autowired
+    private SiteClient siteClient;
+    @Autowired
+    private AppUserClient appUserClient;
+    @Autowired
+    private ChargingGunClient chargingGunClient;
+    @Autowired
+    private AppUserCarClient appUserCarClient;
     @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"})
     @PutMapping("/export")
     public void export(@RequestBody ChargingListQuery dto) {
         ChargingOrderTimeVO res = chargingOrderService.chargingList(dto);
         List<TChargingOrderExport> tChargingOrderExports = new ArrayList<>();
-        List<ChargingOrderListVO> exportList = res.getExportList();
+        List<ChargingOrderListVO> exportList = res.getList().getRecords();
+        int i = 0;
         for (ChargingOrderListVO chargingOrderListVO : exportList) {
             TChargingOrderExport tChargingOrderExport = new TChargingOrderExport();
-            BeanUtils.copyProperties(chargingOrderListVO,tChargingOrderExport);
-            tChargingOrderExports.add(tChargingOrderExport);
 
+            List<Site> data = siteClient.getSiteByIds(Arrays.asList(chargingOrderListVO.getSiteId())).getData();
+            TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData();
+            TChargingGun data4 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData();
+            if (data!=null&&(!data.isEmpty())){
+                tChargingOrderExport.setSiteCode(data.get(0).getCode());
+                tChargingOrderExport.setSiteName(chargingOrderListVO.getSiteName());
+                tChargingOrderExport.setCity(data.get(0).getCity());
+                tChargingOrderExport.setCityName(data.get(0).getDistricts());
+                tChargingOrderExport.setSiteType(data.get(0).getSiteType());
+                tChargingOrderExport.setStatus(data.get(0).getStatus()+"");
+                Partner data2 = siteClient.getPartnerR(data.get(0).getPartnerId()).getData();
+                if (data2!=null){
+                    tChargingOrderExport.setPartner(data2.getName());
+                }
+            }
+            tChargingOrderExport.setSaleType("1");
+            tChargingOrderExport.setBusinessCategory("1");
+            tChargingOrderExport.setId(i);
+            tChargingOrderExport.setCode(chargingOrderListVO.getCode());
+            tChargingOrderExport.setTerminalName(chargingOrderListVO.getTerminalName());
+//            tChargingOrderExport.setName();
+            tChargingOrderExport.setOrderClassification("1");
+            tChargingOrderExport.setStartType("扫码");
+            tChargingOrderExport.setOne("小程序");
+            tChargingOrderExport.setTwo("小程序");
+            tChargingOrderExport.setCreateTime(chargingOrderListVO.getCreateTime()+"");
+            tChargingOrderExport.setStartTime(chargingOrderListVO.getStartTime()+"");
+            tChargingOrderExport.setEndTime(chargingOrderListVO.getEndTime()+"");
+            tChargingOrderExport.setRechargePaymentStatus(chargingOrderListVO.getRechargePaymentStatus()+"");
+            tChargingOrderExport.setType("充电订单");
+            tChargingOrderExport.setChargingType("单桩双充");
+            tChargingOrderExport.setEndmode(chargingOrderListVO.getEndMode()+"");
+            tChargingOrderExport.setChargingEndAccount("平台");
+            tChargingOrderExport.setIsFree("否");
+            tChargingOrderExport.setElectrovalence(chargingOrderListVO.getElectrovalence()+"");
+            tChargingOrderExport.setServiceCharge(chargingOrderListVO.getServiceCharge()+"");
+            tChargingOrderExport.setTotal(chargingOrderListVO.getPaymentAmount()+"");
+            tChargingOrderExport.setChargingCapacity(chargingOrderListVO.getElectricity()+"");
+//            tChargingOrderExport.setElectrovalencePrice();
+//            tChargingOrderExport.setServiceChargePrice();
+//            tChargingOrderExport.setServiceChargePriceLook();
+//            tChargingOrderExport.setCumulativeChargingTime();
+            tChargingOrderExport.setStartSoc(chargingOrderListVO.getStartSoc());
+            tChargingOrderExport.setEndtSoc(chargingOrderListVO.getEndSoc());
+            tChargingOrderExport.setIsSoc("否");
+            tChargingOrderExport.setIsSocType("");
+            tChargingOrderExport.setIsSocNum("0");
+            tChargingOrderExport.setUserType("普通个人用户");
+//            tChargingOrderExport.setVipType();
+            tChargingOrderExport.setIsPlus(chargingOrderListVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0?"是":"否");
+            if (data3!=null){
+                tChargingOrderExport.setRealName(data3.getName());
+                tChargingOrderExport.setPhone(data3.getPhone());
+                tChargingOrderExport.setNickName(data3.getName());
+            }
+            if (data4!=null){
+                tChargingOrderExport.setDeviceCode(data4.getCode());
+            }
+            tChargingOrderExport.setAccountType("个人");
+            List<TAppUserCar> data1 = appUserCarClient.getCarByIds(Arrays.asList(chargingOrderListVO.getAppUserCarId())).getData();
+            if (data1!=null&&(!data1.isEmpty())){
+                tChargingOrderExport.setCarNumber(data1.get(0).getLicensePlate());
+                tChargingOrderExport.setCarType(data1.get(0).getVehicleModel());
+                tChargingOrderExport.setCarBrand(data1.get(0).getVehicleBrand());
+
+
+            }
+            tChargingOrderExport.setOrderCode(chargingOrderListVO.getCode());
+            tChargingOrderExport.setIsSingle("是");
+            tChargingOrderExport.setPayTime(chargingOrderListVO.getPayTime()+"");
+            tChargingOrderExport.setElectrovalenceSiteName("四川明星新能源科技有限公司");
+            tChargingOrderExport.setCompanyNameAdmin("四川明星新能源科技有限公司");
+            tChargingOrderExport.setMoneyType("线上计费");
+            tChargingOrderExport.setDeviceType("设备直连(自由集控)");
+            tChargingOrderExport.setSettlementCompanyName("四川明星新能源科技有限公司");
+            tChargingOrderExport.setPrePaymentType("先付后退");
+            tChargingOrderExport.setIsSecurity("是");
+            tChargingOrderExports.add(tChargingOrderExport);
+            i++;
         }
         Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TChargingOrderExport.class, tChargingOrderExports);
         HttpServletResponse response = WebUtils.response();
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 401f10d..f41efe0 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -92,7 +92,8 @@
     private TokenService tokenService;
     @Autowired
     private TOrderEvaluateService orderEvaluateService;
-    
+    @Autowired
+    private TGrantVipService tGrantVipService;
     @Resource
     private WxPaymentClient wxPaymentClient;
     
@@ -133,6 +134,15 @@
     @Resource
     private TOrderInvoiceService invoiceService;
 
+    /**
+     * 远程调用 增加管理后台赠送会员记录
+     * @return
+     */
+    @ResponseBody
+    @PostMapping(value = "/management/give/vip")
+    public R managementGiveVip(@RequestBody TGrantVip grantVip) {
+        return R.ok(tGrantVipService.save(grantVip));
+    }
 
     /**
      * 远程调用根据枪id 查询最新的订单id 用户后台结束充电
@@ -333,7 +343,7 @@
         chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()!=null?byId.getTotalElectricity().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
         chargingOrderInfoVO.setTotalPower(byId.getPower()!=null?byId.getPower().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
         if (byId.getAppUserCarId()!=null){
-            List<TAppUserCar> data = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData();
+            List<TAppUserCar> data = appUserCarClient.getCarByIds(Arrays.asList(byId.getAppUserCarId())).getData();
             if (!data.isEmpty()){
                 chargingOrderInfoVO.setLicensePlate(data.get(0).getLicensePlate());
                 chargingOrderInfoVO.setVehicleBrand(data.get(0).getVehicleBrand());
@@ -635,10 +645,36 @@
         }
         LocalDate sixBefore = PreviousSixMonths.get();
         //通过siteIds进行sql查询统计
+        List<SixChargingDto> sixChargingDtos = generateLastSixMonths();
         List<SixChargingDto> chargingDtos = chargingOrderService.charge(sixBefore, siteIds);
+        for (SixChargingDto sixChargingDto : sixChargingDtos) {
+            for (SixChargingDto chargingDto : chargingDtos) {
+                if (sixChargingDto.getMonth().equals(chargingDto.getMonth())){
+                    BeanUtils.copyProperties(chargingDto,sixChargingDto);
+                }
+            }
 
-        return R.ok(chargingDtos);
+        }
 
+        return R.ok(sixChargingDtos);
+
+    }
+
+
+    public static List<SixChargingDto> generateLastSixMonths() {
+        LocalDate today = LocalDate.now();
+        List<SixChargingDto> months = new ArrayList<>();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM");
+
+        for (int i = 5; i >= 0; i--) {
+            LocalDate date = today.minusMonths(i);
+            String month = date.format(formatter);
+            SixChargingDto sixChargingDto = new SixChargingDto();
+            sixChargingDto.setMonth(month);
+            months.add(sixChargingDto);
+        }
+
+        return months;
     }
 
     @ResponseBody
@@ -672,7 +708,33 @@
         //count近6个月的数据
         LocalDate sixBefore = PreviousSixMonths.get();
         List<SixShopDto> sixShopDtos =  shoppingOrderService.sixBefore(sixBefore,status);
-        return R.ok(sixShopDtos);
+        List<SixShopDto> sixChargingDtos = generateLastSixMonths1();
+        for (SixShopDto sixChargingDto : sixChargingDtos) {
+            for (SixShopDto chargingDto : sixShopDtos) {
+                if (sixChargingDto.getMonth().equals(chargingDto.getMonth())){
+                    BeanUtils.copyProperties(chargingDto,sixChargingDto);
+                }
+            }
+
+        }
+
+        return R.ok(sixChargingDtos);
+    }
+
+    public static List<SixShopDto> generateLastSixMonths1() {
+        LocalDate today = LocalDate.now();
+        List<SixShopDto> months = new ArrayList<>();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM");
+
+        for (int i = 5; i >= 0; i--) {
+            LocalDate date = today.minusMonths(i);
+            String month = date.format(formatter);
+            SixShopDto sixChargingDto = new SixShopDto();
+            sixChargingDto.setMonth(month);
+            months.add(sixChargingDto);
+        }
+
+        return months;
     }
 
     @ResponseBody
@@ -811,7 +873,6 @@
             LocalDate mondayThisWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
             start = statisticsQueryDto.getStartTime();
             end = statisticsQueryDto.getEndTime();
-
             System.out.println("本周一是: " + mondayThisWeek);
         }
         else if (statisticsQueryDto.getDayType()==3){
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java
index 4b5a40a..ad43d21 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java
@@ -26,6 +26,7 @@
     private Integer status;
     @ApiModelProperty("订单金额")
     private Double orderAmount;
+    private Double rechargeAmount;
     @ApiModelProperty("支付金额")
     private Double paymentAmount;
     @ApiModelProperty("下单时间")
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java
index 08c1165..8ea61be 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java
@@ -18,6 +18,7 @@
     private String siteCode;
     @Excel(name = "电站名称",width = 30)
     private String siteName;
+
     @Excel(name = "终端名称",width = 30)
     private String terminalName;
     @Excel(name = "所属城市",width = 30)
@@ -30,6 +31,8 @@
     private Integer siteType;
     @Excel(name = "售电模式",width = 30,replace = {"正常使用_1","维修中_2","关闭下线_3"})
     private String saleType;
+    @Excel(name = "站点状态",width = 30,replace = {"正常使用_1","维修中_2","关闭下线_3"})
+    private String status;
     @Excel(name = "运营类型",width = 30,replace = {"直营_1","非直营_2"})
     private String businessCategory;
     @Excel(name = "计费模板",width = 30)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
index 3ce44cb..110fe78 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -23,6 +23,7 @@
 import com.ruoyi.order.mapper.TChargingBillMapper;
 import com.ruoyi.order.mapper.TChargingOrderMapper;
 import com.ruoyi.order.service.TChargingBillService;
+import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
 import org.omg.CORBA.PRIVATE_MEMBER;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -318,8 +319,9 @@
             chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
 
             chargingBillListVO.setUid(chargingBillListVO.getId().toString());
-            // 根据账单的出账时间 查询上个月的充电订单
-            LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
+//            LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
+            // todo 临时修改为查询昨天的充电订单
+            LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
             // 账单周期
             chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
             // 获取 LocalDate 对象
@@ -359,7 +361,7 @@
                 if (tChargingOrder.getElectrovalence()!=null){
                     electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence());
                 }
-                if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() == 2){
+                if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus()!=null&&  tChargingOrder.getRefundStatus()==2){
                     refundAmount = refundAmount.add(tChargingOrder.getRefundAmount());
                 }
                 // 累加累计服务费
@@ -642,6 +644,9 @@
             chargingBillListVO.setChargingSecond(chargingSecond);
         }
         for (ChargingBillListVO chargingBillListVO : list1) {
+            if (chargingBillListVO.getType() ==1){
+                continue;
+            }
             LocalDateTime billTime = chargingBillListVO.getBillTime();
             // 将其转化为yyyy-MM格式字符串
             chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 14b5a07..3e1118a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1158,6 +1158,16 @@
 	public R<PageInfo<PayOrderDto>> payOrderQuery(PayOrderQueryDto payOrderQueryDto) {
 		PageInfo<PayOrderDto> pageInfo = new PageInfo<>(payOrderQueryDto.getPageCurr(),payOrderQueryDto.getPageSize());
 		List<PayOrderDto> list = this.baseMapper.payOrderQuery(pageInfo,payOrderQueryDto);
+		for (PayOrderDto payOrderDto : list) {
+			if (payOrderDto.getType()==2||payOrderDto.getType()==3){
+				payOrderDto.setFinalAmount(payOrderDto.getOrderAmount());
+			}
+			if (payOrderDto.getType()==1&&payOrderDto.getStatus()==3){
+				payOrderDto.setFinalAmount(payOrderDto.getRechargeAmount());
+				payOrderDto.setOrderAmount(payOrderDto.getRechargeAmount());
+				payOrderDto.setPaymentAmount(payOrderDto.getRechargeAmount());
+			}
+		}
 		pageInfo.setRecords(list);
 		return R.ok(pageInfo);
 	}
@@ -1311,7 +1321,9 @@
 						carId.add(chargingOrderListVO.getAppUserCarId());
 						if (!carId.isEmpty()){
 							List<TAppUserCar> data4 = appUserCarClient.getCarByIds(carId).getData();
-							if (data4!=null && !data4.isEmpty()) chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate());
+							if (data4!=null && !data4.isEmpty()) {
+								chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate());
+							}
 						}
 					}
 					chargingOrderListVO.setPhone(data3.getPhone());
@@ -1969,7 +1981,7 @@
 	}
 	@Override
 	public List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto) {
-		return this.baseMapper.usersByQuery(statisticsQueryDto);
+		return this.baseMapper.usersByQuery1(statisticsQueryDto);
 	}
 
 	@Override
@@ -2033,7 +2045,7 @@
 				chargingOrderRefund.setRefundTitle("后台退款");
 				chargingOrderRefund.setRefundContent("后台退款");
 				chargingOrderRefund.setRefundReason("后台退款");
-				chargingOrderRefund.setRefundRemark("后台退款");
+				chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
 				chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
 				chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
 
@@ -2094,7 +2106,7 @@
 				chargingOrderRefund.setRefundTitle("后台退款");
 				chargingOrderRefund.setRefundContent("后台退款");
 				chargingOrderRefund.setRefundReason("后台退款");
-				chargingOrderRefund.setRefundRemark("后台退款");
+				chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
 				chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
 				chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
index 05e1997..4783fdf 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -117,6 +117,10 @@
         BigDecimal grantVip = new BigDecimal("0");
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         for (TActivityStatisticslVO tActivityStatisticslVO : list1) {
+            TAppUser data = appUserClient.getUserById(tActivityStatisticslVO.getAppUserId()).getData();
+            if (data!=null){
+                tActivityStatisticslVO.setPhone(data.getPhone());
+            }
             // 判断享有了哪些类型
             switch (tActivityStatisticslVO.getOrderType()){
                 case 1:
@@ -187,6 +191,7 @@
             }
         }
         for (TActivityStatisticslVO tActivityStatisticslVO : list) {
+
             // 判断享有了哪些类型
             switch (tActivityStatisticslVO.getOrderType()){
                 case 1:
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index b995f9a..1b22fd9 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -121,6 +121,7 @@
         title,
         `status`,
         order_amount,
+        recharge_amount,
         payment_amount ,
         create_time,
         end_time,
@@ -381,7 +382,7 @@
             type,
             SUM( charging_capacity ) as charging_capacity ,
             SUM( period_service_price ) as period_electric_price,
-            SUM(period_electric_price+period_service_price) as total_amount
+            SUM(period_electric_price) as total_amount
         FROM
             t_charging_order_accounting_strategy
         <where>
@@ -398,9 +399,9 @@
     <select id="getDateData" resultType="java.util.Map">
         SELECT
             DATE_FORMAT( create_time, '%Y-%m-%d %H' ) as time,
-	SUM(service_charge) as servicecharge,
-	SUM(electrovalence) as electrovalence,
-    SUM(payment_amount) AS paymentAmount,
+        CAST(SUM(service_charge-coupon_discount_amount) AS DECIMAL(20, 6)) as  servicecharge,
+        CAST(SUM(charging_capacity) AS DECIMAL(20, 6)) as electrovalence,
+        CAST(SUM(electrovalence) AS DECIMAL(20, 4)) AS paymentAmount,
     count(1) as orderCount
         FROM
             t_charging_order
@@ -422,9 +423,9 @@
     <select id="getWeekData" resultType="java.util.Map">
         SELECT
         DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
-        SUM(service_charge) as servicecharge,
-        SUM(electrovalence) as electrovalence,
-        SUM(payment_amount) AS paymentAmount,
+        SUM(service_charge-coupon_discount_amount) as servicecharge,
+        SUM(charging_capacity) as electrovalence,
+        SUM(electrovalence) AS paymentAmount,
         count(1) as orderCount
         FROM
         t_charging_order
@@ -446,9 +447,9 @@
     <select id="getMonthData" resultType="java.util.Map">
         SELECT
         DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
-        SUM(service_charge) as servicecharge,
-        SUM(electrovalence) as electrovalence,
-        SUM(payment_amount) AS paymentAmount,
+        SUM(service_charge-coupon_discount_amount) as servicecharge,
+        SUM(charging_capacity) as electrovalence,
+        SUM(electrovalence) AS paymentAmount,
         count(1) as orderCount
         FROM
         t_charging_order
@@ -470,9 +471,9 @@
     <select id="getYearData" resultType="java.util.Map">
         SELECT
         DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
-        SUM(service_charge) as servicecharge,
-        SUM(electrovalence) as electrovalence,
-        SUM(payment_amount) AS paymentAmount,
+        SUM(service_charge-coupon_discount_amount) as servicecharge,
+        SUM(charging_capacity) as electrovalence,
+        SUM(electrovalence) AS paymentAmount,
 
         count(1) as orderCount
         FROM
@@ -496,8 +497,8 @@
     <select id="getByDate" resultType="java.util.Map">
         SELECT
         DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
-        SUM(service_charge) as servicecharge,
-        SUM(electrovalence) as electrovalence,
+        SUM(service_charge-coupon_discount_amount) as servicecharge,
+        SUM(charging_capacity) as electrovalence,
         count(1) as orderCount
         FROM
         t_charging_order
@@ -564,11 +565,11 @@
     </select>
     <select id="queryPowerLevel" resultType="java.util.Map">
         SELECT
-            count(CASE WHEN power BETWEEN 0 AND 30 THEN 1 ELSE 0 END) AS count_0_30,
-            count(CASE WHEN power BETWEEN 31 AND 60 THEN 1 ELSE 0 END) AS count_31_60,
-            count(CASE WHEN power BETWEEN 61 AND 120 THEN 1 ELSE 0 END) AS count_61_120,
-            count(CASE WHEN power BETWEEN 121 AND 300 THEN 1 ELSE 0 END) AS count_121_300,
-            count(CASE WHEN power > 300 THEN 1 ELSE 0 END) AS count_above_300
+        SUM(CASE WHEN power BETWEEN 0 AND 30 THEN 1 ELSE 0 END) AS count_0_30,
+        SUM(CASE WHEN power BETWEEN 31 AND 60 THEN 1 ELSE 0 END) AS count_31_60,
+        SUM(CASE WHEN power BETWEEN 61 AND 120 THEN 1 ELSE 0 END) AS count_61_120,
+        SUM(CASE WHEN power BETWEEN 121 AND 300 THEN 1 ELSE 0 END) AS count_121_300,
+        SUM(CASE WHEN power > 300 THEN 1 ELSE 0 END) AS count_above_300
         FROM
             t_charging_order
         WHERE
@@ -580,25 +581,25 @@
                 #{siteId}
             </foreach>
         </if>
-        <if test="statisticsQueryDto.dayType =1">
+        <if test="statisticsQueryDto.dayType ==1">
             AND DATE(create_time) = CURDATE()
         </if>
-        <if test="statisticsQueryDto.dayType =2">
+        <if test="statisticsQueryDto.dayType ==2">
             AND WEEKOFYEAR(create_time) = WEEKOFYEAR(CURDATE())
         </if>
-        <if test="statisticsQueryDto.dayType =3">
+        <if test="statisticsQueryDto.dayType ==3">
             AND MONTH(create_time) = MONTH(CURDATE())
         </if>
-        <if test="statisticsQueryDto.dayType =4">
+        <if test="statisticsQueryDto.dayType ==4">
            AND YEAR(create_time) = YEAR(CURDATE())
         </if>
-        <if test="statisticsQueryDto.dayType =5">
-        <if test="statisticsQueryDto.startTime != null">
+        <if test="statisticsQueryDto.dayType ==5">
+
             AND create_time >= #{statisticsQueryDto.startTime}
-        </if>
-        <if test="statisticsQueryDto.endTime != null">
+
+
             AND create_time &lt;= #{statisticsQueryDto.endTime}
-        </if>
+
         </if>
 
     </select>
@@ -606,7 +607,7 @@
 
         SELECT
 
-            DATE_FORMAT( create_time, '%Y-%m-%d %H' ) AS time,
+            DATE_FORMAT( create_time, '%H:00' ) AS time,
 	count(1) AS counts
         FROM
             charging_pile_account.t_app_user
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
index d0401f3..ae289b4 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
@@ -49,6 +49,7 @@
         t9.vip_discount_amount as vipDiscountAmount,
         t9.payment_amount as paymentAmount,
         t9.create_time as createTime,
+        t9.app_user_id as appUserId,
         1 as orderType
         from t_charging_order t9
         where t9.id = 0 limit 1
@@ -60,6 +61,7 @@
                t1.vip_discount_amount as vipDiscountAmount,
                t1.payment_amount as paymentAmount,
                t1.create_time as createTime,
+            t1.app_user_id as appUserId,
                1 as orderType
             from t_charging_order t1
             where 1 = 1
@@ -67,10 +69,13 @@
                 and t1.code  LIKE CONCAT('%',#{req.code},'%')
             </if>
             <if test="req.type != null and req.type != '' and req.type == 1">
-                and t1.coupon_discount_amount  IS NOT NULL and t1.coupon_discount_amount  != 0
+                and t1.coupon_discount_amount > 0
             </if>
             <if test="req.type != null and req.type != '' and req.type == 2">
-                and t1.vip_discount_amount  IS NOT NULL and t1.vip_discount_amount  != 0
+                and t1.vip_discount_amount > 0
+            </if>
+            <if test="req.type == null ">
+                and (t1.vip_discount_amount > 0 or t1.coupon_discount_amount > 0)
             </if>
             <if test="null != req.userIds and req.userIds.size()>0" >
                 and t1.app_user_id in
@@ -95,11 +100,12 @@
         <if test="req.orderType == null or req.orderType == 2">
         <if test="req.type == null or req.type == 1 or req.type == 2">
             union all
-            select t2.code ,t2.order_amount as orderAmount,
+            select t2.code ,t2.order_amount as paymentAmount,
             t2.coupon_discount_amount as couponDiscountAmount,
             t2.vip_discount_amount as vipDiscountAmount,
-            t2.payment_amount as paymentAmount,
+            t2.payment_amount as orderAmount,
             t2.create_time as createTime,
+            t2.app_user_id as appUserId,
             2 as orderType
             from t_shopping_order t2
             where 1 = 1
@@ -136,6 +142,7 @@
                 t3.discount_amount as vipDiscountAmount,
                 t3.payment_amount as paymentAmount,
                 t3.create_time as createTime,
+                t3.app_user_id as appUserId,
                 3 as orderType
                 from t_vip_order t3
                 where 1 = 1
@@ -144,7 +151,7 @@
                     and t3.code  LIKE CONCAT('%',#{req.code},'%')
                 </if>
                 <if test="req.type == null ">
-                    and t3.discount_amount  IS NOT NULL and t3.discount_amount  != 0
+                    and t3.discount_amount  > 0
                 </if>
                 <if test="null != req.userIds and req.userIds.size()>0" >
                     and t3.app_user_id in
@@ -167,6 +174,7 @@
                 t4.discount_amount as vipDiscountAmount,
                 t4.payment_amount as paymentAmount,
                 t4.create_time as createTime,
+                t4.app_user_id as appUserId,
                 4 as orderType
                 from t_vip_order t4
                 where 1 = 1
@@ -175,7 +183,7 @@
                     and t4.code  LIKE CONCAT('%',#{req.code},'%')
                 </if>
                 <if test="req.type == null ">
-                    and t4.discount_amount  IS NOT NULL and t4.discount_amount  != 0
+                    and t4.discount_amount  > 0
                 </if>
                 <if test="null != req.userIds and req.userIds.size()>0" >
                     and t4.app_user_id in
@@ -198,6 +206,7 @@
                 0 as vipDiscountAmount,
                 0 as paymentAmount,
                 t5.create_time as createTime,
+                t5.app_user_id as appUserId,
                 4 as orderType
                 from t_grant_vip t5
                 where 1 = 1
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
index af162fb..2c4166f 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
@@ -2,11 +2,15 @@
 
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.account.api.dto.SendCouponDto;
 import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.feignClient.AppUserVipDetailClient;
 import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserVipDetail;
+import com.ruoyi.account.api.vo.GetAppUserVipDetail;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.BasePage;
@@ -222,6 +226,9 @@
     @Resource
     private AppUserClient appUserClient;
 
+    @Resource
+    private AppUserVipDetailClient vipDetailClient;
+
     @ApiOperation(value = "当前生效会员信息", tags = {"小程序-个人中心"})
     @GetMapping("/recent/vipInfo")
     public R<List<VipInfoDto>> recentVipInfo() {
@@ -230,7 +237,17 @@
        if (data.getVipEndTime()!=null&&data.getVipEndTime().isAfter(LocalDateTime.now())) {
 
            List<VipInfoDto> vipInfoDtos = new ArrayList<>();
-           List<TVip> vips = vipService.lambdaQuery().eq(TVip::getId, data.getVipId()).list();
+
+//           List<TVip> vips = vipService.lambdaQuery().eq(TVip::getId, data.getVipId()).list();
+           List<TVip> vips = new ArrayList<>();
+           GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+           getAppUserVipDetail.setAppUserId(userId);
+           getAppUserVipDetail.setVipId(data.getVipId());
+           R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail);
+           TAppUserVipDetail data1 = appUserVipDetail.getData();
+           String vipJson = data1.getVipJson();
+           TVip tVip = JSON.parseObject(vipJson, TVip.class);
+           vips.add(tVip);
            LocalDateTime now = LocalDateTime.now();
            for (TVip vip : vips) {
                VipInfoDto vipInfoDto = new VipInfoDto();
@@ -255,19 +272,20 @@
                vipInfoDto.setMallExclusivePrice(vip.getMallExclusivePrice());
                vipInfoDto.setName(vip.getName());
                vipInfoDto.setId(vip.getId());
-               List<SendCouponDto> javaList = JSON.parseArray(vip.getCoupon()).toJavaList(SendCouponDto.class);
-               List<VipCouponDto> vipCouponDtos = new ArrayList<>();
-               if (!javaList.isEmpty()) {
-                   for (SendCouponDto sendCouponDto : javaList) {
-                       VipCouponDto vipCouponDto = new VipCouponDto();
-                       TCoupon byId = couponService.getById(sendCouponDto.getId());
-                       vipCouponDto.setNum(sendCouponDto.getNumber());
-                       vipCouponDto.setTCoupon(byId);
-                       vipCouponDtos.add(vipCouponDto);
+               if (vip.getCoupon()!=null) {
+                   List<SendCouponDto> javaList = JSON.parseArray(vip.getCoupon()).toJavaList(SendCouponDto.class);
+                   List<VipCouponDto> vipCouponDtos = new ArrayList<>();
+                   if (!javaList.isEmpty()) {
+                       for (SendCouponDto sendCouponDto : javaList) {
+                           VipCouponDto vipCouponDto = new VipCouponDto();
+                           TCoupon byId = couponService.getById(sendCouponDto.getId());
+                           vipCouponDto.setNum(sendCouponDto.getNumber());
+                           vipCouponDto.setTCoupon(byId);
+                           vipCouponDtos.add(vipCouponDto);
+                       }
                    }
-               }
 
-               vipInfoDto.setVipCouponDtos(vipCouponDtos);
+                   vipInfoDto.setVipCouponDtos(vipCouponDtos);
 
                //计算总折扣
                BigDecimal total = BigDecimal.ZERO;
@@ -280,9 +298,14 @@
                        total.add(tCoupon.getDiscountAmount());
                    }
                }
+
                vipInfoDto.setTotalDiscount(total);
+
                vipInfoDto.setTimeAmount(vip.getMaximumDeduction().multiply(BigDecimal.valueOf(vip.getDiscountTimes())));
+               }
+               vipInfoDto.setType(vip.getType());
                vipInfoDtos.add(vipInfoDto);
+
            }
            return R.ok(vipInfoDtos);
 
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
index fc51ae5..1ff4d3a 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
@@ -23,7 +23,7 @@
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 192.168.110.169:8848
+        server-addr: 127.0.0.1:8848
         service: ${spring.application.name}
         group: DEFAULT_GROUP
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
@@ -31,7 +31,7 @@
         password: nacos
       config:
         # 配置中心地址
-        server-addr: 192.168.110.169:8848
+        server-addr: 127.0.0.1:8848
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
         group: DEFAULT_GROUP
         name: ${spring.application.name}
@@ -56,7 +56,7 @@
     type: nacos
     nacos:
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
@@ -74,7 +74,7 @@
     nacos:
       application: seata-server
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
@@ -89,7 +89,7 @@
     nacos:
       discovery:
         # 开发环境
-        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        server-addr: 127.0.0.1:8848 # nacos注册中心地址
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称

--
Gitblit v1.7.1