2204-11-20 (11.21)

yingxiao
笨蛋 2024-11-21 22:38:46 +08:00
parent 8757ab1e22
commit c40c0bc0cf
16 changed files with 591 additions and 39 deletions

View File

@ -0,0 +1,28 @@
package com.muyu.common.core.enums.market.team;
/**
*
*/
public enum TeamOpenTypeEnum {
TEAM_ADD("team_add","参团"),
TEAT_OPEN("team_open","开团");
private final String code;
private final String label;
public String code() {
return code;
}
public String label() {
return label;
}
TeamOpenTypeEnum(String code, String label) {
this.code = code;
this.label = label;
}
}

View File

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-marketing</artifactId>
<version>3.6.3</version>
</parent>
<packaging>pom</packaging>
<modules>
</modules>
<modelVersion>4.0.0</modelVersion>
<artifactId>marketing-service</artifactId>
<dependencies>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud Alibaba Sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Swagger UI -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.fox.version}</version>
</dependency>
<!-- Mysql Connector -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- MuYu Common DataSource -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datasource</artifactId>
</dependency>
<!-- MuYu Common DataScope -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datascope</artifactId>
</dependency>
<!-- MuYu Common Log -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-log</artifactId>
</dependency>
<!-- MuYu Common Swagger -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-swagger</artifactId>
</dependency>
<dependency>
<groupId>com.dtflys.forest</groupId>
<artifactId>forest-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>marketing-common</artifactId>
<version>3.6.3</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>marketing-remote</artifactId>
<version>3.6.3</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 加入maven deploy插件当在deploy时忽略些model-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,2 @@
Spring Boot Version: ${spring-boot.version}
Spring Application Name: ${spring.application.name}

View File

@ -0,0 +1,28 @@
# Tomcat
server:
port: 9204
# Spring
spring:
application:
# 应用名称
name: muyu-marketing
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 60.204.150.30:8848
config:
# 配置中心地址
server-addr: 60.204.150.30:8848
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
logging:
level:
com.muyu.marketing.mapper: DEBUG

View File

@ -0,0 +1,57 @@
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 io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.sql.Timestamp;
import java.sql.Date;
import java.sql.Time;
/** 商品拼团*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "activity_team_info",autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ActivityTeamInfo", description = "商品拼团")
public class ActivityTeamInfo extends BaseEntity {
@TableId(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 Timestamp endTime;
/** 活动排序*/
private long sort;
/** 活动详情*/
private String content;
/** 活动状态*/
private String status;
/** 策略类型*/
private String strategyType;
/** 策略ID*/
private long strategyId;
}

View File

