zou_ht лет назад: 8
Родитель
Сommit
05b7d5d9ca
31 измененных файлов с 3897 добавлено и 2590 удалено
  1. 106 0
      src/main/java/com/goafanti/achievement/bo/AchievementListBo.java
  2. 54 0
      src/main/java/com/goafanti/achievement/bo/AchievementPartnerListBo.java
  3. 5 1
      src/main/java/com/goafanti/achievement/service/AchievementService.java
  4. 21 3
      src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java
  5. 216 48
      src/main/java/com/goafanti/common/controller/PortalController.java
  6. 114 18
      src/main/java/com/goafanti/common/controller/WebpageController.java
  7. 4 1
      src/main/java/com/goafanti/common/dao/AchievementMapper.java
  8. 7 0
      src/main/java/com/goafanti/common/dao/DemandMapper.java
  9. 2 0
      src/main/java/com/goafanti/common/dao/DistrictGlossoryMapper.java
  10. 6 2
      src/main/java/com/goafanti/common/dao/UserMapper.java
  11. 53 24
      src/main/java/com/goafanti/common/mapper/AchievementMapper.xml
  12. 1550 1165
      src/main/java/com/goafanti/common/mapper/DemandMapper.xml
  13. 4 0
      src/main/java/com/goafanti/common/mapper/DistrictGlossoryMapper.xml
  14. 1008 935
      src/main/java/com/goafanti/common/mapper/UserMapper.xml
  15. 3 1
      src/main/java/com/goafanti/dataGlossory/service/DistrictGlossoryService.java
  16. 6 1
      src/main/java/com/goafanti/dataGlossory/service/impl/DistrictGlossoryServiceImpl.java
  17. 54 1
      src/main/java/com/goafanti/demand/bo/DemandListBo.java
  18. 8 1
      src/main/java/com/goafanti/demand/service/DemandService.java
  19. 18 2
      src/main/java/com/goafanti/demand/service/impl/DemandServiceImpl.java
  20. 31 5
      src/main/java/com/goafanti/portal/bo/AchievementPortalDetailBo.java
  21. 43 0
      src/main/java/com/goafanti/portal/bo/DemandPortalDetailBo.java
  22. 16 5
      src/main/java/com/goafanti/portal/controller/PortalSearchController.java
  23. 62 0
      src/main/java/com/goafanti/user/bo/OrgPartnerDetailBo.java
  24. 63 0
      src/main/java/com/goafanti/user/bo/UserPartnerDetailBo.java
  25. 2 0
      src/main/java/com/goafanti/user/service/UserService.java
  26. 7 2
      src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java
  27. 0 191
      src/main/webapp/WEB-INF/views/portal/detail/achievementDetail.html
  28. 0 177
      src/main/webapp/WEB-INF/views/portal/detail/demandDetail.html
  29. 151 0
      src/main/webapp/WEB-INF/views/portal/technologyTrading/achievementDetail.html
  30. 121 0
      src/main/webapp/WEB-INF/views/portal/technologyTrading/demandDetail.html
  31. 162 7
      src/main/webapp/WEB-INF/views/user/subscriberDetail.html

+ 106 - 0
src/main/java/com/goafanti/achievement/bo/AchievementListBo.java

