Antiloveg 8 anni fa
parent
commit
252609d371

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

@@ -482,12 +482,12 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 
 	@Override
 	public AchievementPortalDetailBo findUserPortalAchievementDetail(String id) {
-		return achievementMapper.findUserPortalAchievementDetail(id);
+		return achievementMapper.findUserPortalAchievementDetail(id, TokenManager.getUserId());
 	}
 
 	@Override
 	public AchievementPortalDetailBo findOrgPortalAchievementDetail(String id) {
-		return achievementMapper.findOrgPortalAchievementDetail(id);
+		return achievementMapper.findOrgPortalAchievementDetail(id, TokenManager.getUserId());
 	}
 
 	@Override

+ 79 - 16
src/main/java/com/goafanti/common/controller/PortalController.java

@@ -1,6 +1,5 @@
 package com.goafanti.common.controller;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -16,6 +15,7 @@ import com.goafanti.achievement.service.AchievementService;
 import com.goafanti.common.enums.AchievementMaturity;
 import com.goafanti.common.enums.AchievementTransferMode;
 import com.goafanti.common.enums.UserType;
+import com.goafanti.common.service.FieldGlossoryService;
 import com.goafanti.demand.service.DemandService;
 import com.goafanti.portal.bo.AchievementPortalDetailBo;
 import com.goafanti.portal.bo.AchievementPortalSimilarListBo;
