Compare commits

...

1 Commits

Author SHA1 Message Date
neverAwake d9f50a2718 fix():新增了查看活动详情功能 2024-11-27 10:33:34 +08:00
20 changed files with 436 additions and 33 deletions

View File

@ -0,0 +1,24 @@
{
"id":"Long",
"name":"String",
"productId":"Long",
"productName":"String",
"productImage":"String",
"introduction":"String",
"unit":"String",
"imageList":[
"轮播图":"String"],
"endTime":"Date",
"sort":"String",
"content":"String",
"status":"String",
"strategyType":"String",
"strategyId":"Long",
"SkuList":[
{
"id":"Long"
"sku":"String",
"库存":"Long",
"价格":"BigDecimal"
}]
}

View File

@ -14,10 +14,10 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -14,10 +14,10 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置
@ -33,7 +33,7 @@ spring:
datasource: datasource:
ds1: ds1:
nacos: nacos:
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
dataId: sentinel-muyu-gateway dataId: sentinel-muyu-gateway
groupId: DEFAULT_GROUP groupId: DEFAULT_GROUP
data-type: json data-type: json

View File

@ -60,6 +60,7 @@ public class ActivityTeamProductSkuInfo extends BaseEntity {
.teamStock(activityTeamProductSkuAddModel.getTeamStock()) .teamStock(activityTeamProductSkuAddModel.getTeamStock())
.remainStock(activityTeamProductSkuAddModel.getTeamStock()) .remainStock(activityTeamProductSkuAddModel.getTeamStock())
.teamPrice(activityTeamProductSkuAddModel.getTeamPrice()) .teamPrice(activityTeamProductSkuAddModel.getTeamPrice())
.build() .build();
} }
} }

View File

@ -0,0 +1,112 @@
package com.muyu.marketing.domain.model;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.resp.TeamProjectSkuResp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @Author ?
* @Date 2024/11/26 14:29
*
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ActivityTeamInfoDetailModel {
/**
*
*/
private Long teamId;
/**
*
*/
private String name;
/**
* ID
*/
private Long productId;
/** 商品名称 */
private String productName;
/**
*
*/
private String productImage;
/**
*
*/
private String introduction;
/**
*
*/
private String unit;
/**
*
*/
private String imageList;
/** 活动结束时间 */
private Date endTime;
/**
*
*/
private Long sort;
/**
*
*/
private String content;
/**
*
*/
private String status;
/**
*
*/
private String strategyType;
/**
* ID
*/
private Long strategyId;
/** 团购商品sku集合 */
private List<TeamProjectSkuResp> skuList;
public static ActivityTeamInfoDetailModel getTeamDetailBuild(ActivityTeamInfo activityTeamInfo, String productName, List<TeamProjectSkuResp> skus) {
return ActivityTeamInfoDetailModel.builder()
.teamId(activityTeamInfo.getId())
.name(activityTeamInfo.getName())
.productId(activityTeamInfo.getProductId())
.productName(productName)
.productImage(activityTeamInfo.getProductImage())
.introduction(activityTeamInfo.getIntroduction())
.unit(activityTeamInfo.getUnit())
.imageList(activityTeamInfo.getImageList())
.endTime(activityTeamInfo.getEndTime())
.sort(activityTeamInfo.getSort())
.content(activityTeamInfo.getContent())
.status(activityTeamInfo.getStatus())
.strategyId(activityTeamInfo.getStrategyId())
.strategyType(activityTeamInfo.getStrategyType())
.skuList(skus)
.build();
}
}

View File

@ -0,0 +1,27 @@
package com.muyu.marketing.domain.model;
import com.muyu.marketing.domain.resp.TeamProjectSkuResp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author ?
* @Date 2024/11/26 16:29
*
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ActivityTeamProjectSkuModel {
private Long id;
private String sku;
private BigDecimal teamPrice;
private Long teamStock;
}

View File

@ -43,8 +43,8 @@ public class TeamProductDiscountPriceModel {
* @param teamPrice * @param teamPrice
* @return * @return
*/ */
public static TeamProductDiscountPriceModel of(BigDecimal productPrice, BigDecimal teamPrice) { public static TeamProductDiscountPriceModel buildTeamProductDiscountPrice(BigDecimal productPrice, BigDecimal teamPrice) {
TeamProductDiscountPriceModel.builder() return TeamProductDiscountPriceModel.builder()
.productPrice(productPrice) .productPrice(productPrice)
.teamPrice(teamPrice) .teamPrice(teamPrice)
.discount( .discount(
@ -52,4 +52,5 @@ public class TeamProductDiscountPriceModel {
) )
.build(); .build();
} }
} }

View File

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

View File

