wangming 6 روز پیش
والد
کامیت
bd68b74e26

+ 18 - 8
yami-shop-api/src/main/java/com/yami/shop/api/controller/MyOrderController.java

@@ -26,6 +26,7 @@ import com.yami.shop.config.ShopConfig;
 import com.yami.shop.dao.PointsRecordMapper;
 import com.yami.shop.security.api.util.SecurityUtils;
 import com.yami.shop.service.*;
+import com.yami.shop.utils.CullenUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -45,6 +46,7 @@ import java.util.Objects;
 
 @RestController
 @RequestMapping("/p/myOrder")
+//@RequestMapping("/myOrder")
 @Api(tags = "我的订单接口")
 @AllArgsConstructor
 public class MyOrderController {
@@ -203,9 +205,12 @@ public class MyOrderController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "status", value = "订单状态 1:待付款 2:待发货 3:待收货 4:待评价 5:成功 6:失败", required = false, dataType = "Integer"),
     })
-    public ResponseEntity<IPage<MyOrderDto>> myOrder(@ModelAttribute PageParam<MyOrderDto> page, @RequestParam(value = "status", required = false) Integer status) {
+    public ResponseEntity<IPage<MyOrderDto>> myOrder(@ModelAttribute PageParam<MyOrderDto> page,
+                                                     @RequestParam(value = "status", required = false) Integer status,
+                                                     @RequestParam(value = "dvyType", required = false) Integer dvyType
+    ) {
         String userId = SecurityUtils.getUser().getUserId();
-        IPage<MyOrderDto> myOrderDtoIpage = myOrderService.pageMyOrderByUserIdAndStatus(page, userId, status);
+        IPage<MyOrderDto> myOrderDtoIpage = myOrderService.pageMyOrderByUserIdAndStatus(page, userId, status,dvyType);
         return ResponseEntity.ok(myOrderDtoIpage);
     }
 
@@ -319,13 +324,18 @@ public class MyOrderController {
     public ResponseEntity<String> receipt(@PathVariable("orderNumber") String orderNumber) {
         String userId = SecurityUtils.getUser().getUserId();
         Order order = orderService.getOrderByOrderNumberAndUserId(orderNumber, userId, true);
-
-        if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.CONSIGNMENT.value())) {
-            throw new GlobalException("订单未发货,无法确认收货");
-        }
-        if (Objects.equals(order.getRefundStatus(), RefundStatusEnum.APPLY.value())) {
-            throw new GlobalException("订单退款中,无法确认收货");
+        if (Objects.equals(order.getDvyType(), 1)){
+            CullenUtils.validateDataThrowException(Objects.equals(order.getHbOrderStatus(), 0),"订单未支付");
+            CullenUtils.validateDataThrowException(Objects.equals(order.getHbOrderStatus(), 1),"订单未发货,无法确认收货");
+        }else {
+            if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.CONSIGNMENT.value())) {
+                throw new GlobalException("订单未发货,无法确认收货");
+            }
+            if (Objects.equals(order.getRefundStatus(), RefundStatusEnum.APPLY.value())) {
+                throw new GlobalException("订单退款中,无法确认收货");
+            }
         }
+
         List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber);
         order.setOrderItems(orderItems);
         // 确认收货

+ 1 - 0
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderController.java

@@ -175,6 +175,7 @@ public class OrderController {
             shopCartOrders.add(shopCartOrder);
         }
         shopCartOrderMergerDto.setDvyType(orderParam.getDvyType());
