Antiloveg 8 years ago
parent
commit
861bd6ff05

+ 3 - 0
src/main/java/com/goafanti/achievement/service/AchievementInterestService.java

@@ -1,5 +1,6 @@
 package com.goafanti.achievement.service;
 
+import com.goafanti.common.model.AchievementInterest;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.portal.bo.AchievementInterestListBo;
 
@@ -11,4 +12,6 @@ public interface AchievementInterestService {
 
 	Pagination<AchievementInterestListBo> listAchievementInterest(Integer pNo, Integer pSize);
 
+	AchievementInterest selectAchievementInterestByUidAndAchievementId(String userId, String id);
+
 }

+ 11 - 4
src/main/java/com/goafanti/achievement/service/impl/AchievementInterestServiceImpl.java

@@ -11,13 +11,15 @@ import org.springframework.stereotype.Service;
 import com.goafanti.achievement.service.AchievementInterestService;
 import com.goafanti.common.dao.AchievementInterestMapper;
 import com.goafanti.common.model.AchievementInterest;
+import com.goafanti.common.model.User;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.portal.bo.AchievementInterestListBo;
 
 @Service
-public class AchievementInterestServiceImpl extends BaseMybatisDao<AchievementInterestMapper> implements AchievementInterestService{
+public class AchievementInterestServiceImpl extends BaseMybatisDao<AchievementInterestMapper>
+		implements AchievementInterestService {
 	@Autowired
 	private AchievementInterestMapper achievementInterestMapper;
 
@@ -50,10 +52,15 @@ public class AchievementInterestServiceImpl extends BaseMybatisDao<AchievementIn
 		if (pSize == null || pSize < 0 || pSize > 10) {
 			pSize = 10;
 		}
-		
-		params.put("uid", TokenManager.getUserId());
-
+		if (TokenManager.getToken() instanceof User) {
+			params.put("uid", TokenManager.getUserId());
+		}
 		return (Pagination<AchievementInterestListBo>) findPage("findAchievementInterestListByPage",
 				"findAchievementInterestCount", params, pNo, pSize);
 	}
+
+	@Override
+	public AchievementInterest selectAchievementInterestByUidAndAchievementId(String uid, String id) {
+		return achievementInterestMapper.selectAchievementInterestByUidAndAchievementId(uid, id);
+	}
 }

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

@@ -15,4 +15,6 @@ public interface AchievementInterestMapper {
 
     int updateByPrimaryKey(AchievementInterest record);
 
+	AchievementInterest selectAchievementInterestByUidAndAchievementId(String uid, String id);
+
 }

+ 17 - 3
src/main/java/com/goafanti/common/mapper/AchievementInterestMapper.xml

@@ -85,8 +85,22 @@
   		ai.id, ai.achievement_id as achievementId, ai.create_time as createTime,
   		a.name, a.serial_number as serialNumber, a.deleted_sign as deletedSign,
   		a.audit_status as auditStatus
-  		from achievement_interest ai
-  		left join achievement a on a.id = ai.achievement_id
-  		where ai.uid = #{uid,jdbcType=VARCHAR}
+  	from achievement_interest ai
+  	left join achievement a on a.id = ai.achievement_id
+  	where 1=1
+  	<if test="uid != null">
+  		ai.uid = #{uid,jdbcType=VARCHAR}
+  	</if> 
+  	order by ai.create_time desc
+  	<if test="page_sql!=null">
+		${page_sql}
+	</if>
+  </select>
+  
+  <select id="selectAchievementInterestByUidAndAchievementId" resultMap="BaseResultMap">
+  	select  
+  	<include refid="Base_Column_List" />
+    from achievement_interest
+    where uid = {0} and achievement_id = #{1}
   </select>
 </mapper>

+ 25 - 19
src/main/java/com/goafanti/portal/controller/PortalSearchApiController.java

