From c8a21748f87bc0a23744d9fee5dec3eaaa403fdc Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 11 六月 2024 18:59:51 +0800
Subject: [PATCH] 1.提交【管理后台】-资讯管理相关接口
---
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 98 insertions(+), 8 deletions(-)
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
index f2cdbce..200e29e 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -8,6 +8,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.enums.ClientTypeEnum;
import com.ruoyi.common.core.enums.GroupStatusEnum;
import com.ruoyi.common.core.enums.ListingStatusEnum;
import com.ruoyi.common.core.enums.OrderStatusEnum;
@@ -17,24 +18,25 @@
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.common.redis.service.RedisService;
-import com.ruoyi.goods.controller.forepart.vo.GoodsGroupPurchaseInfoVO;
import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseDTO;
import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery;
import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO;
-import com.ruoyi.goods.domain.GoodsGroupPurchase;
-import com.ruoyi.goods.domain.MemberGoodsCollection;
import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper;
import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
import com.ruoyi.goods.service.IGoodsSkuService;
import com.ruoyi.goods.service.async.AsyncMethodService;
import com.ruoyi.system.api.constants.DelayTaskEnum;
import com.ruoyi.system.api.constants.NotificationTypeConstant;
+import com.ruoyi.system.api.domain.GoodsGroupPurchase;
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.Order;
import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
import com.ruoyi.system.api.domain.dto.ListStatusDTO;
import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
import com.ruoyi.system.api.domain.dto.RefundDTO;
+import com.ruoyi.system.api.domain.vo.GoodsGroupPurchaseInfoVO;
+import com.ruoyi.system.api.domain.vo.OrderVO;
+import com.ruoyi.system.api.domain.vo.WdGoodsGroupPurchaseVO;
import com.ruoyi.system.api.feignClient.OrderClient;
import com.ruoyi.system.api.util.WebSocketUsers;
import java.time.LocalDateTime;
@@ -43,6 +45,7 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
+import javax.annotation.Resource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -60,7 +63,8 @@
@RequiredArgsConstructor
public class GoodsGroupPurchaseServiceImpl extends ServiceImpl<GoodsGroupPurchaseMapper, GoodsGroupPurchase> implements IGoodsGroupPurchaseService {
- private final OrderClient orderClient;
+ @Resource
+ private OrderClient orderClient;
private final IGoodsSkuService goodsSkuService;
private final AsyncMethodService asyncMethodService;
private final RedisService redisService;
@@ -91,6 +95,16 @@
if (StringUtils.isNull(dto.getGoodsSkuId())) {
throw new ServiceException("商品id不能为空");
}
+ LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper = Wrappers.lambdaQuery();
+ queryWrapper.eq(GoodsGroupPurchase::getGoodsSkuId, dto.getGoodsSkuId());
+ queryWrapper.eq(GoodsGroupPurchase::getListingStatus,
+ ListingStatusEnum.ON_SHELVES.getCode());
+ queryWrapper.between(GoodsGroupPurchase::getStartTime, dto.getStartTime(),
+ dto.getEndTime());
+ List<GoodsGroupPurchase> list = this.list(queryWrapper);
+ if (StringUtils.isNotEmpty(list)) {
+ throw new ServiceException("添加失败,当前商品在该时间段内有其他团购活动");
+ }
this.save(goodsGroupPurchase);
GoodsSku goodsSku = goodsSkuService.getById(dto.getGoodsSkuId());
if (StringUtils.isNull(goodsSku)) {
@@ -113,7 +127,7 @@
throw new ServiceException("已结束的团购商品不能编辑");
}
int originGroupStock = groupPurchase.getLimitNumber() * groupPurchase.getGroupSize();
- GoodsSku goodsSku = goodsSkuService.getById(dto.getGoodsSkuId());
+ GoodsSku goodsSku = goodsSkuService.getById(groupPurchase.getGoodsSkuId());
if (StringUtils.isNull(goodsSku)) {
throw new ServiceException("商品不存在");
}
@@ -197,7 +211,7 @@
map.put("target_id", groupPurchaseId);
map.put("message_type", "start");
String msg = objectMapper.writeValueAsString(map);
- WebSocketUsers.sendMessageToUsersByText(msg);
+ WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.MEMBER.getCode(), msg);
log.info("===================>发送websocket通知,消息体{}", msg);
}
}
@@ -221,7 +235,7 @@
map.put("target_id", groupPurchaseId);
map.put("message_type", "end");
String msg = objectMapper.writeValueAsString(map);
- WebSocketUsers.sendMessageToUsersByText(msg);
+ WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.MEMBER.getCode(), msg);
log.info("===================>发送websocket通知,消息体{}", msg);
}
}
@@ -283,7 +297,6 @@
@Override
public GoodsGroupPurchaseInfoVO getGoodsGroupPurchaseInfo(HomeGoodsSkuDTO homeGoodsSkuDTO) {
GoodsSku byId = goodsSkuService.getById(homeGoodsSkuDTO.getGoodsSkuId());
-
LambdaQueryWrapper<GoodsGroupPurchase> wrapper3= Wrappers.lambdaQuery();
wrapper3.eq(GoodsGroupPurchase::getDelFlag,0);
wrapper3.eq(GoodsGroupPurchase::getGoodsSkuId,homeGoodsSkuDTO.getGoodsSkuId());
@@ -306,6 +319,83 @@
goodsGroupPurchaseInfoVO.setListingStatus(one.getListingStatus());
goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
+ Order data = orderClient.getOrderByGroupPurchaseMemberId(homeGoodsSkuDTO, SecurityConstants.INNER).getData();
+ if (data!=null){
+ goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(2);
+ }else{
+ goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(1);
+ }
+
return goodsGroupPurchaseInfoVO;
}
+
+ @Override
+ public void QxGoodsGroupPurchase(HomeGoodsSkuDTO homeGoodsSkuDTO) {
+ Order order1 = orderClient.getOrderByGroupPurchaseMemberId(homeGoodsSkuDTO, SecurityConstants.INNER).getData();
+ RefundDTO refundDTO = new RefundDTO();
+ refundDTO.setOrderNo(order1.getOrderNo());
+ refundDTO.setAmount(order1.getTotalAmount());
+
+ List<RefundDTO>refundDTOList=new ArrayList<>();
+ refundDTOList.add(refundDTO);
+
+ List<Order> orderList=new ArrayList<>();
+ orderList.add(order1);
+
+ Map<String, Object> data = orderClient.refund(refundDTOList,
+ SecurityConstants.INNER).getData();
+ if (StringUtils.isNotEmpty(data)) {
+ // 处理退款返回结果
+ 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<Order> updateOrderList = orderList.stream()
+ .filter(order -> successfulOrders.contains(order.getOrderNo()))
+ .peek(order -> {
+ order.setOrderStatus(OrderStatusEnum.CANCELED);
+ }).collect(Collectors.toList());
+ List<OrderUpdDTO> orderUpdDTOS = BeanUtils.copyList(updateOrderList,
+ OrderUpdDTO.class);
+ orderClient.updateOrderList(orderUpdDTOS, SecurityConstants.INNER);
+ }
+
+ }
+
+ @Override
+ public PageDTO<WdGoodsGroupPurchaseVO> CtjlGoodsGroupPurchase(HomeGoodsSkuDTO homeGoodsSkuDTO) {
+ List<OrderVO> data = orderClient.getOrderByGroupPurchaseMemberList(homeGoodsSkuDTO, SecurityConstants.INNER).getData();
+ List<Long> goodsSkuIdList = data.stream()
+ .map(OrderVO::getGoodsSkuId)
+ .collect(Collectors.toList());
+ Page<GoodsGroupPurchase> page = new Page<>(homeGoodsSkuDTO.getPageCurr(), homeGoodsSkuDTO.getPageSize());
+ LambdaQueryWrapper< GoodsGroupPurchase> wrapper= Wrappers.lambdaQuery();
+ if (homeGoodsSkuDTO.getSkuName()!=null){
+ wrapper.in(GoodsGroupPurchase::getId,goodsSkuIdList);
+ }
+ wrapper.eq(GoodsGroupPurchase::getListingStatus,0);
+ wrapper.eq( GoodsGroupPurchase::getDelFlag,0);
+ Page< GoodsGroupPurchase> page1 = this.page(page, wrapper);
+
+ PageDTO<WdGoodsGroupPurchaseVO> GoodsGroupPurchaseVOPageDTO = PageDTO.of(page1, WdGoodsGroupPurchaseVO.class);
+ List<WdGoodsGroupPurchaseVO> list2 = GoodsGroupPurchaseVOPageDTO.getList();
+ for (WdGoodsGroupPurchaseVO goodsGroupPurchaseeVO:list2) {
+ GoodsSku byId = goodsSkuService.getById(goodsGroupPurchaseeVO.getGoodsSkuId());
+ goodsGroupPurchaseeVO.setGoodsSkuName(byId.getSkuName());
+ goodsGroupPurchaseeVO.setCoverPic(byId.getCoverPic());
+ goodsGroupPurchaseeVO.setPrice(byId.getPrice());
+ goodsGroupPurchaseeVO.setYears(String.valueOf(byId.getYears().getYear()));
+ goodsGroupPurchaseeVO.setIsGoodsGroupPurchase(2);
+ }
+
+
+ return GoodsGroupPurchaseVOPageDTO;
+ }
}
--
Gitblit v1.7.1