package com.kmall.admin.service.mk.store;

import com.kmall.admin.entity.mk.store.MkStoreTicketGoodsTempEntity;

import java.util.List;
import java.util.Map;

/**
 * 门店优惠券活动商品，参与优惠的商品临时表Service接口
 *
 * @author emato
 * @email admin@qhdswl.com
 * @date 2019-05-09 17:33:29
 */
public interface MkStoreTicketGoodsTempService {

    /**
     * 根据主键查询实体
     *
     * @param discGoodTempId 主键
     * @return 实体
     */
    MkStoreTicketGoodsTempEntity queryObject(Integer discGoodTempId);

    MkStoreTicketGoodsTempEntity queryGoodsTempByRealId(Integer storeRealId, String guid);
    /**
     * 分页查询
     *
     * @param map 参数
     * @return list
     */
    List<MkStoreTicketGoodsTempEntity> queryList(Map<String, Object> map);

    List<MkStoreTicketGoodsTempEntity> queryAllDiscountByStoreId(Map<String, Object> map);

    int queryTotallDiscountByStoreId(Map<String, Object> map);

    /**
     * 分页统计总数
     *
     * @param map 参数
     * @return 总数
     */
    int queryTotal(Map<String, Object> map);

    /**
     * 保存实体
     *
     * @param mkStoreTicketGoodsTemp 实体
     * @return 保存条数
     */
    int save(MkStoreTicketGoodsTempEntity mkStoreTicketGoodsTemp);

    /**
     * 根据主键更新实体
     *
     * @param mkStoreTicketGoodsTemp 实体
     * @return 更新条数
     */
    int update(MkStoreTicketGoodsTempEntity mkStoreTicketGoodsTemp);

    /**
     * 根据主键删除
     *
     * @param discGoodTempId
     * @return 删除条数
     */
    int delete(Integer discGoodTempId);

    /**
     * 根据主键批量删除
     *
     * @param discGoodTempIds
     * @return 删除条数
     */
    int deleteBatch(Integer[] discGoodTempIds);

    /**
     * 触发优惠券选择商品页面分页按钮时保存数据
     * @param mkStoreTicketDiscountGoods
     */
    void batchSaveDiscountGoods(MkStoreTicketGoodsTempEntity mkStoreTicketDiscountGoods);

    List<MkStoreTicketGoodsTempEntity> queryGoodsTempIdBy(MkStoreTicketGoodsTempEntity entity);

    /**
     * 触发优惠券选择商品页面取消按钮时，将返回失效的商品还原为有效
     * @param mkStoreTicketGoodsTemp
     */
    void resetDiscTicketIsValidByTemp(MkStoreTicketGoodsTempEntity mkStoreTicketGoodsTemp);

    /**
     * 触发门店活动选择商品页面分页按钮时保存数据
     * @param mkStoreTicketDiscountGoods
     */
    void batchSaveStoreTopicGoods(MkStoreTicketGoodsTempEntity mkStoreTicketDiscountGoods);

    MkStoreTicketGoodsTempEntity queryGoodsTempByRealIdAndTopicId(Integer storeRealId, Integer storeTopicId);
}
