master
33442 2024-11-23 16:27:06 +08:00
parent cd50dc7d85
commit 208868788b
55 changed files with 1225 additions and 1074 deletions

View File

@ -1,69 +0,0 @@
package com.muyu.common.core.web;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.muyu.common.core.web.page.PageDomain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
*
*
* @author AmAg
* @create 2024-11-21 16:40
**/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
public class QueryModel<T> {
/**
*
*/
private Integer pageNum;
/**
*
*/
private Integer pageSize;
/**
*
*/
private String orderByColumn;
/**
* descasc
*/
private boolean isAsc = true;
/**
*
* @param pageDomain
* @return
*/
public T domainBuild(PageDomain pageDomain){
this.pageNum = pageDomain.getPageNum();
this.pageSize = pageDomain.getPageSize();
this.orderByColumn = pageDomain.getOrderByColumn();
this.isAsc = "asc".equals(pageDomain.getIsAsc());
return (T) this;
}
/**
*
* @return
*/
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;
}
}

View File

@ -0,0 +1,38 @@
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;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class QueryModel<T> {
private Integer pageNum;
private Integer pageSize;
private String orderByColumn;
private boolean isAsc=true;
private Boolean reasonable=true;
public T domainBuild(PageDomain pageDomain){
this.pageNum=pageDomain.getPageNum();
this.pageSize=pageDomain.getPageSize();
this.orderByColumn=pageDomain.getOrderByColumn();
this.isAsc= "asc".equals(pageDomain.getIsAsc());
return (T) this;
}
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;
}
}

View File

@ -1,79 +0,0 @@
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;
import java.util.Date;
/**
*
*
* @author AmAg
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "activity_team_info",autoResultMap = true)
public class ActivityTeamInfo extends BaseEntity {
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
*
*/
private String name;
/**
* ID
*/
private Long productId;
/**
*
*/
private String productImage;
/**
*
*/
private String introduction;
/**
*
*/
private String unit;
/**
*
*/
private String imageList;
/**
*
*/
private Date endTime;
/**
*
*/
private Long sort;
/**
*
*/
private String content;
/**
*
*/
private String status;
/**
*
*/
private String strategyType;
/**
* ID
*/
private Long strategyId;
}

View File

@ -1,74 +0,0 @@
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;
import java.util.Date;
/**
*
*
* @author AmAg
*/
@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;
}

View File

@ -1,48 +0,0 @@
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;
/**
*
*
* @author AmAg
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "activity_team_product_sku_info",autoResultMap = true)
public class ActivityTeamProductSkuInfo extends BaseEntity {
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
* ID
*/
private Long teamId;
/**
* ID
*/
private String productId;
/**
* SKU
*/
private String productSku;
/**
*
*/
private String teamStock;
/**
*
*/
private String teamPrice;
}

View File

@ -1,78 +0,0 @@
package com.muyu.marketing.domain;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import org.apache.xmlbeans.impl.soap.Text;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;
/**
*
*
* @author AmAg
* @create: 2024-11-22 20:37
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MarketingGroupInfo extends BaseEntity {
/**
*
*/
@NotNull(message = "商品id不能为空")
private Long id;
/**
*
*/
@NotNull(message = "商品名称不能为空")
private String name;
/**
*
*/
@NotNull(message = "一个有效的图片")
private String productImage;
/**
*
*/
@NotNull(message = "商品简介不能为空")
@Size(min = 5,max = 500,message = "商品简介内容必须在5-500字符之间")
private Text introduction;
/**
*
*/
@NotNull(message = "商品单位不能为空")
private String unit;
/**
*
*/
private List<String> productImages;
/**
*
*/
@NotNull(message = "活动时间不能为空")
private Date endTime;
/**
*
*/
@NotNull(message = "策略类型不能为空不能为空")
private String strategyType;
/**
* ID
*/
@NotNull(message = "策略Id不能为空")
private Long strategyId;
/**
* Sku
*/
private List<ActivityTeamProductSkuInfo> productSkuInfo;
/**
*
*/
private String sortOrder;
}

View File

@ -1,60 +0,0 @@
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;
/**
*
*
* @author AmAg
*/
@Data
@SuperBuilder
@NoArgsConstructor
@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;
/**
*
*/
private Long duration;
/**
*
*/
private Long exemptionNumber;
/**
*
*/
private Long maxBuy;
/**
*
*/
private Long oneBuy;
/**
*
*/
private Long virtualNumber;
/**
*
*/
private String type;
/**
*
*/
private String ruleInfo;
/**
*
*/
private String status;
}

View File