+        shopCartOrderMergerDto.setDvyType(1);
 
         //根据价格进行店铺、满减、商品项的价格升序操作
         for (int n = 0; n < shopCartOrders.size(); n++) {

+ 6 - 3
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/MyOrderDto.java

@@ -10,13 +10,13 @@
 
 package com.yami.shop.bean.app.dto;
 
-import java.util.Date;
-import java.util.List;
-
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+import java.util.List;
+
 @Data
 @ApiModel("我的订单")
 public class MyOrderDto {
@@ -79,4 +79,7 @@ public class MyOrderDto {
     @ApiModelProperty(value = "海博订单状态")
     private Integer hbOrderStatus;
 
+    @ApiModelProperty(value = "配送类型 1:快递 3:及时配送")
+    private Integer dvyType;
+
 }

+ 2 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/Category.java

@@ -82,6 +82,7 @@ public class Category implements Serializable {
      */
     private Date updateTime;
 
+    @TableField(exist = false)
     private String resource;
 
     /**
@@ -126,5 +127,6 @@ public class Category implements Serializable {
     @TableField(exist=false)
     private String shopName;
 
+    @TableField(exist=false)
     private String label;
 }

+ 3 - 1
yami-shop-service/src/main/java/com/yami/shop/dao/OrderMapper.java

@@ -45,7 +45,7 @@ public interface OrderMapper extends BaseMapper<Order> {
 
     UserShoppingDataDto calculateUserInShopData(@Param("shopId") Long shopId, @Param("userId") String userId);
 
-    List<MyOrderDto> listMyOrderByUserIdAndStatus(@Param("adapter") PageAdapter adapter, @Param("userId") String userId, @Param("status") Integer status);
+    List<MyOrderDto> listMyOrderByUserIdAndStatus(@Param("adapter") PageAdapter adapter, @Param("userId") String userId, @Param("status") Integer status,@Param("dvyType") Integer dvyType);
 
     Long countMyOrderByUserIdAndStatus(@Param("userId") String userId, @Param("status") Integer status, @Param("isComm") Integer isComm);
 
@@ -116,4 +116,6 @@ public interface OrderMapper extends BaseMapper<Order> {
                                                            @Param("isComm") Integer isComm);
     long countOrderItemComment(@Param("userId") String userId, @Param("isComm") Integer isComm);
 
+    void updateByToPaySuccessDelivery(@Param("orderNumbers") List<String> orderNumbers, @Param("payType") Integer payType);
+
 }

+ 1 - 1
yami-shop-service/src/main/java/com/yami/shop/service/MyOrderService.java

@@ -31,7 +31,7 @@ public interface MyOrderService extends IService<Order> {
 	 * @param status 订单状态
 	 * @return
 	 */
-	IPage<MyOrderDto> pageMyOrderByUserIdAndStatus(Page<MyOrderDto> page, String userId, Integer status);
+	IPage<MyOrderDto> pageMyOrderByUserIdAndStatus(Page<MyOrderDto> page, String userId, Integer status,Integer dvyType);
 
 	/**
 	 * 通过用户id和订单状态分页获取订单信息

+ 2 - 2
yami-shop-service/src/main/java/com/yami/shop/service/impl/MyOrderServiceImpl.java

@@ -43,8 +43,8 @@ public class MyOrderServiceImpl extends ServiceImpl<OrderMapper, Order> implemen
     private final OrderMapper orderMapper;
 
     @Override
-    public IPage<MyOrderDto> pageMyOrderByUserIdAndStatus(Page<MyOrderDto> page, String userId, Integer status) {
-        List<MyOrderDto> myOrderDtos = orderMapper.listMyOrderByUserIdAndStatus(new PageAdapter(page), userId, status);
+    public IPage<MyOrderDto> pageMyOrderByUserIdAndStatus(Page<MyOrderDto> page, String userId, Integer status,Integer dvyType) {
+        List<MyOrderDto> myOrderDtos = orderMapper.listMyOrderByUserIdAndStatus(new PageAdapter(page), userId, status,dvyType);
         SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日$HH:mm");
         for (MyOrderDto myOrderDto : myOrderDtos) {
             if (StrUtil.isBlank(myOrderDto.getShopName())) {

+ 3 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/PayServiceImpl.java

@@ -118,6 +118,9 @@ public class PayServiceImpl implements PayService {
         // 将订单改为已支付状态
         orderMapper.updateByToPaySuccess(orderNumbers, payType);
 
+        //快递订单
+        orderMapper.updateByToPaySuccessDelivery(orderNumbers, payType);
+
         List<OrderItem> allOrderItem = new ArrayList<>();
 
         List<Order> orders = orderNumbers.stream().map(orderNumber -> {

+ 17 - 2
yami-shop-service/src/main/resources/mapper/OrderMapper.xml

@@ -45,6 +45,7 @@
         <result column="hb_logistic_status" property="hbLogisticStatus"/>
         <result column="offset_points" property="offsetPoints"/>
         <result column="pay_time" property="payTime"/>
+        <result column="dvy_type" property="dvyType"/>
         <collection property="orderItemDtos" ofType="com.yami.shop.bean.app.dto.MyOrderItemDto">
             <result column="order_number" jdbcType="VARCHAR" property="orderNumber"/>
             <result column="pic" jdbcType="VARCHAR" property="pic"/>
@@ -230,13 +231,22 @@
     </update>
 
     <update id="updateByToPaySuccess">
-        update tz_order set `hb_order_status` = 20,is_payed =1,update_time=NOW(),pay_time=NOW(),pay_type =#{payType} where
+        update tz_order set `hb_order_status` = 20,is_payed =1,update_time=NOW(),pay_time=NOW(),pay_type =#{payType} where dvy_type=3 and
         order_number in
         <foreach collection="orderNumbers" item="orderNumber" separator="," open="(" close=")">
             #{orderNumber}
         </foreach>
     </update>
 
+    <update id="updateByToPaySuccessDelivery">
+        update tz_order set `hb_order_status` = 1,is_payed =1,update_time=NOW(),pay_time=NOW(),pay_type =#{payType} where dvy_type=1 and
+        order_number in
+        <foreach collection="orderNumbers" item="orderNumber" separator="," open="(" close=")">
+            #{orderNumber}
+        </foreach>
+    </update>
+
+
     <select id="listOrdersDetialByOrder" resultMap="orderAndOrderItemAndUserAddrMap">
         select o.*,oi.*,oi.prod_name as item_prod_name,o.prod_name as order_prod_name,uao.* ,oi.hb_order_status as oi_status
         from tz_order o
@@ -513,6 +523,7 @@
         o.hb_logistic_status,
         o.offset_points,
         o.pay_time,
+        o.dvy_type,
         (SELECT r.refund_type FROM tz_order_refund r WHERE r.order_id =o.order_id ORDER BY r.update_time DESC LIMIT 0,1) AS refund_type,
         (SELECT r.return_money_sts FROM tz_order_refund r WHERE r.order_id =o.order_id ORDER BY r.update_time DESC LIMIT 0,1) AS return_money_sts,
         oi.pic,oi.price,oi.prod_name,oi.pic,oi.sku_name,ifnull(oi.use_score,0) as use_score,oi.prod_id,oi.rec_time,oi.prod_count,oi.order_item_id,oi.comm_sts,
@@ -523,19 +534,23 @@
             temp.hb_logistic_status,
             temp.offset_points,
             temp.pay_time,
+            temp.dvy_type,
             temp.order_id, temp.create_time, temp.freight_amount,temp.order_number,temp.actual_total,temp.shop_id,temp.addr_order_id FROM tz_order temp
         WHERE temp.user_id = #{userId} and temp.delete_status = 0
         <if test="status != null">
             AND
             <choose>
                 <when test="20 == status">
-                    temp.hb_order_status IN (20,30,40)
+                    temp.hb_order_status IN (1,20,30,40)
                 </when>
                 <otherwise>
                     temp.hb_order_status = #{status}
                 </otherwise>
             </choose>
+        </if>
 
+        <if test="dvyType != null">
+            AND temp.dvy_type = #{dvyType}
         </if>
         ORDER BY temp.create_time DESC
         LIMIT #{adapter.begin} , #{adapter.size}