yangyb před 3 týdny
rodič
revize
456e09bbe0

+ 0 - 1
mall-service/src/main/java/com/txz/mall/controller/CombinationController.java

@@ -173,7 +173,6 @@ public class CombinationController {
         return Result.success(arrayList);
     }
 
-
     /**
      * 去开团
      */

+ 10 - 2
mall-service/src/main/java/com/txz/mall/controller/OrderController.java

@@ -13,6 +13,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import vo.MyRecord;
 import vo.StoreOrderCountItemVO;
 import vo.StoreOrderVO;
 
@@ -40,8 +41,8 @@ public class OrderController {
         if (orderRequest == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);
         }
-        storeOrderService.createOrder(orderRequest);
-        return Result.success();
+        MyRecord record = storeOrderService.createOrder(orderRequest);
+        return Result.success(record);
     }
 
     @PostMapping("/delete")
@@ -165,4 +166,11 @@ public class OrderController {
     public Result<ComputedOrderPriceResponse> computedPrice(@Validated @RequestBody OrderComputedPriceRequest request) {
         return Result.success(storeOrderService.computedOrderPrice(request));
     }
+
+    @ApiOperation(value = "获取订单支付结果")
+    @PostMapping(value = "/get/pay/result")
+    public Result getPayResult(@RequestParam Long orderId) {
+        Boolean result = storeOrderService.getPayResult(orderId);
+        return Result.success(result);
+    }
 }

+ 11 - 1
mall-service/src/main/java/com/txz/mall/controller/PinkController.java

@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
 import tk.mybatis.mapper.entity.Condition;
 import tk.mybatis.mapper.entity.Example;
 import vo.StorePinkDetailVO;
+import vo.StorePinkOngoingVO;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -130,6 +131,15 @@ public class PinkController {
         return Result.success(pageInfo);
     }
 
+    @ApiOperation(value = "已存在的拼团列表")
+    @PostMapping(value = "/ongoing/list")
+    public Result<List<StorePinkOngoingVO>> ongoingList(@RequestBody StorePink storePink, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) {
+        PageHelper.startPage(page, size);
+        List<StorePinkOngoingVO> list = storePinkService.ongoingList(storePink);
+        PageInfo pageInfo = new PageInfo(list);
+        return Result.success(pageInfo);
+    }
+
     /**
      * 拼团订单列表
      */
