package com.example.northglasserpclient.service.sd.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.example.northglasserpclient.domain.dto.sd.OrderDTO; import com.example.northglasserpclient.domain.dto.sd.OrderDetailDTO; import com.example.northglasserpclient.domain.po.sd.*; import com.example.northglasserpclient.mapper.sd.CustomerOrderMapper; import com.example.northglasserpclient.mapper.sd.CustomerOrderDetailMapper; import com.example.northglasserpclient.service.sd.ICustomerOrderDetailService; import com.example.northglasserpclient.service.sd.ICustomerOrderService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.northglasserpclient.service.sd.IOrderDetailService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.atomic.AtomicReference; /** *

* 服务实现类 *

* * @author liao * @since 2025-10-29 */ @Service @RequiredArgsConstructor public class CustomerOrderServiceImpl extends ServiceImpl implements ICustomerOrderService { private final ICustomerOrderDetailService customerOrderDetailService; private final CustomerOrderMapper customerOrderMapper; private final CustomerOrderDetailMapper customerOrderDetailMapper; @Override @Transactional(rollbackFor = Exception.class) public String saveCustomerOrder(Map object) { String saveState = "true"; Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); try { String customerName = object.get("customerName").toString(); int customerId = Integer.parseInt(object.get("customerId").toString()); String remarks = object.get("remarks").toString(); List customerOrderDetailList = JSONArray.parseArray(JSONObject.toJSONString(object.get("data")), CustomerOrderDetail.class); CustomerOrder customerOrder=new CustomerOrder(); customerOrder.setCustomerId((long) customerId); customerOrder.setCustomerName(customerName); customerOrder.setRemarks(remarks); customerOrderMapper.insert(customerOrder); for(CustomerOrderDetail customerOrderDetail : customerOrderDetailList){ CustomerOrderDetail customerOrderDetailNew=new CustomerOrderDetail(); customerOrderDetailNew.setCustomerOrderId(customerOrder.getId()); customerOrderDetailNew.setWidth(customerOrderDetail.getWidth()); customerOrderDetailNew.setHeight(customerOrderDetail.getHeight()); customerOrderDetailNew.setPrice(customerOrderDetail.getPrice()); customerOrderDetailNew.setQuantity(customerOrderDetail.getQuantity()); customerOrderDetailNew.setProductId(customerOrderDetail.getProductId()); customerOrderDetailNew.setProductName(customerOrderDetail.getProductName()); customerOrderDetailMapper.insert(customerOrderDetailNew); } }catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); //将异常传入数据库 System.out.println(e+Arrays.toString(e.getStackTrace())); saveState = "false"; } return saveState; } }