Compare commits

...

No commits in common. "1127/cloud-server" and "main" have entirely different histories.

168 changed files with 2011 additions and 4231 deletions

View File

@ -0,0 +1,29 @@
{
"拼团活动Id": "Long",
"商品ID": "Long",
"商品图片": "String",
"活动名称": "String",
"活动简介": "String",
"商品单位": "String",
"商品的轮播图": [
"String", "String"
],
"活动时间": "date",
"策略类型": "String",
"策略ID": "Long",
"商品规格List": [{
"规格SKUid": "Long",
"拼团价格": "BigDecimal",
"拼团库存": "Long"
}],
"商品规格List": [{
"规格SKUid": "Long"
}],
"商品规格List": [{
"拼团价格": "BigDecimal",
"拼团库存": "Long"
}],
"排序": "Integer",
"详情": "String",
"活动状态":"Long"
}

View File

@ -0,0 +1,24 @@
$.{
"活动ID": "Long",
"商品ID": "Long", //activity_team_info.product_id
"商品图片": "String",
"活动名称": "String",
"活动简介": "String",
"商品单位": "String",
"商品的轮播图": [
"String", "String"
],
"活动时间": "date",
"策略类型": "String",
"策略ID": "Long",
"商品规格List": [ // activity_team_product_sku_info
{
"活动商品规格ID": "Long",
"规格SKU": "String", // activity_team_product_sku_info.product_sku
"拼团价格": "BigDecimal",
"拼团库存": "Long"
}
],
"排序": "Integer",
"详情": "String"
}

View File

@ -0,0 +1,24 @@
{
"拼团ID": "Long",
"商品ID": "Long",
"商品图片": "String",
"活动名称": "String",
"活动简介": "String",
"商品单位": "String",
"商品的轮播图": [
"String", "String"
],
"活动时间": "date",
"策略类型": "String",
"策略ID": "Long",
"商品规格List": [
{
"规格Id": "Long",
"规格SKU": "String",
"拼团价格": "BigDecimal",
"拼团库存": "Long"
}
],
"排序": "Integer",
"详情": "String"
}

View File

@ -0,0 +1,32 @@
{
"活动ID": "Long",
"商品ID": "Long",
"活动名称": "String",
"商品名称": "String",
"商品图片": "String",
"活动简介": "String",
"商品单位": "String",
"商品的轮播图": [
"String", "String"
],
"活动时间": "date",
"策略类型": "String",
"商品规格": {
"修改商品规格List": [ // 修改
{
"团购规格ID": "Long",
"拼团价格": "BigDecimal",
"拼团库存": "Long"
}
],
"删除商品规格IdList" : ["Long", "Long"],
"添加商品规格List": [
"商品SKU": "String",
"商品价格": "BigDecimal",
"拼团价格": "BigDecimal",
"拼团库存": "Long"
]
},
"详情": "String"
}

View File

@ -0,0 +1,47 @@
$.{
"商品ID": "Long", //activity_team_info.product_id
"商品图片": "String",
"活动名称": "String",
"活动简介": "String",
"商品单位": "String",
"商品的轮播图": [
"String", "String"
],
"活动时间": "date",
"策略类型": "String",
"策略ID": "Long",
"商品规格List": [ // activity_team_product_sku_info
{
"规格SKU": "String", // activity_team_product_sku_info.product_sku
"拼团价格": "BigDecimal",
"拼团库存": "Long"
}
],
"排序": "Integer",
"详情": "String"
}
activity_team_info -> ActivityTeamInfo()
activity_team_info.id() -> -> -> ActivityTeamInfo.id
activity_team_info.name() <- ActivityTeamInfo.name <- $.
activity_team_info.product_id(ID) <- ActivityTeamInfo.productId <- $.ID
activity_team_info.product_image() <- ActivityTeamInfo.productImage <- $.
activity_team_info.introduction() <- ActivityTeamInfo.introduction <- $.
activity_team_info.unit() <- ActivityTeamInfo.unit <- $.
activity_team_info.image_list() <- ActivityTeamInfo.imageList <- .toString(",") <- $.
activity_team_info.end_time() <- ActivityTeamInfo.endTime <- $.
activity_team_info.sort() <- ActivityTeamInfo.sort <- $.
activity_team_info.content() <- ActivityTeamInfo.content <- $.
activity_team_info.status() <- _sys_normal_disable.1()
activity_team_info.strategy_type() <- ActivityTeamInfo.strategy_type <- $.
activity_team_info.strategy_id(ID) <- ActivityTeamInfo.strategy_id <- $.ID
for(@ in List)
activity_team_product_sku_info -> ActivityTeamProductSkuInfo()
activity_team_product_sku_info.id() -> -> -> ActivityTeamProductSkuInfo.id
activity_team_product_sku_info.team_id(ID) <- ActivityTeamProductSkuInfo.teamId <- ActivityTeamInfo.id
activity_team_product_sku_info.product_id(ID) <- ActivityTeamProductSkuInfo.productId < $.ID
activity_team_product_sku_info.product_sku(SKU) <- ActivityTeamProductSkuInfo.productSku <- @.SKU
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

@ -1,22 +0,0 @@
{
"team": {
"商品Id":"Long",
"商品图片":"String",
"拼团活动名称":"String",
"拼团活动简介":"String",
"商品单位":"String",
"商品轮播图":[
"图片路径":"String",
],
"活动时间":"Date",
"策略类型":"String",
"策略ID":"Long",
"规格":[{
规格SKU:"String",
"拼团价格":"BigDecimal",
"拼团库存":"Long"
}],
"排序":"Integer",
"商品详情":"text"
}
}

24
doc/策略.md 100644
View File

@ -0,0 +1,24 @@
# 功能划分
# 普通团
商品列表
商品详情
去参团
开团列表
参团成功
邀请参团
拼团成功 查看订单
拼团失败 重新开团
开团成功
邀请参团
拼团成功 查看订单
拼团失败 重新开团
# 百人团
1.商品详情
2.评价接口
3.拼团人数
4.开团列表
5.收藏接口

View File

@ -1,32 +0,0 @@
package com.muyu.common.core.enums;
/**
* @program: cloud-server
* @description:
* @author: CuiFu Bo
* @create: 2024-11-21 15:12
**/
public enum TeamOpenTypeEnums {
OPEN_TEAM("open_team","开团"),
IN_TEAM("in_team","参团");
private final String code;
private final String label;
public String code() {
return code;
}
public String label() {
return label;
}
TeamOpenTypeEnums(String code, String label) {
this.code = code;
this.label = label;
}
}

View File

@ -0,0 +1,33 @@
package com.muyu.common.core.enums.market.team;
/**
*
*
* @author DongZeLiang
* @date 2024-11-21 11:20
*/
public enum TeamOpenTypeEnum {
// 开团
OPEN_TEAM("open_team", "开团"),
// 参团
IN_TEAM("in_team", "参团")
;
private final String code;
private final String label;
TeamOpenTypeEnum(String code, String label) {
this.code = code;
this.label = label;
}
public String code() {
return code;
}
public String label() {
return label;
}
}

View File

@ -1,5 +1,6 @@
package com.muyu.common.core.web.model;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.muyu.common.core.web.page.PageDomain;
@ -11,17 +12,17 @@ import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @program: cloud-server
* @description:
* @author: CuiFu Bo
* @create: 2024-11-20 20:27
**/
*
*
* @author DongZeLiang
* @date 2024-11-20 14:18
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
public class QueryModel<T> {
/**
*
*/
@ -40,18 +41,18 @@ public class QueryModel<T> {
/**
* descasc
*/
private Boolean isAsc = true;
private boolean isAsc = true;
/**
*
* @param pageDomain
* @return
* @return
*/
public T domainBuild(PageDomain pageDomain){
public T domainBuild(PageDomain pageDomain) {
this.pageNum = pageDomain.getPageNum();
this.pageSize = pageDomain.getPageSize();
this.orderByColumn = pageDomain.getOrderByColumn();
this.isAsc = "ase".equals(pageDomain.getIsAsc());
this.isAsc = "asc".equals(pageDomain.getIsAsc());
return (T) this;
}
@ -59,12 +60,10 @@ public class QueryModel<T> {
*
* @return
*/
public <I> Page<I> bulidPage(){
public <I> Page<I> buildPage(){
Page<I> page = Page.of(this.getPageNum(), this.getPageSize());
page.setOrders(List.of(this.isAsc
? OrderItem.asc(this.getOrderByColumn()):OrderItem.desc(this.getOrderByColumn())));
return page;
page.setOrders(List.of(this.isAsc()
? OrderItem.asc(this.getOrderByColumn()) : OrderItem.desc(this.getOrderByColumn())));
return page;
}
}

View File

@ -1,8 +1,9 @@
package com.muyu.common.core.web.page;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.web.model.QueryModel;
import lombok.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
@ -12,8 +13,8 @@ import lombok.experimental.SuperBuilder;
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
public class PageDomain {
/**
*
@ -47,9 +48,6 @@ public class PageDomain {
return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc;
}
public String getIsAsc () {
return isAsc;
}
public void setIsAsc (String isAsc) {
if (StringUtils.isNotEmpty(isAsc)) {
@ -70,7 +68,4 @@ public class PageDomain {
return reasonable;
}
public void setReasonable (Boolean reasonable) {
this.reasonable = reasonable;
}
}

View File

@ -1,6 +1,9 @@
package com.muyu.common.core.web.page;
import lombok.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.poi.ss.formula.functions.T;
import java.io.Serializable;

View File

@ -0,0 +1,33 @@
package com.muyu.common.security.config.mybatisplus;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.muyu.common.security.utils.SecurityUtils;
import lombok.extern.log4j.Log4j2;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
*
*/
@Log4j2
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
public MyMetaObjectHandler () {
log.info("mybatis-plus 系统字段填充拦截器 初始化成功");
}
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createBy", SecurityUtils.getUsername(), metaObject);
this.setFieldValByName("createTime", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateBy", SecurityUtils.getUsername(), metaObject);
this.setFieldValByName("updateTime", new Date(),metaObject);
}
}

View File

@ -3,7 +3,6 @@ package com.muyu.common.security.config.mybatisplus;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -16,7 +15,8 @@ public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加
// 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
return interceptor;
}
}

View File

@ -1,6 +1,5 @@
package com.muyu.gateway.config.properties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
@ -57,4 +56,3 @@ public class CorsConfig
}
}

