Merge branch '1125/liuheping' into 1127/liuheping

# Conflicts:
#	doc/团购查询单条数据结构.java
#	muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java
#	muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddModel.java
#	muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoAddReq.java
#	muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamController.java
#	muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java
#	muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java
1127/liuheping
刘河平 2024-11-27 11:07:00 +08:00
commit 3aee63815e
13 changed files with 257 additions and 28 deletions

View File

@ -22,7 +22,7 @@ public class ActivityTeamInfo extends BaseEntity {
* *
*/ */
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private long id; private Long id;
/** /**
* *
*/ */
@ -30,7 +30,7 @@ public class ActivityTeamInfo extends BaseEntity {
/** /**
* ID * ID
*/ */
private long productId; private Long productId;
/** /**
* *
*/ */
@ -54,7 +54,7 @@ public class ActivityTeamInfo extends BaseEntity {
/** /**
* *
*/ */
private long sort; private Long sort;
/** /**
* *
*/ */
@ -70,7 +70,7 @@ public class ActivityTeamInfo extends BaseEntity {
/** /**
* ID * ID
*/ */
private long strategyId; private Long strategyId;
/** /**
* *

View File

@ -22,11 +22,11 @@ public class ActivityTeamProductSkuInfo extends BaseEntity {
* *
*/ */
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private long id; private Long id;
/** /**
* ID * ID
*/ */
private long teamId; private Long teamId;
/** /**
* ID * ID
*/ */
@ -60,6 +60,6 @@ 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,41 @@
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 ActivityProductSkuListModel {
/**
* id
*/
private Long id;
/**
* id
*/
private Long skuId;
/**
* id
*/
private Long productId;
/**
* SKU
*/
private String sku;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
}

View File

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

View File

@ -36,7 +36,6 @@ public class ActivityTeamInfoSaveReq extends BaseEntity {
/** /**
* *
*/ */
private String unit; private String unit;
/** /**
* *
@ -51,7 +50,7 @@ public class ActivityTeamInfoSaveReq extends BaseEntity {
/** /**
* *
*/ */
private Integer sort; private Long sort;
/** /**
* SkU * SkU
*/ */
@ -72,4 +71,6 @@ public class ActivityTeamInfoSaveReq extends BaseEntity {
* ID * ID
*/ */
private Long strategyId; private Long strategyId;
} }

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,81 @@
package com.muyu.marketing.domain.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
*
*
* @author DongZeLiang
* @date 2024-11-26 09:38
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamInfoDetailResp {
/**
* 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 List<ActivityTeamProductSkuResp> ActivityTeamProductSkuList;
/**
*
*/
private String content;
/**
*
*/
private String status;
/**
*
*/
private String strategyType;
/**
* ID
*/
private Long strategyId;
}

View File

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

View File

@ -3,9 +3,7 @@ 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.ActivityTeamInfoListModel; import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
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.TeamInfoListResp; import com.muyu.marketing.domain.resp.TeamInfoListResp;
import com.muyu.marketing.team.service.ActivityTeamInfoService; import com.muyu.marketing.team.service.ActivityTeamInfoService;
@ -46,16 +44,4 @@ public class ActivityTeamController {
}} }}
); );
} }
/**
*
* @param activityTeamInfoSaveReq
* @return
*/
@PostMapping
public Result<String> save(@RequestBody ActivityTeamInfoSaveReq activityTeamInfoSaveReq) {
activityTeamInfoService.save(ActivityTeamInfoAddModel.addReqBuild(activityTeamInfoSaveReq));
return Result.success();
}
} }

View File

@ -0,0 +1,28 @@
package com.muyu.marketing.team.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.marketing.domain.model.ActivityProductSkuListModel;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("sku")
public class ActivityTeamProductSkuController {
@Autowired
private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService;
/**
*
*/
@GetMapping("getById/{teamId}")
public Result<List<ActivityProductSkuListModel>> getById(@PathVariable Long teamId){
return Result.success(activityTeamProductSkuInfoService.getTeamProductSkuInfoListByTeamId(teamId));
}
}

View File

@ -6,6 +6,7 @@ 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.ActivityTeamInfoListModel; import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel; import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.marketing.domain.resp.ActivityTeamInfoDetailResp;
import java.util.List; import java.util.List;
@ -24,4 +25,11 @@ public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
* @param activityTeamInfoAddModel * @param activityTeamInfoAddModel
*/ */
public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel); public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel);
/**
* id
*/
ActivityTeamInfoDetailResp getActivityByTeamId(Long teamId);
} }

View File

@ -6,14 +6,19 @@ 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.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.utils.bean.BeanUtils;
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.ActivityTeamInfoDetailResp;
import com.muyu.marketing.domain.resp.ActivityTeamProductSkuResp;
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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -24,13 +29,16 @@ import java.util.function.Consumer;
@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;
@Autowired @Autowired
private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService; private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService;
// @Autowired
// private ActivityTeamInfoMapper activityTeamInfoMapper;
@Override @Override
public TableDataInfo<ActivityTeamInfoListModel> query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) { public TableDataInfo<ActivityTeamInfoListModel> query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) {
@ -82,4 +90,44 @@ 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 ActivityTeamInfoDetailResp getActivityByTeamId(Long teamId) {
//根据id查询活动详情
ActivityTeamInfo activityTeamInfo = getById(teamId);
//封装活动详情
ActivityTeamInfoDetailResp activityTeamInfoDetailResp = new ActivityTeamInfoDetailResp();
List<ActivityTeamProductSkuResp> activityTeamProductSkuList = activityTeamInfoDetailResp.getActivityTeamProductSkuList();
//根据活动id查询活动商品SKU集合
List<ActivityProductSkuListModel> teamProductSkuInfoList = activityTeamProductSkuInfoService.getTeamProductSkuInfoListByTeamId(teamId);
if (teamProductSkuInfoList != null) {
//定义一个空集合
ArrayList<ActivityTeamProductSkuResp> activityProductSkuList = new ArrayList<>();
for (ActivityProductSkuListModel activityProductSkuListModel : teamProductSkuInfoList) {
Long id = activityProductSkuListModel.getId();
//根据id查询
ActivityTeamProductSkuInfo activityTeamProductSkuInfo = activityTeamProductSkuInfoService.getById(id);
//添加到集合中
activityProductSkuList.add(
ActivityTeamProductSkuResp.builder()
.id(activityTeamProductSkuInfo.getId())
.sku(activityTeamProductSkuInfo.getProductSku())
.teamPrice(activityTeamProductSkuInfo.getTeamPrice())
.teamStock(activityTeamProductSkuInfo.getTeamStock())
.build()
);
}
activityTeamInfoDetailResp.setActivityTeamProductSkuList(activityProductSkuList);
BeanUtils.copyBeanProp(activityTeamInfoDetailResp, activityTeamInfo);
}
return activityTeamInfoDetailResp;
}
} }

View File

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