Procházet zdrojové kódy

Merge remote-tracking branch 'origin/dev' into dev

fubojin před 6 dny
rodič
revize
63115e5f08

+ 7 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/Order.java

@@ -150,6 +150,13 @@ public class Order implements Serializable {
      * 拆单操作人ID
      * 拆单操作人ID
      */
      */
     private Long splitUserId;
     private Long splitUserId;
+
+    private String consigneeName;
+
+    private String consigneeMobile;
+
+    private String consigneeAddress;
+
     @TableField(exist = false)
     @TableField(exist = false)
     @ApiModelProperty("拆单操作人名称")
     @ApiModelProperty("拆单操作人名称")
     private String splitUserName;
     private String splitUserName;

+ 73 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/po/SMOrderItemPo.java

@@ -0,0 +1,73 @@
+package com.yami.shop.bean.po;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class SMOrderItemPo implements Serializable {
+
+    private static final long serialVersionUID = 7307405761190788407L;
+
+    /**
+     * 订单orderNumber
+     */
+    private String orderNumber;
+
+    /**
+     * 产品ID
+     */
+    private Long prodId;
+
+    /**
+     * 产品SkuID
+     */
+    private Long skuId;
+
+    /**
+     * 购物车产品个数
+     */
+    private Integer prodCount;
+
+    /**
+     * 产品名称
+     */
+    private String prodName;
+
+    /**
+     * sku名称
+     */
+    private String skuName;
+
+    /**
+     * 产品主图片路径
+     */
+    private String pic;
+
+    /**
+     * 产品价格
+     */
+    private Double price;
+
+    /**
+     * 商品总金额
+     */
+    private Double productTotalAmount;
+
+    /**
+     * 购物时间
+     */
+    private Date recTime;
+
+    /**
+     * 使用积分
+     */
+    private Integer useScore;
+
+    /**
+     * 订单确认收货获取的积分
+     */
+    private Integer gainScore;
+
+}

+ 63 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/po/SMOrderPo.java

@@ -0,0 +1,63 @@
+package com.yami.shop.bean.po;
+
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class SMOrderPo implements Serializable {
+
+    private static final long serialVersionUID = 6222259729062826852L;
+
+    /**
+     * 订购流水号
+     */
+    private String orderNumber;
+
+    /**
+     * 总值
+     */
+    private Double total;
+
+    /**
+     * 实际总值
+     */
+    private Double actualTotal;
+
+    private Integer payType;
+
+    /**
+     * 用户备注
+     */
+    private String remarks;
+
+    /**
+     * 配送类型(1:快递 2:自提 3:及时配送)
+     */
+    private Integer dvyType;
+
+    /**
+     * 订单运费
+     */
+    private Double freightAmount;
+
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date payTime;
+
+    private Long offsetPoints;
+
+    private String consigneeName;
+
+    private String consigneeMobile;
+
+    private String consigneeAddress;
+
+    private List<SMOrderItemPo> orderItems;
+
+}

+ 35 - 0
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/SMOrderController.java

@@ -0,0 +1,35 @@
+package com.yami.shop.platform.controller;
+
+import com.yami.shop.bean.po.SMOrderPo;
+import com.yami.shop.common.exception.GlobalException;
+import com.yami.shop.common.util.R;
+import com.yami.shop.service.OrderService;
+import com.yami.shop.service.hb.IHBOrderService;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/sm/order")
+@AllArgsConstructor
+@Log4j2
+public class SMOrderController {
+
+    private final OrderService orderService;
+    private final IHBOrderService hbOrderService;
+
+    @PostMapping("/addSMOrder")
+    @ApiOperation(value = "addSMOrder")
+    public R<?> addSMOrder(@RequestBody SMOrderPo orderPo) {
+        if (orderPo.getOrderItems() == null){
+            throw new GlobalException("订单项不能为空");
+        }
+        String orderNumber = orderService.addSMOrder(orderPo);
+        hbOrderService.createOrderAsync(orderNumber);
+        return R.SUCCESS();
+    }
+}

+ 1 - 0
yami-shop-security/yami-shop-security-platform/src/main/java/com/yami/shop/security/platform/config/ResourceServerConfiguration.java

@@ -66,6 +66,7 @@ public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter
                     "/admin/enterprise/downloadErrorExcel",
                     "/admin/enterprise/downloadErrorExcel",
                     "/admin/enterprise/export",
                     "/admin/enterprise/export",
                     "/platform/sku/**",
                     "/platform/sku/**",
+                    "/sm/order/**",
                     "/captcha.jpg").permitAll()
                     "/captcha.jpg").permitAll()
             .and()
             .and()
             .authorizeRequests()
             .authorizeRequests()

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

@@ -18,6 +18,7 @@ import com.yami.shop.bean.app.dto.OrderCountData;
 import com.yami.shop.bean.app.dto.ShopCartOrderMergerDto;
 import com.yami.shop.bean.app.dto.ShopCartOrderMergerDto;
 import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.param.*;
 import com.yami.shop.bean.param.*;
