fix():营销团购活动的修改

1125/liuheping
刘河平 2024-11-27 20:51:33 +08:00
parent 7ed26373af
commit 35ad772ac8
21 changed files with 306 additions and 56 deletions

View File

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -11,6 +11,9 @@ import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
*
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ -52,7 +55,7 @@ public class ActivityProductUpdModel {
/**
*
*/
private Integer sort;
private Long sort;
/**
* SkU
*/

View File

@ -0,0 +1,32 @@
package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* sku
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ActivityTeamProductSkuUpdModel {
/**
* id
*/
private Long ProductId;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
}

View File

@ -0,0 +1,33 @@
package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ProductSkuAddModel {
/**
* ID
*/
private Long productId;
/**
*
*/
private String productSku;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
}

View File

@ -0,0 +1,33 @@
package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
*
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ProductSkuUpdModel {
/**
* ID
*/
private Long productId;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
}

View File

@ -1,29 +1,34 @@
package com.muyu.marketing.domain.resp;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuUpdModel;
import com.muyu.marketing.domain.model.ProductSkuAddModel;
import com.muyu.marketing.domain.model.ProductSkuUpdModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ActivityProductUpdResp {
/**
* SkU
* SkU
*/
private List<ActivityTeamProductSkuResp> ActivityTeamProductSkuList;
private List<ActivityTeamProductSkuUpdModel> activityTeamProductSkuUpdList;
/**
* idList
*/
private List<Long> deleteSkuIdList;
/**
* List
*/
private List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddList;
}

View File

@ -6,7 +6,6 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;

View File

@ -0,0 +1,32 @@
package com.muyu.marketing.domain.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
*
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ProductSkuResp {
/**
* id
*/
private Long ProductId;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
}

View File

@ -3,6 +3,7 @@ package com.muyu.marketing.team.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.marketing.domain.model.ActivityProductUpdModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq;
@ -58,8 +59,17 @@ public class ActivityTeamController {
/**
*
*/
@GetMapping("getById/{teamId}")
public Result<ActivityTeamInfoDetailResp> getTeamInfo(@PathVariable Long teamId){
@GetMapping("/{teamId}")
public Result<ActivityTeamInfoDetailResp> getTeamInfo(@PathVariable("teamId") Long teamId){
return Result.success(activityTeamInfoService.getActivityByTeamId(teamId));
}
/**
*
*/
@PutMapping("update")
public Result<String> update(@RequestBody ActivityProductUpdModel activityProductUpdModel){
activityTeamInfoService.edit(activityProductUpdModel);
return Result.success();
}
}

View File

@ -3,6 +3,7 @@ package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.model.ActivityProductUpdModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
@ -32,4 +33,9 @@ public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
ActivityTeamInfoDetailResp getActivityByTeamId(Long teamId);
/**
*
* @param activityProductUpdModel
*/
void edit(ActivityProductUpdModel activityProductUpdModel);
}

View File

@ -3,10 +3,7 @@ package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.model.ActivityProductSkuListModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.marketing.domain.model.TeamProductStockModel;
import com.muyu.marketing.domain.model.*;
import java.util.List;
@ -45,4 +42,14 @@ public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeam
* id
*/
public List<ActivityProductSkuListModel> getTeamProductSkuInfoListByTeamId(Long teamId);
/**
*
*/
public boolean editBatchActivityTeamProductSkuUpdModelList(List<ActivityTeamProductSkuUpdModel> productSkuUpdList);
/**
*
*/
public boolean deleteBatchByTeamIds(List<Long> id);
}

View File

@ -10,14 +10,17 @@ import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.resp.ActivityProductUpdResp;
import com.muyu.marketing.domain.resp.ActivityTeamInfoDetailResp;
import com.muyu.marketing.domain.resp.ActivityTeamProductSkuResp;
import com.muyu.marketing.team.mapper.ActivityTeamInfoMapper;
import com.muyu.marketing.team.service.ActivityTeamInfoService;
import com.muyu.marketing.team.service.ActivityTeamOpenInfoService;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import io.lettuce.core.ClientOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@ -130,4 +133,51 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMap
return activityTeamInfoDetailResp;
}
/**
*
* @param activityProductUpdModel
*/
@Transactional
@Override
public void edit(ActivityProductUpdModel activityProductUpdModel) {
//获取活动商品SKU
ActivityProductUpdResp activityProductUpdResp = activityProductUpdModel.getActivityProductUpdResp();
//获取需要删除的SKU集合
List<Long> deleteSkuIdList = activityProductUpdResp.getDeleteSkuIdList();
//判断是否为空
if (deleteSkuIdList != null){
activityTeamProductSkuInfoService.deleteBatchByTeamIds(deleteSkuIdList);
}
//获取需要修改的SKU集合
List<ActivityTeamProductSkuUpdModel> activityTeamProductSkuList = activityProductUpdResp.getActivityTeamProductSkuUpdList();
//判断是否为空
if (activityTeamProductSkuList != null){
activityTeamProductSkuList.stream().map(productSkuUpdModel -> {
return ProductSkuUpdModel.builder()
.productId(productSkuUpdModel.getProductId())
.teamPrice(productSkuUpdModel.getTeamPrice())
.teamStock(productSkuUpdModel.getTeamStock())
.build();
}).toList();
//批量修改SKU集合
activityTeamProductSkuInfoService.editBatchActivityTeamProductSkuUpdModelList(activityTeamProductSkuList);
}
//获取要添加的SKU集合
List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddList = activityProductUpdResp.getActivityTeamProductSkuAddList();
//判断是否为空
if (activityTeamProductSkuAddList != null){
activityTeamProductSkuAddList.stream().map(productSkuAddModel -> {
return ProductSkuAddModel.builder()
.productId(productSkuAddModel.getProductId())
.teamPrice(productSkuAddModel.getTeamPrice())
.teamStock(productSkuAddModel.getTeamStock())
.productSku(productSkuAddModel.getProductSku())
.build();
}).toList();
//批量添加SKU集合
activityTeamProductSkuInfoService.batchSave(activityTeamProductSkuAddList);
}
}
}

