拼团商品修改

1127/yangchaoshun
yangchaoshun 2024-11-27 22:34:46 +08:00
parent 903b43e8b6
commit 5125271177
20 changed files with 317 additions and 63 deletions

View File

@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoUpdModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
@Data
@SuperBuilder
@ -93,4 +95,20 @@ public class ActivityTeamInfo extends BaseEntity {
.strategyId(activityTeamInfoAddModel.getStrategyId())
.build();
}
public static ActivityTeamInfo updBuildModel(ActivityTeamInfoUpdModel activityTeamInfoUpdModel){
return ActivityTeamInfo.builder()
.id(activityTeamInfoUpdModel.getId())
.name(activityTeamInfoUpdModel.getName())
.productId(activityTeamInfoUpdModel.getProductId())
.productImage(activityTeamInfoUpdModel.getProductImage())
.introduction(activityTeamInfoUpdModel.getIntroduction())
.unit(activityTeamInfoUpdModel.getUnit())
.imageList(activityTeamInfoUpdModel.getImageList())
.sort(activityTeamInfoUpdModel.getSort())
.content(activityTeamInfoUpdModel.getContent())
.status(activityTeamInfoUpdModel.getStatus())
.build();
}
}

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuInfoUpdModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
@ -62,4 +63,35 @@ public class ActivityTeamProductSkuInfo extends BaseEntity {
.teamPrice(activityTeamProductSkuAddModel.getTeamPrice())
.build();
}
public static ActivityTeamProductSkuInfo updateBuildModel(ActivityTeamProductSkuInfoUpdModel activityTeamProductSkuInfoUpdModel){
return ActivityTeamProductSkuInfo.builder()
.id(activityTeamProductSkuInfoUpdModel.getId())
.teamPrice(activityTeamProductSkuInfoUpdModel.getTeamPrice())
.teamStock(activityTeamProductSkuInfoUpdModel.getTeamStock())
.build();
}
public static ActivityTeamProductSkuInfo addBuildModel(ActivityTeamProductSkuAddModel activityTeamProductSkuAddModel) {
return ActivityTeamProductSkuInfo.builder()
.teamId(activityTeamProductSkuAddModel.getTeamId())
.productSku(activityTeamProductSkuAddModel.getProductSku())
.teamStock(activityTeamProductSkuAddModel.getTeamStock())
.remainStock(activityTeamProductSkuAddModel.getTeamStock())
.teamPrice(activityTeamProductSkuAddModel.getTeamPrice())
.build();
}
public static ActivityTeamProductSkuInfo addProductBuildModel(ActivityTeamProductSkuAddModel activityTeamProductSkuAddModel) {
return ActivityTeamProductSkuInfo.builder()
.productId(activityTeamProductSkuAddModel.getProductId())
.teamId(activityTeamProductSkuAddModel.getTeamId())
.productSku(activityTeamProductSkuAddModel.getProductSku())
.teamStock(activityTeamProductSkuAddModel.getTeamStock())
.remainStock(activityTeamProductSkuAddModel.getTeamStock())
.teamPrice(activityTeamProductSkuAddModel.getTeamPrice())
.build();
}
}

View File

