30 changed files with 782 additions and 6 deletions
Split View
Diff Options
-
36dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/activity/constant/ActivityStatusEnum.java
-
4dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductMainCategoryEnum.java
-
66dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/activity/entity/Activity.java
-
72dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/activity/entity/ActivityProduct.java
-
4dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java
-
29dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/activity/user/ActivityUserCommandController.java
-
42dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/activity/user/request/ActivityDto.java
-
10dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/OrderUserCommandController.java
-
47dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/request/UserBatchSubmitOrderDto.java
-
38dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/activity/user/ActivityUserQueryController.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/activity/user/request/ActivityQueryDto.java
-
18dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/activity/user/response/ActivityDetailsVo.java
-
20dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/activity/user/response/ActivityProductListVo.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/activity/user/response/ActivityVo.java
-
8dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java
-
4dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/request/UserPageProductByOperatorQueryParam.java
-
18dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserPageProductByCustomerExtendVo.java
-
35dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserPageProductByCustomerGroupVo.java
-
74dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/activity/ActivityApplicationService.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java
-
18dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/activity/ActivityAggregate.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/activity/repository/ActivityRepository.java
-
24dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/activity/ActivityDao.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/activity/ActivityProductDao.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java
-
53dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/ActivityRepositoryImpl.java
-
3dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java
-
29dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java
-
15dating-agency-mall-server/src/main/resources/mapper/activity/ActivityMapper.xml
-
64dating-agency-mall-server/src/main/resources/mapper/product/ProductViewMapper.xml
@ -0,0 +1,36 @@ |
|||
package com.qniao.dam.domian.aggregate.activity.constant; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.EnumValue; |
|||
import com.fasterxml.jackson.annotation.JsonCreator; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonValue; |
|||
import com.qniao.dam.domian.aggregate.product.constant.ProductMainCategoryEnum; |
|||
import lombok.Getter; |
|||
|
|||
@Getter |
|||
@JsonFormat(shape = JsonFormat.Shape.OBJECT) |
|||
public enum ActivityStatusEnum { |
|||
|
|||
ENABLE(1, "启用"), |
|||
DISABLE(0, "停用"); |
|||
|
|||
@EnumValue |
|||
@JsonValue |
|||
private final Integer value; |
|||
private final String desc; |
|||
|
|||
ActivityStatusEnum(Integer value, String desc) { |
|||
this.value = value; |
|||
this.desc = desc; |
|||
} |
|||
|
|||
@JsonCreator |
|||
public static ActivityStatusEnum get(Object code) { |
|||
for (ActivityStatusEnum e : ActivityStatusEnum.values()) { |
|||
if (e.getValue().equals(code)) { |
|||
return e; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
} |
|||
@ -0,0 +1,66 @@ |
|||
package com.qniao.dam.domain.aggregate.activity.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import com.baomidou.mybatisplus.extension.activerecord.Model; |
|||
import com.qniao.domain.Entity; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import org.springframework.util.Assert; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import java.io.Serializable; |
|||
import java.time.LocalDateTime; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 活动表 |
|||
* |
|||
* @date 2024/04/07 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_activity") |
|||
public class Activity extends Entity<Activity> { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
|
|||
/** |
|||
* 活动标题 |
|||
*/ |
|||
@ApiModelProperty("活动标题") |
|||
private String activityName; |
|||
|
|||
/** |
|||
* 活动描述 |
|||
*/ |
|||
@ApiModelProperty("活动描述") |
|||
private String explain; |
|||
|
|||
/** |
|||
* 活动开始时间 |
|||
*/ |
|||
@ApiModelProperty("活动开始时间") |
|||
private LocalDateTime startTime; |
|||
|
|||
/** |
|||
* 活动结束时间 |
|||
*/ |
|||
@ApiModelProperty("活动结束时间") |
|||
private LocalDateTime endTime; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
@ApiModelProperty("状态") |
|||
private Integer status; |
|||
|
|||
|
|||
private transient List<ActivityProduct> activityProductList; |
|||
|
|||
public static void check(Activity entity){ |
|||
Assert.notNull(entity, "活动表不存在"); |
|||
} |
|||
} |
|||
@ -0,0 +1,72 @@ |
|||
package com.qniao.dam.domain.aggregate.activity.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import com.baomidou.mybatisplus.extension.activerecord.Model; |
|||
import com.qniao.domain.Entity; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import org.springframework.util.Assert; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import java.io.Serializable; |
|||
import java.math.BigDecimal; |
|||
import java.time.LocalDateTime; |
|||
|
|||
/** |
|||
* 活动产品表 |
|||
* |
|||
* @date 2024/04/07 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_activity_product") |
|||
public class ActivityProduct extends Entity<ActivityProduct> { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty("活动id") |
|||
private Long activityId; |
|||
|
|||
|
|||
/** |
|||
* 产品id |
|||
*/ |
|||
@ApiModelProperty("产品id") |
|||
private Long productId; |
|||
|
|||
/** |
|||
* 产品规格 |
|||
*/ |
|||
@ApiModelProperty("产品规格") |
|||
private Long productSpecId; |
|||
|
|||
/** |
|||
* 是否赠品 |
|||
*/ |
|||
@ApiModelProperty("是否赠品") |
|||
private Boolean freebie; |
|||
|
|||
@ApiModelProperty("活动原价") |
|||
private BigDecimal activityUnitOriginalPrice; |
|||
|
|||
@ApiModelProperty("活动售价") |
|||
private BigDecimal activityUnitSellingPrice; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@ApiModelProperty("") |
|||
private LocalDateTime createTime; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@ApiModelProperty("") |
|||
private LocalDateTime updateTime; |
|||
|
|||
public static void check(ActivityProduct entity){ |
|||
Assert.notNull(entity, "活动产品表不存在"); |
|||
} |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
package com.qniao.dam.api.command.activity.user; |
|||
|
|||
import com.qniao.dam.api.command.activity.user.request.ActivityDto; |
|||
import com.qniao.dam.application.service.activity.ActivityApplicationService; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
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; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Api(tags = "活动") |
|||
@RestController |
|||
@RequestMapping("user") |
|||
public class ActivityUserCommandController { |
|||
|
|||
@Resource |
|||
private ActivityApplicationService activityApplicationService; |
|||
|
|||
@ApiOperation("保存活动") |
|||
@PostMapping("save/activity") |
|||
public String saveActivity(@RequestBody ActivityDto activityDto){ |
|||
Activity activity = activityDto.trans2Domain(); |
|||
return activityApplicationService.saveActivity(activity); |
|||
} |
|||
} |
|||
@ -0,0 +1,42 @@ |
|||
package com.qniao.dam.api.command.activity.user.request; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.ActivityProduct; |
|||
import com.qniao.dam.domian.aggregate.activity.constant.ActivityStatusEnum; |
|||
import com.qniao.framework.utils.TypeConvertUtils; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.time.LocalDateTime; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
public class ActivityDto { |
|||
|
|||
@ApiModelProperty("活动id") |
|||
private Long id; |
|||
|
|||
@ApiModelProperty("活动标题") |
|||
private String activityName; |
|||
|
|||
@ApiModelProperty("活动描述") |
|||
private String explain; |
|||
|
|||
@ApiModelProperty("活动开始时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private LocalDateTime startTime; |
|||
|
|||
@ApiModelProperty("活动结束时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private LocalDateTime endTime; |
|||
|
|||
@ApiModelProperty("活动产品集合") |
|||
private List<ActivityProduct> activityProductList; |
|||
|
|||
public Activity trans2Domain(){ |
|||
Activity activity = TypeConvertUtils.convert(this,Activity.class); |
|||
activity.setStatus(ActivityStatusEnum.ENABLE.getValue()); |
|||
return activity; |
|||
} |
|||
} |
|||
@ -0,0 +1,47 @@ |
|||
package com.qniao.dam.api.command.order.user.request; |
|||
|
|||
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
|||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
|||
import com.qniao.dam.domain.aggregate.order.entity.Order; |
|||
import com.qniao.dam.domain.aggregate.order.entity.OrderItem; |
|||
import com.qniao.domain.Trans2DomainAssembler; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotNull; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
public class UserBatchSubmitOrderDto { |
|||
|
|||
@ApiModelProperty("征婚资料标识") |
|||
@NotNull(message = "征婚资料标识不能为空") |
|||
private Long miId; |
|||
|
|||
@ApiModelProperty("产品规格标识集合") |
|||
@NotNull(message = "产品规格标识集合不能为空") |
|||
private List<Long> productSpecIds; |
|||
|
|||
@ApiModelProperty("活动id") |
|||
private Long activityId; |
|||
|
|||
@ApiModelProperty("商品组类型 0 商品 1 活动产品") |
|||
private Integer groupType; |
|||
|
|||
public Order trans2Domain() { |
|||
Order order = new Order(); |
|||
order.setMiId(miId); |
|||
order.setActivityId(activityId); |
|||
order.setGroupType(groupType); |
|||
List<OrderItem> orderItemList = new ArrayList<>(); |
|||
productSpecIds.forEach(e->{ |
|||
OrderItem orderItem = new OrderItem(); |
|||
orderItem.setProductSpecId(e); |
|||
orderItem.setQuantity(1); |
|||
orderItemList.add(orderItem); |
|||
}); |
|||
order.setOrderItemList(orderItemList); |
|||
return order; |
|||
} |
|||
} |
|||
@ -0,0 +1,38 @@ |
|||
package com.qniao.dam.api.query.activity.user; |
|||
|
|||
import com.qniao.dam.api.query.activity.user.request.ActivityQueryDto; |
|||
import com.qniao.dam.api.query.activity.user.response.ActivityDetailsVo; |
|||
import com.qniao.dam.api.query.activity.user.response.ActivityVo; |
|||
import com.qniao.dam.application.service.activity.ActivityApplicationService; |
|||
import com.qniao.dau.infrastructure.constant.RequestHeaderFields; |
|||
import com.qniao.domain.QnPage; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@RestController |
|||
@RequestMapping("user") |
|||
@Api(tags = "活动查询") |
|||
public class ActivityUserQueryController { |
|||
|
|||
@Resource |
|||
private ActivityApplicationService activityApplicationService; |
|||
|
|||
@GetMapping("get/activity/by/operator/page") |
|||
@ApiOperation("运营获取活动列表") |
|||
public QnPage<ActivityVo> pageActivityOperation(PageUtil pageUtil, |
|||
ActivityQueryDto dto, |
|||
@RequestParam("userId") Long userId, |
|||
@RequestHeader(name = RequestHeaderFields.FIELD_ORGANIZATION_ID) Long orgId){ |
|||
return activityApplicationService.pageActivityOperation(pageUtil,dto,userId,orgId); |
|||
} |
|||
|
|||
@GetMapping("get/activity/by/operator/details") |
|||
@ApiOperation("运营获取活动详情") |
|||
public ActivityDetailsVo getActivityDetails(Long id){ |
|||
return activityApplicationService.getActivityDetails(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package com.qniao.dam.api.query.activity.user.request; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class ActivityQueryDto { |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
package com.qniao.dam.api.query.activity.user.response; |
|||
|
|||
import com.qniao.dam.api.query.product.user.response.UserPageProductByOperatorVo; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
public class ActivityDetailsVo extends Activity { |
|||
|
|||
@ApiModelProperty("产品集合") |
|||
private List<ActivityProductListVo> activityProductListVos; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,20 @@ |
|||
package com.qniao.dam.api.query.activity.user.response; |
|||
|
|||
import com.qniao.dam.api.query.product.user.response.UserPageProductByOperatorVo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
public class ActivityProductListVo extends UserPageProductByOperatorVo { |
|||
|
|||
@ApiModelProperty("是否赠品") |
|||
private Boolean freebie; |
|||
|
|||
@ApiModelProperty("活动原价") |
|||
private BigDecimal activityUnitOriginalPrice; |
|||
|
|||
@ApiModelProperty("活动售价") |
|||
private BigDecimal activityUnitSellingPrice; |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.api.query.activity.user.response; |
|||
|
|||
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class ActivityVo extends Activity { |
|||
|
|||
@ApiModelProperty("活动状态 0 未开始 1 进行中 2 已结束") |
|||
private Integer activeState; |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
package com.qniao.dam.api.query.product.user.response; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import io.swagger.models.auth.In; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserPageProductByCustomerExtendVo extends UserPageProductByCustomerVo{ |
|||
|
|||
@ApiModelProperty("分组类型 0 商品 1 活动") |
|||
private Integer groupType; |
|||
|
|||
@ApiModelProperty("商品名称") |
|||
private String productName; |
|||
|
|||
@ApiModelProperty("数据id") |
|||
private Long id; |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
package com.qniao.dam.api.query.product.user.response; |
|||
|
|||
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
|||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
public class UserPageProductByCustomerGroupVo { |
|||
|
|||
@ApiModelProperty("活动id") |
|||
@JsonSerialize(using = ToStringSerializer.class) |
|||
private Long activityId; |
|||
|
|||
@ApiModelProperty("商品组类型 0 商品 1 活动产品") |
|||
private Integer groupType; |
|||
|
|||
@ApiModelProperty("商品名称") |
|||
private String productName; |
|||
|
|||
@ApiModelProperty("原价") |
|||
private BigDecimal unitOriginalPrice; |
|||
|
|||
@ApiModelProperty("售价") |
|||
private BigDecimal unitSellingPrice; |
|||
|
|||
@ApiModelProperty("有效期") |
|||
private String validityPeriodValue; |
|||
|
|||
@ApiModelProperty("商品集合") |
|||
private List<UserPageProductByCustomerVo> productList; |
|||
} |
|||
@ -0,0 +1,74 @@ |
|||
package com.qniao.dam.application.service.activity; |
|||
|
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import com.qniao.dam.api.query.activity.user.request.ActivityQueryDto; |
|||
import com.qniao.dam.api.query.activity.user.response.ActivityDetailsVo; |
|||
import com.qniao.dam.api.query.activity.user.response.ActivityProductListVo; |
|||
import com.qniao.dam.api.query.activity.user.response.ActivityVo; |
|||
import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; |
|||
import com.qniao.dam.domain.aggregate.activity.ActivityAggregate; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.ActivityProduct; |
|||
import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityDao; |
|||
import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityProductDao; |
|||
import com.qniao.dam.infrastructure.persistent.dao.view.ProductViewDao; |
|||
import com.qniao.domain.BaseApplicationService; |
|||
import com.qniao.domain.QnPage; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
import com.qniao.framework.utils.TypeConvertUtils; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.ArrayList; |
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.stream.Collectors; |
|||
|
|||
@Service |
|||
@Slf4j |
|||
public class ActivityApplicationService extends BaseApplicationService { |
|||
|
|||
@Resource |
|||
private ActivityAggregate aggregate; |
|||
|
|||
@Resource |
|||
private ActivityDao activityDao; |
|||
|
|||
@Resource |
|||
private ProductViewDao productViewDao; |
|||
|
|||
@Resource |
|||
private ActivityProductDao activityProductDao; |
|||
|
|||
public String saveActivity(Activity activity){ |
|||
return aggregate.saveActivity(activity); |
|||
} |
|||
|
|||
public QnPage<ActivityVo> pageActivityOperation(PageUtil pageUtil, |
|||
ActivityQueryDto dto, |
|||
Long userId, |
|||
Long orgId){ |
|||
return PageUtil.convert(activityDao.pageActivityOperation(pageUtil.toPageWithoutOrders(),dto,userId,orgId)); |
|||
} |
|||
|
|||
public ActivityDetailsVo getActivityDetails(Long id){ |
|||
ActivityDetailsVo vo = TypeConvertUtils.convert(activityDao.selectById(id),ActivityDetailsVo.class); |
|||
List<ActivityProduct> activityProductList = activityProductDao.selectList(Wrappers.lambdaQuery(new ActivityProduct()).eq(ActivityProduct::getActivityId,vo.getId())); |
|||
Map<Long,ActivityProduct> map = activityProductList.stream().collect(Collectors.toMap(ActivityProduct::getProductId,ActivityProduct -> ActivityProduct)); |
|||
UserPageProductByOperatorQueryParam queryParam = new UserPageProductByOperatorQueryParam(); |
|||
queryParam.setProductIds(new ArrayList<>(map.keySet())); |
|||
List<ActivityProductListVo> activityProductListVo = TypeConvertUtils.convert(productViewDao.selectProductByOperator(queryParam),ActivityProductListVo.class); |
|||
activityProductListVo.forEach(v->{ |
|||
ActivityProduct av = map.get(v.getProductId()); |
|||
v.setFreebie(av.getFreebie()); |
|||
v.setActivityUnitOriginalPrice(av.getActivityUnitOriginalPrice()); |
|||
v.setUnitOriginalPrice(av.getActivityUnitOriginalPrice()); |
|||
}); |
|||
vo.setActivityProductListVos(activityProductListVo); |
|||
return vo; |
|||
} |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
package com.qniao.dam.domain.aggregate.activity; |
|||
|
|||
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
|||
import com.qniao.dam.domain.aggregate.activity.repository.ActivityRepository; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Service |
|||
public class ActivityAggregate { |
|||
|
|||
@Resource |
|||
private ActivityRepository activityRepository; |
|||
|
|||
public String saveActivity(Activity activity){ |
|||
return activityRepository.save(activity).toString(); |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package com.qniao.dam.domain.aggregate.activity.repository; |
|||
|
|||
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
|||
import com.qniao.domain.Repository; |
|||
|
|||
public interface ActivityRepository extends Repository<Activity, Long> { |
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.activity; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.qniao.dam.api.query.activity.user.request.ActivityQueryDto; |
|||
import com.qniao.dam.api.query.activity.user.response.ActivityVo; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
|||
import com.qniao.domain.QnPage; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
/** |
|||
* 活动表 |
|||
* |
|||
* @date 2024/04/07 |
|||
*/ |
|||
public interface ActivityDao extends BaseMapper<Activity> { |
|||
|
|||
IPage<ActivityVo> pageActivityOperation(Page<Object> pageWithoutOrders, |
|||
@Param("dto") ActivityQueryDto dto, |
|||
@Param("userId") Long userId, |
|||
@Param("orgId") Long orgId); |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.activity; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.ActivityProduct; |
|||
|
|||
/** |
|||
* 活动产品表 |
|||
* |
|||
* @date 2024/04/07 |
|||
*/ |
|||
public interface ActivityProductDao extends BaseMapper<ActivityProduct> { |
|||
} |
|||
@ -0,0 +1,53 @@ |
|||
package com.qniao.dam.infrastructure.persistent.repository.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
|||
import com.qniao.dam.domain.aggregate.activity.entity.ActivityProduct; |
|||
import com.qniao.dam.domain.aggregate.activity.repository.ActivityRepository; |
|||
import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityDao; |
|||
import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityProductDao; |
|||
import com.qniao.framework.utils.SnowFlake; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
public class ActivityRepositoryImpl implements ActivityRepository { |
|||
|
|||
@Resource |
|||
private ActivityDao activityDao; |
|||
|
|||
@Resource |
|||
private ActivityProductDao activityProductDao; |
|||
|
|||
@Resource |
|||
private SnowFlake snowFlake; |
|||
|
|||
@Override |
|||
public Activity load(Long id) { |
|||
Activity activity = activityDao.selectById(id); |
|||
return activity; |
|||
} |
|||
|
|||
@Override |
|||
public Long save(Activity entity) { |
|||
if(entity.getId() != null){ |
|||
entity.setId(snowFlake.nextId()); |
|||
activityDao.insert(entity); |
|||
if(entity.getActivityProductList() != null){ |
|||
entity.getActivityProductList().forEach(e->{ |
|||
e.setActivityId(entity.getId()); |
|||
activityProductDao.insert(e); |
|||
}); |
|||
} |
|||
}else{ |
|||
activityDao.updateById(entity); |
|||
activityProductDao.delete(Wrappers.lambdaUpdate(new ActivityProduct()).eq(ActivityProduct::getActivityId,entity.getId())); |
|||
if(entity.getActivityProductList() != null){ |
|||
entity.getActivityProductList().forEach(e->{ |
|||
e.setActivityId(entity.getId()); |
|||
activityProductDao.insert(e); |
|||
}); |
|||
} |
|||
} |
|||
return entity.getId(); |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.activity.ActivityDao"> |
|||
<select id="pageActivityOperation" resultType="com.qniao.dam.api.query.activity.user.response.ActivityVo"> |
|||
SELECT *, |
|||
CASE |
|||
WHEN start_time > NOW() AND end_time > NOW() THEN 0 |
|||
WHEN start_time <= NOW() AND end_time >= NOW() THEN 1 |
|||
WHEN start_time < NOW() AND end_time < NOW() THEN 2 |
|||
ELSE |
|||
-1 |
|||
END activeState |
|||
FROM da_activity |
|||
</select> |
|||
</mapper> |
|||
Write
Preview
Loading…
Cancel
Save