@ -0,0 +1,51 @@
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 io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.sql.Timestamp;
/** 团购活动执行*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "activity_team_open_info",autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ActivityTeamOpenInfo", description = "团购活动执行")
public class ActivityTeamOpenInfo extends BaseEntity {
@TableId(type = IdType.AUTO)
/** 主键*/
private long id;
/** 团购活动ID*/
private long teamId;
/** 团购类型*/
private String teamType;
/** 团购策略*/
private String teamStrategyId;
/** 参团类型*/
private String executiveType;
/** 结束团购时间*/
private Timestamp 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,41 @@
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 io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.sql.Timestamp;
import java.sql.Date;
import java.sql.Time;
/** 商品拼团规格信息*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "activity_team_open_info",autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ActivityTeamProductSkuInfo", description = "商品拼团规格信息")
public class ActivityTeamProductSkuInfo extends BaseEntity {
@TableId(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

@ -0,0 +1,51 @@
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 io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.sql.Timestamp;
import java.sql.Date;
import java.sql.Time;
/** 拼团免单策略*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "team_strategy_exemption",autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "TeamStrategyExemption", description = "拼团免单策略")
public class TeamStrategyExemption extends BaseEntity {
@TableId(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

@ -0,0 +1,44 @@
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 io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.sql.Timestamp;
import java.sql.Date;
import java.sql.Time;
/** 百人策略*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "team_strategy_exemption_hundred",autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "TeamStrategyExemptionHundred", description = "百人策略")
public class TeamStrategyExemptionHundred extends BaseEntity {
@TableId(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,43 @@
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 io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.sql.Timestamp;
import java.sql.Date;
import java.sql.Time;
/** 普通策略*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "team_strategy_exemption_ordinary",autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "TeamStrategyExemptionOrdinary", description = "普通策略")
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

@ -7,7 +7,7 @@ import lombok.*;
import lombok.experimental.SuperBuilder;
import java.sql.Timestamp;
import java.util.Date;
/**
*
@ -20,31 +20,41 @@ import java.sql.Timestamp;
public class ActivityTeamInfoListModel extends QueryModel<ActivityTeamInfoListModel> {
@TableId(type = IdType.AUTO)
/** 主键*/
/** 拼团活动id*/
private long id;
/** 拼团名称*/
private String name;
/** 商品ID*/
private long productId;
/** 商品活动图*/
private String productImage;
/** 活动简介*/
private String introduction;
/** 单位*/
private String unit;
/** 轮播图*/
private String imageList;
/** 参团人数*/
private Long addTeamNumber;
/** 拼团人数*/
private Long attendNumber;
/** 活动结束时间*/
private Timestamp endTime;
/** 活动排序*/
private long sort;
/** 活动详情*/
private String content;
/** 活动状态*/
private String status;
/** 策略类型*/
private String strategyType;
/** 策略ID*/
private long strategyId;
private Date endTime;
/** 开团人数*/
private Long openTeamNumber;
/** 拼团商品图片*/
private String productImage;
/**
*
*/
private Double productPrice;
/**
*
*/
private Long remainStock;
/**
*
*/
private String status;
/**
*
*/
private Double teamPrice;
/**
*
*/
private Long teamStock;
}

View File

@ -0,0 +1,17 @@
package com.muyu.marketing.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/** 团购活动 优惠模型*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TeamDiscountModel {
}

View File

@ -36,10 +36,7 @@ public class ActivityTeamInfoController {
.name(teamInfoListReq.getName())
.status(teamInfoListReq.getStatus())
.build();
TableDataInfo<ActivityTeamInfoListModel> tableDataInfo = activityTeamInfoService.tabDateInfo(queryModel);
return Result.success(tableDataInfo);
}

View File

@ -1,4 +1,20 @@
package com.muyu.marketing.service;
public interface ActivityTeamOpenInfoService {
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.enums.market.team.TeamOpenTypeEnum;
import com.muyu.marketing.domain.ActivityTeamOpenInfo;
public interface ActivityTeamOpenInfoService extends IService<ActivityTeamOpenInfo> {
/**
*
* @param teamId
* @param teamOpenTypeEnum
* @return
*/
public Long getTeamTeamOpenInfoByTeamIdAndType(Long teamId, TeamOpenTypeEnum teamOpenTypeEnum);
/** 根据Id获取开团数量*/
public Long getTeamTypeNumberByTeamId(Long teamId);
/** 跟Id获取参团数量*/
public Long getAddTeamTypeNumberByTeamId(Long teamId);
}

View File

