|
|
|
@ -1,15 +1,19 @@ |
|
|
|
package com.qniao.dam.query.marriagebounty.impl; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.qniao.dam.api.query.marriagebounty.user.response.UserGetMarriageBountyOrderPreRefundInfoVo; |
|
|
|
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder; |
|
|
|
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrderReward; |
|
|
|
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageBountyOrderDao; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageBountyOrderRewardDao; |
|
|
|
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService; |
|
|
|
import io.swagger.annotations.ApiModelProperty; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
@Service |
|
|
|
@ -21,7 +25,7 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ |
|
|
|
private MarriageBountyOrderRewardDao marriageBountyOrderRewardDao; |
|
|
|
|
|
|
|
@Override |
|
|
|
public MarriageBountyOrder queryBy(Long userId, Long miId,MarriageBountyOrderStatusEnum status) { |
|
|
|
public MarriageBountyOrder queryBy(Long userId, Long miId, MarriageBountyOrderStatusEnum status) { |
|
|
|
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderDao.selectOne(new LambdaQueryWrapper<MarriageBountyOrder>() |
|
|
|
.eq(MarriageBountyOrder::getUserId, userId) |
|
|
|
.eq(MarriageBountyOrder::getMiId, miId) |
|
|
|
@ -34,4 +38,25 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ |
|
|
|
} |
|
|
|
return marriageBountyOrder; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(Long userId, Long miId) { |
|
|
|
UserGetMarriageBountyOrderPreRefundInfoVo refundInfoVo = new UserGetMarriageBountyOrderPreRefundInfoVo(); |
|
|
|
MarriageBountyOrder marriageBountyOrder = queryBy(userId, miId, MarriageBountyOrderStatusEnum.MATCHMAKING); |
|
|
|
if (Objects.nonNull(marriageBountyOrder)) { |
|
|
|
BigDecimal refundableMeetingFee = BigDecimal.ZERO; |
|
|
|
BigDecimal refundableResultGift = BigDecimal.ZERO; |
|
|
|
for (MarriageBountyOrderReward orderReward : marriageBountyOrder.getUpdateOrderRewardList()) { |
|
|
|
if (!orderReward.getIsReceive()) { |
|
|
|
if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_MEETING_FEE.equals(orderReward.getRewardCategory())) { |
|
|
|
refundableMeetingFee = refundableMeetingFee.add(orderReward.getRewardAmount()); |
|
|
|
} else if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_RESULT_GIFT.equals(orderReward.getRewardCategory())) { |
|
|
|
refundableResultGift = refundableResultGift.add(orderReward.getRewardAmount()); |
|
|
|
} |
|
|
|
} |
|
|
|
refundInfoVo.setRefundable(refundableMeetingFee.compareTo(BigDecimal.ZERO) > 0 || refundableResultGift.compareTo(BigDecimal.ZERO) > 0); |
|
|
|
} |
|
|
|
} |
|
|
|
return refundInfoVo; |
|
|
|
} |
|
|
|
} |