puzhibing
2026-04-24 7ea060d3acfdee74d24e2207e746c2061ee78a48
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;
    }
}