PortalSearchController.java 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. package com.goafanti.portal.controller;
  2. import java.math.BigDecimal;
  3. import java.util.List;
  4. import javax.annotation.Resource;
  5. import javax.servlet.http.HttpServletRequest;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestMethod;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import com.goafanti.achievement.service.AchievementService;
  11. import com.goafanti.common.bo.Result;
  12. import com.goafanti.common.constant.ErrorConstants;
  13. import com.goafanti.common.controller.BaseController;
  14. import com.goafanti.common.enums.AchievementMaturity;
  15. import com.goafanti.common.enums.DemandPortalSearchSignType;
  16. import com.goafanti.common.enums.UserLevel;
  17. import com.goafanti.common.enums.UserType;
  18. import com.goafanti.core.mybatis.page.Pagination;
  19. import com.goafanti.demand.service.DemandService;
  20. import com.goafanti.portal.bo.AchievementSearchListBo;
  21. import com.goafanti.portal.bo.BoutiqueListBo;
  22. import com.goafanti.user.service.OrganizationIdentityService;
  23. import com.goafanti.user.service.UserIdentityService;
  24. @RestController
  25. @RequestMapping(value = "/portal/search")
  26. public class PortalSearchController extends BaseController {
  27. @Resource
  28. private AchievementService achievementService;
  29. @Resource
  30. private DemandService demandService;
  31. @Resource
  32. private UserIdentityService userIdentityService;
  33. @Resource
  34. private OrganizationIdentityService organizationIdentityService;
  35. /**
  36. * 项目搜索
  37. */
  38. @SuppressWarnings("unchecked")
  39. @RequestMapping(value = "/achievementList", method = RequestMethod.GET)
  40. public Result achievementSearchList(HttpServletRequest req, String keyword,Integer dataCategory,Integer category,
  41. Integer fieldA, String pageNo, String pageSize,String transferMode, Integer dateSort,String upperPrice,String lowerPrice,
  42. Integer internationalFlag) {
  43. Result res = new Result();
  44. Integer pNo = 1;
  45. Integer pSize = 20;
  46. String url=req.getServerName();
  47. url=url.substring(url.indexOf(".")+1, url.length());
  48. if(null != dateSort && dateSort != 0 && dateSort != 1){
  49. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "时间排序"));
  50. }
  51. if (null==dateSort) {
  52. dateSort=0;
  53. }
  54. if (StringUtils.isNumeric(pageSize)) {
  55. pSize = Integer.parseInt(pageSize);
  56. }
  57. if (StringUtils.isNumeric(pageNo)) {
  58. pNo = Integer.parseInt(pageNo);
  59. }
  60. if (null!=upperPrice&&null!=lowerPrice) {
  61. try{
  62. new BigDecimal(upperPrice);
  63. new BigDecimal(lowerPrice);
  64. }catch (Exception e) {
  65. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "金额"));
  66. return res;
  67. }
  68. }
  69. Pagination<AchievementSearchListBo> achievementSearchList = achievementService.listAchievementSearchList( url,
  70. keyword, dataCategory,category,fieldA, transferMode, pNo, pSize,dateSort,upperPrice,lowerPrice,internationalFlag);
  71. List<AchievementSearchListBo> list = (List<AchievementSearchListBo>) achievementSearchList.getList();
  72. for (int i = 0; i < list.size(); i++) {
  73. Integer maturity = list.get(i).getMaturity();
  74. if (null != maturity) {
  75. if (AchievementMaturity.RESEARCH.getCode().equals(maturity)) {
  76. list.get(i).setMaturityS(AchievementMaturity.RESEARCH.getDesc());
  77. } else if (AchievementMaturity.SAMPLE.getCode().equals(maturity)) {
  78. list.get(i).setMaturityS(AchievementMaturity.SAMPLE.getDesc());
  79. } else if (AchievementMaturity.PRIMARYTEST.getCode().equals(maturity)) {
  80. list.get(i).setMaturityS(AchievementMaturity.PRIMARYTEST.getDesc());
  81. } else if (AchievementMaturity.INTERMEDIATETEST.getCode().equals(maturity)) {
  82. list.get(i).setMaturityS(AchievementMaturity.INTERMEDIATETEST.getDesc());
  83. } else if (AchievementMaturity.MASSPRODUCTION.getCode().equals(maturity)) {
  84. list.get(i).setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc());
  85. }
  86. }
  87. String pic=list.get(i).getTechnicalPictureUrl();//在存在多张图片的情况下,暂时先取第一张
  88. if(null!= pic) {
  89. boolean hascomma = pic.contains(",");
  90. if(hascomma) {
  91. String[] picurl = pic.split(",");
  92. list.get(i).setTechnicalPictureUrl(picurl[0]);
  93. }
  94. }
  95. }
  96. achievementSearchList.setList(list);
  97. res.setData(achievementSearchList);
  98. return res;
  99. }
  100. /**
  101. * 科技需求搜索
  102. */
  103. @RequestMapping(value = "/demandList", method = RequestMethod.GET)
  104. public Result demandSearchList(HttpServletRequest req,Integer sign, String keyword, Integer industryCategoryA, Integer industryCategoryB,
  105. Integer demandType, BigDecimal budgetCostLower, BigDecimal budgetCostUpper, String pageNo,
  106. String pageSize,Integer dateSort) {
  107. Result res = new Result();
  108. String url=req.getServerName();
  109. url=url.substring(url.indexOf(".")+1, url.length());
  110. Integer pNo = 1;
  111. Integer pSize = 10;
  112. if (null == sign) {
  113. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "查询标记"));
  114. return res;
  115. }
  116. if (!DemandPortalSearchSignType.ALL.getCode().equals(sign)
  117. && !DemandPortalSearchSignType.NEGOATION.getCode().equals(sign)) {
  118. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "查询标记"));
  119. return res;
  120. }
  121. if (null==dateSort) {
  122. dateSort=0;
  123. }
  124. if (StringUtils.isNumeric(pageSize)) {
  125. pSize = Integer.parseInt(pageSize);
  126. }
  127. if (StringUtils.isNumeric(pageNo)) {
  128. pNo = Integer.parseInt(pageNo);
  129. }
  130. res.setData(demandService.listDemandSearchList(url,sign, keyword, industryCategoryA, industryCategoryB, demandType,
  131. budgetCostLower, budgetCostUpper, pNo, pSize,dateSort));
  132. return res;
  133. }
  134. /**
  135. * 用户搜索
  136. */
  137. @RequestMapping(value = "/subscriberList", method = RequestMethod.GET)
  138. public Result subscriberSearchList(HttpServletRequest req,String name, Integer level, Integer type, String field, Integer province,
  139. Integer city, Integer area,Integer international, String pageNo, String pageSize) {
  140. Result res = new Result();
  141. String url=req.getServerName();
  142. url=url.substring(url.indexOf(".")+1, url.length());
  143. if (null == type) {
  144. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "用户类型"));
  145. return res;
  146. }
  147. if (!UserType.PERSONAL.getCode().equals(type) && !UserType.ORGANIZATION.getCode().equals(type)) {
  148. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户类型"));
  149. return res;
  150. }
  151. if (null != level && !UserLevel.GENERAL.getCode().equals(level)
  152. && !UserLevel.CERTIFIED.getCode().equals(level)) {
  153. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户认证标记"));
  154. return res;
  155. }
  156. Integer pNo = 1;
  157. Integer pSize = 12;
  158. if (StringUtils.isNumeric(pageSize)) {
  159. pSize = Integer.parseInt(pageSize);
  160. }
  161. if (StringUtils.isNumeric(pageNo)) {
  162. pNo = Integer.parseInt(pageNo);
  163. }
  164. if (UserType.PERSONAL.getCode().equals(type)) {
  165. res.setData(userIdentityService.listSubscriber(url,name, level, field, province, city, area, international, pNo, pSize));
  166. } else {
  167. res.setData(organizationIdentityService.listSubscriber(url,name, level, field, province, city, area, pNo, pSize));
  168. }
  169. return res;
  170. }
  171. /**
  172. *
  173. * @param boutiqueType 0 - 专利 , 1 - 技术, 2 - 成果
  174. * @param industryCatalog 行业类别
  175. * @param pageNo
  176. * @param pageSize
  177. * @return
  178. */
  179. @RequestMapping(value="/boutiqueSearchList",method = RequestMethod.POST)
  180. public Result boutiqueSearchList(Integer boutiqueType, Integer industryCatalog,String pageNo, String pageSize){
  181. Result res = new Result();
  182. if(null == boutiqueType){
  183. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "精品类型"));
  184. }
  185. if(null == industryCatalog){
  186. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","行业类别"));
  187. }
  188. Integer pNo = 1;
  189. Integer pSize = 9;
  190. if (StringUtils.isNumeric(pageSize)) {
  191. pSize = Integer.parseInt(pageSize);
  192. }
  193. if (StringUtils.isNumeric(pageNo)) {
  194. pNo = Integer.parseInt(pageNo);
  195. }
  196. Pagination<BoutiqueListBo> boutiqueSearchList = null ;
  197. if(boutiqueType == 0){
  198. boutiqueSearchList=achievementService.boutiqueSearchList(null, 0, industryCatalog, pNo, pSize);
  199. }else if(boutiqueType == 1){
  200. boutiqueSearchList=achievementService.boutiqueSearchList(1, null, industryCatalog, pNo, pSize);
  201. }else if(boutiqueType == 2){
  202. boutiqueSearchList=demandService.boutiqueSearchList(industryCatalog, pNo, pSize);
  203. }
  204. @SuppressWarnings("unchecked")
  205. List<BoutiqueListBo> BoutiqueListBo = (List<BoutiqueListBo>) boutiqueSearchList.getList();
  206. for (int i = 0; i < BoutiqueListBo.size(); i++) {
  207. String pic=BoutiqueListBo.get(i).getPictureUrl();//在存在多张图片的情况下,暂时先取第一张
  208. if(null!= pic) {
  209. boolean hascomma = pic.contains(",");
  210. if(hascomma) {
  211. String[] picurl = pic.split(",");
  212. BoutiqueListBo.get(i).setPictureUrl(picurl[0]);
  213. }
  214. }
  215. };
  216. boutiqueSearchList.setList(BoutiqueListBo);
  217. res.setData(boutiqueSearchList);
  218. return res;
  219. }
  220. }