1126活动添加和获取数据详情实现

1126/chenzhentwo
陈震 2024-11-27 14:25:44 +08:00
parent b75c102e2c
commit b1e9c38b63
16 changed files with 211 additions and 40 deletions

View File

@ -12,6 +12,8 @@ $.{
"策略ID": "Long",
"商品规格List": [ // activity_team_product_sku_info
{
"productId": 6,
"teamId": 6,
"规格SKU": "String", // activity_team_product_sku_info.product_sku
"拼团价格": "BigDecimal",
"拼团库存": "Long"
@ -45,3 +47,6 @@ activity_team_product_sku_info.product_sku(商品SKU) <- ActivityTeamProductSkuI
activity_team_product_sku_info.team_stock() <- ActivityTeamProductSkuInfo.teamStock <- @.
activity_team_product_sku_info.remain_stock() <- ActivityTeamProductSkuInfo.remainStock <- @.
activity_team_product_sku_info.team_price() <- ActivityTeamProductSkuInfo.teamPrice <- @.

View File

@ -5,11 +5,14 @@ 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.ActivityTeamUpdModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
*
*/
@Data
@SuperBuilder
@NoArgsConstructor
@ -74,6 +77,7 @@ public class ActivityTeamInfo extends BaseEntity {
/**
*
*
* @param activityTeamInfoAddModel
* @return
*/
@ -93,4 +97,23 @@ public class ActivityTeamInfo extends BaseEntity {
.strategyId(activityTeamInfoAddModel.getStrategyId())
.build();
}
public static ActivityTeamInfo updModelBuild(ActivityTeamUpdModel activityTeamUpdModel) {
return ActivityTeamInfo.builder()
.id(activityTeamUpdModel.getTeamId())
.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

@ -8,7 +8,9 @@ import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
*
*/
@Data
@SuperBuilder
@NoArgsConstructor

View File

@ -9,7 +9,9 @@ import lombok.*;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
*
*/
@Data
@SuperBuilder
@NoArgsConstructor
@ -60,6 +62,9 @@ public class ActivityTeamProductSkuInfo extends BaseEntity {
.teamStock(activityTeamProductSkuAddModel.getTeamStock())
.remainStock(activityTeamProductSkuAddModel.getTeamStock())
.teamPrice(activityTeamProductSkuAddModel.getTeamPrice())
.build()
.build();
}
}

View File

@ -2,6 +2,8 @@ package com.muyu.marketing.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq;
import com.muyu.marketing.domain.req.ProjectSkuInfoAddReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -22,7 +24,6 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamInfoAddModel {
/**
*
*/
@ -78,4 +79,29 @@ public class ActivityTeamInfoAddModel {
* ID
*/
private Long strategyId;
public static ActivityTeamInfoAddModel dobuild(ActivityTeamInfoSaveReq activityTeamInfoSaveReq){
return ActivityTeamInfoAddModel.builder()
.name(activityTeamInfoSaveReq.getName())
.productId(activityTeamInfoSaveReq.getProductId())
.productImage(activityTeamInfoSaveReq.getProductImage())
.introduction(activityTeamInfoSaveReq.getIntroduction())
.unit(activityTeamInfoSaveReq.getUnit())
.imageList(activityTeamInfoSaveReq.getImageList())
.endTime(activityTeamInfoSaveReq.getEndTime())
.sort(activityTeamInfoSaveReq.getSort())
.content(activityTeamInfoSaveReq.getContent())
.status(activityTeamInfoSaveReq.getStatus())
.strategyType(activityTeamInfoSaveReq.getStrategyType())
.strategyId(activityTeamInfoSaveReq.getStrategyId())
.activityTeamProductSkuAddModelList(activityTeamInfoSaveReq.getProjectSkuInfoAddReqList().stream().map(addReq->
ActivityTeamProductSkuAddModel.dbuild(addReq,activityTeamInfoSaveReq::getProductId)
).toList()
).build();
}
}

View File

@ -1,12 +1,14 @@
package com.muyu.marketing.domain.model;
import com.muyu.marketing.domain.req.ProjectSkuInfoAddReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.function.Supplier;
/**
* spu
@ -44,4 +46,14 @@ public class ActivityTeamProductSkuAddModel {
*
*/
private Long teamStock;
public static ActivityTeamProductSkuAddModel dbuild (ProjectSkuInfoAddReq projectSkuInfoAddReq, Supplier<Long> productId){
return ActivityTeamProductSkuAddModel.builder()
.productId(productId.get())
.sku(projectSkuInfoAddReq.getSku())
.teamStock(projectSkuInfoAddReq.getTeamStock())
.teamPrice(projectSkuInfoAddReq.getTeamPrice())
.build();
}
}

View File

@ -44,7 +44,7 @@ public class TeamProductDiscountPriceModel {
* @return
*/
public static TeamProductDiscountPriceModel of(BigDecimal productPrice, BigDecimal teamPrice) {
TeamProductDiscountPriceModel.builder()
return TeamProductDiscountPriceModel.builder()
.productPrice(productPrice)
.teamPrice(teamPrice)
.discount(

View File

@ -3,9 +3,10 @@ package com.muyu.marketing.domain.req;
import com.muyu.common.core.web.page.PageDomain;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
@Data
@Builder
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)

View File

@ -3,16 +3,20 @@ 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.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq;
import com.muyu.marketing.domain.req.ProjectSkuInfoAddReq;
import com.muyu.marketing.domain.req.TeamInfoListReq;
import com.muyu.marketing.domain.resp.ActivityTeamDetailResp;
import com.muyu.marketing.domain.resp.TeamInfoListResp;
import com.muyu.marketing.domain.resp.TeamProjectSkuInfoResp;
import com.muyu.marketing.team.service.ActivityTeamInfoService;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.websocket.server.PathParam;
import java.util.List;
/**
@ -27,6 +31,9 @@ public class ActivityTeamController {
@Autowired
private ActivityTeamInfoService activityTeamInfoService;;
@Autowired
private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService;
/**
*
@ -44,4 +51,26 @@ public class ActivityTeamController {
}}
);
}
@PostMapping("/add")
public Result<String> add (@RequestBody ActivityTeamInfoSaveReq projectSkuInfoAddReq){
activityTeamInfoService.save(ActivityTeamInfoAddModel.dobuild(projectSkuInfoAddReq));
return Result.success("ok");
}
@GetMapping("/id")
public Result<ActivityTeamDetailResp> findById(@RequestParam("id")Long id){
ActivityTeamInfoDetailModel teamInfo = activityTeamInfoService.findById(id);
ActivityTeamDetailResp teamInfoDetailResp = ActivityTeamDetailResp.setUpDatailResp(
teamInfo,
teamId -> TeamProjectSkuInfoResp.teamProjectSkuInfoResp(activityTeamProductSkuInfoService.findByTeamId(teamId))
);
return Result.success(teamInfoDetailResp);
}
}

View File

@ -1,27 +1,29 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.domain.Result;
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.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.resp.ActivityTeamDetailResp;
import com.muyu.marketing.domain.resp.ActivityTeamProjectSkuResp;
import java.util.List;
public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
/**
*
* @param activityTeamInfoListQueryModel
* @return
*/
public TableDataInfo<ActivityTeamInfoListModel> query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel);
/**
*
* @param activityTeamInfoAddModel
*/
public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel);
ActivityTeamInfoDetailModel findById(Long id);
public void upd(ActivityTeamUpdModel activityTeamUpdModelList);
}

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.TeamStrategyExemptionHundred;
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;
@ -26,7 +23,6 @@ public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeam
*/
public TeamProductDiscountPriceModel getDiscountPrice(Long teamId);
/**
* ID
* @param teamId ID
@ -41,4 +37,9 @@ public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeam
*/
public void batchSave(List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList);
public List<ActivityTeamProductSkuInfoListModel> findByTeamId(Long teamId);
public void updsku(List<ActivityTeamSkuupdateModel> activityTeamSKuModelList);
}

View File

@ -2,23 +2,34 @@ 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.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.domain.Result;
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.domain.req.ProjectSkuInfoAddReq;
import com.muyu.marketing.domain.resp.ActivityTeamDetailResp;
import com.muyu.marketing.domain.resp.ActivityTeamProjectSkuResp;
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 com.muyu.product.domain.AsCategoryAttribute;
import com.muyu.product.domain.CategoryInfo;
import com.muyu.product.domain.req.CategoryInfoEditReq;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Collectors;
@Service
@ -75,14 +86,48 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMap
*/
@Override
public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel) {
boolean save = this.save(ActivityTeamInfo.addModelBuild(activityTeamInfoAddModel));
if (!save) {
throw new ServiceException(
StringUtils.format("团购活动添加失败:[{}]", activityTeamInfoAddModel)
);
ActivityTeamInfo activityTeamInfo = ActivityTeamInfo.addModelBuild(activityTeamInfoAddModel);
Assert.isTrue(this.save(activityTeamInfo),StringUtils.format("不存在"),activityTeamInfoAddModel);
List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList = activityTeamInfoAddModel.getActivityTeamProductSkuAddModelList();
activityTeamProductSkuAddModelList.forEach(activityTeamProductSkuAddModel -> {
activityTeamProductSkuAddModel.setTeamId(activityTeamInfo.getId());
});
activityTeamProductSkuInfoService.batchSave(activityTeamProductSkuAddModelList);
}
this.activityTeamProductSkuInfoService.batchSave(
activityTeamInfoAddModel.getActivityTeamProductSkuAddModelList()
);
// @Override
// public Result updbyid(Long id, ActivityTeamDetailResp activityTeamDetailResp) {
// ActivityTeamInfo activityTeamInfo = new ActivityTeamInfo();
// BeanUtils.copyProperties(activityTeamDetailResp,activityTeamInfo);
//
// List<ActivityTeamProjectSkuResp> projectSkuInfoModelList = activityTeamDetailResp.getProjectSkuInfoModelList();
//
// LambdaQueryWrapper<ActivityTeamProductSkuInfo> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId,id);
//
//
// activityTeamProductSkuInfoService.updateBatchById(activityTeamDetailResp,)
//
// return null;
// }
@Override
public ActivityTeamInfoDetailModel findById(Long id) {
return ActivityTeamInfoDetailModel.activityTeamInfoDetailModel(this.getById(id));
}
@Override
public void upd(ActivityTeamUpdModel activityTeamUpdModelList) {
ActivityTeamInfo activityTeamInfo = ActivityTeamInfo.updModelBuild(activityTeamUpdModelList);
boolean update = this.updateById(activityTeamInfo);
List<ActivityTeamUpdModel> projectSkuInfoAddReqList = activityTeamUpdModelList.getProjectSkuInfoAddReqList();
projectSkuInfoAddReqList.forEach(model->{
model.setProductId(activityTeamInfo.getProductId());
model.setTeamId(activityTeamInfo.getId());
});
}
}

View File

@ -27,5 +27,4 @@ public class ActivityTeamOpenInfoServiceImpl extends ServiceImpl<ActivityTeamOpe
return this.count(queryWrapper);
}
}

