Bladeren bron

Merge branch 'master' into pre

zoujiajian 2 jaren geleden
bovenliggende
commit
70fcd7de54

+ 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.payTime,o.created_time)")
+		private Date payTime;
+
+		@DbField("o.status")
+		private OrderDon.Status status;
+
+		@DbField("o.money")
+		private BigDecimal money;
+	}
+}

+ 51 - 4
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")
@@ -987,16 +990,60 @@ public class CmsOrderController {
 			startTime = DateUtil.offsetMonth(startTime, sku.getMonths());
 			expiryTime = relation.getExpiryTime();
 		}
-		MidjourneyUserDetailView midjourneyUserDetailView = midjourneyUserConversationMapper.getMjMirrorOrderDetail(orderDon.getRelationId(), startTime, expiryTime);
-
-		GoodsDonSku sku = skuMapper.selectById(orderDon.getSkuId());
 		MidjourneyUser midjourneyUser = midjourneyUserMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUser.class)
 				.eq(MidjourneyUser::getRelationId, orderDon.getRelationId())
 				.last("limit 1"));
+		if (midjourneyUser == null) {
+			return GatewayResponse.SUCCESS.newBuilder().toResult();
+		}
+		MidjourneyUserDetailView midjourneyUserDetailView = midjourneyUserConversationMapper.getMjMirrorOrderDetail(orderDon.getRelationId(), startTime, expiryTime);
+		GoodsDonSku sku = skuMapper.selectById(orderDon.getSkuId());
 		midjourneyUserDetailView.setUserId(orderDon.getUserId());
 		midjourneyUserDetailView.setExpiryTime(midjourneyUser.getExpireTime());
 		midjourneyUserDetailView.setMjFastNum(sku.getMjFastNum() - midjourneyUserDetailView.getUseFastNum());
-		midjourneyUserDetailView.setMjRelaxNum(sku.getMjRelaxNum() - midjourneyUserDetailView.getUseRelaxNum());
+		if (sku.getMjRelaxNum() == null) {
+			midjourneyUserDetailView.setMjRelaxNum(null);
+		} else {
+			midjourneyUserDetailView.setMjRelaxNum(sku.getMjRelaxNum() - midjourneyUserDetailView.getUseRelaxNum());
+		}
 		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 = userBindRelationService.getRelationUserIdList(userId, null);
+		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 = userBindRelationService.getRelationUserIdList(userId, null);
+		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);
+	}
 }