From 0af4429cca70d12e8e84cb2773b76ed1a72128c4 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 10 二月 2025 14:53:59 +0800
Subject: [PATCH] 管理后台:会员管理-增加会员分类
---
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java | 106 ++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 76 insertions(+), 30 deletions(-)
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
index e98266a..e678045 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
@@ -19,18 +19,18 @@
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.OrderAuctionBond;
+import com.ruoyi.system.api.domain.dto.BondReturnDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
import com.ruoyi.system.api.domain.dto.RefundDTO;
import com.ruoyi.system.api.domain.vo.PayInfoVO;
import com.ruoyi.system.api.feignClient.AuctionClient;
-
-import java.time.LocalDateTime;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.Set;
+import java.util.Optional;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@@ -64,34 +64,46 @@
@Override
public R<T> getOrderAuctionBond(OrderAuctionBondDTO orderAuctionBondDTO) {
-
+ log.info("getOrderAuctionBond:{}", orderAuctionBondDTO);
LambdaQueryWrapper<OrderAuctionBond> wrapper = Wrappers.lambdaQuery();
- wrapper.notIn(OrderAuctionBond::getMemberId, orderAuctionBondDTO.getUserList());
+ if (orderAuctionBondDTO.getUserList().size()>0){
+ wrapper.notIn(OrderAuctionBond::getMemberId, orderAuctionBondDTO.getUserList());
+ }
wrapper.eq(OrderAuctionBond::getDelFlag, 0);
wrapper.eq(OrderAuctionBond::getAuctionSalesroomId, orderAuctionBondDTO.getAuctionSalesroomId());
List<OrderAuctionBond> orderAuctionBondList = this.list(wrapper);
+
for (OrderAuctionBond orderAuctionBond : orderAuctionBondList) {
LambdaQueryWrapper<Paylog> wrapper1 = Wrappers.lambdaQuery();
wrapper1.eq(Paylog::getOutTradeNo, orderAuctionBond.getOrderNo());
wrapper1.last("limit 1");
Paylog paylog = iPaylogService.getOne(wrapper1);
- if (paylog.getPayType() == 1) {//支付宝
- boolean bo = paylogServiceImpl.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), orderAuctionBond.getBond().doubleValue());
- if (!bo) {
- return R.fail("支付宝退款失败!");
+ log.info("paylog:{}", paylog);
+ if (Objects.nonNull(paylog)) {
+ if (paylog.getPayType() == 1) {// 支付宝
+ boolean bo = paylogServiceImpl.refundForAlipay(paylog.getOutTradeNo(),
+ paylog.getTradeNo(), orderAuctionBond.getBond().doubleValue());
+ if (!bo) {
+ return R.fail("支付宝退款失败!");
+ }
+ } else {// 微信
+ String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
+ Integer refundFee = Integer.parseInt(
+ refundMoney.substring(0, refundMoney.length() - 3));
+ String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
+ Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3));
+ refundFee = Integer.parseInt(money.substring(0, money.length() - 3));
+ String refundNo = OrderUtil.getOrderNoForPrefix("R");
+ boolean bo = paylogServiceImpl.refundForWxpay(4, paylog.getTradeNo(),
+ paylog.getOutTradeNo(), refundNo, totalFee, refundFee, "2");
+ if (!bo) {
+ return R.fail("微信退款失败!");
+ }
}
- } else {//微信
- String refundMoney = SinataUtil.doubleRetainTwo(orderAuctionBond.getBond().doubleValue() * 100d);
- Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3));
- String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
- Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3));
- boolean bo = paylogServiceImpl.refundForWxpay(1, paylog.getTradeNo(), paylog.getOutTradeNo(), orderAuctionBond.getOrderNo(), totalFee, refundFee, "2");
- if (!bo) {
- return R.fail("微信退款失败!");
- }
+ orderAuctionBond.setBoundStatus(BondStatusEnum.REFUNDED);
}
-
}
+ this.updateBatchById(orderAuctionBondList);
return R.ok();
}
@@ -131,24 +143,51 @@
@Override
public PayInfoVO SaveOrderAuctionBond(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
PayInfoVO payInfoVO = new PayInfoVO();
+ // 查询参与记录
+ Optional<OrderAuctionBond> orderAuctionBondOpt = this.lambdaQuery()
+ .eq(OrderAuctionBond::getMemberId, memberAuctionSalesroomBondDTO.getMemberId())
+ .eq(memberAuctionSalesroomBondDTO.getBondType()
+ .equals(AuctionOrderTypeEnum.AUCTION_ITEMS.getCode()),
+ OrderAuctionBond::getAuctionSalesroomId,
+ memberAuctionSalesroomBondDTO.getAuctionSalesroomId())
+ .eq(memberAuctionSalesroomBondDTO.getBondType()
+ .equals(AuctionOrderTypeEnum.REGULAR_ITEMS.getCode()),
+ OrderAuctionBond::getAuctionGoodsId,
+ memberAuctionSalesroomBondDTO.getAuctionGoodsId()).oneOpt();
+ if (orderAuctionBondOpt.isPresent()) {
+ OrderAuctionBond orderAuctionBond = orderAuctionBondOpt.get();
+ orderAuctionBond.setPaymentMethod(
+ PaymentMethodEnum.fromCode(memberAuctionSalesroomBondDTO.getPaymentMethod()));
+ orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
+ this.updateById(orderAuctionBond);
+ payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
+ if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
+ payInfoVO.setType(2);
+ } else {
+ payInfoVO.setType(1);
+ }
+ payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
+ payInfoVO.setSubject("保证金");
+ payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
+ payInfoVO.setBody("保证金");
+ return payInfoVO;
+ }
if (memberAuctionSalesroomBondDTO.getBondType() == 1) {
AuctionGoods data = auctionClient.getauctionGoodsOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
-
- if (LocalDateTime.now().isAfter(data.getEndTime())){
- throw new ServiceException("商品拍卖已结束");
- }
+ log.info("商品竞价立即报名的商品:{}", data);
if (data.getListingStatus().getCode()==1){
throw new ServiceException("商品拍卖下线");
}
- if (data.getBond()==null||data.getBond().intValue() == 0) {
+ if (data.getBond() == null || data.getBond().compareTo(BigDecimal.ZERO) == 0) {
OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
orderAuctionBond.setAuctionGoodsId(memberAuctionSalesroomBondDTO.getAuctionGoodsId());
orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
orderAuctionBond.setBond(data.getBond());
orderAuctionBond.setBoundStatus(BondStatusEnum.PAID);
- orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY);
+ orderAuctionBond.setBondType(AuctionOrderTypeEnum.REGULAR_ITEMS);
+ orderAuctionBond.setOrderTimeSx(data.getEndTime());
this.save(orderAuctionBond);
payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
payInfoVO.setType(0);
@@ -169,6 +208,7 @@
} else {
orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY);
}
+ log.info("保存保证金订单:{}", orderAuctionBond);
this.save(orderAuctionBond);
payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
@@ -183,8 +223,9 @@
}
} else {
AuctionSalesroom data = auctionClient.getauctionSalesroomOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
+ log.info("拍卖会报名的拍卖会:{}", data);
+ if (data.getBond() == null || data.getBond().compareTo(BigDecimal.ZERO) == 0) {
- if (data.getBond().intValue() == 0) {
OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
@@ -192,6 +233,8 @@
orderAuctionBond.setBond(data.getBond());
orderAuctionBond.setBoundStatus(BondStatusEnum.PAID);
orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
+ orderAuctionBond.setOrderTimeSx(data.getEndTime());
+ log.info("添加保证金为0的记录:{}", orderAuctionBond);
this.save(orderAuctionBond);
payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
payInfoVO.setType(0);
@@ -204,6 +247,7 @@
orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
orderAuctionBond.setBond(data.getBond());
+ orderAuctionBond.setOrderTimeSx(data.getEndTime());
orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY);
orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
@@ -211,6 +255,7 @@
} else {
orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY);
}
+ log.info("添加保证金不为0的记录:{}", orderAuctionBond);
this.save(orderAuctionBond);
payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
@@ -229,12 +274,13 @@
@Override
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
- public void returnBondByAuctionGoodsId(Long id) {
+ public void returnBondByAuctionGoodsId(BondReturnDTO bondReturnDTO) {
+ Long id = bondReturnDTO.getId();
List<OrderAuctionBond> list = this.lambdaQuery().eq(OrderAuctionBond::getAuctionGoodsId, id)
.eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID).list();
- Set<String> orderNoSet = list.stream().map(OrderAuctionBond::getOrderNo)
- .collect(Collectors.toSet());
- List<RefundDTO> refundDTOList = list.stream().map(item -> {
+ List<Long> memberIdList = bondReturnDTO.getMemberIdList();
+ List<RefundDTO> refundDTOList = list.stream()
+ .filter(r -> !memberIdList.contains(r.getMemberId())).map(item -> {
RefundDTO refundDTO = new RefundDTO();
refundDTO.setAmount(item.getBond());
refundDTO.setOrderNo(item.getOrderNo());
--
Gitblit v1.7.1