package com.goafanti.business.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.goafanti.business.bo.JtBusinessCategoryBo;
import com.goafanti.business.bo.JtBusinessCategoryTree;
import com.goafanti.business.bo.JtBusinessProjectResult;
import com.goafanti.business.bo.makeMoneyCategoryListBo;
import com.goafanti.common.bo.MyCollection;
import com.goafanti.common.model.JtBusinessCategory;
import com.goafanti.common.model.JtBusinessProject;
import com.goafanti.core.mybatis.page.Pagination;

public interface JtBusinessService {
	JtBusinessCategory getBusinessCategoryByLayerAndName(Integer layer,String name);
	List<JtBusinessCategory> getBusinessCategoryBySuperId(String id,Integer size);
	List<JtBusinessProject>getBusinessProjectByCategoryId(String id,Integer size,Integer isHot);
	JtBusinessProjectResult getBusinessProjectDetail(String id);
	JtBusinessCategoryTree getCategoryTree(String id);
	List<JtBusinessCategoryBo>getCategoryBoList(Integer module);
	Pagination<JtBusinessProjectResult>getProjects(String tag,String topId,String secondId,String name, Integer pageSize,Integer pageNo,Integer privateProject,Integer auditStatus,Integer module,Integer isHot,Integer orderType,Integer orderSort,String ownerId); 
	int insertCategory(JtBusinessCategory jtBusinessCategory);
	int deleteCategoryById(String id);
	JtBusinessCategory getCategoryById(String id);
	int updateCategory(JtBusinessCategory jtBusinessCategory);
	int insertProject(JtBusinessProject jtBusinessProject);
	int deleteProjectById(String id);
	int updateProject(JtBusinessProject jtBusinessProject);
	List<JtBusinessProject>getProjectsLimit(Integer size);
	int deleteByIdAndUid(String id);
	Pagination<JtBusinessProject>listProjectIInterestedIn(Integer pageNo,Integer pageSize);
	Pagination<MyCollection> myCollectionProject(Integer pageNo, Integer pageSize);
	List<makeMoneyCategoryListBo> makeMoneyCategoryList();
	Pagination<MyCollection> recommendedApplication( Integer type,Integer pageNo, Integer pageSize);
	/**
	 * 获得某模块的所有业务数据
	 * @param module
	 * @return
	 */
	List<JtBusinessCategory> getCategoryByModule(Integer module,Integer layer,Integer size);
	
	/**
	 * 查看模块项目
	 * @param module
	 * @param isHost
	 * @param size
	 * @return
	 */
	List<JtBusinessProject> getKJListByIds(Integer module, Integer isHost, Integer size);
	/**
	 * 根据名字查看二级分类
	 * @param name
	 * @param isHost
	 * @param size
	 * @return
	 */
	List<JtBusinessProject> getModuleByName(String  name, Integer isHost, Integer size);
	/**
	 * 品类上移
	 * @param id
	 * @return
	 */
	int updateProjectMoveUp(String id);
	/**
	 * 品类置顶
	 * @param id
	 * @return
	 */
	int updateProjectSetTop(String id);
	void addJtCollectSearch(JtBusinessProject jtBusinessProject);
	void updateJtCollectSearch(String id);
	List<JtBusinessCategoryBo> getHomeIndex(Integer module, Integer isHome);
	
	/**
	 * 根据标签名称获得项目
	 * @param name
	 * @param size
	 * @return
	 */
	List<JtBusinessProject> getProjectByTag(String name, Integer size);
	int updateByPrimaryKeySelective(JtBusinessProject jtBusinessProject);
	
	
	
}
