package org.dromara.zhishu.service;

import org.apache.ibatis.annotations.Param;
import org.dromara.zhishu.domain.dto.request.ZhishuShopGoodsRequest;
import org.dromara.zhishu.domain.vo.FreightGoodsCountVo;
import org.dromara.zhishu.domain.vo.SaveGoodsVo;
import org.dromara.zhishu.domain.vo.ShopVo;

import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;

public interface ZhishuShopGoodsAopService {

    void insertNewDataList(
            @Param("data") ZhishuShopGoodsRequest data, @Param("userId") Long userId,
            @Param("freightGoodsCountList") List<FreightGoodsCountVo> freightGoodsCountList,
            @Param("saveGoodsVo") SaveGoodsVo saveGoodsVo,
            @Param("failedList") List<ZhishuShopGoodsRequest> failedList,
            @Param("successList") List<ZhishuShopGoodsRequest> successList,
            @Param("successMarkI") AtomicInteger successMarkI, @Param("failMarkI") AtomicInteger failMarkI,
            @Param("shopVo") ShopVo shopVo, @Param("totalNum") Integer totalNum, @Param("time") long time,
            @Param("status") AtomicBoolean status,
            @Param("taskType") String taskType
    );

    void updateChangedDataList(
            @Param("data") ZhishuShopGoodsRequest data, @Param("userId") Long userId,
            @Param("freightGoodsCountList") List<FreightGoodsCountVo> freightGoodsCountList,
            @Param("saveGoodsVo") SaveGoodsVo saveGoodsVo,
            @Param("failedList") List<ZhishuShopGoodsRequest> failedList,
            @Param("successList") List<ZhishuShopGoodsRequest> successList,
            @Param("successMarkI") AtomicInteger successMarkI, @Param("failMarkI") AtomicInteger failMarkI,
            @Param("shopVo") ShopVo shopVo, @Param("totalNum") Integer totalNum, @Param("newTime") long time,
            @Param("status") AtomicBoolean status
    );

}
