PortalController.java 8.6 KB

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