ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
@@ -58,6 +58,15 @@ return R.fail("获取保证金订单列表失败:" + cause.getMessage()); } @Override public R<OrderAuctionBond> getOrderAuctionBondone(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO, String source) { return R.fail("获取保证金订单失败" + cause.getMessage()); } @Override public R<OrderAuctionBond> getOrderAuctionBondone1(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO, String source) { return R.fail("获取保证金订单失败" + cause.getMessage()); } @Override public R<Map<String, Object>> refund(List<RefundDTO> refundDTOS, String source) { ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
@@ -72,6 +72,14 @@ R<List<OrderAuctionBond>> getOrderAuctionBondList1(@RequestBody MemberAuctionSalesroomDTO memberAuctionSalesroomDTO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); @PostMapping("/order-auction-bond/getOrderAuctionBondone") R<OrderAuctionBond> getOrderAuctionBondone(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); @PostMapping("/order-auction-bond/getOrderAuctionBondone1") R<OrderAuctionBond> getOrderAuctionBondone1(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 批量退款 * ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java
@@ -121,6 +121,14 @@ } @RequestMapping("/CancelSignUpNow") @ResponseBody @ApiOperation(value = "用户端-拍卖取消报名") public R CancelSignUpNow(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) { iAuctionSalesroomService.CancelSignUpNow(memberAuctionSalesroomBondDTO); return R.ok( ); } /** * 拍卖师端拍卖场立即开始 * ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java
@@ -93,7 +93,7 @@ @ResponseBody @ApiOperation(value = "拍卖师端-拍卖场商品立即结束") public R auctionSalesroomGoodsEnd(@RequestBody AuctionSalesroomGoodsDTO auctionSalesroomGoodsDTO) { iAuctionSalesroomGoodsService.auctionSalesroomGoodsStart(auctionSalesroomGoodsDTO); iAuctionSalesroomGoodsService.auctionSalesroomGoodsEnd(auctionSalesroomGoodsDTO); return R.ok(); } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
@@ -73,6 +73,8 @@ PayInfoVO SaveSignUpNow(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO); void CancelSignUpNow(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO); void SaveBid(@RequestBody BidDTO BidVO); ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java
@@ -399,6 +399,7 @@ if (auctionSalesroomGoods.getStatus().getCode()==1) { LambdaQueryWrapper<AuctionBidRecord> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionBidRecord::getAuctionSalesroomId,auctionSalesroomGoodsDTO.getAuctionSalesroomId()); wrapper.eq(AuctionBidRecord::getTargetId, auctionSalesroomGoodsDTO.getGoodsSkuId()); wrapper.eq(AuctionBidRecord::getDelFlag, 0); wrapper.orderByDesc(AuctionBidRecord::getLastBidAmount); ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -30,6 +30,7 @@ import com.ruoyi.auction.domain.AuctionBidRecord; import com.ruoyi.auction.domain.AuctionSalesroomGoods; import com.ruoyi.auction.domain.AuctionVideo; import com.ruoyi.auction.mapper.AuctionBidRecordMapper; import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper; import com.ruoyi.auction.mapper.AuctionSalesroomMapper; import com.ruoyi.auction.service.*; @@ -40,6 +41,7 @@ import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; import com.ruoyi.common.core.enums.AuctionStartStatusEnum; import com.ruoyi.common.core.enums.BidStatusEnum; import com.ruoyi.common.core.enums.BondStatusEnum; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.IDhelper; import com.ruoyi.common.core.utils.StringUtils; @@ -54,12 +56,7 @@ import com.ruoyi.system.api.domain.Member; import com.ruoyi.system.api.domain.OrderAuctionBond; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; import com.ruoyi.system.api.domain.dto.BidDTO; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomWdDTO; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO; import com.ruoyi.system.api.feignClient.GoodsSkuClient; @@ -69,11 +66,7 @@ import io.seata.spring.annotation.GlobalTransactional; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; import javax.annotation.Resource; @@ -133,6 +126,9 @@ private static final String WX_APPID = "wxb7f0ea286fc4e535"; private static final String WX_SECRET = "852a2512a6ab559cafc68bae5d4160ac"; @Resource private AuctionBidRecordMapper auctionBidRecordMapper; //支付寶 @@ -425,6 +421,88 @@ } @Override public void CancelSignUpNow(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) { if (memberAuctionSalesroomBondDTO.getBondType()==2){ OrderAuctionBond orderAuctionBond = orderClient.getOrderAuctionBondone(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData(); List<RefundDTO> refundDTOList = new ArrayList<>(); RefundDTO refundDTO = new RefundDTO(); refundDTO.setOrderNo(orderAuctionBond.getOrderNo()); refundDTO.setAmount(orderAuctionBond.getBond()); LambdaQueryWrapper<AuctionBidRecord> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionBidRecord::getAuctionSalesroomId,memberAuctionSalesroomBondDTO.getAuctionSalesroomId()); wrapper.eq(AuctionBidRecord::getAuctionType,2); wrapper.eq(AuctionBidRecord::getStatus,BidStatusEnum.SUCCESSFUL); wrapper.eq(AuctionBidRecord::getDelFlag, 0); AuctionBidRecord auctionBidRecord = auctionBidRecordMapper.selectOne(wrapper); if (auctionBidRecord!=null){ throw new ServiceException("当前拍卖场中标拍品订单未完成,请完成后再试。"); } // 远程调用订单服务进行退款 Map<String, Object> data = orderClient.refund(refundDTOList, SecurityConstants.INNER).getData(); // 处理退款返回结果 List<String> successfulOrders = new ArrayList<>(); List<String> failedOrders = new ArrayList<>(); data.forEach((key, value) -> { if ((boolean) value) { successfulOrders.add(key); } else { failedOrders.add(key); } }); // 退款成功的订单修改状态 List<Long> ids = new ArrayList<>(); ids.add(orderAuctionBond.getId()); // 远程调用订单服务修改订单状态 orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID); }else{ OrderAuctionBond orderAuctionBond = orderClient.getOrderAuctionBondone1(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData(); List<RefundDTO> refundDTOList = new ArrayList<>(); RefundDTO refundDTO = new RefundDTO(); refundDTO.setOrderNo(orderAuctionBond.getOrderNo()); refundDTO.setAmount(orderAuctionBond.getBond()); LambdaQueryWrapper<AuctionBidRecord> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionBidRecord::getTargetId, memberAuctionSalesroomBondDTO.getAuctionGoodsId()); wrapper.eq(AuctionBidRecord::getAuctionType,1); wrapper.eq(AuctionBidRecord::getStatus,BidStatusEnum.SUCCESSFUL); wrapper.eq(AuctionBidRecord::getDelFlag, 0); AuctionBidRecord auctionBidRecord = auctionBidRecordMapper.selectOne(wrapper); if (auctionBidRecord!=null){ throw new ServiceException("当前拍卖场中标拍品订单未完成,请完成后再试。"); } // 远程调用订单服务进行退款 Map<String, Object> data = orderClient.refund(refundDTOList, SecurityConstants.INNER).getData(); // 处理退款返回结果 List<String> successfulOrders = new ArrayList<>(); List<String> failedOrders = new ArrayList<>(); data.forEach((key, value) -> { if ((boolean) value) { successfulOrders.add(key); } else { failedOrders.add(key); } }); // 退款成功的订单修改状态 List<Long> ids = new ArrayList<>(); ids.add(orderAuctionBond.getId()); // 远程调用订单服务修改订单状态 orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID); } } @Override public void SaveBid(BidDTO bidVO) { Member membeOne = memberClient.getMembeOne(bidVO.getMemberId(), SecurityConstants.INNER).getData(); if (bidVO.getAuctionType()==2){ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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; @@ -16,13 +17,7 @@ import com.ruoyi.system.api.domain.vo.PayInfoVO; import org.apache.poi.ss.formula.functions.T; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; /** * <p> @@ -122,7 +117,34 @@ wrapper.eq(OrderAuctionBond::getDelFlag,0); List<OrderAuctionBond> list = iOrderAuctionBondService.list(wrapper); return R.ok(list); } @InnerAuth @PostMapping("/getOrderAuctionBondone1") @ResponseBody public R<OrderAuctionBond> getOrderAuctionBondone1(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) { LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery(); wrapper.eq(OrderAuctionBond::getMemberId,memberAuctionSalesroomBondDTO.getMemberId()); wrapper.eq(OrderAuctionBond::getAuctionGoodsId,memberAuctionSalesroomBondDTO.getAuctionGoodsId()); wrapper.eq(OrderAuctionBond::getBoundStatus,1); wrapper.eq(OrderAuctionBond::getDelFlag,0); OrderAuctionBond one = iOrderAuctionBondService.getOne(wrapper); return R.ok(one); } @InnerAuth @PostMapping("/getOrderAuctionBondone") @ResponseBody public R<OrderAuctionBond> getOrderAuctionBondone(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source){ LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery(); wrapper.eq(OrderAuctionBond::getMemberId,memberAuctionSalesroomBondDTO.getMemberId()); wrapper.eq(OrderAuctionBond::getAuctionSalesroomId,memberAuctionSalesroomBondDTO.getAuctionSalesroomId()); wrapper.eq(OrderAuctionBond::getBoundStatus,2); wrapper.eq(OrderAuctionBond::getDelFlag,0); OrderAuctionBond one = iOrderAuctionBondService.getOne(wrapper); return R.ok(one); } @InnerAuth