Ver Fonte

用户订单历史退款详情

zoujiajian há 2 anos atrás
pai
commit
cf40faf912

+ 59 - 0
netflix-dao/src/main/java/com/cyksj/model/views/OrderDonUserRefundDetailView.java

@@ -0,0 +1,59 @@
+package com.cyksj.model.views;
+
+import com.cyksj.model.entity.OrderDon;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: OrderDonUserRefundDetailView
+ * 创建者: JavaZou
+ * 创建时间:2024/7/2 10:05
+ */
+@Getter
+@Setter
+@SearchBean(tables = "order_don",
+		where = "status not in ('close','noPayment') :uid:")
+public class OrderDonUserRefundDetailView {
+	@DbField("count(1)")
+	private Integer orders;
+
+	@DbField("count(if(status = 'refund',1,NULL))")
+	private Integer refundOrders;
+
+
+	@Getter
+	@Setter
+	@SearchBean(tables = "order_don o left join goods_don g on g.id = o.goods_id" +
+			" left join goods_don_sku sku on sku.id = o.sku_id")
+	public static class OrderDonDetailView {
+		@DbField("o.user_id")
+		private Long userId;
+
+		@DbField("o.goods_id")
+		private Long goodsId;
+
+		@DbField("g.title")
+		private String title;
+
+		@DbField("sku.spec_val")
+		private String specVal;
+
+		@DbField("o.sku_id")
+		private Long skuId;
+
+		@DbField("ifnull(o.pay_time,o.created_time)")
+		private Date payTime;
+
+		@DbField("o.status")
+		private OrderDon.Status status;
+
+		@DbField("o.money")
+		private BigDecimal money;
+	}
+}

+ 53 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -38,6 +38,7 @@ import com.cyksj.model.request.*;
 import com.cyksj.model.views.*;
 import com.cyksj.service.mange.CmsOrderDonService;
 import com.cyksj.service.order.OrderDonCommentService;
+import com.cyksj.service.user.UserBindRelationService;
 import com.cyksj.service.user.UserService;
 import com.cyksj.web.util.EasyExcelUtils;
 import com.ejlchina.searcher.BeanSearcher;
@@ -111,6 +112,8 @@ public class CmsOrderController {
 
 	private final MidjourneyUserMapper midjourneyUserMapper;
 
+	private final UserBindRelationService userBindRelationService;
+
 
 	@GetMapping("/get")
 	@SaCheckPermission("order:view")
@@ -1005,4 +1008,54 @@ public class CmsOrderController {
 		}
 		return GatewayResponse.SUCCESS.newBuilder().toResult(midjourneyUserDetailView);
 	}
+
+	/**
+	 * 用户退款详情
+	 */
+	@GetMapping("/get/user/refund/detail")
+	public Result<OrderDonUserRefundDetailView> getUserRefundDetail(Long userId) {
+		if (userId == null || userId == 0) {
+			return GatewayResponse.SUCCESS.newBuilder().toResult();
+		}
+		List<Long> userIdList = null;
+		try {
+			userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		} catch (Exception e) {
+		}
+		String userIds = null;
+		if (CollUtil.isNotEmpty(userIdList)) {
+			userIds = userIdList.toString().replaceAll("\\[", "").replaceAll("]", "");
+		}
+		MapBuilder builder = MapUtils.builder();
+		if (StrUtil.isNotBlank(userIds)) {
+			builder.put("uid", String.format(" and user_id in (%s)", userIds));
+		} else {
+			builder.put("uid", String.format(" and user_id = %s", userId));
+		}
+		OrderDonUserRefundDetailView orderDonUserRefundDetailView = beanSearcher.searchFirst(OrderDonUserRefundDetailView.class, builder.build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(orderDonUserRefundDetailView);
+	}
+
+	/**
+	 *  用户订单列表
+	 */
+	@GetMapping("/get/user/orders")
+	public Result<SearchResult<OrderDonUserRefundDetailView.OrderDonDetailView>> getUserOrdersDetail(Long userId) {
+		if (userId == null || userId == 0) {
+			return GatewayResponse.SUCCESS.newBuilder().toResult();
+		}
+		List<Long> userIdList = null;
+		try {
+			userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		} catch (Exception e) {
+		}
+		if (userIdList == null) {
+			userIdList = new ArrayList<>();
+			userIdList.add(userId);
+		}
+		SearchResult<OrderDonUserRefundDetailView.OrderDonDetailView> search = beanSearcher.search(OrderDonUserRefundDetailView.OrderDonDetailView.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(OrderDonUserRefundDetailView.OrderDonDetailView::getUserId, userIdList).op(Operator.InList)
+				.build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
 }