@ -1,13 +1,17 @@
package com.muyu.marketing.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.common.core.utils.bean.BeanUtils;
import com.muyu.marketing.domain.req.ActivityTeamInfoUpdReq;
import com.muyu.marketing.domain.req.ActivityTeamProductSkuInfoReq;
import com.muyu.marketing.domain.req.ActivityTeamProductSkuInfoUpdReq;
import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
@ -18,6 +22,11 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamInfoUpdModel {
/**
* id
*/
private Long id;
/**
*
*/
@ -42,7 +51,6 @@ public class ActivityTeamInfoUpdModel {
/**
*
*/
private String imageList;
/**
@ -59,10 +67,54 @@ public class ActivityTeamInfoUpdModel {
*/
private String status;
/**
* SkU
*/
private ActivityTeamProductSkuInfoModel activityTeamProductSkuInfoModel;
/**
*
* @param activityTeamInfoUpdReq
* @return
*/
public static ActivityTeamInfoUpdModel activityTeamInfoUpdModel(ActivityTeamInfoUpdReq activityTeamInfoUpdReq){
ActivityTeamProductSkuInfoReq activityTeamProductSkuInfoReq = activityTeamInfoUpdReq.getActivityTeamProductSkuInfoReq();
List<ActivityTeamProductSkuInfoUpdReq> activityTeamProductSkuInfoUpdReq = activityTeamProductSkuInfoReq.getActivityTeamProductSkuInfoUpdReq();
ActivityTeamProductSkuInfoModel teamProductSkuInfoModel = new ActivityTeamProductSkuInfoModel();
List<ActivityTeamProductSkuInfoUpdModel> teamProductSkuInfoUpdModels = activityTeamProductSkuInfoUpdReq.stream().map(activityTeamProductSkuInfoUpdReq1 -> {
ActivityTeamProductSkuInfoUpdModel activityTeamProductSkuInfoUpdModel = ActivityTeamProductSkuInfoUpdModel.builder()
.id(activityTeamProductSkuInfoUpdReq1.getId())
.teamStock(activityTeamProductSkuInfoUpdReq1.getTeamStock())
.teamPrice(activityTeamProductSkuInfoUpdReq1.getTeamPrice())
.build();
return activityTeamProductSkuInfoUpdModel;
}).toList();
teamProductSkuInfoModel.setActivityTeamProductSkuUpdModel(teamProductSkuInfoUpdModels);
List<TeamProjectSkuInfoAddReq> teamProjectSkuInfoAddReq = activityTeamProductSkuInfoReq.getTeamProjectSkuInfoAddReq();
List<ActivityTeamProductSkuAddModel> skuAddModels = teamProjectSkuInfoAddReq.stream().map(teamProjectSkuInfoAddReq1 -> {
ActivityTeamProductSkuAddModel productSkuAddModel = ActivityTeamProductSkuAddModel.builder()
.teamId(activityTeamInfoUpdReq.getId())
.productId(activityTeamInfoUpdReq.getProductId())
.productSku(teamProjectSkuInfoAddReq1.getProductSku())
.teamPrice(teamProjectSkuInfoAddReq1.getTeamPrice())
.teamStock(teamProjectSkuInfoAddReq1.getTeamStock())
.build();
return productSkuAddModel;
}).toList();
teamProductSkuInfoModel.setActivityTeamProductSkuAddModelList(skuAddModels);
teamProductSkuInfoModel.setSkuIdList(activityTeamInfoUpdReq.getActivityTeamProductSkuInfoReq().getSkuIdList());
return ActivityTeamInfoUpdModel.builder()
.id(activityTeamInfoUpdReq.getId())
.name(activityTeamInfoUpdReq.getName())
.productId(activityTeamInfoUpdReq.getProductId())
.productImage(activityTeamInfoUpdReq.getProductImage())
.introduction(activityTeamInfoUpdReq.getIntroduction())
.unit(activityTeamInfoUpdReq.getUnit())
.imageList(activityTeamInfoUpdReq.getImageList())
.sort(activityTeamInfoUpdReq.getSort())
.content(activityTeamInfoUpdReq.getContent())
.status(activityTeamInfoUpdReq.getStatus())
.activityTeamProductSkuInfoModel(teamProductSkuInfoModel)
.build();
}
}

View File

@ -51,7 +51,7 @@ public class ActivityTeamProductSkuAddModel {
public static ActivityTeamProductSkuAddModel addReqBuild(TeamProjectSkuInfoAddReq teamProjectSkuInfoAddReq, Supplier<Long> productId){
return ActivityTeamProductSkuAddModel.builder()
.productId(productId.get())
.productSku(teamProjectSkuInfoAddReq.getSku())
.productSku(teamProjectSkuInfoAddReq.getProductSku())
.teamStock(teamProjectSkuInfoAddReq.getTeamStock())
.teamPrice(teamProjectSkuInfoAddReq.getTeamPrice())
.build();

View File

@ -7,12 +7,24 @@ import lombok.NoArgsConstructor;
import java.util.List;
/**
*
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ActivityTeamProductSkuInfoModel {
private List<ActivityTeamProductSkuUpdModel> activityTeamProductSkuUpdModel;
/**
* sku
*/
private List<ActivityTeamProductSkuInfoUpdModel> activityTeamProductSkuUpdModel;
/**
* id
*/
private List<Long> skuIdList;
/**
* sku
*/
private List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList;
}

View File

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

View File

@ -1,17 +0,0 @@
package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamProductSkuUpdModel {
private String productSku;
}

View File

@ -11,6 +11,10 @@ import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
/**
*
*/
@Data
@SuperBuilder
@NoArgsConstructor

View File

@ -1,6 +1,8 @@
package com.muyu.marketing.domain.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.marketing.domain.model.ActivityTeamInfoUpdModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuInfoModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -17,6 +19,10 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamInfoUpdReq {
/**
* id
*/
private Long id;
/**
*
*/
@ -52,10 +58,6 @@ public class ActivityTeamInfoUpdReq {
*
*/
private Integer sort;
/**
* SkU
*/
private List<TeamProjectSkuInfoAddReq> teamProjectSkuInfoAddReqList;
/**
*
*/
@ -73,6 +75,10 @@ public class ActivityTeamInfoUpdReq {
*/
private Long strategyId;
/**
* SkU
*/
private ActivityTeamProductSkuInfoReq activityTeamProductSkuInfoReq;
private List<Long> skuId;
}

View File

@ -0,0 +1,32 @@
package com.muyu.marketing.domain.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* sku
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ActivityTeamProductSkuInfoReq {
/**
* sku
*/
private List<ActivityTeamProductSkuInfoUpdReq> activityTeamProductSkuInfoUpdReq;
/**
* id
*/
private List<Long> skuIdList;
/**
* sku
*/
private List<TeamProjectSkuInfoAddReq> teamProjectSkuInfoAddReq;
}

View File

@ -0,0 +1,30 @@
package com.muyu.marketing.domain.req;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* sku
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamProductSkuInfoUpdReq {
/**
* id
*/
private Long id;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
}

View File

@ -5,6 +5,9 @@ import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
/**
*
*/
@Data
@SuperBuilder
@NoArgsConstructor

View File

@ -8,7 +8,7 @@ import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
*
*
*/
@Data
@SuperBuilder
@ -19,7 +19,7 @@ public class TeamProjectSkuInfoAddReq {
/**
* SKU
*/
private String sku;
private String productSku;
/**
*

View File

@ -3,10 +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.ActivityTeamInfoAddModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoDetailModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuInfoListModel;
import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq;
import com.muyu.marketing.domain.req.ActivityTeamInfoUpdReq;
import com.muyu.marketing.domain.req.TeamInfoListReq;
@ -88,6 +85,7 @@ public class ActivityTeamController {
*/
@PutMapping("update")
public Result<String> upd(@RequestBody ActivityTeamInfoUpdReq activityTeamInfoUpdReq){
activityTeamInfoService.update(ActivityTeamInfoUpdModel.activityTeamInfoUpdModel(activityTeamInfoUpdReq));
return Result.success();
}

View File

@ -3,12 +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.ActivityTeamInfoAddModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoDetailModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import java.util.List;
import com.muyu.marketing.domain.model.*;
public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
@ -30,4 +25,9 @@ public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
*
*/
public ActivityTeamInfoDetailModel findById(Long id);
/**
* 稿
*/
public void update(ActivityTeamInfoUpdModel activityTeamInfoUpdModel);
}

View File

@ -3,7 +3,6 @@ package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.enums.market.team.TeamOpenTypeEnum;
import com.muyu.marketing.domain.ActivityTeamOpenInfo;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
public interface ActivityTeamOpenInfoService extends IService<ActivityTeamOpenInfo> {

View File

@ -3,11 +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.TeamStrategyExemptionHundred;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuInfoListModel;
import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.marketing.domain.model.TeamProductStockModel;
import com.muyu.marketing.domain.model.*;
import java.util.List;
@ -50,4 +46,23 @@ public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeam
*/
public List<ActivityTeamProductSkuInfoListModel> findByTeamId(Long teamId);
/**
* sku
* @param activityTeamProductSkuInfoUpdModel
* @return
*/
public boolean updateBatch(List<ActivityTeamProductSkuInfoUpdModel> activityTeamProductSkuInfoUpdModel);
/**
* sku
*/
public boolean BatchDelete(List<Long> ids);
/**
*
*/
public boolean insertBatch(List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModels);
}

View File

@ -2,7 +2,6 @@ package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred;
import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary;
public interface TeamStrategyExemptionHundredService extends IService<TeamStrategyExemptionHundred> {
}

View File

@ -1,13 +1,12 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.utils.StringUtils;
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.team.mapper.ActivityTeamInfoMapper;
import com.muyu.marketing.team.service.ActivityTeamInfoService;
@ -15,11 +14,10 @@ import com.muyu.marketing.team.service.ActivityTeamOpenInfoService;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
@Service
@ -90,4 +88,23 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMap
public ActivityTeamInfoDetailModel findById(Long id) {
return ActivityTeamInfoDetailModel.activityTeamInfoDetailModel(this.getById(id));
}
/**
* 稿
*/
@Transactional
@Override
public void update(ActivityTeamInfoUpdModel activityTeamInfoUpdModel) {
ActivityTeamInfo activityTeamInfo = ActivityTeamInfo.updBuildModel(activityTeamInfoUpdModel);
//修改拼团活动表
this.updateById(activityTeamInfo);
//批量修改商品sku列表
activityTeamProductSkuInfoService.updateBatch(activityTeamInfoUpdModel.getActivityTeamProductSkuInfoModel().getActivityTeamProductSkuUpdModel());
//根据活动规格id批量删除
activityTeamProductSkuInfoService.removeBatchByIds(activityTeamInfoUpdModel.getActivityTeamProductSkuInfoModel().getSkuIdList());
List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList = activityTeamInfoUpdModel.getActivityTeamProductSkuInfoModel().getActivityTeamProductSkuAddModelList();
//批量添加商品规格
activityTeamProductSkuInfoService.saveBatch(activityTeamProductSkuAddModelList.stream().map(ActivityTeamProductSkuInfo::addProductBuildModel).toList());
}
}

View File

@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuInfoListModel;
import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.marketing.domain.model.TeamProductStockModel;
import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.team.mapper.ActivityTeamProductSkuInfoMapper;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import com.muyu.product.cache.ProjectSkuCache;
@ -15,10 +12,6 @@ import com.muyu.product.domain.ProjectSkuInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
@ -96,4 +89,35 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityT
map(ActivityTeamProductSkuInfoListModel::infoListModel)
.toList();
}
/**
* sku
* @param activityTeamProductSkuInfoUpdModel
* @return
*/
@Override
public boolean updateBatch(List<ActivityTeamProductSkuInfoUpdModel> activityTeamProductSkuInfoUpdModel) {
List<ActivityTeamProductSkuInfo> activityTeamProductSkuInfoList = activityTeamProductSkuInfoUpdModel.stream().
map(ActivityTeamProductSkuInfo::updateBuildModel)
.toList();
return this.updateBatchById(activityTeamProductSkuInfoList);
}
/**
* sku
*/
@Override
public boolean BatchDelete(List<Long> ids) {
return this.removeBatchByIds(ids);
}
/**
*
*/
@Override
public boolean insertBatch(List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModels) {
return this.saveBatch(activityTeamProductSkuAddModels.stream()
.map(ActivityTeamProductSkuInfo::addBuildModel)
.toList());
}
}