package com.iformall.service;

import java.io.Serializable;
import java.util.*;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxShop;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface WxShopService {

    List<WxShop> selectList(QueryWrapper<WxShop> queryWrapper) ;

	/**
     * 根据实体查询分页列表
     *
     * @param record
     * @param offset
     * @param limit
     * @return
     */
	PageInfo<WxShop> listAsPage(WxShop record, Integer pageIndex, Integer pageSize);

    PageInfo<Map<String,Object>> listMapAsPage(WxShop record, Integer pageIndex, Integer pageSize);

    PageInfo<Map<String,Object>> notRentListMapAsPage(WxShop record, Integer pageIndex, Integer pageSize);

	/**
     * 根据Id获得实体
     *
     * @param id
     * @return
     */
    WxShop getById(Long id);

    List<WxShop> getByIds(Collection<? extends Serializable> ids);

        /**
     * 保存或更新实体
     *
         * @param record
         */
    ResultData saveOrUpdate(WxShop record);

    /**
     * 根据Id删除实体
     *
     * @param id
     * @param isAdmin
     */
    ResultData deleteById(Long id, Integer isAdmin);


    ResultData getbshoplist(String tenantId, String shopNumber);

    ResultData getMerchantShopByShopId(String tenantId, String shopId);

    ResultData hasShopNumber(String tenantId, String shopNumber, Long id, Integer type);

    PageInfo<Map<String,Object>> listShopFromContract(WxShop wxShop, Integer pageNum, Integer pageSize);

    /**
     * 导出商铺数据
     * @param wxShop
     * @param request
     * @param response
     */
    void exportShop(WxShop wxShop, HttpServletRequest request, HttpServletResponse response);

    /**
     * 导出未出租商铺数据
     * @param wxShop
     * @param request
     * @param response
     */
    void exportNotRentShop(WxShop wxShop, HttpServletRequest request, HttpServletResponse response);
}
