拼团活动修改

1127/mahaoran
‘mahaoran’ 2024-11-27 22:34:49 +08:00
parent aeaaeaf532
commit b4cf3e8c06
13 changed files with 297 additions and 24 deletions

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel; import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel;
import com.muyu.marketing.domain.model.ActivityTeamUpdModel;
import lombok.*; import lombok.*;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
@ -93,4 +94,22 @@ public class ActivityTeamInfo extends BaseEntity {
.strategyId(activityTeamInfoAddModel.getStrategyId()) .strategyId(activityTeamInfoAddModel.getStrategyId())
.build(); .build();
} }
public static ActivityTeamInfo updModelBuild(ActivityTeamUpdModel activityTeamUpdModel){
return ActivityTeamInfo.builder()
.id(activityTeamUpdModel.getId())
.name(activityTeamUpdModel.getName())
.productId(activityTeamUpdModel.getProductId())
.productImage(activityTeamUpdModel.getProductImage())
.introduction(activityTeamUpdModel.getIntroduction())
.unit(activityTeamUpdModel.getUnit())
.imageList(activityTeamUpdModel.getImageList())
.endTime(activityTeamUpdModel.getEndTime())
.sort(activityTeamUpdModel.getSort())
.content(activityTeamUpdModel.getContent())
.status(activityTeamUpdModel.getStatus())
.strategyType(activityTeamUpdModel.getStrategyType())
.strategyId(activityTeamUpdModel.getStrategyId())
.build();
}
} }

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel; import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuUpdModel;
import lombok.*; import lombok.*;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
@ -62,4 +63,12 @@ public class ActivityTeamProductSkuInfo extends BaseEntity {
.teamPrice(activityTeamProductSkuAddModel.getTeamPrice()) .teamPrice(activityTeamProductSkuAddModel.getTeamPrice())
.build(); .build();
} }
public static ActivityTeamProductSkuInfo updBuild(ActivityTeamProductSkuUpdModel activityTeamProductSkuUpdModel){
return ActivityTeamProductSkuInfo.builder()
.id(activityTeamProductSkuUpdModel.getId())
.remainStock(activityTeamProductSkuUpdModel.getTeamStock())
.teamPrice(activityTeamProductSkuUpdModel.getTeamPrice())
.build();
}
} }

View File

@ -36,7 +36,8 @@ public class ActivityTeamProductSkuAddModel {
/** /**
* SKU * SKU
*/ */
private String sku; private String productSku;
/** /**
* *
@ -51,7 +52,7 @@ public class ActivityTeamProductSkuAddModel {
public static ActivityTeamProductSkuAddModel addReqBuild(TeamProjectSkuInfoAddReq teamProjectSkuInfoAddReq, Supplier<Long> productId){ public static ActivityTeamProductSkuAddModel addReqBuild(TeamProjectSkuInfoAddReq teamProjectSkuInfoAddReq, Supplier<Long> productId){
return ActivityTeamProductSkuAddModel.builder() return ActivityTeamProductSkuAddModel.builder()
.productId(productId.get()) .productId(productId.get())
.sku(teamProjectSkuInfoAddReq.getSku()) .productSku(teamProjectSkuInfoAddReq.getProductSku())
.teamStock(teamProjectSkuInfoAddReq.getTeamStock()) .teamStock(teamProjectSkuInfoAddReq.getTeamStock())
.teamPrice(teamProjectSkuInfoAddReq.getTeamPrice()) .teamPrice(teamProjectSkuInfoAddReq.getTeamPrice())
.build(); .build();

View File

@ -0,0 +1,40 @@
package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* spu
*
* @author DongZeLiang
* @date 2024-11-26 09:36
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamProductSkuUpdModel {
/**
* ID
*/
private Long id;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
}

View File

@ -1,6 +1,8 @@
package com.muyu.marketing.domain.model; package com.muyu.marketing.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.req.ActivityTeamUpdReq;
import com.muyu.marketing.domain.resp.ActivityTeamProjectSkuResp; import com.muyu.marketing.domain.resp.ActivityTeamProjectSkuResp;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
@ -56,9 +58,9 @@ public class ActivityTeamUpdModel {
*/ */
private Integer sort; private Integer sort;
/** /**
* SkU * SkU
*/ */
private List<ActivityTeamProjectSkuResp> activityTeamProjectSkuResp; private ActivityTeamUpdSkuModel activityTeamUpdSkuModel;
/** /**
* *
*/ */
@ -75,4 +77,24 @@ public class ActivityTeamUpdModel {
* ID * ID
*/ */
private Long strategyId; private Long strategyId;
public static ActivityTeamUpdModel activityTeamUpdReq(ActivityTeamUpdReq activityTeamInfo){
return ActivityTeamUpdModel.builder()
.id(activityTeamInfo.getId())
.name(activityTeamInfo.getName())
.productId(activityTeamInfo.getProductId())
.introduction(activityTeamInfo.getIntroduction())
.unit(activityTeamInfo.getUnit())
.endTime(activityTeamInfo.getEndTime())
.imageList(activityTeamInfo.getImageList())
.productImage(activityTeamInfo.getProductImage())
.activityTeamUpdSkuModel(activityTeamInfo.getActivityTeamUpdSkuModel())
.sort(activityTeamInfo.getSort())
.content(activityTeamInfo.getContent())
.status(activityTeamInfo.getStatus())
.strategyType(activityTeamInfo.getStrategyType())
.strategyId(activityTeamInfo.getStrategyId())
.strategyType(activityTeamInfo.getStrategyType())
.build();
}
} }

