Antiloveg 8 years ago
parent
commit
bae797c396

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

@@ -11,7 +11,7 @@ import com.goafanti.core.mybatis.page.Pagination;
 
 public interface AchievementOrderService {
 
-	AchievementOrder selectAchievementOrderByUidAndAchievementId(String userId, String achievementId);
+	List<AchievementOrder> selectAchievementOrderByUidAndAchievementId(String userId, String achievementId);
 
 	void saveAchievementOrder(AchievementOrder order, AchievementOrderLog aol);
 

+ 1 - 1
src/main/java/com/goafanti/achievement/service/impl/AchievementOrderServiceImpl.java

@@ -37,7 +37,7 @@ public class AchievementOrderServiceImpl extends BaseMybatisDao<AchievementOrder
 	private AchievementOrderLogMapper	achievementOrderLogMapper;
 
 	@Override
-	public AchievementOrder selectAchievementOrderByUidAndAchievementId(String uid, String achievementId) {
+	public List<AchievementOrder> selectAchievementOrderByUidAndAchievementId(String uid, String achievementId) {
 		return achievementOrderMapper.selectAchievementOrderByUidAndAchievementId(uid, achievementId);
 	}
 

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

@@ -17,7 +17,7 @@ public interface AchievementOrderMapper {
 
     int updateByPrimaryKey(AchievementOrder record);
 
-	AchievementOrder selectAchievementOrderByUidAndAchievementId(String uid, String achievementId);
+	List<AchievementOrder> selectAchievementOrderByUidAndAchievementId(String uid, String achievementId);
 
 	List<AchievementOrder> selectAchievementOrderByAchievementId(String achievementId);
 }

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

@@ -17,7 +17,7 @@ public interface DemandOrderMapper {
 
     int updateByPrimaryKey(DemandOrder record);
 
-	DemandOrder selectDemandOrderByUidAndDemandId(String uid, String id);
+	List<DemandOrder> selectDemandOrderByUidAndDemandId(String uid, String id);
 
 	List<DemandOrder> selectDemandOrderByDemandId(String demandId);
 }

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

@@ -179,7 +179,8 @@
   	select 
     <include refid="Base_Column_List" />
     from achievement_order
-   where uid = #{0} and achievement_id = #{1}
+   where 
+   	uid = #{0} and achievement_id = #{1} and deleted_sign = 0
   </select>
   
    <select id="findAchievementOrderListByPage" parameterType="String" resultType="com.goafanti.achievement.bo.AchievementOrderListBo">

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

@@ -190,7 +190,10 @@
     select 
     <include refid="Base_Column_List" />
     from demand_order
-    where uid = #{0} and demand_id = #{1}
+    where 
+    	uid = #{0} 
+    and demand_id = #{1} 
+    and deleted_sign = 0 
   </select>
   
   <select id="findDemandOrderListByPage" parameterType="String" resultType="com.goafanti.demand.bo.DemandOrderListBo">

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

@@ -11,7 +11,7 @@ import com.goafanti.demand.bo.UserDemandOrderListBo;
 
 public interface DemandOrderService {
 
-	DemandOrder selectDemandOrderByUidAndDemandId(String userId, String id);
+	List<DemandOrder> selectDemandOrderByUidAndDemandId(String userId, String id);
 
 	void saveDemandOrder(DemandOrder order, DemandOrderLog dol);
 

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

@@ -36,7 +36,7 @@ public class DemandOrderServiceImpl extends BaseMybatisDao<DemandOrderMapper> im
 	private DemandOrderLogMapper	demandOrderLogMapper;
 
 	@Override
-	public DemandOrder selectDemandOrderByUidAndDemandId(String uid, String id) {
+	public List<DemandOrder> selectDemandOrderByUidAndDemandId(String uid, String id) {
 		return demandOrderMapper.selectDemandOrderByUidAndDemandId(uid, id);
 	}
 

+ 37 - 17
src/main/java/com/goafanti/portal/controller/PortalOrderApiController.java

@@ -1,5 +1,7 @@
 package com.goafanti.portal.controller;
 
+import java.util.List;
+
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -56,14 +58,14 @@ public class PortalOrderApiController extends CertifyApiController {
 	private AchievementOrderLogService	achievementOrderLogService;
 	@Resource
 	private AchievementOrderService		achievementOrderService;
-	
+
 	/**
 	 * 科技成果Log
 	 */
-	@RequestMapping(value = "/achievementOrderLog", method =RequestMethod.GET)
-	public Result achievementOrderLog(String achievementOrderId){
+	@RequestMapping(value = "/achievementOrderLog", method = RequestMethod.GET)
+	public Result achievementOrderLog(String achievementOrderId) {
 		Result res = new Result();
-		
+
 		if (StringUtils.isEmpty(achievementOrderId)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技成果订单ID"));
 			return res;
@@ -74,17 +76,17 @@ public class PortalOrderApiController extends CertifyApiController {
 		} else {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技成果订单ID"));
 		}
-		
+
 		return res;
 	}
-	
+
 	/**
 	 * 关闭科技成果订单
 	 */
 	@RequestMapping(value = "/achievementShutdown", method = RequestMethod.POST)
-	public Result achevementShutdown(String id){
+	public Result achevementShutdown(String id) {
 		Result res = new Result();
-		
+
 		if (StringUtils.isBlank(id)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到订单ID", "订单ID"));
 			return res;
@@ -102,7 +104,7 @@ public class PortalOrderApiController extends CertifyApiController {
 		}
 
 		res.setData(achievementOrderService.updateShutdownByUser(order));
-		
+
 		return res;
 	}
 
@@ -140,19 +142,29 @@ public class PortalOrderApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技成果ID", "科技成果ID"));
 			return res;
 		}
-		AchievementOrder ao = achievementOrderService
+		List<AchievementOrder> ao = achievementOrderService
 				.selectAchievementOrderByUidAndAchievementId(TokenManager.getUserId(), achievementId);
-		if (null != ao) {
-			res.getError().add(buildError("", "当前科技成果已购买!"));
-			return res;
+		if (!ao.isEmpty()) {
+			for (AchievementOrder os : ao) {
+				if (!AchievementOrderStatus.SHUTDOWN.getCode().equals(os.getStatus())) {
+					res.getError().add(buildError("", "当前科技成果已购买!"));
+					return res;
+				}
+			}
 		}
+
 		Achievement a = achievementService.selectByPrimaryKey(achievementId);
+	
 		if (null == a || !AchievementAuditStatus.AUDITED.getCode().equals(a.getAuditStatus())
 				|| !AchievementReleaseStatus.RELEASED.getCode().equals(a.getReleaseStatus())
 				|| !DeleteStatus.UNDELETE.getCode().equals(a.getDeletedSign())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技成果ID"));
 			return res;
 		}
+		if (TokenManager.getUserId().equals(a.getOwnerId())){
+			res.getError().add(buildError("", "无法购买本人发布科技成果!"));
+			return res;
+		}
 		AchievementOrder achievementOrder = new AchievementOrder();
 		AchievementOrderLog aol = new AchievementOrderLog();
 		BeanUtils.copyProperties(order, achievementOrder);
@@ -253,11 +265,15 @@ public class PortalOrderApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到需求ID", "需求ID"));
 			return res;
 		}
-		DemandOrder demandOrder = demandOrderService.selectDemandOrderByUidAndDemandId(TokenManager.getUserId(),
+		List<DemandOrder> demandOrder = demandOrderService.selectDemandOrderByUidAndDemandId(TokenManager.getUserId(),
 				demandId);
-		if (null != demandOrder) {
-			res.getError().add(buildError("", "当前科技需求已接单!"));
-			return res;
+		if (!demandOrder.isEmpty()){
+			for (DemandOrder os : demandOrder){
+				if (!DemandOrderStatus.SHUTDOWN.getCode().equals(os.getStatus())){
+					res.getError().add(buildError("", "当前科技需求已接单!"));
+					return res;
+				}
+			}
 		}
 		Demand d = demandService.selectByPrimaryKey(demandId);
 		if (null == d || d.getDeletedSign().equals(DeleteStatus.DELETED.getCode())
@@ -266,6 +282,10 @@ public class PortalOrderApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技需求ID"));
 			return res;
 		}
+		if (TokenManager.getUserId().equals(d.getEmployerId())){
+			res.getError().add(buildError("", "无法对本人发布科技需求接单!"));
+			return res;
+		}
 
 		DemandOrder order = new DemandOrder();
 		DemandOrderLog dol = new DemandOrderLog();