|
|
|
@ -1,9 +1,16 @@ |
|
|
|
package com.qniao.dam.application.handler.product; |
|
|
|
|
|
|
|
import com.qniao.dam.domain.aggregate.product.ProductAggregate; |
|
|
|
import com.qniao.dam.application.service.product.ProductApplicationService; |
|
|
|
import com.qniao.dam.domain.aggregate.externalproduct.valueobj.ExternalProductRel; |
|
|
|
import com.qniao.dam.domain.aggregate.product.entity.Product; |
|
|
|
import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; |
|
|
|
import com.qniao.dam.domian.aggregate.product.constant.ProductMainCategoryEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.product.constant.ProductStatusEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; |
|
|
|
import com.qniao.dam.infrastructure.constant.MqExchange; |
|
|
|
import com.qniao.dam.infrastructure.constant.MqQueue; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.ExternalProductRelDao; |
|
|
|
import com.qniao.das.domian.aggregate.siteactivity.event.SiteActivityCreatedMQEvent; |
|
|
|
import com.qniao.domain.BaseApplicationService; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
@ -15,21 +22,61 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
@Component |
|
|
|
@Slf4j |
|
|
|
public class ProductEventHandler extends BaseApplicationService { |
|
|
|
|
|
|
|
@Resource |
|
|
|
private ProductAggregate productAggregate; |
|
|
|
private ProductApplicationService productApplicationService; |
|
|
|
@Resource |
|
|
|
private ExternalProductRelDao externalProductRelDao; |
|
|
|
|
|
|
|
@RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.SITE_ACTIVITY_CREATED), |
|
|
|
exchange = @Exchange(value = MqExchange.SITE_ACTIVITY_CREATED, |
|
|
|
type = ExchangeTypes.FANOUT))) |
|
|
|
public void handleConfirmMatch(SiteActivityCreatedMQEvent event) { |
|
|
|
try { |
|
|
|
Product product = new Product(); |
|
|
|
}catch (Exception e){ |
|
|
|
List<Product> list = new ArrayList<>(); |
|
|
|
//男性线下活动产品 |
|
|
|
Product siteActivityManProduct = new Product(); |
|
|
|
siteActivityManProduct.setManageEnable(false); |
|
|
|
siteActivityManProduct.setProductType(ProductTypeEnum.CUSTOMER_VIRTUAL); |
|
|
|
siteActivityManProduct.setMainCategory(ProductMainCategoryEnum.SITE_ACTIVITY); |
|
|
|
siteActivityManProduct.setSubCategory(ProductSubCategoryEnum.SITE_ACTIVITY_MAN_FEE); |
|
|
|
siteActivityManProduct.setProductTitle(ProductSubCategoryEnum.SITE_ACTIVITY_MAN_FEE.getDesc()); |
|
|
|
siteActivityManProduct.setStatus(ProductStatusEnum.SOLD_OUTED); |
|
|
|
ProductSpec siteActivityManProductSpec = new ProductSpec(); |
|
|
|
siteActivityManProductSpec.setUnitOriginalPrice(event.getManEntryFee()); |
|
|
|
siteActivityManProductSpec.setUnitSellingPrice(event.getManEntryFee()); |
|
|
|
siteActivityManProductSpec.setAvailableStockNumber(-1); |
|
|
|
siteActivityManProduct.setStatus(ProductStatusEnum.SOLD_OUTED); |
|
|
|
siteActivityManProduct.setProductSpecList(Collections.singletonList(siteActivityManProductSpec)); |
|
|
|
list.add(siteActivityManProduct); |
|
|
|
//女性线下活动产品 |
|
|
|
Product siteActivityWomanProduct = new Product(); |
|
|
|
siteActivityWomanProduct.setManageEnable(false); |
|
|
|
siteActivityWomanProduct.setProductType(ProductTypeEnum.CUSTOMER_VIRTUAL); |
|
|
|
siteActivityWomanProduct.setMainCategory(ProductMainCategoryEnum.SITE_ACTIVITY); |
|
|
|
siteActivityWomanProduct.setSubCategory(ProductSubCategoryEnum.MARRIAGE_BOUNTY_WOMAN_FEE); |
|
|
|
siteActivityWomanProduct.setProductTitle(ProductSubCategoryEnum.MARRIAGE_BOUNTY_WOMAN_FEE.getDesc()); |
|
|
|
siteActivityWomanProduct.setStatus(ProductStatusEnum.SOLD_OUTED); |
|
|
|
ProductSpec siteActivityWomanProductSpec = new ProductSpec(); |
|
|
|
siteActivityWomanProductSpec.setUnitOriginalPrice(event.getWomanEntryFee()); |
|
|
|
siteActivityWomanProductSpec.setUnitSellingPrice(event.getWomanEntryFee()); |
|
|
|
siteActivityWomanProductSpec.setAvailableStockNumber(-1); |
|
|
|
siteActivityWomanProduct.setStatus(ProductStatusEnum.SOLD_OUTED); |
|
|
|
siteActivityWomanProduct.setProductSpecList(Collections.singletonList(siteActivityWomanProductSpec)); |
|
|
|
list.add(siteActivityWomanProduct); |
|
|
|
for (Product product : list) { |
|
|
|
productApplicationService.create(product, product.getProductSpecList()); |
|
|
|
ExternalProductRel externalProductRel = ExternalProductRel.build(event.getSiteActivityId(), product.getId()); |
|
|
|
externalProductRelDao.insert(externalProductRel); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("线下活动事件已创建处理异常:", e); |
|
|
|
} |
|
|
|
} |
|
|
|
|