@ -1,52 +0,0 @@
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;
/**
*
*
* @author AmAg
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption_hundred",autoResultMap = true)
public class TeamStrategyExemptionHundred 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

@ -1,52 +0,0 @@
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;
/**
*
*
* @author AmAg
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption_ordinary",autoResultMap = true)
public class TeamStrategyExemptionOrdinary 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,68 +0,0 @@
package com.muyu.marketing.domain.model;
import com.muyu.common.core.web.QueryModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
*
*
* @author: AmAg
* @create: 2024-11-21 16:38
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivityTeamInfoListModel {
/**
* ID
*/
private Long id;
/**
*
*/
private String name;
/**
*
*/
private String productImage;
/**
*
*/
private Double productPrice;
/**
*
*/
private Double teamPrice;
/**
*
*/
private Long attendNumber;
/**
*
*/
private Long openTeamNumber;
/**
*
*/
private Long addTeamNumber;
/**
*
*/
private Long teamStock;
/**
*
*/
private Long remainStock;
/**
*
*/
private Date endTime;
/**
*
*/
private String status;
}

View File

@ -1,32 +0,0 @@
package com.muyu.marketing.domain.model;
import com.muyu.common.core.web.QueryModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author: AmAg
* @create: 2024-11-21 16:38
**/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ActivityTeamInfoListQueryModel extends QueryModel<ActivityTeamInfoListQueryModel> {
/**
*
*/
private String keyWord;
/**
*
*/
private String status;
}

View File

@ -1,33 +0,0 @@
package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.xmlbeans.impl.xb.xsdschema.All;
import java.util.List;
/**
*
*
* @author AmAg
* @create: 2024-11-22 11:50
// **/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamInfoSaveModel {
/**
* ID
*/
private Long productId;
/**
* ID
*/
private Long strategyId;
//
//// private List<>
}

View File

@ -1,18 +0,0 @@
package com.muyu.marketing.domain.req;
/**
* @author AmAg
* @create: 2024-11-22 21:08
**/
public class MarketingGroupInfoListReq {
/**
*
*
*/
private String keyWord;
/**
*
*/
private String status;
}

View File

@ -1,47 +0,0 @@
package com.muyu.marketing.domain.req;
import com.muyu.common.core.web.page.PageDomain;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
/**
* team_info
*
* @author AmAg
* @create: 2024-11-22 11:34
**/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TeamInfoListReq extends PageDomain {
/**
*
*
*/
private String keyWord;
/**
*
*/
private String status;
/**
*
* @return
*/
public ActivityTeamInfoListQueryModel buildQueryModel() {
return ActivityTeamInfoListQueryModel.builder()
.keyWord(this.keyWord)
.status(this.status)
.build()
.domainBuild(this);
}
}

View File

@ -1,38 +0,0 @@
package com.muyu.marketing.domain.req;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoSaveModel;
/**
* team_info
*
* @author AmAg
* @create: 2024-11-22 11:34
**/
public class TeamInfoSaveReq {
// /**
// * 搜索关键字
// *
// */
// private String keyWord;
// /**
// * 活动状态
// */
// private String status;
//
//
// /**
// * 通过当前对象构建业务添加模型
// * @return 业务添加模型
// */
// public ActivityTeamInfoSaveModel buildAddModel() {
//
// return ActivityTeamInfoSaveModel.builder()
// .keyWord(this.keyWord)
// .status(this.status)
// .build()
// .domainBuild(this);
// }
}

View File

@ -1,18 +0,0 @@
package com.muyu.marketing.domain.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author AmAg
* @create: 2024-11-22 21:10
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MarketingGroupInfoResp {
}

View File

@ -1,61 +0,0 @@
package com.muyu.marketing.domain.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TeamInfoResp{
/**
* ID
*/
private Long id;
/**
*
*/
private String name;
/**
*
*/
private String productImage;
/**
*
*/
private Double productPrice;
/**
*
*/
private Double teamPrice;
/**
*
*/
private Long attendNumber;
/**
*
*/
private Long openTeamNumber;
/**
*
*/
private Long addTeamNumber;
/**
*
*/
private Long teamStock;
/**
*
*/
private Long remainStock;
/**
*
*/
private String endTime;
/**
*
*/
private String status;
}

View File

@ -0,0 +1,105 @@
package com.muyu.markteing.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.markteing.domain.model.ActivityTeamInfoAddModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
*
* @TableName activity_team_info
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "activity_team_info",autoResultMap = true)
public class ActivityTeamInfo extends BaseEntity {
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
*
*/
private String name;
/**
* ID
*/
private Long productId;
/**
*
*/
private String productImage;
/**
*
*/
private String introduction;
/**
*
*/
private String unit;
/**
*
*/
private String imageList;
/**
*
*/
private Date endTime;
/**
*
*/
private Integer sort;
/**
*
*/
private String content;
/**
*
*/
private String status;
/**
*
*/
private String strategyType;
/**
* ID
*/
private Long strategyId;
/**
*
*/
public static ActivityTeamInfo saveModelBuild(ActivityTeamInfoAddModel activityTeamInfoAddModel){
return ActivityTeamInfo.builder()
.name(activityTeamInfoAddModel.getName())
.productId(activityTeamInfoAddModel.getProductId())
.productImage(activityTeamInfoAddModel.getProductImage())
.introduction(activityTeamInfoAddModel.getIntroduction())
.unit(activityTeamInfoAddModel.getUnit())
.imageList(activityTeamInfoAddModel.getProductImage())
.endTime(activityTeamInfoAddModel.getEndTime())
.sort(activityTeamInfoAddModel.getSort())
.content(activityTeamInfoAddModel.getContent())
.strategyType(activityTeamInfoAddModel.getStrategyType())
.strategyId(activityTeamInfoAddModel.getStrategyId())
.build();
}
}

