From 392b42c4891cf2e6beda57ab32c51598f290f4b7 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 14 三月 2025 20:56:27 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 45 ++++++++++++++++++++++++++++----------------- 1 files changed, 28 insertions(+), 17 deletions(-) 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 03fae10..7503e82 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 @@ -95,6 +95,7 @@ import com.ruoyi.system.api.feignClient.OrderClient; import com.ruoyi.system.api.feignClient.PromotionClient; import com.ruoyi.system.api.feignClient.SysUserClient; +import com.ruoyi.system.api.model.LoginUser; import io.seata.spring.annotation.GlobalTransactional; import java.io.IOException; import java.math.BigDecimal; @@ -395,7 +396,9 @@ @Override public AppMiniLoginVO isMiniLogin(AppMiniLoginDTO appMiniLoginDto) { AppMiniLoginVO appMiniLoginVo = new AppMiniLoginVO(); - R<SysUser> sysUserR = sysUserClient.queryUserByPhone(appMiniLoginDto.getPhone()); + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long userid = loginUser.getUserid(); + R<SysUser> sysUserR = sysUserClient.getSysUser(userid); SysUser data = sysUserR.getData(); appMiniLoginVo.setSysUser(data); appMiniLoginVo.setPhone(appMiniLoginDto.getCode()); @@ -476,6 +479,7 @@ memberAuctionSalesroomInfoVO.setType(byId.getType()); memberAuctionSalesroomInfoVO.setDescription(byId.getDescription()); memberAuctionSalesroomInfoVO.setShareTitle(byId.getShareTitle()); + memberAuctionSalesroomInfoVO.setAuctionAgreement(byId.getAuctionAgreement()); if (StringUtils.isNotBlank(byId.getShareTitle())) { memberAuctionSalesroomInfoVO.setShareTitle(byId.getShareTitle()); } else { @@ -526,6 +530,7 @@ forepartAuctionSalesroomGoodsVO.setDealQuantity(salesroomGoods.getDealQuantity()); forepartAuctionSalesroomGoodsVO.setMaxAmount(salesroomGoods.getMaxAmount()); forepartAuctionSalesroomGoodsVO.setBidNum(salesroomGoods.getBidNum()); + forepartAuctionSalesroomGoodsVO.setUnit(goodsSku.getUnit()); LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); wrapper1.eq(AuctionBidRecord::getMemberId,memberAuctionSalesroomDTO.getMemberId()); wrapper1.eq(AuctionBidRecord::getAuctionSalesroomId,byId.getId()); @@ -704,7 +709,8 @@ SecurityConstants.INNER); GoodsSku goodsSku = goodsSkuOneR.getData(); // 判断否大于最高价 - if (byId.getMaxAmount().compareTo(bidVO.getLastBidAmount()) < 0) { + if (Objects.nonNull(byId.getMaxAmount()) + && byId.getMaxAmount().compareTo(bidVO.getLastBidAmount()) < 0) { throw new ServiceException("出价不能高出最高价"); } // 查询用户出价记录判断是否第一次出价 首次出价,可以只出起拍价,而不是需要比起拍价高。 @@ -814,7 +820,7 @@ // 发送短信 authClient.sendSms( SmsSendDTO.builder().mobileList(Lists.newArrayList(membeOne.getPhone())) - .content("出价成功").build(), SecurityConstants.INNER); + .content("【酒鼎老酒】出价成功").build(), SecurityConstants.INNER); } else { AuctionGoods byId = auctionGoodsService.getById(bidVO.getTargetId()); R<GoodsSku> goodsSkuOneR = goodsSkuClient.getGoodsSkuOne(byId.getGoodsSkuId(), @@ -900,7 +906,7 @@ // 发送短信 authClient.sendSms( SmsSendDTO.builder().mobileList(Lists.newArrayList(membeOne.getPhone())) - .content("出价成功").build(), SecurityConstants.INNER); + .content("【酒鼎老酒】出价成功").build(), SecurityConstants.INNER); } } finally { @@ -1564,7 +1570,8 @@ Long orderId = addOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), auctionBidRecord.getLastBidAmount(), - auctionSalesroom.getBond()); + auctionSalesroom.getBond(), + auctionSalesroomGoods.getDealQuantity()); orderIdMap.put(auctionBidRecord.getMemberId(), orderId.toString()); auctionBidRecord.setOrderId(orderId); auctionBidRecordMapper.updateById(auctionBidRecord); @@ -1577,7 +1584,8 @@ Long orderId = addOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), auctionBidRecord.getLastBidAmount(), - auctionSalesroom.getBond()); + auctionSalesroom.getBond(), + auctionSalesroomGoods.getDealQuantity()); orderIdMap.put(auctionBidRecord.getMemberId(), orderId.toString()); auctionBidRecord.setOrderId(orderId); auctionBidRecordMapper.updateById(auctionBidRecord); @@ -1606,14 +1614,16 @@ .equals(BidStatusEnum.SUCCESSFUL)) .map(AuctionBidRecord::getMemberId) .collect(Collectors.toList()); + Map<Long, String> bidMap = auctionBidRecordList.stream().collect( + Collectors.toMap(AuctionBidRecord::getMemberId, + item -> item.getId().toString())); if (CollUtils.isNotEmpty(successMemberIdList)) { List<Member> successMemberList = memberClient.getMemberListByIds( successMemberIdList, SecurityConstants.INNER).getData(); if (CollUtils.isNotEmpty(successMemberList)) { // 推送websocket消息 sendWebsocketMsg(auctionSalesroomGoods.getId(), successMemberList, - goodsSku, 1, - orderIdMap); + goodsSku, 1, orderIdMap, bidMap); // 发送短信通知 List<String> mobileList = successMemberList.stream() .map(Member::getPhone) @@ -1630,8 +1640,7 @@ if (CollUtils.isNotEmpty(failedMemberList)) { // 推送websocket消息 sendWebsocketMsg(auctionSalesroomGoods.getId(), failedMemberList, - goodsSku, 0, - orderIdMap); + goodsSku, 0, orderIdMap, bidMap); // 发送短信通知 List<String> mobileList = failedMemberList.stream() .map(Member::getPhone) @@ -1678,7 +1687,7 @@ * @param successFlag // 中标状态 1:中标 0:未中标 */ private void sendWebsocketMsg(Long id, List<Member> memberList, GoodsSku goodsSku, - Integer successFlag, Map<Long, String> userIdMap) { + Integer successFlag, Map<Long, String> userIdMap, Map<Long, String> bidMap) { for (Member member : memberList) { Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.AUCTION_POPUP); @@ -1687,16 +1696,18 @@ map.put("goods_name", Objects.nonNull(goodsSku) ? goodsSku.getSkuName() : ""); map.put("success_flag", successFlag); map.put("order_id", successFlag == 1 ? userIdMap.getOrDefault(member.getId(), "") : ""); + map.put("auction_bid_record_id", bidMap.getOrDefault(member.getId(), "0")); + map.put("member_id", member.getId().toString()); String msg = com.alibaba.fastjson2.JSONObject.toJSONString(map); - sysUserClient.pushBatch( - WebsocketMessageDTO.builder().message(msg).userId(member.getUserId()).build(), - SecurityConstants.INNER); + sysUserClient.pushByClientType( + WebsocketMessageDTO.builder().message(msg).clientType(ClientTypeEnum.MEMBER) + .build(), SecurityConstants.INNER); log.info("===================>发送websocket通知,消息体{}", msg); } } public Long addOrder(Long goodsSkuId, Long memberId, BigDecimal lastBidAmount, - BigDecimal bound) { + BigDecimal bound, Integer dealQuantity) { OrderDTO order = new OrderDTO(); order.setGoodsSkuId(goodsSkuId); order.setOrderTime(LocalDateTime.now()); @@ -1705,8 +1716,8 @@ AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById( goodsSkuId); - order.setGoodsQuantity(1); - order.setTotalAmount(lastBidAmount); + order.setGoodsQuantity(dealQuantity); + order.setTotalAmount(lastBidAmount.multiply(new BigDecimal(dealQuantity))); order.setAuctionSalesroomId(auctionSalesroomGoods.getAuctionSalesroomId()); R<MemberAddress> memberAddressR = memberClient.getMemberAddressOne(memberId, -- Gitblit v1.7.1