From 2b3cf8e87398099ba0818ea84e6c751871beac1c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 28 Jun 2021 20:53:10 +0800
Subject: [PATCH] modify

---
 gc-core/src/main/java/com/xzx/gc/entity/JhyOrder.java                         |    4 +
 gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java |   21 ++++++++++
 gc-order/src/main/resources/mapper/order/JhyInfoMapper.xml                    |    9 ++++
 gc-order/src/main/java/com/xzx/gc/order/mapper/JhyInfoMapper.java             |   10 +++++
 gc-order/src/main/java/com/xzx/gc/order/dto/JhyOrderConfirmDto.java           |   16 ++++++++
 gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java          |   52 ++++++++++++++++++++++----
 6 files changed, 103 insertions(+), 9 deletions(-)

diff --git a/gc-core/src/main/java/com/xzx/gc/entity/JhyOrder.java b/gc-core/src/main/java/com/xzx/gc/entity/JhyOrder.java
index 754cf59..63f0cfb 100644
--- a/gc-core/src/main/java/com/xzx/gc/entity/JhyOrder.java
+++ b/gc-core/src/main/java/com/xzx/gc/entity/JhyOrder.java
@@ -36,10 +36,12 @@
     private String weight;
 
     /**
-     * 订单状态 状态 1-待接单2-服务中3-已收款4-待入库5-已完成6-已取消
+     * 订单状态 状态 1-待接单2-已接单3-已完成(用户)/待入库(集物员)4-已完成5-已取消
      */
     private Integer status;
     public static final Integer ORDER_STATUS_WAITING = 1;
+    public static final Integer ORDER_STATUS_IMG = 2;
+    public static final Integer ORDER_STATUS_CANCEL = 5;
 
     /**
      * 评论
diff --git a/gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java b/gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java
index 6d6f5c9..8080976 100644
--- a/gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java
+++ b/gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java
@@ -14,6 +14,7 @@
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -58,4 +59,24 @@
         return JsonResult.success(jhyOrderService.orderDetails(orderId, getUserId(request)));
     }
 
+    @ApiOperation("抢单")
+    @PostMapping(value = "/jhy/order/grab/{orderId}")
+    public Result<String> grabOrder(@PathVariable("orderId") Long orderId, HttpServletRequest request) {
+        jhyOrderService.grabOrder(orderId, getUserId(request));
+        return Result.success();
+    }
+
+    @ApiOperation("取消订单")
+    @PostMapping(value = "/jhy/order/cancel/{orderId}")
+    public Result<String> cancelOrder(Long orderId, HttpServletRequest request) {
+        jhyOrderService.cancelOrder(orderId, getUserId(request));
+        return null;
+    }
+
+    @ApiOperation("确认订单-支付")
+    @PostMapping(value = "/jhy/order/confirm")
+    public Result<String> confirmOrder() {
+        return null;
+    }
+
 }
diff --git a/gc-order/src/main/java/com/xzx/gc/order/dto/JhyOrderConfirmDto.java b/gc-order/src/main/java/com/xzx/gc/order/dto/JhyOrderConfirmDto.java
new file mode 100644
index 0000000..6d56a6f
--- /dev/null
+++ b/gc-order/src/main/java/com/xzx/gc/order/dto/JhyOrderConfirmDto.java
@@ -0,0 +1,16 @@
+package com.xzx.gc.order.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author wzy
+ * @date 2021-06-28
+ **/
+@Data
+@ApiModel(value = "JhyOrderConfirmDto")
+public class JhyOrderConfirmDto {
+
+    private Long orderId;
+
+}
diff --git a/gc-order/src/main/java/com/xzx/gc/order/mapper/JhyInfoMapper.java b/gc-order/src/main/java/com/xzx/gc/order/mapper/JhyInfoMapper.java
new file mode 100644
index 0000000..b2a3f43
--- /dev/null
+++ b/gc-order/src/main/java/com/xzx/gc/order/mapper/JhyInfoMapper.java
@@ -0,0 +1,10 @@
+package com.xzx.gc.order.mapper;
+
+import com.xzx.gc.entity.JhyInfo;
+import com.xzx.gc.util.GcMapper;
+import org.apache.ibatis.annotations.Param;
+
+public interface JhyInfoMapper extends GcMapper<JhyInfo> {
+    JhyInfo selectJhyInfoByUserId(@Param("userId") String userId);
+
+}
diff --git a/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java b/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
index 9859109..599c89d 100644
--- a/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
+++ b/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
@@ -5,17 +5,12 @@
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.xzx.gc.common.constant.Constants;
+import com.xzx.gc.common.exception.RestException;
 import com.xzx.gc.common.utils.IdUtils;
