PortalController.java 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. package com.goafanti.common.controller;
  2. import java.math.BigDecimal;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import javax.annotation.Resource;
  6. import javax.servlet.http.HttpServletRequest;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RequestMethod;
  11. import org.springframework.web.servlet.ModelAndView;
  12. import org.springframework.web.servlet.view.RedirectView;
  13. import com.goafanti.achievement.service.AchievementService;
  14. import com.goafanti.common.enums.AchievementBargainingMode;
  15. import com.goafanti.common.enums.AchievementMaturity;
  16. import com.goafanti.common.enums.AchievementTransferMode;
  17. import com.goafanti.common.enums.UserLevel;
  18. import com.goafanti.common.enums.UserType;
  19. import com.goafanti.common.service.FieldGlossoryService;
  20. import com.goafanti.demand.service.DemandService;
  21. import com.goafanti.portal.bo.AchievementPortalDetailBo;
  22. import com.goafanti.portal.bo.AchievementPortalSimilarListBo;
  23. import com.goafanti.portal.bo.DemandPortalDetailBo;
  24. import com.goafanti.portal.bo.DemandPortalSimilarListBo;
  25. @Controller
  26. public class PortalController extends BaseController {
  27. @Resource
  28. private AchievementService achievementService;
  29. @Resource
  30. private DemandService demandService;
  31. @Resource
  32. private FieldGlossoryService fieldGlossoryService;
  33. private static final String UNIT = "万元";
  34. private static final int MULTIPLE = 20;
  35. private static final String DELIMITER = "/";
  36. private static final String PRICE_NEGOTIABLE = "价格面议";
  37. private static final String UNCERTIFY = "未认证";
  38. @RequestMapping(value = "/index", method = RequestMethod.GET)
  39. public ModelAndView index(HttpServletRequest request, ModelAndView modelview) {
  40. return home(request, modelview);
  41. }
  42. @RequestMapping(value = "/", method = RequestMethod.GET)
  43. public ModelAndView home(HttpServletRequest request, ModelAndView modelview) {
  44. RedirectView rv = new RedirectView();
  45. rv.setUrl(request.getContextPath() + "/portal/index");
  46. rv.setExposeModelAttributes(false);
  47. modelview.setView(rv);
  48. return modelview;
  49. }
  50. /**
  51. * 科技需求详情
  52. */
  53. @RequestMapping(value = "/portal/detail/demandDetail", method = RequestMethod.GET)
  54. public ModelAndView portalDemandDetail(String id, Integer type) {
  55. ModelAndView mv = new ModelAndView();
  56. DemandPortalDetailBo demand = null;
  57. if (UserType.PERSONAL.getCode().equals(type)) {
  58. demand = demandService.findUserPortalDemandDetail(id);
  59. } else if (UserType.ORGANIZATION.getCode().equals(type)) {
  60. demand = demandService.findOrgPortalDemandDetail(id);
  61. }
  62. if (null != demand) {
  63. if (null != demand.getBudgetCost()) {
  64. demand.setBudgetCostS(demand.getBudgetCost() + UNIT);
  65. } else {
  66. demand.setBudgetCostS(PRICE_NEGOTIABLE);
  67. }
  68. if (StringUtils.isBlank(demand.getEmployerName())) {
  69. if (UserLevel.GENERAL.getCode().equals(demand.getLevel())) {
  70. demand.setEmployerName(UNCERTIFY);
  71. } else {
  72. demand.setEmployerName(" ");
  73. }
  74. }
  75. Integer industryCategoryA = demand.getIndustryCategoryA();
  76. boolean hasCategoryA = false;
  77. boolean hasCategoryB = false;
  78. if (null != industryCategoryA) {
  79. List<DemandPortalSimilarListBo> similarList = demandService.findByIndustryCategoryA(industryCategoryA,
  80. demand.getId());
  81. if (!similarList.isEmpty()) {
  82. for (DemandPortalSimilarListBo s : similarList) {
  83. hasCategoryA = StringUtils.isNotBlank(s.getIndustryCategoryAS());
  84. hasCategoryB = StringUtils.isNotBlank(s.getIndustryCategoryBS());
  85. s.setIndustryCategory((hasCategoryA ? s.getIndustryCategoryAS() : "")
  86. + (hasCategoryA && hasCategoryB ? DELIMITER : "")
  87. + (hasCategoryB ? s.getIndustryCategoryBS() : ""));
  88. if (null != s.getBudgetCost() || s.getBudgetCost().compareTo(BigDecimal.ZERO) > 0) {
  89. s.setBudgetCostS(s.getBudgetCost() + UNIT);
  90. } else {
  91. s.setBudgetCostS(PRICE_NEGOTIABLE);
  92. }
  93. }
  94. }
  95. mv.addObject("similarList", similarList);
  96. hasCategoryA = StringUtils.isNotBlank(demand.getIndustryCategoryAS());
  97. }
  98. hasCategoryB = StringUtils.isNotBlank(demand.getIndustryCategoryBS());
  99. demand.setIndustryCategory((hasCategoryA ? demand.getIndustryCategoryAS() : "")
  100. + (hasCategoryA && hasCategoryB ? DELIMITER : "")
  101. + (hasCategoryB ? demand.getIndustryCategoryBS() : ""));
  102. demand.setLocation((StringUtils.isBlank(demand.getProvince()) ? "" : demand.getProvince())
  103. + (StringUtils.isBlank(demand.getCity()) ? "" : demand.getCity()));
  104. }
  105. mv.setViewName("/portal/detail/demandDetail");
  106. mv.addObject("demand", demand);
  107. return mv;
  108. }
  109. /**
  110. * 科技成果详情
  111. */
  112. @RequestMapping(value = "/portal/detail/achievementDetail", method = RequestMethod.GET)
  113. public ModelAndView portalAchievementDetail(String id, Integer type) {
  114. ModelAndView mv = new ModelAndView();
  115. AchievementPortalDetailBo achievement = null;
  116. if (UserType.PERSONAL.getCode().equals(type)) {
  117. achievement = achievementService.findUserPortalAchievementDetail(id);
  118. } else if (UserType.ORGANIZATION.getCode().equals(type)) {
  119. achievement = achievementService.findOrgPortalAchievementDetail(id);
  120. }
  121. if (null != achievement) {
  122. if (StringUtils.isBlank(achievement.getOwnerName())) {
  123. if (UserLevel.GENERAL.getCode().equals(achievement.getLevel())) {
  124. achievement.setOwnerName(UNCERTIFY);
  125. } else {
  126. achievement.setOwnerName(" ");
  127. }
  128. }
  129. Integer fieldA = achievement.getFieldA();
  130. String field = "";
  131. boolean a = Boolean.FALSE;
  132. boolean b = Boolean.FALSE;
  133. if (null != fieldA) {
  134. List<AchievementPortalSimilarListBo> similarList = achievementService.findByFieldA(fieldA,
  135. achievement.getId(), type);
  136. if (!similarList.isEmpty()) {
  137. for (AchievementPortalSimilarListBo bo : similarList) {
  138. if (null != bo.getMaturity()) {
  139. bo.setMaturityS(bo.getMaturity() * MULTIPLE + "%");
  140. }
  141. if (null == bo.getBargainingMode()
  142. || AchievementBargainingMode.NEGOTIABLE.getCode().equals(bo.getBargainingMode())) {
  143. bo.setTransferPriceS(PRICE_NEGOTIABLE);
  144. } else {
  145. if (null != bo.getTransferPrice() && bo.getTransferPrice().compareTo(BigDecimal.ZERO) > 0) {
  146. bo.setTransferPriceS(bo.getTransferPrice() + UNIT);
  147. } else {
  148. bo.setTransferPriceS(PRICE_NEGOTIABLE);
  149. }
  150. }
  151. String ulocation = "";
  152. String uprovince = bo.getUprovince();
  153. String ucity = bo.getUcity();
  154. ulocation += (StringUtils.isBlank(uprovince) ? "" : uprovince)
  155. + (StringUtils.isBlank(ucity) ? "" : ucity);
  156. String olocation = "";
  157. String oprovince = bo.getOprovince();
  158. String ocity = bo.getOcity();
  159. olocation += (StringUtils.isBlank(oprovince) ? "" : oprovince)
  160. + (StringUtils.isBlank(ocity) ? "" : ocity);
  161. bo.setLocation(StringUtils.isNotBlank(ulocation) ? ulocation
  162. : (StringUtils.isNotBlank(olocation) ? olocation : ""));
  163. }
  164. }
  165. mv.addObject("similarList", similarList);
  166. if (StringUtils.isNotBlank(achievement.getFieldAS())) {
  167. a = Boolean.TRUE;
  168. }
  169. }
  170. if (StringUtils.isNotBlank(achievement.getFieldBS())) {
  171. b = Boolean.TRUE;
  172. }
  173. field += (a ? achievement.getFieldAS() : "") + (a && b ? DELIMITER : "")
  174. + (b ? achievement.getFieldBS() : "");
  175. achievement.setField(field);
  176. String technicalPictureUrl = achievement.getTechnicalPictureUrl();
  177. if (StringUtils.isNotBlank(technicalPictureUrl)) {
  178. achievement.setPictureList(Arrays.asList(technicalPictureUrl.trim().split(",|,")));
  179. }
  180. Integer transfermode = achievement.getTransferMode();
  181. if (null != transfermode) {
  182. if (AchievementTransferMode.FULLTRANSFER.getCode().equals(transfermode)) {
  183. achievement.setTransferModeS(AchievementTransferMode.FULLTRANSFER.getDesc());
  184. } else if (AchievementTransferMode.PERMISSIONTRANSFER.getCode().equals(transfermode)) {
  185. achievement.setTransferModeS(AchievementTransferMode.PERMISSIONTRANSFER.getDesc());
  186. } else if (AchievementTransferMode.TECHNOLOGYSHARES.getCode().equals(transfermode)) {
  187. achievement.setTransferModeS(AchievementTransferMode.TECHNOLOGYSHARES.getDesc());
  188. } else if (AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getCode().equals(transfermode)) {
  189. achievement.setTransferModeS(AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getDesc());
  190. }
  191. }
  192. Integer maturity = achievement.getMaturity();
  193. if (null != maturity) {
  194. if (AchievementMaturity.RESEARCH.getCode().equals(maturity)) {
  195. achievement.setMaturityS(AchievementMaturity.RESEARCH.getDesc());
  196. } else if (AchievementMaturity.SAMPLE.getCode().equals(maturity)) {
  197. achievement.setMaturityS(AchievementMaturity.SAMPLE.getDesc());
  198. } else if (AchievementMaturity.PRIMARYTEST.getCode().equals(maturity)) {
  199. achievement.setMaturityS(AchievementMaturity.PRIMARYTEST.getDesc());
  200. } else if (AchievementMaturity.INTERMEDIATETEST.getCode().equals(maturity)) {
  201. achievement.setMaturityS(AchievementMaturity.INTERMEDIATETEST.getDesc());
  202. } else if (AchievementMaturity.MASSPRODUCTION.getCode().equals(maturity)) {
  203. achievement.setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc());
  204. }
  205. }
  206. String location = "";
  207. String province = achievement.getProvince();
  208. String city = achievement.getCity();
  209. location += (StringUtils.isBlank(province) ? "" : province) + (StringUtils.isBlank(city) ? "" : city);
  210. if (null == achievement.getBargainingMode()
  211. || AchievementBargainingMode.NEGOTIABLE.equals(achievement.getBargainingMode())) {
  212. achievement.setTransferPriceS(PRICE_NEGOTIABLE);
  213. } else {
  214. if (null != achievement.getTransferPrice()) {
  215. achievement.setTransferPriceS(achievement.getTransferPrice() + UNIT);
  216. } else {
  217. achievement.setTransferPriceS(PRICE_NEGOTIABLE);
  218. }
  219. }
  220. achievement.setLocation(location);
  221. }
  222. mv.setViewName("/portal/detail/achievementDetail");
  223. mv.addObject("achievement", achievement);
  224. return mv;
  225. }
  226. }