|
@@ -2,8 +2,12 @@ package com.txz.mall.business.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.txz.cif.dto.UserDTO;
|
|
|
import com.txz.mall.business.PinkServiceBusiness;
|
|
|
import com.txz.mall.core.ServiceException;
|
|
|
+import com.txz.mall.dubbo.client.CifUserDubboServiceClient;
|
|
|
+import com.txz.mall.enums.PinkOrderStatusEnum;
|
|
|
+import com.txz.mall.enums.StorePinkStatusEnum;
|
|
|
import com.txz.mall.model.StoreOrder;
|
|
|
import com.txz.mall.model.StorePink;
|
|
|
import com.txz.mall.service.StoreCombinationService;
|
|
@@ -13,14 +17,14 @@ import lombok.AllArgsConstructor;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+import org.springframework.util.ObjectUtils;
|
|
|
import tk.mybatis.mapper.entity.Condition;
|
|
|
import tk.mybatis.mapper.entity.Example;
|
|
|
import vo.OrderRefundApplyVO;
|
|
|
import vo.StorePinkDetailVO;
|
|
|
|
|
|
-import java.util.Comparator;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -35,37 +39,59 @@ public class PinkServiceBusinessImpl implements PinkServiceBusiness {
|
|
|
private final StoreOrderService storeOrderService;
|
|
|
private final StorePinkService storePinkService;
|
|
|
private final StoreCombinationService storeCombinationService;
|
|
|
+ private final CifUserDubboServiceClient cifUserDubboServiceClient;
|
|
|
|
|
|
@Override
|
|
|
- public List<StorePinkDetailVO> getAdminList(Integer pinkId) {
|
|
|
- Condition condition = new Condition(StorePink.class);
|
|
|
- Example.Criteria criteria = condition.createCriteria();
|
|
|
- criteria.andEqualTo("isDelete", 0);
|
|
|
- criteria.andEqualTo("id", pinkId);
|
|
|
+ public List<StorePinkDetailVO> getAdminList(Long pinkId) {
|
|
|
+
|
|
|
+ if (ObjectUtils.isEmpty(pinkId)) {
|
|
|
+ throw new ServiceException("拼团id为空");
|
|
|
+ }
|
|
|
+ StorePink storePink = storePinkService.findById(pinkId);
|
|
|
+ if (ObjectUtils.isEmpty(storePink)) {
|
|
|
+ throw new ServiceException("拼团数据不存在");
|
|
|
+ }
|
|
|
+ List<StorePinkDetailVO> resultList = new ArrayList<>();
|
|
|
+ if (StorePinkStatusEnum.RESULTS_ANNOUNCED.getKey().equals(storePink.getStatus())) {
|
|
|
+
|
|
|
+ Condition condition = new Condition(StorePink.class);
|
|
|
+ Example.Criteria criteria = condition.createCriteria();
|
|
|
+ criteria.andEqualTo("isDelete", 0);
|
|
|
+ criteria.andEqualTo("spsId", storePink.getSpsId());
|
|
|
+ ArrayList<Integer> integers = CollUtil.newArrayList(
|
|
|
+ PinkOrderStatusEnum.GROUP_ORDER_TO_CLOSED.getKey(),
|
|
|
+ PinkOrderStatusEnum.GROUP_ORDER_COMPLETED.getKey(),
|
|
|
+ PinkOrderStatusEnum.GROUP_ORDER_TO_SHIP.getKey(),
|
|
|
+ PinkOrderStatusEnum.GROUP_ORDER_TO_RECEVIE.getKey()
|
|
|
+ );
|
|
|
+ criteria.andIn("orderStatus", integers);
|
|
|
// criteria.andEqualTo("kId", pinkId);
|
|
|
- List<StorePink> pinkList = storePinkService.findByCondition(condition);
|
|
|
- pinkList = pinkList.stream()
|
|
|
- .sorted(Comparator.comparing(StorePink::getId).reversed())
|
|
|
- .collect(Collectors.toList());
|
|
|
- // 将拼团状态提换为订单状态
|
|
|
- return pinkList.stream().map(pink -> {
|
|
|
- StorePinkDetailVO response = new StorePinkDetailVO();
|
|
|
- BeanUtils.copyProperties(pink, response);
|
|
|
- Condition orderCondition = new Condition(StoreOrder.class);
|
|
|
- Example.Criteria orderCriteria = condition.createCriteria();
|
|
|
- orderCriteria.andEqualTo("isDelete", 0);
|
|
|
- orderCriteria.andEqualTo("id", pinkId);
|
|
|
- orderCriteria.andEqualTo("orderId", pink.getOrderId());
|
|
|
- StoreOrder storeOrder = storeOrderService.findByCondition(orderCondition).get(0);
|
|
|
- if (ObjectUtil.isNotNull(storeOrder)) {
|
|
|
- response.setOrderStatus(storeOrder.getStatus());
|
|
|
- response.setRefundStatus(storeOrder.getRefundStatus());
|
|
|
- response.setUserPhone(storeOrder.getUserPhone());
|
|
|
- response.setName(storeOrder.getRealName());
|
|
|
- response.setPayTime(storeOrder.getPayTime());
|
|
|
+ List<StorePink> pinkList = storePinkService.findByCondition(condition);
|
|
|
+
|
|
|
+ Map<Long, UserDTO> userDTOMap = new HashMap<>();
|
|
|
+ if (!CollectionUtils.isEmpty(pinkList)) {
|
|
|
+ List<Long> uidList = pinkList.stream().map(StorePink::getUid).filter(uid -> !ObjectUtils.isEmpty(uid)).collect(Collectors.toList());
|
|
|
+ if (!CollectionUtils.isEmpty(uidList)) {
|
|
|
+ List<UserDTO> usersByIds = cifUserDubboServiceClient.getUsersByIds(uidList);
|
|
|
+ userDTOMap = usersByIds.stream().collect(Collectors.toMap(UserDTO::getId, a -> a, (b, c) -> b));
|
|
|
+ }
|
|
|
+
|
|
|
+ for (StorePink pink : pinkList) {
|
|
|
+ StorePinkDetailVO storePinkDetailVO = new StorePinkDetailVO();
|
|
|
+ storePinkDetailVO.setId(pink.getId());
|
|
|
+ UserDTO userDTO = userDTOMap.get(pink.getUid());
|
|
|
+ if (!ObjectUtils.isEmpty(userDTO)) {
|
|
|
+ storePinkDetailVO.setAvatar(userDTO.getHeadPic());
|
|
|
+ // storePinkDetailVO.setUserPhone()
|
|
|
+ storePinkDetailVO.setNickname(userDTO.getName());
|
|
|
+ storePinkDetailVO.setUid(userDTO.getId());
|
|
|
+ }
|
|
|
+ resultList.add(storePinkDetailVO);
|
|
|
+ }
|
|
|
}
|
|
|
- return response;
|
|
|
- }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ return resultList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -88,8 +114,6 @@ public class PinkServiceBusinessImpl implements PinkServiceBusiness {
|
|
|
// 全部改失败
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* 1.判断是否拼团成功
|
|
|
* 2.失败的拼团改为失败,订单申请退款
|