View File

@ -4,9 +4,9 @@ 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.TeamProductDiscountPriceModel;
import com.muyu.marketing.domain.model.TeamProductStockModel;
import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.resp.ActivityTeamDetailResp;
import com.muyu.marketing.domain.resp.ActivityTeamProjectSkuResp;
import com.muyu.marketing.team.mapper.ActivityTeamProductSkuInfoMapper;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import com.muyu.product.cache.ProjectSkuCache;
@ -80,4 +80,22 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityT
activityTeamProductSkuAddModelList.stream().map(ActivityTeamProductSkuInfo::modelBuild).toList()
);
}
@Override
public List<ActivityTeamProductSkuInfoListModel> findByTeamId(Long teamId) {
LambdaQueryWrapper<ActivityTeamProductSkuInfo> wrapper = new LambdaQueryWrapper<ActivityTeamProductSkuInfo>()
.eq(ActivityTeamProductSkuInfo::getTeamId, teamId);
List<ActivityTeamProductSkuInfo> activityTeamProductSkuInfoList = this.list(wrapper);
return activityTeamProductSkuInfoList.stream().
map(ActivityTeamProductSkuInfoListModel::infoListModel)
.toList();
}
@Override
public void updsku(List<ActivityTeamSkuupdateModel> activityTeamSKuModelList) {
}
}

View File

@ -1,6 +1,6 @@
# Tomcat
server:
port: 9209
port: 9286
# Spring
spring:
@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 1.94.98.9:8848
namespace: asdasd
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 1.94.98.9:8848
namespace: asdasd
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -46,6 +46,7 @@ public class AttributeGroupSaveModel extends BaseEntity {
.build();
}
public AttributeGroup buildAttributeGroup () {
return AttributeGroup.builder()
.name(this.getName())