@@ -86,6 +86,36 @@ public class AchievementListBo {
      *  是否属于精品 0 - 否	, 1 - 是
      */
     private Integer boutique;
+    
+    /**
+     *  图片链接
+     */
+    private String technicalpictureurl;
+    
+    /**
+	 * 交易方式(转让方式(0--完全转让,1--许可转让,2--技术入股))
+	 */
+	private Integer		transferMode;
+    
+	/**
+	 * 成熟度
+	 */
+	private Integer		maturity;
+	
+	/**
+	 * 行业
+	 */
+	private Integer		fieldA;
+	
+	private String		fieldAS;
+	
+	private String		field;
+	
+	private String		maturityS;
+	
+	private String			transferModeS;
+	
+	private String	ownerTypeS;
 	
 	public String getOrgId() {
 		return orgId;
@@ -233,4 +263,80 @@ public class AchievementListBo {
 
 	}
 
+	public String getTechnicalpictureurl() {
+		return technicalpictureurl;
+	}
+
+	public void setTechnicalpictureurl(String technicalpictureurl) {
+		this.technicalpictureurl = technicalpictureurl;
+	}
+
+	public Integer getTransferMode() {
+		return transferMode;
+	}
+
+	public void setTransferMode(Integer transferMode) {
+		this.transferMode = transferMode;
+	}
+
+	public Integer getMaturity() {
+		return maturity;
+	}
+
+	public void setMaturity(Integer maturity) {
+		this.maturity = maturity;
+	}
+
+	public Integer getFieldA() {
+		return fieldA;
+	}
+
+	public void setFieldA(Integer fieldA) {
+		this.fieldA = fieldA;
+	}
+
+	public String getFieldAS() {
+		return fieldAS;
+	}
+
+	public void setFieldAS(String fieldAS) {
+		this.fieldAS = fieldAS;
+	}
+
+	public String getField() {
+		return field;
+	}
+
+	public void setField(String field) {
+		this.field = field;
+	}
+
+	public String getMaturityS() {
+		return maturityS;
+	}
+
+	public void setMaturityS(String maturityS) {
+		this.maturityS = maturityS;
+	}
+
+	public String getTransferModeS() {
+		return transferModeS;
+	}
+
+	public void setTransferModeS(String transferModeS) {
+		this.transferModeS = transferModeS;
+	}
+
+	public String getOwnerTypeS() {
+		return ownerTypeS;
+	}
+
+	public void setOwnerTypeS(String ownerTypeS) {
+		this.ownerTypeS = ownerTypeS;
+	}
+	
+	
+	
+	
+
 }

+ 54 - 0
src/main/java/com/goafanti/achievement/bo/AchievementPartnerListBo.java

@@ -71,7 +71,23 @@ public class AchievementPartnerListBo {
 	 * 标价
 	 */
 	private BigDecimal	transferPrice;
+	
+	
+	/**
+	 * 描述
+	 */
+	private String	introduction;
 
+	/**
+	 * 描述
+	 */
+	private String	technicalPictureUrl;
+	
+	/**
+	 * 成熟度中文描述
+	 */
+	private String maturityS;
+	
 	public Integer getFieldA() {
 		return fieldA;
 	}
@@ -190,4 +206,42 @@ public class AchievementPartnerListBo {
 	public void setReleaseDateFormattedDate(String releaseDateFormattedDate) {
 
 	}
+
+	public String getIntroduction() {
+		return introduction;
+	}
+
+	public void setIntroduction(String introduction) {
+		this.introduction = introduction;
+	}
+
+	public String getTechnicalPictureUrl() {
+		return technicalPictureUrl;
+	}
+
+	public void setTechnicalPictureUrl(String technicalPictureUrl) {
+		this.technicalPictureUrl = technicalPictureUrl;
+	}
+
+	
+	
+	public String getMaturityS() {
+		return maturityS;
+	}
+
+	public void setMaturityS(String maturityS) {
+		this.maturityS = maturityS;
+	}
+
+	@Override
+	public String toString() {
+		return "partnerAchievementList [id=" + id + ", serialNumber=" + serialNumber + ", dataCategory="
+				+ dataCategory + ", name=" + name + ", keyword=" + keyword + ", category=" + category + ", ownerType="
+				+ ownerType + ", releaseDate=" + releaseDate + ", fieldA=" + fieldA + ", fieldB=" + fieldB
+				+ ", maturity=" + maturity + ", bargainingMode=" + bargainingMode + ", transferPrice=" + transferPrice
+				+ ", introduction=" + introduction + ", technicalPictureUrl=" + technicalPictureUrl + "]";
+	}
+
+	
+	
 }

+ 5 - 1
src/main/java/com/goafanti/achievement/service/AchievementService.java

@@ -52,7 +52,8 @@ public interface AchievementService {
 	void insertImport(List<AchievementImportBo> data);
 
 	Pagination<AchievementSearchListBo> listAchievementSearchList(
-			String keyword,Integer dataCategory ,Integer fieldA,String transferMode, Integer pageNo, Integer pageSize);
+			String keyword,Integer dataCategory ,Integer category, Integer fieldA,String transferMode, Integer pageNo, Integer pageSize,
+			Integer timeSort,String upperPrice,String lowerPrice);
 
 	AchievementDetailBo selectAchievementSearchDetail(String uid, String id);
 	
@@ -81,4 +82,7 @@ public interface AchievementService {
 	 
     /** 查询猜你喜欢  **/
     public List<AchievementListBo>  getPerhapLike();
+    
+    /**查询智者的科技成果**/
+    public List<AchievementPartnerListBo> findPartnerAchievementList(String uid);
 }

+ 21 - 3
src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java

@@ -411,7 +411,8 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<AchievementSearchListBo> listAchievementSearchList(
-			String keyword,Integer dataCategory, Integer fieldA, String transferMode,Integer pNo, Integer pSize ) {
+			String keyword,Integer dataCategory, Integer category,Integer fieldA, String transferMode,Integer pNo, Integer pSize,
+			Integer dateSort,String upperPrice,String lowerPrice) {
 		Map<String, Object> params = new HashMap<>();
 		if (!StringUtils.isBlank(keyword)) {
 			params.put("keyword", keyword);
@@ -420,7 +421,10 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		if (null != dataCategory) {
 			params.put("dataCategory", dataCategory);
 		}
-
+		
+		if(null!= category){
+			params.put("category", category);
+		}
 		if (null != fieldA) {
 			params.put("fieldA", fieldA);
 		}
@@ -428,7 +432,15 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		if (!StringUtils.isBlank(transferMode)) {
 			params.put("transferMode", transferMode);
 		}
-		
+		if(dateSort != null){
+			params.put("dateSort", dateSort);
+		}
+		if(upperPrice != null){
+			params.put("upperPrice", upperPrice);
+		}
+		if(lowerPrice != null){
+			params.put("lowerPrice", lowerPrice);
+		}
 		if (pNo == null || pNo < 0) {
 			pNo = 1;
 		}
@@ -440,6 +452,7 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		List<AchievementSearchListBo> AchievementSearchList = (List<AchievementSearchListBo>) result.getList();
 		for (int i = 0; i < AchievementSearchList.size(); i++) {
 			String introduction = AchievementSearchList.get(i).getIntroduction();
+			if(introduction != null)
 			introduction=introduction.length()>20?introduction.substring(0, 20)+"... ...":introduction;
 
 		}
@@ -632,6 +645,11 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		return achievementMapper.selectCsutomerLike(); //查询出猜你喜欢
 	}
 
+	@Override
+	public List<AchievementPartnerListBo> findPartnerAchievementList(String uid) {
+		return achievementMapper.findPartnerAchievementListByPage(uid);
+	}
+
 	
 	
 }

+ 216 - 48
src/main/java/com/goafanti/common/controller/PortalController.java

@@ -1,8 +1,10 @@
 package com.goafanti.common.controller;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Random;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -23,31 +25,31 @@ import com.goafanti.common.enums.UserLevel;
 import com.goafanti.common.enums.UserType;
 import com.goafanti.common.service.FieldGlossoryService;
 import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.demand.bo.DemandListBo;
 import com.goafanti.demand.service.DemandService;
 import com.goafanti.portal.bo.AchievementPortalDetailBo;
 import com.goafanti.portal.bo.AchievementPortalSimilarListBo;
-import com.goafanti.portal.bo.BoutiqueListBo;
 import com.goafanti.portal.bo.DemandPortalDetailBo;
 import com.goafanti.portal.bo.DemandPortalSimilarListBo;
 
 @Controller
 public class PortalController extends BaseController {
 	@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) {
@@ -66,7 +68,7 @@ public class PortalController extends BaseController {
 	/**
 	 * 科技需求详情
 	 */
-	@RequestMapping(value = "/portal/detail/demandDetail", method = RequestMethod.GET)
+	@RequestMapping(value = "/portal/technologyTrading/demandDetail", method = RequestMethod.GET)
 	public ModelAndView portalDemandDetail(String id, Integer type) {
 		ModelAndView mv = new ModelAndView();
 		DemandPortalDetailBo demand = null;
@@ -120,8 +122,70 @@ public class PortalController extends BaseController {
 			demand.setLocation((StringUtils.isBlank(demand.getProvince()) ? "" : demand.getProvince())
 					+ (StringUtils.isBlank(demand.getCity()) ? "" : demand.getCity()));
 		}
-		mv.setViewName("/portal/detail/demandDetail");
+
+		/*--------------查询精品需求---------------*/
+		List<DemandListBo> boutiquedemand = demandService.selectDemandList(1);
+		List<DemandListBo> reboutiquedemand = new ArrayList<DemandListBo>();
+		if (boutiquedemand.size() >= 4) {
+			int index = (int) 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);
+		}
+		;
+
+		// 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
+		boolean isLogin = TokenManager.isLogin();
+		List<DemandListBo> demandlist = demandService.selectDemandList(0);// 查询所有专利
+		List<DemandListBo> redemandlist = new ArrayList<DemandListBo>();
+
+		if (demandlist.size() >= 5) {
+			int idx = (int) 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("技术人才型需求");
+				}
+			}
+		}
+
+		mv.setViewName("/portal/technologyTrading/demandDetail");
 		mv.addObject("demand", demand);
+		mv.addObject("reboutiquedemand", reboutiquedemand);
+		mv.addObject("redemandlist", redemandlist);
 
 		return mv;
 	}
@@ -130,24 +194,39 @@ public class PortalController extends BaseController {
 	 * 科技成果详情
 	 */
 	@SuppressWarnings("null")
-	@RequestMapping(value = "/portal/detail/achievementDetail", method = RequestMethod.GET)
+	@RequestMapping(value = "/portal/technologyTrading/achievementDetail", method = RequestMethod.GET)
 	public ModelAndView portalAchievementDetail(String id, Integer type) {
 		ModelAndView mv = new ModelAndView();
 		AchievementPortalDetailBo achievementdetail = null;
-		AchievementListBo achievement = null;
 		if (UserType.PERSONAL.getCode().equals(type)) {
 			achievementdetail = achievementService.findUserPortalAchievementDetail(id);
 		} else if (UserType.ORGANIZATION.getCode().equals(type)) {
 			achievementdetail = achievementService.findOrgPortalAchievementDetail(id);
 		}
 		if (null != achievementdetail) {
-			if (StringUtils.isBlank(achievementdetail.getOwnerName())) {
-				if (UserLevel.GENERAL.getCode().equals(achievementdetail.getLevel())) {
-					achievementdetail.setOwnerName(UNCERTIFY);
-				} else {
-					achievementdetail.setOwnerName(" ");
+
+			Integer category = achievementdetail.getCategory();
+			System.out.println("category:" + category);
+			if (null != category) {
+				if (category == 0) {
+					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("配方");
+				} else if (category == 7) {
+					achievementdetail.setCategoryS("非标");
 				}
+
 			}
+			;
+
 			Integer fieldA = achievementdetail.getFieldA();
 			String field = "";
 			boolean a = Boolean.FALSE;
@@ -248,40 +327,129 @@ public class PortalController extends BaseController {
 			achievementdetail.setLocation(location);
 
 		}
-		
-		//查询精品成果
-		List<AchievementListBo> boutiqueAchievement = achievementService.getAchievement(1);
-		List<AchievementListBo> reboutiqueAchievement = null;
-		int index=(int)(1+Math.random()*(10-1+1));
-		
-		for (int i = 0; i < boutiqueAchievement.size(); i++) {
-			reboutiqueAchievement.add(boutiqueAchievement.get(index));
-			reboutiqueAchievement.add(boutiqueAchievement.get(index++));
-			reboutiqueAchievement.add(boutiqueAchievement.get(index+2));
+
+		// 查询精品成果
+		List<AchievementListBo> boutiqueachievement = achievementService.getAchievement(1);
+		List<AchievementListBo> reboutiqueachievement = new ArrayList<AchievementListBo>();
+		if (boutiqueachievement.size() >= 4) {
+			int index = (int) 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);
 		};
 		
-		//判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
+
+		// 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
 		boolean isLogin = TokenManager.isLogin();
-		List<AchievementListBo> achievementlist = achievementService.getAchievement(0);//查询所有专利
-		List<AchievementListBo> reachievementlist = null;
-		for (int i = 0; i < achievementlist.size(); i++) {
-			reachievementlist.add(boutiqueAchievement.get(index));
-			reachievementlist.add(boutiqueAchievement.get(index+1));
-			reachievementlist.add(boutiqueAchievement.get(index+2));
-			reachievementlist.add(boutiqueAchievement.get(index+3));
-		};
-		List<AchievementListBo> customerLikelist = achievementService.getPerhapLike();//猜你喜欢专利
-		
-		
-		if(isLogin) {
-		}else {
-			
+		List<AchievementListBo> achievementlist = achievementService.getAchievement(0);// 查询所有专利
+		List<AchievementListBo> reachievementlist = new ArrayList<AchievementListBo>();
+
+		if (achievementlist.size() >= 5) {
+			int idx = (int) 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);
 		}
-		
-		
-		mv.setViewName("/portal/detail/achievementDetail");
-		mv.addObject("achievement", achievementdetail);
-		mv.addObject("ReboutiqueAchievement", reboutiqueAchievement);
+
+		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) {
+				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;
+				}
+			}
+
+			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());
+				}
+			}
+
+		}
+
+		mv.setViewName("/portal/technologyTrading/achievementDetail");
+		mv.addObject("achievementdetail", achievementdetail);
+		mv.addObject("reboutiqueachievement", reboutiqueachievement);
+		mv.addObject("reachievementlist", reachievementlist);
 		return mv;
 	}
 

