From 7ea060d3acfdee74d24e2207e746c2061ee78a48 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 24 四月 2026 15:37:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 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 6538351..6fbc0d8 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,17 +1,28 @@
 package com.xiaopeng.operation.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.xiaopeng.api.dto.operation.XpActivityDto;
+import com.xiaopeng.api.model.operation.XpActicityStrategy;
+import com.xiaopeng.api.model.operation.XpActicityUser;
 import com.xiaopeng.api.model.operation.XpActivity;
 import com.xiaopeng.api.query.operation.XpActivityPageListQuery;
+import com.xiaopeng.common.core.utils.bean.BeanUtils;
 import com.xiaopeng.common.core.web.page.PageInfo;
 import com.xiaopeng.operation.mapper.XpActicityMapper;
 import com.xiaopeng.operation.service.IXpActicityService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xiaopeng.operation.service.IXpActicityStrategyService;
+import com.xiaopeng.operation.service.IXpActicityUserService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Map;
 import java.util.Random;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -24,6 +35,11 @@
 @Service
 public class XpActicityServiceImpl extends ServiceImpl<XpActicityMapper, XpActivity> implements IXpActicityService {
 
+    @Resource
+    private IXpActicityStrategyService strategyService;
+
+    @Resource
+    private IXpActicityUserService userService;
 
     @Override
     public PageInfo<XpActivity> pageList(XpActivityPageListQuery query) {
@@ -54,4 +70,38 @@
         return null;
     }
 
+    @Override
+    @Transactional
+    public void save(XpActivityDto dto) {
+
+        XpActivity activity = new XpActivity();
+        BeanUtils.copyBeanProp(activity, dto);
+        save(activity);
+
+        List<XpActicityStrategy> strategy = dto.getStrategy();
+        List<XpActicityUser> activityUser = dto.getActivityUser();
+        strategy.forEach(e -> e.setActitcityId(activity.getId().intValue()));
+        strategyService.saveBatch(strategy);
+
+        Map<String, XpActicityStrategy> strategyMap = strategy.stream().collect(Collectors.toMap(
+                XpActicityStrategy::getName,
+                Function.identity()
+        ));
+        activityUser.forEach(item -> {
+            item.setActitcityId(activity.getId().intValue());
+            item.setActitcityStrategeId(strategyMap.get(item.getStrategyName()).getId());
+        });
+        userService.saveBatch(activityUser);
+    }
+
+    @Override
+    public XpActivityDto detail(Long id) {
+        XpActivity byId = getById(id);
+        XpActivityDto ret = new XpActivityDto();
+        BeanUtils.copyBeanProp(ret, byId);
+        ret.setStrategy(strategyService.listByActicityId(id));
+        ret.setActivityUser(userService.listByActicityId(id));
+        return ret;
+    }
+
 }

--
Gitblit v1.7.1