Browse Source

基础配置

master
张彭杰 1 year ago
parent
commit
faef826588
4 changed files with 62 additions and 4 deletions
  1. 1
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductMainCategoryEnum.java
  2. 4
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java
  3. 6
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/externalproduct/valueobj/ExternalProductRel.java
  4. 55
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/product/ProductEventHandler.java

1
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductMainCategoryEnum.java

@ -20,6 +20,7 @@ public enum ProductMainCategoryEnum {
CHAT_CARD(5,"聊天卡"),
VIP(6, "会员"),
MARRIAGE_BOUNTY(7, "悬赏招亲"),
SITE_ACTIVITY(8, "线下活动"),
MATCHMAKER(888,"红娘合伙人");

4
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java

@ -38,6 +38,10 @@ public enum ProductSubCategoryEnum {
MARRIAGE_BOUNTY_RESULT_GIFT(902, "悬赏招亲-结果礼金"),
SITE_ACTIVITY_MAN_FEE(1001, "线下活动男性费用"),
MARRIAGE_BOUNTY_WOMAN_FEE(1002, "线下活动女性费用"),
MATCHMAKER_FRANCHISE_FEE(88801, "红娘合伙人加盟费");
@EnumValue

6
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/externalproduct/valueobj/ExternalProductRel.java

@ -17,4 +17,10 @@ public class ExternalProductRel extends ValueObject<ExternalProductRel> {
@ApiModelProperty("产品标识")
private Long productId;
public static ExternalProductRel build(Long externalId, Long productId) {
ExternalProductRel rel = new ExternalProductRel();
rel.setExternalId(externalId);
rel.setProductId(productId);
return rel;
}
}

55
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/product/ProductEventHandler.java

@ -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);
}
}

Loading…
Cancel
Save