From 6da3cde42c90fa5383cf1b48e632cb1107c80d3e Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 25 四月 2026 07:27:16 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java | 65 +++++++++++++++++++++++++++-----
1 files changed, 55 insertions(+), 10 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java
index c3d6f14..21afa35 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java
@@ -1,7 +1,9 @@
package com.xiaopeng.operation.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.xiaopeng.api.dto.operation.XpActivityDto;
+import com.xiaopeng.api.feignClient.order.XpOrderClient;
import com.xiaopeng.api.model.operation.XpActicityStrategy;
import com.xiaopeng.api.model.operation.XpActicityUser;
import com.xiaopeng.api.model.operation.XpActivity;
@@ -21,6 +23,7 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
@@ -47,6 +50,11 @@
@Resource
private IXpActivityNoticeService activityNotice;
+ @Resource
+ private XpOrderClient xpOrderClient;
+
+
+
@Override
public PageInfo<XpActivityDto> pageList(XpActivityPageListQuery query) {
PageInfo<XpActivityDto> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
@@ -63,17 +71,27 @@
query.like(XpActivity::getActicityName, acticityName);
return listObjs(query, Object::toString);
}
+
@Override
- public XpActivity activiting() {
- LambdaQueryWrapper<XpActivity> query = new LambdaQueryWrapper<>();
- LocalDateTime now = LocalDateTime.now();
- query.le(XpActivity::getStartTime, now)
- .ge(XpActivity::getEndTime, now);
- List<XpActivity> list = list(query);
- if(!list.isEmpty()){
- return list.get(new Random().nextInt(list.size()));
- }
- return null;
+ public XpActivity activiting(Long uid) {
+ //获取当前用户可参与的活动
+ List<Integer> actitctiyIds = new ArrayList<>();
+ //全部用户
+ List<XpActicityUser> list = userService.list(new QueryWrapper<XpActicityUser>().eq("is_deleted", 0).eq("user_type", 1));
+ actitctiyIds.addAll(list.stream().map(XpActicityUser::getActitcityId).collect(Collectors.toList()));
+ //判断用户类型 2=老用户,3=新用户,4=流失用户
+ Integer userType = xpOrderClient.determineUserType(uid).getData();
+ list = userService.list(new QueryWrapper<XpActicityUser>().eq("is_deleted", 0).eq("user_type", userType));
+ actitctiyIds.addAll(list.stream().map(XpActicityUser::getActitcityId).collect(Collectors.toList()));
+ //指定用户
+ list = userService.list(new QueryWrapper<XpActicityUser>().eq("is_deleted", 0).eq("user_type", 5)
+ .last(" and JSON_CONTAINS(user_list, '" + uid + "', '$')"));
+ actitctiyIds.addAll(list.stream().map(XpActicityUser::getActitcityId).collect(Collectors.toList()));
+
+ XpActivity one = this.getOne(new QueryWrapper<XpActivity>().eq("status", 2).eq("is_deleted", 0)
+ .eq("mini_program_notification", 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;
}
@Override
@@ -112,4 +130,31 @@
return ret;
}
+
+ /**
+ * 获取悬浮弹窗活动数据
+ * @param uid
+ * @return
+ */
+ @Override
+ public XpActivity getFloatActicity(Long uid) {
+ //获取当前用户可参与的活动
+ List<Integer> actitctiyIds = new ArrayList<>();
+ //全部用户
+ List<XpActicityUser> list = userService.list(new QueryWrapper<XpActicityUser>().eq("is_deleted", 0).eq("user_type", 1));
+ actitctiyIds.addAll(list.stream().map(XpActicityUser::getActitcityId).collect(Collectors.toList()));
+ //判断用户类型 2=老用户,3=新用户,4=流失用户
+ Integer userType = xpOrderClient.determineUserType(uid).getData();
+ list = userService.list(new QueryWrapper<XpActicityUser>().eq("is_deleted", 0).eq("user_type", userType));
+ actitctiyIds.addAll(list.stream().map(XpActicityUser::getActitcityId).collect(Collectors.toList()));
+ //指定用户
+ list = userService.list(new QueryWrapper<XpActicityUser>().eq("is_deleted", 0).eq("user_type", 5)
+ .last(" and JSON_CONTAINS(user_list, '" + uid + "', '$')"));
+ actitctiyIds.addAll(list.stream().map(XpActicityUser::getActitcityId).collect(Collectors.toList()));
+
+ XpActivity one = this.getOne(new QueryWrapper<XpActivity>().eq("status", 2).eq("is_deleted", 0)
+ .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;
+ }
}
--
Gitblit v1.7.1