PortalController.java 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882
  1. package com.goafanti.common.controller;
  2. import java.math.BigDecimal;
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. import java.util.Random;
  7. import javax.annotation.Resource;
  8. import javax.servlet.http.HttpServletRequest;
  9. import org.apache.commons.lang3.StringUtils;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RequestMethod;
  13. import org.springframework.web.servlet.ModelAndView;
  14. import org.springframework.web.servlet.view.RedirectView;
  15. import com.goafanti.achievement.bo.AchievementListBo;
  16. import com.goafanti.achievement.service.AchievementInterestService;
  17. import com.goafanti.achievement.service.AchievementService;
  18. import com.goafanti.common.enums.AchievementBargainingMode;
  19. import com.goafanti.common.enums.AchievementMaturity;
  20. import com.goafanti.common.enums.AchievementTransferMode;
  21. import com.goafanti.common.enums.UserLevel;
  22. import com.goafanti.common.enums.UserType;
  23. import com.goafanti.common.service.FieldGlossoryService;
  24. import com.goafanti.core.shiro.token.TokenManager;
  25. import com.goafanti.demand.bo.DemandListBo;
  26. import com.goafanti.demand.service.DemandInterestService;
  27. import com.goafanti.demand.service.DemandService;
  28. import com.goafanti.portal.bo.AchievementPortalDetailBo;
  29. import com.goafanti.portal.bo.AchievementPortalSimilarListBo;
  30. import com.goafanti.portal.bo.DemandPortalDetailBo;
  31. import com.goafanti.portal.bo.DemandPortalSimilarListBo;
  32. @Controller
  33. public class PortalController extends BaseController {
  34. @Resource
  35. private FieldGlossoryService glossoryService;
  36. @Resource
  37. private AchievementService achievementService;
  38. @Resource
  39. private DemandService demandService;
  40. @Resource
  41. private FieldGlossoryService fieldGlossoryService;
  42. @Resource
  43. private DemandInterestService demandInterestService;
  44. private static final String UNIT = "万元";
  45. private static final int MULTIPLE = 20;
  46. private static final String DELIMITER = "/";
  47. private static final String PRICE_NEGOTIABLE = "价格面议";
  48. private static final String UNCERTIFY = "未认证";
  49. @RequestMapping(value = "/index", method = RequestMethod.GET)
  50. public ModelAndView index(HttpServletRequest request, ModelAndView modelview) {
  51. return home(request, modelview);
  52. }
  53. @RequestMapping(value = "/", method = RequestMethod.GET)
  54. public ModelAndView home(HttpServletRequest request, ModelAndView modelview) {
  55. RedirectView rv = new RedirectView();
  56. rv.setUrl(request.getContextPath() + "/portal/index");
  57. rv.setExposeModelAttributes(false);
  58. modelview.setView(rv);
  59. return modelview;
  60. }
  61. /**
  62. * 科技需求详情
  63. */
  64. @RequestMapping(value = "/portal/technologyTrading/demandDetail", method = RequestMethod.GET)
  65. public ModelAndView portalDemandDetail(String id, Integer type) {
  66. ModelAndView mv = new ModelAndView();
  67. DemandPortalDetailBo demand = null;
  68. int countDemandInterest = demandInterestService.countDemandInterest(id);
  69. if(demandInterestService.selectDemandInterestByUidAndDemandId(TokenManager.getUserId(),id) != null) {
  70. mv.addObject("isInterester", 0);
  71. }else{
  72. mv.addObject("isInterester", 1);
  73. };
  74. if (UserType.PERSONAL.getCode().equals(type)) {
  75. demand = demandService.findUserPortalDemandDetail(id);
  76. } else if (UserType.ORGANIZATION.getCode().equals(type)) {
  77. demand = demandService.findOrgPortalDemandDetail(id);
  78. }
  79. if (null != demand) {
  80. if (null != demand.getBudgetCost()) {
  81. demand.setBudgetCostS(demand.getBudgetCost() + UNIT);
  82. } else {
  83. demand.setBudgetCostS(PRICE_NEGOTIABLE);
  84. }
  85. if (StringUtils.isBlank(demand.getEmployerName())) {
  86. if (UserLevel.GENERAL.getCode().equals(demand.getLevel())) {
  87. demand.setEmployerName(UNCERTIFY);
  88. } else {
  89. demand.setEmployerName(" ");
  90. }
  91. }
  92. demand.setCountDemandInterest(countDemandInterest);
  93. Integer industryCategoryA = demand.getIndustryCategoryA();
  94. boolean hasCategoryA = false;
  95. boolean hasCategoryB = false;
  96. if (null != industryCategoryA) {
  97. List<DemandPortalSimilarListBo> similarList = demandService.findByIndustryCategoryA(industryCategoryA,
  98. demand.getId());
  99. if (!similarList.isEmpty()) {
  100. for (DemandPortalSimilarListBo s : similarList) {
  101. hasCategoryA = StringUtils.isNotBlank(s.getIndustryCategoryAS());
  102. hasCategoryB = StringUtils.isNotBlank(s.getIndustryCategoryBS());
  103. s.setIndustryCategory((hasCategoryA ? s.getIndustryCategoryAS() : "")
  104. + (hasCategoryA && hasCategoryB ? DELIMITER : "")
  105. + (hasCategoryB ? s.getIndustryCategoryBS() : ""));
  106. if (null != s.getBudgetCost() && s.getBudgetCost().compareTo(BigDecimal.ZERO) > 0) {
  107. s.setBudgetCostS(s.getBudgetCost() + UNIT);
  108. } else {
  109. s.setBudgetCostS(PRICE_NEGOTIABLE);
  110. }
  111. }
  112. }
  113. mv.addObject("similarList", similarList);
  114. hasCategoryA = StringUtils.isNotBlank(demand.getIndustryCategoryAS());
  115. }
  116. hasCategoryB = StringUtils.isNotBlank(demand.getIndustryCategoryBS());
  117. demand.setIndustryCategory((hasCategoryA ? demand.getIndustryCategoryAS() : "")
  118. + (hasCategoryA && hasCategoryB ? DELIMITER : "")
  119. + (hasCategoryB ? demand.getIndustryCategoryBS() : ""));
  120. demand.setLocation((StringUtils.isBlank(demand.getProvince()) ? "" : demand.getProvince())
  121. + (StringUtils.isBlank(demand.getCity()) ? "" : demand.getCity()));
  122. }
  123. String demandpic = demand.getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
  124. if (null != demandpic) {
  125. boolean hascomma = demandpic.contains(",");
  126. if (hascomma) {
  127. String[] picurl = demandpic.split(",");
  128. demand.setPictureUrl(picurl[0]);
  129. }
  130. }
  131. /*--------------查询精品需求---------------*/
  132. List<DemandListBo> boutiquedemand = demandService.selectDemandList(1);
  133. List<DemandListBo> reboutiquedemand = new ArrayList<DemandListBo>();
  134. if (boutiquedemand.size() >= 4) {
  135. int index = new Random().nextInt(boutiquedemand.size() - 3);
  136. reboutiquedemand.add(boutiquedemand.get(index));
  137. reboutiquedemand.add(boutiquedemand.get(index + 1));
  138. reboutiquedemand.add(boutiquedemand.get(index + 2));
  139. } else {
  140. reboutiquedemand.addAll(boutiquedemand);
  141. }
  142. ;
  143. for (int i = 0; i < reboutiquedemand.size(); i++) {
  144. String pic = reboutiquedemand.get(i).getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
  145. if (null != pic) {
  146. boolean hascomma = pic.contains(",");
  147. if (hascomma) {
  148. String[] picurl = pic.split(",");
  149. reboutiquedemand.get(i).setPictureUrl(picurl[0]);
  150. }
  151. }
  152. }
  153. ;
  154. // 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
  155. boolean isLogin = TokenManager.isLogin();
  156. List<DemandListBo> demandlist = demandService.selectDemandList(0);// 查询所有专利
  157. List<DemandListBo> redemandlist = new ArrayList<DemandListBo>();
  158. if (demandlist.size() >= 5) {
  159. int idx = new Random().nextInt(demandlist.size() - 4);
  160. redemandlist.add(demandlist.get(idx));
  161. redemandlist.add(demandlist.get(idx + 1));
  162. redemandlist.add(demandlist.get(idx + 2));
  163. redemandlist.add(demandlist.get(idx + 3));
  164. } else {
  165. redemandlist.addAll(demandlist);
  166. }
  167. if (isLogin) {
  168. List<DemandListBo> customerlikelist = demandService.selectCsutomerLike();// 猜你喜欢专利
  169. int size;
  170. if (customerlikelist.size() < redemandlist.size()) {
  171. size = customerlikelist.size();
  172. } else {
  173. size = redemandlist.size();
  174. }
  175. for (int i = 0; i < size; i++) {
  176. redemandlist.set(i, customerlikelist.get(i));
  177. }
  178. }
  179. for (int i = 0; i < redemandlist.size(); i++) {
  180. Integer demandType = redemandlist.get(i).getDemandType();
  181. if (null != redemandlist) {
  182. if (demandType == 1) {
  183. redemandlist.get(i).setDemandTypeS("技术购买需求");
  184. } else if (demandType == 2) {
  185. redemandlist.get(i).setDemandTypeS("技术设备类需求");
  186. } else if (demandType == 3) {
  187. redemandlist.get(i).setDemandTypeS("技术方案型需求");
  188. } else if (demandType == 4) {
  189. redemandlist.get(i).setDemandTypeS("技术攻关型需求");
  190. } else if (demandType == 5) {
  191. redemandlist.get(i).setDemandTypeS("技术人才型需求");
  192. }
  193. }
  194. }
  195. ;
  196. for (int i = 0; i < redemandlist.size(); i++) {
  197. String pic = redemandlist.get(i).getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
  198. if (null != pic) {
  199. boolean hascomma = pic.contains(",");
  200. if (hascomma) {
  201. String[] picurl = pic.split(",");
  202. redemandlist.get(i).setPictureUrl(picurl[0]);
  203. }
  204. }
  205. };
  206. mv.setViewName("/portal/technologyTrading/demandDetail");
  207. mv.addObject("demand", demand);
  208. mv.addObject("reboutiquedemand", reboutiquedemand);
  209. mv.addObject("redemandlist", redemandlist);
  210. return mv;
  211. }
  212. /**
  213. * 科技成果详情
  214. */
  215. @RequestMapping(value = "/portal/technologyTrading/achievementDetail", method = RequestMethod.GET)
  216. public ModelAndView portalAchievementDetail(String id, Integer type) {
  217. ModelAndView mv = new ModelAndView();
  218. AchievementPortalDetailBo achievementdetail = null;
  219. if (UserType.PERSONAL.getCode().equals(type)) {
  220. achievementdetail = achievementService.findUserPortalAchievementDetail(id);
  221. } else if (UserType.ORGANIZATION.getCode().equals(type)) {
  222. achievementdetail = achievementService.findOrgPortalAchievementDetail(id);
  223. }
  224. if (null != achievementdetail) {
  225. achievementdetail.setId(id);
  226. achievementdetail.setOwnerType(String.valueOf(type));
  227. Integer category = achievementdetail.getCategory();
  228. if (null != category) {
  229. if (category == 0) {
  230. achievementdetail.setCategoryS("专利");
  231. } else if (category == 1) {
  232. achievementdetail.setCategoryS("软著");
  233. } else if (category == 2) {
  234. achievementdetail.setCategoryS("项目");
  235. } else if (category == 3) {
  236. achievementdetail.setCategoryS("版权");
  237. } else if (category == 4) {
  238. achievementdetail.setCategoryS("工业设计");
  239. } else if (category == 5) {
  240. achievementdetail.setCategoryS("配方");
  241. } else if (category == 6) {
  242. achievementdetail.setCategoryS("非标");
  243. }
  244. }
  245. ;
  246. Integer fieldA = achievementdetail.getFieldA();
  247. String field = "";
  248. boolean a = Boolean.FALSE;
  249. boolean b = Boolean.FALSE;
  250. if (null != fieldA) {
  251. List<AchievementPortalSimilarListBo> similarList = achievementService.findByFieldA(fieldA,
  252. achievementdetail.getId(), type);
  253. if (!similarList.isEmpty()) {
  254. for (AchievementPortalSimilarListBo bo : similarList) {
  255. if (null != bo.getMaturity()) {
  256. bo.setMaturityS(bo.getMaturity() * MULTIPLE + "%");
  257. }
  258. if (null == bo.getBargainingMode()
  259. || AchievementBargainingMode.NEGOTIABLE.getCode().equals(bo.getBargainingMode())) {
  260. bo.setTransferPriceS(PRICE_NEGOTIABLE);
  261. } else {
  262. if (null != bo.getTransferPrice() && bo.getTransferPrice().compareTo(BigDecimal.ZERO) > 0) {
  263. bo.setTransferPriceS(bo.getTransferPrice() + UNIT);
  264. } else {
  265. bo.setTransferPriceS(PRICE_NEGOTIABLE);
  266. }
  267. }
  268. String ulocation = "";
  269. String uprovince = bo.getUprovince();
  270. String ucity = bo.getUcity();
  271. ulocation += (StringUtils.isBlank(uprovince) ? "" : uprovince)
  272. + (StringUtils.isBlank(ucity) ? "" : ucity);
  273. String olocation = "";
  274. String oprovince = bo.getOprovince();
  275. String ocity = bo.getOcity();
  276. olocation += (StringUtils.isBlank(oprovince) ? "" : oprovince)
  277. + (StringUtils.isBlank(ocity) ? "" : ocity);
  278. bo.setLocation(StringUtils.isNotBlank(ulocation) ? ulocation
  279. : (StringUtils.isNotBlank(olocation) ? olocation : ""));
  280. }
  281. }
  282. mv.addObject("similarList", similarList);
  283. if (StringUtils.isNotBlank(achievementdetail.getFieldAS())) {
  284. a = Boolean.TRUE;
  285. }
  286. }
  287. if (StringUtils.isNotBlank(achievementdetail.getFieldBS())) {
  288. b = Boolean.TRUE;
  289. }
  290. field += (a ? achievementdetail.getFieldAS() : "") + (a && b ? DELIMITER : "")
  291. + (b ? achievementdetail.getFieldBS() : "");
  292. achievementdetail.setField(field);
  293. String technicalPictureUrl = achievementdetail.getTechnicalPictureUrl();
  294. if (StringUtils.isNotBlank(technicalPictureUrl)) {
  295. achievementdetail.setPictureList(Arrays.asList(technicalPictureUrl.trim().split(",|,")));
  296. }
  297. Integer transfermode = achievementdetail.getTransferMode();
  298. if (null != transfermode) {
  299. if (AchievementTransferMode.FULLTRANSFER.getCode().equals(transfermode)) {
  300. achievementdetail.setTransferModeS(AchievementTransferMode.FULLTRANSFER.getDesc());
  301. } else if (AchievementTransferMode.PERMISSIONTRANSFER.getCode().equals(transfermode)) {
  302. achievementdetail.setTransferModeS(AchievementTransferMode.PERMISSIONTRANSFER.getDesc());
  303. } else if (AchievementTransferMode.TECHNOLOGYSHARES.getCode().equals(transfermode)) {
  304. achievementdetail.setTransferModeS(AchievementTransferMode.TECHNOLOGYSHARES.getDesc());
  305. } else if (AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getCode().equals(transfermode)) {
  306. achievementdetail.setTransferModeS(AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getDesc());
  307. }
  308. }
  309. Integer maturity = achievementdetail.getMaturity();
  310. if (null != maturity) {
  311. if (AchievementMaturity.RESEARCH.getCode().equals(maturity)) {
  312. achievementdetail.setMaturityS(AchievementMaturity.RESEARCH.getDesc());
  313. } else if (AchievementMaturity.SAMPLE.getCode().equals(maturity)) {
  314. achievementdetail.setMaturityS(AchievementMaturity.SAMPLE.getDesc());
  315. } else if (AchievementMaturity.PRIMARYTEST.getCode().equals(maturity)) {
  316. achievementdetail.setMaturityS(AchievementMaturity.PRIMARYTEST.getDesc());
  317. } else if (AchievementMaturity.INTERMEDIATETEST.getCode().equals(maturity)) {
  318. achievementdetail.setMaturityS(AchievementMaturity.INTERMEDIATETEST.getDesc());
  319. } else if (AchievementMaturity.MASSPRODUCTION.getCode().equals(maturity)) {
  320. achievementdetail.setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc());
  321. }
  322. }
  323. String pic = achievementdetail.getTechnicalPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
  324. if (null != pic) {
  325. boolean hascomma = pic.contains(",");
  326. if (hascomma) {
  327. String[] picurl = pic.split(",");
  328. achievementdetail.setTechnicalPictureUrl(picurl[0]);
  329. }
  330. }
  331. String location = "";
  332. String province = achievementdetail.getProvince();
  333. String city = achievementdetail.getCity();
  334. location += (StringUtils.isBlank(province) ? "" : province) + (StringUtils.isBlank(city) ? "" : city);
  335. if (null == achievementdetail.getBargainingMode()
  336. || AchievementBargainingMode.NEGOTIABLE.equals(achievementdetail.getBargainingMode())) {
  337. achievementdetail.setTransferPriceS(PRICE_NEGOTIABLE);
  338. } else {
  339. if (null != achievementdetail.getTransferPrice()) {
  340. achievementdetail.setTransferPriceS(achievementdetail.getTransferPrice() + UNIT);
  341. } else {
  342. achievementdetail.setTransferPriceS(PRICE_NEGOTIABLE);
  343. }
  344. }
  345. achievementdetail.setLocation(location);
  346. }
  347. // 查询精品成果
  348. List<AchievementListBo> boutiqueachievement = achievementService.getAchievement(1);
  349. List<AchievementListBo> reboutiqueachievement = new ArrayList<AchievementListBo>();
  350. if (boutiqueachievement.size() >= 4) {
  351. int index = new Random().nextInt(boutiqueachievement.size() - 3);
  352. reboutiqueachievement.add(boutiqueachievement.get(index));
  353. reboutiqueachievement.add(boutiqueachievement.get(index + 1));
  354. reboutiqueachievement.add(boutiqueachievement.get(index + 2));
  355. } else {
  356. reboutiqueachievement.addAll(boutiqueachievement);
  357. }
  358. ;
  359. for (int i = 0; i < boutiqueachievement.size(); i++) {
  360. String pic = boutiqueachievement.get(i).getTechnicalpictureurl();// 在存在多张图片的情况下,暂时先取第一张
  361. if (null != pic) {
  362. boolean hascomma = pic.contains(",");
  363. if (hascomma) {
  364. String[] picurl = pic.split(",");
  365. boutiqueachievement.get(i).setTechnicalpictureurl(picurl[0]);
  366. }
  367. }
  368. }
  369. ;
  370. // 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
  371. boolean isLogin = TokenManager.isLogin();
  372. List<AchievementListBo> achievementlist = achievementService.getAchievement(0);// 查询所有专利
  373. List<AchievementListBo> reachievementlist = new ArrayList<AchievementListBo>();
  374. if (achievementlist.size() >= 5) {
  375. int idx = new Random().nextInt(achievementlist.size() - 4);
  376. reachievementlist.add(achievementlist.get(idx));
  377. reachievementlist.add(achievementlist.get(idx + 1));
  378. reachievementlist.add(achievementlist.get(idx + 2));
  379. reachievementlist.add(achievementlist.get(idx + 3));
  380. } else {
  381. reachievementlist.addAll(achievementlist);
  382. }
  383. if (isLogin) {
  384. List<AchievementListBo> customerlikelist = achievementService.getPerhapLike();// 猜你喜欢专利
  385. int size;
  386. if (customerlikelist.size() < reachievementlist.size()) {
  387. size = customerlikelist.size();
  388. } else {
  389. size = reachievementlist.size();
  390. }
  391. for (int i = 0; i < size; i++) {
  392. reachievementlist.set(i, customerlikelist.get(i));
  393. }
  394. }
  395. /*----------------------------------------------------------*/
  396. for (int i = 0; i < reachievementlist.size(); i++) {
  397. Integer fieldA = reachievementlist.get(i).getFieldA();
  398. String field = "";
  399. boolean a = Boolean.FALSE;
  400. if (null != fieldA && null != achievementdetail) {
  401. List<AchievementPortalSimilarListBo> similarList = achievementService.findByFieldA(fieldA,
  402. achievementdetail.getId(), type);
  403. if (!similarList.isEmpty()) {
  404. for (AchievementPortalSimilarListBo bo : similarList) {
  405. if (null != bo.getMaturity()) {
  406. bo.setMaturityS(bo.getMaturity() * MULTIPLE + "%");
  407. }
  408. if (null == bo.getBargainingMode()
  409. || AchievementBargainingMode.NEGOTIABLE.getCode().equals(bo.getBargainingMode())) {
  410. bo.setTransferPriceS(PRICE_NEGOTIABLE);
  411. } else {
  412. if (null != bo.getTransferPrice() && bo.getTransferPrice().compareTo(BigDecimal.ZERO) > 0) {
  413. bo.setTransferPriceS(bo.getTransferPrice() + UNIT);
  414. } else {
  415. bo.setTransferPriceS(PRICE_NEGOTIABLE);
  416. }
  417. }
  418. }
  419. }
  420. mv.addObject("similarList", similarList);
  421. if (StringUtils.isNotBlank(reachievementlist.get(i).getFieldAS())) {
  422. a = Boolean.TRUE;
  423. }
  424. String fieldAs = glossoryService.getName(fieldA);
  425. reachievementlist.get(i).setFieldAS(fieldAs);
  426. }
  427. field += (a ? reachievementlist.get(i).getFieldAS() : "");
  428. reachievementlist.get(i).setField(field);
  429. Integer ownertyp = reachievementlist.get(i).getOwnerType();
  430. if (null != ownertyp) {
  431. if (ownertyp == 0) {
  432. reachievementlist.get(i).setOwnerTypeS("个人所有");
  433. } else if (ownertyp == 1) {
  434. reachievementlist.get(i).setOwnerTypeS("组织所有");
  435. }
  436. }
  437. Integer transfermode = reachievementlist.get(i).getTransferMode();
  438. if (null != transfermode) {
  439. if (AchievementTransferMode.FULLTRANSFER.getCode().equals(transfermode)) {
  440. reachievementlist.get(i).setTransferModeS(AchievementTransferMode.FULLTRANSFER.getDesc());
  441. } else if (AchievementTransferMode.PERMISSIONTRANSFER.getCode().equals(transfermode)) {
  442. reachievementlist.get(i).setTransferModeS(AchievementTransferMode.PERMISSIONTRANSFER.getDesc());
  443. } else if (AchievementTransferMode.TECHNOLOGYSHARES.getCode().equals(transfermode)) {
  444. reachievementlist.get(i).setTransferModeS(AchievementTransferMode.TECHNOLOGYSHARES.getDesc());
  445. } else if (AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getCode().equals(transfermode)) {
  446. reachievementlist.get(i)
  447. .setTransferModeS(AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getDesc());
  448. }
  449. }
  450. Integer maturity = reachievementlist.get(i).getMaturity();
  451. if (null != maturity) {
  452. if (AchievementMaturity.RESEARCH.getCode().equals(maturity)) {
  453. reachievementlist.get(i).setMaturityS(AchievementMaturity.RESEARCH.getDesc());
  454. } else if (AchievementMaturity.SAMPLE.getCode().equals(maturity)) {
  455. reachievementlist.get(i).setMaturityS(AchievementMaturity.SAMPLE.getDesc());
  456. } else if (AchievementMaturity.PRIMARYTEST.getCode().equals(maturity)) {
  457. reachievementlist.get(i).setMaturityS(AchievementMaturity.PRIMARYTEST.getDesc());
  458. } else if (AchievementMaturity.INTERMEDIATETEST.getCode().equals(maturity)) {
  459. reachievementlist.get(i).setMaturityS(AchievementMaturity.INTERMEDIATETEST.getDesc());
  460. } else if (AchievementMaturity.MASSPRODUCTION.getCode().equals(maturity)) {
  461. reachievementlist.get(i).setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc());
  462. }
  463. }
  464. ;
  465. String pic = reachievementlist.get(i).getTechnicalpictureurl();// 在存在多张图片的情况下,暂时先取第一张
  466. if (null != pic) {
  467. boolean hascomma = pic.contains(",");
  468. if (hascomma) {
  469. String[] picurl = pic.split(",");
  470. reachievementlist.get(i).setTechnicalpictureurl(picurl[0]);
  471. }
  472. }
  473. }
  474. mv.setViewName("/portal/technologyTrading/achievementDetail");
  475. mv.addObject("achievementdetail", achievementdetail);
  476. mv.addObject("reboutiqueachievement", reboutiqueachievement);
  477. mv.addObject("reachievementlist", reachievementlist);
  478. return mv;
  479. }
  480. /**
  481. * 订单确认页(成果专利)
  482. */
  483. @RequestMapping(value = "/portal/technologyTrading/achievementOrder", method = RequestMethod.GET)
  484. public ModelAndView portalAchievementOrder(String id, Integer type) {
  485. ModelAndView mv = new ModelAndView();
  486. AchievementPortalDetailBo achievementdetail = null;
  487. achievementdetail = achievementService.findUserPortalAchievementDetail(id);
  488. if (null != achievementdetail) {
  489. achievementdetail.setId(id);
  490. achievementdetail.setOwnerType(String.valueOf(type));
  491. Integer category = achievementdetail.getCategory();
  492. if (null != category) {
  493. if (category == 0) {
  494. achievementdetail.setCategoryS("专利");
  495. } else if (category == 1) {
  496. achievementdetail.setCategoryS("软著");
  497. } else if (category == 2) {
  498. achievementdetail.setCategoryS("项目");
  499. } else if (category == 3) {
  500. achievementdetail.setCategoryS("版权");
  501. } else if (category == 4) {
  502. achievementdetail.setCategoryS("工业设计");
  503. } else if (category == 5) {
  504. achievementdetail.setCategoryS("配方");
  505. } else if (category == 6) {
  506. achievementdetail.setCategoryS("非标");
  507. }
  508. }
  509. ;
  510. Integer transfermode = achievementdetail.getTransferMode();
  511. if (null != transfermode) {
  512. if (AchievementTransferMode.FULLTRANSFER.getCode().equals(transfermode)) {
  513. achievementdetail.setTransferModeS(AchievementTransferMode.FULLTRANSFER.getDesc());
  514. } else if (AchievementTransferMode.PERMISSIONTRANSFER.getCode().equals(transfermode)) {
  515. achievementdetail.setTransferModeS(AchievementTransferMode.PERMISSIONTRANSFER.getDesc());
  516. } else if (AchievementTransferMode.TECHNOLOGYSHARES.getCode().equals(transfermode)) {
  517. achievementdetail.setTransferModeS(AchievementTransferMode.TECHNOLOGYSHARES.getDesc());
  518. } else if (AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getCode().equals(transfermode)) {
  519. achievementdetail.setTransferModeS(AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getDesc());
  520. }
  521. }
  522. }
  523. // 查询精品成果
  524. List<AchievementListBo> boutiqueachievement = achievementService.getAchievement(1);
  525. List<AchievementListBo> reboutiqueachievement = new ArrayList<AchievementListBo>();
  526. if (boutiqueachievement.size() >= 4) {
  527. int index = new Random().nextInt(boutiqueachievement.size() - 3);
  528. reboutiqueachievement.add(boutiqueachievement.get(index));
  529. reboutiqueachievement.add(boutiqueachievement.get(index + 1));
  530. reboutiqueachievement.add(boutiqueachievement.get(index + 2));
  531. } else {
  532. reboutiqueachievement.addAll(boutiqueachievement);
  533. }
  534. ;
  535. for (int i = 0; i < boutiqueachievement.size(); i++) {
  536. String pic = boutiqueachievement.get(i).getTechnicalpictureurl();// 在存在多张图片的情况下,暂时先取第一张
  537. if (null != pic) {
  538. boolean hascomma = pic.contains(",");
  539. if (hascomma) {
  540. String[] picurl = pic.split(",");
  541. boutiqueachievement.get(i).setTechnicalpictureurl(picurl[0]);
  542. }
  543. }
  544. }
  545. ;
  546. // 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
  547. boolean isLogin = TokenManager.isLogin();
  548. List<AchievementListBo> achievementlist = achievementService.getAchievement(0);// 查询所有专利
  549. List<AchievementListBo> reachievementlist = new ArrayList<AchievementListBo>();
  550. if (achievementlist.size() >= 5) {
  551. int idx = new Random().nextInt(achievementlist.size() - 4);
  552. reachievementlist.add(achievementlist.get(idx));
  553. reachievementlist.add(achievementlist.get(idx + 1));
  554. reachievementlist.add(achievementlist.get(idx + 2));
  555. reachievementlist.add(achievementlist.get(idx + 3));
  556. } else {
  557. reachievementlist.addAll(achievementlist);
  558. }
  559. if (isLogin) {
  560. List<AchievementListBo> customerlikelist = achievementService.getPerhapLike();// 猜你喜欢专利
  561. int size;
  562. if (customerlikelist.size() < reachievementlist.size()) {
  563. size = customerlikelist.size();
  564. } else {
  565. size = reachievementlist.size();
  566. }
  567. for (int i = 0; i < size; i++) {
  568. reachievementlist.set(i, customerlikelist.get(i));
  569. }
  570. }
  571. /*----------------------------------------------------------*/
  572. for (int i = 0; i < reachievementlist.size(); i++) {
  573. Integer fieldA = reachievementlist.get(i).getFieldA();
  574. String field = "";
  575. boolean a = Boolean.FALSE;
  576. if (null != fieldA && null != achievementdetail) {
  577. List<AchievementPortalSimilarListBo> similarList = achievementService.findByFieldA(fieldA,
  578. achievementdetail.getId(), type);
  579. if (!similarList.isEmpty()) {
  580. for (AchievementPortalSimilarListBo bo : similarList) {
  581. if (null != bo.getMaturity()) {
  582. bo.setMaturityS(bo.getMaturity() * MULTIPLE + "%");
  583. }
  584. if (null == bo.getBargainingMode()
  585. || AchievementBargainingMode.NEGOTIABLE.getCode().equals(bo.getBargainingMode())) {
  586. bo.setTransferPriceS(PRICE_NEGOTIABLE);
  587. } else {
  588. if (null != bo.getTransferPrice() && bo.getTransferPrice().compareTo(BigDecimal.ZERO) > 0) {
  589. bo.setTransferPriceS(bo.getTransferPrice() + UNIT);
  590. } else {
  591. bo.setTransferPriceS(PRICE_NEGOTIABLE);
  592. }
  593. }
  594. }
  595. }
  596. mv.addObject("similarList", similarList);
  597. if (StringUtils.isNotBlank(reachievementlist.get(i).getFieldAS())) {
  598. a = Boolean.TRUE;
  599. }
  600. String fieldAs = glossoryService.getName(fieldA);
  601. reachievementlist.get(i).setFieldAS(fieldAs);
  602. }
  603. field += (a ? reachievementlist.get(i).getFieldAS() : "");
  604. reachievementlist.get(i).setField(field);
  605. Integer ownertyp = reachievementlist.get(i).getOwnerType();
  606. if (null != ownertyp) {
  607. if (ownertyp == 0) {
  608. reachievementlist.get(i).setOwnerTypeS("个人所有");
  609. } else if (ownertyp == 1) {
  610. reachievementlist.get(i).setOwnerTypeS("组织所有");
  611. }
  612. }
  613. Integer transfermode = reachievementlist.get(i).getTransferMode();
  614. if (null != transfermode) {
  615. if (AchievementTransferMode.FULLTRANSFER.getCode().equals(transfermode)) {
  616. reachievementlist.get(i).setTransferModeS(AchievementTransferMode.FULLTRANSFER.getDesc());
  617. } else if (AchievementTransferMode.PERMISSIONTRANSFER.getCode().equals(transfermode)) {
  618. reachievementlist.get(i).setTransferModeS(AchievementTransferMode.PERMISSIONTRANSFER.getDesc());
  619. } else if (AchievementTransferMode.TECHNOLOGYSHARES.getCode().equals(transfermode)) {
  620. reachievementlist.get(i).setTransferModeS(AchievementTransferMode.TECHNOLOGYSHARES.getDesc());
  621. } else if (AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getCode().equals(transfermode)) {
  622. reachievementlist.get(i)
  623. .setTransferModeS(AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getDesc());
  624. }
  625. }
  626. Integer maturity = reachievementlist.get(i).getMaturity();
  627. if (null != maturity) {
  628. if (AchievementMaturity.RESEARCH.getCode().equals(maturity)) {
  629. reachievementlist.get(i).setMaturityS(AchievementMaturity.RESEARCH.getDesc());
  630. } else if (AchievementMaturity.SAMPLE.getCode().equals(maturity)) {
  631. reachievementlist.get(i).setMaturityS(AchievementMaturity.SAMPLE.getDesc());
  632. } else if (AchievementMaturity.PRIMARYTEST.getCode().equals(maturity)) {
  633. reachievementlist.get(i).setMaturityS(AchievementMaturity.PRIMARYTEST.getDesc());
  634. } else if (AchievementMaturity.INTERMEDIATETEST.getCode().equals(maturity)) {
  635. reachievementlist.get(i).setMaturityS(AchievementMaturity.INTERMEDIATETEST.getDesc());
  636. } else if (AchievementMaturity.MASSPRODUCTION.getCode().equals(maturity)) {
  637. reachievementlist.get(i).setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc());
  638. }
  639. };
  640. String pic = reachievementlist.get(i).getTechnicalpictureurl();// 在存在多张图片的情况下,暂时先取第一张
  641. if (null != pic) {
  642. boolean hascomma = pic.contains(",");
  643. if (hascomma) {
  644. String[] picurl = pic.split(",");
  645. reachievementlist.get(i).setTechnicalpictureurl(picurl[0]);
  646. }
  647. }
  648. }
  649. mv.setViewName("/portal/technologyTrading/achievementOrder");
  650. mv.addObject("achievementdetail", achievementdetail);
  651. mv.addObject("reachievementlist", reachievementlist);
  652. return mv;
  653. }
  654. /**
  655. * 下单页面(需求)
  656. */
  657. @RequestMapping(value = "/portal/technologyTrading/demandOrder", method = RequestMethod.GET)
  658. public ModelAndView portalDemandOrder(String id, Integer type) {
  659. ModelAndView mv = new ModelAndView();
  660. DemandPortalDetailBo demand = null;
  661. demand = demandService.findUserPortalDemandDetail(id);
  662. if (null != demand) {
  663. if (null != demand.getBudgetCost()) {
  664. demand.setBudgetCostS(demand.getBudgetCost() + UNIT);
  665. } else {
  666. demand.setBudgetCostS(PRICE_NEGOTIABLE);
  667. }
  668. if (StringUtils.isBlank(demand.getEmployerName())) {
  669. if (UserLevel.GENERAL.getCode().equals(demand.getLevel())) {
  670. demand.setEmployerName(UNCERTIFY);
  671. } else {
  672. demand.setEmployerName(" ");
  673. }
  674. }
  675. Integer industryCategoryA = demand.getIndustryCategoryA();
  676. boolean hasCategoryA = false;
  677. boolean hasCategoryB = false;
  678. if (null != industryCategoryA) {
  679. List<DemandPortalSimilarListBo> similarList = demandService.findByIndustryCategoryA(industryCategoryA,
  680. demand.getId());
  681. if (!similarList.isEmpty()) {
  682. for (DemandPortalSimilarListBo s : similarList) {
  683. hasCategoryA = StringUtils.isNotBlank(s.getIndustryCategoryAS());
  684. hasCategoryB = StringUtils.isNotBlank(s.getIndustryCategoryBS());
  685. s.setIndustryCategory((hasCategoryA ? s.getIndustryCategoryAS() : "")
  686. + (hasCategoryA && hasCategoryB ? DELIMITER : "")
  687. + (hasCategoryB ? s.getIndustryCategoryBS() : ""));
  688. if (null != s.getBudgetCost() && s.getBudgetCost().compareTo(BigDecimal.ZERO) > 0) {
  689. s.setBudgetCostS(s.getBudgetCost() + UNIT);
  690. } else {
  691. s.setBudgetCostS(PRICE_NEGOTIABLE);
  692. }
  693. }
  694. }
  695. mv.addObject("similarList", similarList);
  696. hasCategoryA = StringUtils.isNotBlank(demand.getIndustryCategoryAS());
  697. }
  698. hasCategoryB = StringUtils.isNotBlank(demand.getIndustryCategoryBS());
  699. demand.setIndustryCategory((hasCategoryA ? demand.getIndustryCategoryAS() : "")
  700. + (hasCategoryA && hasCategoryB ? DELIMITER : "")
  701. + (hasCategoryB ? demand.getIndustryCategoryBS() : ""));
  702. demand.setLocation((StringUtils.isBlank(demand.getProvince()) ? "" : demand.getProvince())
  703. + (StringUtils.isBlank(demand.getCity()) ? "" : demand.getCity()));
  704. }
  705. String demandpic = demand.getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
  706. if (null != demandpic) {
  707. boolean hascomma = demandpic.contains(",");
  708. if (hascomma) {
  709. String[] picurl = demandpic.split(",");
  710. demand.setPictureUrl(picurl[0]);
  711. }
  712. }
  713. /*--------------查询精品需求---------------*/
  714. List<DemandListBo> boutiquedemand = demandService.selectDemandList(1);
  715. List<DemandListBo> reboutiquedemand = new ArrayList<DemandListBo>();
  716. if (boutiquedemand.size() >= 4) {
  717. int index = new Random().nextInt(boutiquedemand.size() - 3);
  718. reboutiquedemand.add(boutiquedemand.get(index));
  719. reboutiquedemand.add(boutiquedemand.get(index + 1));
  720. reboutiquedemand.add(boutiquedemand.get(index + 2));
  721. } else {
  722. reboutiquedemand.addAll(boutiquedemand);
  723. }
  724. ;
  725. for (int i = 0; i < reboutiquedemand.size(); i++) {
  726. String pic = reboutiquedemand.get(i).getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
  727. if (null != pic) {
  728. boolean hascomma = pic.contains(",");
  729. if (hascomma) {
  730. String[] picurl = pic.split(",");
  731. reboutiquedemand.get(i).setPictureUrl(picurl[0]);
  732. }
  733. }
  734. }
  735. ;
  736. // 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
  737. boolean isLogin = TokenManager.isLogin();
  738. List<DemandListBo> demandlist = demandService.selectDemandList(0);// 查询所有专利
  739. List<DemandListBo> redemandlist = new ArrayList<DemandListBo>();
  740. if (demandlist.size() >= 5) {
  741. int idx = new Random().nextInt(demandlist.size() - 4);
  742. redemandlist.add(demandlist.get(idx));
  743. redemandlist.add(demandlist.get(idx + 1));
  744. redemandlist.add(demandlist.get(idx + 2));
  745. redemandlist.add(demandlist.get(idx + 3));
  746. } else {
  747. redemandlist.addAll(demandlist);
  748. }
  749. if (isLogin) {
  750. List<DemandListBo> customerlikelist = demandService.selectCsutomerLike();// 猜你喜欢专利
  751. int size;
  752. if (customerlikelist.size() < redemandlist.size()) {
  753. size = customerlikelist.size();
  754. } else {
  755. size = redemandlist.size();
  756. }
  757. for (int i = 0; i < size; i++) {
  758. redemandlist.set(i, customerlikelist.get(i));
  759. }
  760. }
  761. for (int i = 0; i < redemandlist.size(); i++) {
  762. Integer demandType = redemandlist.get(i).getDemandType();
  763. if (null != redemandlist) {
  764. if (demandType == 1) {
  765. redemandlist.get(i).setDemandTypeS("技术购买需求");
  766. } else if (demandType == 2) {
  767. redemandlist.get(i).setDemandTypeS("技术设备类需求");
  768. } else if (demandType == 3) {
  769. redemandlist.get(i).setDemandTypeS("技术方案型需求");
  770. } else if (demandType == 4) {
  771. redemandlist.get(i).setDemandTypeS("技术攻关型需求");
  772. } else if (demandType == 5) {
  773. redemandlist.get(i).setDemandTypeS("技术人才型需求");
  774. }
  775. }
  776. }
  777. ;
  778. for (int i = 0; i < redemandlist.size(); i++) {
  779. String pic = redemandlist.get(i).getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
  780. if (null != pic) {
  781. boolean hascomma = pic.contains(",");
  782. if (hascomma) {
  783. String[] picurl = pic.split(",");
  784. redemandlist.get(i).setPictureUrl(picurl[0]);
  785. }
  786. }
  787. };
  788. mv.setViewName("/portal/technologyTrading/demandOrder");
  789. mv.addObject("demand", demand);
  790. mv.addObject("reboutiquedemand", reboutiquedemand);
  791. mv.addObject("redemandlist", redemandlist);
  792. return mv;
  793. }
  794. }