yyy
2026-05-17 2c0a9a5194596d05b00aa773133582fa16deb6ea
不提交
15个文件已修改
182 ■■■■■ 已修改文件
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActicityUser.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpTradingStrategy.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/XpActivityPageListQuery.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/operation/XpTradingStrategyDetailVO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/mapper/XpStationMapper.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpStationServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/resources/mapper/XpStationMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/config/MiniprogramConfigurer.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpSystemSettingController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/dto/XpTradingStrategyEditDTO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/mapper/XpActicityMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpActicityMapper.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActicityUser.java
@@ -26,7 +26,7 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("xp_acticity_user")
@TableName(value = "xp_acticity_user", autoResultMap = true)
@ApiModel(value="XpActicityUser对象", description="活动发放用户")
public class XpActicityUser extends BaseModel {
@@ -47,7 +47,7 @@
    @ApiModelProperty(value = "指定用户json数组")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<Long> userList;
    private List<Integer> userList;
    @ApiModelProperty(value = "策略组名称")
    private String strategyName;
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpTradingStrategy.java
@@ -188,13 +188,13 @@
    @ApiModelProperty(value = "连环派单车辆侧 允许车辆进入连环派单候选池路程阈值, unit : km")
    @Min(value = 0, message = "连环派单策略>当前订单剩余里程不能小于0")
    @NotNull(message = "连环派单策略>当前订单剩余里程不能为空")
    @Min(value = 0, message = "当前订单剩余里程不能小于0")
    @NotNull(message = "当前订单剩余里程不能为空")
    private Integer distanceRegardAsEnding;
    @ApiModelProperty(value = "连环派单车辆侧 允许车辆进入连环派单候选池时间阈值 unit : min")
    @Min(value = 0, message = "连环派单策略>当前订单剩余时间不能小于0")
    @NotNull(message = "连环派单策略>当前订单剩余时间不能为空")
    @Min(value = 0, message = "当前订单剩余时间不能小于0")
    @NotNull(message = "当前订单剩余时间不能为空")
    private Integer timeRegardAsEnding;
    @ApiModelProperty(value = "连环派单车辆侧 保障可完成连环订单的电量 unit : km")
xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/XpActivityPageListQuery.java
@@ -23,7 +23,6 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="XpActicity对象", description="活动管理")
public class XpActivityPageListQuery extends BasePage {
    @TableId(value = "id", type = IdType.AUTO)
@@ -33,7 +32,7 @@
    private String acticityName;
    @ApiModelProperty(value = "活动类型 如新人活动、媒体邀约活动、日常提频等")
    private Integer activityType;
    private Integer type;
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/operation/XpTradingStrategyDetailVO.java
@@ -182,13 +182,13 @@
    @ApiModelProperty(value = "连环派单车辆侧 允许车辆进入连环派单候选池路程阈值, unit : km")
    @Min(value = 0, message = "连环派单策略>当前订单剩余里程不能小于0")
    @NotNull(message = "连环派单策略>当前订单剩余里程不能为空")
    @Min(value = 0, message = "当前订单剩余里程不能小于0")
    @NotNull(message = "当前订单剩余里程不能为空")
    private Integer distanceRegardAsEnding;
    @ApiModelProperty(value = "连环派单车辆侧 允许车辆进入连环派单候选池时间阈值 unit : min")
    @Min(value = 0, message = "连环派单策略>当前订单剩余时间不能小于0")
    @NotNull(message = "连环派单策略>当前订单剩余时间不能为空")
    @Min(value = 0, message = "当前订单剩余时间不能小于0")
    @NotNull(message = "当前订单剩余时间不能为空")
    private Integer timeRegardAsEnding;
    @ApiModelProperty(value = "连环派单车辆侧 保障可完成连环订单的电量 unit : km")
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
@@ -376,11 +376,9 @@
                Double money = userCouponVo.getMoney();
                money = new BigDecimal(money).setScale(2, RoundingMode.HALF_UP).doubleValue();
                xpPricingCardVo.setCoupon(String.valueOf(money));
                if (xpPricingCardVo.getTotalPrice() > money) {
                    xpPricingCardVo.setSystemDiscount(xpPricingCardVo.getTotalPrice() - money);
                }
//                if (xpPricingCardVo.getTotalPrice() > money) {
//                    xpPricingCardVo.setSystemDiscount(xpPricingCardVo.getTotalPrice() - money);
//                }
            }
            // 8. 构建响应对象