View File

@ -9,17 +9,21 @@
<version>3.6.3</version>
</parent>
<artifactId>muyu-marketing-common</artifactId>
<artifactId>marketing-common</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 系统公共core -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-core</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -1,25 +1,24 @@
package com.muyu.domain;
package com.muyu.marketing.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.domain.model.ActivityTeamInfoAddModel;
import com.muyu.domain.model.ActivityTeamInfoSaveModel;
import com.muyu.domain.model.ActivityTeamInfoUpdModel;
import com.muyu.domain.req.ActivityTeamInfoSaveReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
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.ActivityTeamInfoSaveModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoUpdModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@SuperBuilder
@NoArgsConstructor
public class ActivityTeamInfo {
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "activity_team_info", autoResultMap = true)
public class ActivityTeamInfo extends BaseEntity {
/**
*
@ -96,21 +95,6 @@ public class ActivityTeamInfo {
.strategyId(activityTeamInfoAddModel.getStrategyId())
.build();
}
public static ActivityTeamInfo buildModel(ActivityTeamInfoSaveReq activityTeamInfoSaveReq){
String images = activityTeamInfoSaveReq.getImageList().toString();
return ActivityTeamInfo.builder()
.productId(activityTeamInfoSaveReq.getProjectId())
.productImage(activityTeamInfoSaveReq.getProjectImage())
.unit(activityTeamInfoSaveReq.getUnit())
.imageList(images)
.name(activityTeamInfoSaveReq.getName())
.introduction(activityTeamInfoSaveReq.getIntroduction())
.endTime(activityTeamInfoSaveReq.getEndTime())
.strategyId(activityTeamInfoSaveReq.getStrategyId())
.strategyType(activityTeamInfoSaveReq.getStrategyType())
.sort(activityTeamInfoSaveReq.getSort())
.build();
}
public static ActivityTeamInfo teamSaveBuild(ActivityTeamInfoSaveModel activityTeamInfoSaveModel) {
return ActivityTeamInfo.builder()

View File

@ -0,0 +1,87 @@
package com.muyu.marketing.domain;
import com.baomidou.mybatisplus.annotation.IdType;
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.ActivityTeamOpenInfoAddModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.Date;
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "activity_team_open_info", autoResultMap = true)
public class ActivityTeamOpenInfo extends BaseEntity {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private long id;
/**
* ID
*/
private long teamId;
/**
*
*/
private String teamType;
/**
*
*/
private String teamStrategyId;
/**
*
*/
private String executiveType;
/**
*
*/
private Date endTime;
/**
* ID
*/
private String productId;
/**
*
*/
private String productName;
/**
*
*/
private String productSku;
/**
*
*/
private String key;
/**
* ID
*/
private String orderId;
/**
*
*/
private String status;
public static ActivityTeamOpenInfo addBuildModel(ActivityTeamOpenInfoAddModel activityTeamOpenInfoAddModel){
return ActivityTeamOpenInfo.builder()
.id(activityTeamOpenInfoAddModel.getId())
.teamId(activityTeamOpenInfoAddModel.getTeamId())
.teamType(activityTeamOpenInfoAddModel.getTeamType())
.teamStrategyId(activityTeamOpenInfoAddModel.getTeamStrategyId())
.executiveType(activityTeamOpenInfoAddModel.getExecutiveType())
.endTime(activityTeamOpenInfoAddModel.getEndTime())
.productId(activityTeamOpenInfoAddModel.getProductId())
.productName(activityTeamOpenInfoAddModel.getProductName())
.productSku(activityTeamOpenInfoAddModel.getProductSku())
.key(activityTeamOpenInfoAddModel.getKey())
.orderId(activityTeamOpenInfoAddModel.getOrderId())
.status(activityTeamOpenInfoAddModel.getStatus())
.build();
}
}

View File

