package com.goafanti.demand.service;

import java.util.List;

import com.goafanti.common.model.Demand;
import com.goafanti.core.mybatis.page.Pagination;
import com.goafanti.demand.bo.DemandDetailBo;
import com.goafanti.demand.bo.DemandImportBo;
import com.goafanti.demand.bo.DemandListBo;
import com.goafanti.demand.bo.ObjectInterestListBo;
import com.goafanti.portal.bo.DemandSearchDetailBo;
import com.goafanti.portal.bo.DemandSearchListBo;

public interface DemandService {
	Pagination<DemandListBo> listMyDemand(String name,String startDate,String endDate,Integer pageNo, Integer pageSize);
	
	Pagination<DemandListBo> listDemand(String name,String employerName,Integer demandType, 
			Integer auditStatus,Integer status,String startDate, String endDate,Integer pageNo, Integer pageSize);
	
	int updateUserDemand(Demand d, String validityPeriodFormattedDate, String[] keywords,List<String> webPages,List<String> appPages);

	DemandDetailBo selectUserDemandDetail(String id);

	int deleteByPrimaryKey(List<String> asList);

	DemandDetailBo selectOrgDemandDetail(String id);

	Demand selectByPrimaryKey(String id);

	int updateReleaseStatus(Demand d);

	int updateAuditDemand(Demand d, String techBroderId, Integer auditStatus);

	void saveDemand(Demand d, String validityPeriodFormattedDate, String keywords[],List<String> webPages, List<String> appPages);

	void insertImport(List<DemandImportBo> data);

	DemandSearchDetailBo selectDemandDetail(String uid, String id);

	int updateMatchAchievement(Demand d);

	int updateByPrimaryKeySelective(Demand d);
	
	DemandListBo selectAppDemandDetail( String id);
	
	Pagination<DemandSearchListBo> listAppDemand(Integer auditStatus, Integer serialNumber, String name, String keyword, Integer demandType,Integer industryCategoryA,
			String validityPeriodStartDate, String validityPeriodEndDate, Integer status, Integer releaseStatus,
			String releaseDateStartDate, String releaseDateEndDate,String employerId, Integer pNo, Integer pSize);

	Pagination<ObjectInterestListBo> selectinterest(Integer type,Integer pageNo, Integer pageSize);

	Pagination<DemandSearchListBo> listMyDemand(Integer pNo, Integer pSize);

	int saveAppUserDemand(Demand d, String validityPeriodFormattedDate, String[] keywords);

	Demand DemandFollowDetails(String id);
	
	//科技需求首页列表
	List<DemandListBo> recentDemand(int size,String pattern,String showLocation);
	
	List<DemandListBo> companyDemand(int size,String pattern,String showLocation);
	
	List<DemandListBo> getUrgentDemand(int size,String pattern,String showLocation);
	
	List<DemandListBo> getHotDemand(int size,String pattern,String showLocation);
	
	List<DemandListBo> areaDemand(int size,String pattern,String showLocation); 
	
	List<DemandListBo> proLearnStudyDemand(int size,String pattern,String showLocation);
	
	List<DemandListBo> getFundCrowdDemand(int size,String pattern,String showLocation);
	
	List<DemandListBo> getPersonnelDemand(int size,String pattern,String showLocation);
	
	DemandListBo getDemandDetail(String id,Integer type);
	
	int getInterestCount(String id);
	
	List<DemandListBo>getBoutiqueDemandList(int i,String pattern,String showLocation);
	
	DemandDetailBo selectDemandDetail(String id);
	
}