View File

@ -0,0 +1,78 @@
package com.muyu.markteing.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.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
*
* @TableName activity_team_open_info
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@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;
}

View File

@ -0,0 +1,64 @@
package com.muyu.markteing.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.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
*
* @TableName activity_team_product_sku_info
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "activity_team_product_sku_info",autoResultMap = true)
public class ActivityTeamProductSkuInfo extends BaseEntity {
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
* ID
*/
private Long teamId;
/**
* ID
*/
private Long productId;
/**
* SKU
*/
private String productSku;
/**
*
*/
private Long teamStock;
/**
*
*/
private Long remainStock;
/**
*
*/
private BigDecimal teamPrice;
}

View File

@ -0,0 +1,63 @@
package com.muyu.markteing.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.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
* @TableName team_strategy_exemption
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption",autoResultMap = true)
public class TeamStrategyExemption extends BaseEntity {
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
*
*/
private Integer duration;
/**
*
*/
private Integer exemptionNumber;
/**
*
*/
private Integer maxBuy;
/**
*
*/
private Integer oneBuy;
/**
*
*/
private Integer virtualNumber;
/**
*
*/
private String type;
/**
*
*/
private String ruleInfo;
/**
*
*/
private String status;
}

View File

@ -0,0 +1,56 @@
package com.muyu.markteing.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.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
* @TableName team_strategy_exemption_hundred
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption_hundred",autoResultMap = true)
public class TeamStrategyExemptionHundred extends BaseEntity {
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
*
*/
private Integer duration;
/**
*
*/
private Integer maxBuy;
/**
*
*/
private Integer oneBuy;
/**
*
*/
private Integer virtualNumber;
/**
*
*/
private String status;
/**
*
*/
private String ruleInfo;
}

View File

@ -0,0 +1,62 @@
package com.muyu.markteing.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.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
* @TableName team_strategy_exemption_ordinary
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption_ordinary",autoResultMap = true)
public class TeamStrategyExemptionOrdinary extends BaseEntity {
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
*
*/
private Integer duration;
/**
*
*/
private Integer teamNumber;
/**
*
*/
private Integer maxBuy;
/**
*
*/
private Integer oneBuy;
/**
*
*/
private Integer virtualNumber;
/**
*
*/
private String status;
}

View File

@ -0,0 +1,170 @@
package com.muyu.markteing.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
public class ActivityTeamInfoAddModel extends BaseEntity {
/**
* Id
*/
private Long productId;
/**
*
*/
private String productImage;
/**
*
*/
@NotNull(message = "不能为空")
private String name;
/**
*
*/
@NotNull(message = "不能为空")
private String introduction;
/**
*
*/
@NotNull(message = "不能为空")
private String unit;
/**
*
*/
private List<String> imageList;
/**
*
*/
private Date endTime;
;
/**
*
*/
private String strategyType;
/**
* ID
*/
private Long strategyId;
// /**
// * 商品规格
// */
// private List<ProjectSkuInfoAddReq> projectSkuInfoAddReqList;
/**
*
*/
private String content;
/**
*
*/
private Integer sort;
public Long getProductId() {
return productId;
}
public String getProductImage() {
return productImage;
}
public String getName() {
return name;
}
public String getIntroduction() {
return introduction;
}
public String getUnit() {
return unit;
}
public List<String> getImageList() {
return imageList;
}
public Date getEndTime() {
return endTime;
}
public String getStrategyType() {
return strategyType;
}
public Long getStrategyId() {
return strategyId;
}
public String getContent() {
return content;
}
public Integer getSort() {
return sort;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public void setProductImage(String productImage) {
this.productImage = productImage;
}
public void setName(String name) {
this.name = name;
}
public void setIntroduction(String introduction) {
this.introduction = introduction;
}
public void setUnit(String unit) {
this.unit = unit;
}
public void setImageList(List<String> imageList) {
this.imageList = imageList;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public void setStrategyType(String strategyType) {
this.strategyType = strategyType;
}
public void setStrategyId(Long strategyId) {
this.strategyId = strategyId;
}
public void setContent(String content) {
this.content = content;
}
public void setSort(Integer sort) {
this.sort = sort;
}
}

View File

@ -0,0 +1,21 @@
package com.muyu.markteing.domain.model;
import com.muyu.common.core.web.model.QueryModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@EqualsAndHashCode(callSuper = true)
public class ActivityTeamInfoListModel extends QueryModel<ActivityTeamInfoListModel> {
private String keyWord;
private String status;
}

View File

@ -0,0 +1,90 @@
package com.muyu.markteing.domain.model;
import com.muyu.common.core.web.model.QueryModel;
import com.muyu.markteing.domain.ActivityTeamInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
import java.util.Date;
import java.util.function.Function;
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@EqualsAndHashCode(callSuper = true)
public class ActivityTeamInfoListQueryModel extends QueryModel<ActivityTeamInfoListQueryModel> {
/** ID
*/
private Long id;
/**
*
*/
private String name;
/**
*
*/
private String productImage;
/**
*
*/
private BigDecimal productPrice;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long attendNumber;
/**
*
*/
private Long openTeamNumber;
/**
*
*/
private Long addTeamNumber;
/**
*
*/
private Long teamStock;
/**
*
*/
private Long remainStock;
/**
*
*/
private Date endTime;
/**
*
*/
private String status;
public static ActivityTeamInfoListQueryModel infoBuild(ActivityTeamInfo activityTeamInfo, Function<ActivityTeamInfoListQueryModelBuilder,ActivityTeamInfoListQueryModel> function){
ActivityTeamInfoListQueryModel build = ActivityTeamInfoListQueryModel.builder()
.id(activityTeamInfo.getId())
.name(activityTeamInfo.getName())
.endTime(activityTeamInfo.getEndTime())
.productImage(activityTeamInfo.getProductImage())
.status(activityTeamInfo.getStatus())
.build();
return function.apply(
ActivityTeamInfoListQueryModel.builder()
.id(activityTeamInfo.getId())
.name(activityTeamInfo.getName())
.endTime(activityTeamInfo.getEndTime())
.productImage(activityTeamInfo.getProductImage())
.status(activityTeamInfo.getStatus())
);
}
}

View File

@ -0,0 +1,47 @@
package com.muyu.markteing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
*
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
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(productPrice.subtract(teamPrice).divide(productPrice, 2, RoundingMode.HALF_UP).doubleValue())
.build();
}
}

