Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

wang 2 päivää sitten
vanhempi
commit
018fdcf313

+ 2 - 4
yami-shop-api/src/main/java/com/yami/shop/api/controller/MyOrderController.java

@@ -34,7 +34,6 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import ma.glasnost.orika.MapperFacade;
-import org.springframework.core.annotation.OrderUtils;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
@@ -48,7 +47,6 @@ import java.util.Objects;
 
 @RestController
 @RequestMapping("/p/myOrder")
-//@RequestMapping("/myOrder")
 @Api(tags = "我的订单接口")
 @AllArgsConstructor
 public class MyOrderController {
@@ -83,7 +81,6 @@ public class MyOrderController {
     @ApiOperation(value = "订单详情信息", notes = "根据订单号获取订单详情信息")
     @ApiImplicitParam(name = "orderNumber", value = "订单号", required = true, dataType = "String")
     public ResponseEntity<OrderShopDto> orderDetail(@RequestParam(value = "orderNumber", required = true) String orderNumber) {
-
         String userId = SecurityUtils.getUser().getUserId();
 //        String userId = "1";
         OrderShopDto orderShopDto = new OrderShopDto();
@@ -188,9 +185,9 @@ public class MyOrderController {
             for (OrderItemDto orderItemDto : orderItemDtoList) {
                 if (Objects.equals(orderItemDto.getOrderItemId(), orderRefund.getOrderItemId())) {
                     orderItemDto.setRefundSn(orderRefund.getRefundSn());
+
                 }
             }
-
         }
 
         orderShopDto.setOrderItemDtos(orderItemDtoList);
@@ -199,6 +196,7 @@ public class MyOrderController {
         for (OrderItemDto orderItem : orderShopDto.getOrderItemDtos()) {
             total = Arith.add(total, orderItem.getProductTotalAmount());
             totalNum += orderItem.getProdCount();
+            orderItem.setRefundCount(orderItemService.refundCount(orderItem.getOrderItemId()));
         }
         orderShopDto.setTotal(total);
         orderShopDto.setTotalNum(totalNum);

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

@@ -26,7 +26,6 @@ import com.yami.shop.dao.PointsRecordMapper;
 import com.yami.shop.security.api.util.SecurityUtils;
 import com.yami.shop.service.*;
 import com.yami.shop.service.hb.IHBOrderService;
-import com.yami.shop.utils.CullenUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;

+ 105 - 0
yami-shop-api/src/main/java/com/yami/shop/api/controller/RefundDeliveryController.java

@@ -0,0 +1,105 @@
+package com.yami.shop.api.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yami.shop.bean.model.RefundDelivery;
+import com.yami.shop.common.util.PageParam;
+import com.yami.shop.security.api.util.SecurityUtils;
+import com.yami.shop.service.RefundDeliveryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * 退货物流信息接口
+ */
+@RestController
+@RequestMapping("/refund/delivery")
+@Api(tags = "退货物流信息接口")
+@AllArgsConstructor
+public class RefundDeliveryController {
+
+    private final RefundDeliveryService refundDeliveryService;
+
+    /**
+     * 分页获取退货物流信息列表
+     */
+    @GetMapping("/page")
+    @ApiOperation("分页获取退货物流信息列表")
+    public ResponseEntity<IPage<RefundDelivery>> page(PageParam<RefundDelivery> pageParam, RefundDelivery refundDelivery) {
+        IPage<RefundDelivery> refundDeliveryPage = refundDeliveryService.page(pageParam, new LambdaQueryWrapper<RefundDelivery>());
+        return ResponseEntity.ok(refundDeliveryPage);
+    }
+
+    /**
+     * 根据退款编号获取退货物流信息
+     */
+    @GetMapping("/getByRefundSn/{refundSn}")
+    @ApiOperation("根据退款编号获取退货物流信息")
+    public ResponseEntity<RefundDelivery> getByRefundSn(@PathVariable("refundSn") String refundSn) {
+        RefundDelivery refundDelivery = refundDeliveryService.getOne(new LambdaQueryWrapper<RefundDelivery>().eq(RefundDelivery::getRefundSn, refundSn));
+        return ResponseEntity.ok(refundDelivery);
+    }
+
+    /**
+     * 根据ID获取退货物流信息
+     */
+    @GetMapping("/getById/{id}")
+    @ApiOperation("根据ID获取退货物流信息")
+    public ResponseEntity<RefundDelivery> getById(@PathVariable Long id) {
+        RefundDelivery refundDelivery = refundDeliveryService.getById(id);
+        return ResponseEntity.ok(refundDelivery);
+    }
+
+    /**
+     * 保存退货物流信息
+     */
+    @PostMapping("/save")
+    @ApiOperation("保存退货物流信息")
+    public ResponseEntity<Void> save(@Valid @RequestBody RefundDelivery refundDelivery) {
+        refundDeliveryService.save(refundDelivery);
+        return ResponseEntity.ok().build();
+    }
+
+    /**
+     * 更新退货物流信息
+     */
+    @PutMapping("/update")
+    @ApiOperation("更新退货物流信息")
+    public ResponseEntity<String> update(@Valid @RequestBody RefundDelivery refundDelivery) {
+        RefundDelivery dbRefundDelivery = refundDeliveryService.getById(refundDelivery.getRefundDeliveryId());
+        if (dbRefundDelivery == null) {
+            return ResponseEntity.badRequest().body("退货物流信息不存在");
+        }
+        // 确保用户只能更新自己的退货物流信息
+        if (!Objects.equals(dbRefundDelivery.getUserId(), SecurityUtils.getUser().getUserId())) {
+            return ResponseEntity.badRequest().body("无权限操作");
+        }
+        refundDeliveryService.updateById(refundDelivery);
+        return ResponseEntity.ok("更新成功");
+    }
+
+
+    /**
+     * 删除退货物流信息
+     */
+    @DeleteMapping("/delete/{id}")
+    @ApiOperation("删除退货物流信息")
+    public ResponseEntity<String> delete(@PathVariable Long id) {
+        RefundDelivery refundDelivery = refundDeliveryService.getById(id);
+        if (refundDelivery == null) {
+            return ResponseEntity.badRequest().body("退货物流信息不存在");
+        }
+        // 确保用户只能删除自己的退货物流信息
+        if (!Objects.equals(refundDelivery.getUserId(), SecurityUtils.getUser().getUserId())) {
+            return ResponseEntity.badRequest().body("无权限操作");
+        }
+        refundDeliveryService.removeById(id);
+        return ResponseEntity.ok("删除成功");
+    }
+}

+ 3 - 19
yami-shop-api/src/main/java/com/yami/shop/api/listener/ConfirmOrderListener.java

@@ -10,17 +10,17 @@
 
 package com.yami.shop.api.listener;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.yami.shop.bean.app.dto.ShopCartItemDto;
 import com.yami.shop.bean.app.dto.ShopCartOrderDto;
 import com.yami.shop.bean.app.param.OrderParam;
 import com.yami.shop.bean.dto.TzTransportDto;
 import com.yami.shop.bean.enums.DvyType;
 import com.yami.shop.bean.event.ConfirmOrderEvent;
-import com.yami.shop.bean.model.*;
+import com.yami.shop.bean.model.Product;
+import com.yami.shop.bean.model.Sku;
+import com.yami.shop.bean.model.UserAddr;
 import com.yami.shop.bean.order.ConfirmOrderOrder;
 import com.yami.shop.common.exception.GlobalException;
-import com.yami.shop.common.exception.YamiShopBindException;
 import com.yami.shop.common.util.Arith;
 import com.yami.shop.delivery.comment.service.TransportManagerService;
 import com.yami.shop.security.api.util.SecurityUtils;
@@ -30,15 +30,11 @@ import com.yami.shop.service.SkuService;
 import com.yami.shop.service.UserAddrService;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.ObjectUtils;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.context.event.EventListener;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
-import java.time.LocalDateTime;
 import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
 
 /**
  * 确认订单信息时的默认操作
@@ -65,28 +61,17 @@ public class ConfirmOrderListener {
     @EventListener(ConfirmOrderEvent.class)
     @Order(ConfirmOrderOrder.DEFAULT)
     public void defaultConfirmOrderEvent(ConfirmOrderEvent event) {
-
-
         ShopCartOrderDto shopCartOrderDto = event.getShopCartOrderDto();
-
         OrderParam orderParam = event.getOrderParam();
-
         String userId = SecurityUtils.getUser().getUserId();
-
-        // 订单的地址信息
         UserAddr userAddr = userAddrService.getUserAddrByUserId(orderParam.getAddrId(), userId);
-
-
         double total = 0.0;
-
         int totalCount = 0;
-
         double transfee = 0.0;
         shopCartOrderDto.setTotalWeight(Double.valueOf(0));
 
         // 重新计算运费时用到
         List<ShopCartItemDto> shopCartItems = event.getShopCartItems();
-
         for (ShopCartItemDto shopCartItem : event.getShopCartItems()) {
             // 获取商品信息
             Product product = productService.getProductByProdId(shopCartItem.getProdId());
@@ -136,7 +121,6 @@ public class ConfirmOrderListener {
                             transfee = Arith.add(transfee, Arith.mul(transfee, num));
                         }
                     }
-                    System.out.println(transfee);
                     break;
                 case 2: //夫妻店,B端只走物流
                     orderParam.setDvyType(DvyType.DELIVERY.value());

+ 2 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/OrderItemDto.java

@@ -32,5 +32,7 @@ public class OrderItemDto extends ProductItemDto implements Serializable {
     @ApiModelProperty(value = "处理退款状态:(1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功 6.买家撤回申请 7.商家拒绝 -1.退款关闭)", required = true)
     private Integer returnMoneySts;
 
+    @ApiModelProperty("退款数量")
+    private Integer refundCount;
 
 }

+ 14 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/RefundDelivery.java

@@ -2,12 +2,16 @@ package com.yami.shop.bean.model;
 
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
 
 @Data
+@ApiModel("退款信息")
 @TableName("tz_refund_delivery")
 public class RefundDelivery implements Serializable {
     private static final long serialVersionUID = 1L;
@@ -20,26 +24,36 @@ public class RefundDelivery implements Serializable {
     /**
      * 店铺id
      */
+    @NotNull(message = "店铺id不能为空")
+    @ApiModelProperty(value = "店铺id", required = true)
     private Long shopId;
     /**
      * 用户id
      */
+    @NotNull(message = "用户id不能为空")
+    @ApiModelProperty(value = "用户id", required = true)
     private String userId;
     /**
      * 退款编号
      */
+    @NotNull(message = "退款编号不能为空")
+    @ApiModelProperty(value = "退款编号", required = true)
     private String refundSn;
     /**
      * 物流公司id
      */
+    @NotNull(message = "物流公司id不能为空")
+    @ApiModelProperty(value = "物流公司id", required = true)
     private Long deyId;
     /**
      * 物流公司名称
      */
+    @ApiModelProperty(value = "物流公司名称", required = true)
     private String deyName;
     /**
      * 物流编号
      */
+    @NotNull(message = "物流编号")
     private String deyNu;
     /**
      * 收件人姓名

+ 7 - 0
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/impl/TransportManagerServiceImpl.java

@@ -221,13 +221,20 @@ public class TransportManagerServiceImpl implements TransportManagerService {
     public TzTransportDto calculateTransfeeSecondTransport2(Long shopId, UserAddr userAddr, Integer platform) {
         Double longitude = userAddr.getLongitude();
         Double latitude = userAddr.getLatitude();
+        System.out.println("用户经度"+latitude);
+        System.out.println("用户纬度"+longitude);
+        System.out.println("用户信息"+userAddr);
         if (longitude.equals(0.0)) {
             throw new GlobalException("收货地址经纬度为空");
         }
 
         ShopDetail shopDetailByShopId = shopDetailService.getShopDetailByShopId(shopId);
+        System.out.println("门店经度"+shopDetailByShopId.getShopLat());
+        System.out.println("门店纬度"+shopDetailByShopId.getShopLng());
         double v = calculateDistance(latitude, longitude, Double.valueOf(shopDetailByShopId.getShopLat()), Double.valueOf(shopDetailByShopId.getShopLng()));
         Transport2 byDistance = transport2Service.findByDistance(shopId, platform);
+        System.out.println("byDistance"+byDistance);
+
         TzTransportDto tzTransportDto = new TzTransportDto();
         BeanUtils.copyProperties(byDistance, tzTransportDto);
         tzTransportDto.setTargetDistance(v);

+ 12 - 3
yami-shop-platform/src/main/java/com/yami/shop/platform/task/OrderTask.java

@@ -28,6 +28,7 @@ import com.yami.shop.delivery.comment.api.paotui.PaoTuiApi;
 import com.yami.shop.delivery.comment.param.DeliveryOrderItemParam;
 import com.yami.shop.delivery.comment.service.DeliveryOrderService;
 import com.yami.shop.service.*;
+import com.yami.shop.service.hb.IHBOrderService;
 import com.yami.shop.service.impl.FeiEYunApi;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.core.util.JsonUtils;
@@ -61,12 +62,14 @@ public class OrderTask {
     private OrderSettlementService orderSettlementService;
     @Autowired
     private PayManagerService payManagerService;
+    @Autowired
+    private IHBOrderService ihbOrderService;
 
 
     public void cancelOrder(){
         Date now = new Date();
         logger.info("取消超时未支付订单。。。");
-        // 获取30分钟之前未支付的订单
+        // 获取15分钟之前未支付的订单
         List<Order> orders = orderService.listUnRefundOrderAndOrderItems(OrderStatus.UNPAY.value(),DateUtil.offsetMinute(now, -15));
         if (CollectionUtil.isEmpty(orders)) {
             return;
@@ -85,12 +88,18 @@ public class OrderTask {
     public void confirmOrder(){
         Date now = new Date();
         logger.info("系统自动确认收货订单。。。");
-        // 获取15天之前等待确认收货的订单
-        List<Order> orders = orderService.listUnRefundOrderAndOrderItems(OrderStatus.CONSIGNMENT.value(),DateUtil.offsetDay(now, -15));
+        // 获取10天之前等待确认收货的订单
+        List<Order> orders = orderService.listUnRefundOrderAndOrderItems(OrderStatus.CONSIGNMENT.value(),DateUtil.offsetDay(now, -10));
         if (CollectionUtil.isEmpty(orders)) {
             return;
         }
         orderService.receiptOrder(orders);
+
+        //海博同步订单状态
+        for (Order order : orders) {
+            //海博订单完成
+            ihbOrderService.changeOrderStatus(order.getOrderNumber(), OrderStatus.SUCCESS.value());
+        }
         // 移除缓存
         this.removeCache(orders);
     }

+ 1 - 1
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBOrderService.java

@@ -187,7 +187,7 @@ public class HBOrderService implements IHBOrderService {
         Order order = orderMapper.getOrderAndOrderItemByOrderNumber(channelOrderId);
         //如果是已送达直接完成并且通知海博
         order.setHbOrderStatus(operatorType);
-        if (operatorType == 70 || order.getDvyType() == 3) {
+        if (operatorType == 70 && order.getDvyType() == 3) {
             order.setHbOrderStatus(80);
         }
         orderMapper.updateById(order);

+ 3 - 7
yami-shop-service/src/main/java/com/yami/shop/service/impl/UserAddrServiceImpl.java

@@ -11,18 +11,15 @@
 package com.yami.shop.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yami.shop.bean.model.UserAddr;
 import com.yami.shop.common.exception.GlobalException;
+import com.yami.shop.dao.UserAddrMapper;
+import com.yami.shop.service.UserAddrService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.yami.shop.bean.model.UserAddr;
-import com.yami.shop.common.exception.YamiShopBindException;
-import com.yami.shop.dao.UserAddrMapper;
-import com.yami.shop.service.UserAddrService;
-
 @Service
 public class UserAddrServiceImpl extends ServiceImpl<UserAddrMapper, UserAddr> implements UserAddrService {
 
@@ -51,7 +48,6 @@ public class UserAddrServiceImpl extends ServiceImpl<UserAddrMapper, UserAddr> i
     }
 
 	@Override
-	@Cacheable(cacheNames = "UserAddrDto", key = "#userId+':'+#addrId")
 	public UserAddr getUserAddrByUserId(Long addrId, String userId) {
 		if (addrId == 0) {
 			return userAddrMapper.getDefaultUserAddr(userId);

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

@@ -217,7 +217,7 @@
       join tz_order_item oi on o.order_number = oi.order_number
       left join tz_order_refund tor on tor.order_id = o.order_id
     where o.hb_order_status = #{orderStatus} and (refund_status IS NULL OR o.refund_status &lt;&gt; 1)
-    and o.update_time &lt; #{lessThanUpdateTime}
+    and o.dvy_time &lt; #{lessThanUpdateTime}
   </select>
 
     <update id="cancelOrders">
@@ -463,7 +463,7 @@
         LEFT JOIN tz_user_addr_order b on a.addr_order_id=b.addr_order_id
         LEFT JOIN tz_shop_detail c on a.shop_id=c.shop_id
         <where>
-            a.dvy_type=3
+            a.dvy_type=1
             <if test="orderParam.orderNumber != null and orderParam.orderNumber != ''">
                 and a.order_number = #{orderParam.orderNumber}
             </if>