package cn.superdesk.uniorder.service.setting;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.dao.entity.setting.UnifiedService;
import cn.superdesk.uniorder.dao.entity.unified.UnifiedServiceGroup;
import cn.superdesk.uniorder.dto.param.setting.UnifiedServicePartGoodsTransportParam;
import cn.superdesk.uniorder.dto.vo._function.select.SelectOptionUnifiedService;
import cn.superdesk.uniorder.dto.vo.setting.UnifiedServiceCacheStruct;
import cn.superdesk.uniorder.service.base.BaseService;
import com.github.pagehelper.PageInfo;

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

public interface UnifiedServiceService extends BaseService<UnifiedService> {

	/****************************************** extends BaseService 部分 start ******************************************/

	int insertSelective(UnifiedService entity);

    int updateByPrimaryKeySelective(UnifiedService entity);

	@Deprecated
	void deleteObj(Long id);

	@Deprecated
	UnifiedService findById(Long id);

	@Deprecated
	PageInfo<UnifiedService> findByPaging(Map<String, Object> conditions, Integer pageNun, Integer pageSize);

	@Deprecated
	List<UnifiedService> findAll(Map<String, Object> queryMap);

	/****************************************** extends BaseService 部分   end ******************************************/


	void addUnifiedService(UnifiedService entity);

	void updateUnifiedService(UnifiedService entity);

	void deleteUnifiedService(Long id);

	UnifiedService findUnifiedServiceById(Long id);

	R<List<UnifiedService>> pageQuery(Map<String, Object> conditions, int pageNun, int pageSize);

	/****************************************** 原先的 start ******************************************/

	R<List<UnifiedService>> getPage(Map<String, Object> params, int pageNum, int pageSize);

	List<UnifiedService> getAsService();

	List<UnifiedService> getAsOrderType();

	UnifiedServiceCacheStruct convertForMapAsOrderType();

	List<SelectOptionUnifiedService> getSelectByVirt(Map<String, Object> params);

	List<UnifiedServiceGroup> findAllByGroup(Map<String, Object> params);

	UnifiedService findByCode(String code);

	UnifiedServicePartGoodsTransportParam getUnifiedServicePartGoodsTransport(String code);
}