@@ -20,30 +20,29 @@ import com.goafanti.common.enums.DeleteStatus;
 import com.goafanti.common.enums.DemandAuditStatus;
 import com.goafanti.common.enums.DemandReleaseStatus;
 import com.goafanti.common.model.Achievement;
+import com.goafanti.common.model.AchievementInterest;
 import com.goafanti.common.model.Demand;
-import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.demand.service.DemandInterestService;
 import com.goafanti.demand.service.DemandService;
-import com.goafanti.portal.bo.AchievementInterestListBo;
 
 @RestController
 @RequestMapping(value = "/portal/search")
 public class PortalSearchApiController extends BaseApiController {
 	@Resource
-	private AchievementService	achievementService;
+	private AchievementService			achievementService;
 	@Resource
-	private DemandService		demandService;
+	private DemandService				demandService;
 	@Resource
-	private AchievementInterestService achievementInterestService;
+	private AchievementInterestService	achievementInterestService;
 	@Resource
-	private DemandInterestService demandInterestService;
-	
+	private DemandInterestService		demandInterestService;
+
 	/**
 	 * 科技成果"感兴趣列表"
 	 */
 	@RequestMapping(value = "/achievementInterestList", method = RequestMethod.GET)
-	private Result achievementInterestList(String pageNo, String pageSize){
+	private Result achievementInterestList(String pageNo, String pageSize) {
 		Result res = new Result();
 		Integer pNo = 1;
 		Integer pSize = 10;
@@ -53,16 +52,16 @@ public class PortalSearchApiController extends BaseApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		Pagination<AchievementInterestListBo> aa = achievementInterestService.listAchievementInterest(pNo, pSize);
+		res.setData(achievementInterestService.listAchievementInterest(pNo, pSize));
 		return res;
 	}
-	
-	
-	/**科技需求取消关注
+
+	/**
+	 * 科技需求取消关注
 	 * 
 	 */
 	@RequestMapping(value = "/demandCancelInterest", method = RequestMethod.POST)
-	public Result demandCancelInterest(String id){
+	public Result demandCancelInterest(String id) {
 		Result res = new Result();
 		if (StringUtils.isBlank(id)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到需求ID", "需求ID"));
@@ -92,13 +91,13 @@ public class PortalSearchApiController extends BaseApiController {
 		demandInterestService.saveAchievementInterest(id);
 		return res;
 	}
-	
-	
-	/**科技成果取消关注
+
+	/**
+	 * 科技成果取消关注
 	 * 
 	 */
 	@RequestMapping(value = "/achievementCancelInterest", method = RequestMethod.POST)
-	public Result achievementCancelInterest(String id){
+	public Result achievementCancelInterest(String id) {
 		Result res = new Result();
 		if (StringUtils.isBlank(id)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "成果ID"));
@@ -115,16 +114,23 @@ public class PortalSearchApiController extends BaseApiController {
 	public Result achievementInterest(String id) {
 		Result res = new Result();
 		if (StringUtils.isBlank(id)) {
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "成果ID"));
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "科技成果ID"));
 			return res;
 		}
 		Achievement a = achievementService.selectByPrimaryKey(id);
 		if (null == a || a.getDeletedSign().equals(DeleteStatus.DELETED.getCode())
 				|| !a.getAuditStatus().equals(AchievementAuditStatus.AUDITED.getCode())
-				|| !a.getReleaseStatus().equals(AchievementReleaseStatus.UNRELEASE.getCode())) {
+				|| !a.getReleaseStatus().equals(AchievementReleaseStatus.RELEASED.getCode())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "成果ID"));
 			return res;
 		}
+
+		AchievementInterest ai = achievementInterestService
+				.selectAchievementInterestByUidAndAchievementId(TokenManager.getUserId(), id);
+		if (null != ai){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR,  "当前科技成果已关注!"));
+			return res;
+		}
 		achievementInterestService.saveAchievementInterest(id);
 		return res;
 	}