View File

@ -0,0 +1,28 @@
package com.muyu.markteing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TeamProductStockModel {
/**
*
*/
private Long reamStock;
/**
*
*/
private Long remainStock;
private Long teamStock;
}

View File

@ -0,0 +1,50 @@
package com.muyu.markteing.domain.req;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.markteing.domain.model.ActivityTeamInfoAddModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
//@ApiModel(value = "ActivityTeamInfoSaveReq", description = "拼团商品信息")
public class ActivityTeamInfoSaveReq extends BaseEntity {
private Long id;
/**
*
*/
private ActivityTeamInfoAddModel activityTeamInfoAddModel;
/**
* SKuProductSkuModel
*/
public Long getId() {
return id;
}
public ActivityTeamInfoAddModel getActivityTeamInfoAddModel() {
return activityTeamInfoAddModel;
}
public void setId(Long id) {
this.id = id;
}
public void setActivityTeamInfoAddModel(ActivityTeamInfoAddModel activityTeamInfoAddModel) {
this.activityTeamInfoAddModel = activityTeamInfoAddModel;
}
}

View File

@ -0,0 +1,29 @@
package com.muyu.markteing.domain.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ProjectSkuInfoAddReq {
/**
* SKU
*/
private String sku;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Integer teamStock;
}

View File

@ -0,0 +1,26 @@
package com.muyu.markteing.domain.req;
import com.muyu.common.core.web.page.PageDomain;
import com.muyu.markteing.domain.model.ActivityTeamInfoListModel;
import lombok.*;
import lombok.experimental.SuperBuilder;
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
public class TeamInfoListReq extends PageDomain {
private String keyWord;
private String status;
public ActivityTeamInfoListModel buildQueryModel(){
return ActivityTeamInfoListModel.builder()
.keyWord(this.keyWord)
.status(this.status)
.build()
.domainBuild(this);
}
}

View File

@ -0,0 +1,91 @@
package com.muyu.markteing.domain.resp;
import com.muyu.markteing.domain.model.ActivityTeamInfoListQueryModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class ActivityTeamInfoResp {
/**
* ID
*/
private Long id;
/**
*
*/
private String name;
/**
*
*/
private String productImage;
/**
*
*/
private BigDecimal productPrice;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long attendNumber;
/**
*
*/
private Long openTeamNumber;
/**
*
*/
private Long addTeamNumber;
/**
*
*/
private Long teamStock;
/**
*
*/
private Long remainStock;
/**
*
*/
private Date endTime;
/**
*
*/
private String status;
/**
*
* @param activityTeamInfoListQueryModel
* @return
*/
public static ActivityTeamInfoResp listModelBuild(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) {
return ActivityTeamInfoResp.builder()
.id(activityTeamInfoListQueryModel.getId())
.name(activityTeamInfoListQueryModel.getName())
.openTeamNumber(activityTeamInfoListQueryModel.getOpenTeamNumber())
.addTeamNumber(activityTeamInfoListQueryModel.getAddTeamNumber())
.attendNumber(activityTeamInfoListQueryModel.getAttendNumber())
.endTime(activityTeamInfoListQueryModel.getEndTime())
.teamPrice(activityTeamInfoListQueryModel.getTeamPrice())
.productPrice(activityTeamInfoListQueryModel.getProductPrice())
.productImage(activityTeamInfoListQueryModel.getProductImage())
.remainStock(activityTeamInfoListQueryModel.getRemainStock())
.status(activityTeamInfoListQueryModel.getStatus())
.teamStock(activityTeamInfoListQueryModel.getTeamStock())
.build();
}
}