@@ -142,7 +152,7 @@ public class PinkController {
     /**
      * 拼团成功
      */
-    @ApiOperation(value = "拼团失败")
+    @ApiOperation(value = "拼团成功")
     @PostMapping(value = "/pinkSuccess")
     public Result pinkSuccess(@RequestParam("id") Long id) {
         storePinkService.pinkSuccess(id);

+ 9 - 1
mall-service/src/main/java/com/txz/mall/service/StoreOrderService.java

@@ -3,6 +3,7 @@ package com.txz.mall.service;
 import com.txz.mall.core.Service;
 import com.txz.mall.model.StoreOrder;
 import dto.*;
+import vo.MyRecord;
 import vo.OrderRefundApplyVO;
 import vo.StoreOrderCountItemVO;
 import vo.StoreOrderVO;
@@ -99,5 +100,12 @@ public interface StoreOrderService extends Service<StoreOrder> {
      * @param orderRequest 创建订单请求参数
      * @return MyRecord 订单编号
      */
-    void createOrder(CreateOrderRequest orderRequest);
+    MyRecord createOrder(CreateOrderRequest orderRequest);
+
+    /**
+     * 获取支付结果
+     *
+     * @param orderId 订单编号
+     */
+    Boolean getPayResult(Long orderId);
 }

+ 6 - 0
mall-service/src/main/java/com/txz/mall/service/StorePinkService.java

@@ -2,6 +2,7 @@ package com.txz.mall.service;
 
 import com.txz.mall.core.Service;
 import com.txz.mall.model.StorePink;
+import vo.StorePinkOngoingVO;
 
 import java.util.List;
 
@@ -24,4 +25,9 @@ public interface StorePinkService extends Service<StorePink> {
      * 拼团成功
      */
     void pinkSuccess(Long id);
+
+    /**
+     * 已存在拼团列表
+     */
+    List<StorePinkOngoingVO> ongoingList(StorePink storePink);
 }

+ 17 - 3
mall-service/src/main/java/com/txz/mall/service/impl/StoreOrderServiceImpl.java

@@ -105,6 +105,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
         storePink.setAddTime(date);
         storePink.setStopTime(DateUtils.addMinutes(date, effectiveTime));
         storePink.setKId(0L);
+        storePink.setUid(storeOrder.getUid());
         storePink.setIsTpl(0);
         storePink.setIsRefund(0);
         storePink.setStatus(1);
@@ -866,7 +867,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
     }
 
     @Override
-    public void createOrder(CreateOrderRequest request) {
+    public MyRecord createOrder(CreateOrderRequest request) {
         UserDTO user = userDubboServiceClient.getUser(request.getUserId());
         // 通过缓存获取预下单对象
         String key = "user_order:" + request.getPreOrderNo();
@@ -965,6 +966,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
         // 订单总价
         BigDecimal totalPrice = computedOrderPriceResponse.getProTotalFee().add(computedOrderPriceResponse.getFreightFee());
 
+        storeOrder.setCombinationId(orderInfoVo.getCombinationId());
         storeOrder.setTotalPrice(totalPrice);
         storeOrder.setProTotalPrice(computedOrderPriceResponse.getProTotalFee());
         storeOrder.setTotalPostage(computedOrderPriceResponse.getFreightFee());
@@ -1042,8 +1044,20 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
 //        redisUtil.lPush(Constants.ORDER_AUTO_CANCEL_KEY, storeOrder.getOrderId());
 //
         MyRecord record = new MyRecord();
-        record.set("orderNo", storeOrder.getOrderId());
-//        return record;
+        record.set("orderId", storeOrder.getOrderId());
+        record.set("orderNo", orderNo);
+        return record;
+    }
+
+    @Override
+    public Boolean getPayResult(Long orderId) {
+        StoreOrder storeOrder = findById(orderId);
+        if (storeOrder.getPaid() == 1) {
+            goOpen(orderId);
+            return true;
+        } else {
+            return false;
+        }
     }
 
     /**

+ 38 - 4
mall-service/src/main/java/com/txz/mall/service/impl/StorePinkServiceImpl.java

@@ -1,6 +1,7 @@
 package com.txz.mall.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.txz.mall.core.AbstractService;
 import com.txz.mall.dao.StorePinkMapper;
 import com.txz.mall.model.StorePink;
@@ -9,10 +10,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import tk.mybatis.mapper.entity.Condition;
 import tk.mybatis.mapper.entity.Example;
+import vo.StorePinkOngoingVO;
 
 import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -29,8 +31,8 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
         Condition condition = new Condition(StorePink.class);
         Example.Criteria criteria = condition.createCriteria();
         criteria.andEqualTo("isDelete", 0);
-        criteria.andEqualTo("kId", kid);
-        criteria.andEqualTo("cId", cid);
+        criteria.andEqualTo("kid", kid);
+        criteria.andEqualTo("cid", cid);
         condition.setOrderByClause("id DESC");
         return findByCondition(condition);
     }
@@ -50,4 +52,36 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
             update(i);
         });
     }
+
+    @Override
+    public List<StorePinkOngoingVO> ongoingList(StorePink storePink) {
+        Condition condition = new Condition(StorePink.class);
+        Example.Criteria criteria = condition.createCriteria();
+        criteria.andEqualTo("isDelete", 0);
+        criteria.andEqualTo("cid", storePink.getCid());
+//        criteria.andEqualTo("kid", 0);
+        criteria.andEqualTo("status", 1);
+        List<StorePink> pinkList = findByCondition(condition);
+        List<StorePinkOngoingVO> list = new ArrayList<>();
+
+        Map<String, List<StorePink>> collect = pinkList.stream().collect(Collectors.groupingBy(StorePink::getOrderId));
+        for (Map.Entry<String, List<StorePink>> entry : collect.entrySet()) {
+            StorePinkOngoingVO pinkOngoingVO = new StorePinkOngoingVO();
+            List<StorePink> groupList = entry.getValue();
+            List<StorePink> kidCollect = groupList.stream().filter(i -> i.getKId().equals(0L)).collect(Collectors.toList());
+
+            if (CollectionUtils.isNotEmpty(kidCollect)) {
+                pinkOngoingVO.setId(kidCollect.get(0).getId());
+                pinkOngoingVO.setOrderId(entry.getKey());
+                StorePink pink = groupList.get(0);
+                pinkOngoingVO.setTotalNum(pink.getPeople());
+                pinkOngoingVO.setRemainNum(pink.getPeople() - groupList.size());
+                pinkOngoingVO.setSuccessAvatar(groupList.stream().map(StorePink::getAvatar).collect(Collectors.toList()));
+                list.add(pinkOngoingVO);
+            }
+        }
+        list = list.stream().sorted(Comparator.comparing(StorePinkOngoingVO::getRemainNum)).collect(Collectors.toList());
+        return list;
+    }
+
 }

+ 40 - 0
mall-service/src/main/java/vo/StorePinkOngoingVO.java

@@ -0,0 +1,40 @@
+package vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("eb_store_pink")
+@ApiModel(value = "StorePink对象", description = "拼团表")
+public class StorePinkOngoingVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "拼团ID")
+    private Long id;
+
+    @ApiModelProperty(value = "拼团订单id")
+    private String orderId;
+
+    @ApiModelProperty(value = "拼团商品id")
+    private Long cid;
+
+    @ApiModelProperty(value = "拼团成功的用户头像")
+    private List<String> successAvatar;
+
+    @ApiModelProperty(value = "总人数")
+    private Integer totalNum;
+
+    @ApiModelProperty(value = "还需人数")
+    private Integer remainNum;
+}