From 8a038cf6f0792cfe260a94e86d954b50f068e758 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 07 二月 2025 16:55:41 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java |   64 +++++++++++++++++++++++---------
 1 files changed, 46 insertions(+), 18 deletions(-)

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 e17f179..66cbddc 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
@@ -39,10 +39,7 @@
 import java.math.BigDecimal;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -63,7 +60,7 @@
 
     @Autowired
     private TAppUserCarService appUserCarService;
-    @Autowired
+    @Resource
     private TokenService tokenService;
     @Resource
     private ChargingPileClient chargingPileClient;
@@ -112,25 +109,26 @@
         TChargingPile chargingPile = chargingPileClient.getChargingPileById(chargingGun.getChargingPileId()).getData();
         SiteInfoVO data = chargingPileClient.getSiteInfoByNumber1(chargingPile.getCode().toString()).getData();
         data.setChargingGunId(id);
+        data.setSiteId(chargingGun.getSiteId());
         data.setChargeMode(chargingGun.getChargeMode());
         List<TAppUserCar> cars = appUserCarService.list(new QueryWrapper<TAppUserCar>()
                 .eq("app_user_id",tokenService.getLoginUserApplet().getUserId())
                 .orderByDesc("create_time"));
-        Long data1 = chargingOrderClient.getCar().getData();
+        Long data1 = chargingOrderClient.getCar(tokenService.getLoginUserApplet().getUserId().toString()).getData();
         Integer data2 = otherClient.getAddCarIntegral().getData();
         data.setIntegral(data2);
         if (!cars.isEmpty()){
-            if (data1 == -1){
+            if (null == data1 || data1 == -1){
                 // 没有充电订单 展示最新添加的车辆
                 data.setLicensePlate(cars.get(0).getLicensePlate());
                 data.setVehicleBrand(cars.get(0).getVehicleBrand());
-                data.setId(cars.get(0).getId());
+                data.setId(cars.get(0).getId().toString());
             }else{
                 for (TAppUserCar car : cars) {
                     if (car.getId().equals(data1)){
                         data.setLicensePlate(car.getLicensePlate());
                         data.setVehicleBrand(car.getVehicleBrand());
-                        data.setId(car.getId());
+                        data.setId(car.getId().toString());
                     }
                 }
             }
@@ -139,11 +137,11 @@
         BigDecimal vipElectrovalence = data.getVipElectrovalence();
         // 计算预付金额能充多少度普通电
         BigDecimal divide1 = money.divide(electrovalence, 2, BigDecimal.ROUND_HALF_UP);
-        // 计算冲会员电能充多少度会员电
-        BigDecimal divide = vipElectrovalence.divide(electrovalence, 2, BigDecimal.ROUND_HALF_UP);
-        BigDecimal subtract = divide.subtract(divide1);
+        // 计算冲会员充电需要多少钱
+        BigDecimal vipMoney = divide1.multiply(vipElectrovalence).setScale(2,BigDecimal.ROUND_HALF_UP);
+//        BigDecimal subtract = divide.subtract(divide1);
         // 优惠金额
-        data.setMoney(subtract.multiply(vipElectrovalence).setScale(2, BigDecimal.ROUND_HALF_UP));
+        data.setMoney(electrovalence.multiply(divide1).subtract(vipMoney).setScale(2, BigDecimal.ROUND_DOWN));
         return AjaxResult.ok(data);
     }
     /**
@@ -166,6 +164,7 @@
     public R<List<TAppUserCar>> carList() {
         List<TAppUserCar> appUserId = appUserCarService.list(new QueryWrapper<TAppUserCar>()
                 .eq("app_user_id",tokenService.getLoginUserApplet().getUserId()));
+        appUserId.forEach(s->s.setId_(s.getId().toString()));
         return R.ok(appUserId);
     }
 
@@ -212,8 +211,12 @@
     @ApiOperation(value = "优惠卷可用数量", tags = {"小程序-站点管理-站点详情"})
     @GetMapping(value = "/couponCount")
     public R<Long> couponCount() {
-        LocalDateTime now = LocalDateTime.now();
-        return R.ok(tAppCouponService.lambdaQuery().le(TAppCoupon::getStartTime, now).ge(TAppCoupon::getEndTime, now).eq(TAppCoupon::getStatus, 1).count());
+        Long userId = tokenService.getLoginUserApplet().getUserId();
+        Long count = tAppCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).ge(TAppCoupon::getEndTime, LocalDateTime.now()).eq(TAppCoupon::getStatus, 1).count();
+        if(Objects.isNull(count)){
+            count = 0L;
+        }
+        return R.ok(count);
     }
 
     
@@ -223,6 +226,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();
 
@@ -246,9 +252,20 @@
                 break;
             case 2:
                 // 根据市codes 查询用户ids
-                List<Long> collect1 = appUserService.list(new QueryWrapper<TAppUser>()
-                                .in("city_code", Arrays.asList(dto.getCityCode().split(","))))
-                        .stream().map(TAppUser::getId).collect(Collectors.toList());
+                List<Long> collect1 = new ArrayList<>();
+                // 根据市codes 查询用户ids
+                if (StringUtils.hasLength(dto.getProvinceCode())){
+                    List<Long> collect2 = appUserService.list(new QueryWrapper<TAppUser>()
+                            .in("province_code", Arrays.asList(dto.getProvinceCode().split(","))))
+                            .stream().map(TAppUser::getId).collect(Collectors.toList());
+                    collect1.addAll(collect2);
+                }
+                if (StringUtils.hasLength(dto.getCityCode())){
+                    List<Long> collect2 = appUserService.list(new QueryWrapper<TAppUser>()
+                            .in("city_code", Arrays.asList(dto.getCityCode().split(","))))
+                            .stream().map(TAppUser::getId).collect(Collectors.toList());
+                    collect1.addAll(collect2);
+                }
                 for (Long l : collect1) {
                     TAppCoupon tAppCoupon = new TAppCoupon();
                     tAppCoupon.setAppUserId(l);
@@ -292,5 +309,16 @@
         TAppCoupon appCoupon = tAppCouponService.getById(id);
         return R.ok(appCoupon);
     }
+    
+    /**
+     * 修改用户优惠券
+     * @param appCoupon
+     * @return
+     */
+    @PostMapping("/updateAppCoupon")
+    public R updateAppCoupon(@RequestBody TAppCoupon appCoupon){
+        tAppCouponService.updateById(appCoupon);
+        return R.ok();
+    }
 }
 

--
Gitblit v1.7.1