From b19813f4f558c350b2c6e8fcb821080b0c10b257 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 29 五月 2024 19:52:02 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java | 86 ++++-- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java | 2 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java | 3 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/AuctionClient.java | 15 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java | 105 ++++++++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/PaylogController.java | 16 + ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 156 ++++++++++- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/WXPayConfigImpl.java | 2 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/MemberController.java | 4 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/common/Configure.java | 4 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java | 2 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java | 35 ++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/BaseService.java | 1 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java | 6 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java | 2 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java | 3 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/PayInfoDTO.java | 26 ++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java | 63 ++++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/PayInfoVO.java | 23 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java | 2 ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/protocol/UnifiedorderReqData.java | 12 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/AuctionFallbackFactory.java | 18 + ruoyi-modules/ruoyi-order/src/main/resources/conf/param.properties | 14 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java | 8 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java | 12 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionVideoController.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java | 9 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/OrderAuctionBond.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java | 1 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomBondDTO.java | 25 + ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java | 11 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BondVO.java | 10 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BidVO.java | 30 ++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionGoodsController.java | 21 + 38 files changed, 648 insertions(+), 91 deletions(-) diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionGoods.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java similarity index 98% rename from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionGoods.java rename to ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java index 2d15d94..0369658 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionGoods.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java @@ -1,4 +1,4 @@ -package com.ruoyi.auction.domain; +package com.ruoyi.system.api.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java similarity index 98% rename from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java rename to ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java index 71a3e78..7d82062 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java @@ -1,4 +1,4 @@ -package com.ruoyi.auction.domain; +package com.ruoyi.system.api.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/OrderAuctionBond.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/OrderAuctionBond.java index ba971f8..6e851a9 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/OrderAuctionBond.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/OrderAuctionBond.java @@ -79,6 +79,8 @@ @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)") @TableLogic private Integer delFlag; + + @ApiModelProperty(value = "支付方式 1=微信 2=支付宝") private PaymentMethodEnum paymentMethod; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BidVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BidVO.java new file mode 100644 index 0000000..273857b --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BidVO.java @@ -0,0 +1,30 @@ +package com.ruoyi.system.api.domain.dto; + +import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class BidVO { + @ApiModelProperty(value = "目标商品id(普通拍品id 或 拍卖会拍品id)") + private Long targetId; + + @ApiModelProperty(value = "会员id") + private Long memberId; + + @ApiModelProperty(value = "拍卖会id") + private Long auctionSalesroomId; + + @ApiModelProperty("拍卖类型 (1=普通拍品 2=拍卖会拍品)") + private Integer auctionType; + + @ApiModelProperty(value = "最终出价时间") + private LocalDateTime lastBidTime; + + @ApiModelProperty(value = "最终出价金额") + private BigDecimal lastBidAmount; + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BondVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BondVO.java new file mode 100644 index 0000000..244b823 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BondVO.java @@ -0,0 +1,10 @@ +package com.ruoyi.system.api.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class BondVO { + @ApiModelProperty(value = "订单编号") + private String orderNO; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomBondDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomBondDTO.java new file mode 100644 index 0000000..b1db13a --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomBondDTO.java @@ -0,0 +1,25 @@ +package com.ruoyi.system.api.domain.dto; + +import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; +import com.ruoyi.common.core.enums.PaymentMethodEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class MemberAuctionSalesroomBondDTO { + @ApiModelProperty(value = "会员id") + private Long memberId; + + @ApiModelProperty(value = "拍卖会id") + private Long auctionSalesroomId; + + @ApiModelProperty(value = "保证金类型1=普通拍品 2=拍卖会拍品") + private Integer bondType; + + @ApiModelProperty(value = "拍卖商品id") + private Long auctionGoodsId; + + @ApiModelProperty(value = "支付方式 1=微信 2=支付宝") + private Integer paymentMethod; + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java index c4270a7..6ccd835 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java @@ -17,4 +17,5 @@ @ApiModelProperty(value = "拍卖场编号") private String salesroomNO; + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/PayInfoDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/PayInfoDTO.java new file mode 100644 index 0000000..24f75be --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/PayInfoDTO.java @@ -0,0 +1,26 @@ +package com.ruoyi.system.api.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PayInfoDTO { + + @ApiModelProperty(value = "会员id") + private Long memberId; + + @ApiModelProperty(value = "1 支付宝支付,2 微信支付") + private Integer type; + + @ApiModelProperty(value = "订单编号") + private String orderNO; + + @ApiModelProperty(value = "题目") + private String subject; + + @ApiModelProperty(value = "内容") + private String body; + + @ApiModelProperty(value = "微信支付的用户openid") + private String openId; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/PayInfoVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/PayInfoVO.java new file mode 100644 index 0000000..78c63f0 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/PayInfoVO.java @@ -0,0 +1,23 @@ +package com.ruoyi.system.api.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PayInfoVO { + + @ApiModelProperty(value = "会员id") + private Long memberId; + + @ApiModelProperty(value = "1 支付宝支付,2 微信支付") + private Integer type; + + @ApiModelProperty(value = "订单编号") + private String orderNO; + + @ApiModelProperty(value = "题目") + private String subject; + + @ApiModelProperty(value = "内容") + private String body; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/AuctionFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/AuctionFallbackFactory.java index db822df..f6721f3 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/AuctionFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/AuctionFallbackFactory.java @@ -1,6 +1,10 @@ package com.ruoyi.system.api.factory; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.AuctionGoods; +import com.ruoyi.system.api.domain.AuctionSalesroom; import com.ruoyi.system.api.feignClient.AuctionClient; +import com.ruoyi.system.api.feignClient.OrderClient; import org.springframework.cloud.openfeign.FallbackFactory; /** @@ -11,6 +15,18 @@ @Override public AuctionClient create(Throwable cause) { - return null; + return new AuctionClient() { + + @Override + public R<AuctionSalesroom> getauctionSalesroomOne(Long auctionSalesroomId, String source) { + return R.fail("获取普通拍卖场失败" + cause.getMessage()); + } + + @Override + public R<AuctionGoods> getauctionGoodsOne(Long auctionGoodsId, String source) { + return R.fail("获取普通拍卖商品失败" + cause.getMessage()); + } + + }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java index 1c118f9..16026ed 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java @@ -10,6 +10,8 @@ import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.OrderUpdDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; +import com.ruoyi.system.api.domain.dto.*; +import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.feignClient.OrderClient; import java.util.List; import java.util.Map; @@ -78,6 +80,16 @@ public R<?> updateOrderList(List<OrderUpdDTO> orderUpdDTOS, String source) { return R.fail("批量更新订单失败" + cause.getMessage()); } + + @Override + public R<PayInfoVO> SaveOrderAuctionBond(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO, String source) { + return R.fail("生成保证金失败" + cause.getMessage()); + } + + @Override + public R<?> UpdateBond(BondVO BondVO, String source) { + return R.fail("修改保证金支付状态失败" + cause.getMessage()); + } }; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/AuctionClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/AuctionClient.java index 42f4dea..a40a52a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/AuctionClient.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/AuctionClient.java @@ -1,10 +1,25 @@ package com.ruoyi.system.api.feignClient; +import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.AuctionGoods; +import com.ruoyi.system.api.domain.AuctionSalesroom; +import com.ruoyi.system.api.domain.GoodsFlavorType; +import com.ruoyi.system.api.domain.OrderAuctionBond; import com.ruoyi.system.api.factory.AuctionFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; @FeignClient(contextId = "auctionClient", value = ServiceNameConstants.RUOYI_AUCTION, fallbackFactory = AuctionFallbackFactory.class) public interface AuctionClient { + @PostMapping("/forepart/auction-salesroom/getAuctionSalesroomOne") + R<AuctionSalesroom> getauctionSalesroomOne(@RequestBody Long auctionSalesroomId, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @PostMapping("/forepart/auction-goods/getAuctionGoodsOne") + R<AuctionGoods> getauctionGoodsOne(@RequestBody Long auctionGoodsId, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java index 0733bcc..a93460c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java @@ -12,6 +12,8 @@ import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.OrderUpdDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; +import com.ruoyi.system.api.domain.dto.*; +import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.factory.OrderFallbackFactory; import java.util.List; import java.util.Map; @@ -113,4 +115,11 @@ @PutMapping("/order/upd-batch") R<?> updateOrderList(@RequestBody List<OrderUpdDTO> orderUpdDTOS, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/order-auction-bond/SaveOrderAuctionBond") + R<PayInfoVO> SaveOrderAuctionBond(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/order-auction-bond/UpdateBond") + R<?> UpdateBond(@RequestBody BondVO BondVO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionGoodsController.java index b194185..fe1c57d 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionGoodsController.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionGoodsController.java @@ -1,9 +1,14 @@ package com.ruoyi.auction.controller.forepart; -import org.springframework.web.bind.annotation.RequestMapping; +import com.ruoyi.auction.service.IAuctionGoodsService; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.annotation.InnerAuth; +import com.ruoyi.system.api.domain.AuctionGoods; +import com.ruoyi.system.api.domain.AuctionSalesroom; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; /** * <p> @@ -17,4 +22,16 @@ @RequestMapping("/forepart/auction-goods") public class ForepartAuctionGoodsController { + @Resource + private IAuctionGoodsService iAuctionGoodsService; + + @InnerAuth + @PostMapping("/getAuctionGoodsOne") + @ResponseBody + public R<AuctionGoods> getAuctionGoodsOne(@RequestBody Long auctionSalesroomId) { + AuctionGoods auctionGoods=iAuctionGoodsService.getById(auctionSalesroomId); + return R.ok(auctionGoods); + + } + } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java index b2a1fab..2f39a4e 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java @@ -3,22 +3,25 @@ import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO; import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO; +import com.ruoyi.common.security.annotation.InnerAuth; +import com.ruoyi.system.api.domain.GoodsFlavorType; +import com.ruoyi.system.api.domain.dto.BidVO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomInfoVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO; -import com.ruoyi.auction.domain.AuctionSalesroom; +import com.ruoyi.system.api.domain.AuctionSalesroom; import com.ruoyi.auction.service.IAuctionSalesroomService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.AppMiniLoginVO; import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; +import com.ruoyi.system.api.domain.vo.PayInfoVO; import io.swagger.annotations.ApiOperation; import javax.annotation.Resource; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; + +import org.springframework.web.bind.annotation.*; /** * <p> @@ -35,6 +38,15 @@ @Resource private IAuctionSalesroomService iAuctionSalesroomService; + + @InnerAuth + @PostMapping("/getAuctionSalesroomOne") + @ResponseBody + public R<AuctionSalesroom> getauctionSalesroomOne(@RequestBody Long auctionSalesroomId) { + AuctionSalesroom auctionSalesroomOne=iAuctionSalesroomService.getById(auctionSalesroomId); + return R.ok(auctionSalesroomOne); + + } /** * 拍卖大屏获取拍卖信息 @@ -100,8 +112,17 @@ @RequestMapping("/SaveSignUpNow") @ResponseBody @ApiOperation(value = "用户端拍卖立即报名") - public R<MemberAuctionSalesroomVO> SaveSignUpNow(@RequestBody MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) { - return R.ok(iAuctionSalesroomService.getMemberAuctionSalesroomSweep(MemberAuctionSalesroomDTO)); + public R<PayInfoVO> SaveSignUpNow(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) { + return R.ok( iAuctionSalesroomService.SaveSignUpNow(memberAuctionSalesroomBondDTO)); + } + + + @RequestMapping("/SaveBid") + @ResponseBody + @ApiOperation(value = "用户端拍卖出价") + public R SaveBid(@RequestBody BidVO BidVO) { + iAuctionSalesroomService.SaveBid(BidVO); + return R.ok(); } } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java index 6dd6f01..8543153 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java @@ -61,7 +61,7 @@ @RequestMapping("/auctionSalesroomStart") @ResponseBody @ApiOperation(value = "拍卖师端拍卖场立即开始") - public R<T> auctionSalesroomStart(@RequestBody AuctionSalesroomGoodsDTO ationSalesroomGoodsDTO) { + public R auctionSalesroomStart(@RequestBody AuctionSalesroomGoodsDTO ationSalesroomGoodsDTO) { iAuctionSalesroomGoodsService.auctionSalesroomStart(ationSalesroomGoodsDTO); return R.ok(); } @@ -74,7 +74,7 @@ @RequestMapping("/auctionSalesroomEnd") @ResponseBody @ApiOperation(value = "拍卖师端拍卖场立即结束") - public R<T> auctionSalesroomEnd(@RequestBody AuctionSalesroomGoodsDTO ationSalesroomGoodsDTO) { + public R auctionSalesroomEnd(@RequestBody AuctionSalesroomGoodsDTO ationSalesroomGoodsDTO) { iAuctionSalesroomGoodsService.auctionSalesroomEnd(ationSalesroomGoodsDTO); return R.ok(); } @@ -99,7 +99,7 @@ @RequestMapping("/auctionSalesroomGoodsStart") @ResponseBody @ApiOperation(value = "拍卖师端拍卖场下一个立即开始") - public R<T> auctionSalesroomGoodsStart(@RequestBody AuctionSalesroomGoodsDTO auctionSalesroomGoodsDTO) { + public R auctionSalesroomGoodsStart(@RequestBody AuctionSalesroomGoodsDTO auctionSalesroomGoodsDTO) { iAuctionSalesroomGoodsService.auctionSalesroomGoodsStart(auctionSalesroomGoodsDTO); return R.ok(); } @@ -113,7 +113,7 @@ @RequestMapping("/auctionSalesroomGoodsEnd") @ResponseBody @ApiOperation(value = "拍卖师端拍卖场下一个立即结束") - public R<T> auctionSalesroomGoodsEnd(@RequestBody AuctionSalesroomGoodsDTO auctionSalesroomGoodsDTO) { + public R auctionSalesroomGoodsEnd(@RequestBody AuctionSalesroomGoodsDTO auctionSalesroomGoodsDTO) { iAuctionSalesroomGoodsService.auctionSalesroomGoodsStart(auctionSalesroomGoodsDTO); return R.ok(); } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionVideoController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionVideoController.java index 86accab..591d3b9 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionVideoController.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionVideoController.java @@ -46,7 +46,7 @@ @RequestMapping("/addVoid") @ResponseBody @ApiOperation(value = "拍卖师端添加拍卖会视频播放") - public R<T> addVoid(@RequestBody ForepartAuctionVideo orepartAuctionVideo) { + public R addVoid(@RequestBody ForepartAuctionVideo orepartAuctionVideo) { iAuctionVideoService.addVoid(orepartAuctionVideo); return R.ok(); diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java index f1c9823..d0b2792 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java @@ -74,5 +74,8 @@ @ApiModelProperty(value = "当前出价") private BigDecimal presentBid; + @ApiModelProperty(value = "最低加价金额") + private BigDecimal minimumMarkupAmount; + } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java index 1da30d2..e4c3966 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.auction.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.auction.domain.AuctionGoods; +import com.ruoyi.system.api.domain.AuctionGoods; /** * <p> diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java index 21c9f9f..cd9f5e0 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java @@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; -import com.ruoyi.auction.domain.AuctionSalesroom; +import com.ruoyi.system.api.domain.AuctionSalesroom; import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java index a6c1bad..b8f849e 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java @@ -4,7 +4,7 @@ import com.ruoyi.auction.controller.management.dto.AuctionGoodsDTO; import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery; import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO; -import com.ruoyi.auction.domain.AuctionGoods; +import com.ruoyi.system.api.domain.AuctionGoods; import com.ruoyi.common.core.utils.page.PageDTO; /** diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java index 3b64f66..3ac8d95 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java @@ -3,16 +3,21 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO; import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO; +import com.ruoyi.system.api.domain.dto.BidVO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomInfoVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery; import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; import com.ruoyi.auction.domain.AuctionSalesroom; +import com.ruoyi.system.api.domain.AuctionSalesroom; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.AppMiniLoginVO; import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; +import com.ruoyi.system.api.domain.vo.PayInfoVO; import org.springframework.web.bind.annotation.RequestBody; /** @@ -63,4 +68,10 @@ * @return 二维码 */ String getQrCode(Long id) throws Exception; + + PayInfoVO SaveSignUpNow(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO); + + void SaveBid(@RequestBody BidVO BidVO); + + } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java index f97c276..0286509 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java @@ -7,7 +7,7 @@ import com.ruoyi.auction.controller.management.vo.AuctionBidRecordVO; import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO; import com.ruoyi.auction.domain.AuctionBidRecord; -import com.ruoyi.auction.domain.AuctionGoods; +import com.ruoyi.system.api.domain.AuctionGoods; import com.ruoyi.auction.mapper.AuctionGoodsMapper; import com.ruoyi.auction.service.IAuctionBidRecordService; import com.ruoyi.auction.service.IAuctionGoodsService; diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java index 7762903..5ff06a1 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java @@ -8,7 +8,7 @@ import com.ruoyi.auction.controller.forepart.dto.OrderDTO; import com.ruoyi.auction.controller.forepart.vo.*; import com.ruoyi.auction.domain.AuctionBidRecord; -import com.ruoyi.auction.domain.AuctionSalesroom; +import com.ruoyi.system.api.domain.AuctionSalesroom; import com.ruoyi.auction.domain.AuctionSalesroomGoods; import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper; import com.ruoyi.auction.service.IAuctionBidRecordService; @@ -397,6 +397,7 @@ AuctionSalesroomGoodsInfoVO.setFlavorType(data3.getFlavorTypeName()); AuctionSalesroomGoodsInfoVO.setCoverPic(goodsSku.getCoverPic()); AuctionSalesroomGoodsInfoVO.setAlbum(goodsSku.getAlbum()); + AuctionSalesroomGoodsInfoVO.setMinimumMarkupAmount(byId1.getMinimumMarkupAmount()); LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); wrapper1.eq(AuctionBidRecord::getMemberId,auctionSalesroomGoodsInfoDTO.getMemberId()); wrapper1.eq(AuctionBidRecord::getAuctionSalesroomId,byId.getId()); diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java index 48111e6..4d38e20 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java @@ -16,41 +16,74 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO; import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO; +import com.ruoyi.system.api.domain.OrderAuctionBond; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomGoodsVO; import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomInfoVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO; +import com.ruoyi.auction.domain.*; +import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper; +import com.ruoyi.auction.mapper.AuctionSalesroomMapper; +import com.ruoyi.auction.service.*; +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.auction.util.HttpUtils; +import com.ruoyi.system.api.domain.AppMiniLoginVO; +import com.ruoyi.system.api.domain.GoodsSku; +import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; +import com.ruoyi.system.api.feignClient.GoodsSkuClient; +import com.ruoyi.system.api.feignClient.OrderClient; +import com.ruoyi.system.api.feignClient.SysUserClient; +import javax.annotation.Resource; + +import org.apache.http.HttpResponse; +import org.apache.http.util.EntityUtils; +import org.springframework.stereotype.Service; + + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; +import com.ruoyi.common.core.enums.BidStatusEnum; +import com.ruoyi.system.api.domain.*; +import com.ruoyi.system.api.domain.dto.BidVO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery; import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; import com.ruoyi.auction.domain.AuctionBidRecord; import com.ruoyi.auction.domain.AuctionSalesroom; import com.ruoyi.auction.domain.AuctionSalesroomGoods; import com.ruoyi.auction.domain.AuctionVideo; -import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper; -import com.ruoyi.auction.mapper.AuctionSalesroomMapper; import com.ruoyi.auction.service.IAuctionBidRecordService; import com.ruoyi.auction.service.IAuctionSalesroomService; import com.ruoyi.auction.service.IAuctionVideoService; import com.ruoyi.auction.util.CreateQrCode; import com.ruoyi.auction.util.HttpUtils; -import com.ruoyi.common.core.constant.SecurityConstants; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.exception.ServiceException; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.AppMiniLoginVO; import com.ruoyi.system.api.domain.GoodsSku; 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.auction.util.HttpUtils; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; -import com.ruoyi.system.api.feignClient.GoodsSkuClient; -import com.ruoyi.system.api.feignClient.OrderClient; -import com.ruoyi.system.api.feignClient.SysUserClient; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.ruoyi.system.api.domain.vo.PayInfoVO; +import com.ruoyi.system.api.feignClient.MemberClient; +import javax.annotation.Resource; + +import org.apache.http.HttpResponse; +import org.apache.http.util.EntityUtils; +import org.springframework.stereotype.Service; + + +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.stream.Collectors; import javax.annotation.Resource; import org.apache.http.HttpResponse; @@ -89,10 +122,18 @@ private AuctionSalesroomGoodsMapper auctionSalesroomGoodsMapper; @Resource + private IAuctionSalesroomGoodsService auctionSalesroomGoodsService; + + @Resource + private IAuctionGoodsService auctionGoodsService; + + @Resource private GoodsSkuClient goodsSkuClient; @Resource private OrderClient orderClient; + @Resource + private MemberClient memberClient; //微信 @@ -386,6 +427,91 @@ return memberAuctionSalesroomVO; } + @Override + public PayInfoVO SaveSignUpNow(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) { + return orderClient.SaveOrderAuctionBond(memberAuctionSalesroomBondDTO,SecurityConstants.INNER).getData(); + } + + @Override + public void SaveBid(BidVO bidVO) { + Member membeOne = memberClient.getMembeOne(bidVO.getMemberId(), SecurityConstants.INNER).getData(); + if (bidVO.getAuctionType()==2){ + AuctionSalesroomGoods byId = auctionSalesroomGoodsService.getById(bidVO.getTargetId()); + if (byId.getStartingPrice().doubleValue()<bidVO.getLastBidAmount().doubleValue()){ + throw new ServiceException("出价不能比起拍价低"); + } + BigDecimal bigDecimal=byId.getStartingPrice().add(byId.getMinimumMarkupAmount()); + if (bigDecimal.doubleValue()<bidVO.getLastBidAmount().doubleValue()){ + throw new ServiceException("出价不能比每次最少加价低"); + } + + LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); + wrapper1.eq(AuctionBidRecord::getMemberId,bidVO.getMemberId()); + wrapper1.eq(AuctionBidRecord::getAuctionSalesroomId,bidVO.getAuctionSalesroomId()); + wrapper1.eq(AuctionBidRecord::getTargetId,bidVO.getTargetId()); + wrapper1.eq(AuctionBidRecord::getDelFlag,0); + AuctionBidRecord one = auctionBidRecordService.getOne(wrapper1); + if (one!=null){ + BigDecimal bigDecimal1=one.getLastBidAmount().add(byId.getMinimumMarkupAmount()); + if (bigDecimal1.doubleValue()<bidVO.getLastBidAmount().doubleValue()){ + throw new ServiceException("出价不能比上次出价加每次最少加价低"); + } + one.setLastBidAmount(bidVO.getLastBidAmount()); + one.setLastBidTime(LocalDateTime.now()); + one.setBidCount(one.getBidCount()+1); + auctionBidRecordService.updateById(one); + }else{ + one=new AuctionBidRecord(); + one.setAuctionSalesroomId(bidVO.getAuctionSalesroomId()); + one.setTargetId(bidVO.getTargetId()); + one.setMemberId(bidVO.getMemberId()); + one.setLastBidTime(LocalDateTime.now()); + one.setAuctionType(AuctionOrderTypeEnum.AUCTION_ITEMS); + one.setStatus(BidStatusEnum.ELIMINATE); + one.setBidCount(1); + one.setLastBidAmount(bidVO.getLastBidAmount()); + auctionBidRecordService.save(one); + } + + + }else { + AuctionGoods byId = auctionGoodsService.getById(bidVO.getTargetId()); + if (byId.getStartingPrice().doubleValue()<bidVO.getLastBidAmount().doubleValue()){ + throw new ServiceException("出价不能比起拍价低"); + } + BigDecimal bigDecimal=byId.getStartingPrice().add(byId.getMinimumMarkupAmount()); + if (bigDecimal.doubleValue()<bidVO.getLastBidAmount().doubleValue()){ + throw new ServiceException("出价不能比每次最少加价低"); + } + LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); + wrapper1.eq(AuctionBidRecord::getMemberId,bidVO.getMemberId()); + wrapper1.eq(AuctionBidRecord::getTargetId,bidVO.getTargetId()); + wrapper1.eq(AuctionBidRecord::getDelFlag,0); + AuctionBidRecord one = auctionBidRecordService.getOne(wrapper1); + if (one!=null){ + BigDecimal bigDecimal1=one.getLastBidAmount().add(byId.getMinimumMarkupAmount()); + if (bigDecimal1.doubleValue()<bidVO.getLastBidAmount().doubleValue()){ + throw new ServiceException("出价不能比上次出价加每次最少加价低"); + } + one.setLastBidAmount(bidVO.getLastBidAmount()); + one.setLastBidTime(LocalDateTime.now()); + one.setBidCount(one.getBidCount()+1); + auctionBidRecordService.updateById(one); + }else{ + one=new AuctionBidRecord(); + one.setAuctionSalesroomId(bidVO.getAuctionSalesroomId()); + one.setTargetId(bidVO.getTargetId()); + one.setMemberId(bidVO.getMemberId()); + one.setLastBidTime(LocalDateTime.now()); + one.setAuctionType(AuctionOrderTypeEnum.REGULAR_ITEMS); + one.setStatus(BidStatusEnum.ELIMINATE); + one.setBidCount(1); + one.setLastBidAmount(bidVO.getLastBidAmount()); + auctionBidRecordService.save(one); + } + } + } + public static String getAccessTokenByWX() throws Exception { String host = ACCESS_TOKEN_HOST + "?appid=" + WX_APPID + "&secret=" + WX_SECRET + "&grant_type=client_credential"; diff --git a/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml b/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml index b010b33..298a47c 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml +++ b/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml @@ -2,7 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.auction.mapper.AuctionSalesroomMapper"> - <select id="pageMemberAuctionSalesroomList" resultType="com.ruoyi.auction.domain.AuctionSalesroom"> + <select id="pageMemberAuctionSalesroomList" resultType="com.ruoyi.system.api.domain.AuctionSalesroom"> SELECT * FROM t_auction_salesroom ta WHERE ta.del_flag = 0 <if test="param.salesroomName!=null and param.salesroomName != ''"> diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/MemberController.java index fa41403..2b047a9 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/MemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/MemberController.java @@ -85,7 +85,7 @@ @RequestMapping("/updateMembeid") @ResponseBody @ApiOperation(value = "修改用户信息") - public R<T> updateMembeid(@RequestBody MemberDTO memberDTO) { + public R updateMembeid(@RequestBody MemberDTO memberDTO) { iMemberService.updateMembeid(memberDTO); return R.ok(); } @@ -93,7 +93,7 @@ @RequestMapping("/authentificationMembe") @ResponseBody @ApiOperation(value = "用户认证") - public R<T> authentificationMembe(@RequestBody MemberDTO memberDTO) { + public R authentificationMembe(@RequestBody MemberDTO memberDTO) { iMemberService.authentificationMembe(memberDTO); return R.ok(); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java index b65c001..756eab6 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java @@ -1,9 +1,25 @@ package com.ruoyi.order.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.enums.BondStatusEnum; +import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.order.service.IOrderAuctionBondService; +import com.ruoyi.system.api.domain.OrderAuctionBond; +import com.ruoyi.system.api.domain.dto.BondVO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; +import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO; +import com.ruoyi.system.api.domain.vo.PayInfoVO; +import java.util.List; import javax.annotation.Resource; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; /** @@ -21,6 +37,53 @@ @Resource private IOrderAuctionBondService iOrderAuctionBondService; + /** + * 获取当前商品信息 + * + */ + @InnerAuth + @PostMapping("/getOrderAuctionBond") + @ResponseBody + public R<T> getOrderAuctionBond(@RequestBody OrderAuctionBondDTO orderAuctionBondDTO) { + iOrderAuctionBondService.getOrderAuctionBond(orderAuctionBondDTO); + return R.ok(); + } + + @InnerAuth + @PostMapping("/getOrderAuctionBondList") + @ResponseBody + public R<List<OrderAuctionBond>> getOrderAuctionBondList(@RequestBody MemberAuctionSalesroomDTO memberAuctionSalesroomDTO) { + LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery(); + wrapper.eq(OrderAuctionBond::getMemberId,memberAuctionSalesroomDTO.getMemberId()); + wrapper.eq(OrderAuctionBond::getAuctionSalesroomId,memberAuctionSalesroomDTO.getAuctionSalesroomId()); + wrapper.eq(OrderAuctionBond::getBoundStatus,2); + wrapper.eq(OrderAuctionBond::getDelFlag,0); + List<OrderAuctionBond> list = iOrderAuctionBondService.list(wrapper); + return R.ok(list); + + } + + @InnerAuth + @PostMapping("/SaveOrderAuctionBond") + @ResponseBody + public R<PayInfoVO> SaveOrderAuctionBond(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) { + return R.ok(iOrderAuctionBondService.SaveOrderAuctionBond(memberAuctionSalesroomBondDTO)); + + } + + @InnerAuth + @PostMapping("/UpdateBond") + @ResponseBody + public R UpdateBond(@RequestBody BondVO ondVO) { + LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery(); + wrapper.eq(OrderAuctionBond::getOrderNo,ondVO.getOrderNO()); + wrapper.eq(OrderAuctionBond::getDelFlag,0); + OrderAuctionBond one = iOrderAuctionBondService.getOne(wrapper); + one.setBoundStatus(BondStatusEnum.PAID); + iOrderAuctionBondService.updateById(one); + return R.ok(); + + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/PaylogController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/PaylogController.java index 917379c..139fc03 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/PaylogController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/PaylogController.java @@ -4,6 +4,16 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.order.service.IPaylogService; import com.ruoyi.order.service.impl.PaylogServiceImpl; +import com.ruoyi.order.util.DateUtil; +import com.ruoyi.order.util.SinataUtil; +import com.ruoyi.order.util.alipay.config.AlipayConfig; +import com.ruoyi.order.util.alipay.util.PayDemoActivity; +import com.ruoyi.order.util.tencent.common.Configure; +import com.ruoyi.order.util.tencent.common.Signature; +import com.ruoyi.order.util.tencent.common.XMLParser; +import com.ruoyi.order.util.tencent.protocol.AppPayReqData; +import com.ruoyi.order.util.tencent.protocol.UnifiedorderReqData; +import com.ruoyi.system.api.domain.dto.PayInfoDTO; import io.swagger.annotations.ApiOperation; import java.util.Map; import javax.annotation.Resource; @@ -51,10 +61,10 @@ @ResponseBody @RequestMapping("/getPayInfo") @ApiOperation(value = "获取支付信息") - public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String subject, String body, String orderID, - HttpServletRequest request) { + public R<Map<String, Object>> getPayInfo(PayInfoDTO payInfoDTO, + HttpServletRequest request) { try { - return paylogServiceImpl.getPayInfo(uid, type, subject, body, orderID,request); + return paylogServiceImpl.getPayInfo(Integer.valueOf(payInfoDTO.getMemberId().intValue()), payInfoDTO.getType(), payInfoDTO.getSubject(), payInfoDTO.getBody(), payInfoDTO.getOrderNO(), payInfoDTO.getOpenId(),request); } catch (Exception e) { return R.fail("获取异常"); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java index 0e5e81c..49f03de 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java @@ -5,9 +5,13 @@ import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; import com.ruoyi.common.core.enums.BondStatusEnum; import com.ruoyi.system.api.domain.OrderAuctionBond; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO; import java.util.List; +import com.ruoyi.system.api.domain.vo.PayInfoVO; import org.apache.poi.ss.formula.functions.T; +import org.springframework.web.bind.annotation.RequestBody; /** * <p> @@ -19,6 +23,8 @@ */ public interface IOrderAuctionBondService extends IService<OrderAuctionBond> { R<T> getOrderAuctionBond(OrderAuctionBondDTO orderAuctionBondDTO); + PayInfoVO SaveOrderAuctionBond(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO); + /** * 查询保证金订单列表 diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java index fa76bc8..b9f9691 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java @@ -20,7 +20,7 @@ */ public interface IPaylogService extends IService<Paylog> { - R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String subject, String body, String orderID, + R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String subject, String body, String orderID,String openId, HttpServletRequest request); 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 5cec9be..34b6f9f 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 @@ -3,19 +3,30 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.utils.StringUtils; +import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; +import com.ruoyi.common.core.enums.BondStatusEnum; +import com.ruoyi.common.core.enums.PaymentMethodEnum; +import com.ruoyi.order.util.OrderUtil; +import com.ruoyi.system.api.domain.AuctionGoods; +import com.ruoyi.system.api.domain.AuctionSalesroom; +import com.ruoyi.system.api.domain.OrderAuctionBond; import com.ruoyi.order.domain.pojo.Paylog; import com.ruoyi.order.mapper.OrderAuctionBondMapper; import com.ruoyi.order.service.IOrderAuctionBondService; import com.ruoyi.order.service.IPaylogService; import com.ruoyi.order.util.SinataUtil; import com.ruoyi.system.api.domain.OrderAuctionBond; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO; import java.util.List; import javax.annotation.Resource; +import com.ruoyi.system.api.domain.vo.PayInfoVO; +import com.ruoyi.system.api.feignClient.AuctionClient; import org.apache.poi.ss.formula.functions.T; import org.springframework.stereotype.Service; @@ -38,6 +49,11 @@ @Resource private PaylogServiceImpl paylogServiceImpl; + + + @Resource + private AuctionClient auctionClient; + @Override public R<T> getOrderAuctionBond(OrderAuctionBondDTO orderAuctionBondDTO) { @@ -100,4 +116,93 @@ 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.getBound().intValue() == 0) { + OrderAuctionBond orderAuctionBond = new OrderAuctionBond(); + orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO")); + orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId()); + orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); + orderAuctionBond.setBond(data.getBound()); + 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.getBound()); + 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; + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java index 24d6073..1a037bf 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java @@ -7,7 +7,10 @@ import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.AlipayTradeRefundRequest; import com.alipay.api.response.AlipayTradeRefundResponse; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.utils.StringUtils; import com.ruoyi.order.domain.pojo.Paylog; @@ -21,6 +24,8 @@ import com.ruoyi.order.util.tencent.common.XMLParser; import com.ruoyi.order.util.tencent.protocol.AppPayReqData; import com.ruoyi.order.util.tencent.protocol.UnifiedorderReqData; +import com.ruoyi.system.api.domain.OrderAuctionBond; +import com.ruoyi.system.api.domain.dto.BondVO; import com.ruoyi.system.api.domain.dto.RefundDTO; import java.io.IOException; import java.io.PrintWriter; @@ -40,6 +45,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.system.api.feignClient.OrderClient; import org.springframework.stereotype.Service; /** @@ -59,23 +66,25 @@ @Resource private IPaylogService iPaylogService; + @Resource + private OrderClient orderClient; + @Override - public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String subject, String body, String orderID, - HttpServletRequest request) { + public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String subject, String body, String orderNO,String openId, HttpServletRequest request) { Double price = 0.0; try { - if(judgeContainsStr(orderID)){ + if(judgeContainsStr(orderNO)){ price= Double.valueOf(1); - body = "商品支付"; - subject = "商品支付"; + body = body; + subject = subject; Map<String, Object> map = new HashMap<String, Object>(); if (type == 1) { // 支付宝预下单 - return paylogServiceImpl.alipay("1", subject, body, price, request); + return paylogServiceImpl.alipay(orderNO, subject, body, price, request); } else { // 微信预下单 - return paylogServiceImpl.wxpay(1, "1", body, price, request); + return paylogServiceImpl.wxpay(2, orderNO, body,openId, price, request); } } } catch (Exception e) { @@ -114,19 +123,31 @@ params.put(name, valueStr); } - Paylog paylog = getPayLog_alipay(request); + Paylog paylog1= getPayLog_alipay(request); // 验证成功 - if ("TRADE_FINISHED".equals(paylog.getTradeStatus())) { + if ("TRADE_FINISHED".equals(paylog1.getTradeStatus())) { System.out.println("AlipayController.notifyUrl__验证成功:success"); // 支付失败 - } else if ("TRADE_SUCCESS".equals(paylog.getTradeStatus())) { + } else if ("TRADE_SUCCESS".equals(paylog1.getTradeStatus())) { // 支付成功 try { - if(judgeContainsStr(paylog.getOutTradeNo())){ + LambdaQueryWrapper<Paylog> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(Paylog::getOutTradeNo,paylog1.getOutTradeNo()); + Paylog one = iPaylogService.getOne(wrapper); + if(SinataUtil.isEmpty(one)) { + iPaylogService.save(paylog1); + if (paylog1.getOutTradeNo().contains("BO")) { + BondVO bondVO=new BondVO(); + bondVO.setOrderNO(paylog1.getOutTradeNo()); + orderClient.UpdateBond(bondVO, SecurityConstants.INNER); + } } + + + // ——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— log.debug("AlipayController.notifyUrl__回调处理:success"); out.println("success"); // 请不要修改或删除 @@ -196,17 +217,27 @@ ///////////////////////////// 这里程序处理支付回调逻辑 ///////////////////////////// //////////////////// - Paylog paylog = new Paylog(); - paylog.setOutTradeNo(out_trade_no); - paylog.setPayType(2); - paylog.setBuyerId(buyer_id); - paylog.setTradeNo(trade_no); - paylog.setPayMoney(Double.parseDouble(total_fee) / 100); - paylog.setState(1); - System.out.println("支付完成时间" + time_end); - paylog.setAddTime(LocalDateTime.now()); - iPaylogService.save(paylog); - if (judgeContainsStr(paylog.getOutTradeNo())) { + + LambdaQueryWrapper<Paylog> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(Paylog::getOutTradeNo,out_trade_no); + Paylog one = iPaylogService.getOne(wrapper); + if(SinataUtil.isEmpty(one)) { + Paylog paylog = new Paylog(); + paylog.setOutTradeNo(out_trade_no); + paylog.setPayType(2); + paylog.setBuyerId(buyer_id); + paylog.setTradeNo(trade_no); + paylog.setPayMoney(Double.parseDouble(total_fee) / 100); + paylog.setState(1); + System.out.println("支付完成时间" + time_end); + paylog.setAddTime(LocalDateTime.now()); + iPaylogService.save(paylog); + if (paylog.getOutTradeNo().contains("BO")) { + BondVO bondVO=new BondVO(); + bondVO.setOrderNO(paylog.getOutTradeNo()); + orderClient.UpdateBond(bondVO, SecurityConstants.INNER); + + } log.debug("WxpayController.notify__回调处理成功:SUCCESS"); @@ -306,17 +337,17 @@ * @param request * @return */ - public static R<Map<String, Object>> wxpay(Integer apptype, String outTradeNo, String body, Double price, + public static R<Map<String, Object>> wxpay(Integer apptype, String outTradeNo, String body,String openId, Double price, HttpServletRequest request) { // 获取预支付接口返回参数 Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> appPayMap = new HashMap<String, Object>(); try { // 构建接口请求参数 - UnifiedorderReqData unifiedorderReqData = new UnifiedorderReqData(apptype, outTradeNo, body, price, - Configure.wx_notify_url); + UnifiedorderReqData unifiedorderReqData = new UnifiedorderReqData(outTradeNo, body, price, Configure.wx_notify_url, + "JSAPI", openId); // 请求接口获取返回接口 - String result = requestUnifiedorderService(apptype, unifiedorderReqData); + String result = requestUnifiedorderService(2, unifiedorderReqData); System.out.println(result); System.out.println("WxpayController.createOrder__result:\n" + result); // 获取预支付接口返回参数 @@ -332,7 +363,7 @@ (String) map.get("prepay_id"), unifiedorderReqData.getNonce_str()); // 对获取预支付返回接口参数进行封装(生成支付订单接口数据) - appPayMap.put("appid", appPay.getAppid());// 公众账号ID + appPayMap.put("appid", appPay.getAppid());// 小程序ID appPayMap.put("nonceStr", appPay.getNoncestr());// 随机字符串(32位) appPayMap.put("package", appPay.get_package());// 扩展字段(暂填写固定值Sign=WXPay) appPayMap.put("partnerId", appPay.getPartnerid());// 商户号 @@ -427,7 +458,6 @@ paylog.setState(1); paylog.setAddTime(LocalDateTime.now()); paylog.setTradeStatus(trade_status.toString()); - iPaylogService.save(paylog); return paylog; } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/common/Configure.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/common/Configure.java index a1c12dd..e97fa94 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/common/Configure.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/common/Configure.java @@ -42,7 +42,7 @@ //HTTPS证书的本地路径 private static String certLocalPath; static{//从服务器相对路径中获取 - certLocalPath = Configure.class.getClassLoader().getResource("").getPath() + "com/tencent/common/cert/apiclient_cert.p12"; + certLocalPath = Configure.class.getClassLoader().getResource("").getPath() + "com/ruoyi/order/util/tencent/common/cert/apiclient_cert.p12"; } //HTTPS证书密码,默认密码等于商户号MCHID @@ -51,7 +51,7 @@ //HTTPS证书的本地路径 private static String certLocalPath_2; static{//从服务器相对路径中获取 - certLocalPath_2 = Configure.class.getClassLoader().getResource("").getPath() + "com/tencent/common/cert_2/apiclient_cert.p12"; + certLocalPath_2 = Configure.class.getClassLoader().getResource("").getPath() + "com/ruoyi/order/util/tencent/common/cert_2/apiclient_cert.p12"; } //HTTPS证书密码,默认密码等于商户号MCHID diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/protocol/UnifiedorderReqData.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/protocol/UnifiedorderReqData.java index ee959fd..f990d2a 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/protocol/UnifiedorderReqData.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/protocol/UnifiedorderReqData.java @@ -89,7 +89,7 @@ * @param notify_url 通知地址 * @throws IllegalAccessException */ - public UnifiedorderReqData(String out_trade_no, String body, Double total_fee, String notify_url,String trade_type,String openid) throws IllegalAccessException{ +/* public UnifiedorderReqData(String out_trade_no, String body, Double total_fee, String notify_url,String trade_type,String openid) throws IllegalAccessException{ //appID与商户号 this.appid = Configure.getGappid(); @@ -115,8 +115,8 @@ // setNotify_url(notify_url);// 通知地址 this.notify_url = notify_url; - /*trade_type 交易类型JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付,统一下单接口trade_type的传参可参考这里 - MICROPAY--刷卡支付,刷卡支付有单独的支付接口,不调用统一下单接口*/ + *//*trade_type 交易类型JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付,统一下单接口trade_type的传参可参考这里 + MICROPAY--刷卡支付,刷卡支付有单独的支付接口,不调用统一下单接口*//* this.trade_type = trade_type; this.openid = openid; @@ -124,7 +124,7 @@ this.sign = Signature.getSign(1,toMap()); } - + */ /** * 预支付请求需要的参数(获取微信统一下单-必填参数)(小程序) * 公众账号ID appid (内置) @@ -137,7 +137,7 @@ * @param notify_url 通知地址 * @throws IllegalAccessException */ - public UnifiedorderReqData(String out_trade_no, Double total_fee, String notify_url,String trade_type,String openid) throws IllegalAccessException{ + public UnifiedorderReqData(String out_trade_no, String body, Double total_fee, String notify_url,String trade_type,String openid) throws IllegalAccessException{ //appID与商户号 this.appid = Configure.getXappid(); @@ -151,7 +151,7 @@ // setBody(body);// 商品描述 - this.body = "小程序支付"; + this.body = body; // setOut_trade_no(out_trade_no);// 商户订单号 this.out_trade_no = out_trade_no; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/BaseService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/BaseService.java index af9da18..a600621 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/BaseService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/BaseService.java @@ -25,7 +25,6 @@ public BaseService(Integer apptype,String api) throws ClassNotFoundException, IllegalAccessException, InstantiationException { apiURL = api; - if (apptype.equals(2)) {//微信小程序和公众号的 Class<?> c = Class.forName(Configure.HttpsRequestClassName_2); serviceRequest = (IServiceRequest) c.newInstance(); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/WXPayConfigImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/WXPayConfigImpl.java index 8254fcb..8faf0aa 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/WXPayConfigImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/service/WXPayConfigImpl.java @@ -16,7 +16,7 @@ private static WXPayConfigImpl INSTANCE; private WXPayConfigImpl() throws Exception{ - String certPath = WXPayConfigImpl.class.getClassLoader().getResource("").getPath() + "com/tencent/common/cert/apiclient_cert.p12"; + String certPath = WXPayConfigImpl.class.getClassLoader().getResource("").getPath() + "com/ruoyi/order/util/tencent/common/cert/apiclient_cert.p12"; File file = new File(certPath); InputStream certStream = new FileInputStream(file); this.certData = new byte[(int) file.length()]; diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/conf/param.properties b/ruoyi-modules/ruoyi-order/src/main/resources/conf/param.properties index 8356c04..7823845 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/conf/param.properties +++ b/ruoyi-modules/ruoyi-order/src/main/resources/conf/param.properties @@ -29,8 +29,8 @@ # 微信支付分配的商户号ID(微信支付商户号) mchID = 1600685974 -# 公众号的商户号 -GmchID = 1600685974 +# 小程序的商户号 +XmchID = 1600685974 # 应用对应的密钥(商户平台开发设置) key = E10ADC3949BA59ABBE56E057F20F883E @@ -38,12 +38,8 @@ # 微信回调地址 wx_notify_url = http://116.63.172.131:8088/api/pay/wxpay/notify -# 没有公众号支付所以没有后面的参数配置 -# 公众号对应的密钥(商户平台开发设置) -key_2 = ZTlyynxl24490918687091970bianhao -# 公众号的APPID -GappID = wx742b6a65ca132418 -#公众号的appSecret -appSecret = 1baf1d22f695f3a9aa9f59934bcc94fe +# 小程序的APPID +XappID = wx742b6a65ca132418 + -- Gitblit v1.7.1