25 changed files with 475 additions and 3 deletions
Split View
Diff Options
-
2dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/order/constant/OrderTypeEnum.java
-
1dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java
-
38dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/entity/MarriageBountyOrder.java
-
35dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/entity/MarriageBountyOrderReward.java
-
22dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderProductRecord.java
-
29dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderProductSpecRecord.java
-
20dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderRel.java
-
29dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderRewardReceiveRecord.java
-
4dating-agency-mall-server/pom.xml
-
6dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java
-
4dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderAggregate.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/repository/MarriageBountyOrderRepository.java
-
10dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java
-
76dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/config/MqBeanFactoryPostProcessor.java
-
27dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/config/RabbitmqConfig.java
-
6dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java
-
9dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqQueue.java
-
9dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqRoutingKey.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MarriageBountyOrderDao.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MarriageBountyOrderProductRecordDao.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MarriageBountyOrderProductSpecRecordDao.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MarriageBountyOrderRelDao.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MarriageBountyOrderRewardDao.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MarriageBountyOrderRewardReceiveRecordDao.java
-
102dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/MarriageBountyOrderRepositoryImpl.java
@ -0,0 +1,38 @@ |
|||
package com.qniao.dam.domain.aggregate.marriagebounty.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderProductRecord; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRel; |
|||
import com.qniao.domain.Entity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_marriage_bounty_order") |
|||
public class MarriageBountyOrder extends Entity<MarriageBountyOrder> { |
|||
|
|||
@ApiModelProperty("用户标识") |
|||
private Long userId; |
|||
|
|||
@ApiModelProperty("征婚资料标识") |
|||
private Long miId; |
|||
|
|||
@ApiModelProperty("状态") |
|||
private Integer status; |
|||
|
|||
@ApiModelProperty("悬赏招亲订单标识关系") |
|||
private transient List<MarriageBountyOrderRel> orderRelList; |
|||
|
|||
@ApiModelProperty("悬赏招亲订单") |
|||
private transient List<MarriageBountyOrderProductRecord> productRecordList; |
|||
|
|||
@ApiModelProperty("悬赏招亲订单奖励") |
|||
private transient List<MarriageBountyOrderReward> orderRewardList; |
|||
private transient List<MarriageBountyOrderReward> insertOrderRewardList; |
|||
private transient List<MarriageBountyOrderReward> updateOrderRewardList; |
|||
private transient List<MarriageBountyOrderReward> deleteOrderRewardList; |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
package com.qniao.dam.domain.aggregate.marriagebounty.entity; |
|||
|
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRewardReceiveRecord; |
|||
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; |
|||
import com.qniao.domain.Entity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_marriage_bounty_order_reward") |
|||
public class MarriageBountyOrderReward extends Entity<MarriageBountyOrderReward> { |
|||
|
|||
@ApiModelProperty("悬赏招亲订单标识") |
|||
private Long marriageBountyOrderId; |
|||
|
|||
@ApiModelProperty("奖励分类") |
|||
private ProductSubCategoryEnum rewardCategory; |
|||
|
|||
@ApiModelProperty("奖励金额") |
|||
private BigDecimal rewardAmount; |
|||
|
|||
@ApiModelProperty("是否领取") |
|||
private Boolean isReceive; |
|||
|
|||
@ApiModelProperty("悬赏招亲订单奖励领取记录") |
|||
private transient List<MarriageBountyOrderRewardReceiveRecord> rewardReceiveRecordList; |
|||
|
|||
} |
|||
@ -0,0 +1,22 @@ |
|||
package com.qniao.dam.domain.aggregate.marriagebounty.valueobj; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.domain.ValueObject; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_marriage_bounty_order_product_record") |
|||
public class MarriageBountyOrderProductRecord extends ValueObject<MarriageBountyOrderProductRecord> { |
|||
|
|||
@ApiModelProperty("悬赏招亲订单标识") |
|||
private Long marriageBountyOrderId; |
|||
|
|||
@ApiModelProperty("悬赏招亲订单产品规格记录") |
|||
private transient List<MarriageBountyOrderProductSpecRecord> productSpecRecordList; |
|||
|
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
package com.qniao.dam.domain.aggregate.marriagebounty.valueobj; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; |
|||
import com.qniao.domain.ValueObject; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_marriage_bounty_order_product_spec_record") |
|||
public class MarriageBountyOrderProductSpecRecord extends ValueObject<MarriageBountyOrderProductSpecRecord> { |
|||
|
|||
@ApiModelProperty("悬赏招亲订单产品记录标识") |
|||
private Long MarriageBountyOrderProductRecordId; |
|||
|
|||
@ApiModelProperty("产品次分类") |
|||
private ProductSubCategoryEnum subCategory; |
|||
|
|||
@ApiModelProperty("原价") |
|||
private BigDecimal unitOriginalPrice; |
|||
|
|||
@ApiModelProperty("售价") |
|||
private BigDecimal unitSellingPrice; |
|||
|
|||
} |
|||
@ -0,0 +1,20 @@ |
|||
package com.qniao.dam.domain.aggregate.marriagebounty.valueobj; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.domain.ValueObject; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_marriage_bounty_order_rel") |
|||
public class MarriageBountyOrderRel extends ValueObject<MarriageBountyOrderRel> { |
|||
|
|||
@ApiModelProperty("悬赏招亲订单标识") |
|||
private Long marriageBountyOrderId; |
|||
|
|||
@ApiModelProperty("订单标识") |
|||
private Long orderId; |
|||
|
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
package com.qniao.dam.domain.aggregate.marriagebounty.valueobj; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; |
|||
import com.qniao.domain.ValueObject; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_marriage_bounty_order_reward_receive_record") |
|||
public class MarriageBountyOrderRewardReceiveRecord extends ValueObject<MarriageBountyOrderRewardReceiveRecord> { |
|||
|
|||
@ApiModelProperty("悬赏招亲订单奖励标识") |
|||
private Long marriageBountyOrderRewardId; |
|||
|
|||
@ApiModelProperty("奖励类型") |
|||
private RewardTypeEnum rewardType; |
|||
|
|||
@ApiModelProperty("领取人标识") |
|||
private Long receiver; |
|||
|
|||
@ApiModelProperty("领取金额") |
|||
private BigDecimal receivedAmount; |
|||
|
|||
} |
|||
@ -0,0 +1,4 @@ |
|||
package com.qniao.dam.application.service.marriagebounty; |
|||
|
|||
public class MarriageBountyOrderAggregate { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package com.qniao.dam.application.service.marriagebounty.repository; |
|||
|
|||
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder; |
|||
import com.qniao.domain.Repository; |
|||
|
|||
public interface MarriageBountyOrderRepository extends Repository<MarriageBountyOrder,Long> { |
|||
} |
|||
@ -0,0 +1,76 @@ |
|||
package com.qniao.dam.infrastructure.config; |
|||
|
|||
import com.qniao.dam.infrastructure.constant.MqExchange; |
|||
import com.qniao.dam.infrastructure.constant.MqQueue; |
|||
import org.springframework.amqp.core.*; |
|||
import org.springframework.beans.BeansException; |
|||
import org.springframework.beans.factory.config.BeanDefinition; |
|||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; |
|||
import org.springframework.beans.factory.support.BeanDefinitionRegistry; |
|||
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.lang.reflect.Constructor; |
|||
import java.lang.reflect.Field; |
|||
import java.util.Arrays; |
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 优先批量注册bean |
|||
* |
|||
* @description: |
|||
* @author: zhoukunhua |
|||
* @date: 2020-07-31 9:27 AM |
|||
*/ |
|||
@Component |
|||
public class MqBeanFactoryPostProcessor implements BeanDefinitionRegistryPostProcessor { |
|||
|
|||
private final Map<String, Class<? extends AbstractExchange>> exchangeType = new HashMap<String, Class<? extends AbstractExchange>>() { |
|||
{ |
|||
put("direct", DirectExchange.class); |
|||
put("fanout", FanoutExchange.class); |
|||
put("topic", TopicExchange.class); |
|||
} |
|||
}; |
|||
|
|||
@Override |
|||
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { |
|||
|
|||
try { |
|||
Field[] declaredFields = MqQueue.class.getDeclaredFields(); |
|||
for (Field f : declaredFields) { |
|||
String queue = (String) f.get(MqQueue.class); |
|||
beanFactory.registerSingleton(queue, new Queue(queue)); |
|||
} |
|||
declaredFields = MqExchange.class.getDeclaredFields(); |
|||
for (Field f : declaredFields) { |
|||
String exchangeName = (String) f.get(MqExchange.class); |
|||
String exchangeTypeName = exchangeName.substring(0, exchangeName.indexOf(".")); |
|||
Class<? extends AbstractExchange> exchangeClass = exchangeType.get(exchangeTypeName); |
|||
if (exchangeClass != null) { |
|||
Constructor<? extends AbstractExchange> constructor = exchangeClass.getDeclaredConstructor(String.class); |
|||
Exchange o = constructor.newInstance(exchangeName); |
|||
beanFactory.registerSingleton(exchangeName, o); |
|||
} |
|||
} |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
|
|||
private boolean containsBeanDefinition(BeanDefinitionRegistry beanDefinitionRegistry, String... beans) { |
|||
|
|||
return Arrays.stream(beans).allMatch(beanDefinitionRegistry::containsBeanDefinition); |
|||
} |
|||
|
|||
@Override |
|||
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException { |
|||
|
|||
// eureka的bug,参考 https://github.com/spring-cloud/spring-cloud-netflix/issues/1952 |
|||
if (containsBeanDefinition(beanDefinitionRegistry, "feignContext", "eurekaAutoServiceRegistration")) { |
|||
BeanDefinition bd = beanDefinitionRegistry.getBeanDefinition("feignContext"); |
|||
bd.setDependsOn("eurekaAutoServiceRegistration"); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
package com.qniao.dam.infrastructure.config; |
|||
|
|||
import com.qniao.ppf.infrastructure.constant.MqQueue; |
|||
import com.qniao.ppf.infrastructure.constant.PrintingPackagingFactoryMqExchange; |
|||
import org.springframework.amqp.core.Binding; |
|||
import org.springframework.amqp.core.BindingBuilder; |
|||
import org.springframework.amqp.core.FanoutExchange; |
|||
import org.springframework.amqp.core.Queue; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
|
|||
@Configuration |
|||
public class RabbitmqConfig { |
|||
|
|||
|
|||
@Bean |
|||
Binding paymentOrderPaidBinding() { |
|||
return BindingBuilder.bind(new Queue(MqQueue.PAYMENT_ORDER_PAID)) |
|||
.to(new FanoutExchange(PrintingPackagingFactoryMqExchange.PAYMENT_ORDER_PAID)); |
|||
} |
|||
|
|||
@Bean |
|||
Binding walletPaymentOrderPaidBinding() { |
|||
return BindingBuilder.bind(new Queue(MqQueue.WALLET_PAYMENT_ORDER_PAID)) |
|||
.to(new FanoutExchange(PrintingPackagingFactoryMqExchange.WALLET_PAYMENT_ORDER_PAID)); |
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
package com.qniao.dam.infrastructure.constant; |
|||
|
|||
public interface MqExchange { |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
package com.qniao.dam.infrastructure.constant; |
|||
|
|||
/** |
|||
* @author zhoukunhua |
|||
* @date 2022-03-15 |
|||
*/ |
|||
public interface MqQueue { |
|||
|
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
package com.qniao.dam.infrastructure.constant; |
|||
|
|||
/** |
|||
* @author Lzk |
|||
* @date 2022/7/16 |
|||
**/ |
|||
public interface MqRoutingKey { |
|||
|
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.domain; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder; |
|||
|
|||
public interface MarriageBountyOrderDao extends BaseMapper<MarriageBountyOrder> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.domain; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderProductRecord; |
|||
|
|||
public interface MarriageBountyOrderProductRecordDao extends BaseMapper<MarriageBountyOrderProductRecord> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.domain; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderProductSpecRecord; |
|||
|
|||
public interface MarriageBountyOrderProductSpecRecordDao extends BaseMapper<MarriageBountyOrderProductSpecRecord> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.domain; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRel; |
|||
|
|||
public interface MarriageBountyOrderRelDao extends BaseMapper<MarriageBountyOrderRel> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.domain; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrderReward; |
|||
|
|||
public interface MarriageBountyOrderRewardDao extends BaseMapper<MarriageBountyOrderReward> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.domain; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRewardReceiveRecord; |
|||
|
|||
public interface MarriageBountyOrderRewardReceiveRecordDao extends BaseMapper<MarriageBountyOrderRewardReceiveRecord> { |
|||
} |
|||
@ -0,0 +1,102 @@ |
|||
package com.qniao.dam.infrastructure.persistent.repository.impl; |
|||
|
|||
import cn.hutool.core.collection.CollUtil; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.qniao.dam.application.service.marriagebounty.repository.MarriageBountyOrderRepository; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrderReward; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderProductRecord; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderProductSpecRecord; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRel; |
|||
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRewardReceiveRecord; |
|||
import com.qniao.dam.infrastructure.persistent.dao.domain.*; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.Objects; |
|||
import java.util.stream.Collectors; |
|||
|
|||
@Service |
|||
public class MarriageBountyOrderRepositoryImpl implements MarriageBountyOrderRepository { |
|||
|
|||
@Resource |
|||
private MarriageBountyOrderDao marriageBountyOrderDao; |
|||
@Resource |
|||
private MarriageBountyOrderRelDao marriageBountyOrderRelDao; |
|||
@Resource |
|||
private MarriageBountyOrderRewardDao marriageBountyOrderRewardDao; |
|||
@Resource |
|||
private MarriageBountyOrderRewardReceiveRecordDao marriageBountyOrderRewardReceiveRecordDao; |
|||
@Resource |
|||
private MarriageBountyOrderProductRecordDao marriageBountyOrderProductRecordDao; |
|||
@Resource |
|||
private MarriageBountyOrderProductSpecRecordDao marriageBountyOrderProductSpecRecordDao; |
|||
|
|||
@Override |
|||
public MarriageBountyOrder load(Long id) { |
|||
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderDao.selectById(id); |
|||
if (Objects.nonNull(marriageBountyOrder)) { |
|||
marriageBountyOrder.setOrderRelList(marriageBountyOrderRelDao.selectList(new LambdaQueryWrapper<MarriageBountyOrderRel>() |
|||
.eq(MarriageBountyOrderRel::getMarriageBountyOrderId, id))); |
|||
marriageBountyOrder.setOrderRewardList(marriageBountyOrderRewardDao.selectList(new LambdaQueryWrapper<MarriageBountyOrderReward>() |
|||
.eq(MarriageBountyOrderReward::getMarriageBountyOrderId, id))); |
|||
marriageBountyOrder.getOrderRewardList().forEach(orderReward -> { |
|||
orderReward.setRewardReceiveRecordList(marriageBountyOrderRewardReceiveRecordDao.selectList(new LambdaQueryWrapper<MarriageBountyOrderRewardReceiveRecord>() |
|||
.eq(MarriageBountyOrderRewardReceiveRecord::getMarriageBountyOrderRewardId, orderReward.getId()))); |
|||
}); |
|||
marriageBountyOrder.setProductRecordList(marriageBountyOrderProductRecordDao.selectList(new LambdaQueryWrapper<MarriageBountyOrderProductRecord>() |
|||
.eq(MarriageBountyOrderProductRecord::getMarriageBountyOrderId, id))); |
|||
marriageBountyOrder.getProductRecordList().forEach(productRecord -> { |
|||
productRecord.setProductSpecRecordList(marriageBountyOrderProductSpecRecordDao.selectList(new LambdaQueryWrapper<MarriageBountyOrderProductSpecRecord>() |
|||
.eq(MarriageBountyOrderProductSpecRecord::getMarriageBountyOrderProductRecordId, productRecord.getId()))); |
|||
; |
|||
}); |
|||
} |
|||
return marriageBountyOrder; |
|||
} |
|||
|
|||
@Transactional(rollbackFor = Exception.class) |
|||
@Override |
|||
public Long save(MarriageBountyOrder entity) { |
|||
if (Objects.isNull(entity.getId()) || Objects.isNull(marriageBountyOrderDao.selectById(entity.getId()))) { |
|||
marriageBountyOrderDao.insert(entity); |
|||
} else { |
|||
marriageBountyOrderDao.updateById(entity); |
|||
} |
|||
if (CollUtil.isNotEmpty(entity.getOrderRelList())) { |
|||
entity.getOrderRelList().forEach(orderRel -> { |
|||
orderRel.setMarriageBountyOrderId(entity.getId()); |
|||
marriageBountyOrderRelDao.insert(orderRel); |
|||
}); |
|||
} |
|||
if (CollUtil.isNotEmpty(entity.getProductRecordList())) { |
|||
entity.getProductRecordList().forEach(productRecord -> { |
|||
productRecord.setMarriageBountyOrderId(entity.getId()); |
|||
marriageBountyOrderProductRecordDao.insert(productRecord); |
|||
if (CollUtil.isNotEmpty(productRecord.getProductSpecRecordList())) { |
|||
productRecord.getProductSpecRecordList().forEach(productSpecRecord -> { |
|||
productSpecRecord.setMarriageBountyOrderProductRecordId(productRecord.getId()); |
|||
marriageBountyOrderProductSpecRecordDao.insert(productSpecRecord); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
if (CollUtil.isNotEmpty(entity.getInsertOrderRewardList())) { |
|||
entity.getInsertOrderRewardList().forEach(orderReward -> { |
|||
orderReward.setMarriageBountyOrderId(entity.getId()); |
|||
marriageBountyOrderRewardDao.insert(orderReward); |
|||
}); |
|||
} |
|||
if (CollUtil.isNotEmpty(entity.getUpdateOrderRewardList())) { |
|||
entity.getUpdateOrderRewardList().forEach(orderReward -> { |
|||
orderReward.setMarriageBountyOrderId(entity.getId()); |
|||
marriageBountyOrderRewardDao.updateById(orderReward); |
|||
}); |
|||
} |
|||
if (CollUtil.isNotEmpty(entity.getDeleteOrderRewardList())) { |
|||
marriageBountyOrderRewardDao.deleteBatchIds(entity.getDeleteOrderRewardList().stream().map(MarriageBountyOrderReward::getId).collect(Collectors.toList())); |
|||
} |
|||
return entity.getId(); |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save