package com.goafanti.common.controller; import java.util.Arrays; import java.util.List; import javax.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import com.goafanti.achievement.service.AchievementService; import com.goafanti.common.enums.AchievementMaturity; import com.goafanti.common.enums.AchievementTransferMode; import com.goafanti.common.enums.UserLevel; import com.goafanti.common.enums.UserType; import com.goafanti.common.service.FieldGlossoryService; import com.goafanti.demand.service.DemandService; import com.goafanti.portal.bo.AchievementPortalDetailBo; import com.goafanti.portal.bo.AchievementPortalSimilarListBo; import com.goafanti.portal.bo.DemandPortalDetailBo; import com.goafanti.portal.bo.DemandPortalSimilarListBo; @Controller public class PortalController extends BaseController { @Resource private AchievementService achievementService; @Resource private DemandService demandService; @Resource private FieldGlossoryService fieldGlossoryService; private static final String UNIT = "万元"; private static final int MULTIPLE = 20; private static final String DELIMITER = "/"; private static final String PRICE_NEGOTIABLE = "价格面议"; private static final String UNCERTIFY = "未认证"; @RequestMapping(value = "/index", method = RequestMethod.GET) public String index(ModelAndView modelview) { return "/index"; } @RequestMapping(value = "/", method = RequestMethod.GET) public String home(ModelAndView modelview) { return "/index"; } /** * 科技需求详情 */ @RequestMapping(value = "/portal/detail/demandDetail", method = RequestMethod.GET) public ModelAndView portalDemandDetail(String id, Integer type) { ModelAndView mv = new ModelAndView(); DemandPortalDetailBo demand = null; if (UserType.PERSONAL.getCode().equals(type)) { demand = demandService.findUserPortalDemandDetail(id); } else if (UserType.ORGANIZATION.getCode().equals(type)) { demand = demandService.findOrgPortalDemandDetail(id); } if (null != demand) { if (null != demand.getBudgetCost()) { demand.setBudgetCostS(demand.getBudgetCost() + UNIT); } else { demand.setBudgetCostS(PRICE_NEGOTIABLE); } if (StringUtils.isBlank(demand.getEmployerName())) { if (UserLevel.GENERAL.getCode().equals(demand.getLevel())) { demand.setEmployerName(UNCERTIFY); } else { demand.setEmployerName(" "); } } Integer industryCategoryA = demand.getIndustryCategoryA(); String industryCategory = ""; boolean a = Boolean.FALSE; boolean b = Boolean.FALSE; if (null != industryCategoryA) { List similarList = demandService.findByIndustryCategoryA(industryCategoryA, demand.getId()); if (!similarList.isEmpty()) { for (DemandPortalSimilarListBo s : similarList) { a = Boolean.FALSE; b = Boolean.FALSE; industryCategory = ""; if (StringUtils.isNotBlank(s.getIndustryCategoryAS())) { a = Boolean.TRUE; } if (StringUtils.isNotBlank(s.getIndustryCategoryBS())) { b = Boolean.TRUE; } industryCategory += (a ? s.getIndustryCategoryAS() : "") + (a && b ? DELIMITER : "") + (b ? s.getIndustryCategoryBS() : ""); s.setIndustryCategory(industryCategory); if (null != s.getBudgetCost()) { s.setBudgetCostS(s.getBudgetCost() + UNIT); } else { s.setBudgetCostS(PRICE_NEGOTIABLE); } } } mv.addObject("similarList", similarList); a = Boolean.FALSE; if (StringUtils.isNotBlank(demand.getIndustryCategoryAS())) { a = Boolean.TRUE; } } b = Boolean.FALSE; if (StringUtils.isNotBlank(demand.getIndustryCategoryBS())) { b = Boolean.TRUE; } industryCategory += (a ? demand.getIndustryCategoryAS() : "") + (a && b ? DELIMITER : "") + (b ? demand.getIndustryCategoryBS() : ""); demand.setIndustryCategory(industryCategory); String location = ""; String province = demand.getProvince(); String city = demand.getCity(); location += (StringUtils.isBlank(province) ? "" : province) + (StringUtils.isBlank(city) ? "" : city); demand.setLocation(location); } mv.setViewName("/portal/detail/demandDetail"); mv.addObject("demand", demand); return mv; } /** * 科技成果详情 */ @RequestMapping(value = "/portal/detail/achievementDetail", method = RequestMethod.GET) public ModelAndView portalAchievementDetail(String id, Integer type) { ModelAndView mv = new ModelAndView(); AchievementPortalDetailBo achievement = null; if (UserType.PERSONAL.getCode().equals(type)) { achievement = achievementService.findUserPortalAchievementDetail(id); } else if (UserType.ORGANIZATION.getCode().equals(type)) { achievement = achievementService.findOrgPortalAchievementDetail(id); } if (null != achievement) { if (StringUtils.isBlank(achievement.getOwnerName())) { if (UserLevel.GENERAL.getCode().equals(achievement.getLevel())) { achievement.setOwnerName(UNCERTIFY); } else { achievement.setOwnerName(" "); } } Integer fieldA = achievement.getFieldA(); String field = ""; boolean a = Boolean.FALSE; boolean b = Boolean.FALSE; if (null != fieldA) { List similarList = achievementService.findByFieldA(fieldA, achievement.getId(), type); if (!similarList.isEmpty()) { for (AchievementPortalSimilarListBo bo : similarList) { if (null != bo.getMaturity()) { bo.setMaturityS(bo.getMaturity() * MULTIPLE + "%"); } if (null != bo.getTransferPrice()) { bo.setTransferPriceS(bo.getTransferPrice() + UNIT); } else { bo.setTransferPriceS(PRICE_NEGOTIABLE); } } } mv.addObject("similarList", similarList); if (StringUtils.isNotBlank(achievement.getFieldAS())) { a = Boolean.TRUE; } } if (StringUtils.isNotBlank(achievement.getFieldBS())) { b = Boolean.TRUE; } field += (a ? achievement.getFieldAS() : "") + (a && b ? DELIMITER : "") + (b ? achievement.getFieldBS() : ""); achievement.setField(field); String technicalPictureUrl = achievement.getTechnicalPictureUrl(); if (StringUtils.isNotBlank(technicalPictureUrl)) { achievement.setPictureList(Arrays.asList(technicalPictureUrl.trim().split(",|,"))); } Integer transfermode = achievement.getTransferMode(); if (null != transfermode) { if (AchievementTransferMode.FULLTRANSFER.getCode().equals(transfermode)) { achievement.setTransferModeS(AchievementTransferMode.FULLTRANSFER.getDesc()); } else if (AchievementTransferMode.PERMISSIONTRANSFER.getCode().equals(transfermode)) { achievement.setTransferModeS(AchievementTransferMode.PERMISSIONTRANSFER.getDesc()); } else if (AchievementTransferMode.TECHNOLOGYSHARES.getCode().equals(transfermode)) { achievement.setTransferModeS(AchievementTransferMode.TECHNOLOGYSHARES.getDesc()); } else if (AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getCode().equals(transfermode)) { achievement.setTransferModeS(AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getDesc()); } } Integer maturity = achievement.getMaturity(); if (null != maturity) { if (AchievementMaturity.RESEARCH.getCode().equals(maturity)) { achievement.setMaturityS(AchievementMaturity.RESEARCH.getDesc()); } else if (AchievementMaturity.SAMPLE.getCode().equals(maturity)) { achievement.setMaturityS(AchievementMaturity.SAMPLE.getDesc()); } else if (AchievementMaturity.PRIMARYTEST.getCode().equals(maturity)) { achievement.setMaturityS(AchievementMaturity.PRIMARYTEST.getDesc()); } else if (AchievementMaturity.INTERMEDIATETEST.getCode().equals(maturity)) { achievement.setMaturityS(AchievementMaturity.INTERMEDIATETEST.getDesc()); } else if (AchievementMaturity.MASSPRODUCTION.getCode().equals(maturity)) { achievement.setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc()); } } String location = ""; String province = achievement.getProvince(); String city = achievement.getCity(); location += (StringUtils.isBlank(province) ? "" : province) + (StringUtils.isBlank(city) ? "" : city); if (null != achievement.getTransferPrice()) { achievement.setTransferPriceS(achievement.getTransferPrice() + UNIT); } else { achievement.setTransferPriceS(PRICE_NEGOTIABLE); } achievement.setLocation(location); } mv.setViewName("/portal/detail/achievementDetail"); mv.addObject("achievement", achievement); return mv; } }