+ 114 - 18
src/main/java/com/goafanti/common/controller/WebpageController.java

@@ -1,6 +1,8 @@
 package com.goafanti.common.controller;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Random;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -10,39 +12,50 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.goafanti.achievement.bo.AchievementPartnerListBo;
 import com.goafanti.achievement.service.AchievementService;
 import com.goafanti.banners.enums.BannersType;
 import com.goafanti.banners.service.BannersService;
 import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.enums.AchievementMaturity;
+import com.goafanti.common.enums.UserType;
 import com.goafanti.common.model.Banners;
 import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.dataGlossory.service.DistrictGlossoryService;
 import com.goafanti.demand.service.DemandService;
 import com.goafanti.portal.bo.InternationalListBo;
+import com.goafanti.user.bo.UserPartnerDetailBo;
 import com.goafanti.user.service.OrganizationIdentityService;
 import com.goafanti.user.service.UserIdentityService;
+import com.goafanti.user.service.UserService;
 import com.goafanti.news.enums.NewsType;
 import com.goafanti.news.service.NewsService;
 
 @Controller
 public class WebpageController extends BaseController {
+	@Resource
+	private UserService userService;
+	
+	@Resource
+	private DistrictGlossoryService districtglossoryservice;
 
 	@Resource
-	private DemandService		demandService;
+	private DemandService demandService;
 
 	@Resource
-	private AchievementService	achievementService;
+	private AchievementService achievementService;
 
 	@Resource
-	private BannersService		bannersService;
+	private BannersService bannersService;
 
 	@Resource
-	private UserIdentityService 	userIdentityService;
-	
+	private UserIdentityService userIdentityService;
+
 	@Resource
 	private OrganizationIdentityService organizationIdentityService;
-	
+
 	@Resource
-	private NewsService			newsService;
+	private NewsService newsService;
 
 	/**
 	 * 首页
@@ -109,7 +122,7 @@ public class WebpageController extends BaseController {
 	public String mSignin(HttpServletRequest request, ModelAndView modelview) {
 		return "/user/msignIn";
 	}
-	
+
 	@RequestMapping(value = "/user/certify", method = RequestMethod.GET)
 	public ModelAndView userCertify(HttpServletRequest request, ModelAndView modelview) {
 		modelview.setViewName("/user/certify");
@@ -129,9 +142,77 @@ public class WebpageController extends BaseController {
 	}
 
 	@RequestMapping(value = "/user/subscriberDetail", method = RequestMethod.GET)
-	public String userSubscriberDetail(HttpServletRequest request, ModelAndView modelview) {
-		return "/user/subscriberDetail";
-	}
+	public ModelAndView ModelAndView(HttpServletRequest request, ModelAndView modelview, String uid, Integer type) {
+		ModelAndView mv = new ModelAndView();
+		UserPartnerDetailBo rePartnerDetail =new UserPartnerDetailBo();
+		System.out.println("uid=" + uid);
+		/* 查询智者详细信息 */
+
+		if (UserType.PERSONAL.getCode().equals(type)) {
+			rePartnerDetail = userService.findUserPartnerDetail(uid);
+			if (null != rePartnerDetail) {
+				Integer province = rePartnerDetail.getProvince();
+				if(null!=province) {
+					rePartnerDetail.setProvinceS(districtglossoryservice.selectNameById(province));
+				}
+			}
+		} else {
+			rePartnerDetail = (UserPartnerDetailBo) userService.findOrgPartnerDetail(uid);
+			if (null != rePartnerDetail) {
+				Integer province = rePartnerDetail.getProvince();
+				if(null!=province) {
+					rePartnerDetail.setProvinceS(districtglossoryservice.selectNameById(province));
+				}
+			}
+		}
+
+		/* 查询该智者的相关成果信息 */
+		List<AchievementPartnerListBo> partnerAchievementList = achievementService.findPartnerAchievementList(uid);
+		for (int i = 0; i < partnerAchievementList.size(); i++) {
+			Integer maturity = partnerAchievementList.get(i).getMaturity();
+			if (null != maturity) {
+				if (AchievementMaturity.RESEARCH.getCode().equals(maturity)) {
+					partnerAchievementList.get(i).setMaturityS(AchievementMaturity.RESEARCH.getDesc());
+				} else if (AchievementMaturity.SAMPLE.getCode().equals(maturity)) {
+					partnerAchievementList.get(i).setMaturityS(AchievementMaturity.SAMPLE.getDesc());
+				} else if (AchievementMaturity.PRIMARYTEST.getCode().equals(maturity)) {
+					partnerAchievementList.get(i).setMaturityS(AchievementMaturity.PRIMARYTEST.getDesc());
+				} else if (AchievementMaturity.INTERMEDIATETEST.getCode().equals(maturity)) {
+					partnerAchievementList.get(i).setMaturityS(AchievementMaturity.INTERMEDIATETEST.getDesc());
+				} else if (AchievementMaturity.MASSPRODUCTION.getCode().equals(maturity)) {
+					partnerAchievementList.get(i).setMaturityS(AchievementMaturity.MASSPRODUCTION.getDesc());
+				}
+			}
+		}
+		
+		
+
+		/* 查询相关智者信息 */
+		List<UserPartnerDetailBo> userPartner = userService.findUserPartner();
+		List<UserPartnerDetailBo> reuserPartner = new ArrayList<UserPartnerDetailBo>();
+		if (userPartner.size() >= 4) {
+			int index = (int) new Random().nextInt(userPartner.size() - 3);
+			reuserPartner.add(userPartner.get(index));
+			reuserPartner.add(userPartner.get(index + 1));
+			reuserPartner.add(userPartner.get(index + 2));
+		} else {
+			reuserPartner.addAll(userPartner);
+		}
+		for (int i = 0; i < reuserPartner.size(); i++) {
+			String personalProfile = reuserPartner.get(i).getPersonalProfile();
+			if(null!= personalProfile&& ""!=personalProfile &&personalProfile.length()>40) {
+				personalProfile=personalProfile.substring(0, 40)+"... ...";
+				reuserPartner.get(i).setPersonalProfile(personalProfile);
+			}
+		}
+		
+		mv.setViewName("/user/subscriberDetail");
+		mv.addObject("rePartnerDetail",rePartnerDetail);
+		mv.addObject("reuserPartner",reuserPartner);
+		mv.addObject("partnerAchievementList",partnerAchievementList);
+		return mv;
+
+	};
 
 	@RequestMapping(value = "/user/account/services", method = RequestMethod.GET)
 	public ModelAndView userServices(HttpServletRequest request, ModelAndView modelview) {
@@ -316,9 +397,12 @@ public class WebpageController extends BaseController {
 	public ModelAndView portalInternationalInternationalIndex(HttpServletRequest request, ModelAndView modelview) {
 		modelview.setViewName("/portal/international/internationalIndex");
 		handleBanners(modelview, BannersType.GUO_JI_YE_WU);
-		List<InternationalListBo> listA = achievementService.selectInternationalAchievement(AFTConstants.INTERNATIONAL_ACHIEVEMENT_CACHE_KEY);
-		List<InternationalListBo> listB = userIdentityService.selectInternationalUser(AFTConstants.INTERNATIONAL_USER_CACHE_KEY);
-		List<InternationalListBo> listC = organizationIdentityService.selectInternationalOrganization(AFTConstants.INTERNATIONAL_ORG_CACHE_KEY);
+		List<InternationalListBo> listA = achievementService
+				.selectInternationalAchievement(AFTConstants.INTERNATIONAL_ACHIEVEMENT_CACHE_KEY);
+		List<InternationalListBo> listB = userIdentityService
+				.selectInternationalUser(AFTConstants.INTERNATIONAL_USER_CACHE_KEY);
+		List<InternationalListBo> listC = organizationIdentityService
+				.selectInternationalOrganization(AFTConstants.INTERNATIONAL_ORG_CACHE_KEY);
 		modelview.addObject("achievementInternationalList", listA);
 		modelview.addObject("userInternationalList", listB);
 		modelview.addObject("orgInternationalList", listC);
@@ -348,9 +432,9 @@ public class WebpageController extends BaseController {
 	/**
 	 * 金融圈
 	 */
-	@RequestMapping(value = "/portal/financial/financialIndex", method = RequestMethod.GET)
+	@RequestMapping(value = "/portal/financial/index", method = RequestMethod.GET)
 	public ModelAndView portalFinancialFinancialIndex(HttpServletRequest request, ModelAndView modelview) {
-		modelview.setViewName("/portal/financial/financialIndex");
+		modelview.setViewName("/portal/financial/index");
 		handleBanners(modelview, BannersType.JIN_RONG_QUAN);
 		return modelview;
 	}
@@ -414,10 +498,11 @@ public class WebpageController extends BaseController {
 		handleBanners(modelview, BannersType.JI_SHU_JIAO_YI);
 		return modelview;
 	}
-	
+
 	/**
 	 * 
 	 * 智库咨询
+	 * 
 	 * @param request
 	 * @param modelview
 	 * @return
@@ -428,11 +513,22 @@ public class WebpageController extends BaseController {
 		return modelview;
 	}
 	
+	/**
+	 * 政策列表
+	 * @return 
+	 */
+	@RequestMapping(value="/portal/thinkTank/policyList",method = RequestMethod.GET)
+	public ModelAndView policyList(ModelAndView modelAndView){
+		modelAndView.setViewName("/portal/thinkTank/policyList");
+		return modelAndView;
+	}
+	
 	private void handleBanners(ModelAndView modelview, BannersType bannersType) {
 		List<Banners> banners = bannersService.findPortalBanners(bannersType.getKey());
 		if (!banners.isEmpty()) {
 			modelview.addObject("banners", banners);
 		}
 	}
-
+	
+	
 }

+ 4 - 1
src/main/java/com/goafanti/common/dao/AchievementMapper.java

@@ -6,12 +6,12 @@ import org.apache.ibatis.annotations.Param;
 
 import com.goafanti.achievement.bo.AchievementListBo;
 import com.goafanti.achievement.bo.AchievementOrgOwnerDetailBo;
+import com.goafanti.achievement.bo.AchievementPartnerListBo;
 import com.goafanti.achievement.bo.AchievementUserOwnerDetailBo;
 import com.goafanti.common.model.Achievement;
 import com.goafanti.portal.bo.AchievementDetailBo;
 import com.goafanti.portal.bo.AchievementPortalDetailBo;
 import com.goafanti.portal.bo.AchievementPortalSimilarListBo;
-import com.goafanti.portal.bo.BoutiqueListBo;
 import com.goafanti.portal.bo.InternationalListBo;
 import com.goafanti.residentIntegration.bo.ResidentIntegrationBo;
 
@@ -74,4 +74,7 @@ public interface AchievementMapper {
 	/** 查询猜你喜欢 **/
 	List<AchievementListBo> selectCsutomerLike();
 	
+    /**	查询智者的科技成果**/
+	List<AchievementPartnerListBo>findPartnerAchievementListByPage(String uid);
+	
 }

+ 7 - 0
src/main/java/com/goafanti/common/dao/DemandMapper.java

@@ -1,10 +1,13 @@
 package com.goafanti.common.dao;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
 
+import com.goafanti.achievement.bo.AchievementListBo;
 import com.goafanti.common.model.Demand;
+import com.goafanti.demand.bo.DemandListBo;
 import com.goafanti.demand.bo.DemandManageDetailBo;
 import com.goafanti.portal.bo.DemandPortalDetailBo;
 import com.goafanti.portal.bo.DemandPortalSimilarListBo;
@@ -45,4 +48,8 @@ public interface DemandMapper {
 			@Param("id") String id);
 
 	int updateEmployerId(String id);
+	
+	ArrayList<DemandListBo> selectDemandList (Integer boutique);
+	
+	List<DemandListBo> selectCsutomerLike();
 }

+ 2 - 0
src/main/java/com/goafanti/common/dao/DistrictGlossoryMapper.java

@@ -18,4 +18,6 @@ public interface DistrictGlossoryMapper {
     int updateByPrimaryKey(DistrictGlossory record);
     
     List<DistrictGlossory> findByPid(Integer pid);
+    
+    String selectNameById(Integer id);
 }

+ 6 - 2
src/main/java/com/goafanti/common/dao/UserMapper.java

@@ -1,6 +1,8 @@
 package com.goafanti.common.dao;
 
 
+import java.util.List;
+
 import org.apache.ibatis.annotations.Param;
 
 import com.goafanti.common.model.User;
@@ -34,9 +36,11 @@ public interface UserMapper {
 
 	String findOrgByNameAndMobile(@Param("name") String name, @Param("mobile") String mobile);
 
-	UserPartnerDetailBo findUserPartnerDetail(@Param("uid") String uid, @Param("tokenId") String tokenId);
+	UserPartnerDetailBo findUserPartnerDetail(String uid);
 
-	OrgPartnerDetailBo findOrgPartnerDetail(@Param("uid") String uid, @Param("tokenId") String tokenId);
+	OrgPartnerDetailBo findOrgPartnerDetail(String uid);
 
 	Long selectNumberByPrimaryKey(String userId);
+	
+	List<UserPartnerDetailBo> findUserPartner();
 }

+ 53 - 24
src/main/java/com/goafanti/common/mapper/AchievementMapper.xml

@@ -1080,27 +1080,44 @@
   		a.field_a as fieldA, 
   		a.field_b as fieldB,
   		a.transfer_price as transferPrice,
-  		a.technical_picture_url as technicalpictureurl
+  		a.maturity,
+  		a.introduction,
+  		a.transfer_mode as transferMode,
+  		a.technical_picture_url as technicalPictureUrl
   	from achievement a 
   	left join user u on u.id = a.owner_id
   	where a.deleted_sign = 0 
-  	<if test="keyword != null">
+  	<if test="dataCategory != null and dataCategory != ''">
+  		and a.data_category = #{dataCategory,jdbcType=INTEGER}
+  	</if>
+  	<if test="category != null and category != ''">
+  		and a.category = #{category,jdbcType=INTEGER}
+  	</if>
+  	<if test="fieldA != null and fieldA != ''">
+  		and a.field_a = #{fieldA,jdbcType=INTEGER}
+  	</if>
+  	<if test="keyword != null and keyword != ''">
   		and a.keyword like "%"#{keyword,jdbcType=VARCHAR}"%"
   	</if>
   	<if test="transferMode != null">
   		and a.transfer_mode = #{transferMode,jdbcType=INTEGER}
   	</if>
-  	<if test="dataCategory != null">
-  		and a.data_category = #{dataCategory,jdbcType=INTEGER}
-  	</if>
-  	<if test="fieldA != null">
-  		and a.field_a = #{fieldA,jdbcType=INTEGER}
+  	<if test="upperPrice != null and upperPrice != ''">
+  		and a.transfer_price &lt; #{upperPrice,jdbcType=VARCHAR}
   	</if>
-  	and a.deleted_sign = 0 
+  	<if test="lowerPrice != null and lowerPrice != ''">
+  		and a.transfer_price &gt; #{lowerPrice,jdbcType=VARCHAR}
+  	</if> 	
+  	<!--
   	and a.release_status = 1
-  	and a.audit_status = 3
-  	order by a.release_date desc
-  	<if test="page_sql!=null">
+  	and a.audit_status = 3 -->
+  	<if test="dateSort == 0">
+  		order by a.release_date asc
+  	</if>
+  	<if test="dateSort == 1">
+  		order by a.release_date desc
+  	</if>	
+  	<if test="page_sql != null">
 		${page_sql}
 	</if>
   </select>
@@ -1110,22 +1127,30 @@
   		count(1)
   	from achievement a
   	where a.deleted_sign = 0 
-  	<if test="keyword != null">
+  	<if test="dataCategory != null and dataCategory != ''">
+  		and a.data_category = #{dataCategory,jdbcType=INTEGER}
+  	</if>
+  	<if test="category != null and category != ''">
+  		and a.category = #{category,jdbcType=INTEGER}
+  	</if>
+  	<if test="fieldA != null and fieldA != ''">
+  		and a.field_a = #{fieldA,jdbcType=INTEGER}
+  	</if>
+  	<if test="keyword != null and keyword != ''">
   		and a.keyword like "%"#{keyword,jdbcType=VARCHAR}"%"
   	</if>
   	<if test="transferMode != null">
   		and a.transfer_mode = #{transferMode,jdbcType=INTEGER}
   	</if>
-  	<if test="dataCategory != null">
-  		and a.data_category = #{dataCategory,jdbcType=INTEGER}
-  	</if>
-  	<if test="fieldA != null">
-  		and a.field_a = #{fieldA,jdbcType=INTEGER}
+  	<if test="upperPrice != null and upperPrice != ''">
+  		and a.transfer_price &lt; #{upperPrice,jdbcType=VARCHAR}
   	</if>
-  	and a.deleted_sign = 0 
+  	<if test="lowerPrice != null and lowerPrice != ''">
+  		and a.transfer_price &gt; #{lowerPrice,jdbcType=VARCHAR}
+  	</if> 
+  <!-- 
   	and a.release_status = 1
-  	and a.audit_status = 3
-  	order by a.release_date desc
+  	and a.audit_status = 3 -->
   </select>
   
   <select id="selectAchievementSearchDetail"  resultType="com.goafanti.portal.bo.AchievementDetailBo">
@@ -1197,8 +1222,9 @@
 		owner_type as ownerType,
 		release_date AS releaseDate,
 		field_a as fieldA,
-		field_b as fieldB,
 		maturity,
+		introduction,
+		technical_picture_url as technicalPictureUrl,
 		bargaining_mode as bargainingMode,
 		transfer_price as transferPrice
 	FROM
@@ -1227,6 +1253,7 @@
 		a.id,
 		a.name,
 		a.keyword,
+		a.category,
 		a.introduction,
 		a.maturity,
 		a.transfer_price AS transferPrice,
@@ -1261,6 +1288,7 @@
 		a.id,
 		a.name,
 		a.keyword,
+		a.category,
 		a.introduction,
 		a.maturity,
 		a.transfer_price AS transferPrice,
@@ -1458,7 +1486,7 @@
 	</if>	
   </select>
   
-  <select id="listAchievement" resultType="com.goafanti.portal.bo.BoutiqueListBo">
+  <select id="listAchievement" resultType="com.goafanti.achievement.bo.AchievementListBo">
   		select 
   		a.id, a.name, a.keyword,a.introduction,a.category,
   		a.serial_number as serialNumber, 
@@ -1466,15 +1494,16 @@
   	    a.owner_type as ownerType, 
   		a.owner_name as ownerName,
   		a.field_a as fieldA, 
-  		a.field_b as fieldB,
   		a.transfer_price as transferPrice,
+  		a.transfer_mode as transfermode,
+  		a.maturity,
   		a.technical_picture_url as technicalpictureurl
   		from achievement a 
   		where 
   	    a.deleted_sign = 0 
 		and a.category = 0
   	    and a.release_status = 1
-  	    and a.audit_status = 3
+  	    and a.audit_status = 3 
   	    order by a.release_date desc limit 0,12
   </select>
   

Разница между файлами не показана из-за своего большого размера
+ 1550 - 1165
src/main/java/com/goafanti/common/mapper/DemandMapper.xml


+ 4 - 0
src/main/java/com/goafanti/common/mapper/DistrictGlossoryMapper.xml

@@ -86,4 +86,8 @@
     from district_glossory
     where pid = #{pid,jdbcType=INTEGER}
   </select>
+  
+  <select id="selectNameById" parameterType="java.lang.Integer" resultType="String">
+    select name from aft.district_glossory where id=#{id,jdbcType=INTEGER}
+  </select>
 </mapper>

Разница между файлами не показана из-за своего большого размера
+ 1008 - 935
src/main/java/com/goafanti/common/mapper/UserMapper.xml


+ 3 - 1
src/main/java/com/goafanti/dataGlossory/service/DistrictGlossoryService.java

@@ -11,5 +11,7 @@ public interface DistrictGlossoryService {
 	public List<DistrictGlossory> list(Integer pid);
 
 	public void clear(Integer pid);
-
+	
+	public String selectNameById(Integer id);
+	
 }

+ 6 - 1
src/main/java/com/goafanti/dataGlossory/service/impl/DistrictGlossoryServiceImpl.java

@@ -19,7 +19,7 @@ public class DistrictGlossoryServiceImpl implements DistrictGlossoryService {
 	
 	@Autowired
 	private DistrictGlossoryMapper districtGlossoryMapper;
-
+	
 	@Override
 	public DistrictGlossory selectByPrimaryKey(Integer id) {
 		return districtGlossoryMapper.selectByPrimaryKey(id);
@@ -37,4 +37,9 @@ public class DistrictGlossoryServiceImpl implements DistrictGlossoryService {
 	public void clear(Integer pid) {
 		LoggerUtils.debug(logger, "清除地区列表缓存:[%s]", pid);
 	}
+
+	@Override
+	public String selectNameById(Integer id) {
+		return districtGlossoryMapper.selectNameById(id);
+	}
 }

+ 54 - 1
src/main/java/com/goafanti/demand/bo/DemandListBo.java

@@ -38,14 +38,23 @@ public class DemandListBo {
 	private Date	releaseDate;
 
 	/**
-	 * 需求类型
+	 * 需求类型 
 	 */
 	private Integer	demandType;
+	private String	demandTypeS;
 
 	private Date	validityPeriod;
 
 	private Integer	status;
+	
+	private Integer fixedbudget;
+	
+	private Integer		industryCategoryA;
 
+	private String		industryCategoryAS;
+
+	private String		pictureUrl;
+	
 	/**
 	 * 是否发布(0-未发布,1-发布)
 	 */
@@ -182,4 +191,48 @@ public class DemandListBo {
 
 	}
 
+	public Integer getFixedbudget() {
+		return fixedbudget;
+	}
+
+	public void setFixedbudget(Integer fixedbudget) {
+		this.fixedbudget = fixedbudget;
+	}
+
+	public Integer getIndustryCategoryA() {
+		return industryCategoryA;
+	}
+
+	public void setIndustryCategoryA(Integer industryCategoryA) {
+		this.industryCategoryA = industryCategoryA;
+	}
+
+	public String getIndustryCategoryAS() {
+		return industryCategoryAS;
+	}
+
+	public void setIndustryCategoryAS(String industryCategoryAS) {
+		this.industryCategoryAS = industryCategoryAS;
+	}
+
+	public String getPictureUrl() {
+		return pictureUrl;
+	}
+
+	public void setPictureUrl(String pictureUrl) {
+		this.pictureUrl = pictureUrl;
+	}
+
+	public String getDemandTypeS() {
+		return demandTypeS;
+	}
+
+	public void setDemandTypeS(String demandTypeS) {
+		this.demandTypeS = demandTypeS;
+	}
+
+	
+	
+	
+
 }

+ 8 - 1
src/main/java/com/goafanti/demand/service/DemandService.java

@@ -1,6 +1,7 @@
 package com.goafanti.demand.service;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 
 import com.goafanti.achievement.bo.AchievementDemandListBo;
@@ -57,7 +58,7 @@ public interface DemandService {
 
 	Pagination<DemandSearchListBo> listDemandSearchList(Integer sign, String keyword, Integer industryCategoryA,
 			Integer industryCategoryB, Integer demandType, BigDecimal budgetCostLower, BigDecimal budgetCostUpper,
-			Integer pNo, Integer pSize);
+			Integer pNo, Integer pSize,Integer dateSort);
 
 	DemandSearchDetailBo selectDemandSearchDetail(String uid, String id);
 
@@ -77,4 +78,10 @@ public interface DemandService {
 
 	/** 精品需求 **/
 	Pagination<BoutiqueListBo> boutiqueSearchList(Integer industryCategoryA,Integer pNo, Integer pSize);
+	
+	/** 查询需求 **/
+	ArrayList<DemandListBo> selectDemandList(Integer boutique);
+	
+	/**猜你喜欢**/
+	List<DemandListBo> selectCsutomerLike();
 }

+ 18 - 2
src/main/java/com/goafanti/demand/service/impl/DemandServiceImpl.java

@@ -443,7 +443,7 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 	@Override
 	public Pagination<DemandSearchListBo> listDemandSearchList(Integer sign, String keyword, Integer industryCategoryA,
 			Integer industryCategoryB, Integer demandType, BigDecimal budgetCostLower, BigDecimal budgetCostUpper,
-			Integer pNo, Integer pSize) {
+			Integer pNo, Integer pSize,Integer dateSort) {
 		Map<String, Object> params = new HashMap<>();
 		if (!StringUtils.isBlank(keyword)) {
 			params.put("keyword", keyword);
@@ -472,7 +472,11 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 		if (null != sign) {
 			params.put("sign", sign);
 		}
-
+		
+		if(null != dateSort){
+			params.put("dateSort", dateSort);
+		}
+		
 		if (pNo == null || pNo < 0) {
 			pNo = 1;
 		}
@@ -480,6 +484,7 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 		if (pSize == null || pSize < 0 || pSize > 10) {
 			pSize = 10;
 		}
+		
 		return (Pagination<DemandSearchListBo>) findPage("findSearchDemandListByPage", "findSearchDemandCount", params,
 				pNo, pSize);
 	}
@@ -727,6 +732,7 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 		return demandMapper.selectByPrimaryKey(id);
 	}
 
+	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<BoutiqueListBo> boutiqueSearchList(Integer industryCategoryA, Integer pNo, Integer pSize) {
 		Map<String, Object> params = new HashMap<>();
@@ -735,4 +741,14 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 				params,pNo,pSize);
 	}
 
+	@Override
+	public ArrayList<DemandListBo> selectDemandList(Integer boutique) {
+		return demandMapper.selectDemandList(boutique);
+	}
+
+	@Override
+	public List<DemandListBo> selectCsutomerLike() {
+		return demandMapper.selectCsutomerLike();
+	}
+
 }

+ 31 - 5
src/main/java/com/goafanti/portal/bo/AchievementPortalDetailBo.java

@@ -56,9 +56,13 @@ public class AchievementPortalDetailBo {
 
 	private String			ownerName;
 
-	private Integer			level;
+	private String			ownerType;
+	
+	private Integer			category;
 
 	private Integer			bargainingMode;
+	
+	private String			categoryS;
 
 	public Integer getBargainingMode() {
 		return bargainingMode;
@@ -68,14 +72,16 @@ public class AchievementPortalDetailBo {
 		this.bargainingMode = bargainingMode;
 	}
 
-	public Integer getLevel() {
-		return level;
+
+	public Integer getCategory() {
+		return category;
 	}
 
-	public void setLevel(Integer level) {
-		this.level = level;
+	public void setCategory(Integer category) {
+		this.category = category;
 	}
 
+
 	public String getOwnerName() {
 		return ownerName;
 	}
@@ -271,4 +277,24 @@ public class AchievementPortalDetailBo {
 	public void setReleaseDateFormattedDate(String releaseDateFormattedDate) {
 
 	}
+
+	public String getOwnerType() {
+		return ownerType;
+	}
+
+	public void setOwnerType(String ownerType) {
+		this.ownerType = ownerType;
+	}
+
+	public String getCategoryS() {
+		return categoryS;
+	}
+
+	public void setCategoryS(String categoryS) {
+		this.categoryS = categoryS;
+	}
+
+	
+	
+	
 }

+ 43 - 0
src/main/java/com/goafanti/portal/bo/DemandPortalDetailBo.java

@@ -34,6 +34,14 @@ public class DemandPortalDetailBo {
 	private String		employerName;
 
 	private Integer		level;
+	
+	private String		pictureUrl;
+	
+	private String		employerAddress;
+	
+	private String      validityPeriod;
+	
+	private Integer      fixedbudget;
 
 	public Integer getLevel() {
 		return level;
@@ -163,4 +171,39 @@ public class DemandPortalDetailBo {
 		this.city = city;
 	}
 
+	public String getPictureUrl() {
+		return pictureUrl;
+	}
+
+	public void setPictureUrl(String pictureUrl) {
+		this.pictureUrl = pictureUrl;
+	}
+
+	public String getEmployerAddress() {
+		return employerAddress;
+	}
+
+	public void setEmployerAddress(String employerAddress) {
+		this.employerAddress = employerAddress;
+	}
+
+
+	public Integer getFixedbudget() {
+		return fixedbudget;
+	}
+
+	public void setFixedbudget(Integer fixedbudget) {
+		this.fixedbudget = fixedbudget;
+	}
+
+	public String getValidityPeriod() {
+		return validityPeriod;
+	}
+
+	public void setValidityPeriod(String validityPeriod) {
+		this.validityPeriod = validityPeriod;
+	}
+	
+	
+	
 }

+ 16 - 5
src/main/java/com/goafanti/portal/controller/PortalSearchController.java

@@ -36,19 +36,29 @@ public class PortalSearchController extends BaseController {
 	 * 项目搜索
 	 */
 	@RequestMapping(value = "/achievementList", method = RequestMethod.GET)
-	public Result achievementSearchList(  String keyword,Integer dataCategory,
-			Integer fieldA, String pageNo, String pageSize,String transferMode ) {
+	public Result achievementSearchList(  String keyword,Integer dataCategory,Integer category,
+			Integer fieldA, String pageNo, String pageSize,String transferMode, Integer dateSort,String upperPrice,String lowerPrice) {
 		Result res = new Result();
 		Integer pNo = 1;
 		Integer pSize = 20;
+		if(null != dateSort && dateSort != 0 && dateSort != 1){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "时间排序"));
+		}
+		
 		if (StringUtils.isNumeric(pageSize)) {
 			pSize = Integer.parseInt(pageSize);
 		}
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
+		try{
+			new BigDecimal(upperPrice);
+			new BigDecimal(lowerPrice);
+		}catch (Exception e) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "金额"));
+		}
 		res.setData(achievementService.listAchievementSearchList( 
-				  keyword, dataCategory,fieldA, transferMode, pNo, pSize));
+				  keyword, dataCategory,category,fieldA, transferMode, pNo, pSize,dateSort,upperPrice,lowerPrice));
 		return res;
 	}
 
@@ -58,7 +68,7 @@ public class PortalSearchController extends BaseController {
 	@RequestMapping(value = "/demandList", method = RequestMethod.GET)
 	public Result demandSearchList(Integer sign, String keyword, Integer industryCategoryA, Integer industryCategoryB,
 			Integer demandType, BigDecimal budgetCostLower, BigDecimal budgetCostUpper, String pageNo,
-			String pageSize) {
+			String pageSize,Integer dateSort) {
 		Result res = new Result();
 		Integer pNo = 1;
 		Integer pSize = 10;
@@ -79,7 +89,7 @@ public class PortalSearchController extends BaseController {
 			pNo = Integer.parseInt(pageNo);
 		}
 		res.setData(demandService.listDemandSearchList(sign, keyword, industryCategoryA, industryCategoryB, demandType,
-				budgetCostLower, budgetCostUpper, pNo, pSize));
+				budgetCostLower, budgetCostUpper, pNo, pSize,dateSort));
 		return res;
 	}
 
@@ -156,4 +166,5 @@ public class PortalSearchController extends BaseController {
 		}
 		return res;
 	}