@@ -391,7 +389,7 @@
            xpPricingCardVo.setStartPriceStr(new BigDecimal(xpPricingCardVo.getStartPrice()).setScale(2, RoundingMode.HALF_UP).toString());
            xpPricingCardVo.setDistancePriceStr(new BigDecimal(xpPricingCardVo.getDistancePrice()).setScale(2, RoundingMode.HALF_UP).toString());
            xpPricingCardVo.setDurationPriceStr(new BigDecimal(xpPricingCardVo.getDurationPrice()).setScale(2, RoundingMode.HALF_UP).toString());
            xpPricingCardVo.setSystemDiscountStr(new BigDecimal(xpPricingCardVo.getSystemDiscount()).setScale(2, RoundingMode.HALF_UP).toString());
//            xpPricingCardVo.setSystemDiscountStr(new BigDecimal(xpPricingCardVo.getSystemDiscount()).setScale(2, RoundingMode.HALF_UP).toString());
            routeAndFareVo.setXpPricingCard(xpPricingCardVo);
@@ -411,16 +409,16 @@
                    fareVo.setDiscountAmount(userCouponVo.getMoney());
                    fareVo.setFinalFare(fareVo.getOriginalFare() - fareVo.getDiscountAmount());
                }
                if(fareVo.getFinalFare()>0){
                    fareVo.setSystemDiscount(fareVo.getFinalFare());
                    fareVo.setFinalFare(0.00);
                }
//                if(fareVo.getFinalFare()>0){
//                    fareVo.setSystemDiscount(fareVo.getFinalFare());
//                    fareVo.setFinalFare(0.00);
//                }
                fareVo.setCouponId(userCouponVo.getId());
            } else {
                fareVo.setDiscountAmount(0.00);
                fareVo.setFinalFare(fareVo.getOriginalFare());
                fareVo.setSystemDiscount(fareVo.getFinalFare());
                fareVo.setFinalFare(0.00);
//                fareVo.setSystemDiscount(fareVo.getFinalFare());
//                fareVo.setFinalFare(0.00);
            }
            // 10. 检查等待时间
@@ -439,7 +437,7 @@
            // 12. 设置费用信息
            fareVo.setFinalFareStr(new BigDecimal(fareVo.getFinalFare()).setScale(2, RoundingMode.HALF_UP).toString());
            fareVo.setOriginalFare(new BigDecimal(fareVo.getOriginalFare()).setScale(2,RoundingMode.HALF_UP).doubleValue());
            fareVo.setSystemDiscount(new BigDecimal(fareVo.getSystemDiscount() == null ? 0 : fareVo.getSystemDiscount()).setScale(2,RoundingMode.HALF_UP).doubleValue());
//            fareVo.setSystemDiscount(new BigDecimal(fareVo.getSystemDiscount() == null ? 0 : fareVo.getSystemDiscount()).setScale(2,RoundingMode.HALF_UP).doubleValue());
            routeAndFareVo.setFareEstimate(fareVo);
            routeAndFareVo.getXpPricingCard().setFinalFareStr(fareVo.getFinalFareStr());
@@ -1066,9 +1064,9 @@
            Double money = userCouponVo.getMoney();
            money = new BigDecimal(money).setScale(2, RoundingMode.HALF_UP).doubleValue();
            xpPricingCardVo.setCoupon(String.valueOf(money));
            if (xpPricingCardVo.getTotalPrice() > money) {
                xpPricingCardVo.setSystemDiscount(xpPricingCardVo.getTotalPrice() - money);
            }
