From 884f5c68ac8c738f90f1ca257605cfbb5d7f12db Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 26 六月 2024 09:09:27 +0800 Subject: [PATCH] 提交【管理后台】-工作台接口 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 88 ++++++++++++++++++++++++++++---------------- 1 files changed, 56 insertions(+), 32 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 ea82965..08f2342 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 @@ -53,7 +53,6 @@ import com.ruoyi.common.core.utils.page.Checker; import com.ruoyi.common.core.utils.page.CollUtils; import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.RemoteFileService; import com.ruoyi.system.api.constants.NotificationTypeConstant; import com.ruoyi.system.api.domain.AppMiniLoginVO; @@ -64,6 +63,7 @@ import com.ruoyi.system.api.domain.OrderAuctionBond; import com.ruoyi.system.api.domain.PromotionVideo; import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.domain.WebsocketMessageDTO; import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; import com.ruoyi.system.api.domain.dto.AuctionSalesroomDTO; import com.ruoyi.system.api.domain.dto.BidDTO; @@ -85,7 +85,6 @@ 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.util.WebSocketUsers; import io.seata.spring.annotation.GlobalTransactional; import java.io.IOException; import java.math.BigDecimal; @@ -103,8 +102,6 @@ import java.util.function.Function; import java.util.stream.Collectors; import javax.annotation.Resource; - -import lombok.Data; import org.apache.http.HttpResponse; import org.apache.http.client.config.RequestConfig; import org.apache.http.util.EntityUtils; @@ -473,6 +470,7 @@ LambdaQueryWrapper<AuctionBrowseRecord> wrapper3=Wrappers.lambdaQuery(); wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); wrapper3.eq(AuctionBrowseRecord::getTargetId,memberAuctionSalesroomDTO.getAuctionSalesroomId()); + wrapper3.eq(AuctionBrowseRecord::getBrowseType,AuctionOrderTypeEnum.AUCTION_ITEMS); wrapper3.eq(AuctionBrowseRecord::getMemberId,memberAuctionSalesroomDTO.getMemberId()); wrapper3.ge(AuctionBrowseRecord::getCreateTime, now) .le(AuctionBrowseRecord::getCreateTime, newTime7); @@ -652,14 +650,9 @@ } catch (JsonProcessingException e) { } String finalMsg = msg; - Thread socketSender=new Thread(()->{ - try { - Thread.sleep(1000);//先休眠1秒 - WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.MEMBER.getCode(), finalMsg); - } catch (Exception e) { - e.printStackTrace(); - } - }); + sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(finalMsg) + .clientType(ClientTypeEnum.MEMBER).build(), SecurityConstants.INNER); + @@ -721,14 +714,9 @@ } catch (JsonProcessingException e) { } String finalMsg = msg; - Thread socketSender=new Thread(()->{ - try { - Thread.sleep(1000);//先休眠1秒 - WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.MEMBER.getCode(), finalMsg); - } catch (Exception e) { - e.printStackTrace(); - } - }); + sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(finalMsg) + .clientType(ClientTypeEnum.MEMBER).build(), SecurityConstants.INNER); + } } @@ -778,7 +766,9 @@ query.getEndTime()), AuctionSalesroom::getStartTime, query.getStartTime(), query.getEndTime()) + .orderByDesc(AuctionSalesroom::getCreateTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); + List<AuctionSalesroom> records = page.getRecords(); if (StringUtils.isNull(records)) { return PageDTO.empty(page); @@ -1082,6 +1072,7 @@ .between(StringUtils.isNotNull(query.getStartTime()) && StringUtils.isNotNull( query.getEndTime()), AuctionSalesroom::getStartTime, query.getStartTime(), query.getEndTime()) + .orderByAsc(AuctionSalesroom::getStartTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); List<AuctionSalesroom> records = page.getRecords(); if (StringUtils.isNull(records)) { @@ -1284,13 +1275,22 @@ * @param id 拍卖场商品id */ @Override - public void stopCurrentGoods(Long id) { + public void stopCurrentGoods(Long id) throws JsonProcessingException { AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id); if (StringUtils.isNull(auctionSalesroomGoods)) { throw new ServiceException("拍卖商品不存在"); } auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED); auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods); + Map<String, Object> map = new ConcurrentHashMap<>(); + map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS); + map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString()); + map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString()); + map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus()); + map.put("message_type", "stop"); + map.put("type", "2"); + String msg = objectMapper.writeValueAsString(map); + sysUserClient.pushAll(msg, SecurityConstants.INNER); } /** @@ -1299,13 +1299,22 @@ * @param id 拍卖场商品id */ @Override - public void startNextGoods(Long id) { + public void startNextGoods(Long id) throws JsonProcessingException { AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id); if (StringUtils.isNull(auctionSalesroomGoods)) { throw new ServiceException("拍卖商品不存在"); } auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.IN_PROGRESS); auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods); + Map<String, Object> map = new ConcurrentHashMap<>(); + map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS); + map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString()); + map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString()); + map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus()); + map.put("message_type", "start"); + map.put("type", "2"); + String msg = objectMapper.writeValueAsString(map); + sysUserClient.pushAll(msg, SecurityConstants.INNER); } /** @@ -1320,6 +1329,8 @@ if (StringUtils.isNull(data)) { throw new ServiceException("视频不存在"); } + iAuctionVideoService.remove(Wrappers.<AuctionVideo>lambdaQuery().eq + (AuctionVideo::getAuctionSalesroomId, dto.getAuctionSalesroomId())); AuctionVideo auctionVideo = new AuctionVideo(); auctionVideo.setAuctionSalesroomId(dto.getAuctionSalesroomId()); auctionVideo.setPromotionVideoId(dto.getVideoId()); @@ -1335,7 +1346,7 @@ @Override public void stopPlay(Long auctionSalesroomId) { iAuctionVideoService.remove(Wrappers.<AuctionVideo>lambdaQuery().eq - (AuctionVideo::getAuctionSalesroomId, 1L)); + (AuctionVideo::getAuctionSalesroomId, auctionSalesroomId)); } /** @@ -1365,10 +1376,13 @@ Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM); - map.put("auctionSalesroomId", auctionSalesroom.getId()); + map.put("auctionSalesroomId", auctionSalesroom.getId().toString()); + map.put("AuctionTypeEnum", auctionSalesroom.getStatus()); map.put("message_type", "start"); + map.put("type", "1"); String msg = objectMapper.writeValueAsString(map); - WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.AUCTIONEER.getCode(), msg); + sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(msg) + .clientType(ClientTypeEnum.AUCTIONEER).build(), SecurityConstants.INNER); } @Override @@ -1376,17 +1390,24 @@ @Transactional public void stopCurrentAuctionSalesroom(Long auctionSalesroomId) throws JsonProcessingException { - // 修改拍卖场开始状态 - AuctionSalesroom auctionSalesroom = this.getById(auctionSalesroomId); - auctionSalesroom.setStatus(AuctionStartStatusEnum.ENDED); - auctionSalesroom.setEndTime(LocalDateTime.now()); - auctionSalesroomMapper.updateById(auctionSalesroom); LambdaQueryWrapper<AuctionSalesroomGoods> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionSalesroomGoods::getStatus, AuctionGoodsStatusEnum.WAITING); wrapper.eq(AuctionSalesroomGoods::getAuctionSalesroomId, auctionSalesroomId); wrapper.orderByDesc(AuctionSalesroomGoods::getSortNum); List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList( wrapper); + long count = auctionSalesroomGoods.stream() + .filter(goods -> goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) + .count(); + if (count > 0) { + throw new ServiceException("当前拍卖场正在拍卖商品,不能停止"); + } + // 修改拍卖场开始状态 + AuctionSalesroom auctionSalesroom = this.getById(auctionSalesroomId); + auctionSalesroom.setStatus(AuctionStartStatusEnum.ENDED); + auctionSalesroom.setEndTime(LocalDateTime.now()); + auctionSalesroomMapper.updateById(auctionSalesroom); + if (StringUtils.isNotEmpty(auctionSalesroomGoods)) { List<GoodsStockUpdDTO> dtoList = new ArrayList<>(); for (AuctionSalesroomGoods salesroomGoods : auctionSalesroomGoods) { @@ -1415,10 +1436,13 @@ } Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM); - map.put("auctionSalesroomId", auctionSalesroom.getId()); + map.put("auctionSalesroomId", auctionSalesroom.getId().toString()); + map.put("AuctionTypeEnum",auctionSalesroom.getStatus()); map.put("message_type", "end"); + map.put("type", "1"); String msg = objectMapper.writeValueAsString(map); - WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.AUCTIONEER.getCode(), msg); + sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(msg) + .clientType(ClientTypeEnum.AUCTIONEER).build(), SecurityConstants.INNER); } @Override -- Gitblit v1.7.1