zoujiajian 3 лет назад
Родитель
Сommit
df7efe5737

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/request/OrderCommentReq.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import javax.validation.constraints.NotEmpty;
+import java.util.List;
 
 /*
  *项目名: netflix
@@ -18,6 +19,8 @@ public class OrderCommentReq {
 
 	private Long userId;
 
+	private List<Long> userIds;
+
 	private Integer score;
 
 	@NotEmpty(message = "标题为空")

+ 8 - 3
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderCommentFrontServiceImpl.java

@@ -16,11 +16,14 @@ import com.cyksj.model.request.OrderCommentReq;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.order.OrderCommentFrontService;
 import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /*
  *项目名: netflix
  *文件名: OrderCommentFrontServiceImpl
@@ -45,16 +48,18 @@ public class OrderCommentFrontServiceImpl implements OrderCommentFrontService {
 	public void saveComment(OrderCommentReq request) {
 		Long orderId = request.getOrderId();
 		Long userId = request.getUserId();
+		List<Long> userIds = request.getUserIds();
 		//是否已评价
 		OrderComment orderComment = orderCommentMapper.selectOne(Wrappers.lambdaQuery(OrderComment.class)
-				.eq(OrderComment::getUserId, userId)
+				.in(OrderComment::getUserId, userIds)
 				.eq(OrderComment::getOrderId, orderId).last("limit 1"));
 		if (orderComment != null) throw BusinessRuntimeException.getInstance("您已完成该订单评价");
 
 		OrderDonView orderDonView = beanSearcher.searchFirst(OrderDonView.class, MapUtils.builder()
 				.field(OrderDonView::getId, orderId)
-				.field(OrderDonView::getUserId, userId).build());
-		if (orderDonView == null) throw BusinessRuntimeException.getInstance("您评论的订单不存在");
+				.field(OrderDonView::getUserId, userIds).op(Operator.InList)
+				.build());
+		if (orderDonView == null) throw BusinessRuntimeException.getInstance("不好意思,您当前未购买设备产品,无法进行评价");
 		if (request.getTitle().length() > 200) {
 			throw BusinessRuntimeException.getInstance("标题过长");
 		}

+ 8 - 1
netflix-web/src/main/java/com/cyksj/web/controller/payment/OrderCommentFrontController.java

@@ -6,6 +6,7 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.model.request.OrderCommentReq;
 import com.cyksj.model.views.OrderDonUserCommentView;
 import com.cyksj.service.order.OrderCommentFrontService;
+import com.cyksj.service.user.UserService;
 import com.cyksj.web.util.StpUserUtil;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.util.MapUtils;
@@ -31,6 +32,8 @@ public class OrderCommentFrontController {
 
 	private final BeanSearcher beanSearcher;
 
+	private UserService userService;
+
 	/**
 	 * 新增评价
 	 */
@@ -39,6 +42,7 @@ public class OrderCommentFrontController {
 	public Result<String> post(@RequestBody @Validated OrderCommentReq request) {
 		long userId = StpUserUtil.getLoginIdAsLong();
 		request.setUserId(userId);
+		request.setUserIds(userService.getRelationUserIdList(userId, null));
 		orderCommentFrontService.saveComment(request);
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
@@ -49,7 +53,10 @@ public class OrderCommentFrontController {
 	@GetMapping("/get/orders")
 	public Result<List<OrderDonUserCommentView>> getOrders(@RequestParam(defaultValue = "2") Integer type) {
 		long userId = StpUserUtil.getLoginIdAsLong();
-		String conditionSql = String.format("and user_id = %s", userId);
+		List<Long> userIds = userService.getRelationUserIdList(userId, null);
+		String userIdsStr = userIds.toString().replace("[", "(")
+				.replace("]", ")");
+		String conditionSql = String.format("and user_id in %s", userIdsStr);
 		List<OrderDonUserCommentView> OrderDonUserCommentViews = beanSearcher.searchAll(OrderDonUserCommentView.class, MapUtils.builder()
 				.put("condition", conditionSql)
 				.field(OrderDonUserCommentView::getGoodsType, type).build());