View File

@ -1,42 +0,0 @@
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.req.TeamInfoListReq;
import com.muyu.marketing.domain.req.TeamInfoSaveReq;
import com.muyu.marketing.domain.resp.TeamInfoResp;
import com.muyu.marketing.team.service.ActivityTeamInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
*
* @author AmAg
* @create: 2024-11-21 17:00
**/
@RestController
@RequestMapping("team")
public class ActivityTeamController {
@Autowired
private ActivityTeamInfoService activityTeamInfoService;
@PostMapping("/list")
public Result<TableDataInfo<TeamInfoResp>> list(@RequestBody TeamInfoListReq teamInfoListReq) {
activityTeamInfoService.query(teamInfoListReq.buildQueryModel());
return Result.success();
}
// @PostMapping("add")
// public Result<String> add(@RequestBody TeamInfoSaveReq teamInfoSaveReq){
// activityTeamInfoService.add(teamInfoSaveReq.buildAddModel());
// return Result.success();
// }
}

View File

@ -0,0 +1,48 @@
package com.muyu.marketing.team.controller;
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.marketing.team.service.ActivityTeamInfoService;
import com.muyu.markteing.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.markteing.domain.req.TeamInfoListReq;
import com.muyu.markteing.domain.resp.ActivityTeamInfoResp;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "拼团活动")
@RestController
@RequestMapping("/team")
public class ActivityTeamInfoController {
@Autowired(required=true)
private ActivityTeamInfoService activityTeamInfoService;
/**
*
* @param teamInfoListReq
* @return
*/
@PostMapping("/list")
// @RequiresPermissions("marketing:team:list")
@ApiOperation("获取属性组列表")
public Result<TableDataInfo<ActivityTeamInfoResp>> list (@RequestBody TeamInfoListReq teamInfoListReq){
TableDataInfo<ActivityTeamInfoListQueryModel> tableDataInfo = activityTeamInfoService.query(teamInfoListReq.buildQueryModel());
List<ActivityTeamInfoResp> respList = tableDataInfo.getRows().stream().map(ActivityTeamInfoResp::listModelBuild).toList();
return Result.success(
new TableDataInfo<ActivityTeamInfoResp>(){{
setRows(respList);
setTotal(tableDataInfo.getTotal());
}}
);
}
}

View File

@ -1,11 +0,0 @@
package com.muyu.marketing.team.controller;
/**
*
*
* @author AmAg
* @create: 2024-11-22 21:07
**/
public class MarketingGroupInfoController {
}

View File

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

View File

@ -1,14 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.ActivityTeamOpenInfo;
import com.muyu.markteing.domain.ActivityTeamOpenInfo;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author AmAg
*/
@Mapper
public interface ActivityTeamOpenInfoMapper extends BaseMapper<ActivityTeamOpenInfo> {
}

View File

@ -1,14 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.markteing.domain.ActivityTeamProductSkuInfo;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author AmAg
*/
@Mapper
public interface ActivityTeamProductSkuInfoMapper extends BaseMapper<ActivityTeamProductSkuInfo> {
}

View File

@ -1,14 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred;
import com.muyu.markteing.domain.TeamStrategyExemptionHundred;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author AmAg
*/
@Mapper
public interface TeamStrategyExemptionHundredMapper extends BaseMapper<TeamStrategyExemptionHundred> {
}

View File

@ -1,14 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.markteing.domain.TeamStrategyExemption;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author AmAg
*/
@Mapper
public interface TeamStrategyExemptionMapper extends BaseMapper<TeamStrategyExemption> {
}

View File

@ -1,14 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary;
import com.muyu.markteing.domain.TeamStrategyExemptionOrdinary;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author AmAg
*/
@Mapper
public interface TeamStrategyExemptionOrdinaryMapper extends BaseMapper<TeamStrategyExemptionOrdinary> {
}

View File

@ -1,23 +1,17 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.markteing.domain.ActivityTeamInfo;
import com.muyu.markteing.domain.model.ActivityTeamInfoListModel;
import com.muyu.markteing.domain.model.ActivityTeamInfoListQueryModel;
import java.util.List;
public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
/**
*
* @param activityTeamInfoListQueryModel
* @return
*/
public TableDataInfo<ActivityTeamInfoListModel> query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel);
public TableDataInfo<ActivityTeamInfoListQueryModel> query(ActivityTeamInfoListModel activityTeamInfoListModel);
//void add(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel);
}

View File