+import com.yami.shop.bean.po.SMOrderPo;
 import com.yami.shop.bean.vo.OrderCountVo;
 import com.yami.shop.bean.vo.OrderCountVo;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.common.util.R;
 import com.yami.shop.common.util.R;
@@ -214,4 +215,6 @@ public interface OrderService extends IService<Order> {
      * @param subOrderNumber 删除临时子订单参数
      * @param subOrderNumber 删除临时子订单参数
      */
      */
     void deleteTempSubOrder(String subOrderNumber);
     void deleteTempSubOrder(String subOrderNumber);
+
+    String addSMOrder(SMOrderPo orderPo);
 }
 }

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

@@ -40,6 +40,8 @@ import com.yami.shop.bean.event.SubmitOrderEvent;
 import com.yami.shop.bean.event.SubmitScoreOrderEvent;
 import com.yami.shop.bean.event.SubmitScoreOrderEvent;
 import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.param.*;
 import com.yami.shop.bean.param.*;
+import com.yami.shop.bean.po.SMOrderItemPo;
+import com.yami.shop.bean.po.SMOrderPo;
 import com.yami.shop.bean.vo.ExportContext;
 import com.yami.shop.bean.vo.ExportContext;
 import com.yami.shop.bean.vo.OrderCountVo;
 import com.yami.shop.bean.vo.OrderCountVo;
 import com.yami.shop.common.config.Constant;
 import com.yami.shop.common.config.Constant;
@@ -60,7 +62,10 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.streaming.SXSSFSheet;
 import org.apache.poi.xssf.streaming.SXSSFSheet;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
@@ -119,7 +124,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     private final TzSysUserMapper userMapper;
     private final TzSysUserMapper userMapper;
     @Autowired
     @Autowired
     private ExportTaskService exportTaskService;
     private ExportTaskService exportTaskService;
-
     //导出
     //导出
     // 线程池配置
     // 线程池配置
     private final ExecutorService exportExecutor = Executors.newFixedThreadPool(
     private final ExecutorService exportExecutor = Executors.newFixedThreadPool(
@@ -2494,6 +2498,62 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         log.info("删除临时子订单成功,子订单号:{},父订单号:{}", subOrderNumber, parentOrderNumber);
         log.info("删除临时子订单成功,子订单号:{},父订单号:{}", subOrderNumber, parentOrderNumber);
     }
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String addSMOrder(SMOrderPo orderPo) {
+        Order order = new Order();
+        order.setShopId(0L);
+        order.setChannelId(0L);
+        order.setUserId("");
+        order.setOrderNumber(orderPo.getOrderNumber());
+        order.setTotal(orderPo.getTotal());
+        order.setActualTotal(orderPo.getActualTotal());
+        order.setPayType(orderPo.getPayType());
+        order.setRemarks(orderPo.getRemarks());
+        order.setHbOrderStatus(10);
+        order.setHbLogisticStatus(0);
+        order.setDvyType(orderPo.getDvyType());
+        order.setFreightAmount(orderPo.getFreightAmount());
+        order.setCreateTime(new Date());
+        order.setUpdateTime(new Date());
+        order.setPayTime(orderPo.getPayTime());
+        order.setIsPayed(1);
+        order.setDeleteStatus(0);
+        order.setOrderType(4);
+        order.setCommSts(0);
+        order.setConsigneeName(orderPo.getConsigneeName());
+        order.setConsigneeMobile(orderPo.getConsigneeMobile());
+        order.setConsigneeAddress(orderPo.getConsigneeAddress());
+        order.setOffsetPoints(orderPo.getOffsetPoints());
+        List<SMOrderItemPo> orderItems = orderPo.getOrderItems();
+        List<String> list = orderItems.stream().map(SMOrderItemPo::getSkuName).collect(Collectors.toList());
+        order.setProdName(String.join(",",list));
+        order.setProductNums(orderItems.stream().map(SMOrderItemPo::getProdCount).reduce(0, Integer::sum));
+        orderMapper.insert(order);
+        orderItems.forEach(c->{
+            OrderItem item = new OrderItem();
+            item.setShopId(0L);
+            item.setOrderNumber(order.getOrderNumber());
+            item.setProdId(c.getProdId());
+            item.setSkuId(c.getSkuId());
+            item.setProdCount(c.getProdCount());
+            item.setProdName(c.getProdName());
+            item.setSkuName(c.getSkuName());
+            item.setPic(c.getPic());
+            item.setPrice(c.getPrice());
+            item.setUserId("");
+            item.setProductTotalAmount(c.getProductTotalAmount());
+            item.setRecTime(c.getRecTime());
+            item.setCommSts(0);
+            item.setBasketDate(new Date());
+            item.setUseScore(c.getUseScore());
+            item.setGainScore(c.getGainScore());
+            orderItemService.save(item);
+        });
+
+        return order.getOrderNumber();
+    }
+
     /**
     /**
      * 为手动拆单的子订单分配积分和金额
      * 为手动拆单的子订单分配积分和金额
      */
      */