@ -10,6 +10,7 @@ import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
import com.muyu.marketing.mapper.ActivityTeamInfoMapper;
import com.muyu.marketing.service.ActivityTeamInfoService;
import com.muyu.marketing.service.ActivityTeamOpenInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -27,6 +28,8 @@ implements ActivityTeamInfoService {
@Autowired
private ActivityTeamInfoMapper activityTeamInfoMapper;
@Autowired
private ActivityTeamOpenInfoService activityTeamOpenInfoService;
/**
*
*/
@ -44,19 +47,20 @@ implements ActivityTeamInfoService {
for (ActivityTeamInfo activityTeamInfo : activityTeamInfoList) {
ActivityTeamInfoListModel activityTeamInfoListModel = new ActivityTeamInfoListModel();
activityTeamInfoListModel.setId(activityTeamInfo.getId());
activityTeamInfoListModel.setName(activityTeamInfo.getName());
activityTeamInfoListModel.setProductImage(activityTeamInfo.getProductImage());
activityTeamInfoListModel.setIntroduction(activityTeamInfo.getIntroduction());
activityTeamInfoListModel.setUnit(activityTeamInfo.getUnit());
activityTeamInfoListModel.setImageList(activityTeamInfo.getImageList());
activityTeamInfoListModel.setEndTime(activityTeamInfo.getEndTime());
activityTeamInfoListModel.setSort(activityTeamInfo.getSort());
activityTeamInfoListModel.setContent(activityTeamInfo.getContent());
activityTeamInfoListModel.setStatus(activityTeamInfo.getStatus());
activityTeamInfoListModel.setStrategyType(activityTeamInfo.getStrategyType());
activityTeamInfoListModel.setStrategyId(activityTeamInfo.getStrategyId());
activityTeamInfoListModel.setId(activityTeamInfo.getId());//拼团活动id
activityTeamInfoListModel.setName(activityTeamInfo.getName());//拼团名称
activityTeamInfoListModel.setAddTeamNumber(activityTeamOpenInfoService.getAddTeamTypeNumberByTeamId(activityTeamInfo.getId()));//参团人数
activityTeamInfoListModel.setOpenTeamNumber(activityTeamOpenInfoService.getTeamTypeNumberByTeamId(activityTeamInfoListModel.getId()));//开团人数
activityTeamInfoListModel.setAttendNumber(activityTeamInfoListModel.getAttendNumber());//拼团人数
activityTeamInfoListModel.setEndTime(activityTeamInfo.getEndTime());//活动结束时间
activityTeamInfoListModel.setProductImage(activityTeamInfo.getProductImage());//拼团商品图片
activityTeamInfoListModel.setProductPrice(0.00);//商品价格
activityTeamInfoListModel.setRemainStock(0L);//商品库存
activityTeamInfoListModel.setStatus(activityTeamInfo.getStatus());//团购状态
activityTeamInfoListModel.setTeamPrice(0.00);//拼团价格
activityTeamInfoListModel.setTeamStock(0L);//拼团库存
activityTeamInfoListModels.add(activityTeamInfoListModel);
}

View File

@ -1,13 +1,50 @@
package com.muyu.marketing.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.mapper.ActivityTeamOpenInfoMapper;
import com.muyu.marketing.service.ActivityTeamOpenInfoService;
import org.springframework.stereotype.Service;
@Service
public class ActivityTeamOpenInfoServiceImpl extends ServiceImpl<ActivityTeamOpenInfoMapper, ActivityTeamOpenInfo>
implements ActivityTeamOpenInfoService {
/**
* Id
* @param teamId
* @param teamOpenTypeEnum
* @return
*/
@Override
public Long getTeamTeamOpenInfoByTeamIdAndType(Long teamId, TeamOpenTypeEnum teamOpenTypeEnum) {
LambdaQueryWrapper<ActivityTeamOpenInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ActivityTeamOpenInfo::getTeamId,teamId);
queryWrapper.eq(ActivityTeamOpenInfo::getTeamType,teamOpenTypeEnum.code());
return this.count(queryWrapper);
}
/**
* Id
* @param teamId
* @return
*/
@Override
public Long getTeamTypeNumberByTeamId(Long teamId) {
return this.getTeamTeamOpenInfoByTeamIdAndType(teamId,TeamOpenTypeEnum.TEAT_OPEN);
}
/**
* Id
*/
@Override
public Long getAddTeamTypeNumberByTeamId(Long teamId) {
return this.getTeamTeamOpenInfoByTeamIdAndType(teamId,TeamOpenTypeEnum.TEAM_ADD);
}
}