@ -2,35 +2,23 @@ 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 org.springframework.web.bind.annotation.RequestParam;
import com.muyu.markteing.domain.ActivityTeamOpenInfo;
public interface ActivityTeamOpenInfoService extends IService<ActivityTeamOpenInfo> {
/**
* Id
* @param teamId ID
* @param teamOpenType
* @return
*
* @return
*/
public Long getTeamOpenNumberByTeamIdAndType(@RequestParam Long teamId, TeamOpenTypeEnum teamOpenType);
public Long getTeamOpenNumberByTeamIdAndType(Long teamId, TeamOpenTypeEnum teamOpenEnum);
/**
* Id
* @param teamId ID
* @return
*/
public default Long getTeamOpenNumberByTeamId(Long teamId){
return this.getTeamOpenNumberByTeamIdAndType(teamId,TeamOpenTypeEnum.OPEN_TEAM);
return this.getTeamOpenNumberByTeamIdAndType(teamId, TeamOpenTypeEnum.OPEN_TEAM);
}
/**
* Id
* @param teamId ID
* @return
*/
public default Long getTeamInNumberByTeamId(Long teamId){
public default Long getTeamInTypeNumberByTeamId(Long teamId){
return this.getTeamOpenNumberByTeamIdAndType(teamId,TeamOpenTypeEnum.IN_TEAM);
}
}

View File

@ -1,15 +1,35 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.markteing.domain.ActivityTeamProductSkuInfo;
import com.muyu.markteing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.markteing.domain.model.TeamProductStockModel;
import java.util.List;
public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeamProductSkuInfo> {
public default List<ActivityTeamProductSkuInfo> getActivityTeamProductSkuInfoByTeamId(Long teamId){
LambdaQueryWrapper<ActivityTeamProductSkuInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId,teamId);
return this.list(lambdaQueryWrapper);
}
/**
* ID
* /ID
*/
public TeamProductDiscountPriceModel getDiscountPrice(Long teamId);
/**
* ID
* @param teamId
* @return
*/
public ActivityTeamProductSkuInfo getDiscountPrice(Long teamId);
public TeamProductStockModel getStock(Long teamId);
}

View File

@ -1,9 +0,0 @@
package com.muyu.marketing.team.service;
/**
* @author AmAg
* @create: 2024-11-22 21:08
**/
public interface MarketingGroupInfoService {
}

View File

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

View File

@ -1,7 +1,8 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary;
import com.muyu.markteing.domain.TeamStrategyExemptionOrdinary;
public interface TeamStrategyExemptionOrdinaryService extends IService<TeamStrategyExemptionOrdinary> {
}

View File

@ -1,7 +1,8 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.markteing.domain.TeamStrategyExemption;
public interface TeamStrategyExemptionService extends IService<TeamStrategyExemption> {
}

View File

