From 3a0bef313cbc6cd71bcb234d208805c022827e13 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 13 八月 2025 18:59:01 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java
index 008dfda..c4e710f 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.system.controller.specialTrain;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.rabbitmq.client.LongString;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.beetl.ShiroExtUtil;
@@ -29,6 +30,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 控制器
@@ -114,15 +116,16 @@
         model.addAttribute("driverId",id);
         return PREFIX + "tDriverPromotionActivityUser.html";
     }
-    @RequestMapping("/tDriverPromotionActivity_viewMoney/{id}")
-    public String tDriverPromotionActivityViewMoney(@PathVariable Integer id, Model model) {
+    @RequestMapping("/tDriverPromotionActivity_viewMoney/{id}/{activityId}")
+    public String tDriverPromotionActivityViewMoney(@PathVariable Integer id,@PathVariable Integer activityId, Model model) {
         List<Map<String, Object>> list=new ArrayList<>();
-        list =  tOrderPrivateCarService.promotionInfoExport(null, null, null, null, null, null, null, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(),id);
+        list =  tOrderPrivateCarService.promotionInfoExport(null, null, null, null, null, null, null, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(),id,activityId);
         BigDecimal reduce = list.stream().map(e -> new BigDecimal(e.get("promotionMoney").toString())).reduce(BigDecimal.ZERO, BigDecimal::add);
         model.addAttribute("money",reduce);
         model.addAttribute("size",list.size());
 
         model.addAttribute("driverId",id);
+        model.addAttribute("activityId",activityId);
         return PREFIX + "tPromotionOrder.html";
     }
     /**
@@ -299,10 +302,33 @@
         tDriverPromotionActivity.setProvinceCode(province);
         tDriverPromotionActivity.setCityCode(city);
         tDriverPromotionActivity.setDistrictCode(area);
+        Wrapper<TDriverPromotionActivity> eq = new EntityWrapper<TDriverPromotionActivity>().eq("provinceCode", province).eq("cityCode", city);
+        if(area!=null && !area.equals("")){
+            eq.eq("districtCode", area);
+        }
         String s = time.split(" - ")[0] + " 00:00:00";
         String s1 = time.split(" - ")[1] + " 23:59:59";
         tDriverPromotionActivity.setStartTime(simpleDateFormat.parse(s));
         tDriverPromotionActivity.setEndTime(simpleDateFormat.parse(s1));
+        List<TDriverPromotionActivity> tDriverPromotionActivities = tDriverPromotionActivityService.selectList(eq);
+        for (TDriverPromotionActivity driverPromotionActivity : tDriverPromotionActivities) {
+            // 判断时间是否有交集
+            if (isTimeOverlap(driverPromotionActivity, tDriverPromotionActivity)) {
+                return "602"; // 时间冲突
+            }
+
+        }
+
+
+
+        List<TRegion> code = tRegionService.selectList(new EntityWrapper<TRegion>().in("code", Arrays.asList(province, city, area)));
+
+        tDriverPromotionActivity.setProvince(code.stream().filter(e->e.getCode().equals( province)).collect(Collectors.toList()).get(0).getName());
+        tDriverPromotionActivity.setCity(code.stream().filter(e->e.getCode().equals( city)).collect(Collectors.toList()).get(0).getName());
+        if(area!=null && !"".equals(area)){
+            tDriverPromotionActivity.setDistrict(code.stream().filter(e->e.getCode().equals(area)).collect(Collectors.toList()).get(0).getName());
+        }
+
         tDriverPromotionActivity.setCommissionRatio(BigDecimal.valueOf(commissionRatio));
         tDriverPromotionActivity.setBindingDays(bindingDays);
         tDriverPromotionActivity.setActivityDesc(ToolUtil.cleanXSS(content));
@@ -312,7 +338,13 @@
         tDriverPromotionActivityService.insert(tDriverPromotionActivity);
         return SUCCESS_TIP;
     }
-
+    // 更完整的时间交集判断方法
+    private boolean isTimeOverlap(TDriverPromotionActivity existing, TDriverPromotionActivity newActivity) {
+        // 两个时间段有交集的条件:
+        // existing的开始时间 <= newActivity的结束时间 且 existing的结束时间 >= newActivity的开始时间
+        return existing.getStartTime().getTime() <= newActivity.getEndTime().getTime() &&
+                existing.getEndTime().getTime() >= newActivity.getStartTime().getTime();
+    }
     /**
      * 删除
      */
@@ -355,6 +387,13 @@
         tDriverPromotionActivity.setProvinceCode(province);
         tDriverPromotionActivity.setCityCode(city);
         tDriverPromotionActivity.setDistrictCode(area);
+        List<TRegion> code = tRegionService.selectList(new EntityWrapper<TRegion>().in("code", Arrays.asList(province, city, area)));
+
+        tDriverPromotionActivity.setProvince(code.stream().filter(e->e.getCode().equals( province)).collect(Collectors.toList()).get(0).getName());
+        tDriverPromotionActivity.setCity(code.stream().filter(e->e.getCode().equals( city)).collect(Collectors.toList()).get(0).getName());
+        if(area!=null && !"".equals(area)){
+            tDriverPromotionActivity.setDistrict(code.stream().filter(e->e.getCode().equals(area)).collect(Collectors.toList()).get(0).getName());
+        }
         String s = time.split(" - ")[0] + " 00:00:00";
         String s1 = time.split(" - ")[1] + " 23:59:59";
         tDriverPromotionActivity.setStartTime(simpleDateFormat.parse(s));

--
Gitblit v1.7.1