-import com.xzx.gc.entity.AddressInfo;
-import com.xzx.gc.entity.JhyOrder;
-import com.xzx.gc.entity.JhyOrderItems;
-import com.xzx.gc.entity.SysEnvironmentalInfo;
+import com.xzx.gc.entity.*;
 import com.xzx.gc.order.dto.AddJhyOrderDto;
 import com.xzx.gc.order.dto.JhyOrderListDto;
-import com.xzx.gc.order.mapper.AddressMapper;
-import com.xzx.gc.order.mapper.JhyOrderItemsMapper;
-import com.xzx.gc.order.mapper.JhyOrderMapper;
-import com.xzx.gc.order.mapper.SysEnvironmentalInfoMapper;
+import com.xzx.gc.order.mapper.*;
 import com.xzx.gc.order.vo.JhyOrderDetailsVo;
 import com.xzx.gc.order.vo.JhyOrderListVo;
 import lombok.extern.slf4j.Slf4j;
@@ -23,6 +18,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
@@ -46,9 +42,17 @@
     private JhyOrderItemsMapper jhyOrderItemsMapper;
 
     @Autowired
+    private JhyInfoMapper jhyInfoMapper;
+
+    @Autowired
     private IdUtils idUtils;
 
     public void addJhyOrder(AddJhyOrderDto orderDto) {
+//        JhyInfo jhyInfo = jhyInfoMapper.selectJhyInfoByUserId(orderDto.getUserId());
+//        if (jhyInfo != null && JhyInfo.CHECK_PASS.equals(jhyInfo.getStatus())) {
+//            throw new RestException(-3, "集货员不能下单");
+//        }
+
         // TODO 判断地址附近500米是否有集物员
         String orderNo = idUtils.generate("JW", 10);
 
@@ -96,6 +100,11 @@
     }
 
     public PageInfo<JhyOrderListVo> orderList(JhyOrderListDto orderListDto) {
+        JhyInfo jhyInfo = jhyInfoMapper.selectJhyInfoByUserId(orderListDto.getUserId());
+        if (jhyInfo == null || !JhyInfo.CHECK_PASS.equals(jhyInfo.getStatus())) {
+            throw new RestException(-3, "不是集货员");
+        }
+
         PageHelper.startPage(orderListDto.getPageNo(), orderListDto.getPageSize());
         List<JhyOrderListVo> data = jhyOrderMapper.selectJhyOrderList(orderListDto);
         return new PageInfo<>(data);
@@ -118,4 +127,31 @@
         detailsVo.setItems(items);
         return detailsVo;
     }
+
+    public void grabOrder(Long orderId, String userId) {
+        JhyInfo jhyInfo = jhyInfoMapper.selectJhyInfoByUserId(userId);
+        if (jhyInfo == null || !JhyInfo.CHECK_PASS.equals(jhyInfo.getStatus())) {
+            throw new RestException(-3, "不是集货员");
+        }
+
+        JhyOrder order = jhyOrderMapper.selectByPrimaryKey(orderId);
+        if (order == null) {
+            throw new RestException(-3, "订单不存在");
+        }
+
+        order.setJhyId(userId);
+        order.setStatus(JhyOrder.ORDER_STATUS_IMG);
+        jhyOrderMapper.updateByPrimaryKey(order);
+    }
+
+    public void cancelOrder(Long orderId, String userId) {
+        JhyOrder order = jhyOrderMapper.selectByPrimaryKey(orderId);
+
+        if (!userId.equals(order.getUserId()) && !userId.equals(order.getJhyId())) {
+            throw new RestException(-3, "无权限操作");
+        }
+
+        order.setStatus(JhyOrder.ORDER_STATUS_CANCEL);
+        jhyOrderMapper.updateByPrimaryKey(order);
+    }
 }
diff --git a/gc-order/src/main/resources/mapper/order/JhyInfoMapper.xml b/gc-order/src/main/resources/mapper/order/JhyInfoMapper.xml
new file mode 100644
index 0000000..cde8ce2
--- /dev/null
+++ b/gc-order/src/main/resources/mapper/order/JhyInfoMapper.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xzx.gc.order.mapper.JhyInfoMapper">
+
+    <select id="selectJhyInfoByUserId" resultType="com.xzx.gc.entity.JhyInfo">
+        select * from xzx_jhy_info where user_id=#{userId}
+    </select>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1