@ -1,83 +1,76 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.domain.Result;
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.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.marketing.team.mapper.ActivityTeamInfoMapper;
import com.muyu.marketing.team.service.ActivityTeamInfoService;
import com.muyu.marketing.team.service.ActivityTeamOpenInfoService;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import com.muyu.markteing.domain.ActivityTeamInfo;
import com.muyu.markteing.domain.model.ActivityTeamInfoListModel;
import com.muyu.markteing.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.markteing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.markteing.domain.model.TeamProductStockModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import javax.annotation.Resource;
import java.util.List;
@Service
public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMapper, ActivityTeamInfo>
implements ActivityTeamInfoService {
public class ActivityTeamInfoServiceImpl extends ServiceImpl<ActivityTeamInfoMapper, ActivityTeamInfo> implements ActivityTeamInfoService {
@Autowired
@Autowired(required=true)
private ActivityTeamOpenInfoService activityTeamOpenInfoService;
@Autowired(required=true)
private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService;
@Override
public TableDataInfo<ActivityTeamInfoListModel> query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) {
public TableDataInfo<ActivityTeamInfoListQueryModel> query(ActivityTeamInfoListModel activityTeamInfoListModel) {
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());
/**
*
*
*
*/
Page<ActivityTeamInfo> activityTeamInfoPage = this.page(activityTeamInfoListQueryModel.buildPage(),queryWrapper);
List<ActivityTeamInfo> activityTeamInfoList = activityTeamInfoPage.getRecords();
List<ActivityTeamInfoListModel> activityTeamInfoListModels =new ArrayList<>();
for (ActivityTeamInfo activityTeamInfo : activityTeamInfoList) {
ActivityTeamInfoListModel activityTeamInfoListModel = new ActivityTeamInfoListModel();
activityTeamInfoListModel.setId(activityTeamInfo.getId());
activityTeamInfoListModel.setName(activityTeamInfo.getName());
activityTeamInfoListModel.setStatus(activityTeamInfo.getStatus());
activityTeamInfoListModel.setOpenTeamNumber(activityTeamOpenInfoService.getTeamOpenNumberByTeamId(activityTeamInfo.getId()));
activityTeamInfoListModel.setAddTeamNumber(activityTeamOpenInfoService.getTeamInNumberByTeamId(activityTeamInfo.getId()));
activityTeamInfoListModel.setAttendNumber(activityTeamInfoListModel.getAttendNumber()+activityTeamInfoListModel.getAttendNumber());
activityTeamInfoListModel.setEndTime(activityTeamInfo.getEndTime());
activityTeamInfoListModel.setProductImage(activityTeamInfo.getProductImage());
activityTeamInfoListModel.setProductPrice(0.00);
activityTeamInfoListModel.setRemainStock(0L);
activityTeamInfoListModel.setTeamPrice(0.00);
activityTeamInfoListModel.setTeamStock(0L);
activityTeamInfoListModels.add(activityTeamInfoListModel);
}
queryWrapper.like(StringUtils.isNotEmpty(activityTeamInfoListModel.getKeyWord()),ActivityTeamInfo::getName,activityTeamInfoListModel.getKeyWord());
queryWrapper.like(StringUtils.isNotEmpty(activityTeamInfoListModel.getStatus()),ActivityTeamInfo::getStatus,activityTeamInfoListModel.getStatus());
TableDataInfo<ActivityTeamInfoListModel> tableDataInfo = new TableDataInfo<>();
tableDataInfo.setTotal(activityTeamInfoPage.getTotal());
tableDataInfo.setRows(activityTeamInfoListModels);
Page<ActivityTeamInfo> activityTeamInfoPage1 = this.page(activityTeamInfoListModel.buildPage(), queryWrapper);
List<ActivityTeamInfo> activityTeamInfoList = activityTeamInfoPage1.getRecords();
List<ActivityTeamInfoListQueryModel> activityTeamInfoListQueryModels = activityTeamInfoList.stream()
.map(activityTeamInfo -> ActivityTeamInfoListQueryModel.infoBuild(
activityTeamInfo, (activityTeamInfoListQueryModelBuilder)-> {
TeamProductStockModel teamProductStockModel = activityTeamProductSkuInfoService.getStock(activityTeamInfo.getId());
TeamProductDiscountPriceModel discountPrice = activityTeamProductSkuInfoService.getDiscountPrice(activityTeamInfo.getId());
Long teamOpenNumber = activityTeamOpenInfoService.getTeamOpenNumberByTeamId(activityTeamInfo.getId());
Long teamInTypeNumber = activityTeamOpenInfoService.getTeamInTypeNumberByTeamId(activityTeamInfo.getId());
return activityTeamInfoListQueryModelBuilder
.openTeamNumber(teamOpenNumber)
.addTeamNumber(teamInTypeNumber)
.attendNumber(teamOpenNumber + teamInTypeNumber)
.teamPrice(discountPrice.getTeamPrice())
.productPrice(discountPrice.getProductPrice())
.teamStock(teamProductStockModel.getTeamStock())
.remainStock(teamProductStockModel.getRemainStock())
.build();
})).toList();
TableDataInfo<ActivityTeamInfoListQueryModel> tableDataInfo = new TableDataInfo<>();
tableDataInfo.setTotal(activityTeamInfoPage1.getTotal());
tableDataInfo.setRows(activityTeamInfoListQueryModels);
return tableDataInfo;
}
// @Override
// public void add(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) {
// LambdaQueryWrapper<ActivityTeamInfo> queryWrapper = new LambdaQueryWrapper<>();
//
// }
// @Override
// public void add(ActivityTeamInfo activityTeamInfo) {
// LambdaQueryWrapper<ActivityTeamInfo> queryWrapper = new LambdaQueryWrapper<>();
// List<ActivityTeamInfo> activityTeamInfos = new ArrayList<>();
//
// }
}

View File

