liujie
6 天以前 3397162d64b0092e310f24d17b267127264463ac
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;
@@ -8,8 +9,11 @@
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.DriverRankVo;
import com.stylefeng.guns.modular.system.model.TOrderPrivateCar;
import com.stylefeng.guns.modular.system.model.TRegion;
import com.stylefeng.guns.modular.system.service.ITOrderPrivateCarService;
import com.stylefeng.guns.modular.system.service.ITRegionService;
import com.stylefeng.guns.modular.system.service.TAbnormalPayOrderService;
import com.stylefeng.guns.modular.system.util.ExcelExportUtil;
import lombok.SneakyThrows;
import org.springframework.stereotype.Controller;
@@ -26,6 +30,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 控制器
@@ -49,6 +54,9 @@
    @Autowired
    private ShiroExtUtil shiroExtUtil;
    @Autowired
    private ITOrderPrivateCarService tOrderPrivateCarService;
    /**
     * 跳转到首页
     */
@@ -107,6 +115,18 @@
        model.addAttribute("driverId",id);
        return PREFIX + "tDriverPromotionActivityUser.html";
    }
    @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,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";
    }
    /**
     * 跳转到修改
@@ -282,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));
@@ -295,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();
    }
    /**
     * 删除
     */
@@ -338,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));