package com.zm.order.tool.server.service;

import com.zm.order.tool.server.model.DataCorrectionRequest;
import com.zm.order.tool.server.model.OrderPayDetails;
import com.zm.order.tool.server.model.OrderPush;
import com.zm.order.tool.server.request.OrderDataReviseRequest;
import com.zm.util.dto.Result;

/**
 * @author NianChang
 * @ClassName ScriptService
 * @date 2021/02/20 9:51 上午
 */
public interface OrderScriptService {

    /**
     * 数据迁移
     *
     * @param request
     * @return:
     * @Date: 2021/2/18 4:15 下午
     */
    Result transferOrderData(OrderDataReviseRequest request);

    void scanSyncExceptionOrder();

    /**
     * 同步订单数据
     * @param request
     * @return:
     * @Date: 2020/12/1 7:12 PM
     */
    Result syncOrderData(OrderDataReviseRequest request);

    Result syncOrderDataList(OrderDataReviseRequest request);

    /**
     * 订单消息推送
     * @param orderPush
     * @return:
     * @Date: 2021/3/31 2:44 下午
     */
    Result orderMessagePush(OrderPush orderPush);

    Result messagePushRefund(OrderPush orderPush);

    Result orderMessagePushList(OrderPush orderPush);

    Result orderMessageCanCelPush();

    /**
     * 数据订正
     * @param request
     * @return:
     * @Date: 2021/3/31 2:44 下午
     */
    Result orderDataCorrection(DataCorrectionRequest request);

    /**
     * 同步ES
     * @param
     * @return
     * Date: 2021/7/29 11:04 上午
     */
    Result syncEs();

    /**
     * Es删除第366天的数据
     * @return
     */
    void delEs();

    /**
      * 更新订单itemType
      * @param
      * @return Result
     **/
    Result updateItemType();

    /**
     * 订单优惠表主键修复
     * @param
     * @return Result
     **/
    Result orderDiscountIdCheck();

    /**
     * 同步ES
     * @param
     * @return
     * Date: 2021/7/29 11:04 上午
     */
    Result currentOrderSyncEs();

    /**
      * 补充订单支付明细表、更新支付快照
      * @param request
      * @return com.zm.util.dto.Result
     **/
    Result insertOrderPayDetails(OrderDataReviseRequest request);

    /**
     * 更新订单删除状态
     * @param request
     * @return com.zm.util.dto.Result
     **/
    Result updateOrderDeleted(OrderDataReviseRequest request);

    Result updateOrderDelete();

    Result deleteOrder(OrderDataReviseRequest request);
    Result deleteMultiOrder();

    Result updateAmount();
    Result refundPayDetail();

    void dinnerOrder();
    void appointOrderTransfer();
    void updateStoreId();
    void insertPay(OrderPayDetails payDetails);
    void appointInsertPay();
    void repairComment();
    void mtSourceOrder();
    void mtOrderRepair();
    void pullData();

    void pullDataBakingEs();

    // 标准化
    void pullDataBakingStd();
    void bakingStdDoTransfer();

    //烘焙
    void pullDataBaking();
    void doBakingJiFenTransfer();

    //饮食
    void pullDataCatering();
    void jifenOrderCatering();

    void orderRepair();
    void orderPayed();
    void updateCompleteStatus();
    void tempTest();

}
