| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- package com.goafanti.common.controller;
- import java.math.BigDecimal;
- import java.util.Arrays;
- import java.util.List;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- 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 org.springframework.web.servlet.view.RedirectView;
- import com.goafanti.achievement.service.AchievementService;
- import com.goafanti.common.enums.AchievementBargainingMode;
- 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 ModelAndView index(HttpServletRequest request, ModelAndView modelview) {
- return home(request, modelview);
- }
- @RequestMapping(value = "/", method = RequestMethod.GET)
- public ModelAndView home(HttpServletRequest request, ModelAndView modelview) {
- RedirectView rv = new RedirectView();
- rv.setUrl(request.getContextPath() + "/portal/index");
- rv.setExposeModelAttributes(false);
- modelview.setView(rv);
- return modelview;
- }
- /**
- * 科技需求详情
- */
- @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();
- boolean hasCategoryA = false;
- boolean hasCategoryB = false;
- if (null != industryCategoryA) {
- List<DemandPortalSimilarListBo> similarList = demandService.findByIndustryCategoryA(industryCategoryA,
- demand.getId());
- if (!similarList.isEmpty()) {
- for (DemandPortalSimilarListBo s : similarList) {
- hasCategoryA = StringUtils.isNotBlank(s.getIndustryCategoryAS());
- hasCategoryB = StringUtils.isNotBlank(s.getIndustryCategoryBS());
- s.setIndustryCategory((hasCategoryA ? s.getIndustryCategoryAS() : "")
- + (hasCategoryA && hasCategoryB ? DELIMITER : "")
- + (hasCategoryB ? s.getIndustryCategoryBS() : ""));
- if (null != s.getBudgetCost() || s.getBudgetCost().compareTo(BigDecimal.ZERO) > 0) {
- s.setBudgetCostS(s.getBudgetCost() + UNIT);
- } else {
- s.setBudgetCostS(PRICE_NEGOTIABLE);
- }
- }
- }
- mv.addObject("similarList", similarList);
- hasCategoryA = StringUtils.isNotBlank(demand.getIndustryCategoryAS());
- }
- hasCategoryB = StringUtils.isNotBlank(demand.getIndustryCategoryBS());
- demand.setIndustryCategory((hasCategoryA ? demand.getIndustryCategoryAS() : "")
- + (hasCategoryA && hasCategoryB ? DELIMITER : "")
- + (hasCategoryB ? demand.getIndustryCategoryBS() : ""));
- demand.setLocation((StringUtils.isBlank(demand.getProvince()) ? "" : demand.getProvince())
- + (StringUtils.isBlank(demand.getCity()) ? "" : demand.getCity()));
- }
- 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<AchievementPortalSimilarListBo> 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.getBargainingMode()
- || AchievementBargainingMode.NEGOTIABLE.getCode().equals(bo.getBargainingMode())) {
- bo.setTransferPriceS(PRICE_NEGOTIABLE);
- } else {
- if (null != bo.getTransferPrice() && bo.getTransferPrice().compareTo(BigDecimal.ZERO) > 0) {
- bo.setTransferPriceS(bo.getTransferPrice() + UNIT);
- } else {
- bo.setTransferPriceS(PRICE_NEGOTIABLE);
- }
- }
- String ulocation = "";
- String uprovince = bo.getUprovince();
- String ucity = bo.getUcity();
- ulocation += (StringUtils.isBlank(uprovince) ? "" : uprovince)
- + (StringUtils.isBlank(ucity) ? "" : ucity);
- String olocation = "";
- String oprovince = bo.getOprovince();
- String ocity = bo.getOcity();
- olocation += (StringUtils.isBlank(oprovince) ? "" : oprovince)
- + (StringUtils.isBlank(ocity) ? "" : ocity);
- bo.setLocation(StringUtils.isNotBlank(ulocation) ? ulocation
- : (StringUtils.isNotBlank(olocation) ? olocation : ""));
- }
- }
- 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.getBargainingMode()
- || AchievementBargainingMode.NEGOTIABLE.equals(achievement.getBargainingMode())) {
- achievement.setTransferPriceS(PRICE_NEGOTIABLE);
- } else {
- 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;
- }
- }
|