@@ -25,9 +25,17 @@ 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 static final String		UNIT		= "万元";
+
+	private static final int		MULTIPLE	= 20;
+
+	private static final String		DELIMITER	= "-";
 
 	@RequestMapping(value = "/index", method = RequestMethod.GET)
 	public String index(ModelAndView modelview) {
@@ -52,16 +60,53 @@ public class PortalController extends BaseController {
 			demand = demandService.findOrgPortalDemandDetail(id);
 		}
 		if (null != demand) {
-			String keyword = demand.getKeyword();
-			if (StringUtils.isNotBlank(keyword)) {
-				demand.setKeywordList(Arrays.asList(keyword.trim().split(",|,")));
-			}
 			Integer industryCategoryA = demand.getIndustryCategoryA();
+			String industryCategory = "";
+			boolean a = Boolean.FALSE;
+			boolean b = Boolean.FALSE;
 			if (null != industryCategoryA) {
 				List<DemandPortalSimilarListBo> similarList = demandService.findByIndustryCategoryA(industryCategoryA,
 						demand.getId());
+				if (!similarList.isEmpty()) {
+					for (DemandPortalSimilarListBo s : similarList) {
+						a = Boolean.FALSE;
+						b = Boolean.FALSE;
+						industryCategory = "";
+						if (StringUtils.isBlank(s.getIndustryCategoryAS())) {
+							a = Boolean.TRUE;
+						}
+						if (StringUtils.isBlank(s.getIndustryCategoryBS())) {
+							b = Boolean.TRUE;
+						}
+						industryCategory += (a ? s.getIndustryCategoryAS() : "") + (a && b ? DELIMITER : "")
+								+ (b ? s.getIndustryCategoryBS() : "");
+						s.setIndustryCategory(industryCategory);
+						if (null != s.getBudgetCost()) {
+							s.setBudgetCostS(s.getBudgetCostS() + UNIT);
+						}
+					}
+
+				}
 				mv.addObject("similarList", similarList);
+				a = Boolean.FALSE;
+				if (StringUtils.isNotBlank(demand.getIndustryCategoryAS())) {
+					a = Boolean.TRUE;
+				}
+			}
+			b = Boolean.FALSE;
+			if (StringUtils.isNotBlank(demand.getIndustryCategoryBS())) {
+				b = Boolean.TRUE;
 			}
+
+			industryCategory += (a ? demand.getIndustryCategoryAS() : "") + (a && b ? DELIMITER : "")
+					+ (b ? demand.getIndustryCategoryBS() : "");
+			demand.setIndustryCategory(industryCategory);
+
+			String location = "";
+			String province = demand.getProvince();
+			String city = demand.getCity();
+			location += (StringUtils.isBlank(province) ? "" : province) + (StringUtils.isBlank(city) ? "" : city);
+			demand.setLocation(location);
 		}
 		mv.setViewName("/portal/detail/demandDetail");
 		mv.addObject("demand", demand);
@@ -82,25 +127,39 @@ public class PortalController extends BaseController {
 			achievement = achievementService.findOrgPortalAchievementDetail(id);
 		}
 		if (null != achievement) {
-			String keyword = achievement.getKeyword();
-			if (StringUtils.isNotBlank(keyword)) {
-				achievement.setKeywordList(Arrays.asList(keyword.trim().split(",|,")));
-			}
 			Integer fieldA = achievement.getFieldA();
+			String field = "";
+			boolean a = Boolean.FALSE;
+			boolean b = Boolean.FALSE;
 			if (null != fieldA) {
 				List<AchievementPortalSimilarListBo> similarList = achievementService.findByFieldA(fieldA,
 						achievement.getId(), type);
+				if (!similarList.isEmpty()) {
+					for (AchievementPortalSimilarListBo bo : similarList) {
+						if (null != bo.getMaturity()) {
+							bo.setMaturityS(bo.getMaturity() * MULTIPLE + "%");
+						}
+						if (null != bo.getTransferPrice()) {
+							bo.setTransferPriceS(bo.getTransferPrice() + UNIT);
+						}
+					}
+				}
 				mv.addObject("similarList", similarList);
+				if (StringUtils.isNotBlank(achievement.getFieldAS())) {
+					a = Boolean.TRUE;
+				}
 			}
+			if (StringUtils.isNotBlank(achievement.getFieldBS())) {
+				b = Boolean.TRUE;
+			}
+
+			field += (a ? achievement.getFieldAS() : "") + (a && b ? DELIMITER : "") + (b ? achievement.getFieldBS() : "");
+			achievement.setField(field);
 			String technicalPictureUrl = achievement.getTechnicalPictureUrl();
 			if (StringUtils.isNotBlank(technicalPictureUrl)) {
 				achievement.setPictureList(Arrays.asList(technicalPictureUrl.trim().split(",|,")));
 			}
-			List<String> list = new ArrayList<String>();
-			list.add("/achievement/achievement/28140801611164_achievement_technical_picture.jpg");
-			list.add("/achievement/achievement/28140801611164_ach	ievement_technical_picture.jpg");
-			
-			achievement.setPictureList(list);
+
 			Integer transfermode = achievement.getTransferMode();
 			if (null != transfermode) {
 				if (AchievementTransferMode.FULLTRANSFER.getCode().equals(transfermode)) {
@@ -132,7 +191,11 @@ public class PortalController extends BaseController {
 			String province = achievement.getProvince();
 			String city = achievement.getCity();
 			location += (StringUtils.isBlank(province) ? "" : province) + (StringUtils.isBlank(city) ? "" : city);
+			if (null != achievement.getTransferPrice()) {
+				achievement.setTransferPriceS(achievement.getTransferPrice() + UNIT);
+			}
 			achievement.setLocation(location);
+
 		}
 		mv.setViewName("/portal/detail/achievementDetail");
 		mv.addObject("achievement", achievement);

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

@@ -38,9 +38,9 @@ public interface AchievementMapper {
 
 	Integer findAchievementNumByUid(String uid);
 
-	AchievementPortalDetailBo findUserPortalAchievementDetail(String id);
+	AchievementPortalDetailBo findUserPortalAchievementDetail(@Param("id")String id, @Param("uid")String uid);
 
-	AchievementPortalDetailBo findOrgPortalAchievementDetail(String id);
+	AchievementPortalDetailBo findOrgPortalAchievementDetail(@Param("id")String id, @Param("uid")String uid);
 
 	List<AchievementPortalSimilarListBo> findUserPortalSimilarByFieldA(@Param("fieldA") Integer fieldA,
 			@Param("id") String id);

+ 17 - 0
src/main/java/com/goafanti/common/dao/FieldGlossoryMapper.java

@@ -0,0 +1,17 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.FieldGlossory;
+
+public interface FieldGlossoryMapper {
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(FieldGlossory record);
+
+    int insertSelective(FieldGlossory record);
+
+    FieldGlossory selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(FieldGlossory record);
+
+    int updateByPrimaryKey(FieldGlossory record);
+}

+ 16 - 8
src/main/java/com/goafanti/common/mapper/AchievementMapper.xml

@@ -1139,19 +1139,23 @@
 		a.maturity,
 		a.transfer_price AS transferPrice,
 		a.patent_case AS patentCase,
-		a.field_a AS fieldA,
-		a.field_b AS fieldB,
-		a.field_c AS fieldC,
+		a.field_a as fieldA,
+		fg.name AS fieldAS,
+		fgg.name AS fieldBS,
 		a.release_date AS releaseDate,
 		dg.name as province,
 		dgg.name as city,
 		a.technical_picture_url AS technicalPictureUrl,
-		a.transfer_mode as transferMode
+		a.transfer_mode as transferMode,
+		interest.id as interestId
 	FROM
 		achievement a
 	LEFT JOIN user_identity ui ON a.owner_id = ui.uid
 	LEFT JOIN district_glossory dg on dg.id = ui.province
 	LEFT JOIN district_glossory dgg on dgg.id = ui.city
+	LEFT JOIN field_glossory fg on fg.id = a.field_a
+	LEFT JOIN field_glossory fgg on fgg.id = a.field_b
+	LEFT JOIN achievement_interest interest on interest.achievement_id = a.id and interest.uid = #{uid,jdbcType=VARCHAR}
 	WHERE
 		a.id = #{id,jdbcType=VARCHAR}
   </select>
@@ -1165,19 +1169,23 @@
 		a.maturity,
 		a.transfer_price AS transferPrice,
 		a.patent_case AS patentCase,
-		a.field_a AS fieldA,
-		a.field_b AS fieldB,
-		a.field_c AS fieldC,
+		a.field_a as fieldA,
+		fg.name AS fieldAS,
+		fgg.name AS fieldBS,
 		a.release_date AS releaseDate,
 		dg.name as province,
 		dgg.name as city,
 		a.technical_picture_url AS technicalPictureUrl,
-		a.transfer_mode as transferMode
+		a.transfer_mode as transferMode,
+		interest.id as interestId
 	FROM
 		achievement a
 	LEFT JOIN organization_identity oi ON a.owner_id = oi.uid
 	LEFT JOIN district_glossory dg on dg.id = oi.licence_province
 	LEFT JOIN district_glossory dgg on dgg.id = oi.licence_city
+	LEFT JOIN field_glossory fg on fg.id = a.field_a
+	LEFT JOIN field_glossory fgg on fgg.id = a.field_b
+	LEFT JOIN achievement_interest interest on interest.achievement_id = a.id and interest.uid = #{uid,jdbcType=VARCHAR}
 	WHERE
 		a.id = #{id,jdbcType=VARCHAR}
   </select>

+ 18 - 8
src/main/java/com/goafanti/common/mapper/DemandMapper.xml

@@ -1030,17 +1030,21 @@
 		d.name,
 		d.keyword,
 		d.industry_category_a AS industryCategoryA,
-		d.industry_category_b AS industryCategoryB,
-		d.industry_category_c AS industryCategoryC,
+		fg.name AS industryCategoryAS,
+		fgg.name AS industryCategorBS,
 		d.budget_cost AS budgetCost,
 		d.problem_des AS problemDes,
 		dg.name AS province,
-		dgg.name AS city
+		dgg.name AS city,
+		interest.id as interestId
 	FROM
 		demand d
 	LEFT JOIN user_identity ui ON d.employer_id = ui.uid
 	LEFT JOIN district_glossory dg ON dg.id = ui.province
 	LEFT JOIN district_glossory dgg ON dgg.id = ui.city
+	LEFT JOIN field_glossory fg on fg.id = d.industry_category_a
+	LEFT JOIN field_glossory fgg on fgg.id = d.industry_category_b
+	LEFT JOIN demand_interest interest on interest.demand_id = d.id and interest.uid = #{uid,jdbcType=VARCHAR}
 	WHERE
 		d.id = #{id,jdbcType=VARCHAR}
   </select>
@@ -1051,17 +1055,21 @@
 		d.name,
 		d.keyword,
 		d.industry_category_a AS industryCategoryA,
-		d.industry_category_b AS industryCategoryB,
-		d.industry_category_c AS industryCategoryC,
+		fg.name AS industryCategoryB,
+		fgg.name AS industryCategoryC,
 		d.budget_cost AS budgetCost,
 		d.problem_des AS problemDes,
 		dg.name AS province,
-		dgg.name AS city
+		dgg.name AS city,
+		interest.id as interestId
 	FROM
 		demand d
 	LEFT JOIN organization_identity oi ON d.employer_id = oi.uid
 	LEFT JOIN district_glossory dg ON dg.id = oi.licence_province
 	LEFT JOIN district_glossory dgg ON dgg.id = oi.licence_city
+	LEFT JOIN field_glossory fg on fg.id = d.industry_category_a
+	LEFT JOIN field_glossory fgg on fgg.id = d.industry_category_b
+	LEFT JOIN demand_interest interest on interest.demand_id = d.id and interest.uid = #{uid,jdbcType=VARCHAR}
 	WHERE
 		d.id = #{id,jdbcType=VARCHAR}
   </select>
@@ -1070,14 +1078,16 @@
   	 select 
 	    d.id,
 	    d.name,
-	    d.industry_category_a as industryCategoryA,
-	    d.industry_category_b as industryCategoryB,
+	    fg.name as industryCategoryAS,
+	    fgg.name as industryCategoryBS,
 	    d.problem_des as problemDes,
 	    d.budget_cost as budgetCost,
 	    u.lvl as level
     from 
     	demand d
     left join user u on u.id = d.employer_id
+    LEFT JOIN field_glossory fg on fg.id = d.industry_category_a
+	LEFT JOIN field_glossory fgg on fgg.id = d.industry_category_b
     where 
     	d.audit_status = 3
     and d.release_status = 1

+ 82 - 0
src/main/java/com/goafanti/common/mapper/FieldGlossoryMapper.xml

@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.goafanti.common.dao.FieldGlossoryMapper" >
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.FieldGlossory" >
+    <id column="id" property="id" jdbcType="INTEGER" />
+    <result column="name" property="name" jdbcType="VARCHAR" />
+    <result column="pid" property="pid" jdbcType="INTEGER" />
+    <result column="level" property="level" jdbcType="INTEGER" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    id, name, pid, level
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+    select 
+    <include refid="Base_Column_List" />
+    from field_glossory
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+    delete from field_glossory
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.FieldGlossory" >
+    insert into field_glossory (id, name, pid, 
+      level)
+    values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{pid,jdbcType=INTEGER}, 
+      #{level,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.FieldGlossory" >
+    insert into field_glossory
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        id,
+      </if>
+      <if test="name != null" >
+        name,
+      </if>
+      <if test="pid != null" >
+        pid,
+      </if>
+      <if test="level != null" >
+        level,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="name != null" >
+        #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="pid != null" >
+        #{pid,jdbcType=INTEGER},
+      </if>
+      <if test="level != null" >
+        #{level,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.FieldGlossory" >
+    update field_glossory
+    <set >
+      <if test="name != null" >
+        name = #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="pid != null" >
+        pid = #{pid,jdbcType=INTEGER},
+      </if>
+      <if test="level != null" >
+        level = #{level,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.FieldGlossory" >
+    update field_glossory
+    set name = #{name,jdbcType=VARCHAR},
+      pid = #{pid,jdbcType=INTEGER},
+      level = #{level,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+</mapper>

+ 52 - 0
src/main/java/com/goafanti/common/model/FieldGlossory.java

@@ -0,0 +1,52 @@
+package com.goafanti.common.model;
+
+public class FieldGlossory {
+    private Integer id;
+
+    /**
+    * 名称
+    */
+    private String name;
+
+    /**
+    * 上级ID
+    */
+    private Integer pid;
+
+    /**
+    * 层级
+    */
+    private Integer level;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getPid() {
+        return pid;
+    }
+
+    public void setPid(Integer pid) {
+        this.pid = pid;
+    }
+
+    public Integer getLevel() {
+        return level;
+    }
+
+    public void setLevel(Integer level) {
+        this.level = level;
+    }
+}

+ 29 - 0
src/main/java/com/goafanti/common/service/FieldGlossoryService.java

@@ -0,0 +1,29 @@
+package com.goafanti.common.service;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+
+import com.goafanti.common.dao.FieldGlossoryMapper;
+import com.goafanti.common.utils.LoggerUtils;
+@Service
+public class FieldGlossoryService {
+	@Autowired
+	FieldGlossoryMapper		fieldGlossoryMapper;
+	
+	private static final Logger	logger	= LoggerFactory.getLogger(FieldGlossoryService.class);
+	
+	@Cacheable(value = "FieldGlossoryCache", key = "'FieldGlossory:'+#id")
+	public String getName(Integer id){
+		LoggerUtils.debug(logger, "缓存领域列表:[%s]", id);
+		return fieldGlossoryMapper.selectByPrimaryKey(id).getName();
+	}
+	
+	@CacheEvict(value = "FieldGlossoryCache", key = "'FieldGlossory:'+#id")
+	public void clear(Integer id) {
+		LoggerUtils.debug(logger, "清除领域列表缓存:[%s]", id);
+	}
+}

+ 58 - 36
src/main/java/com/goafanti/portal/bo/AchievementPortalDetailBo.java

@@ -25,12 +25,12 @@ public class AchievementPortalDetailBo {
 	private BigDecimal		transferPrice;
 
 	private String			patentCase;
+	
+	private Integer 		fieldA;
 
-	private Integer			fieldA;
+	private String			fieldAS;
 
-	private Integer			fieldB;
-
-	private Integer			fieldC;
+	private String			fieldBS;
 
 	private Date			releaseDate;
 
@@ -48,7 +48,27 @@ public class AchievementPortalDetailBo {
 
 	private List<String>	pictureList;
 
-	private List<String>	keywordList;
+	private String			interestId;
+
+	private String			field;
+
+	private String			transferPriceS;
+	
+	public String getTransferPriceS() {
+		return transferPriceS;
+	}
+
+	public void setTransferPriceS(String transferPriceS) {
+		this.transferPriceS = transferPriceS;
+	}
+
+	public String getField() {
+		return field;
+	}
+
+	public void setField(String field) {
+		this.field = field;
+	}
 
 	public String getLocation() {
 		return location;
@@ -114,29 +134,6 @@ public class AchievementPortalDetailBo {
 		this.patentCase = patentCase;
 	}
 
-	public Integer getFieldA() {
-		return fieldA;
-	}
-
-	public void setFieldA(Integer fieldA) {
-		this.fieldA = fieldA;
-	}
-
-	public Integer getFieldB() {
-		return fieldB;
-	}
-
-	public void setFieldB(Integer fieldB) {
-		this.fieldB = fieldB;
-	}
-
-	public Integer getFieldC() {
-		return fieldC;
-	}
-
-	public void setFieldC(Integer fieldC) {
-		this.fieldC = fieldC;
-	}
 
 	public Date getReleaseDate() {
 		return releaseDate;
@@ -170,14 +167,6 @@ public class AchievementPortalDetailBo {
 		this.pictureList = pictureList;
 	}
 
-	public List<String> getKeywordList() {
-		return keywordList;
-	}
-
-	public void setKeywordList(List<String> keywordList) {
-		this.keywordList = keywordList;
-	}
-
 	public String getProvince() {
 		return province;
 	}
@@ -210,6 +199,39 @@ public class AchievementPortalDetailBo {
 		this.maturityS = maturityS;
 	}
 
+	public String getInterestId() {
+		return interestId;
+	}
+
+	public void setInterestId(String interestId) {
+		this.interestId = interestId;
+	}
+	
+
+	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 getFieldBS() {
+		return fieldBS;
+	}
+
+	public void setFieldBS(String fieldBS) {
+		this.fieldBS = fieldBS;
+	}
+
 	public String getReleaseDateFormattedDate() {
 		if (this.releaseDate == null) {
 			return null;

+ 30 - 0
src/main/java/com/goafanti/portal/bo/AchievementPortalSimilarListBo.java

@@ -15,6 +15,36 @@ public class AchievementPortalSimilarListBo {
 
 	private BigDecimal	transferPrice;
 
+	private String		location;
+
+	private String		maturityS;
+
+	private String		transferPriceS;
+	
+	public String getTransferPriceS() {
+		return transferPriceS;
+	}
+
+	public void setTransferPriceS(String transferPriceS) {
+		this.transferPriceS = transferPriceS;
+	}
+
+	public String getMaturityS() {
+		return maturityS;
+	}
+
+	public void setMaturityS(String maturityS) {
+		this.maturityS = maturityS;
+	}
+
+	public String getLocation() {
+		return location;
+	}
+
+	public void setLocation(String location) {
+		this.location = location;
+	}
+
 	public BigDecimal getTransferPrice() {
 		return transferPrice;
 	}

+ 40 - 19
src/main/java/com/goafanti/portal/bo/DemandPortalDetailBo.java

@@ -1,7 +1,6 @@
 package com.goafanti.portal.bo;
 
 import java.math.BigDecimal;
-import java.util.List;
 
 public class DemandPortalDetailBo {
 	private String			id;
@@ -12,9 +11,9 @@ public class DemandPortalDetailBo {
 
 	private Integer			industryCategoryA;
 
-	private Integer			industryCategoryB;
+	private String			industryCategoryAS;
 
-	private Integer			industryCategoryC;
+	private String			industryCategoryBS;
 
 	private BigDecimal		budgetCost;
 
@@ -24,7 +23,35 @@ public class DemandPortalDetailBo {
 
 	private String			problemDes;
 
-	private List<String>	keywordList;
+	private String			interestId;
+
+	private String			location;
+
+	private String			industryCategory;
+	
+	public String getIndustryCategory() {
+		return industryCategory;
+	}
+
+	public void setIndustryCategory(String industryCategory) {
+		this.industryCategory = industryCategory;
+	}
+
+	public String getLocation() {
+		return location;
+	}
+
+	public void setLocation(String location) {
+		this.location = location;
+	}
+
+	public String getInterestId() {
+		return interestId;
+	}
+
+	public void setInterestId(String interestId) {
+		this.interestId = interestId;
+	}
 
 	public String getId() {
 		return id;
@@ -58,20 +85,21 @@ public class DemandPortalDetailBo {
 		this.industryCategoryA = industryCategoryA;
 	}
 
-	public Integer getIndustryCategoryB() {
-		return industryCategoryB;
+
+	public String getIndustryCategoryAS() {
+		return industryCategoryAS;
 	}
 
-	public void setIndustryCategoryB(Integer industryCategoryB) {
-		this.industryCategoryB = industryCategoryB;
+	public void setIndustryCategoryAS(String industryCategoryAS) {
+		this.industryCategoryAS = industryCategoryAS;
 	}
 
-	public Integer getIndustryCategoryC() {
-		return industryCategoryC;
+	public String getIndustryCategoryBS() {
+		return industryCategoryBS;
 	}
 
-	public void setIndustryCategoryC(Integer industryCategoryC) {
-		this.industryCategoryC = industryCategoryC;
+	public void setIndustryCategoryBS(String industryCategoryBS) {
+		this.industryCategoryBS = industryCategoryBS;
 	}
 
 	public BigDecimal getBudgetCost() {
@@ -106,12 +134,5 @@ public class DemandPortalDetailBo {
 		this.city = city;
 	}
 
-	public List<String> getKeywordList() {
-		return keywordList;
-	}
-
-	public void setKeywordList(List<String> keywordList) {
-		this.keywordList = keywordList;
-	}
 
 }

+ 30 - 10
src/main/java/com/goafanti/portal/bo/DemandPortalSimilarListBo.java

@@ -7,9 +7,9 @@ public class DemandPortalSimilarListBo {
 
 	private String		name;
 
-	private Integer		industryCategoryA;
+	private String		industryCategoryAS;
 
-	private Integer		industryCategoryB;
+	private String		industryCategoryBS;
 
 	private String		problemDes;
 
@@ -17,6 +17,26 @@ public class DemandPortalSimilarListBo {
 
 	private Integer		level;
 
+	private String		industryCategory;
+
+	private String		budgetCostS;
+	
+	public String getBudgetCostS() {
+		return budgetCostS;
+	}
+
+	public void setBudgetCostS(String budgetCostS) {
+		this.budgetCostS = budgetCostS;
+	}
+
+	public String getIndustryCategory() {
+		return industryCategory;
+	}
+
+	public void setIndustryCategory(String industryCategory) {
+		this.industryCategory = industryCategory;
+	}
+
 	public String getId() {
 		return id;
 	}
@@ -33,20 +53,20 @@ public class DemandPortalSimilarListBo {
 		this.name = name;
 	}
 
-	public Integer getIndustryCategoryA() {
-		return industryCategoryA;
+	public String getIndustryCategoryAS() {
+		return industryCategoryAS;
 	}
 
-	public void setIndustryCategoryA(Integer industryCategoryA) {
-		this.industryCategoryA = industryCategoryA;
+	public void setIndustryCategoryAS(String industryCategoryAS) {
+		this.industryCategoryAS = industryCategoryAS;
 	}
 
-	public Integer getIndustryCategoryB() {
-		return industryCategoryB;
+	public String getIndustryCategoryBS() {
+		return industryCategoryBS;
 	}
 
-	public void setIndustryCategoryB(Integer industryCategoryB) {
-		this.industryCategoryB = industryCategoryB;
+	public void setIndustryCategoryBS(String industryCategoryBS) {
+		this.industryCategoryBS = industryCategoryBS;
 	}
 
 	public String getProblemDes() {

File diff suppressed because it is too large
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/detail/achievementDetail.html


+ 153 - 0
src/main/webapp/WEB-INF/views/portal/detail/demandDetail.html

@@ -0,0 +1,153 @@
+<!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 + '/highTech/detail/demandDetail.css'}"
+	rel="stylesheet">
+</head>
+
+<body>
+	<th:block th:fragment="{topNav}">
+		<div class="container">
+			<div class="lt">欢迎进入科技认知计算交易平台!</div>
+			<div class="rt" th:if="${!isLogin}">
+				<a th:href="${basePath + '/user/login.html'}" class="login">登录</a> <a
+					th:href="${basePath + '/user/signIn.html'}">注册</a>
+			</div>
+			<div class="rt" th:if="${isLogin}">
+				<span>欢迎光临,</span> <a class="login"
+					th:href="${basePath + '/user/account/index.html'}"
+					th:text="${userName}">个人中心</a> <a href="/user/logout">退出</a>
+			</div>
+		</div>
+	</th:block>
+	<div class="container header_nav header_nav_detail">
+		<div class="row clearfix">
+			<div class="col-md-3 logo">
+				<img th:src="${portalHost + '/img/logo.png'}" />
+			</div>
+			<div class="col-md-6">
+				<ul class="nav_content_detail clearfix">
+					<li><a href="/protal/search/demand.html">技术交易</a></li>
+					<li class="selected"><a href="#">需求</a></li>
+				</ul>
+			</div>
+			<div class="col-md-3 search">
+				<div class="search-box">
+					<input id="searchInput" placeholder="需求关键词搜索" class="search-input"
+						type="" /> <img id="searchImg" class="search-img"
+						th:src="${portalHost + '/img/search_ioc.png'}" />
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<div class="container detail_content">
+		<div class="detail_title" th:text="${demand.name}">铸造用高发热保温冒口套</div>
+		<div class="row">
+			<div class="col-md-6 detial_sub">
+				<span class="detial_sub_icon"> <img
+					th:src="${portalHost} + '/img/demand_ico_1.png'" alt="行业" />
+				</span> <span class="detial_sub_title"> 行业: </span> <span
+					class="detial_sub_text" th:text="${demand.industryCategory}">
+					机械-铸造/热处理 </span>
+			</div>
+			<div class="col-md-6 detial_sub">
+				<span class="detial_sub_icon"> <img
+					th:src="${portalHost + '/img/demand_ico_2.png'}" alt="标签" />
+				</span> <span class="detial_sub_title"> 标签: </span> <span
+					class="detial_sub_text" th:text="${demand.keyword}">
+					xxxxxxxxxxx </span>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-6 detial_sub">
+				<span class="detial_sub_icon"> <img
+					th:src="${portalHost +'/img/demand_ico_3.png'}" alt="预算" />
+				</span> <span class="detial_sub_title"> 预算: </span> <span
+					class="money_text" th:text="${demand.budgetCost + '万元'}"> 面议
+				</span>
+			</div>
+			<div class="col-md-6 detial_sub">
+				<span class="detial_sub_icon"> <img
+					th:src="${portalHost +'/img/demand_ico_4.png'}" alt="地址" />
+				</span> <span class="detial_sub_title"> 地址: </span> <span
+					class="money_text" th:text="${demand.location}"> 四川成都 </span>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 detial_sub">
+				<span class="detial_sub_icon"> <img
+					th:src="${portalHost + '/img/demand_ico_5.png'}" alt="需求" />
+				</span> <span class="detial_sub_title"> 需求: </span> <span
+					class="detial_sub_text" th:text="${demand.problemDes}">
+					随着铸造行业的整体质量提升,冒口市场需求、PVC粉的聚合度
+					的影响,环保型增塑剂的研发。随着铸造行业的整体质量提升,冒口市场需求、PVC粉的聚合度
+					的影响,环保型增塑剂的研发。随着铸造行业的整体质量提升,冒口市场需求、PVC粉的聚合度
+					的影响,环保型增塑剂的研发。随着铸造行业的整体质量提升,冒口市场需求、PVC粉的聚合度 的影响,环保型增塑剂的研发。 </span>
+			</div>
+		</div>
+		<div class="row">
+			<div class="detail_button clearfix">
+				<button type="button" id="interest"
+					th:class="${isLogin} ? (${demand.interestId != null} ? 'btn dislike': 'btn like') : 'btn dislike'">我感兴趣</button>
+				<button type="button" id="order" class="btn">我要接单</button>
+			</div>
+		</div>
+	</div>
+
+	<div class="container detail_interest">
+		<div class="detail_interest_title">
+			<img th:src="${portalHost + '/img/demand_interest_title.png'}" alt="" />
+		</div>
+		<ul class="detail_interest_sub">
+			<li th:each="similar,iterStart:${similarList}">
+				<div class=" interest_list_title ">
+					<img th:src="${portalHost + '/img/demand_sup.png'} " alt=" " /> <span
+						th:text="${similar.name} ">PVC塑料的研究</span>
+					<div class="interest_list_confirm ">
+						<span th:text="${similar.level> 0} ? '身份已验证' : '身份未验证'">身份未验证</span>
+						<i th:class="${similar.level > 0} ? certify : uncertify"></i>
+					</div>
+				</div>
+				<div class="detial_sub">
+					<span class="detial_sub_icon"> <img
+						th:src="${portalHost + '/img/demand_ico_5.png'}" alt="需求" />
+					</span> <span class="detial_sub_title"> 需求: </span> <span
+						class="detial_sub_text" th:text="similar.problemDes">
+						随着铸造行业随着铸造行业随着铸造行业 </span>
+				</div>
+				<div class="detial_sub">
+					<span class="detial_sub_icon"> <img
+						th:src="${portalHost + '/img/demand_ico_3.png'}" alt="预算" />
+					</span> <span class="detial_sub_title"> 预算: </span> <span
+						class="money_text" th:text="${similar.budgetCostS}">
+						10000000元 </span>
+				</div>
+				<div class="detial_sub">
+					<span class="detial_sub_icon"> <img
+						th:src="${portalHost + '/img/demand_ico_1.png'}" alt="行业" />
+					</span> <span class="detial_sub_title"> 行业: </span> <span
+						class="detial_sub_text" th:text="${similar.industryCategory}">
+						机械-铸造/热处理 </span>
+				</div>
+			</li>
+		</ul>
+	</div>
+
+	<footer>
+		<div class="container">
+			<a href="#">联系我们</a> <a href="#">联系我们</a> <a href="#">联系我们</a> <a
+				href="#">联系我们</a> <a href="#">联系我们</a> <a href="#">联系我们</a>
+		</div>
+	</footer>
+	<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
+	<script type="text/javascript"
+		th:src="${portalHost + '/highTech/detail/demandDetail.js'}"></script>
+</body>
+
+</html>