xuhy
2026-04-24 1aa1d2ac646d2e0e1a100a61295ef2cb34f37211
[feat] 活动策略,关联用户的设置
7个文件已修改
100 ■■■■■ 已修改文件
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpActicityService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpActicityStrategyService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpActicityUserService.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/java/com/xiaopeng/operation/service/impl/XpActicityStrategyServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityUserServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java
@@ -2,8 +2,6 @@
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.model.operation.XpCoupon;
import com.xiaopeng.api.query.operation.XpActivityPageListQuery;
@@ -13,11 +11,10 @@
import com.xiaopeng.common.core.utils.bean.BeanUtils;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.operation.service.IXpActicityService;
import com.xiaopeng.operation.service.IXpActicityStrategyService;
import com.xiaopeng.operation.service.IXpActicityUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
@@ -40,6 +37,7 @@
@Api(tags = "活动管理")
@RestController
@RequestMapping("")
@Slf4j
@RequiredArgsConstructor(onConstructor_ = @Lazy)
public class XpActicityController {
@@ -103,22 +101,41 @@
    }
    @PostMapping("/v1/api/appUserCoupon/update")
    @ApiOperation(value = "修改活动",tags = {"管理后台-活动管理"},response = XpCoupon.class)
    public R<XpActivity> updateById(@RequestBody XpActivity xpActivity){
        service.updateById(xpActivity);
    @PostMapping("/v1/api/appUserCoupon/{op}")
    @ApiOperation(value = "修改活动状态,release,pause,resume,stop,del",tags = {"管理后台-活动管理"},response = XpCoupon.class)
    public R<XpActivity> updateById(@PathVariable String op,@RequestParam Long id){
        XpActivity activity = service.getById(id);
        switch (op){
            case "release":
                activity.setStatus(2);
                break;
            case "pause":
                activity.setStatus(4);
                break;
            case "resume":
                activity.setStatus(1);
                break;
            case "stop":
                activity.setStatus(3);
                break;
            case "del":
                activity.setDeleted(true);
                break;
            default:
                throw new UnsupportedOperationException("Unsupported" + op);
        }
        service.updateById(activity);
        log.info("修改活动状态:{}",activity);
        return R.ok();
    }
    @GetMapping("/v1/api/appUserCoupon/update")
    @GetMapping("/v1/api/appUserCoupon/detail")
    @ApiOperation(value = "活动详情",tags = {"管理后台-活动管理"},response = XpCoupon.class)
    public R<XpActivity> queryById(@RequestBody XpActivity xpActivity){
    public R<XpActivityDto> queryById(@RequestParam Long id){
        return R.ok(service.getById(xpActivity));
        return R.ok(service.detail(id));
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpActicityService.java
@@ -25,4 +25,6 @@
    XpActivity activiting();
    void save(XpActivityDto dto);
    XpActivityDto detail(Long id);
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpActicityStrategyService.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.api.model.operation.XpActicityStrategy;
import java.util.List;
/**
 * <p>
 * 活动策略配置 服务类
@@ -13,4 +15,5 @@
 */
public interface IXpActicityStrategyService extends IService<XpActicityStrategy> {
    List<XpActicityStrategy> listByActicityId(Long id);
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpActicityUserService.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.api.model.operation.XpActicityUser;
import java.util.List;
/**
 * <p>
 * 活动发放用户 服务类
@@ -13,4 +15,5 @@
 */
public interface IXpActicityUserService extends IService<XpActicityUser> {
    List<XpActicityUser> listByActicityId(Long id);
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java
@@ -21,6 +21,7 @@
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -75,24 +76,32 @@
        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);
//        strategy.setActitcityId(activity.getId().intValue());
        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);
    }
//        Map<String, List<XpActicityStrategy>> strategyMap = strategy.stream().collect(Collectors.groupingBy(XpActicityStrategy::getName));
//        activityUser.forEach(item -> {
//            item.setActitcityId(activity.getId().intValue());
//            item.setActitcityStrategeId(strategyMap.get(item.getStrategyName()));
//        });
//
//
//        activityUser.setActitcityId(activity.getId().intValue());
//
//        userService.save(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;
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityStrategyServiceImpl.java
@@ -1,10 +1,13 @@
package com.xiaopeng.operation.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.model.operation.XpActicityStrategy;
import com.xiaopeng.operation.mapper.XpActicityStrategyMapper;
import com.xiaopeng.operation.service.IXpActicityStrategyService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * <p>
@@ -17,4 +20,8 @@
@Service
public class XpActicityStrategyServiceImpl extends ServiceImpl<XpActicityStrategyMapper, XpActicityStrategy> implements IXpActicityStrategyService {
    @Override
    public List<XpActicityStrategy> listByActicityId(Long id) {
        return baseMapper.selectList(new LambdaQueryWrapper<XpActicityStrategy>().eq(XpActicityStrategy::getActitcityId, id));
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityUserServiceImpl.java
@@ -1,10 +1,13 @@
package com.xiaopeng.operation.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.model.operation.XpActicityUser;
import com.xiaopeng.operation.mapper.XpActicityUserMapper;
import com.xiaopeng.operation.service.IXpActicityUserService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * <p>
@@ -17,4 +20,8 @@
@Service
public class XpActicityUserServiceImpl extends ServiceImpl<XpActicityUserMapper, XpActicityUser> implements IXpActicityUserService {
    @Override
    public List<XpActicityUser> listByActicityId(Long id) {
        return baseMapper.selectList(new LambdaQueryWrapper<XpActicityUser>().eq(XpActicityUser::getActitcityId, id));
    }
}