View File

@ -1,4 +1,29 @@
package com.muyu.marketing.domain.model; package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ActivityTeamUpdSkuModel { public class ActivityTeamUpdSkuModel {
/**
* spu
*/
private List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList;
/**
* Id
*/
private List<Long> ids;
/**
* spu
*/
private List<ActivityTeamProductSkuUpdModel> activityTeamProductSkuUpdModels;
} }

View File

@ -1,4 +1,82 @@
package com.muyu.marketing.domain.req; package com.muyu.marketing.domain.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.marketing.domain.model.ActivityTeamUpdModel;
import com.muyu.marketing.domain.model.ActivityTeamUpdSkuModel;
import com.muyu.marketing.domain.resp.ActivityTeamProjectSkuResp;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamUpdReq { public class ActivityTeamUpdReq {
/**
* ID
*/
private Long id;
/**
*
*/
private String name;
/**
* ID
*/
private Long productId;
/**
*
*/
private String productImage;
/**
*
*/
private String introduction;
/**
*
*/
private String unit;
/**
*
*/
private String imageList;
/**
*
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
private Date endTime;
/**
*
*/
private Integer sort;
/**
* SkU
*/
private ActivityTeamUpdSkuModel activityTeamUpdSkuModel;
/**
*
*/
private String content;
/**
*
*/
private String status;
/**
*
*/
private String strategyType;
/**
* ID
*/
private Long strategyId;
} }

View File

@ -20,7 +20,7 @@ public class TeamProjectSkuInfoAddReq {
/** /**
* SKU * SKU
*/ */
private String sku; private String productSku;
/** /**
* *

View File

@ -3,11 +3,9 @@ package com.muyu.marketing.team.controller;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.marketing.domain.model.ActivityTeamDetailRespModel; import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoDetailModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq; import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq;
import com.muyu.marketing.domain.req.ActivityTeamUpdReq;
import com.muyu.marketing.domain.req.TeamInfoListReq; import com.muyu.marketing.domain.req.TeamInfoListReq;
import com.muyu.marketing.domain.resp.ActivityTeamDetailResp; import com.muyu.marketing.domain.resp.ActivityTeamDetailResp;
import com.muyu.marketing.domain.resp.ActivityTeamProjectSkuResp; import com.muyu.marketing.domain.resp.ActivityTeamProjectSkuResp;
@ -74,4 +72,10 @@ public class ActivityTeamController {
); );
return activityTeamDetailResp; return activityTeamDetailResp;
} }
@PutMapping
public Result upd(@RequestBody ActivityTeamUpdReq activityTeamUpdReq){
activityTeamInfoService.upd(ActivityTeamUpdModel.activityTeamUpdReq(activityTeamUpdReq));
return Result.success();
}
} }

View File

@ -3,10 +3,8 @@ package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.marketing.domain.ActivityTeamInfo; import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.model.ActivityTeamDetailRespModel; import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel; import com.muyu.marketing.domain.req.ActivityTeamUpdReq;
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.marketing.domain.resp.ActivityTeamDetailResp; import com.muyu.marketing.domain.resp.ActivityTeamDetailResp;
public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> { public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
@ -26,7 +24,12 @@ public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel); public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel);
/** /**
* *
* @param id
* @return
*/ */
public ActivityTeamDetailRespModel findById(Long id); public ActivityTeamDetailRespModel findById(Long id);
public boolean upd(ActivityTeamUpdModel activityTeamUpdModel);
} }

View File

@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred; import com.muyu.marketing.domain.TeamStrategyExemptionHundred;
import com.muyu.marketing.domain.model.ActivityTeamInfoDetailModel; import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.marketing.domain.model.TeamProductStockModel;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -47,4 +44,27 @@ public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeam
* sku * sku
*/ */
public List<ActivityTeamInfoDetailModel> selectByTeamId(Long teamId); public List<ActivityTeamInfoDetailModel> selectByTeamId(Long teamId);
/**
* ID
* @param activityTeamProductSkuUpdModels
* @return
*/
public boolean batchUpd(List<ActivityTeamProductSkuUpdModel> activityTeamProductSkuUpdModels);
/**
*
* @param activityTeamProductSkuAddModelList
* @return
*/
public boolean batchAdd(List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList);
/**
* Id
* @param ids
* @return
*/
public boolean batchDel(List<Long> ids);
} }