+	
 }

+ 62 - 0
src/main/java/com/goafanti/user/bo/OrgPartnerDetailBo.java

@@ -24,6 +24,19 @@ public class OrgPartnerDetailBo {
 	private String	companyIntroduction;
 
 	private String	interestId;
+	
+	/**用户名**/
+	private String userName;
+	/**工作单位**/
+	private String workUnit;
+	/**职位**/
+	private String position;
+	/**成就**/
+	private String achievement;
+	/**个人头像**/
+	private String personPortraitUrl;
+	/**个人介绍**/
+	private String personalProfile;
 
 	public String getInterestId() {
 		return interestId;
@@ -121,4 +134,53 @@ public class OrgPartnerDetailBo {
 		this.number = number;
 	}
 
+	public String getUserName() {
+		return userName;
+	}
+
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+
+	public String getWorkUnit() {
+		return workUnit;
+	}
+
+	public void setWorkUnit(String workUnit) {
+		this.workUnit = workUnit;
+	}
+
+	public String getPosition() {
+		return position;
+	}
+
+	public void setPosition(String position) {
+		this.position = position;
+	}
+
+	public String getAchievement() {
+		return achievement;
+	}
+
+	public void setAchievement(String achievement) {
+		this.achievement = achievement;
+	}
+
+	public String getPersonPortraitUrl() {
+		return personPortraitUrl;
+	}
+
+	public void setPersonPortraitUrl(String personPortraitUrl) {
+		this.personPortraitUrl = personPortraitUrl;
+	}
+
+	public String getPersonalProfile() {
+		return personalProfile;
+	}
+
+	public void setPersonalProfile(String personalProfile) {
+		this.personalProfile = personalProfile;
+	}
+
+	
 }

+ 63 - 0
src/main/java/com/goafanti/user/bo/UserPartnerDetailBo.java

@@ -4,6 +4,8 @@ public class UserPartnerDetailBo {
 	private String	username;
 
 	private Integer	province;
+	
+	private String	provinceS;
 
 	private Long	number;
 
@@ -24,6 +26,15 @@ public class UserPartnerDetailBo {
 	private String	lifePhotoUrl;
 
 	private String	interestId;
+	
+	/**用户名**/
+	private String userName;
+	/**工作单位**/
+	private String workUnit;
+	/**职位**/
+	private String position;
+	/**成就**/
+	private String achievement;
 
 	public String getInterestId() {
 		return interestId;
@@ -121,4 +132,56 @@ public class UserPartnerDetailBo {
 		this.number = number;
 	}
 
+	public String getUserName() {
+		return userName;
+	}
+
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+
+	public String getWorkUnit() {
+		return workUnit;
+	}
+
+	public void setWorkUnit(String workUnit) {
+		this.workUnit = workUnit;
+	}
+
+	public String getPosition() {
+		return position;
+	}
+
+	public void setPosition(String position) {
+		this.position = position;
+	}
+
+	public String getAchievement() {
+		return achievement;
+	}
+
+	public void setAchievement(String achievement) {
+		this.achievement = achievement;
+	}
+
+	public String getProvinceS() {
+		return provinceS;
+	}
+
+	public void setProvinceS(String provinceS) {
+		this.provinceS = provinceS;
+	}
+
+	@Override
+	public String toString() {
+		return "reuserPartner [username=" + username + ", province=" + province + ", provinceS=" + provinceS
+				+ ", number=" + number + ", city=" + city + ", area=" + area + ", engagedField=" + engagedField
+				+ ", personalProfile=" + personalProfile + ", level=" + level + ", abilityLabel=" + abilityLabel
+				+ ", personPortraitUrl=" + personPortraitUrl + ", lifePhotoUrl=" + lifePhotoUrl + ", interestId="
+				+ interestId + ", userName=" + userName + ", workUnit=" + workUnit + ", position=" + position
+				+ ", achievement=" + achievement + "]";
+	}
+
+	
+	
 }

+ 2 - 0
src/main/java/com/goafanti/user/service/UserService.java

@@ -68,4 +68,6 @@ public interface UserService {
 	Pagination<StarAndExpertListBo> listStarAndExpert(Integer number, String engagedField, String username,
 			String professionalTitle, String workUnit, Integer pNo, Integer pSize);
 
+	List<UserPartnerDetailBo> findUserPartner();
+
 }

+ 7 - 2
src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java

@@ -424,12 +424,12 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 
 	@Override
 	public UserPartnerDetailBo findUserPartnerDetail(String uid) {
-		return userMapper.findUserPartnerDetail(uid, TokenManager.getUserId());
+		return userMapper.findUserPartnerDetail(uid);
 	}
 
 	@Override
 	public OrgPartnerDetailBo findOrgPartnerDetail(String uid) {
-		return userMapper.findOrgPartnerDetail(uid, TokenManager.getUserId());
+		return userMapper.findOrgPartnerDetail(uid);
 	}
 
 	@SuppressWarnings("unchecked")
@@ -511,4 +511,9 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 		return String.valueOf(userMapper.selectNumberByPrimaryKey(userId));
 	}
 
+	@Override
+	public List<UserPartnerDetailBo> findUserPartner() {
+		return userMapper.findUserPartner();
+	}
+
 }

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


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


+ 151 - 0
src/main/webapp/WEB-INF/views/portal/technologyTrading/achievementDetail.html

@@ -0,0 +1,151 @@
+<!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/achievementDetail.css'}" rel="stylesheet">
+</head>
+<body>
+	<header>
+		<div th:replace="common::nav('technologyTrading','achievement')"></div>
+	</header>
+	<!--主体内容区域开始-->
+	<div id="all_achievement">
+		<div class="detail">
+			<div class="detail_top">
+				<div class="detail_topimg">
+					<a href="#"><img
+						th:src="${portalHost + '/img/detail_facebook.jpg'}" alt="" /></a> <a
+						href="#"><img
+						th:src="${portalHost + '/img/detail_weixin.jpg'}" alt="" /></a> <a
+						href="#"><img th:src="${portalHost + '/img/detail_weibo.jpg'}"
+						alt="" /></a>
+				</div>
+				<div class="detail_toptitle">
+					<a href="#">技术交易</a> <a href="#">技术专利</a> <a href="#"
+						class="a_detail">专利详情</a>
+				</div>
+			</div>
+			<div class="detail_center">
+				<div class="detail_centerimg">
+					<div>
+						<!-- <div class="small_img" th:each="detail:${achievementdetail}">
+						    <ul th:if="#{!detail.pictureList.empty}">
+								<li th:each="pic:${detail.pictureList}">
+									<img alt="" th:src="${globalConfig.avatarUploadHost + pic}">
+								</li>
+							</ul>
+							<ul th:if="#{detail.pictureList.empty}">
+							</ul>
+						</div> -->
+						<div class="big_img" th:each="achievementdetail:${achievementdetail}">
+							<img th:src= "${avatarUploadHost+achievementdetail.technicalPictureUrl}"alt="" />
+						</div>
+					</div>
+					<div class="basic"  th:each="achievementdetail:${achievementdetail}">
+						<div class="basic_left">
+							<h5>行业</h5>
+							<p th:text="${achievementdetail.field}"></p>
+						</div>
+						<div class="basic_center">
+							<h5>名称</h5>
+							<p th:text="${achievementdetail.name}"></p>
+						</div>
+						<div class="basic_right">
+							<h5>交易方式</h5>
+							<p th:text="${achievementdetail.transferModeS}"></p>
+						</div>
+						<!-- <span><img th:src="${portalHost + '/img/detail_img5.png'}"alt="" /> <span  >8</span> </span> -->
+						<div class="detail_btn">我要咨询</div>
+					</div>
+					<div class="fine" >
+						<div class="fine_title">精品专利</div>
+						<div th:each="reboutiqueachievement:${reboutiqueachievement}">
+							<img th:src="${avatarUploadHost+reboutiqueachievement.technicalpictureurl}" alt="" />
+							<p th:text="${reboutiqueachievement.name}"></p>
+						</div>
+					</div>
+				</div>
+				<div class="detail_centertext" th:each="achievementdetail:${achievementdetail}">
+					<div class="text_left">
+						<div>
+							<h5 class="left_p">技术成熟度:</h5>
+							<p >可以量产</p>
+						</div>
+						<div>
+							<h5>类型:</h5>
+							<p  th:text="${achievementdetail.categoryS}">发明专利</p>
+						</div>
+						<div>
+							<h5>最近更新</h5>
+							<p  th:text="${achievementdetail.releaseDate}">2017-09-17</p>
+						</div>
+					</div>
+					<div class="text_right">
+						<div>技术简介</div>
+						<p th:text="${achievementdetail.introduction}"></p>
+					</div>
+				</div>
+			</div>
+			<div class="detail_bottom">
+				<div class="line">猜你喜欢</div>
+				<div class="main_introduce" >
+					<ul>
+						<li th:each="reachievementlist:${reachievementlist}">
+							<img th:src="${avatarUploadHost+reachievementlist.technicalpictureurl}" alt="" />
+							<div class="list_text">
+								<p>
+									行业:<span th:text="${reachievementlist.field}"></span>
+								</p>
+								<p >
+									名称:<span th:text="${reachievementlist.name}"></span>
+								</p>
+							    <p >
+									类型<span th:text="${reachievementlist.ownerTypeS}"></span>
+								</p> 
+								<p >
+									交易方式:<span th:text="${reachievementlist.transferModeS}"></span>
+								</p>
+								<a href="#">了解详情</a>
+							</div>
+							<div class="star">
+								<p >成熟度:<span th:text="${reachievementlist.maturityS}"></span></p>
+							</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
+				href="tencent://Message/?Uin=2035994611&websiteName=q-zone.qq.com&Menu=yes">
+					<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>
+	<div th:replace="common::copyright"></div>
+	<div th:replace="common::footer(~{::script})">
+		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
+		<script type="text/javascript"
+			th:src="${portalHost + '/technologyTrading/achievementDetail.js'}"></script>
+	</div>
+</body>
+
+</html>

+ 121 - 0
src/main/webapp/WEB-INF/views/portal/technologyTrading/demandDetail.html

@@ -0,0 +1,121 @@
+<!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/demandDetail.css'}" rel="stylesheet">
+</head>
+
+<body>
+	<header>
+		<div th:replace="common::nav('technologyTrading','demand')"></div>
+	</header>
+	<div id="all_achievement">
+		<div class="detail">
+			<div class="detail_top">
+				<div class="detail_topimg">
+					<a href="#"> <img th:src="${portalHost + '/img/detail_facebook.jpg'}" alt="" /></a> 
+					<a href="#"> <img th:src="${portalHost + '/img/detail_weixin.jpg'}" alt="" /></a> 
+					<a href="#"> <img th:src="${portalHost + '/img/detail_weibo.jpg'}" alt="" /></a>
+				</div>
+				<div class="detail_toptitle" th:each="demand:${demand}">
+					<a href="#">技术交易</a>  <a href="#">技术需求</a>  <a href="#"class="a_detail" th:text="${demand.name}">关于超细颗粒金属碳化物的制造技术</a>
+				</div>
+			</div>
+			<div class="detail_center">
+				<div class="detail_centerimg" th:each="demand:${demand}">
+					<div class="big_text">
+						<h3 th:text="${demand.name}"></h3>
+					</div>
+					<div class="big_img">
+						<img th:src= "${avatarUploadHost+demand.pictureUrl}"alt="" />
+					</div>
+					<div class="basic">
+						<div>
+							<h5>名称:</h5>
+							<p th:text="${demand.name}?${demand.name}:暂无名称"></p>
+						</div>
+						<div>
+							<h5>联系人:</h5>
+							<p th:text="${demand.employerName}?${demand.employerName}:未公开"></p>
+						</div>
+						<div>
+							<h5>联系人地址:</h5>
+							<p th:text="${demand.employerAddress}?${demand.employerAddress}:未公开"></p>
+						</div>
+						<div class="inline_span">
+							<span>行业:</span>  <span th:text="${demand.industryCategoryAS}?${demand.industryCategoryAS}:暂无行业分类"></span>
+						</div>
+						<div class="inline_span" >
+							<span>需求预算:</span> <span th:text="${demand.fixedbudget}?${demand.fixedbudget}:价格面议"></span>
+						</div>
+						<div class="inline_span">
+							<span>有效日期:</span> <span th:text="${demand.validityPeriod}"></span>
+						</div>
+						<!-- <span> <img src="../../img/detail_img5.jpg" alt="" /> <span>8</span></span> -->
+						<div class="detail_btn">我要咨询</div>
+					</div>
+					<div class="fine">
+						<div class="fine_title">精品需求</div>
+						<div th:each="reboutiquedemand:${reboutiquedemand}">
+							<img th:src="${avatarUploadHost+reboutiquedemand.pictureUrl}" alt="" />
+							<p th:text="${reboutiquedemand.name}"></p>
+						</div>
+					</div>
+				</div>
+				<div class="detail_centertext">
+					<div class="text_right" th:each="demand:${demand}">
+						<div>问题描述</div>
+						<p th:text="${demand.problemDes}?${demand.problemDes}:Sorry还没有相关描述"></p>
+					</div>
+				</div>
+			</div>
+			<div class="detail_bottom">
+				<div class="line">猜你喜欢</div>
+				<div class="main_introduce">
+					<ul>
+						<li th:each="redemandlist:${redemandlist}"><img th:src="${avatarUploadHost+redemandlist.pictureUrl}" alt="" />
+							<div class="list_text">
+								<p>
+									行业:<span th:text="${redemandlist.industryCategoryAS}?${redemandlist.industryCategoryAS}:暂无行业分类"></span>
+								</p>
+								<p >
+									名称:<span th:text="${redemandlist.name}?${redemandlist.name}:暂无名称"></span>
+								</p>
+								<p>
+									类型:<span th:text="${redemandlist.demandTypeS}?${redemandlist.demandTypeS}:暂无分类"></span>
+								</p>
+								<p class="money">
+									预算:<span th:text="${redemandlist.fixedbudget}?${redemandlist.fixedbudget}:价格面议"></span>
+								</p>
+								<a href="#">了解详情</a>
+							</div>
+							<div class="star">
+								<p>精品:</p>
+								<ol>
+									<li></li>
+									<li></li>
+									<li></li>
+									<li></li>
+									<li></li>
+								</ol>
+							</div></li>
+					</ul>
+				</div>
+			</div>
+		</div>
+	</div>
+	<footer>
+		<div th:replace="common::copyright"></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/demandDetail.js'}"></script>
+	</div>
+</body>
+
+</html>

+ 162 - 7
src/main/webapp/WEB-INF/views/user/subscriberDetail.html

@@ -1,16 +1,171 @@
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:th="http://www.thymeleaf.org">
+	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="${staticHost+'/user/subscriberDetail.css'}" rel="stylesheet">
+<title>用户详情页</title>
+<link th:href="${portalHost + '/vendors.css'}" rel="stylesheet">
+<link th:href="${portalHost + '/thinkTank/thinkerDetail.css'}" rel="stylesheet">
 </head>
 <body>
-	<div id="root"></div>
-	
+	<header>
+		<div th:replace="common::nav('user','subscriberDetail')"></div>
+	</header>
+
+	<div id="all_thinkerDetail">
+		<div class="thinkerdetail_top" th:each="rePartnerDetail:${rePartnerDetail}">
+			 <div>
+				<div class="detailtop_text">
+					<div>
+						<h4 th:text="${rePartnerDetail.workUnit}?${rePartnerDetail.workUnit}:${rePartnerDetail.username}"></h4><h4 th:text="${rePartnerDetail.position}?${rePartnerDetail.position}:''"></h4>
+						<p th:text="${rePartnerDetail.achievement}"></p>
+					</div>
+				</div> 
+				<div class="detailtop_img">
+					<div class="head_img">
+						<img th:src= "${avatarUploadHost+rePartnerDetail.personPortraitUrl}"alt="" />
+					</div>
+					<div class="people_name" th:text="${rePartnerDetail.username}"></div>
+				</div>
+			</div>
+		</div>
+		<div class="thinkerdetail_center">
+			<div class="detailcenter_left">
+				<div th:each="partnerAchievementList:${partnerAchievementList}">
+					<div class="fruit_title">
+						<p th:text="${partnerAchievementList.maturityS}"></p>
+						<h4  th:text="${partnerAchievementList.name}"></h4>
+					</div>
+					<div class="fruit_text">
+						<p  th:text="${partnerAchievementList.introduction}">
+						</p>
+					</div>
+					<div class="fruit_bottom">
+						<span class="text_spanimg"> 
+							<img th:src="${portalHost + '/img/thinker_detail1.jpg'}" alt="" />
+						</span> 
+						<!-- <span>约1小时|</span> <span>0人约过</span> -->
+					</div>
+				</div> 
+			</div>
+			<div class="detailcenter_right">
+				<div class="right_img">
+					<img th:src="${portalHost + '/img/thinker_detail2.jpg'}" alt="" />
+					<div>
+						线下约见 <span>32次</span>
+					</div> 
+				</div>
+				<div class="right_text" th:each="rePartnerDetail:${rePartnerDetail}">
+					<h3>关于智者</h3>
+					<div>
+						<h5>专业领域:</h5>
+						<p th:text="${rePartnerDetail.abilityLabel}?${rePartnerDetail.abilityLabel}:未知"></p>
+					</div>
+					<div>
+						<h5>所在地:</h5>
+						<p th:text="${rePartnerDetail.provinceS}?${rePartnerDetail.provinceS}:未公开"></p>
+					</div>
+					<div class="summary">
+						<h5>智者简介:</h5>
+						<p th:text="${rePartnerDetail.personalProfile}?${rePartnerDetail.personalProfile}:无"></p>
+					</div>
+					<div class="right_btn">
+						<div class="btn_right">在线咨询</div>
+						<div>线下约见</div>
+					</div>
+				</div>
+					<h3>相关智者</h3>
+				<div class="right_bottom"  th:each="reuserPartner:${reuserPartner}">
+					<div>
+						<div class="people_img"> <img th:src= "${avatarUploadHost+reuserPartner.personPortraitUrl}"alt="" /> </div>
+						<div class="people_text">
+							<h5 th:text="${reuserPartner.username}?${reuserPartner.username}:11111111">纣洪涛</h5>
+							<span th:text="${reuserPartner.position}?${reuserPartner.position}:1111111"></span>
+							<p th:text="${reuserPartner.personalProfile}?${reuserPartner.personalProfile}:暂无简介">哈佛舒服舒服返回上返回是否合适覅和双飞粉石灰粉长沙长沙</p>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+		<!-- <div class="thinkdetail_bottom">
+			<div class="bottom_title">
+				<div>
+					一起来倾听客户的声音
+					<h3>智者评价</h3>
+					<div></div>
+				</div>
+			</div>
+			<div class="bottom_cont">
+				<div>
+					<div class="bottom_conttext">很符合我是否合法 即佛了辐射服 接送费聚四氟及反思和方式飞
+						就爱减肥 佛啊减肥</div>
+					<img src="../../img/thinker_detail5.png" alt="" />
+					<div>
+						<div class="bottompeople_img"></div>
+						<div class="bottompeople_text">
+							<h5>纣洪涛</h5>
+							<span>妇女协会会长</span>
+						</div>
+					</div>
+				</div>
+				<div>
+					<div class="bottom_conttext">非常牛逼</div>
+					<img src="../../img/thinker_detail3.png" alt="" />
+					<div>
+						<div class="bottompeople_img"></div>
+						<div class="bottompeople_text">
+							<h5>纣洪涛</h5>
+							<span>妇女协会会长</span>
+						</div>
+					</div>
+				</div>
+				<div>
+					<div class="bottom_conttext">很好</div>
+					<img src="../../img/thinker_detail5.png" alt="" />
+					<div>
+						<div class="bottompeople_img"></div>
+						<div class="bottompeople_text">
+							<h5>纣洪涛</h5>
+							<span>妇女协会会长</span>
+						</div>
+					</div>
+				</div>
+				<div>
+					<div class="bottom_conttext">太厉害了</div>
+					<img src="../../img/thinker_detail5.png" alt="" />
+					<div>
+						<div class="bottompeople_img"></div>
+						<div class="bottompeople_text">
+							<h5>纣洪涛</h5>
+							<span>妇女协会会长</span>
+						</div>
+					</div>
+				</div>
+				<div>
+					<div class="bottom_conttext">看着就想买</div>
+					<img src="../../img/thinker_detail5.png" alt="" />
+					<div>
+						<div class="bottompeople_img"></div>
+						<div class="bottompeople_text">
+							<h5>纣洪涛</h5>
+							<span>妇女协会会长</span>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div> -->
+	</div>
+
+	<footer>
+		<div th:replace="common::copyright"></div>
+		<div th:replace="common::login"></div>
+	</footer>
+	<div class="smg">
+		<input type="text" name="msg" value="" id="msg" />
+	</div>
 	<div th:replace="common::footer(~{::script})">
-		<script type="text/javascript" th:src="${staticHost+'/vendors.js'}"></script>
-		<script type="text/javascript" th:src="${staticHost+'/user/subscriberDetail.js'}"></script>
+		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
+		<script type="text/javascript" th:src="${portalHost + '/thinkTank/thinkerDetail.js'}"></script>
 	</div>
 </body>
 </html>