Просмотр исходного кода

Merge remote-tracking branch 'origin/dev' into test

wanghui лет назад: 8
Родитель
Сommit
c6211cf704

+ 1 - 1
src/main/java/com/goafanti/achievement/bo/InputAchievementOrder.java

@@ -7,7 +7,7 @@ import javax.validation.constraints.Size;
 import com.goafanti.common.constant.ErrorConstants;
 
 public class InputAchievementOrder {
-	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	@Size(min = 0, max = 37, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String	id;
 
 	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")

+ 409 - 59
src/main/java/com/goafanti/common/controller/PortalController.java

@@ -35,23 +35,23 @@ import com.goafanti.portal.bo.DemandPortalSimilarListBo;
 @Controller
 public class PortalController extends BaseController {
 	@Resource
-	private  FieldGlossoryService glossoryService;
+	private FieldGlossoryService glossoryService;
 	@Resource
-	private AchievementService		achievementService;
+	private AchievementService achievementService;
 	@Resource
-	private DemandService			demandService;
+	private DemandService demandService;
 	@Resource
-	private FieldGlossoryService	fieldGlossoryService;
+	private FieldGlossoryService fieldGlossoryService;
 
-	private static final String		UNIT				= "万元";
+	private static final String UNIT = "万元";
 
-	private static final int		MULTIPLE			= 20;
+	private static final int MULTIPLE = 20;
 
-	private static final String		DELIMITER			= "/";
+	private static final String DELIMITER = "/";
 
-	private static final String		PRICE_NEGOTIABLE	= "价格面议";
+	private static final String PRICE_NEGOTIABLE = "价格面议";
 
-	private static final String		UNCERTIFY			= "未认证";
+	private static final String UNCERTIFY = "未认证";
 
 	@RequestMapping(value = "/index", method = RequestMethod.GET)
 	public ModelAndView index(HttpServletRequest request, ModelAndView modelview) {
@@ -124,17 +124,15 @@ public class PortalController extends BaseController {
 			demand.setLocation((StringUtils.isBlank(demand.getProvince()) ? "" : demand.getProvince())
 					+ (StringUtils.isBlank(demand.getCity()) ? "" : demand.getCity()));
 		}
-		
-		
-			String demandpic=demand.getPictureUrl();//在存在多张图片的情况下,暂时先取第一张
-			if(null!= demandpic) {
-				boolean hascomma = demandpic.contains(",");
-				if(hascomma) {
-					String[] picurl = demandpic.split(",");
-					demand.setPictureUrl(picurl[0]);
-				}
+
+		String demandpic = demand.getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
+		if (null != demandpic) {
+			boolean hascomma = demandpic.contains(",");
+			if (hascomma) {
+				String[] picurl = demandpic.split(",");
+				demand.setPictureUrl(picurl[0]);
 			}
-		
+		}
 
 		/*--------------查询精品需求---------------*/
 		List<DemandListBo> boutiquedemand = demandService.selectDemandList(1);
@@ -146,19 +144,20 @@ public class PortalController extends BaseController {
 			reboutiquedemand.add(boutiquedemand.get(index + 2));
 		} else {
 			reboutiquedemand.addAll(boutiquedemand);
-		};
-		
+		}
+		;
+
 		for (int i = 0; i < reboutiquedemand.size(); i++) {
-			String pic=reboutiquedemand.get(i).getPictureUrl();//在存在多张图片的情况下,暂时先取第一张
-			if(null!= pic) {
+			String pic = reboutiquedemand.get(i).getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
+			if (null != pic) {
 				boolean hascomma = pic.contains(",");
-				if(hascomma) {
+				if (hascomma) {
 					String[] picurl = pic.split(",");
 					reboutiquedemand.get(i).setPictureUrl(picurl[0]);
 				}
 			}
-		};
-		
+		}
+		;
 
 		// 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
 		boolean isLogin = TokenManager.isLogin();
@@ -166,7 +165,7 @@ public class PortalController extends BaseController {
 		List<DemandListBo> redemandlist = new ArrayList<DemandListBo>();
 
 		if (demandlist.size() >= 5) {
-			int idx =  new Random().nextInt(demandlist.size() - 4);
+			int idx = new Random().nextInt(demandlist.size() - 4);
 			redemandlist.add(demandlist.get(idx));
 			redemandlist.add(demandlist.get(idx + 1));
 			redemandlist.add(demandlist.get(idx + 2));
@@ -204,18 +203,20 @@ public class PortalController extends BaseController {
 					redemandlist.get(i).setDemandTypeS("技术人才型需求");
 				}
 			}
-		};
-		
+		}
+		;
+
 		for (int i = 0; i < redemandlist.size(); i++) {
-			String pic=redemandlist.get(i).getPictureUrl();//在存在多张图片的情况下,暂时先取第一张
-			if(null!= pic) {
+			String pic = redemandlist.get(i).getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
+			if (null != pic) {
 				boolean hascomma = pic.contains(",");
-				if(hascomma) {
+				if (hascomma) {
 					String[] picurl = pic.split(",");
 					redemandlist.get(i).setPictureUrl(picurl[0]);
 				}
 			}
-		};
+		}
+		;
 
 		mv.setViewName("/portal/technologyTrading/demandDetail");
 		mv.addObject("demand", demand);
@@ -238,7 +239,9 @@ public class PortalController extends BaseController {
 			achievementdetail = achievementService.findOrgPortalAchievementDetail(id);
 		}
 		if (null != achievementdetail) {
-
+			achievementdetail.setId(id);
+			achievementdetail.setOwnerType(String.valueOf(type));
+			System.out.println(achievementdetail.getOwnerType());
 			Integer category = achievementdetail.getCategory();
 			if (null != category) {
 				if (category == 0) {
@@ -341,17 +344,16 @@ public class PortalController extends BaseController {
 					achievementdetail.setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc());
 				}
 			}
-			
-			String pic=achievementdetail.getTechnicalPictureUrl();//在存在多张图片的情况下,暂时先取第一张
-			if(null!= pic) {
+
+			String pic = achievementdetail.getTechnicalPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
+			if (null != pic) {
 				boolean hascomma = pic.contains(",");
-				if(hascomma) {
+				if (hascomma) {
 					String[] picurl = pic.split(",");
 					achievementdetail.setTechnicalPictureUrl(picurl[0]);
 				}
 			}
-			
-			
+
 			String location = "";
 			String province = achievementdetail.getProvince();
 			String city = achievementdetail.getCity();
@@ -367,7 +369,7 @@ public class PortalController extends BaseController {
 					achievementdetail.setTransferPriceS(PRICE_NEGOTIABLE);
 				}
 			}
-			
+
 			achievementdetail.setLocation(location);
 
 		}
@@ -376,26 +378,26 @@ public class PortalController extends BaseController {
 		List<AchievementListBo> boutiqueachievement = achievementService.getAchievement(1);
 		List<AchievementListBo> reboutiqueachievement = new ArrayList<AchievementListBo>();
 		if (boutiqueachievement.size() >= 4) {
-			int index =  new Random().nextInt(boutiqueachievement.size() - 3);
+			int index = new Random().nextInt(boutiqueachievement.size() - 3);
 			reboutiqueachievement.add(boutiqueachievement.get(index));
 			reboutiqueachievement.add(boutiqueachievement.get(index + 1));
 			reboutiqueachievement.add(boutiqueachievement.get(index + 2));
 		} else {
 			reboutiqueachievement.addAll(boutiqueachievement);
-		};
-		
+		}
+		;
+
 		for (int i = 0; i < boutiqueachievement.size(); i++) {
-			String pic=boutiqueachievement.get(i).getTechnicalpictureurl();//在存在多张图片的情况下,暂时先取第一张
-			if(null!= pic) {
+			String pic = boutiqueachievement.get(i).getTechnicalpictureurl();// 在存在多张图片的情况下,暂时先取第一张
+			if (null != pic) {
 				boolean hascomma = pic.contains(",");
-				if(hascomma) {
+				if (hascomma) {
 					String[] picurl = pic.split(",");
 					boutiqueachievement.get(i).setTechnicalpictureurl(picurl[0]);
 				}
 			}
-		};
-		
-		
+		}
+		;
 
 		// 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
 		boolean isLogin = TokenManager.isLogin();
@@ -403,7 +405,7 @@ public class PortalController extends BaseController {
 		List<AchievementListBo> reachievementlist = new ArrayList<AchievementListBo>();
 
 		if (achievementlist.size() >= 5) {
-			int idx =  new Random().nextInt(achievementlist.size() - 4);
+			int idx = new Random().nextInt(achievementlist.size() - 4);
 			reachievementlist.add(achievementlist.get(idx));
 			reachievementlist.add(achievementlist.get(idx + 1));
 			reachievementlist.add(achievementlist.get(idx + 2));
@@ -432,7 +434,7 @@ public class PortalController extends BaseController {
 			Integer fieldA = reachievementlist.get(i).getFieldA();
 			String field = "";
 			boolean a = Boolean.FALSE;
-			if (null != fieldA && null !=achievementdetail ) {
+			if (null != fieldA && null != achievementdetail) {
 				List<AchievementPortalSimilarListBo> similarList = achievementService.findByFieldA(fieldA,
 						achievementdetail.getId(), type);
 				if (!similarList.isEmpty()) {
@@ -457,7 +459,7 @@ public class PortalController extends BaseController {
 				if (StringUtils.isNotBlank(reachievementlist.get(i).getFieldAS())) {
 					a = Boolean.TRUE;
 				}
-				
+
 				String fieldAs = glossoryService.getName(fieldA);
 				reachievementlist.get(i).setFieldAS(fieldAs);
 			}
@@ -501,17 +503,17 @@ public class PortalController extends BaseController {
 				} else if (AchievementMaturity.MASSPRODUCTION.getCode().equals(maturity)) {
 					reachievementlist.get(i).setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc());
 				}
-			};
-			
-			String pic=reachievementlist.get(i).getTechnicalpictureurl();//在存在多张图片的情况下,暂时先取第一张
-			if(null!= pic) {
+			}
+			;
+
+			String pic = reachievementlist.get(i).getTechnicalpictureurl();// 在存在多张图片的情况下,暂时先取第一张
+			if (null != pic) {
 				boolean hascomma = pic.contains(",");
-				if(hascomma) {
+				if (hascomma) {
 					String[] picurl = pic.split(",");
 					reachievementlist.get(i).setTechnicalpictureurl(picurl[0]);
 				}
 			}
-			
 
 		}
 
@@ -522,4 +524,352 @@ public class PortalController extends BaseController {
 		return mv;
 	}
 
+	/**
+	 * 订单确认页(成果专利)
+	 */
+	@RequestMapping(value = "/portal/technologyTrading/achievementOrder", method = RequestMethod.GET)
+	public ModelAndView portalAchievementOrder(String id, Integer type) {
+		ModelAndView mv = new ModelAndView();
+		AchievementPortalDetailBo achievementdetail = null;
+		achievementdetail = achievementService.findUserPortalAchievementDetail(id);
+		if (null != achievementdetail) {
+			achievementdetail.setId(id);
+			achievementdetail.setOwnerType(String.valueOf(type));
+			System.out.println(achievementdetail.getOwnerType());
+			Integer category = achievementdetail.getCategory();
+			if (null != category) {
+				if (category == 0) {
+					achievementdetail.setCategoryS("专利");
+				} else if (category == 1) {
+					achievementdetail.setCategoryS("软著");
+				} else if (category == 2) {
+					achievementdetail.setCategoryS("项目");
+				} else if (category == 3) {
+					achievementdetail.setCategoryS("版权");
+				} else if (category == 4) {
+					achievementdetail.setCategoryS("工业设计");
+				} else if (category == 5) {
+					achievementdetail.setCategoryS("配方");
+				} else if (category == 6) {
+					achievementdetail.setCategoryS("非标");
+				}
+
+			}
+			;
+
+			Integer transfermode = achievementdetail.getTransferMode();
+			if (null != transfermode) {
+				if (AchievementTransferMode.FULLTRANSFER.getCode().equals(transfermode)) {
+					achievementdetail.setTransferModeS(AchievementTransferMode.FULLTRANSFER.getDesc());
+				} else if (AchievementTransferMode.PERMISSIONTRANSFER.getCode().equals(transfermode)) {
+					achievementdetail.setTransferModeS(AchievementTransferMode.PERMISSIONTRANSFER.getDesc());
+				} else if (AchievementTransferMode.TECHNOLOGYSHARES.getCode().equals(transfermode)) {
+					achievementdetail.setTransferModeS(AchievementTransferMode.TECHNOLOGYSHARES.getDesc());
+				} else if (AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getCode().equals(transfermode)) {
+					achievementdetail.setTransferModeS(AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getDesc());
+				}
+			}
+
+		}
+
+		// 查询精品成果
+		List<AchievementListBo> boutiqueachievement = achievementService.getAchievement(1);
+		List<AchievementListBo> reboutiqueachievement = new ArrayList<AchievementListBo>();
+		if (boutiqueachievement.size() >= 4) {
+			int index = new Random().nextInt(boutiqueachievement.size() - 3);
+			reboutiqueachievement.add(boutiqueachievement.get(index));
+			reboutiqueachievement.add(boutiqueachievement.get(index + 1));
+			reboutiqueachievement.add(boutiqueachievement.get(index + 2));
+		} else {
+			reboutiqueachievement.addAll(boutiqueachievement);
+		}
+		;
+
+		for (int i = 0; i < boutiqueachievement.size(); i++) {
+			String pic = boutiqueachievement.get(i).getTechnicalpictureurl();// 在存在多张图片的情况下,暂时先取第一张
+			if (null != pic) {
+				boolean hascomma = pic.contains(",");
+				if (hascomma) {
+					String[] picurl = pic.split(",");
+					boutiqueachievement.get(i).setTechnicalpictureurl(picurl[0]);
+				}
+			}
+		}
+		;
+
+		// 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
+		boolean isLogin = TokenManager.isLogin();
+		List<AchievementListBo> achievementlist = achievementService.getAchievement(0);// 查询所有专利
+		List<AchievementListBo> reachievementlist = new ArrayList<AchievementListBo>();
+
+		if (achievementlist.size() >= 5) {
+			int idx = new Random().nextInt(achievementlist.size() - 4);
+			reachievementlist.add(achievementlist.get(idx));
+			reachievementlist.add(achievementlist.get(idx + 1));
+			reachievementlist.add(achievementlist.get(idx + 2));
+			reachievementlist.add(achievementlist.get(idx + 3));
+		} else {
+			reachievementlist.addAll(achievementlist);
+		}
+
+		if (isLogin) {
+			List<AchievementListBo> customerlikelist = achievementService.getPerhapLike();// 猜你喜欢专利
+			int size;
+			if (customerlikelist.size() < reachievementlist.size()) {
+				size = customerlikelist.size();
+			} else {
+				size = reachievementlist.size();
+			}
+
+			for (int i = 0; i < size; i++) {
+				reachievementlist.set(i, customerlikelist.get(i));
+			}
+		}
+
+		/*----------------------------------------------------------*/
+
+		for (int i = 0; i < reachievementlist.size(); i++) {
+			Integer fieldA = reachievementlist.get(i).getFieldA();
+			String field = "";
+			boolean a = Boolean.FALSE;
+			if (null != fieldA && null != achievementdetail) {
+				List<AchievementPortalSimilarListBo> similarList = achievementService.findByFieldA(fieldA,
+						achievementdetail.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);
+							}
+						}
+					}
+				}
+				mv.addObject("similarList", similarList);
+				if (StringUtils.isNotBlank(reachievementlist.get(i).getFieldAS())) {
+					a = Boolean.TRUE;
+				}
+
+				String fieldAs = glossoryService.getName(fieldA);
+				reachievementlist.get(i).setFieldAS(fieldAs);
+			}
+
+			field += (a ? reachievementlist.get(i).getFieldAS() : "");
+			reachievementlist.get(i).setField(field);
+
+			Integer ownertyp = reachievementlist.get(i).getOwnerType();
+			if (null != ownertyp) {
+				if (ownertyp == 0) {
+					reachievementlist.get(i).setOwnerTypeS("个人所有");
+				} else if (ownertyp == 1) {
+					reachievementlist.get(i).setOwnerTypeS("组织所有");
+				}
+			}
+
+			Integer transfermode = reachievementlist.get(i).getTransferMode();
+			if (null != transfermode) {
+				if (AchievementTransferMode.FULLTRANSFER.getCode().equals(transfermode)) {
+					reachievementlist.get(i).setTransferModeS(AchievementTransferMode.FULLTRANSFER.getDesc());
+				} else if (AchievementTransferMode.PERMISSIONTRANSFER.getCode().equals(transfermode)) {
+					reachievementlist.get(i).setTransferModeS(AchievementTransferMode.PERMISSIONTRANSFER.getDesc());
+				} else if (AchievementTransferMode.TECHNOLOGYSHARES.getCode().equals(transfermode)) {
+					reachievementlist.get(i).setTransferModeS(AchievementTransferMode.TECHNOLOGYSHARES.getDesc());
+				} else if (AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getCode().equals(transfermode)) {
+					reachievementlist.get(i)
+							.setTransferModeS(AchievementTransferMode.EXCLUSIVETECHNOLOGYSHARES.getDesc());
+				}
+			}
+
+			Integer maturity = reachievementlist.get(i).getMaturity();
+			if (null != maturity) {
+				if (AchievementMaturity.RESEARCH.getCode().equals(maturity)) {
+					reachievementlist.get(i).setMaturityS(AchievementMaturity.RESEARCH.getDesc());
+				} else if (AchievementMaturity.SAMPLE.getCode().equals(maturity)) {
+					reachievementlist.get(i).setMaturityS(AchievementMaturity.SAMPLE.getDesc());
+				} else if (AchievementMaturity.PRIMARYTEST.getCode().equals(maturity)) {
+					reachievementlist.get(i).setMaturityS(AchievementMaturity.PRIMARYTEST.getDesc());
+				} else if (AchievementMaturity.INTERMEDIATETEST.getCode().equals(maturity)) {
+					reachievementlist.get(i).setMaturityS(AchievementMaturity.INTERMEDIATETEST.getDesc());
+				} else if (AchievementMaturity.MASSPRODUCTION.getCode().equals(maturity)) {
+					reachievementlist.get(i).setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc());
+				}
+			};
+			String pic = reachievementlist.get(i).getTechnicalpictureurl();// 在存在多张图片的情况下,暂时先取第一张
+			if (null != pic) {
+				boolean hascomma = pic.contains(",");
+				if (hascomma) {
+					String[] picurl = pic.split(",");
+					reachievementlist.get(i).setTechnicalpictureurl(picurl[0]);
+				}
+			}
+		}
+		mv.setViewName("/portal/technologyTrading/achievementOrder");
+		mv.addObject("achievementdetail", achievementdetail);
+		mv.addObject("reachievementlist", reachievementlist);
+		return mv;
+	}
+	
+	
+	/**
+	 * 下单页面(需求)
+	 */
+	@RequestMapping(value = "/portal/technologyTrading/demandOrder", method = RequestMethod.GET)
+	public ModelAndView portalDemandOrder(String id, Integer type) {
+		ModelAndView mv = new ModelAndView();
+		DemandPortalDetailBo demand = null;
+		demand = demandService.findUserPortalDemandDetail(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()));
+		}
+
+		String demandpic = demand.getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
+		if (null != demandpic) {
+			boolean hascomma = demandpic.contains(",");
+			if (hascomma) {
+				String[] picurl = demandpic.split(",");
+				demand.setPictureUrl(picurl[0]);
+			}
+		}
+
+		/*--------------查询精品需求---------------*/
+		List<DemandListBo> boutiquedemand = demandService.selectDemandList(1);
+		List<DemandListBo> reboutiquedemand = new ArrayList<DemandListBo>();
+		if (boutiquedemand.size() >= 4) {
+			int index = new Random().nextInt(boutiquedemand.size() - 3);
+			reboutiquedemand.add(boutiquedemand.get(index));
+			reboutiquedemand.add(boutiquedemand.get(index + 1));
+			reboutiquedemand.add(boutiquedemand.get(index + 2));
+		} else {
+			reboutiquedemand.addAll(boutiquedemand);
+		}
+		;
+
+		for (int i = 0; i < reboutiquedemand.size(); i++) {
+			String pic = reboutiquedemand.get(i).getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
+			if (null != pic) {
+				boolean hascomma = pic.contains(",");
+				if (hascomma) {
+					String[] picurl = pic.split(",");
+					reboutiquedemand.get(i).setPictureUrl(picurl[0]);
+				}
+			}
+		}
+		;
+
+		// 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
+		boolean isLogin = TokenManager.isLogin();
+		List<DemandListBo> demandlist = demandService.selectDemandList(0);// 查询所有专利
+		List<DemandListBo> redemandlist = new ArrayList<DemandListBo>();
+
+		if (demandlist.size() >= 5) {
+			int idx = new Random().nextInt(demandlist.size() - 4);
+			redemandlist.add(demandlist.get(idx));
+			redemandlist.add(demandlist.get(idx + 1));
+			redemandlist.add(demandlist.get(idx + 2));
+			redemandlist.add(demandlist.get(idx + 3));
+		} else {
+			redemandlist.addAll(demandlist);
+		}
+
+		if (isLogin) {
+			List<DemandListBo> customerlikelist = demandService.selectCsutomerLike();// 猜你喜欢专利
+			int size;
+			if (customerlikelist.size() < redemandlist.size()) {
+				size = customerlikelist.size();
+			} else {
+				size = redemandlist.size();
+			}
+
+			for (int i = 0; i < size; i++) {
+				redemandlist.set(i, customerlikelist.get(i));
+			}
+		}
+
+		for (int i = 0; i < redemandlist.size(); i++) {
+			Integer demandType = redemandlist.get(i).getDemandType();
+			if (null != redemandlist) {
+				if (demandType == 1) {
+					redemandlist.get(i).setDemandTypeS("技术购买需求");
+				} else if (demandType == 2) {
+					redemandlist.get(i).setDemandTypeS("技术设备类需求");
+				} else if (demandType == 3) {
+					redemandlist.get(i).setDemandTypeS("技术方案型需求");
+				} else if (demandType == 4) {
+					redemandlist.get(i).setDemandTypeS("技术攻关型需求");
+				} else if (demandType == 5) {
+					redemandlist.get(i).setDemandTypeS("技术人才型需求");
+				}
+			}
+		}
+		;
+
+		for (int i = 0; i < redemandlist.size(); i++) {
+			String pic = redemandlist.get(i).getPictureUrl();// 在存在多张图片的情况下,暂时先取第一张
+			if (null != pic) {
+				boolean hascomma = pic.contains(",");
+				if (hascomma) {
+					String[] picurl = pic.split(",");
+					redemandlist.get(i).setPictureUrl(picurl[0]);
+				}
+			}
+		}
+		;
+
+		mv.setViewName("/portal/technologyTrading/demandOrder");
+		mv.addObject("demand", demand);
+		mv.addObject("reboutiquedemand", reboutiquedemand);
+		mv.addObject("redemandlist", redemandlist);
+
+		return mv;
+	}
 }

+ 1 - 0
src/main/java/com/goafanti/common/mapper/AchievementMapper.xml

@@ -1352,6 +1352,7 @@
 		interest.id as interestId,
 		u.lvl as level,
 		a.owner_name as ownerName,
+		a.owner_mobile as ownerMobile,
 		a.bargaining_mode as bargainingMode
 	FROM
 		achievement a

+ 10 - 0
src/main/java/com/goafanti/portal/bo/AchievementPortalDetailBo.java

@@ -66,6 +66,8 @@ public class AchievementPortalDetailBo {
 	private Integer			bargainingMode;
 	
 	private String			categoryS;
+	
+	private String		ownerMobile;
 
 	public Integer getBargainingMode() {
 		return bargainingMode;
@@ -311,6 +313,14 @@ public class AchievementPortalDetailBo {
 		this.releaseDateS = releaseDateS;
 	}
 
+	public String getOwnerMobile() {
+		return ownerMobile;
+	}
+
+	public void setOwnerMobile(String ownerMobile) {
+		this.ownerMobile = ownerMobile;
+	}
+
 	
 	
 }

+ 2 - 0
src/main/java/com/goafanti/portal/controller/PortalInterestApiController.java

@@ -136,8 +136,10 @@ public class PortalInterestApiController extends CertifyApiController{
 	@RequestMapping(value = "/achievementInterest", method = RequestMethod.POST)
 	public Result achievementInterest(String id) {
 		Result res = new Result();
+		System.out.println("感兴趣的id="+id);
 
 		if (StringUtils.isBlank(id)) {
+			System.out.println("找不到成果ID");
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "科技成果ID"));
 			return res;
 		}

+ 1 - 0
src/main/java/com/goafanti/portal/controller/PortalOrderApiController.java

@@ -183,6 +183,7 @@ public class PortalOrderApiController extends CertifyApiController {
 		BeanUtils.copyProperties(order, achievementOrder);
 		BeanUtils.copyProperties(order, aol);
 		achievementOrderService.saveAchievementOrder(achievementOrder, aol);
+		System.out.println("已完成下单");
 		return res;
 	}
 

Разница между файлами не показана из-за своего большого размера
+ 191 - 180
src/main/webapp/WEB-INF/views/common.html


+ 1 - 0
src/main/webapp/WEB-INF/views/portal/news/newsDetail.html

@@ -56,6 +56,7 @@
 	</div>
 	<footer>
 		<div th:replace="common::copyright"></div>
+		<div th:replace="common::login"></div>
 	</footer>
 	<div th:replace="common::footer(~{::script})">
 		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>

+ 2 - 2
src/main/webapp/WEB-INF/views/portal/technologyTrading/achievement.html

@@ -129,8 +129,8 @@
 						<li>
 							<div class="inp_select">
 								<input type="number" name="" id="minprice" placeholder="最小价格" maxlength="6" min="0"/>
-								<span>-</span>
-								<input type="number" id="maxprice" placeholder="最大价格" maxlength="6" min="0"/>元
+								<span>-</span>
+								<input type="number" id="maxprice" placeholder="最大价格" maxlength="6" min="0"/>
 								<button>确定</button>
 							</div>
 						</li>

+ 13 - 2
src/main/webapp/WEB-INF/views/portal/technologyTrading/achievementDetail.html

@@ -57,7 +57,15 @@
 							<p th:text="${achievementdetail.transferModeS}?${achievementdetail.transferModeS}:面议"></p>
 						</div>
 						<!-- <span><img th:src="${portalHost + '/img/detail_img5.png'}"alt="" /> <span  >8</span> </span> -->
-						<div class="detail_btn">我要咨询</div>
+						<div class="detail_btn" onclick="_MEIQIA('showPanel')">我要咨询
+							
+						</div>
+						<div class="detail_btn_" >立即购买
+							<input type="hidden" th:val="${achievementdetail.id}" id="Id_" />
+							<input type="hidden" th:typ="${achievementdetail.ownerType}" id="ownerType_" />
+							<input type="hidden" th:isLogin="${!isLogin}" id="isLogin" />
+						</div>
+						
 					</div>
 					<div class="fine" >
 						<div class="fine_title">精品专利</div>
@@ -157,7 +165,10 @@
 		</ul>
 		<span class="index_orange"></span>
 	</div>
-	<div th:replace="common::copyright"></div>
+	<footer>
+		<div th:replace="common::copyright"></div>
+		<div th:replace="common::login"></div>
+	</footer>
 	<div th:replace="common::footer(~{::script})">
 		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
 		<script type="text/javascript"

+ 136 - 0
src/main/webapp/WEB-INF/views/portal/technologyTrading/achievementOrder.html

@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head th:replace="common::header(~{::title},~{::link})">
+<title>订单页--我的技术和科技服务交易平台</title>
+<link th:href="${portalHost +'/vendors.css'}" rel="stylesheet">
+<link
+	th:href="${portalHost + '/technologyTrading/achievementOrder.css'}"
+	rel="stylesheet">
+</head>
+<body>
+	<header>
+		<div th:replace="common::nav('technologyTrading','achievement')"></div>
+	</header>
+	<!--主体内容区域开始-->
+	<div id="all_achievement">
+		<div class="detail">
+			<div id="order_title">订单确认</div>
+			<div id="order_cont">
+				<div class="order_cont">
+					<div class="order_left"
+						th:each="achievementdetail:${achievementdetail}">
+						<div>
+							<h4>产品名称:</h4>
+							<p th:text="${achievementdetail.name}"></p>
+						</div>
+						<div>
+							<h4>产品类型:</h4>
+							<p th:text="${achievementdetail.categoryS}?${achievementdetail.categoryS}:暂无分类信息">发明专利</p>
+						</div>
+						<div>
+							<h4>交易方式:</h4>
+							<p th:text="${achievementdetail.transferModeS}?${achievementdetail.transferModeS}:暂无"></p>
+						</div>
+						<div>
+							<h4>技术持有人:</h4>
+							<p th:text="${achievementdetail.ownerName}?${achievementdetail.ownerName}:陈灿"></p>
+						</div>
+						<div>
+							<h4>技术购买人:</h4>
+							<p th:text="${userData != null}?${userData.nickname}:暂无"></p>
+						</div>
+					</div>
+					<div class="order_right">
+						<div class="order_right_p">
+							<h4>交易金额:</h4>
+							<p th:text="${achievementdetail.transferPrice}?${achievementdetail.transferPrice}:暂无"></p>
+							<span onclick="_MEIQIA('showPanel')">立即议价</span>
+						</div>
+						<div>
+							<h4>电话:</h4>
+							<p th:text="${achievementdetail.ownerMobile}?${achievementdetail.ownerMobile}:073184121803"></p>
+						</div>
+						<div>
+							<h4 >电话:</h4>
+							<p th:text="${userData != null}?${userData.mobile}:暂无"></p>
+						</div>
+					</div>
+				</div>
+				<div class="order_button">
+					<div th:val="${achievementdetail.id}" id='id_'>加入订单</div>
+					<div>去支付</div>
+				</div>
+				<div class="order_text">加入订单,技术所有人很快就会联系你呦~,技淘祝您交易成功!</div>
+			</div>
+			<div id="order_flow">
+				<h3>交易流程</h3>
+				<div>
+					<img th:src="${portalHost+'/img/order_2.png'}" alt="" />
+				</div>
+			</div>
+			<div class="detail_bottom">
+				<div class="line">猜你喜欢</div>
+				<div class="main_introduce">
+					<ul>
+						<li th:each="reachievementlist:${reachievementlist}"><img
+							th:src="${portalHost+'/img/detail_img4.jpg'}" alt="" />
+							<div class="list_text">
+								<p>
+									行业:<span
+										th:text="${reachievementlist.fieldAS}?${reachievementlist.fieldAS}:暂无分类信息"></span>
+								</p>
+								<p>
+									名称:<span
+										th:text="${reachievementlist.name}?${reachievementlist.name}:未知"></span>
+								</p>
+								<p>
+									类型:<span
+										th:text="${reachievementlist.ownerTypeS}?${reachievementlist.ownerTypeS}:个人所有"></span>
+								</p>
+								<p>
+									交易方式:<span
+										th:text="${reachievementlist.transferModeS}?${reachievementlist.transferModeS}:暂无"></span>
+								</p>
+								<a href="#">了解详情</a>
+							</div></li>
+					</ul>
+				</div>
+			</div>
+		</div>
+	</div>
+	<!--主体内容区域结束-->
+	<div class="pub_fix">
+		<span class="index_blur"></span>
+		<ul class="ret_top">
+			<li><a href=""> <img
+					th:src="${portalHost + '/img/index_fix1.png'}" alt="" />
+					<p>发布需求</p>
+			</a></li>
+			<li><a href=""><img
+					th:src="${portalHost + '/img/index_fix2.png'}" alt="" />
+					<p>发布技术</p> </a></li>
+			<li><a onclick="_MEIQIA('showPanel')"> <img
+					th:src="${portalHost + '/img/index_fix3.png'}" alt="" />
+					<p>联系客服</p>
+			</a></li>
+			<li><a href="" class="pendent_box"> <img
+					th:src="${portalHost + '/img/index_fix4.png'}" alt="" />
+					<p>返回顶部</p>
+			</a></li>
+		</ul>
+		<span class="index_orange"></span>
+	</div>
+	<footer>
+		<div th:replace="common::copyright"></div>
+		<div th:replace="common::login"></div>
+	</footer>
+	<div th:replace="common::footer(~{::script})">
+		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
+		<script type="text/javascript"
+			th:src="${portalHost + '/technologyTrading/achievementOrder.js'}"></script>
+	</div>
+</body>
+
+</html>

+ 2 - 2
src/main/webapp/WEB-INF/views/portal/technologyTrading/demand.html

@@ -104,8 +104,8 @@
 						<li>
 							<div class="inp_select">
 								<input type="number" name="" id="minprice" placeholder="最小价格" maxlength="6" min="0"/>
-								<span>-</span>
-								<input type="number" id="maxprice" placeholder="最大价格" maxlength="6" min="0"/>元
+								<span>-</span>
+								<input type="number" id="maxprice" placeholder="最大价格" maxlength="6" min="0"/>
 								<button>确定</button>
 							</div>
 						</li>

+ 4 - 2
src/main/webapp/WEB-INF/views/portal/technologyTrading/demandDetail.html

@@ -52,11 +52,12 @@
 						<div class="inline_span">
 							<span>有效日期:</span> <span th:text="${demand.validityPeriodS}?${demand.validityPeriodS}:永久"></span>
 						</div>
-						<div class="loves">                       
+						<div class="loves">  
                        		<span class="box_love"></span><span class="dem_number">8</span><span>我感兴趣</span>
+							<input type="hidden" th:val="${demand.id}">                     
                     	</div>
 	                    <div class="detail_btn">
-	                       <a href="javascript:;">我要咨询</a><a href="javascript:;" id="purchase">立即购买</a>
+	                       <a href="javascript:;" onclick="_MEIQIA('showPanel')">我要咨询</a><a href="javascript:;" id="purchase">立即购买</a>
 	                    </div>
 
 					</div>
@@ -130,6 +131,7 @@
 	</div>
 	<footer>
 		<div th:replace="common::copyright"></div>
+		<div th:replace="common::login"></div>
 	</footer>
 	<div th:replace="common::footer(~{::script})">
 		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>

+ 136 - 0
src/main/webapp/WEB-INF/views/portal/technologyTrading/demandOrder.html

@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head th:replace="common::header(~{::title},~{::link})">
+<title>订单页--我的技术和科技服务交易平台</title>
+<link th:href="${portalHost +'/vendors.css'}" rel="stylesheet">
+<link
+	th:href="${portalHost + '/technologyTrading/achievementOrder.css'}"
+	rel="stylesheet">
+</head>
+<body>
+	<header>
+		<div th:replace="common::nav('technologyTrading','achievement')"></div>
+	</header>
+	<!--主体内容区域开始-->
+	<div id="all_achievement">
+		<div class="detail">
+			<div id="order_title">订单确认</div>
+			<div id="order_cont">
+				<div class="order_cont">
+					<div class="order_left"
+						th:each="demand:${demand}">
+						<div>
+							<h4>产品名称:</h4>
+							<p th:text="${demand.name}"></p>
+						</div>
+						<div>
+							<h4>产品类型:</h4>
+							<p th:text="${demand.categoryS}?${demand.categoryS}:暂无分类信息">发明专利</p>
+						</div>
+						<div>
+							<h4>交易方式:</h4>
+							<p th:text="${demand.transferModeS}?${demand.transferModeS}:暂无"></p>
+						</div>
+						<div>
+							<h4>技术持有人:</h4>
+							<p th:text="${demand.ownerName}?${demand.ownerName}:陈灿"></p>
+						</div>
+						<div>
+							<h4>技术购买人:</h4>
+							<p th:text="${userData != null}?${userData.nickname}:暂无"></p>
+						</div>
+					</div>
+					<div class="order_right">
+						<div class="order_right_p">
+							<h4>交易金额:</h4>
+							<p th:text="${demand.transferPrice}?${demand.transferPrice}:暂无"></p>
+							<span onclick="_MEIQIA('showPanel')">立即议价</span>
+						</div>
+						<div>
+							<h4>电话:</h4>
+							<p th:text="${demand.ownerMobile}?${demand.ownerMobile}:073184121803"></p>
+						</div>
+						<div>
+							<h4 >电话:</h4>
+							<p th:text="${userData != null}?${userData.mobile}:暂无"></p>
+						</div>
+					</div>
+				</div>
+				<div class="order_button">
+					<div>加入订单</div>
+					<div>去支付</div>
+				</div>
+				<div class="order_text">加入订单,技术所有人很快就会联系你呦~,技淘祝您交易成功!</div>
+			</div>
+			<div id="order_flow">
+				<h3>交易流程</h3>
+				<div>
+					<img th:src="${portalHost+'/img/order_2.png'}" alt="" />
+				</div>
+			</div>
+			<div class="detail_bottom">
+				<div class="line">猜你喜欢</div>
+				<div class="main_introduce">
+					<ul>
+						<li th:each="reachievementlist:${reachievementlist}"><img
+							th:src="${portalHost+'/img/detail_img4.jpg'}" alt="" />
+							<div class="list_text">
+								<p>
+									行业:<span
+										th:text="${reachievementlist.fieldAS}?${reachievementlist.fieldAS}:暂无分类信息"></span>
+								</p>
+								<p>
+									名称:<span
+										th:text="${reachievementlist.name}?${reachievementlist.name}:未知"></span>
+								</p>
+								<p>
+									类型:<span
+										th:text="${reachievementlist.ownerTypeS}?${reachievementlist.ownerTypeS}:个人所有"></span>
+								</p>
+								<p>
+									交易方式:<span
+										th:text="${reachievementlist.transferModeS}?${reachievementlist.transferModeS}:暂无"></span>
+								</p>
+								<a href="#">了解详情</a>
+							</div></li>
+					</ul>
+				</div>
+			</div>
+		</div>
+	</div>
+	<!--主体内容区域结束-->
+	<div class="pub_fix">
+		<span class="index_blur"></span>
+		<ul class="ret_top">
+			<li><a href=""> <img
+					th:src="${portalHost + '/img/index_fix1.png'}" alt="" />
+					<p>发布需求</p>
+			</a></li>
+			<li><a href=""><img
+					th:src="${portalHost + '/img/index_fix2.png'}" alt="" />
+					<p>发布技术</p> </a></li>
+			<li><a onclick="_MEIQIA('showPanel')"> <img
+					th:src="${portalHost + '/img/index_fix3.png'}" alt="" />
+					<p>联系客服</p>
+			</a></li>
+			<li><a href="" class="pendent_box"> <img
+					th:src="${portalHost + '/img/index_fix4.png'}" alt="" />
+					<p>返回顶部</p>
+			</a></li>
+		</ul>
+		<span class="index_orange"></span>
+	</div>
+	<footer>
+		<div th:replace="common::copyright"></div>
+		<div th:replace="common::login"></div>
+	</footer>
+	<div th:replace="common::footer(~{::script})">
+		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
+		<script type="text/javascript"
+			th:src="${portalHost + '/technologyTrading/achievementOrder.js'}"></script>
+	</div>
+</body>
+
+</html>