package com.goafanti.achievement.service;

import java.util.List;

import com.goafanti.achievement.bo.AchievementImportBo;
import com.goafanti.achievement.bo.AchievementListBo;
import com.goafanti.achievement.bo.AchievementOrgOwnerDetailBo;
import com.goafanti.achievement.bo.AchievementPartnerListBo;
import com.goafanti.achievement.bo.AchievementUserOwnerDetailBo;
import com.goafanti.common.bo.PolicyEntity;
import com.goafanti.common.model.Achievement;
import com.goafanti.core.mybatis.page.Pagination;
import com.goafanti.demand.bo.DemandAchievementListBo;
import com.goafanti.portal.bo.AchievementDetailBo;
import com.goafanti.portal.bo.AchievementObject;
import com.goafanti.portal.bo.AchievementPortalDetailBo;
import com.goafanti.portal.bo.AchievementResultObject;

public interface AchievementService {

	void saveAchievement(Achievement a, String[] keywords,List<String>webPages,List<String>appPages);

	int updateAchievement(Achievement a, String[] keywords, Integer sIgnin,List<String>webPages,List<String>appPages);

	Achievement selectByPrimaryKey(String id);

	int deleteByPrimaryKey(List<String> asList);

	Pagination<AchievementObject> listMyAchievement(Integer auditStatus, String name,Integer dataCategory,  String startDate,
			String endDate,  Integer pNo, Integer pSize);

	Pagination<AchievementObject> listAchievement(String name,String ownerName,Integer category,Integer dataCategory,Integer auditStatus, 
			String startDate,String endDate,Integer pageNo,Integer pageSize);
	
	int updateAuditAchievement(Achievement a, String techBroderId, Integer auditStatus);

	int updateReleaseStatus(Achievement a);

	AchievementUserOwnerDetailBo selectUserOwnerDetail(String id );

	AchievementOrgOwnerDetailBo selectOrgOwnerDetail(String id);

	List<DemandAchievementListBo> selectAchievementDemandListByAchievementId(String id);

	void insertImport(List<AchievementImportBo> data);

	AchievementDetailBo selectAchievementDetail(String uid, String id);
	
	Achievement selectAchievementDetail(String id);

	int updateMatchDemand(Achievement a);

	Pagination<AchievementPartnerListBo> listPartnerAchievement(String ownerId, Integer pNo, Integer pSize);

	AchievementPortalDetailBo findUserPortalAchievementDetail(String id);

	AchievementPortalDetailBo findOrgPortalAchievementDetail(String id);

	int updateByPrimaryKeySelective(Achievement a);

	Pagination<AchievementPartnerListBo> listAppUserAchievement(Integer auditStatus, Integer serialNumber, String name, String keyword,Integer dataCategory,
			Integer category, Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
			Integer releaseStatus,String ownerId,Integer fieldA, Integer pNo, Integer pSize);

	Pagination<AchievementPartnerListBo> listAppMyAchievement(Integer pNo, Integer pSize);

	AchievementUserOwnerDetailBo selectAppUserOwnerDetail(String id);

	int saveAppAchievement(Achievement a, String[] keywords);

	public List<AchievementObject> recentAchievements(int size,String url,String showLocation);
	
	public List<AchievementObject>getHotAchievements(int size,String url,String showLocation);
	
	public List<AchievementObject>getPatentList(int size,String url,String showLocation);
	
	public List<AchievementObject>getPracticalTechnologys(int size,String url,String showLocation);
	
	List<PolicyEntity> getIntellectualProperty(int size);
	
	AchievementObject getAchievementDetail(String id,Integer type);
	
	AchievementResultObject getAchievementDetailById(String id);
	
	List<AchievementObject>getBoutiquePatent(int size);
	
	List<AchievementObject>guessYouLike(int size);
	
	int updateAuditAchievement(String id,Integer auditResult,String auditInfo);

}