@ -3,30 +3,29 @@ package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.enums.market.team.TeamOpenTypeEnum;
import com.muyu.marketing.domain.ActivityTeamOpenInfo;
import com.muyu.marketing.team.mapper.ActivityTeamOpenInfoMapper;
import com.muyu.marketing.team.service.ActivityTeamOpenInfoService;
import com.muyu.markteing.domain.ActivityTeamOpenInfo;
import org.springframework.stereotype.Service;
@Service
public class ActivityTeamOpenInfoServiceImpl extends ServiceImpl<ActivityTeamOpenInfoMapper, ActivityTeamOpenInfo>
implements ActivityTeamOpenInfoService {
public class ActivityTeamOpenInfoServiceImpl extends ServiceImpl<ActivityTeamOpenInfoMapper, ActivityTeamOpenInfo> implements ActivityTeamOpenInfoService {
/**
* Id
*
* @param TeamId ID
* @param teamOpenType
* d
* @param teamId
* @param teamOpenEnum
* @return
*/
@Override
public Long getTeamOpenNumberByTeamIdAndType(Long TeamId, TeamOpenTypeEnum teamOpenType) {
public Long getTeamOpenNumberByTeamIdAndType(Long teamId, TeamOpenTypeEnum teamOpenEnum) {
LambdaQueryWrapper<ActivityTeamOpenInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ActivityTeamOpenInfo::getTeamId, TeamId);
queryWrapper.eq(ActivityTeamOpenInfo::getTeamType,teamOpenType.code());
return this.count(queryWrapper);
queryWrapper.eq(ActivityTeamOpenInfo::getTeamId,teamId);
queryWrapper.eq(ActivityTeamOpenInfo::getTeamType,teamOpenEnum.code());
return this.count(queryWrapper);
}
}

View File

@ -1,38 +1,50 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.marketing.team.mapper.ActivityTeamProductSkuInfoMapper;
import com.muyu.marketing.team.mapper.TeamStrategyExemptionHundredMapper;
import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService;
import com.muyu.marketing.team.service.TeamStrategyExemptionService;
import com.muyu.markteing.domain.ActivityTeamProductSkuInfo;
import com.muyu.markteing.domain.model.TeamProductDiscountPriceModel;
import com.muyu.markteing.domain.model.TeamProductStockModel;
import com.muyu.product.cache.ProjectSkuCache;
import com.muyu.product.domain.ProjectSkuInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityTeamProductSkuInfoMapper, ActivityTeamProductSkuInfo>
implements ActivityTeamProductSkuInfoService {
public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl<ActivityTeamProductSkuInfoMapper, ActivityTeamProductSkuInfo> implements ActivityTeamProductSkuInfoService {
@Autowired
private ProjectSkuCache projectSkuCache;
/**
* ID
*
* @param teamId
* @return
*/
@Autowired
private ProjectSkuCache projectSkuCache;
@Override
public ActivityTeamProductSkuInfo getDiscountPrice(Long teamId) {
LambdaQueryWrapper<ActivityTeamProductSkuInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId, teamId);
List<ActivityTeamProductSkuInfo> teamProductSkuInfoList = this.list(queryWrapper);
// projectSkuCache.get
return null;
public TeamProductDiscountPriceModel getDiscountPrice(Long teamId) {
List<ActivityTeamProductSkuInfo> teamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId);
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());
if (discountPriceModelOptional.isEmpty()){
throw new ServiceException("团购活动下没有商品绑定");
}
return discountPriceModelOptional.get();
}
@Override
public TeamProductStockModel getStock(Long teamId) {
List<ActivityTeamProductSkuInfo> teamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId);
return TeamProductStockModel.builder()
.teamStock(teamProductSkuInfoList.stream().map(ActivityTeamProductSkuInfo::getTeamStock).reduce(0L,Long::sum))
.remainStock(teamProductSkuInfoList.stream().map(ActivityTeamProductSkuInfo::getRemainStock).reduce(0L,Long::sum))
.build();
}
}

View File

@ -1,12 +0,0 @@
package com.muyu.marketing.team.service.impl;
import org.springframework.stereotype.Service;
/**
* @author AmAg
* @create: 2024-11-22 21:08
**/
@Service
public class MarketingGroupInfoServiceImpl {
}

View File

@ -1,11 +1,12 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred;
import com.muyu.marketing.team.mapper.TeamStrategyExemptionHundredMapper;
import com.muyu.marketing.team.service.TeamStrategyExemptionHundredService;
import com.muyu.markteing.domain.TeamStrategyExemptionHundred;
import org.springframework.stereotype.Service;
@Service
public class TeamStrategyExemptionHundredServiceImpl extends ServiceImpl<TeamStrategyExemptionHundredMapper, TeamStrategyExemptionHundred> implements TeamStrategyExemptionHundredService {
public class TeamStrategyExemptionHundredServiceImpl extends ServiceImpl<TeamStrategyExemptionHundredMapper, TeamStrategyExemptionHundred> implements TeamStrategyExemptionHundredService {
}

View File

@ -1,11 +1,12 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary;
import com.muyu.marketing.team.mapper.TeamStrategyExemptionOrdinaryMapper;
import com.muyu.marketing.team.service.TeamStrategyExemptionOrdinaryService;
import com.muyu.markteing.domain.TeamStrategyExemptionOrdinary;
import org.springframework.stereotype.Service;
@Service
public class TeamStrategyExemptionOrdinaryServiceImpl extends ServiceImpl<TeamStrategyExemptionOrdinaryMapper, TeamStrategyExemptionOrdinary> implements TeamStrategyExemptionOrdinaryService {
public class TeamStrategyExemptionOrdinaryServiceImpl extends ServiceImpl<TeamStrategyExemptionOrdinaryMapper, TeamStrategyExemptionOrdinary> implements TeamStrategyExemptionOrdinaryService {
}

View File

@ -1,11 +1,12 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.marketing.team.mapper.TeamStrategyExemptionMapper;
import com.muyu.marketing.team.service.TeamStrategyExemptionService;
import com.muyu.markteing.domain.TeamStrategyExemption;
import org.springframework.stereotype.Service;
@Service
public class TeamStrategyExemptionServiceImpl extends ServiceImpl<TeamStrategyExemptionMapper, TeamStrategyExemption> implements TeamStrategyExemptionService {
public class TeamStrategyExemptionServiceImpl extends ServiceImpl<TeamStrategyExemptionMapper, TeamStrategyExemption> implements TeamStrategyExemptionService {
}