//            if (xpPricingCardVo.getTotalPrice() > money) {
//                xpPricingCardVo.setSystemDiscount(xpPricingCardVo.getTotalPrice() - money);
//            }
        }
        RouteAndFareVo routeAndFareVo = new RouteAndFareVo();
        routeAndFareVo.setRoute(routeVo);
@@ -1076,7 +1074,7 @@
        xpPricingCardVo.setStartPriceStr(new BigDecimal(xpPricingCardVo.getStartPrice()).setScale(2, RoundingMode.HALF_UP).toString());
        xpPricingCardVo.setDistancePriceStr(new BigDecimal(xpPricingCardVo.getDistancePrice()).setScale(2, RoundingMode.HALF_UP).toString());
        xpPricingCardVo.setDurationPriceStr(new BigDecimal(xpPricingCardVo.getDurationPrice()).setScale(2, RoundingMode.HALF_UP).toString());
        xpPricingCardVo.setSystemDiscountStr(new BigDecimal(xpPricingCardVo.getSystemDiscount()).setScale(2, RoundingMode.HALF_UP).toString());
//        xpPricingCardVo.setSystemDiscountStr(new BigDecimal(xpPricingCardVo.getSystemDiscount()).setScale(2, RoundingMode.HALF_UP).toString());
        routeAndFareVo.setXpPricingCard(xpPricingCardVo);
        FareVo fareVo = new FareVo();
        fareVo.setEstimatedDistanceKm(routeVo.getDistance().doubleValue() / 1000);
@@ -1095,13 +1093,13 @@
        } else {
            fareVo.setDiscountAmount(0.00);
            fareVo.setFinalFare(fareVo.getOriginalFare());
            fareVo.setSystemDiscount(fareVo.getFinalFare());
//            fareVo.setSystemDiscount(fareVo.getFinalFare());
        }
        Integer waitTime = getWaitTime(routeAndFareDto.getOrigin().getLongitude(), routeAndFareDto.getOrigin().getLatitude());
        fareVo.setWaitingTime(waitTime);
        fareVo.setFinalFareStr(new BigDecimal(fareVo.getFinalFare()).setScale(2, RoundingMode.HALF_UP).toString());
        fareVo.setOriginalFare(new BigDecimal(fareVo.getOriginalFare()).setScale(2, RoundingMode.HALF_UP).doubleValue());
        fareVo.setSystemDiscount(new BigDecimal(fareVo.getSystemDiscount() == null ? 0 : fareVo.getSystemDiscount()).setScale(2, RoundingMode.HALF_UP).doubleValue());
//        fareVo.setSystemDiscount(new BigDecimal(fareVo.getSystemDiscount() == null ? 0 : fareVo.getSystemDiscount()).setScale(2, RoundingMode.HALF_UP).doubleValue());
        routeAndFareVo.setFareEstimate(fareVo);
        routeAndFareVo.getXpPricingCard().setFinalFareStr(fareVo.getFinalFareStr());
