From e40c0643e26447d89f50c0118da13dba80684089 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期四, 30 五月 2024 14:50:26 +0800 Subject: [PATCH] 1.清除所有冗余字段 2.提交【管理后台】-拍卖场管理 添加/编辑接口 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java | 192 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 178 insertions(+), 14 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 7f5ccd6..15434b5 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 @@ -2,16 +2,30 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ruoyi.order.domain.pojo.OrderAuctionBond; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; +import com.ruoyi.common.core.enums.BondStatusEnum; +import com.ruoyi.common.core.enums.PaymentMethodEnum; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.order.domain.pojo.Paylog; import com.ruoyi.order.mapper.OrderAuctionBondMapper; import com.ruoyi.order.service.IOrderAuctionBondService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.order.service.IPaylogService; +import com.ruoyi.order.util.OrderUtil; +import com.ruoyi.order.util.SinataUtil; +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.MemberAuctionSalesroomBondDTO; import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.awt.*; +import com.ruoyi.system.api.domain.vo.PayInfoVO; +import com.ruoyi.system.api.feignClient.AuctionClient; import java.util.List; +import javax.annotation.Resource; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.stereotype.Service; /** * <p> @@ -26,16 +40,166 @@ @Resource private IOrderAuctionBondService iOrderAuctionBondService; - @Override - public void getOrderAuctionBond( OrderAuctionBondDTO orderAuctionBondDTO) { - LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery(); - wrapper.notIn(OrderAuctionBond::getMemberId,orderAuctionBondDTO.getUserList()); - wrapper.eq(OrderAuctionBond::getDelFlag,0); - wrapper.eq(OrderAuctionBond::getAuctionSalesroomId,orderAuctionBondDTO.getAuctionSalesroomId()); - List<OrderAuctionBond> orderAuctionBondList=iOrderAuctionBondService.list(wrapper); - for (OrderAuctionBond orderAuctionBond:orderAuctionBondList){ + @Resource + private IPaylogService iPaylogService; + + @Resource + private PaylogServiceImpl paylogServiceImpl; + + + @Resource + private AuctionClient auctionClient; + + + @Override + public R<T> getOrderAuctionBond(OrderAuctionBondDTO orderAuctionBondDTO) { + + LambdaQueryWrapper<OrderAuctionBond> wrapper = Wrappers.lambdaQuery(); + wrapper.notIn(OrderAuctionBond::getMemberId, orderAuctionBondDTO.getUserList()); + wrapper.eq(OrderAuctionBond::getDelFlag, 0); + wrapper.eq(OrderAuctionBond::getAuctionSalesroomId, orderAuctionBondDTO.getAuctionSalesroomId()); + List<OrderAuctionBond> orderAuctionBondList = iOrderAuctionBondService.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("支付宝退款失败!"); + } + } 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("微信退款失败!"); + } + } } + return R.ok(); + } + + /** + * 查询保证金订单列表 + * + * @param id 拍卖商品id + * @param auctionOrderTypeEnum 拍卖类型: 普通拍品 拍卖会拍品 + * @param bondStatusEnum 保证金状态 待支付 已支付 已退款 为null则查询所有 + * @return List<OrderAuctionBond> + */ + @Override + public List<OrderAuctionBond> getOrderAuctionBondList(Long id, + AuctionOrderTypeEnum auctionOrderTypeEnum, BondStatusEnum bondStatusEnum) { + return this.lambdaQuery().eq(OrderAuctionBond::getAuctionGoodsId, id) + .eq(OrderAuctionBond::getBondType, auctionOrderTypeEnum).eq( + StringUtils.isNotNull(bondStatusEnum), OrderAuctionBond::getBoundStatus, + bondStatusEnum).list(); + } + + /** + * 批量更新保证金订单状态 + * + * @param ids 保证金订单id列表 + * @param bondStatusEnum 保证金状态 + */ + @Override + public void updateOrderAuctionBondStatus(List<Long> ids, BondStatusEnum bondStatusEnum) { + this.lambdaUpdate().set(OrderAuctionBond::getBoundStatus, bondStatusEnum) + .in(OrderAuctionBond::getId, ids).update(); + } + + @Override + public PayInfoVO SaveOrderAuctionBond(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) { + PayInfoVO payInfoVO = new PayInfoVO(); + if (memberAuctionSalesroomBondDTO.getBondType() == 2) { + AuctionSalesroom data = auctionClient.getauctionSalesroomOne(memberAuctionSalesroomBondDTO.getAuctionSalesroomId(), SecurityConstants.INNER).getData(); + if (data.getBond().intValue() == 0) { + OrderAuctionBond orderAuctionBond = new OrderAuctionBond(); + orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO")); + orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId()); + orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); + orderAuctionBond.setBond(data.getBond()); + orderAuctionBond.setBoundStatus(BondStatusEnum.PAID); + orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS); + iOrderAuctionBondService.save(orderAuctionBond); + payInfoVO.setOrderNO(orderAuctionBond.getOrderNo()); + payInfoVO.setType(0); + payInfoVO.setSubject("保证金"); + payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); + payInfoVO.setBody("保证金"); + } else { + OrderAuctionBond orderAuctionBond = new OrderAuctionBond(); + orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO")); + orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId()); + orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); + orderAuctionBond.setBond(data.getBond()); + orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY); + orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS); + if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) { + orderAuctionBond.setPaymentMethod(PaymentMethodEnum.WECHAT); + } else { + orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY); + } + + iOrderAuctionBondService.save(orderAuctionBond); + + payInfoVO.setOrderNO(orderAuctionBond.getOrderNo()); + if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) { + payInfoVO.setType(2); + } else { + payInfoVO.setType(1); + } + payInfoVO.setSubject("保证金"); + payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); + payInfoVO.setBody("保证金"); + } + } else { + AuctionGoods data = auctionClient.getauctionGoodsOne(memberAuctionSalesroomBondDTO.getAuctionGoodsId(), SecurityConstants.INNER).getData(); + if (data.getBond().intValue() == 0) { + OrderAuctionBond orderAuctionBond = new OrderAuctionBond(); + orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO")); + orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId()); + orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); + orderAuctionBond.setBond(data.getBond()); + orderAuctionBond.setBoundStatus(BondStatusEnum.PAID); + orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS); + iOrderAuctionBondService.save(orderAuctionBond); + payInfoVO.setOrderNO(orderAuctionBond.getOrderNo()); + payInfoVO.setType(0); + payInfoVO.setSubject("保证金"); + payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); + payInfoVO.setBody("保证金"); + } else { + OrderAuctionBond orderAuctionBond = new OrderAuctionBond(); + orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO")); + orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId()); + orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); + orderAuctionBond.setBond(data.getBond()); + orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY); + orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS); + if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) { + orderAuctionBond.setPaymentMethod(PaymentMethodEnum.WECHAT); + } else { + orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY); + } + iOrderAuctionBondService.save(orderAuctionBond); + payInfoVO.setOrderNO(orderAuctionBond.getOrderNo()); + if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) { + payInfoVO.setType(2); + } else { + payInfoVO.setType(1); + } + payInfoVO.setSubject("保证金"); + payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); + payInfoVO.setBody("保证金"); + } + } + return payInfoVO; } } -- Gitblit v1.7.1