2204-11-20 (添加拼团)
parent
ad07b4b025
commit
e09cb28b9c
|
@ -16,6 +16,7 @@
|
|||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
|
|
|
@ -4,17 +4,20 @@ 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.ActivityTeamInfoAddModel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
import java.awt.*;
|
||||
import java.sql.Timestamp;
|
||||
import java.sql.Date;
|
||||
import java.sql.Time;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/** 商品拼团*/
|
||||
|
@ -22,17 +25,16 @@ import java.util.List;
|
|||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@TableName(value = "activity_team_info",autoResultMap = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel(value = "ActivityTeamInfo", description = "商品拼团")
|
||||
@TableName("activity_team_info")
|
||||
public class ActivityTeamInfo extends BaseEntity {
|
||||
@TableId(type = IdType.AUTO)
|
||||
/** 主键*/
|
||||
private long id;
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
/** 拼团名称*/
|
||||
private String name;
|
||||
/** 商品ID*/
|
||||
private long productId;
|
||||
private Long productId;
|
||||
/** 商品活动图*/
|
||||
private String productImage;
|
||||
/** 活动简介*/
|
||||
|
@ -41,8 +43,9 @@ public class ActivityTeamInfo extends BaseEntity {
|
|||
private String unit;
|
||||
/** 轮播图*/
|
||||
private String imageList;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
/** 活动结束时间*/
|
||||
private Timestamp endTime;
|
||||
private Date endTime;
|
||||
/** 活动排序*/
|
||||
private long sort;
|
||||
/** 活动详情*/
|
||||
|
@ -52,5 +55,8 @@ public class ActivityTeamInfo extends BaseEntity {
|
|||
/** 策略类型*/
|
||||
private String strategyType;
|
||||
/** 策略ID*/
|
||||
private long strategyId;
|
||||
private Long strategyId;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -10,11 +10,7 @@ import lombok.Data;
|
|||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.Timestamp;
|
||||
import java.sql.Date;
|
||||
import java.sql.Time;
|
||||
import org.apache.poi.hpsf.Decimal;
|
||||
/** 商品拼团规格信息*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
|
@ -36,7 +32,7 @@ public class ActivityTeamProductSkuInfo extends BaseEntity {
|
|||
/** 拼团库存*/
|
||||
private Long teamStock;
|
||||
/** 拼团价格*/
|
||||
private BigDecimal teamPrice;
|
||||
private Decimal teamPrice;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
package com.muyu.marketing.domain.model;
|
||||
|
||||
import com.muyu.marketing.domain.ActivityTeamInfo;
|
||||
import com.muyu.marketing.domain.req.ActivityTeamInfoReq;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
/**
|
||||
* 拼团 添加 Model
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ActivityTeamInfoAddModel {
|
||||
|
||||
/** 主键*/
|
||||
private Long id;
|
||||
/** 拼团名称*/
|
||||
private String name;
|
||||
/** 商品ID*/
|
||||
private Long productId;
|
||||
/** 商品活动图*/
|
||||
private String productImage;
|
||||
/** 活动简介*/
|
||||
private String introduction;
|
||||
/** 单位*/
|
||||
private String unit;
|
||||
/** 轮播图*/
|
||||
private String imageList;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
/** 活动结束时间*/
|
||||
private Date endTime;
|
||||
/** 活动排序*/
|
||||
private Long sort;
|
||||
/** 活动详情*/
|
||||
private String content;
|
||||
/** 活动状态*/
|
||||
private String status;
|
||||
/** 策略类型*/
|
||||
private String strategyType;
|
||||
/** 策略ID*/
|
||||
private Long strategyId;
|
||||
|
||||
|
||||
/** 拼团活动对象*/
|
||||
public static ActivityTeamInfo saveModelBuild(ActivityTeamInfoReq teamInfoReq) {
|
||||
ActivityTeamInfo build = ActivityTeamInfo.builder()
|
||||
.name(teamInfoReq.getActivityName())
|
||||
.productId(teamInfoReq.getProjectId())
|
||||
.productImage(teamInfoReq.getProjectImage())
|
||||
.introduction(teamInfoReq.getActivities())
|
||||
.unit(teamInfoReq.getProjectUnit())
|
||||
.imageList(teamInfoReq.getCarouselImages())
|
||||
.endTime(teamInfoReq.getEndTime())
|
||||
.content(teamInfoReq.getGoodsDetails())
|
||||
.strategyType(teamInfoReq.getStrategyType())
|
||||
.strategyId(teamInfoReq.getStrategyId())
|
||||
.build();
|
||||
return build;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package com.muyu.marketing.domain.model;
|
||||
|
||||
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
|
||||
import com.muyu.marketing.domain.req.AddProjectSkuListReq;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.poi.hpsf.Decimal;
|
||||
|
||||
/** 添加拼团商品规格Model*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class ActivityTeamProductSkuInfoModel {
|
||||
/** 主键*/
|
||||
private Long id;
|
||||
/** 活动ID*/
|
||||
private Long teamId;
|
||||
/** 商品ID*/
|
||||
private Long productId;
|
||||
/** 商品SKU*/
|
||||
private String productSku;
|
||||
/** 拼团库存*/
|
||||
private String teamStock;
|
||||
/** 拼团价格*/
|
||||
private Decimal teamPrice;
|
||||
|
||||
|
||||
/** * 拼团活动的商品规格*/
|
||||
public static ActivityTeamProductSkuInfo saveModelBuild(Long projectId,Long goodsId,AddProjectSkuListReq skuInfo) {
|
||||
ActivityTeamProductSkuInfo build = ActivityTeamProductSkuInfo.builder()
|
||||
.teamId(projectId)
|
||||
.productId(goodsId)
|
||||
.productSku(skuInfo.getProductSku())
|
||||
.teamStock(0L)
|
||||
.teamPrice(skuInfo.getTeamPrice())
|
||||
.build();
|
||||
|
||||
return build;
|
||||
}
|
||||
|
||||
}
|
|
@ -13,7 +13,6 @@ import java.math.RoundingMode;
|
|||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
|
||||
public class TeamProductDiscountPriceModel {
|
||||
|
||||
/** 商品价格*/
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
package com.muyu.marketing.domain.req;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
|
||||
/**
|
||||
* 拼团resp
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "ActivityTeamInfoListReq", description = "拼团")
|
||||
public class ActivityTeamInfoListReq {
|
||||
|
||||
@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;
|
||||
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
package com.muyu.marketing.domain.req;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 拼团 添加 req
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "ActivityTeamInfoListReq", description = "拼团")
|
||||
public class ActivityTeamInfoReq {
|
||||
|
||||
private Long projectId;
|
||||
/** 商品图片*/
|
||||
private String projectImage;
|
||||
|
||||
/** 活动名称*/
|
||||
private String activityName;
|
||||
|
||||
/** 活动介绍*/
|
||||
private String activities;
|
||||
|
||||
/** 商品单位*/
|
||||
private String projectUnit;
|
||||
|
||||
/** 轮播图*/
|
||||
private String carouselImages;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
/** 结束时间*/
|
||||
private Date endTime;
|
||||
|
||||
/** 拼团策略id*/
|
||||
private Long strategyId;
|
||||
|
||||
/** 拼团策略类型*/
|
||||
private String strategyType;
|
||||
|
||||
/** 商品规格List*/
|
||||
private List<AddProjectSkuListReq> projectSkuList;
|
||||
|
||||
/** 全重*/
|
||||
private Long weight;
|
||||
/** 商品详情*/
|
||||
private String goodsDetails;
|
||||
|
||||
}
|
|
@ -11,7 +11,7 @@ import org.apache.poi.hpsf.Decimal;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class AddProjectSkuList {
|
||||
public class AddProjectSkuListReq {
|
||||
/** 商品sku*/
|
||||
private String productSku;
|
||||
/** 拼团价格*/
|
|
@ -1,13 +1,13 @@
|
|||
package com.muyu.marketing.domain.resp;
|
||||
|
||||
import com.muyu.marketing.domain.req.AddProjectSkuList;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 添加拼团Resp
|
||||
|
@ -19,9 +19,11 @@ import java.util.List;
|
|||
@ApiModel(value = "ActivityTeamInfoReq", description = "添加拼团")
|
||||
public class ActivityTeamInfoAddResp {
|
||||
|
||||
private Long id;
|
||||
/** 商品id*/
|
||||
private Long projectId;
|
||||
|
||||
|
||||
/** 商品图片*/
|
||||
private String projectImage;
|
||||
|
||||
|
@ -36,6 +38,9 @@ public class ActivityTeamInfoAddResp {
|
|||
|
||||
/** 轮播图*/
|
||||
private String carouselImages;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
/** 结束时间*/
|
||||
private Date endTime;
|
||||
|
||||
/** 拼团策略id*/
|
||||
private Long strategyId;
|
||||
|
@ -44,7 +49,7 @@ public class ActivityTeamInfoAddResp {
|
|||
private String strategyType;
|
||||
|
||||
/** 商品规格List*/
|
||||
private List<AddProjectSkuList> projectSkuList;
|
||||
private String projectSkuList;
|
||||
|
||||
/** 全重*/
|
||||
private Long weight;
|
||||
|
|
|
@ -48,10 +48,12 @@
|
|||
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
|
||||
<version>${dynamic-ds.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-product-cache</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-common-security</artifactId>
|
||||
|
|
|
@ -3,12 +3,12 @@ package com.muyu.marketing.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.ActivityTeamInfoListQueryModel;
|
||||
import com.muyu.marketing.domain.req.ActivityTeamInfoReq;
|
||||
import com.muyu.marketing.domain.req.TeamInfoListReq;
|
||||
import com.muyu.marketing.domain.resp.ActivityTeamInfoAddResp;
|
||||
import com.muyu.marketing.service.ActivityTeamInfoService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
* @author muyu
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("team")
|
||||
@RequestMapping("/team")
|
||||
public class ActivityTeamInfoController {
|
||||
|
||||
@Autowired
|
||||
|
@ -46,9 +46,9 @@ public class ActivityTeamInfoController {
|
|||
* 新增拼团活动
|
||||
*/
|
||||
@ApiOperation("添加拼团")
|
||||
@PostMapping("add")
|
||||
public Result<String> add(@RequestBody ActivityTeamInfoAddResp activityTeamInfoAddResp) {
|
||||
activityTeamInfoService.addActivityTeamInfo(activityTeamInfoAddResp);
|
||||
@PostMapping("/add")
|
||||
public Result<String> add(@RequestBody ActivityTeamInfoReq activityTeamInfoReq) {
|
||||
activityTeamInfoService.addActivityTeamInfo(activityTeamInfoReq);
|
||||
return Result.success("创建成功");
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ 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.domain.req.ActivityTeamInfoReq;
|
||||
import com.muyu.marketing.domain.resp.ActivityTeamInfoAddResp;
|
||||
|
||||
|
||||
|
@ -22,7 +23,7 @@ public interface ActivityTeamInfoService extends IService<ActivityTeamInfo> {
|
|||
/**
|
||||
* 添加拼团活动
|
||||
*/
|
||||
void addActivityTeamInfo(ActivityTeamInfoAddResp activityTeamInfoAddResp);
|
||||
void addActivityTeamInfo(ActivityTeamInfoReq activityTeamInfoReq);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -6,13 +6,17 @@ 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.ActivityTeamProductSkuInfo;
|
||||
import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel;
|
||||
import com.muyu.marketing.domain.model.ActivityTeamInfoListModel;
|
||||
import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel;
|
||||
import com.muyu.marketing.domain.resp.ActivityTeamInfoAddResp;
|
||||
import com.muyu.marketing.domain.model.ActivityTeamProductSkuInfoModel;
|
||||
import com.muyu.marketing.domain.req.ActivityTeamInfoReq;
|
||||
import com.muyu.marketing.domain.req.AddProjectSkuListReq;
|
||||
import com.muyu.marketing.mapper.ActivityTeamInfoMapper;
|
||||
import com.muyu.marketing.mapper.ActivityTeamProductSkuInfoMapper;
|
||||
import com.muyu.marketing.service.ActivityTeamInfoService;
|
||||
import com.muyu.marketing.service.ActivityTeamOpenInfoService;
|
||||
import com.muyu.marketing.service.ActivityTeamProductSkuInfoService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
@ -33,6 +37,8 @@ implements ActivityTeamInfoService {
|
|||
@Autowired
|
||||
private ActivityTeamOpenInfoService activityTeamOpenInfoService;
|
||||
|
||||
@Autowired
|
||||
private ActivityTeamProductSkuInfoMapper activityTeamProductSkuInfoMapper;
|
||||
/**
|
||||
* 团购活动列表
|
||||
*/
|
||||
|
@ -80,24 +86,29 @@ implements ActivityTeamInfoService {
|
|||
* 添加 拼团 活动
|
||||
*/
|
||||
@Override
|
||||
public void addActivityTeamInfo(ActivityTeamInfoAddResp addResp) {
|
||||
public void addActivityTeamInfo(ActivityTeamInfoReq activityTeamInfoReq) {
|
||||
|
||||
ActivityTeamInfo activityTeamInfo = ActivityTeamInfoAddModel.saveModelBuild(activityTeamInfoReq);
|
||||
boolean save = this.save(activityTeamInfo);
|
||||
|
||||
//添加 拼团规格表
|
||||
if (save){
|
||||
Long projectId = activityTeamInfo.getId();//活动id
|
||||
Long goodsId = activityTeamInfo.getProductId();
|
||||
List<AddProjectSkuListReq> skuList = activityTeamInfoReq.getProjectSkuList();
|
||||
|
||||
skuList.forEach(skuInfo->{
|
||||
ActivityTeamProductSkuInfoModel.saveModelBuild(projectId,goodsId,skuInfo);
|
||||
});
|
||||
|
||||
//查询 商品
|
||||
ActivityTeamInfo build = ActivityTeamInfo.builder()
|
||||
.name(addResp.getActivityName())
|
||||
.productId(addResp.getProjectId())
|
||||
.productImage(addResp.getProjectImage())
|
||||
.introduction(addResp.getCarouselImages())
|
||||
.unit(addResp.getProjectUnit())
|
||||
.imageList(addResp.getCarouselImages())
|
||||
.strategyType(addResp.getStrategyType())
|
||||
.strategyId(addResp.getStrategyId())
|
||||
.build();
|
||||
|
||||
activityTeamInfoMapper.insert(build);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
# Tomcat
|
||||
server:
|
||||
port: 9204
|
||||
|
||||
# Spring
|
||||
spring:
|
||||
application:
|
||||
# 应用名称
|
||||
name: marketing-server
|
||||
name: muyu-marketing
|
||||
profiles:
|
||||
# 环境配置
|
||||
active: dev
|
||||
|
|
Loading…
Reference in New Issue