Antiloveg 8 years ago
parent
commit
411c1c7670

+ 2 - 1
src/main/java/com/goafanti/admin/controller/AdminDemandApiController.java

@@ -56,6 +56,7 @@ public class AdminDemandApiController extends CertifyApiController {
 	/**
 	 * 科技需求匹配科技成果
 	 */
+	@RequestMapping(value="/matchAchievement", method = RequestMethod.POST)
 	public Result matchAchievement(String id){
 		Result res = new Result();
 		if (StringUtils.isBlank(id)) {
@@ -69,7 +70,7 @@ public class AdminDemandApiController extends CertifyApiController {
 			res.getError().add(buildError("", "当前状态无法匹配!"));
 			return res;
 		}
-		demandService.updateMatchAchievement(d);
+		res.setData(demandService.updateMatchAchievement(d));
 		return res;
 	}
 

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

@@ -24,7 +24,7 @@ public interface DemandKeywordMapper {
 
 	int batchDeleteByDemandIds(List<String> id);
 
-	List<String> selectKeywordsByDemandId(String id);
+	List<DemandKeyword> selectKeywordsByDemandId(String id);
 
 	List<AchievementDemand> selectAchievementDemand(List<String> keywords);
 }

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

@@ -97,7 +97,7 @@
   		from achievement_keyword ak 
   		left join achievement a on a.id = ak.achievement_id
   		where a.audit_status = 3 and a.deleted_sign = 0 and ak.keyword in
-	  		<foreach item="item" collection="index" open="(" separator="," close=")">
+	  		<foreach item="item" collection="list" open="(" separator="," close=")">
 	            #{item}
 	        </foreach> 
         group by ak.achievement_id

+ 4 - 2
src/main/java/com/goafanti/common/mapper/DemandKeywordMapper.xml

@@ -90,8 +90,10 @@
         </foreach>
   </delete>
   
-  <select id="selectKeywordsByDemandId" parameterType="java.lang.String" >
-  	select keyword from demand_keyword where demand_id = #{id,jdbcType=VARCHAR}
+  <select id="selectKeywordsByDemandId" parameterType="java.lang.String" resultMap="BaseResultMap">
+  	select 
+  	<include refid="Base_Column_List" />
+  	keyword from demand_keyword where demand_id = #{id,jdbcType=VARCHAR}
   </select>
   
   <select id="selectAchievementDemand" resultType="com.goafanti.common.model.AchievementDemand">

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

@@ -57,7 +57,7 @@ public interface DemandService {
 
 	DemandSearchDetailBo selectDemandSearchDetail(String uid, String id);
 
-	void updateMatchAchievement(Demand d);
+	int updateMatchAchievement(Demand d);
 
 
 }

+ 12 - 5
src/main/java/com/goafanti/demand/service/impl/DemandServiceImpl.java

@@ -551,18 +551,25 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 	}
 
 	@Override
-	public void updateMatchAchievement(Demand d) {
+	public int updateMatchAchievement(Demand d) {
 		achievementDemandMapper.deleteByDemandId(d.getId());
-		List<String> keywords = demandKeywordMapper.selectKeywordsByDemandId(d.getId());
-		if (null != keywords && keywords.size() > 0) {
-			List<AchievementDemand> list = achievementKeywordMapper.selectAchievementDemand(keywords);
+		List<DemandKeyword> demand = demandKeywordMapper.selectKeywordsByDemandId(d.getId());
+		if (null != demand && demand.size() > 0) {
+			List<String> keyword = new ArrayList<>();
+			for (DemandKeyword k : demand) {
+				if (!StringUtils.isBlank(k.getKeyword())) {
+					keyword.add(k.getKeyword());
+				}
+			}
+			List<AchievementDemand> list = achievementKeywordMapper.selectAchievementDemand(keyword);
 			if (null != list && list.size() > 0) {
 				for (AchievementDemand ad : list) {
 					ad.setDemandId(d.getId());
 				}
-				achievementDemandMapper.insertBatch(list);
+				return achievementDemandMapper.insertBatch(list);
 			}
 		}
+		return 0;
 	}