//        routeAndFareVo.setTrafficLights();//交通信号灯 todo 20260508 红绿灯功能还没有
@@ -1494,9 +1492,10 @@
            int totalCount = queueItems.size();
            for (int i = 0; i < queueItems.size(); i++) {
                currentPosition++;
                String item = queueItems.get(i);
                if (item.startsWith(orderId + "_")) {
                    currentPosition = i + 1; // 位置从1开始
                String[] split = item.split("-");
                if (split[1].equals(orderId + "")) {
                    break;
                }
            }
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
@@ -203,25 +203,25 @@
                //总数
                pointsNumbers.setTotalNum(pointList.size());
                //待测试
                long count = pointList.stream().filter(xpPoint -> xpPoint.getVerificationStatus() == 1).count();
                long count = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 1 && xpPoint.getVerificationStatus() == 1).count();
                pointsNumbers.setToBeTested(Integer.parseInt(count+""));
                //测试中
                long count2 = pointList.stream().filter(xpPoint -> xpPoint.getVerificationStatus() == 2).count();
                long count2 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 1 && xpPoint.getVerificationStatus() == 2).count();
                pointsNumbers.setTesting(Integer.parseInt(count2+""));
                //测试不通过
                long count3 = pointList.stream().filter(xpPoint -> xpPoint.getVerificationStatus() == 4).count();
                long count3 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 1 && xpPoint.getVerificationStatus() == 4).count();
                pointsNumbers.setTestNotPass(Integer.parseInt(count3+""));
                //待启用
                long count4 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 1 && xpPoint.getVerificationStatus() == 3).count();
                long count4 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 1 && (xpPoint.getVerificationStatus() == 3 || xpPoint.getVerificationStatus() == 5)).count();
                pointsNumbers.setPendingLaunch(Integer.parseInt(count4+""));
                //启用中
                long count5 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 2 && xpPoint.getVerificationStatus() == 3).count();
                long count5 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 2 && xpPoint.getVerificationStatus() == 5).count();
                pointsNumbers.setStartingUp(Integer.parseInt(count5+""));
                //已停用
                long count6 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 3 && xpPoint.getVerificationStatus() == 3).count();
                long count6 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 3 && xpPoint.getVerificationStatus() == 5).count();
                pointsNumbers.setDisabled(Integer.parseInt(count6+""));
                //已失效
                long count7 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 4 && xpPoint.getVerificationStatus() == 3).count();
                long count7 = pointList.stream().filter(xpPoint -> xpPoint.getOperationStatus() == 4 && xpPoint.getVerificationStatus() == 5).count();
                pointsNumbers.setExpired(Integer.parseInt(count7+""));
            }
            res.setPointsNumbers(pointsNumbers);
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/mapper/XpStationMapper.java
@@ -21,10 +21,10 @@
public interface XpStationMapper extends BaseMapper<XpStation> {
    List<XpStation> pageList(@Param("pageInfo") PageInfo<XpStation> pageInfo, @Param("query") XpStationQuery query);
    List<XpStation> pageList(@Param("pageInfo") PageInfo<XpStation> pageInfo, @Param("query") XpStationQuery query, @Param("bj") Integer bj);
    List<XpStation> pageList(@Param("query") XpStationQuery query);
    List<XpStation> pageList(@Param("query") XpStationQuery query, @Param("bj") Integer bj);
}
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpStationServiceImpl.java
@@ -96,21 +96,21 @@
    }
    @Override
    public List<XpStation> findList(PageInfo<XpStation> pageInfo, XpStationQuery query) {
        Integer bj = 0;
        if(StringUtils.isNotEmpty(query.getStationPointNum())){
            if(query.getStationPointNum().contains(",")){
                throw new ServiceException("点位数量只能单选");
            }
            if(query.getStationPointNum().contains("gt")){
                query.setStationPointNum(query.getStationPointNum().replace("gt", " > "));
            }else{
                query.setStationPointNum(" = " + query.getStationPointNum());
                query.setStationPointNum(query.getStationPointNum().replace("gt", ""));
                bj = 1;
            }
        }
        List<XpStation> list = null;
        if(pageInfo ==null){
            list = this.baseMapper.pageList(query);
            list = this.baseMapper.pageList(query, bj);
        }else{
            list = this.baseMapper.pageList(pageInfo, query);
            list = this.baseMapper.pageList(pageInfo, query, bj);
        }
        if(CollUtil.isNotEmpty(list)){
            LocalTime localTime = LocalTime.now();
@@ -137,6 +137,14 @@
                    int operatingPointCount = 0; // 运营中点位数
                    for (XpPoint xpPoint : stationPoints) {
                        if(null != xpPoint.getStationId()){
                            XpStation xpStation1 = this.getById(xpPoint.getStationId());
                            xpPoint.setStationOperationType(xpStation1.getOperationType());
                            xpPoint.setStationEffectivePeriod(xpStation1.getEffectivePeriod());
                            xpPoint.setStationEffectivePeriod(xpStation1.getEffectivePeriod());
                            xpPoint.setStationEffectiveTimePeriod(xpStation1.getEffectiveTimePeriod());
                            xpPoint.setFenceOperationStrategy(xpStation1.getFenceOperationStrategy());
                        }
                        boolean pointOperation = bootCommonService.getPointOperation(localTime, xpPoint);
                        if (pointOperation) {
                            operatingPointCount++;
xp-robotaxi-map-boot/src/main/resources/mapper/XpStationMapper.xml
@@ -85,8 +85,11 @@
        <if test="query.updateEndTime != null and query.updateEndTime!=''">
            and #{query.updateEndTime} >= a.update_time
        </if>
        <if test="query.stationPointNum != null and query.stationPointNum!=''">
            and c.point_num #{query.stationPointNum}
        <if test="query.stationPointNum != null and query.stationPointNum!='' and bj == 0">
            and c.point_num = #{query.stationPointNum}
        </if>
        <if test="query.stationPointNum != null and query.stationPointNum!='' and bj == 1">
            and c.point_num > #{query.stationPointNum}
        </if>
        GROUP BY a.id
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/config/MiniprogramConfigurer.java
@@ -35,7 +35,8 @@
                            "/base/v1/mini-program/privacy/contentAll",
                            "/base/v1/mini-program/guide/list",
                            "/base/v1/mini-program/miniLog/uploadLog",
                            "/base/v1/mini-program/miniLog/getMiniLogUploadLog");
                            "/base/v1/mini-program/miniLog/getMiniLogUploadLog",
                            "/base/v1/mini-program/loginAgreement/getLoginAgreement");
            log.info("小程序拦截器注册成功");
        } catch (Exception e) {
            log.warn("小程序拦截器注册失败: {}", e.getMessage());
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpSystemSettingController.java
@@ -111,7 +111,7 @@
    @PostMapping("/api/v1/systemSetting/save")
    public R<?> saveSystemSetting(@RequestBody XpSystemSetting xpSystemSetting){
        xpSystemSettingService.saveSystemSetting(xpSystemSetting);
        if(xpSystemSetting.getHotfixStatus()==1){
        if(null != xpSystemSetting.getHotfixStatus() && xpSystemSetting.getHotfixStatus()==1){
            // 开启定时任务去关闭
            // 计算当前时间与结束时间的秒数
            LocalDateTime hotfixEndTime = xpSystemSetting.getHotfixEndTime();
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/dto/XpTradingStrategyEditDTO.java
@@ -183,13 +183,13 @@
    @ApiModelProperty(value = "连环派单车辆侧 允许车辆进入连环派单候选池路程阈值, unit : km")
    @Min(value = 0, message = "连环派单策略>当前订单剩余里程不能小于0")
    @NotNull(message = "连环派单策略>当前订单剩余里程不能为空")
    @Min(value = 0, message = "当前订单剩余里程不能小于0")
    @NotNull(message = "当前订单剩余里程不能为空")
    private Integer distanceRegardAsEnding;
    @ApiModelProperty(value = "连环派单车辆侧 允许车辆进入连环派单候选池时间阈值 unit : min")
    @Min(value = 0, message = "连环派单策略>当前订单剩余时间不能小于0")
    @NotNull(message = "连环派单策略>当前订单剩余时间不能为空")
    @Min(value = 0, message = "当前订单剩余时间不能小于0")
    @NotNull(message = "当前订单剩余时间不能为空")
    private Integer timeRegardAsEnding;
    @ApiModelProperty(value = "连环派单车辆侧 保障可完成连环订单的电量 unit : km")
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/mapper/XpActicityMapper.java
@@ -5,6 +5,7 @@
import com.xiaopeng.api.model.operation.XpActivity;
import com.xiaopeng.api.query.operation.XpActivityPageListQuery;
import com.xiaopeng.common.core.web.page.PageInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -18,5 +19,5 @@
 */
public interface XpActicityMapper extends BaseMapper<XpActivity> {
    List<XpActivityDto> pageList(PageInfo<XpActivityDto> pageInfo, XpActivityPageListQuery query);
    List<XpActivityDto> pageList(PageInfo<XpActivityDto> pageInfo, @Param("query") XpActivityPageListQuery query);
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java
@@ -155,7 +155,7 @@
        }
        //执行修改活动状态
        updateStatus();
        updateStatus(activity.getId());
    }
    @Override
@@ -199,6 +199,31 @@
                .eq("enable_float_window", 1).in(!actitctiyIds.isEmpty(), "id", actitctiyIds)
                .last(" and now() between start_time and end_time order by float_window_priority desc limit 1"));
        return one;
    }
    public void updateStatus(Long activityId) {
        XpActivity xpActivity = xpActicityService.getById(activityId);
        Integer status = xpActivity.getStatus();
        //即将开始的活动推送socket给前端用户
        if(1 == status && LocalDateTime.now().isBefore(xpActivity.getStartTime())){
        }
        //即将结束的活动推送给前端用户
        //生效的活动修改状态和发放一次优惠券
        if(1 == status && LocalDateTime.now().isAfter(xpActivity.getStartTime()) && LocalDateTime.now().isBefore(xpActivity.getEndTime())){
            xpActivity.setStatus(2);
            //发放优惠券-发放一次的优惠券
            List<XpActicityStrategy> list1 = xpActicityStrategyService.list(new QueryWrapper<XpActicityStrategy>().eq("actitcity_id", xpActivity.getId())
                    .eq("distribution_rules", 2));
            for (XpActicityStrategy xpActicityStrategy : list1) {
                pushCoupon(xpActivity, xpActicityStrategy);
            }
        }
        xpActicityService.updateById(xpActivity);
    }
@@ -410,9 +435,9 @@
            }
            //指定用户
            if(5 == userType){
                List<Long> userList = xpActicityUser.getUserList();
                List<Integer> userList = xpActicityUser.getUserList();
                List<XpAppUserCoupon> xpAppUserCoupons = new ArrayList<>();
                for (Long userId : userList) {
                for (Integer userId : userList) {
                    UcUserInfo baseUserByUid = userResourcesClient.getBaseUserByUid(userId.toString());
                    for (XpActicityCoupon acticityCoupon : acticityCoupons) {
                        XpCoupon xpCoupon = xpCoupons.stream().filter(s -> s.getId().equals(acticityCoupon.getCouponId())).findFirst().orElse(null);
@@ -443,7 +468,7 @@
                                }
                                xpAppUserCoupon.setCouponId(acticityCoupon.getCouponId());
                                xpAppUserCoupon.setAppUserId(userId);
                                xpAppUserCoupon.setAppUserId(userId.longValue());
                                xpAppUserCoupon.setStatus(1);
                                xpAppUserCoupon.setActivityId(xpActivity.getId());
                                xpAppUserCoupon.setCouponName(xpCoupon.getCouponName());
xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpActicityMapper.xml
@@ -4,19 +4,19 @@
    <select id="pageList" resultType="com.xiaopeng.api.dto.operation.XpActivityDto">
            select a.*
            from xp_acticity as a
            where a.is_deleted = 0
<!--            <if test="query.acticity_name != null ">-->
<!--                a.acticity_name >= #{acticityName}-->
<!--            </if>-->
<!--            <if test="query.status != null">-->
<!--                and a.status = #{query.status}-->
<!--            </if>-->
<!--            <if test="query.activity_type != null">-->
<!--                and a.activity_type = #{query.activityType}-->
<!--            </if>-->
            order by a.update_time desc
            select *
            from xp_acticity
            where is_deleted = 0
            <if test="query.acticityName != null and '' != query.acticityName">
                and acticity_name like CONCAT('%', #{query.acticityName}, '%')
            </if>
            <if test="query.status != null">
                and status = #{query.status}
            </if>
            <if test="query.type != null">
                and acticity_type = #{query.type}
            </if>
            order by update_time desc
    </select>
</mapper>