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)); } }