@ -1,22 +1,26 @@
package com.muyu.domain;
package com.muyu.marketing.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.domain.model.ActivityTeamProductSkuReqModel;
import com.muyu.domain.model.ActivityTeamProductSkuUpdModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
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.ActivityTeamProductSkuModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuReqModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuUpdModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
@Data
@Builder
@AllArgsConstructor
@SuperBuilder
@NoArgsConstructor
public class ActivityTeamProductSkuInfo {
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "activity_team_product_sku_info", autoResultMap = true)
public class ActivityTeamProductSkuInfo extends BaseEntity {
/**
*
*/

View File

@ -1,19 +1,24 @@
package com.muyu.domain;
package com.muyu.marketing.domain;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.SuperBuilder;
@Data
@Builder
@AllArgsConstructor
@SuperBuilder
@NoArgsConstructor
public class TeamStrategyExemption {
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption", autoResultMap = true)
public class TeamStrategyExemption extends BaseEntity {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private long id;
/**
*
@ -47,5 +52,4 @@ public class TeamStrategyExemption {
*
*/
private String status;
}

View File

@ -0,0 +1,47 @@
package com.muyu.marketing.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.SuperBuilder;
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption_hundred", autoResultMap = true)
public class TeamStrategyHundred extends BaseEntity {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private long id;
/**
*
*/
private long duration;
/**
*
*/
private long maxBuy;
/**
*
*/
private long oneBuy;
/**
*
*/
private long virtualNumber;
/**
*
*/
private String status;
/**
*
*/
private String ruleInfo;
}

View File

@ -0,0 +1,47 @@
package com.muyu.marketing.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.SuperBuilder;
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption_ordinary", autoResultMap = true)
public class TeamStrategyOrdinary extends BaseEntity {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private long id;
/**
*
*/
private long duration;
/**
*
*/
private long teamNumber;
/**
*
*/
private long maxBuy;
/**
*
*/
private long oneBuy;
/**
*
*/
private long virtualNumber;
/**
*
*/
private String status;
}

View File

@ -1,7 +1,7 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.ActivityTeamInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -82,7 +82,7 @@ public class ActivityTeamDetailModel {
*/
private Long strategyId;
public static ActivityTeamDetailModel findSkuSumList (ActivityTeamInfo activityTeamInfo,
Function<ActivityTeamDetailModelBuilder, ActivityTeamDetailModel> function){
Function<ActivityTeamDetailModel.ActivityTeamDetailModelBuilder, ActivityTeamDetailModel> function){
return function.apply(ActivityTeamDetailModel.builder()
.id(activityTeamInfo.getId())
.name(activityTeamInfo.getName())

View File

@ -1,14 +1,17 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.domain.ActivityTeamInfo;
import com.muyu.domain.resp.TeamInfoProductSkuIdByIdResp;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq;
import com.muyu.marketing.domain.resp.TeamInfoProductSkuIdByIdResp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.context.annotation.ApplicationScope;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ -38,6 +41,10 @@ public class ActivityTeamFindByIdModel {
* ID
*/
private long productId;
/**
*
*/
private BigDecimal price;
/**
*
*/
@ -84,7 +91,7 @@ public class ActivityTeamFindByIdModel {
private List<TeamInfoProductSkuIdByIdResp> teamProjectSkuInfoAddReqList;
public static ActivityTeamFindByIdModel findByIdModel(ActivityTeamInfo activityTeamInfo, List<TeamInfoProductSkuIdByIdResp> teamProjectSkuInfoAddReqList){
public static ActivityTeamFindByIdModel findByIdModel(ActivityTeamInfo activityTeamInfo,List<TeamInfoProductSkuIdByIdResp> teamProjectSkuInfoAddReqList){
return ActivityTeamFindByIdModel.builder()
.id(activityTeamInfo.getId())
.name(activityTeamInfo.getName())

View File

@ -0,0 +1,104 @@
package com.muyu.marketing.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**
*
*
* @author DongZeLiang
* @date 2024-11-26 09:38
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamInfoAddModel {
/**
*
*/
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 Long sort;
/**
* SkU
*/
private List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList;
/**
*
*/
private String content;
/**
*
*/
private String status;
/**
*
*/
private String strategyType;
/**
* ID
*/
private Long strategyId;
public static ActivityTeamInfoAddModel addReqBuild (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.getTeamProjectSkuInfoAddReqList()
.stream()
.map(addReq -> ActivityTeamProductSkuAddModel.addReqBuild(addReq, activityTeamInfoSaveReq::getProductId))
.toList()
).build();
}
}

View File

@ -1,30 +1,28 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.muyu.domain.ActivityTeamInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.muyu.common.core.web.model.QueryModel;
import com.muyu.marketing.domain.ActivityTeamInfo;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
import java.util.function.Consumer;
import java.util.function.Function;
/**
*
* @author: CuiFu Bo
* @create: 2024-11-20 19:59
**/
*
* @author DongZeLiang
* @date 2024-11-20 14:18:10
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamInfoListModel {
/**
* ID
* ID
*/
private Long id;
/**
@ -32,44 +30,62 @@ public class ActivityTeamInfoListModel {
*/
private String name;
/**
*
*
*/
private String productImage;
/**
*
*/
private BigDecimal teamPrice;
private Long addTeamNumber;
/**
*
*/
private Long attendNumber;
/**
*
*/
private Date endTime;
/**
*
*/
private Long openTeamNumber;
/**
*
*
*/
private Long addTeamNumber;
private String productImage;
/**
*
*
*/
private Long teamStock;
private BigDecimal productPrice;
/**
*
*/
private Long remainStock;
/**
*
*/
private Date endTime;
/**
*
*/
private String status;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
public static ActivityTeamInfoListModel infoBuild(ActivityTeamInfo activityTeamInfo, Function<ActivityTeamInfoListModel.ActivityTeamInfoListModelBuilder , ActivityTeamInfoListModel> function){
public static ActivityTeamInfoListModel infoBuild(ActivityTeamInfo activityTeamInfo, Function<ActivityTeamInfoListModel.ActivityTeamInfoListModelBuilder, ActivityTeamInfoListModel> function) {
ActivityTeamInfoListModel activityTeamInfoListModel = ActivityTeamInfoListModel.builder()
.id(activityTeamInfo.getId())
.name(activityTeamInfo.getName())
// .openTeamNumber(teamOpenTypeNumber)
// .addTeamNumber(teamInTypeNumber)
// .attendNumber(teamOpenTypeNumber + teamInTypeNumber)
.endTime(activityTeamInfo.getEndTime())
.productImage(activityTeamInfo.getProductImage())
// .teamPrice(discountPrice.getTeamPrice())
// .productPrice(discountPrice.getProductPrice())
// .teamStock(teamProductStockModel.getTeamStock())
// .remainStock(teamProductStockModel.getRemainStock())
.status(activityTeamInfo.getStatus())
.build();
return function.apply(
ActivityTeamInfoListModel.builder()
.id(activityTeamInfo.getId())
@ -79,4 +95,5 @@ public class ActivityTeamInfoListModel {
.status(activityTeamInfo.getStatus())
);
}
}

View File

@ -1,18 +1,21 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.muyu.common.core.web.model.QueryModel;
import lombok.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
* @author: CuiFu Bo
* @create: 2024-11-20 20:05
**/
*
* @author DongZeLiang
* @date 2024-11-20 14:18:10
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ActivityTeamInfoListQueryModel extends QueryModel<ActivityTeamInfoListQueryModel> {
@ -20,8 +23,10 @@ public class ActivityTeamInfoListQueryModel extends QueryModel<ActivityTeamInfoL
*
*/
private String keyWord;
/**
*
*
*/
private String status;
}

View File

@ -1,12 +1,14 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
/**
* @program: 2204a-cloud-server

View File

@ -1,12 +1,17 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.muyu.domain.req.ActivityTeamInfoUpdReq;
import com.muyu.marketing.domain.req.ActivityTeamInfoUpdReq;
import com.muyu.marketing.domain.req.ActivityTeamProductSkuSettingReq;
import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq;
import com.muyu.marketing.domain.req.TeamProjectSkuInfoUpdReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @program: 2204a-cloud-server

View File

@ -0,0 +1,91 @@
package com.muyu.marketing.domain.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.marketing.domain.req.ActivityTeamOpenInfoAdReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
*
*
* @author CuiFu Bo
* @create 2024-12-01 20:24
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivityTeamOpenInfoAddModel {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private long id;
/**
* ID
*/
private long teamId;
/**
*
*/
private String teamType;
/**
*
*/
private String teamStrategyId;
/**
*
*/
private String executiveType;
/**
*
*/
private Date endTime;
/**
* ID
*/
private String productId;
/**
*
*/
private String productName;
/**
*
*/
private String productSku;
/**
*
*/
private String key;
/**
* ID
*/
private String orderId;
/**
*
*/
private String status;
public static ActivityTeamOpenInfoAddModel addOpenBuild(ActivityTeamOpenInfoAdReq activityTeamOpenInfoAdReq){
return ActivityTeamOpenInfoAddModel.builder()
.id(activityTeamOpenInfoAdReq.getId())
.teamId(activityTeamOpenInfoAdReq.getTeamId())
.teamType(activityTeamOpenInfoAdReq.getTeamType())
.teamStrategyId(activityTeamOpenInfoAdReq.getTeamStrategyId())
.executiveType(activityTeamOpenInfoAdReq.getExecutiveType())
.endTime(activityTeamOpenInfoAdReq.getEndTime())
.productId(activityTeamOpenInfoAdReq.getProductId())
.productName(activityTeamOpenInfoAdReq.getProductName())
.productSku(activityTeamOpenInfoAdReq.getProductSku())
.key(activityTeamOpenInfoAdReq.getKey())
.orderId(activityTeamOpenInfoAdReq.getOrderId())
.status(activityTeamOpenInfoAdReq.getStatus())
.build();
}
}

View File

@ -1,13 +1,14 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.muyu.domain.req.TeamProjectSkuInfoAddReq;
import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.function.Function;
import java.util.function.Supplier;
/**

View File

@ -1,4 +1,4 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,7 +1,7 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.muyu.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.resp.ProjectFindSkuInfoResp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@ -1,6 +1,6 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.muyu.domain.req.ActivityTeamProductSkuReq;
import com.muyu.marketing.domain.req.ActivityTeamProductSkuReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@ -1,7 +1,7 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.muyu.domain.req.ActivityTeamProductSkuSettingReq;
import com.muyu.marketing.domain.req.ActivityTeamProductSkuSettingReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@ -1,7 +1,7 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import com.muyu.domain.req.TeamProjectSkuInfoUpdReq;
import com.muyu.marketing.domain.req.TeamProjectSkuInfoUpdReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@ -0,0 +1,55 @@
package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
*
*
* @author DongZeLiang
* @date 2024-11-21 11:57
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TeamProductDiscountPriceModel {
/**
*
*/
private BigDecimal productPrice;
/**
*
*/
private BigDecimal teamPrice;
/**
* - /
*/
private double discount;
/**
*
* @param productPrice
* @param teamPrice
* @return
*/
public static TeamProductDiscountPriceModel of(BigDecimal productPrice, BigDecimal teamPrice) {
return TeamProductDiscountPriceModel.builder()
.productPrice(productPrice)
.teamPrice(teamPrice)
.discount(
Double.valueOf(productPrice.subtract(teamPrice).divide(productPrice, 2, RoundingMode.HALF_UP).doubleValue())
)
.build();
}
}

View File

@ -1,4 +1,5 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -6,22 +7,25 @@ import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
* @author: CuiFu Bo
* @create: 2024-11-21 16:54
**/
*
*
* @author DongZeLiang
* @date 2024-11-21 14:04
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
public class TeamProductStockModel {
/**
*
*
*/
private Long teamStock;
/**
*
*
*/
private Long remainStock;
}

View File

@ -1,7 +1,8 @@
package com.muyu.domain.req;
package com.muyu.marketing.domain.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -23,11 +24,11 @@ public class ActivityTeamInfoSaveReq extends BaseEntity {
/**
* ID
*/
private Long projectId;
private Long productId;
/**
*
*/
private String projectImage;
private String productImage;
/**
*
*/
@ -54,7 +55,7 @@ public class ActivityTeamInfoSaveReq extends BaseEntity {
/**
* SkU
*/
private List<ActivityInfoSkuAddReq> teamProjectSkuInfoAddReqList;
private List<TeamProjectSkuInfoAddReq> teamProjectSkuInfoAddReqList;
/**
*
*/

View File

@ -1,4 +1,4 @@
package com.muyu.domain.req;
package com.muyu.marketing.domain.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @program: 2204a-cloud-server

View File

@ -0,0 +1,76 @@
package com.muyu.marketing.domain.req;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.marketing.domain.model.ActivityTeamOpenInfoAddModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
*
*
* @author CuiFu Bo
* @create 2024-12-01 20:28
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivityTeamOpenInfoAdReq {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private long id;
/**
* ID
*/
private long teamId;
/**
*
*/
private String teamType;
/**
*
*/
private String teamStrategyId;
/**
*
*/
private String executiveType;
/**
*
*/
private Date endTime;
/**
* ID
*/
private String productId;
/**
*
*/
private String productName;
/**
*
*/
private String productSku;
/**
*
*/
private String key;
/**
* ID
*/
private String orderId;
/**
*
*/
private String status;
}

View File

@ -1,6 +1,7 @@
package com.muyu.domain.req;
package com.muyu.marketing.domain.req;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@ -1,18 +1,14 @@
package com.muyu.domain.req;
package com.muyu.marketing.domain.req;
import com.muyu.common.core.web.page.PageDomain;
import com.muyu.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
/**
*
* @Date2024.11.20 19:49
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TeamInfoListReq extends PageDomain {
@ -20,16 +16,18 @@ public class TeamInfoListReq extends PageDomain {
*
*/
private String keyWord;
/**
*
*
*/
private String status;
/**
*
* @return
*/
public ActivityTeamInfoListQueryModel buildQueryModel(){
public ActivityTeamInfoListQueryModel buildQueryModel() {
return ActivityTeamInfoListQueryModel.builder()
.keyWord(this.keyWord)
.status(this.status)

View File

@ -1,7 +1,8 @@
package com.muyu.domain.resp;
package com.muyu.marketing.domain.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;

View File

@ -1,28 +1,35 @@
package com.muyu.domain.model;
package com.muyu.marketing.domain.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
*
*
* @author CuiFu Bo
* @create 2024-12-04 19:05
* @create 2024-12-01 20:27
**/
@Data
@SuperBuilder
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivityTeamOpenInfoAddModel {
public class ActivityTeamOpenInfoAddResp {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private long id;
/**
* ID
*/
private Long teamId;
private long teamId;
/**
*
*/
@ -30,7 +37,7 @@ public class ActivityTeamOpenInfoAddModel {
/**
*
*/
private Long teamStrategyId;
private String teamStrategyId;
/**
*
*/
@ -38,12 +45,11 @@ public class ActivityTeamOpenInfoAddModel {
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* ID
*/
private Long productId;
private String productId;
/**
*
*/
@ -55,15 +61,13 @@ public class ActivityTeamOpenInfoAddModel {
/**
*
*/
private String openkey;
private String key;
/**
* ID
*/
private Long orderId;
private String orderId;
/**
*
*/
private String status;
}

View File

@ -1,6 +1,8 @@
package com.muyu.domain.resp;
package com.muyu.marketing.domain.resp;
import com.muyu.domain.model.ActivityTeamProductSkuModel;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,8 +1,7 @@
package com.muyu.domain.resp;
package com.muyu.marketing.domain.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.domain.model.ActivityTeamDetailModel;
import com.muyu.marketing.domain.model.ActivityTeamDetailModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@ -1,12 +1,14 @@
package com.muyu.domain.resp;
package com.muyu.marketing.domain.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.domain.model.ActivityTeamFindByIdModel;
import com.muyu.marketing.domain.model.ActivityTeamFindByIdModel;
import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

View File

@ -1,7 +1,7 @@
package com.muyu.domain.resp;
package com.muyu.marketing.domain.resp;
import com.muyu.common.core.web.page.PageDomain;
import com.muyu.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.req.TeamInfoListReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -10,17 +10,14 @@ import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
*TeamInfoListResp
* @Date2024.11.20 19:47
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TeamInfoListResp {
@AllArgsConstructor
public class TeamInfoListResp {
/**
* ID
* ID
*/
private Long id;
/**
@ -28,56 +25,66 @@ public class TeamInfoListResp {
*/
private String name;
/**
*
*
*/
private String productImage;
/**
*
*/
private BigDecimal teamPrice;
private Long addTeamNumber;
/**
*
*/
private Long attendNumber;
/**
*
*/
private Date endTime;
/**
*
*/
private Long openTeamNumber;
/**
*
*
*/
private Long addTeamNumber;
private String productImage;
/**
*
*
*/
private Long teamStock;
private BigDecimal productPrice;
/**
*
*/
private Long remainStock;
/**
*
*/
private Date endTime;
/**
*
*/
private String status;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
public static TeamInfoListResp listModerBuild(ActivityTeamInfoListModel activityTeamInfoListModel){
/**
*
* @param activityTeamInfoListModel
* @return
*/
public static TeamInfoListResp listModelBuild(ActivityTeamInfoListModel activityTeamInfoListModel) {
return TeamInfoListResp.builder()
.id(activityTeamInfoListModel.getId())
.name(activityTeamInfoListModel.getName())
.productImage(activityTeamInfoListModel.getProductImage())
.teamPrice(activityTeamInfoListModel.getTeamPrice())
.attendNumber(activityTeamInfoListModel.getAttendNumber())
.openTeamNumber(activityTeamInfoListModel.getOpenTeamNumber())
.addTeamNumber(activityTeamInfoListModel.getAddTeamNumber())
.teamStock(activityTeamInfoListModel.getTeamStock())
.remainStock(activityTeamInfoListModel.getRemainStock())
.addTeamNumber(activityTeamInfoListModel.getAddTeamNumber())
.attendNumber(activityTeamInfoListModel.getAttendNumber())
.endTime(activityTeamInfoListModel.getEndTime())
.teamPrice(activityTeamInfoListModel.getTeamPrice())
.productImage(activityTeamInfoListModel.getProductImage())
.productPrice(activityTeamInfoListModel.getProductPrice())
.remainStock(activityTeamInfoListModel.getRemainStock())
.status(activityTeamInfoListModel.getStatus())
.teamStock(activityTeamInfoListModel.getTeamStock())
.build();
}
}

View File

@ -1,14 +1,16 @@
package com.muyu.domain.resp;
package com.muyu.marketing.domain.resp;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.domain.model.ActivityTeamProductSkuIdModel;
import com.muyu.marketing.domain.model.ActivityTeamFindByIdModel;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuIdModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List;
/**
*

View File

@ -9,7 +9,7 @@
<version>3.6.3</version>
</parent>
<artifactId>muyu-marketing-remote</artifactId>
<artifactId>marketing-remote</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
@ -17,4 +17,10 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>marketing-common</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -9,7 +9,7 @@
<version>3.6.3</version>
</parent>
<artifactId>muyu-marketing-server</artifactId>
<artifactId>marketing-server</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
@ -17,16 +17,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-product-cache</artifactId>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-marketing-common</artifactId>
<version>3.6.3</version>
</dependency>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
@ -92,12 +83,18 @@
<groupId>com.dtflys.forest</groupId>
<artifactId>forest-spring-boot-starter</artifactId>
</dependency>
<!-- 远程调用 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.3</version>
<groupId>com.muyu</groupId>
<artifactId>marketing-remote</artifactId>
</dependency>
<!-- 商品服务 缓存依赖 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-product-cache</artifactId>
</dependency>
</dependencies>
<build>
@ -124,5 +121,4 @@
</plugin>
</plugins>
</build>
</project>

View File

@ -1,4 +1,4 @@
package com.muyu.system.team;
package com.muyu.marketing;
import com.muyu.common.security.annotation.EnableCustomConfig;
import com.muyu.common.security.annotation.EnableMyFeignClients;

View File

@ -0,0 +1,81 @@
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.ActivityTeamInfo;
import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoUpdModel;
import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq;
import com.muyu.marketing.domain.req.ActivityTeamInfoUpdReq;
import com.muyu.marketing.domain.req.TeamInfoListReq;
import com.muyu.marketing.domain.resp.TeamInfoFindByIdResp;
import com.muyu.marketing.domain.resp.TeamInfoListResp;
import com.muyu.marketing.team.service.ActivityTeamInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
*
* @author DongZeLiang
* @date 2024-11-20 14:25
*/
@RestController
@RequestMapping("/team")
public class ActivityTeamController {
@Autowired
private ActivityTeamInfoService activityTeamInfoService;;
/**
*
* @param teamInfoListReq
* @return
*/
@PostMapping("/list")
public Result<TableDataInfo<TeamInfoListResp>> list(@RequestBody TeamInfoListReq teamInfoListReq) {
TableDataInfo<ActivityTeamInfoListModel> tableDataInfo = activityTeamInfoService.query(teamInfoListReq.buildQueryModel());
List<TeamInfoListResp> respList = tableDataInfo.getRows().stream().map(TeamInfoListResp::listModelBuild).toList();
return Result.success(
new TableDataInfo<>(){{
setRows(respList);
setTotal(tableDataInfo.getTotal());
}}
);
}
/**
*
* @param activityTeamInfoSaveReq
* @return
*/
@PostMapping
public Result<String> save(@RequestBody ActivityTeamInfoSaveReq activityTeamInfoSaveReq) {
activityTeamInfoService.save(ActivityTeamInfoAddModel.addReqBuild(activityTeamInfoSaveReq));
return Result.success();
}
@PostMapping("/findById/{id}")
public Result<TeamInfoFindByIdResp> findTeamById(@PathVariable Long id){
return Result.success(TeamInfoFindByIdResp.teamInfoFindByIdBuild(activityTeamInfoService.findDetailById(id)));
}
@PutMapping("/updateByTeamId")
public Result updateByTeamId(@RequestBody ActivityTeamInfoUpdReq activityTeamInfoUpdReq){
activityTeamInfoService.update(ActivityTeamInfoUpdModel.activityTeamInfoUpdReqModelBuild(activityTeamInfoUpdReq));
return Result.success();
}
/**
* id
*/
@GetMapping("/teamList/{id}")
public Result<List<ActivityTeamInfo>> teamList(@PathVariable("id") Long id){
List<ActivityTeamInfo> activityTeamInfoList= activityTeamInfoService.teamList(id);
return Result.success(activityTeamInfoList);
}
}

View File

@ -0,0 +1,30 @@
package com.muyu.marketing.team.controller;
import com.dtflys.forest.annotation.Post;
import com.muyu.common.core.domain.Result;
import com.muyu.marketing.domain.model.ActivityTeamOpenInfoAddModel;
import com.muyu.marketing.domain.req.ActivityTeamOpenInfoAdReq;
import com.muyu.marketing.team.service.ActivityTeamOpenInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
*
* @author CuiFu Bo
* @create 2024-12-01 20:32
**/
@RestController
@RequestMapping("/open")
public class ActivityTeamOpenInfoController {
@Autowired
private ActivityTeamOpenInfoService activityTeamOpenInfoService;
@PostMapping("/install")
public Result<String> save(ActivityTeamOpenInfoAdReq activityTeamOpenInfoAdReq){
activityTeamOpenInfoService.save(ActivityTeamOpenInfoAddModel.addOpenBuild(activityTeamOpenInfoAdReq));
return Result.success();
}
}

View File

@ -0,0 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.ActivityTeamInfo;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ActivityTeamInfoMapper extends BaseMapper<ActivityTeamInfo> {
}

View File

@ -1,15 +1,10 @@
package com.muyu.system.team.mapper;
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.ActivityTeamOpenInfo;
import com.muyu.marketing.domain.ActivityTeamOpenInfo;
import org.apache.ibatis.annotations.Mapper;
/**
* @author: CuiFu Bo
* @create: 2024-11-20 20:44
**/
@Mapper
public interface ActivityTeamOpenInfoMapper extends BaseMapper<ActivityTeamOpenInfo> {
}

View File

@ -1,17 +1,11 @@
package com.muyu.system.team.mapper;
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.ActivityTeamOpenInfo;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import org.apache.ibatis.annotations.Mapper;
/**
* @author: CuiFu Bo
* @create: 2024-11-20 20:45
**/
@Mapper
public interface ActivityTeamProductSkuInfoMapper extends BaseMapper<ActivityTeamProductSkuInfo> {
}

View File

@ -1,17 +1,11 @@
package com.muyu.system.team.mapper;
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.TeamStrategyExemption;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.TeamStrategyExemption;
import org.apache.ibatis.annotations.Mapper;
/**
* @author: CuiFu Bo
* @create: 2024-11-20 20:46
**/
@Mapper
public interface TeamStrategyExemptionMapper extends BaseMapper<TeamStrategyExemption> {
}

View File

@ -0,0 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.TeamStrategyHundred;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TeamStrategyHundredMapper extends BaseMapper<TeamStrategyHundred> {
}

View File

@ -0,0 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.TeamStrategyOrdinary;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TeamStrategyOrdinaryMapper extends BaseMapper<TeamStrategyOrdinary> {
}

View File

@ -1,30 +1,27 @@
package com.muyu.system.team.service;
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.domain.ActivityTeamInfo;
import com.muyu.domain.model.*;
import com.muyu.domain.req.ActivityTeamInfoSaveReq;
import com.muyu.product.domain.req.ProjectInfoSaveReq;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.model.*;
import java.util.List;
/**
* @author: CuiFu Bo
* @create: 2024-11-20 20:49
**/
public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
/**
*
* @param activityTeamInfoListQueryModel
* @param activityTeamInfoListQueryModel
* @return
*/
public TableDataInfo<ActivityTeamInfoListModel> query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel);
Result<String> save(ActivityTeamInfoSaveReq activityTeamInfoSaveReq);
/**
*
* @param activityTeamInfoAddModel
*/
public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel);
/**
* ID
@ -40,13 +37,9 @@ public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
*/
boolean update(ActivityTeamInfoUpdModel activityTeamInfoUpdModel);
/**
* ID
* @param id ID
* @return
*/
List<ActivityTeamInfo> ActivityTeamList(Long id);
List<ActivityTeamInfo> teamList(Long id);
}

View File

@ -0,0 +1,37 @@
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.model.ActivityTeamOpenInfoAddModel;
public interface ActivityTeamOpenInfoService extends IService<ActivityTeamOpenInfo> {
/**
* ID
* @param teamId ID
* @param teamOpenType
* @return
*/
public Long getTeamOpenNumberByTeamIdAndType(Long teamId, TeamOpenTypeEnum teamOpenType);
/**
* ID
* @param teamId ID
* @return
*/
public default Long getTeamOpenTypeNumberByTeamId(Long teamId){
return this.getTeamOpenNumberByTeamIdAndType(teamId, TeamOpenTypeEnum.OPEN_TEAM);
}
/**
* ID
* @param teamId ID
* @return
*/
public default Long getTeamInTypeNumberByTeamId(Long teamId){
return this.getTeamOpenNumberByTeamIdAndType(teamId, TeamOpenTypeEnum.IN_TEAM);
}
public void save(ActivityTeamOpenInfoAddModel activityTeamOpenInfoAddModel);
}

View File

@ -1,17 +1,12 @@
package com.muyu.system.team.service;
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.ActivityTeamProductSkuInfo;
import com.muyu.domain.model.*;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.model.*;
import java.util.List;
/**
*
* @author: CuiFu Bo
* @create: 2024-11-20 20:50
**/
public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeamProductSkuInfo> {
public default List<ActivityTeamProductSkuInfo> getActivityTeamProductSkuInfoByTeamId(Long teamId){
@ -22,19 +17,21 @@ public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeam
/**
* ID
* @param teamId Id
* ID
* @param teamId ID
* @return
*/
public TeamDiscountPriceModel getDiscountPrice(Long teamId);
public TeamProductDiscountPriceModel getDiscountPrice(Long teamId);
/**
* ID
* @param teamId Id
* @return
* ID
* @param teamId ID
* @return
*/
public TeamProductStockModel getStock(Long teamId);
/**
* SKU
* @param activityTeamProductSkuAddModelList SKU
@ -74,6 +71,3 @@ public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeam
this.removeByIds(activityTeamProductSkuSettingModel.getRemoveIds());
}
}

View File

@ -0,0 +1,11 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
/**
*
*/
public interface TeamStrategyExemptionService extends ActivityTeamStrategy, IService<TeamStrategyExemption> {
}

View File

@ -0,0 +1,11 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyHundred;
import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
/**
*
*/
public interface TeamStrategyHundredService extends ActivityTeamStrategy, IService<TeamStrategyHundred> {
}

View File

@ -0,0 +1,11 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyOrdinary;
import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
/**
*
*/
public interface TeamStrategyOrdinaryService extends ActivityTeamStrategy, IService<TeamStrategyOrdinary> {
}

View File

@ -0,0 +1,121 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.model.*;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.util.List;
@Service
public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMapper, ActivityTeamInfo>
implements ActivityTeamInfoService {
@Autowired
private ActivityTeamOpenInfoService activityTeamOpenInfoService;
@Autowired
private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService;
@Override
public TableDataInfo<ActivityTeamInfoListModel> query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) {
LambdaQueryWrapper<ActivityTeamInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotEmpty(activityTeamInfoListQueryModel.getKeyWord()), ActivityTeamInfo::getName, activityTeamInfoListQueryModel.getKeyWord());
queryWrapper.like(StringUtils.isNotEmpty(activityTeamInfoListQueryModel.getStatus()), ActivityTeamInfo::getStatus, activityTeamInfoListQueryModel.getStatus());
/**
* Object<T> ->
* <T> Result<T>
*/
Page<ActivityTeamInfo> activityTeamInfoPage = this.page(activityTeamInfoListQueryModel.buildPage(), queryWrapper);
List<ActivityTeamInfo> activityTeamInfoList = activityTeamInfoPage.getRecords();
List<ActivityTeamInfoListModel> activityTeamInfoListModels = activityTeamInfoList.stream()
.map(activityTeamInfo -> ActivityTeamInfoListModel.infoBuild(activityTeamInfo,
(activityTeamInfoListModelBuilder) -> {
TeamProductDiscountPriceModel discountPrice = activityTeamProductSkuInfoService.getDiscountPrice(activityTeamInfo.getId());
TeamProductStockModel teamProductStockModel = activityTeamProductSkuInfoService.getStock(activityTeamInfo.getId());
Long teamOpenTypeNumber = activityTeamOpenInfoService.getTeamOpenTypeNumberByTeamId(activityTeamInfo.getId());
Long teamInTypeNumber = activityTeamOpenInfoService.getTeamInTypeNumberByTeamId(activityTeamInfo.getId());
return activityTeamInfoListModelBuilder
.openTeamNumber(teamOpenTypeNumber)
.addTeamNumber(teamInTypeNumber)
.attendNumber(teamOpenTypeNumber + teamInTypeNumber)
.teamPrice(discountPrice.getTeamPrice())
.productPrice(discountPrice.getProductPrice())
.teamStock(teamProductStockModel.getTeamStock())
.remainStock(teamProductStockModel.getRemainStock())
.build();
})).toList();
TableDataInfo<ActivityTeamInfoListModel> tableDataInfo = new TableDataInfo<>();
tableDataInfo.setTotal(activityTeamInfoPage.getTotal());
tableDataInfo.setRows(activityTeamInfoListModels);
return tableDataInfo;
}
/**
*
*
* @param activityTeamInfoAddModel
*/
@Override
public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel) {
ActivityTeamInfo activityTeamInfo = ActivityTeamInfo.addModelBuild(activityTeamInfoAddModel);
Assert.isTrue(this.save(activityTeamInfo), StringUtils.format("团购活动添加失败:[{}]", activityTeamInfoAddModel));
List<ActivityTeamProductSkuAddModel> teamProductSkuAddModelList = activityTeamInfoAddModel.getActivityTeamProductSkuAddModelList();
teamProductSkuAddModelList.forEach(activityTeamProductSkuAddModel -> activityTeamProductSkuAddModel.setTeamId(activityTeamInfo.getId()));
this.activityTeamProductSkuInfoService.batchSave(teamProductSkuAddModelList);
}
/**
* ID
* @param id ID
* @return
*/
@Override
public ActivityTeamDetailModel findDetailById(Long id) {
ActivityTeamInfo activityTeamInfo = this.getById(id);
List<ActivityTeamProductSkuModel> activityTeamProductSkuModelList = activityTeamProductSkuInfoService.findListByTeamId(id);
return ActivityTeamDetailModel.findSkuSumList(activityTeamInfo,
(teamInfoFindByIdRespModelBuilder) -> teamInfoFindByIdRespModelBuilder.projectSkuInfoAddReqList(activityTeamProductSkuModelList).build()
);
}
/**
*
* @param activityTeamInfoUpdModel
* @return
*/
@Override
public boolean update(ActivityTeamInfoUpdModel activityTeamInfoUpdModel) {
boolean update = this.updateById(ActivityTeamInfo.TeamUpdateBuild(activityTeamInfoUpdModel));
Assert.isTrue(update,"修改失败");
activityTeamProductSkuInfoService.setting(activityTeamInfoUpdModel.getActivityTeamProductSkuSettingModel());
return update;
}
/**
* id
* @param id
* @return
*/
@Override
public List<ActivityTeamInfo> teamList(Long id) {
LambdaQueryWrapper<ActivityTeamInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ActivityTeamInfo::getId,id);
List<ActivityTeamInfo> list = this.list(queryWrapper);
return list;
}
}

View File

@ -0,0 +1,41 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.util.StringUtil;
import com.muyu.common.core.enums.market.team.TeamOpenTypeEnum;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.marketing.domain.ActivityTeamOpenInfo;
import com.muyu.marketing.domain.model.ActivityTeamOpenInfoAddModel;
import com.muyu.marketing.team.mapper.ActivityTeamOpenInfoMapper;
import com.muyu.marketing.team.service.ActivityTeamOpenInfoService;
import org.springframework.stereotype.Service;
@Service
public class ActivityTeamOpenInfoServiceImpl extends ServiceImpl<ActivityTeamOpenInfoMapper, ActivityTeamOpenInfo>
implements ActivityTeamOpenInfoService {
/**
* ID
*
* @param teamId ID
* @param teamOpenType
* @return
*/
@Override
public Long getTeamOpenNumberByTeamIdAndType(Long teamId, TeamOpenTypeEnum teamOpenType) {
LambdaQueryWrapper<ActivityTeamOpenInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ActivityTeamOpenInfo::getTeamId, teamId);
queryWrapper.eq(ActivityTeamOpenInfo::getTeamType, teamOpenType.code());
return this.count(queryWrapper);
}
@Override
public void save(ActivityTeamOpenInfoAddModel activityTeamOpenInfoAddModel) {
ActivityTeamOpenInfo activityTeamOpenInfo = ActivityTeamOpenInfo.addBuildModel(activityTeamOpenInfoAddModel);
Assert.isTrue(this.save(activityTeamOpenInfo), StringUtils.format("团购活动添加失败[{}]",activityTeamOpenInfo));
}
}

View File

@ -1,64 +1,68 @@
package com.muyu.system.team.service.impl;
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.domain.ActivityTeamProductSkuInfo;
import com.muyu.domain.model.*;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
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;
import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.system.team.mapper.ActivityTeamProductSkuInfoMapper;
import com.muyu.system.team.service.ActivityTeamProductSkuInfoService;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.rmi.server.ServerCloneException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
/**
* @author: CuiFu Bo
* @create: 2024-11-20 21:41
**/
@Service
public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityTeamProductSkuInfoMapper, ActivityTeamProductSkuInfo> implements ActivityTeamProductSkuInfoService {
public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityTeamProductSkuInfoMapper, ActivityTeamProductSkuInfo>
implements ActivityTeamProductSkuInfoService {
@Resource
@Autowired
private ProjectSkuCache projectSkuCache;
@SneakyThrows
/**
* ID
*
* @param teamId ID
* @return
*/
@Override
public TeamDiscountPriceModel getDiscountPrice(Long teamId) {
List<ActivityTeamProductSkuInfo> productSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId);
if(productSkuInfoList.size()>0){
public TeamProductDiscountPriceModel getDiscountPrice(Long teamId) {
List<ActivityTeamProductSkuInfo> teamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId);
if(teamProductSkuInfoList.size()>0){
// 优惠模型集合
Optional<TeamProductDiscountPriceModel> discountPriceModelOptional = teamProductSkuInfoList.stream()
.map(activityTeamProductSkuInfo -> {
ProjectSkuInfo projectSkuInfo = projectSkuCache.get(activityTeamProductSkuInfo.getProductId(), activityTeamProductSkuInfo.getProductSku());
return TeamProductDiscountPriceModel.of(projectSkuInfo.getPrice(), activityTeamProductSkuInfo.getTeamPrice());
}).min((o1, o2) -> Double.valueOf(o1.getDiscount() * 100 - o2.getDiscount() * 100).intValue());
Optional<TeamDiscountPriceModel> discountPrice = productSkuInfoList.stream()
.map(activityTeamProductSkuInfo -> {
ProjectSkuInfo productPriceList = projectSkuCache.get(activityTeamProductSkuInfo.getProductId(), activityTeamProductSkuInfo.getProductSku());
return TeamDiscountPriceModel.of(productPriceList.getPrice(), activityTeamProductSkuInfo.getTeamPrice());
}).min((o1, o2) -> Double.valueOf(o1.getDiscount() * 100 - o2.getDiscount() * 100).intValue());
if (discountPrice.isEmpty()) {
throw new ServerCloneException("团购活动下没有商品绑定");
if (discountPriceModelOptional.isEmpty()){
throw new ServiceException("团购活动下没有商品绑定");
}
return discountPriceModelOptional.get();
}
return discountPrice.get();
}
return TeamDiscountPriceModel.builder()
return TeamProductDiscountPriceModel.builder()
.productPrice(BigDecimal.valueOf(0))
.teamPrice(BigDecimal.valueOf(0))
.discount(0.00)
.build();
}
/**
* ID
*
* @param teamId ID
* @return
*/
@Override
public TeamProductStockModel getStock(Long teamId) {
List<ActivityTeamProductSkuInfo> teamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId);
@ -67,6 +71,7 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityT
.remainStock(teamProductSkuInfoList.stream().map(ActivityTeamProductSkuInfo::getRemainStock).reduce(0L, Long::sum))
.build();
}
/**
* SKU
*

View File

@ -0,0 +1,69 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.ActivityTeamOpenInfo;
import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.marketing.team.mapper.TeamStrategyExemptionMapper;
import com.muyu.marketing.team.service.ActivityTeamInfoService;
import com.muyu.marketing.team.service.TeamStrategyExemptionService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Log4j2
@Service("team-strategy-exemption")
public class TeamStrategyExemptionServiceImpl extends ServiceImpl<TeamStrategyExemptionMapper, TeamStrategyExemption>
implements TeamStrategyExemptionService {
/**
*
*
* @param activityTeamId ID
*/
@Override
public void openTeam(Long activityTeamId) {
log.info("参加 - 免单团 - [{}]", activityTeamId);
}
/**
*
*
* @param teamId ID
*/
@Override
public void applyTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
* @param orderNumber
*/
@Override
public void addTeam(Long teamId, String orderNumber) {
}
/**
* 退
*
* @param teamId ID
*/
@Override
public void backTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
*/
@Override
public void settle(Long teamId) {
}
}

View File

@ -0,0 +1,75 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.ActivityTeamOpenInfo;
import com.muyu.marketing.domain.TeamStrategyHundred;
import com.muyu.marketing.team.mapper.TeamStrategyHundredMapper;
import com.muyu.marketing.team.service.ActivityTeamInfoService;
import com.muyu.marketing.team.service.TeamStrategyHundredService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Log4j2
@Service("team-strategy-hundred")
public class TeamStrategyHundredServiceImpl extends ServiceImpl<TeamStrategyHundredMapper, TeamStrategyHundred>
implements TeamStrategyHundredService {
@Autowired
private ActivityTeamInfoService activityTeamInfoService;
/**
*
*
* @param activityTeamId ID
*/
@Override
public void openTeam(Long activityTeamId) {
log.info("参加 - 百人团 - [{}]", activityTeamId);
ActivityTeamOpenInfo activityTeamOpenInfo = new ActivityTeamOpenInfo();
activityTeamOpenInfo.setTeamId(activityTeamId);
activityTeamOpenInfo.setTeamType("百人团");
ActivityTeamInfo byId = activityTeamInfoService.getById(activityTeamId);
}
/**
*
*
* @param teamId ID
*/
@Override
public void applyTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
* @param orderNumber
*/
@Override
public void addTeam(Long teamId, String orderNumber) {
}
/**
* 退
*
* @param teamId ID
*/
@Override
public void backTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
*/
@Override
public void settle(Long teamId) {
}
}

View File

@ -0,0 +1,66 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.TeamStrategyOrdinary;
import com.muyu.marketing.team.mapper.TeamStrategyOrdinaryMapper;
import com.muyu.marketing.team.service.TeamStrategyOrdinaryService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
@Log4j2
@Service("team-strategy-ordinary")
public class TeamStrategyOrdinaryServiceImpl extends ServiceImpl<TeamStrategyOrdinaryMapper, TeamStrategyOrdinary>
implements TeamStrategyOrdinaryService {
/**
*
*
* @param activityTeamId ID
*/
@Override
public void openTeam(Long activityTeamId) {
log.info("参加 - 普通团 - [{}]", activityTeamId);
}
/**
*
*
* @param teamId ID
*/
@Override
public void applyTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
* @param orderNumber
*/
@Override
public void addTeam(Long teamId, String orderNumber) {
}
/**
* 退
*
* @param teamId ID
*/
@Override
public void backTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
*/
@Override
public void settle(Long teamId) {
}
}

View File

@ -1,7 +1,13 @@
package com.muyu.system.team.strategy;
package com.muyu.marketing.team.strategy;
import org.apache.ibatis.annotations.Param;
/**
*
*
* @author DongZeLiang
* @date 2024-11-29 15:03
*/
public interface ActivityTeamStrategy {
@ -11,23 +17,18 @@ public interface ActivityTeamStrategy {
*/
public void openTeam(Long activityTeamId);
/**
*
* @param teamId ID
* @return code
* @param teamId ID
*/
public String applyTeam(Long teamId);
public void applyTeam(Long teamId);
/**
*
* @param teamId ID
* @param orderNumber
* @param orderNumber
*/
public void addTeam(Long teamId,String orderNumber);
public void addTeam(Long teamId, String orderNumber);
/**
* 退
@ -35,11 +36,9 @@ public interface ActivityTeamStrategy {
*/
public void backTeam(Long teamId);
/**
*
* @param teamId ID
* @param teamId ID
*/
public void settle(Long teamId);
}

View File

@ -0,0 +1,85 @@
package com.muyu.marketing.team.strategy.impl;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.utils.SpringUtils;
import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
/**
*
*
* @author DongZeLiang
* @date 2024-11-29 15:28
*/
@Service
@Primary
public class ActivityTeamStrategyImpl implements ActivityTeamStrategy {
/**
*
*
* @param activityTeamId ID
*/
@Override
public void openTeam(Long activityTeamId) {
// 假设这里是通过方法获取的typeactivityTeamId.toString()
// "team-strategy-exemption"
// "team-strategy-hundred"
// "team-strategy-ordinary"
String activityTeamType = null;
if (activityTeamId == null) {
throw new ServiceException("activityTeamId is null");
}else if (activityTeamId == 0) {
activityTeamType = "team-strategy-exemption";
}else if (activityTeamId == 1) {
activityTeamType = "team-strategy-hundred";
}else if (activityTeamId == 2) {
activityTeamType = "team-strategy-ordinary";
}
ActivityTeamStrategy activityTeamStrategy = SpringUtils.getBean(activityTeamType);
activityTeamStrategy.openTeam(activityTeamId);
}
/**
*
*
* @param teamId ID
*/
@Override
public void applyTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
* @param orderNumber
*/
@Override
public void addTeam(Long teamId, String orderNumber) {
}
/**
* 退
*
* @param teamId ID
*/
@Override
public void backTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
*/
@Override
public void settle(Long teamId) {
}
}

View File

@ -1,6 +1,6 @@
# Tomcat
server:
port: 9219
port: 9209
# Spring
spring:
@ -25,4 +25,4 @@ spring:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
logging:
level:
com.muyu.system.mapper: DEBUG
com.muyu.marketing.mapper: DEBUG

View File

@ -0,0 +1,28 @@
package com.muyu.test;
import com.muyu.marketing.MuYuMarketingApplication;
import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
*
*
* @author DongZeLiang
* @date 2024-11-29 15:40
*/
@SpringBootTest(classes = MuYuMarketingApplication.class)
public class TeamStrategyTest {
@Autowired
private ActivityTeamStrategy activityTeamStrategy;
@Test
public void testStrategy() {
activityTeamStrategy.openTeam(0L);
activityTeamStrategy.openTeam(1L);
activityTeamStrategy.openTeam(2L);
}
}

View File

@ -1,80 +0,0 @@
package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.domain.model.ActivityTeamOpenInfoAddModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivityTeamOpenInfo {
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
* ID
*/
private Long teamId;
/**
*
*/
private String teamType;
/**
*
*/
private Long teamStrategyId;
/**
*
*/
private String executiveType;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* ID
*/
private Long productId;
/**
*
*/
private String productName;
/**
*
*/
private String productSku;
/**
*
*/
private String openkey;
/**
* ID
*/
private Long orderId;
/**
*
*/
private String status;
public static ActivityTeamOpenInfo add(ActivityTeamOpenInfoAddModel addModel){
return ActivityTeamOpenInfo.builder()
.teamId(addModel.getTeamId())
.teamType(addModel.getTeamType())
.teamStrategyId(addModel.getTeamStrategyId())
.build();
}
}

View File

@ -1,45 +0,0 @@
package com.muyu.domain;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TeamStrategyExemptionHundred {
/**
*
*/
private long id;
/**
*
*/
private long duration;
/**
*
*/
private long maxBuy;
/**
*
*/
private long oneBuy;
/**
*
*/
private long virtualNumber;
/**
*
*/
private String status;
/**
*
*/
private String ruleInfo;
}

View File

@ -1,43 +0,0 @@
package com.muyu.domain;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TeamStrategyExemptionOrdinary {
/**
*
*/
private long id;
/**
*
*/
private long duration;
/**
*
*/
private long teamNumber;
/**
*
*/
private long maxBuy;
/**
*
*/
private long oneBuy;
/**
*
*/
private long virtualNumber;
/**
*
*/
private String status;
}

View File

@ -1,32 +0,0 @@
package com.muyu.domain.model;
import com.muyu.domain.req.ActivityInfoAddReq;
import com.muyu.domain.req.ActivityInfoSkuAddReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
*
*
* @author: CuiFu Bo
* @create: 2024-11-22 20:37
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivitySkuModel {
List<ActivityInfoSkuAddReq> activityInfoAdd;
public static ActivitySkuModel activitySkuModel(ActivityInfoAddReq req){
return ActivitySkuModel.builder()
.activityInfoAdd(req.getSkuList())
.build();
}
}

View File

@ -1,110 +0,0 @@
package com.muyu.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.domain.ActivityTeamInfo;
import com.muyu.domain.req.ActivityInfoAddReq;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.util.Date;
import java.util.List;
/**
*
*
* @author: CuiFu Bo
* @create: 2024-11-22 16:48
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivityTeamInfoAddModel {
/**
* iD
*/
private Long productId;
/**
*
*/
private String productImage;
/**
*
*/
private String imageList;
/**
*
*/
private String name;
/**
*
*/
private String introduction;
/**
*
*/
private String unit;
/**
*
*/
private String imagesList;
/**
*
*/
private Date endTime;
/**
*
*/
private String strategyType;
/**
*ID
*/
private Long strategyId;
/**
*
*/
private long sort;
/**
*
*/
private String status;
/**
*
*/
private String content;
public static ActivityTeamInfoAddModel activityTeamInfoAddModel (ActivityInfoAddReq req){
return ActivityTeamInfoAddModel.builder()
.productImage(req.getProductImage())
.name(req.getName())
.introduction(req.getIntroduction())
.unit(req.getUnit())
.imagesList(req.getImagesList())
.endTime(req.getEndTime())
.strategyType(req.getStrategyType())
.strategyId(req.getStrategyId())
.sort(req.getSort())
.content(req.getContent())
.build();
}
public ActivityTeamInfo activityTeamInfoAdd(){
return ActivityTeamInfo.builder()
.productImage(this.getProductImage())
.name(this.getName())
.introduction(this.getIntroduction())
.unit(this.getUnit())
.imageList(this.getImagesList())
.endTime(this.getEndTime())
.strategyType(this.getStrategyType())
.strategyId(this.getStrategyId())
.sort(this.getSort())
.content(this.getContent())
.build();
}
}

View File

@ -1,50 +0,0 @@
package com.muyu.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
*
* @author: CuiFu Bo
* @create: 2024-11-21 16:07
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TeamDiscountPriceModel {
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private BigDecimal productPrice;
/**
*
*/
private Double discount;
/**
*
* @param
* @param teamPrice
* @return
*/
public static TeamDiscountPriceModel of(BigDecimal price, BigDecimal teamPrice){
return TeamDiscountPriceModel.builder()
.productPrice(price)
.teamPrice(teamPrice)
.discount(price.subtract(teamPrice).divide(price,2, RoundingMode.HALF_EVEN).doubleValue())
.build();
}
}

View File

@ -1,73 +0,0 @@
package com.muyu.domain.req;
import com.muyu.domain.model.ActivitySkuModel;
import com.muyu.domain.model.ActivityTeamInfoAddModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
*
*
* @author: CuiFu Bo
* @create: 2024-11-22 20:48
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivityInfoAddReq {
/**
* ID
*/
private Long productId;
/**
*
*/
private String productImage;
/**
*
*/
private String name;
/**
*
*/
private String introduction;
/**
*
*/
private String unit;
/**
*
*/
private String imagesList;
/**
*
*/
private Date endTime;
/**
*
*/
private String strategyType;
/**
*ID
*/
private Long strategyId;
/**
*
*/
private long sort;
/**
*
*/
private String content;
/**
*
*/
private List<ActivityInfoSkuAddReq> skuList;
}

View File

@ -1,34 +0,0 @@
package com.muyu.domain.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* Sku
*
* @author: CuiFu Bo
* @create: 2024-11-23 01:18
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivityInfoSkuAddReq {
/**
*
*/
private String productSku;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
}

View File

@ -1,92 +0,0 @@
package com.muyu.system.team.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.dtflys.forest.annotation.Post;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.domain.ActivityTeamInfo;
import com.muyu.domain.model.ActivitySkuModel;
import com.muyu.domain.model.ActivityTeamInfoAddModel;
import com.muyu.domain.model.ActivityTeamInfoListModel;
import com.muyu.domain.model.ActivityTeamInfoUpdModel;
import com.muyu.domain.req.ActivityInfoAddReq;
import com.muyu.domain.req.ActivityTeamInfoSaveReq;
import com.muyu.domain.req.ActivityTeamInfoUpdReq;
import com.muyu.domain.req.TeamInfoListReq;
import com.muyu.domain.resp.TeamInfoFindByIdResp;
import com.muyu.domain.resp.TeamInfoListResp;
import com.muyu.system.team.service.ActivityTeamInfoService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.text.ParseException;
import java.util.List;
/**
*
* @program: cloud-server
* @description:
* @author: CuiFu Bo
* @create: 2024-11-20 21:49
**/
@RestController
@RequestMapping("/team")
public class ActivityTeamInfoController {
@Resource
private ActivityTeamInfoService activityTeamInfoService;
/**
*
* @param teamInfoListReq
* @return
*/
@RequiresPermissions("marketing:marketing:list")
@PostMapping("/list")
public Result<TableDataInfo<TeamInfoListResp>> list(@RequestBody TeamInfoListReq teamInfoListReq){
TableDataInfo<ActivityTeamInfoListModel> tableDataInfo = activityTeamInfoService.query(teamInfoListReq.buildQueryModel());
List<TeamInfoListResp> listResp = tableDataInfo.getRows().stream().map(TeamInfoListResp::listModerBuild).toList();
return Result.success(
new TableDataInfo<>(){{
setRows(listResp);
setTotal(tableDataInfo.getTotal());
}}
);
}
/**
*
* @param activityTeamInfoSaveReq
* @return
*/
@RequiresPermissions("marketing:marketing:save")
@PostMapping("/save")
public Result<String> save(@RequestBody ActivityTeamInfoSaveReq activityTeamInfoSaveReq ) throws ParseException {
return activityTeamInfoService.save(activityTeamInfoSaveReq);
}
@PostMapping("/findById/{id}")
public Result<TeamInfoFindByIdResp> findTeamById(@PathVariable Long id){
return Result.success(TeamInfoFindByIdResp.teamInfoFindByIdBuild(activityTeamInfoService.findDetailById(id)));
}
@PutMapping("/updateByTeamId")
public Result updateByTeamId(@RequestBody ActivityTeamInfoUpdReq activityTeamInfoUpdReq){
activityTeamInfoService.update(ActivityTeamInfoUpdModel.activityTeamInfoUpdReqModelBuild(activityTeamInfoUpdReq));
return Result.success();
}
/**
* ID
* @param id ID
* @return
*/
@GetMapping("/ActivityTeamList/{id}")
public Result<List<ActivityTeamInfo>> teamList(@PathVariable("id") Long id){
List<ActivityTeamInfo> activityTeamInfoList= activityTeamInfoService.ActivityTeamList(id);
return Result.success(activityTeamInfoList);
}
}

View File

@ -1,22 +0,0 @@
package com.muyu.system.team.controller;
import com.muyu.system.team.service.ActivityTeamOpenInfoService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* @program: cloud-server
* @author: CuiFu Bo
* @create: 2024-11-20 21:50
**/
@Api(tags = "团购活动执行")
@RestController
@RequestMapping("/open")
public class ActivityTeamOpenInfoController {
@Autowired(required=true)
private ActivityTeamOpenInfoService activityTeamOpenInfoService;
}

View File

@ -1,12 +0,0 @@
package com.muyu.system.team.controller;
/**
*
* @author: CuiFu Bo
* @create: 2024-11-20 21:50
**/
public class ActivityTeamProductSkuInfoController {
}

View File

@ -1,11 +0,0 @@
package com.muyu.system.team.controller;
/**
*
* @author: CuiFu Bo
* @create: 2024-11-20 21:51
**/
public class TeamStrategyExemptionController {
}

View File

@ -1,11 +0,0 @@
package com.muyu.system.team.controller;
/**
*
* @author: CuiFu Bo
* @create: 2024-11-20 21:51
**/
public class TeamStrategyExemptionHundredController {
}

View File

@ -1,11 +0,0 @@
package com.muyu.system.team.controller;
/**
*
* @author: CuiFu Bo
* @create: 2024-11-20 21:51
**/
public class TeamStrategyExemptionOrdinaryController {
}

View File

@ -1,18 +0,0 @@
package com.muyu.system.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.ActivityTeamInfo;
import net.minidev.json.writer.BeansMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author: CuiFu Bo
* @create: 2024-11-20 20:41
**/
@Mapper
public interface ActivityTeamInfoMapper extends BaseMapper<ActivityTeamInfo> {
}

View File

@ -1,17 +0,0 @@
package com.muyu.system.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.TeamStrategyExemptionHundred;
import org.apache.ibatis.annotations.Mapper;
/**
* @author: CuiFu Bo
* @create: 2024-11-20 20:47
**/
@Mapper
public interface TeamStrategyExemptionHundredMapper extends BaseMapper<TeamStrategyExemptionHundred> {
}

Some files were not shown because too many files have changed in this diff Show More