@ -0,0 +1,108 @@
package com.muyu.marketing.domain.resp;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.marketing.domain.model.ActivityTeamInfoDetailModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @Author ?
* @Date 2024/11/26 15:20
*
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ActivityTeamInfoDetailResp {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private Long teamId;
/**
*
*/
private String teamName;
/**
* ID
*/
private Long productId;
/** 商品名称 */
private String productName;
/**
*
*/
private String productImage;
/**
*
*/
private String introduction;
/**
*
*/
private String unit;
/**
*
*/
private String imageList;
/**
*
*/
private Date endTime;
/**
*
*/
private Long sort;
/**
*
*/
private String content;
/**
*
*/
private String status;
/**
*
*/
private String strategyType;
/**
* ID
*/
private Long strategyId;
/** 团购商品sku集合 */
private List<TeamProjectSkuResp> skuList;
public static ActivityTeamInfoDetailResp modelBuild(ActivityTeamInfoDetailModel activityTeamInfoDetailModel) {
return ActivityTeamInfoDetailResp.builder()
.teamId(activityTeamInfoDetailModel.getTeamId())
.teamName(activityTeamInfoDetailModel.getName())
.productId(activityTeamInfoDetailModel.getProductId())
.productName(activityTeamInfoDetailModel.getProductName())
.productImage(activityTeamInfoDetailModel.getProductImage())
.introduction(activityTeamInfoDetailModel.getIntroduction())
.unit(activityTeamInfoDetailModel.getUnit())
.imageList(activityTeamInfoDetailModel.getImageList())
.endTime(activityTeamInfoDetailModel.getEndTime())
.sort(activityTeamInfoDetailModel.getSort())
.content(activityTeamInfoDetailModel.getContent())
.status(activityTeamInfoDetailModel.getStatus())
.strategyId(activityTeamInfoDetailModel.getStrategyId())
.strategyType(activityTeamInfoDetailModel.getStrategyType())
.skuList(activityTeamInfoDetailModel.getSkuList())
.build();
}
}

View File

@ -0,0 +1,36 @@
package com.muyu.marketing.domain.resp;
import com.muyu.marketing.domain.model.ActivityTeamProjectSkuModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.poi.hpsf.Decimal;
import java.math.BigDecimal;
/**
* @Author ?
* @Date 2024/11/26 16:23
*
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TeamProjectSkuResp {
private Long id;
private String sku;
private BigDecimal teamPrice;
private Long teamStock;
public static TeamProjectSkuResp buildModel(ActivityTeamProjectSkuModel sku) {
return TeamProjectSkuResp.builder()
.id(sku.getId())
.sku(sku.getSku())
.teamPrice(sku.getTeamPrice())
.teamStock(sku.getTeamStock())
.build();
}
}

View File

@ -4,16 +4,16 @@ 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.ActivityTeamInfoAddModel; 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.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq; import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq;
import com.muyu.marketing.domain.req.TeamInfoListReq; import com.muyu.marketing.domain.req.TeamInfoListReq;
import com.muyu.marketing.domain.resp.ActivityTeamInfoDetailResp;
import com.muyu.marketing.domain.resp.TeamInfoListResp; import com.muyu.marketing.domain.resp.TeamInfoListResp;
import com.muyu.marketing.domain.resp.TeamProjectSkuResp;
import com.muyu.marketing.team.service.ActivityTeamInfoService; import com.muyu.marketing.team.service.ActivityTeamInfoService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
@ -28,10 +28,12 @@ import java.util.List;
public class ActivityTeamController { public class ActivityTeamController {
@Autowired @Autowired
private ActivityTeamInfoService activityTeamInfoService;; private ActivityTeamInfoService activityTeamInfoService;
;
/** /**
* *
*
* @param teamInfoListReq * @param teamInfoListReq
* @return * @return
*/ */
@ -40,7 +42,7 @@ public class ActivityTeamController {
TableDataInfo<ActivityTeamInfoListModel> tableDataInfo = activityTeamInfoService.query(teamInfoListReq.buildQueryModel()); TableDataInfo<ActivityTeamInfoListModel> tableDataInfo = activityTeamInfoService.query(teamInfoListReq.buildQueryModel());
List<TeamInfoListResp> respList = tableDataInfo.getRows().stream().map(TeamInfoListResp::listModelBuild).toList(); List<TeamInfoListResp> respList = tableDataInfo.getRows().stream().map(TeamInfoListResp::listModelBuild).toList();
return Result.success( return Result.success(
new TableDataInfo<>(){{ new TableDataInfo<>() {{
setRows(respList); setRows(respList);
setTotal(tableDataInfo.getTotal()); setTotal(tableDataInfo.getTotal());
}} }}
@ -50,6 +52,7 @@ public class ActivityTeamController {
/** /**
* *
*
* @param activityTeamInfoSaveReq * @param activityTeamInfoSaveReq
* @return * @return
*/ */
@ -58,4 +61,16 @@ public class ActivityTeamController {
activityTeamInfoService.save(ActivityTeamInfoAddModel.addReqBuild(activityTeamInfoSaveReq)); activityTeamInfoService.save(ActivityTeamInfoAddModel.addReqBuild(activityTeamInfoSaveReq));
return Result.success(); return Result.success();
} }
/**
* id
* @param teamId
* @return
*/
@GetMapping("getTeamInfoById/{teamId}")
public Result<ActivityTeamInfoDetailResp> getTeamInfoById(@PathVariable Long teamId) {
ActivityTeamInfoDetailModel detailModel = activityTeamInfoService.getTeamInfoById(teamId);
ActivityTeamInfoDetailResp detailResp = ActivityTeamInfoDetailResp.modelBuild(detailModel);
return Result.success(detailResp);
}
} }

View File

@ -4,16 +4,21 @@ 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.ActivityTeamInfoAddModel; 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.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel; import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import java.util.List; import java.util.List;
/**
* @author zhuyufeng
*/
public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> { public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
/** /**
* *
*
* @param activityTeamInfoListQueryModel * @param activityTeamInfoListQueryModel
* @return * @return
*/ */
@ -21,7 +26,16 @@ public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
/** /**
* *
*
* @param activityTeamInfoAddModel * @param activityTeamInfoAddModel
*/ */
public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel); public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel);
/**
* id
*
* @param teamId
* @return
*/
public ActivityTeamInfoDetailModel getTeamInfoById(Long teamId);
} }

