|
@@ -0,0 +1,75 @@
|
|
|
|
|
+package org.dromara.order.service.impl;
|
|
|
|
|
+
|
|
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
|
|
+import org.dromara.common.core.exception.ServiceException;
|
|
|
|
|
+import org.dromara.common.mybatis.utils.IdGeneratorUtil;
|
|
|
|
|
+import org.dromara.common.platform.PlatformUtils;
|
|
|
|
|
+import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
|
|
+import org.dromara.order.domain.SysOrder;
|
|
|
|
|
+import org.dromara.order.domain.SysSubOrder;
|
|
|
|
|
+import org.dromara.order.domain.bo.SysOrderCreateBo;
|
|
|
|
|
+import org.dromara.order.mapper.SysOrderMapper;
|
|
|
|
|
+import org.dromara.order.mapper.SysSubOrderMapper;
|
|
|
|
|
+import org.dromara.order.service.ISysOrderService;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+
|
|
|
|
|
+@Service
|
|
|
|
|
+@RequiredArgsConstructor
|
|
|
|
|
+public class SysOrderServiceImpl implements ISysOrderService {
|
|
|
|
|
+
|
|
|
|
|
+ private final SysOrderMapper baseMapper;
|
|
|
|
|
+ private final SysSubOrderMapper subOrderMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public boolean create(SysOrderCreateBo bo) {
|
|
|
|
|
+
|
|
|
|
|
+ SysOrder order = new SysOrder();
|
|
|
|
|
+ order.setCode(IdGeneratorUtil.nextUUID().replaceAll("-", ""));
|
|
|
|
|
+ order.setStore(bo.getStore());
|
|
|
|
|
+ order.setStoreSite(bo.getStoreSite());
|
|
|
|
|
+ order.setOrderPlacer(LoginHelper.getUserId());
|
|
|
|
|
+ order.setUsrCustomer(bo.getCustomer());
|
|
|
|
|
+ order.setUsrPet(bo.getPet());
|
|
|
|
|
+ order.setService(bo.getService());
|
|
|
|
|
+ order.setGroupPurchasePackageName(bo.getGroupPurchasePackageName());
|
|
|
|
|
+ order.setRemark(bo.getRemark());
|
|
|
|
|
+ order.setTenantId(bo.getTenantId());
|
|
|
|
|
+ order.setPlatformId(PlatformUtils.getId());
|
|
|
|
|
+ boolean flag = baseMapper.insert(order) == 0;
|
|
|
|
|
+ if (flag) {
|
|
|
|
|
+ throw new RuntimeException("订单插入失败");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<SysSubOrder> subOrders = new ArrayList<>();
|
|
|
|
|
+ bo.getSubOrders().forEach(e -> {
|
|
|
|
|
+ SysSubOrder subOrder = new SysSubOrder();
|
|
|
|
|
+ subOrder.setCode(IdGeneratorUtil.nextUUID().replaceAll("-", ""));
|
|
|
|
|
+ subOrder.setOrderId(order.getId());
|
|
|
|
|
+ subOrder.setMode(e.getMode());
|
|
|
|
|
+ subOrder.setType(e.getType());
|
|
|
|
|
+ subOrder.setContact(e.getContact());
|
|
|
|
|
+ subOrder.setContactPhoneNumber(e.getContactPhoneNumber());
|
|
|
|
|
+ subOrder.setServiceTime(e.getServiceTime());
|
|
|
|
|
+ subOrder.setEndServiceTime(e.getEndServiceTime());
|
|
|
|
|
+ subOrder.setFromCode(e.getFromCode());
|
|
|
|
|
+ subOrder.setFromAddress(e.getFromAddress());
|
|
|
|
|
+ subOrder.setToCode(e.getToCode());
|
|
|
|
|
+ subOrder.setToAddress(e.getToAddress());
|
|
|
|
|
+ subOrder.setRemark(order.getRemark());
|
|
|
|
|
+ subOrder.setTenantId(order.getTenantId());
|
|
|
|
|
+ subOrders.add(subOrder);
|
|
|
|
|
+ });
|
|
|
|
|
+ boolean subFlag = subOrderMapper.insertBatch(subOrders);
|
|
|
|
|
+ if (!subFlag) {
|
|
|
|
|
+ throw new RuntimeException("批量生成子订单失败");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// return true;
|
|
|
|
|
+ throw new ServiceException("成功");
|
|
|
|
|
+ }
|
|
|
|
|
+}
|