View File

@ -1,6 +1,7 @@
package com.muyu.marketing.team.service.impl; package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
@ -8,6 +9,7 @@ import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.marketing.domain.ActivityTeamInfo; import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.model.*; import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.req.ActivityTeamUpdReq;
import com.muyu.marketing.domain.resp.ActivityTeamDetailResp; import com.muyu.marketing.domain.resp.ActivityTeamDetailResp;
import com.muyu.marketing.team.mapper.ActivityTeamInfoMapper; import com.muyu.marketing.team.mapper.ActivityTeamInfoMapper;
import com.muyu.marketing.team.service.ActivityTeamInfoService; import com.muyu.marketing.team.service.ActivityTeamInfoService;
@ -15,6 +17,7 @@ import com.muyu.marketing.team.service.ActivityTeamOpenInfoService;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService; import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import java.util.List; import java.util.List;
@ -81,8 +84,25 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMap
this.activityTeamProductSkuInfoService.batchSave(teamProductSkuAddModelList); this.activityTeamProductSkuInfoService.batchSave(teamProductSkuAddModelList);
} }
/**
*
* @param id
* @return
*/
@Override @Override
public ActivityTeamDetailRespModel findById(Long id) { public ActivityTeamDetailRespModel findById(Long id) {
return ActivityTeamDetailRespModel.teamDetailRespModel(this.getById(id)); return ActivityTeamDetailRespModel.teamDetailRespModel(this.getById(id));
} }
@Transactional
@Override
public boolean upd(ActivityTeamUpdModel activityTeamUpdModel) {
ActivityTeamInfo teamInfo = ActivityTeamInfo.updModelBuild(activityTeamUpdModel);
this.updateById(teamInfo);
ActivityTeamUpdSkuModel activityTeamUpdSkuModel = activityTeamUpdModel.getActivityTeamUpdSkuModel();
activityTeamProductSkuInfoService.batchUpd(activityTeamUpdSkuModel.getActivityTeamProductSkuUpdModels());
activityTeamProductSkuInfoService.batchAdd(activityTeamUpdSkuModel.getActivityTeamProductSkuAddModelList());
activityTeamProductSkuInfoService.batchDel(activityTeamUpdSkuModel.getIds());
return true;
}
} }

View File

@ -1,13 +1,12 @@
package com.muyu.marketing.team.service.impl; package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.exception.ServiceException; import com.muyu.common.core.exception.ServiceException;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.model.ActivityTeamInfoDetailModel; import com.muyu.marketing.domain.model.*;
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.team.mapper.ActivityTeamProductSkuInfoMapper; import com.muyu.marketing.team.mapper.ActivityTeamProductSkuInfoMapper;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService; import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import com.muyu.product.cache.ProjectSkuCache; import com.muyu.product.cache.ProjectSkuCache;
@ -87,10 +86,43 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityT
LambdaQueryWrapper<ActivityTeamProductSkuInfo> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ActivityTeamProductSkuInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId,teamId); queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId,teamId);
List<ActivityTeamProductSkuInfo> activityTeamProductSkuInfos = this.list(queryWrapper); List<ActivityTeamProductSkuInfo> activityTeamProductSkuInfos = this.list(queryWrapper);
List<ActivityTeamInfoDetailModel> activityTeamInfoDetailModels = activityTeamProductSkuInfos List<ActivityTeamInfoDetailModel> activityTeamInfoDetailModels = activityTeamProductSkuInfos
.stream().map(ActivityTeamInfoDetailModel::activityTeamInfoDetailModel).toList(); .stream().map(ActivityTeamInfoDetailModel::activityTeamInfoDetailModel).toList();
return activityTeamInfoDetailModels; return activityTeamInfoDetailModels;
} }
/**
* ID
* @param activityTeamProductSkuUpdModels
* @return
*/
@Override
public boolean batchUpd(List<ActivityTeamProductSkuUpdModel> activityTeamProductSkuUpdModels) {
List<ActivityTeamProductSkuInfo> productSkuInfos = activityTeamProductSkuUpdModels.stream()
.map(ActivityTeamProductSkuInfo::updBuild).toList();
return this.updateBatchById(productSkuInfos);
}
/**
*
* @param activityTeamProductSkuAddModelList
* @return
*/
@Override
public boolean batchAdd(List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList) {
List<ActivityTeamProductSkuInfo> productSkuInfos = activityTeamProductSkuAddModelList.stream()
.map(ActivityTeamProductSkuInfo::modelBuild).toList();
return this.saveBatch(productSkuInfos);
}
/**
* Id
* @param ids
* @return
*/
@Override
public boolean batchDel(List<Long> ids) {
return this.removeBatchByIds(ids);
}
} }