View File

@ -5,6 +5,7 @@ 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.ActivityTeamProductSkuAddModel; import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.ActivityTeamProjectSkuModel;
import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel; import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.marketing.domain.model.TeamProductStockModel; import com.muyu.marketing.domain.model.TeamProductStockModel;
@ -41,4 +42,12 @@ public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeam
*/ */
public void batchSave(List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList); public void batchSave(List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList);
/**
* id
*
* @param teamId
* @return
*/
public List<ActivityTeamProjectSkuModel> getTeamProjectSkuByTeamId(Long teamId);
} }

View File

@ -4,15 +4,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.core.metadata.OrderItem;
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.domain.Result;
import com.muyu.common.core.exception.ServiceException; import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
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.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.model.*; import com.muyu.marketing.domain.model.*;
import com.muyu.marketing.domain.resp.TeamInfoListResp;
import com.muyu.marketing.domain.resp.TeamProjectSkuResp;
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;
import com.muyu.marketing.team.service.ActivityTeamOpenInfoService; import com.muyu.marketing.team.service.ActivityTeamOpenInfoService;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService; import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import com.muyu.product.cache.ProjectInfoCache;
import com.muyu.product.domain.ProjectInfo;
import com.muyu.product.domain.resp.ProjectDetailResp;
import com.muyu.product.remote.RemoteProjectInfoService;
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.util.Assert; import org.springframework.util.Assert;
@ -20,11 +28,12 @@ import org.springframework.util.Assert;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.stream.Collectors;
@Service @Service
public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMapper, ActivityTeamInfo> public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMapper, ActivityTeamInfo>
implements ActivityTeamInfoService { implements ActivityTeamInfoService {
@Autowired @Autowired
private ActivityTeamOpenInfoService activityTeamOpenInfoService; private ActivityTeamOpenInfoService activityTeamOpenInfoService;
@ -32,6 +41,9 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMap
@Autowired @Autowired
private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService; private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService;
@Autowired
private RemoteProjectInfoService remoteProjectInfoService;
@Override @Override
public TableDataInfo<ActivityTeamInfoListModel> query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) { public TableDataInfo<ActivityTeamInfoListModel> query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) {
@ -82,4 +94,23 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMap
teamProductSkuAddModelList.forEach(activityTeamProductSkuAddModel -> activityTeamProductSkuAddModel.setTeamId(activityTeamInfo.getId())); teamProductSkuAddModelList.forEach(activityTeamProductSkuAddModel -> activityTeamProductSkuAddModel.setTeamId(activityTeamInfo.getId()));
this.activityTeamProductSkuInfoService.batchSave(teamProductSkuAddModelList); this.activityTeamProductSkuInfoService.batchSave(teamProductSkuAddModelList);
} }
/**
* id
*
* @param teamId
* @return
*/
@Override
public ActivityTeamInfoDetailModel getTeamInfoById(Long teamId) {
//先查询活动信息
ActivityTeamInfo activityTeamInfo = this.getById(teamId);
//再查询绑定的商品名称
// Result<ProjectInfo> productInfo = remoteProjectInfoService.getInfo(activityTeamInfo.getId());
String productName = "123456";
//再查询商品sku信息
List<ActivityTeamProjectSkuModel> skus = activityTeamProductSkuInfoService.getTeamProjectSkuByTeamId(teamId);
return ActivityTeamInfoDetailModel.getTeamDetailBuild(activityTeamInfo,productName,
skus.stream().map(TeamProjectSkuResp::buildModel).collect(Collectors.toList()));
}
} }