View File

@ -1,12 +1,12 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.model.ActivityProductSkuListModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.marketing.domain.model.TeamProductStockModel;
import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.resp.ActivityTeamInfoDetailResp;
import com.muyu.marketing.domain.resp.ActivityTeamProductSkuResp;
import com.muyu.marketing.team.mapper.ActivityTeamProductSkuInfoMapper;
@ -30,6 +30,8 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityT
private ProjectSkuCache projectSkuCache;
@Autowired
private @Lazy ActivityTeamInfoService activityTeamInfoService;
@Autowired
private ActivityTeamProductSkuInfoMapper activityTeamProductSkuInfoMapper;
/**
* ID
@ -105,26 +107,46 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityT
.build());
}
return activityProductSkuList;
// //根据活动id查询活动相关信息
// ActivityTeamInfoDetailResp activityTeamInfoDetailResp=activityTeamInfoService.getActivityByTeamId(teamId);
// //获取到活动商品SKU集合
// List<ActivityTeamProductSkuResp> activityTeamProductSkuList = activityTeamInfoDetailResp.getActivityTeamProductSkuList();
// //定义一个空集合
// ArrayList<ActivityProductSkuListModel> activityProductSkuList = new ArrayList<>();
// //遍历SKU集合
// for (ActivityTeamProductSkuResp activityTeamProductSkuResp : activityTeamProductSkuList) {
// //获取到SKU的id
// Long id = activityTeamProductSkuResp.getId();
// //根据id查询
// ActivityTeamProductSkuInfo activityTeamProductSkuInfo = this.getById(id);
// //添加到集合中
// activityProductSkuList.add(ActivityProductSkuListModel.builder()
// .productId(activityTeamProductSkuInfo.getProductId())
// .sku(activityTeamProductSkuInfo.getProductSku())
// .teamPrice(activityTeamProductSkuInfo.getTeamPrice())
// .teamStock(activityTeamProductSkuInfo.getTeamStock())
// .build());
// }
// return activityProductSkuList;
}
/**
* SKU
*
* @param productSkuUpdList
* @return
*/
@Override
public boolean editBatchActivityTeamProductSkuUpdModelList(List<ActivityTeamProductSkuUpdModel> productSkuUpdList) {
//创建updateWrapper
LambdaUpdateWrapper<ActivityTeamProductSkuInfo> updateWrapper = new LambdaUpdateWrapper<>();
//遍历集合
for (ActivityTeamProductSkuUpdModel activityTeamProductSkuUpdModel : productSkuUpdList) {
//赋值
updateWrapper.set(ActivityTeamProductSkuInfo::getTeamPrice, activityTeamProductSkuUpdModel.getTeamPrice());
updateWrapper.set(ActivityTeamProductSkuInfo::getTeamStock, activityTeamProductSkuUpdModel.getTeamStock());
updateWrapper.eq(ActivityTeamProductSkuInfo::getProductId, activityTeamProductSkuUpdModel.getProductId());
}
//返回
return this.update(updateWrapper);
}
/**
*
* @param id
* @return
*/
@Override
public boolean deleteBatchByTeamIds(List<Long> id) {
//创建updateWrapper
LambdaQueryWrapper<ActivityTeamProductSkuInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
//根据id查询
List<Long> productIdList = activityTeamProductSkuInfoMapper.selectList(lambdaQueryWrapper).stream().map(ActivityTeamProductSkuInfo::getProductId).toList();
//判断集合是否为空
if (productIdList == null && productIdList.isEmpty()) {
throw new ServiceException("该团购下没有商品");
}
return this.removeBatchByIds(productIdList);
}
}

View File

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -16,10 +16,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 113.44.45.42:8848
namespace: e6fc646f-719d-4642-9228-b68fb4ed42aa
# 配置文件格式
file-extension: yml
# 共享配置