package com.iamberry.rst.service.cm;

import com.github.pagehelper.PageHelper;
import com.iamberry.rst.core.cm.FittingsInfo;
import com.iamberry.rst.core.cm.SalesOrder;
import com.iamberry.rst.core.cm.SalesOrderItem;
import com.iamberry.rst.core.cm.StoreInfo;
import com.iamberry.rst.core.order.ProductColor;
import com.iamberry.rst.core.page.PagedResult;
import com.iamberry.rst.core.sys.SysConfig;
import com.iamberry.rst.faces.cm.SalesOrderService;
import com.iamberry.rst.faces.cm.StoreInfoService;
import com.iamberry.rst.faces.order.EfastOrderService;
import com.iamberry.rst.faces.product.ProductService;
import com.iamberry.rst.service.cm.mapper.FittingsInfoMapper;
import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
import com.iamberry.rst.util.PageUtil;
import com.iamberry.wechat.tools.DateTimeUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.xml.crypto.Data;
import java.beans.Transient;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Created by liuzhiwei on 2017/10/31.
 */
@Service
public class SalesOrderServiceImpl implements SalesOrderService {

    private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);

    @Autowired
    private SalesOrderMapper salesOrderMapper;
    @Autowired
    private ProductService productService;
    @Autowired
    private StoreInfoService storeInfoService;
    @Autowired
    private EfastOrderService efastOrderService;
    @Autowired
    private SalesOrderService salesOrderService;
    @Autowired
    private FittingsInfoMapper fittingsInfoMapper;
    @Autowired
    private SysConfigMapper sysConfigMapper;

    @Override
    public Integer addSalesOrder(SalesOrder salesOrder) {
        return salesOrderMapper.addSalesOrder(salesOrder);
    }

    @Override
    public SalesOrder getSalesOrderById(Integer salesId) {
        return salesOrderMapper.getSalesOrderById(salesId);
    }

    @Override
    public Integer updateSalesOrder(SalesOrder salesOrder) {
        return salesOrderMapper.updateSalesOrder(salesOrder);
    }

    @Override
    public Integer addSalesOrderList(List<SalesOrder> list) {
        return salesOrderMapper.addSalesOrderList(list);
    }

    @Override
    public List<SalesOrder> listSalesOrder(SalesOrder salesOrder) {
        return salesOrderMapper.listSalesOrder(salesOrder);
    }

    @Override
    public PagedResult<SalesOrder> listSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
        PageHelper.startPage(pageNO, pageSize, isTotalNum);
        //查询订单列表信息
        List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(salesOrder);
        return PageUtil.getPage(orderList);
    }

    @Override
    @Transient
    public boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list) throws Exception {
        if (list == null || list.size() == 0) {
            throw  new RuntimeException("获取Efast订单信息出错!");
        }
        SalesOrder verifyOrder = new SalesOrder();
        verifyOrder.setSalesOrderId(salesOrder.getSalesOrderId());
        //查询该订单是否存在,如果存在,不需要再次添加到订单中
        int count = salesOrderMapper.getOrderInfoCount(verifyOrder);
        if (count > 0) {
            return true;
        }
        //添加订单数据
        try {
            int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
            if (orderNum <= 0) {
                throw  new RuntimeException("获取Efast订单信息出错!");
            }
        }catch (Exception e){
            return true;
        }

        for (SalesOrderItem item : list) {
            item.setItemOrderId(salesOrder.getSalesId());
        }
        //批量添加订单项数据
        int itemNum = salesOrderMapper.addOrderItemList(list);
        if (itemNum <= 0) {
            throw  new RuntimeException("获取Efast订单信息出错!");
        }
        return true;
    }

    @Override
    @Transactional
    public SalesOrder addOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) {
        //添加订单数据
        int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
        if (orderNum <= 0) {
            return salesOrder;
        }
        for (SalesOrderItem item : list) {
            item.setItemOrderId(salesOrder.getSalesId());
        }
        //批量添加订单项数据
        int itemNum = salesOrderMapper.addOrderItemList(list);
        if (itemNum <= 0) {
            return salesOrder;
        }
        return salesOrder;
    }

    @Override
    public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
        return salesOrderMapper.listSalesOrderItem(salesOrderItem);
    }

    @Override
    public Integer updateOrderList(JSONArray orderList, List<SalesOrder> list) {
        List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
        //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
        for (int i = 0;i < orderList.size();i++) {
            JSONObject orderInfo = orderList.getJSONObject(i);
            for (SalesOrder salesOrder : list) {
                if (orderInfo.get("order_sn").equals(salesOrder.getSalesOrderId())
                        && !(orderInfo.getInt("order_status") == salesOrder.getSalesStatus()
                        && orderInfo.getInt("shipping_status") == salesOrder.getSalesShippingStatus()
                        && orderInfo.getInt("pay_status") == salesOrder.getSalesPayStatus()
                        && orderInfo.getInt("process_status") == salesOrder.getSalesProcessStatus()
                        && orderInfo.getInt("is_send") == salesOrder.getSalesIsSend()
                        && orderInfo.getInt("is_locked") == salesOrder.getSalesIsLocked()
                        && orderInfo.getInt("is_separate") == salesOrder.getSalesIsSeparate()
                        && orderInfo.getString("shipping_name").equals(salesOrder.getSalesPostFirm())
                        && orderInfo.getString("invoice_no").equals(salesOrder.getSalesPostNum())
                )) {
                    SalesOrder order = new SalesOrder();
                    order.setSalesId(salesOrder.getSalesId());
                    order.setSalesStatus(orderInfo.getInt("order_status"));
                    order.setSalesShippingStatus(orderInfo.getInt("shipping_status"));
                    order.setSalesPayStatus(orderInfo.getInt("pay_status"));
                    order.setSalesProcessStatus(orderInfo.getInt("process_status"));
                    order.setSalesIsSend(orderInfo.getInt("is_send"));
                    order.setSalesIsLocked(orderInfo.getInt("is_locked"));
                    order.setSalesIsSeparate(orderInfo.getInt("is_separate"));
                    order.setSalesPostFirm(orderInfo.getString("shipping_name"));
                    order.setSalesPostNum(orderInfo.getString("invoice_no"));
                    salesOrders.add(order);
                }
            }
        }
        if (salesOrders != null && salesOrders.size() > 0) {
            //批量修改订单状态等信息
            return salesOrderMapper.updateOrderList(salesOrders);
        } else {
            return 1;
        }
    }

    @Override
    public Integer updateReturnOrderList(JSONArray orderList, List<SalesOrder> list) {
        List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
        //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
        for (int i = 0;i < orderList.size();i++) {
            JSONObject orderInfo = orderList.getJSONObject(i);
            for (SalesOrder salesOrder : list) {
                if (orderInfo.get("relating_order_sn").equals(salesOrder.getSalesOrderId())) {
                    SalesOrder order = new SalesOrder();
                    switch (orderInfo.getInt("process_type")) {
                        case 1://退货
                            order.setSalesOrderStatus(3);
                            break;
                        case 4://换货
                            order.setSalesOrderStatus(2);
                            break;
                        default:
                            order.setSalesOrderStatus(3);
                            break;
                    }
                    order.setSalesId(salesOrder.getSalesId());
                    salesOrders.add(order);
                }
            }
        }
        //批量修改订单状态等信息
        return salesOrderMapper.updateOrderList(list);
    }

    @Override
    public void addSalesOrderList(JSONObject obj) throws Exception{
        if (obj == null) {
            return;
        }
        JSONArray orderList = obj.getJSONArray("list");
        if (orderList == null || orderList.size() == 0) {
            return;
        }

        String endTime = sysConfigMapper.getSysConfig(1);

        for (int i = 0;i < orderList.size();i++) {
            JSONObject order = orderList.getJSONObject(i);
            //获取订单详情
            JSONObject orderInfo = null;
            try{
                orderInfo = efastOrderService.getOrderFormEfast(order.getString("deal_code"));
            }catch (Exception e){
                logger.info("获取订单失败;异常编号:505;失败原因:"+ e.getMessage() +"--获取失败订单号:" + orderList.getJSONObject(i).getString("deal_code"));
            }
            if (orderInfo == null) {
                continue;
            }
            if (!orderInfo.has("orders")) {
                continue;
            }
            //获取订单项集合
            JSONArray itemArray = orderInfo.getJSONArray("orders");
            if (itemArray == null || itemArray.size() == 0) {
                continue;
            }
            SalesOrder salesOrder = new SalesOrder();
            salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
            salesOrder.setSalesDealCode(order.getString("deal_code"));//交易号
            salesOrder.setSalesOrderStatus(1);//订单状态
            salesOrder.setSalesShippingStatus(order.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
            salesOrder.setSalesPayStatus(order.getInt("pay_status"));//是否付款 0:未付款,2:已付款
            salesOrder.setSalesProcessStatus(order.getInt("process_status"));//单据状态
            salesOrder.setSalesIsSend(order.getInt("is_send"));//是否通知配货
            salesOrder.setSalesIsLocked(order.getInt("is_locked"));//是否锁定
            salesOrder.setSalesIsSeparate(order.getInt("is_separate"));//是否缺货
            salesOrder.setSalesStatus(order.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
            salesOrder.setSalesPostFirm(order.getString("shipping_name").trim());//快递方式代码
            salesOrder.setSalesPostNum(order.getString("invoice_no").trim());//快递单号
            salesOrder.setSalesOpenId(order.getString("mobile").trim());//唯一标识
            salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name").trim()));//支付方式
            salesOrder.setSalesPayTime(new Date(order.getLong("pay_time")*1000));//支付时间
            salesOrder.setSalesUserRemark(order.getString("postscript"));//买家留言
            salesOrder.setSalesAdminRemark(order.getString("to_buyer"));//商家留言
            salesOrder.setSalesAmount((int)(order.getDouble("order_amount")*100));//应付款
            salesOrder.setSalesPayMoney((int)(order.getDouble("money_paid")*100));//已付款
            salesOrder.setSalesAddressName(order.getString("consignee").trim());//收货人
            String mobile = order.getString("mobile").replaceAll("[\\u00A0]+", "").trim();
            salesOrder.setSalesAddressTel(mobile);//收货人电话
            salesOrder.setSalesAddressInfo(order.getString("address").replaceAll(" ","-"));//收货地址
            salesOrder.setSalesShippingFee((int)(order.getDouble("shipping_fee")*100));//邮费
            salesOrder.setSalesCreateTime(DateTimeUtil.parse(order.getString("create_time"),"yyyy-MM-dd HH:mm:ss"));//创建时间
            if (order.getInt("shipping_status") == 1) {
                if(order.has("delivery_time")){
                    salesOrder.setSalesSendTime(DateTimeUtil.parse(order.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
                }else{
                    salesOrder.setSalesSendTime(new Date());//发货时间
                }
            }
            salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
            salesOrder.setSalesPledgeMoney(0);//押金金额
            salesOrder.setSalesRemainDeposit(0);//待提取金额
            salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
            salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
            salesOrder.setSalesWaitMoney(0);//待付金额
            salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
            salesOrder.setSalesPayNumber("0000");//支付尾号
            salesOrder.setSalesType(1);//订单类型

            endTime = order.getString("create_time"); //获取

            //查询店铺信息
            StoreInfo storeInfo = new StoreInfo();
            storeInfo.setStoreEfast(order.getString("sd_id"));
            List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
            int storeId = 0;
            int companyId = 0;
            if (storeList != null && storeList.size() > 0) {
                storeInfo = storeList.get(0);
                storeId = storeInfo.getStoreId();
                companyId = storeInfo.getCompanyId();
            }
            salesOrder.setSalesStoreId(storeId);//店铺id
            salesOrder.setSalesCompanyId(companyId);//销售公司id
            List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
            for (int j = 0;j < itemArray.size();j++) {
                ProductColor color = new ProductColor();
                JSONObject itemJson = itemArray.getJSONObject(j);
                SalesOrderItem item = new SalesOrderItem();
                color.setColorBar(itemJson.getString("goods_sn"));
                List<ProductColor> colorList = productService.listproductAndColor(color);
                if (colorList != null && colorList.size() > 0) {
                    color = colorList.get(0);
                    item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
                    item.setItemNum(itemJson.getInt("goods_number"));//商品数量
                    item.setItemCreateTime(salesOrder.getSalesCreateTime());
                    item.setItemColorId(color.getColorId());
                    item.setItemProductColor(color.getColorName());
                    item.setItemProductDiscount(color.getColorDiscount());
                    item.setItemProductId(color.getColorProductId());
                    item.setItemProductName(color.getProductName());
                    item.setItemProductPic(color.getColorPicture());
                    item.setItemProductType(color.getProductType());
                    item.setItemProductPrice(color.getColorPrice());
                    item.setItemIsSource(1);
                    itemList.add(item);
                } else {
                    //获取配件信息
                    FittingsInfo fittingsInfo = new FittingsInfo();
                    fittingsInfo.setFittingsBar(itemJson.getString("goods_sn"));
                    List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
                    if (Fittings == null || Fittings.size() == 0) {
                        continue;
                    }
                    fittingsInfo = Fittings.get(0);
                    item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
                    item.setItemNum(itemJson.getInt("goods_number"));//商品数量
                    item.setItemCreateTime(salesOrder.getSalesCreateTime());
                    item.setItemColorId(fittingsInfo.getFittingsId());
                    item.setItemProductColor(fittingsInfo.getFittingsName());
                    item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
                    item.setItemProductId(fittingsInfo.getProductId());
                    item.setItemProductName(fittingsInfo.getFittingsName());
                    item.setItemProductPic("");
                    item.setItemProductType(0);
                    item.setItemProductPrice(fittingsInfo.getFittingsPrice());
                    item.setItemIsSource(2);
                    itemList.add(item);
                }
            }
            //添加订单和订单项
            try{
                salesOrderService.addOrderAndItem(salesOrder,itemList);
            }catch (Exception e){
                logger.info("添加订单失败,异常编号:505;失败原因:+"+ e.getMessage() +"Efast编号:"+ salesOrder.getSalesOrderId());
            }
        }
        SysConfig sysConfig = new SysConfig(1,endTime);
        sysConfigMapper.updateSysConfig(sysConfig);
    }

    @Override
    @Transient
    public boolean syncEfastOrder(JSONObject orderInfo) throws Exception {
        if (orderInfo == null) {
            throw  new RuntimeException("获取Efast订单信息出错!");
        }
        if (!orderInfo.has("orders")) {
            throw  new RuntimeException("获取Efast订单信息出错!");
        }
        //获取订单项集合
        JSONArray itemArray = orderInfo.getJSONArray("orders");
        if (itemArray == null || itemArray.size() == 0) {
            throw  new RuntimeException("获取Efast订单信息出错!");
        }

        SalesOrder salesOrder = new SalesOrder();
        salesOrder.setSalesOrderId(orderInfo.getString("order_sn"));//订单编号
        salesOrder.setSalesDealCode(orderInfo.getString("deal_code"));//交易号
        salesOrder.setSalesOrderStatus(1);//订单状态
        salesOrder.setSalesShippingStatus(orderInfo.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
        salesOrder.setSalesPayStatus(orderInfo.getInt("pay_status"));//是否付款 0:未付款,2:已付款
        salesOrder.setSalesProcessStatus(orderInfo.getInt("process_status"));//单据状态
        salesOrder.setSalesIsSend(orderInfo.getInt("is_send"));//是否通知配货
        salesOrder.setSalesIsLocked(orderInfo.getInt("is_locked"));//是否锁定
        salesOrder.setSalesIsSeparate(orderInfo.getInt("is_separate"));//是否缺货
        salesOrder.setSalesStatus(orderInfo.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
        salesOrder.setSalesPostFirm(new String(orderInfo.getString("shipping_name")).trim());//快递方式代码
        salesOrder.setSalesPostNum(new String(orderInfo.getString("invoice_no")).trim());//快递单号
        salesOrder.setSalesOpenId(orderInfo.getString("mobile").trim());//唯一标识
        salesOrder.setSalesPayType(efastOrderService.getPayType(orderInfo.getString("pay_name").trim()));//支付方式
        salesOrder.setSalesPayTime(new Date(orderInfo.getLong("pay_time")*1000));//支付时间
        salesOrder.setSalesUserRemark(orderInfo.getString("postscript"));//买家留言
        salesOrder.setSalesAdminRemark(orderInfo.getString("to_buyer"));//商家留言
        salesOrder.setSalesAmount((int)(orderInfo.getDouble("order_amount")*100));//应付款
        salesOrder.setSalesPayMoney((int)(orderInfo.getDouble("money_paid")*100));//已付款
        salesOrder.setSalesAddressName(orderInfo.getString("consignee"));//收货人
        String mobile = orderInfo.getString("mobile").replaceAll("[\\u00A0]+", "");
        salesOrder.setSalesAddressTel(mobile.trim());//收货人电话
        salesOrder.setSalesAddressInfo(orderInfo.getString("address").replaceAll(" ","-"));//收货地址
        salesOrder.setSalesShippingFee((int)(orderInfo.getDouble("shipping_fee")*100));//邮费
        salesOrder.setSalesCreateTime(new Date(orderInfo.getLong("pay_time")*1000));//创建时间
        if (orderInfo.getInt("shipping_status") == 1) {
            if(orderInfo.has("delivery_time")){
                salesOrder.setSalesSendTime(DateTimeUtil.parse(orderInfo.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
            }else{
                salesOrder.setSalesSendTime(new Date());//发货时间
            }
        }
        salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
        salesOrder.setSalesPledgeMoney(0);//押金金额
        salesOrder.setSalesRemainDeposit(0);//待提取金额
        salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
        salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
        salesOrder.setSalesWaitMoney(0);//待付金额
        salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
        salesOrder.setSalesPayNumber("0000");//支付尾号
        salesOrder.setSalesType(1);//订单类型
        //查询店铺信息
        StoreInfo storeInfo = new StoreInfo();
        if (orderInfo.has("sd_id")) {
            storeInfo.setStoreEfast(orderInfo.getString("sd_id"));
        } else {
            storeInfo.setStoreEfast("1");
        }

        List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
        int storeId = 0;
        int companyId = 0;
        if (storeList != null && storeList.size() > 0) {
            storeInfo = storeList.get(0);
            storeId = storeInfo.getStoreId();
            companyId = storeInfo.getCompanyId();
        }
        salesOrder.setSalesStoreId(storeId);//店铺id
        salesOrder.setSalesCompanyId(companyId);//销售公司id

        List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
        for (int j = 0;j < itemArray.size();j++) {
            ProductColor color = new ProductColor();
            JSONObject itemJson = itemArray.getJSONObject(j);
            SalesOrderItem item = new SalesOrderItem();
            color.setColorBar(itemJson.getString("goods_barcode"));
            List<ProductColor> colorList = productService.listproductAndColor(color);
            if (colorList != null && colorList.size() > 0) {
                color = colorList.get(0);
                item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
                item.setItemNum(itemJson.getInt("goods_number"));//商品数量
                item.setItemCreateTime(salesOrder.getSalesCreateTime());
                item.setItemColorId(color.getColorId());
                item.setItemProductColor(color.getColorName());
                item.setItemProductDiscount(color.getColorDiscount());
                item.setItemProductId(color.getColorProductId());
                item.setItemProductName(color.getProductName());
                item.setItemProductPic(color.getColorPicture());
                item.setItemProductType(color.getProductType());
                item.setItemProductPrice(color.getColorPrice());
                item.setItemIsSource(1);
                itemList.add(item);
            } else {
                //获取配件信息
                FittingsInfo fittingsInfo = new FittingsInfo();
                fittingsInfo.setFittingsBar(itemJson.getString("goods_barcode"));
                List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
                if (Fittings == null || Fittings.size() == 0) {
                    continue;
                }
                fittingsInfo = Fittings.get(0);
                item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
                item.setItemNum(itemJson.getInt("goods_number"));//商品数量
                item.setItemCreateTime(salesOrder.getSalesCreateTime());
                item.setItemColorId(fittingsInfo.getFittingsId());
                item.setItemProductColor(fittingsInfo.getFittingsName());
                item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
                item.setItemProductId(fittingsInfo.getProductId());
                item.setItemProductName(fittingsInfo.getFittingsName());
                item.setItemProductPic("");
                item.setItemProductType(0);
                item.setItemProductPrice(fittingsInfo.getFittingsPrice());
                item.setItemIsSource(2);
                itemList.add(item);
            }
        }
        boolean flag = salesOrderService.addOrderAndItem(salesOrder,itemList);
        if (flag) {
            return true;
        } else {
            throw  new RuntimeException("添加订单项出错!");
        }
    }

    @Override
    public Integer getOrderInfoCount(SalesOrder salesOrder) {
        return salesOrderMapper.getOrderInfoCount(salesOrder);
    }

    @Override
    public List<SalesOrder> listOrderExcel(SalesOrder salesOrder) {
        return salesOrderMapper.listOrderExcel(salesOrder);
    }

    @Override
    public Integer delOrder(String orderId) {
        return salesOrderMapper.delOrder(orderId);
    }

    @Override
    public Integer updateOrderItem(SalesOrderItem salesOrderItem) {
        return salesOrderMapper.updateOrderItem(salesOrderItem);
    }
}