View File

@ -5,8 +5,10 @@ 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.ActivityTeamProductSkuAddModel; import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.ActivityTeamProjectSkuModel;
import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel; import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.marketing.domain.model.TeamProductStockModel; import com.muyu.marketing.domain.model.TeamProductStockModel;
import com.muyu.marketing.domain.resp.TeamProjectSkuResp;
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;
@ -14,16 +16,12 @@ import com.muyu.product.domain.ProjectSkuInfo;
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 java.math.BigDecimal; import java.util.*;
import java.math.RoundingMode; import java.util.stream.Collectors;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
@Service @Service
public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityTeamProductSkuInfoMapper, ActivityTeamProductSkuInfo> public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityTeamProductSkuInfoMapper, ActivityTeamProductSkuInfo>
implements ActivityTeamProductSkuInfoService { implements ActivityTeamProductSkuInfoService {
@Autowired @Autowired
private ProjectSkuCache projectSkuCache; private ProjectSkuCache projectSkuCache;
@ -42,10 +40,10 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityT
Optional<TeamProductDiscountPriceModel> discountPriceModelOptional = teamProductSkuInfoList.stream() Optional<TeamProductDiscountPriceModel> discountPriceModelOptional = teamProductSkuInfoList.stream()
.map(activityTeamProductSkuInfo -> { .map(activityTeamProductSkuInfo -> {
ProjectSkuInfo projectSkuInfo = projectSkuCache.get(activityTeamProductSkuInfo.getProductId(), activityTeamProductSkuInfo.getProductSku()); ProjectSkuInfo projectSkuInfo = projectSkuCache.get(activityTeamProductSkuInfo.getProductId(), activityTeamProductSkuInfo.getProductSku());
return TeamProductDiscountPriceModel.of(projectSkuInfo.getPrice(), activityTeamProductSkuInfo.getTeamPrice()); return TeamProductDiscountPriceModel.buildTeamProductDiscountPrice(projectSkuInfo.getPrice(), activityTeamProductSkuInfo.getTeamPrice());
}).min((o1, o2) -> Double.valueOf(o1.getDiscount() * 100 - o2.getDiscount() * 100).intValue()); }).min((o1, o2) -> Double.valueOf(o1.getDiscount() * 100 - o2.getDiscount() * 100).intValue());
if (discountPriceModelOptional.isEmpty()){ if (discountPriceModelOptional.isEmpty()) {
throw new ServiceException("团购活动下没有商品绑定"); throw new ServiceException("团购活动下没有商品绑定");
} }
return discountPriceModelOptional.get(); return discountPriceModelOptional.get();
@ -80,4 +78,27 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityT
activityTeamProductSkuAddModelList.stream().map(ActivityTeamProductSkuInfo::modelBuild).toList() activityTeamProductSkuAddModelList.stream().map(ActivityTeamProductSkuInfo::modelBuild).toList()
); );
} }
/**
* idSKU
*
* @param teamId
* @return SKU
*/
@Override
public List<ActivityTeamProjectSkuModel> getTeamProjectSkuByTeamId(Long teamId) {
//根据活动ID查询团购商品SKU
LambdaQueryWrapper<ActivityTeamProductSkuInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId, teamId);
List<ActivityTeamProductSkuInfo> list = this.list(queryWrapper);
// 将团购商品SKU集合转换成团购商品SKU模型集合
return list.stream()
.map(activityTeamProductSkuInfo -> ActivityTeamProjectSkuModel.builder()
.id(activityTeamProductSkuInfo.getId())
.sku(activityTeamProductSkuInfo.getProductSku())
.teamPrice(activityTeamProductSkuInfo.getTeamPrice())
.teamStock(activityTeamProductSkuInfo.getTeamStock())
.build())
.toList();
}
} }

View File

@ -6,7 +6,7 @@ server:
spring: spring:
application: application:
# 应用名称 # 应用名称
name: muyu-marketing name: muyu-team
profiles: profiles:
# 环境配置 # 环境配置
active: dev active: dev
@ -14,10 +14,10 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -22,6 +22,9 @@ import org.springframework.web.bind.annotation.PathVariable;
public interface RemoteProjectInfoService { public interface RemoteProjectInfoService {
/** /**
* *
*
* @param id
* @return
*/ */
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public Result<ProjectInfo> getInfo(@PathVariable("id") Long id) ; public Result<ProjectInfo> getInfo(@PathVariable("id") Long id) ;

View File

@ -14,10 +14,10 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -14,10 +14,10 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 127.0.0.1:8848 server-addr: 101.35.234.240:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置