Browse Source

fix 后台订单列表优化

zoujiajian 3 năm trước cách đây
mục cha
commit
a77c141705

+ 8 - 24
netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonBackView.java

@@ -7,7 +7,6 @@ import com.cyksj.model.views.GoodsDonSkuView;
 import com.ejlchina.searcher.bean.DbField;
 import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -23,10 +22,8 @@ import java.util.List;
  */
 @Getter
 @Setter
-@SearchBean(tables = "order_don o left join goods_don_sku sku on o.sku_id = sku.id " +
-		"left join goods_don g on g.id = sku.goods_id " +
+@SearchBean(tables = "order_don o left join goods_don g on g.id = o.goods_id " +
 		"left join user u on o.user_id = u.id " +
-		"left join groups_relation gr on gr.id = o.relation_id " +
 		"left join order_don_transport odt on odt.order_id = o.id"
 )
 public class OrderDonBackView {
@@ -39,10 +36,10 @@ public class OrderDonBackView {
 	@DbField("o.relation_id")
 	private Long relationId;
 
-	@DbField("gr.groups_id")
-	private Long groupsId;
-
-	@DbField("gr.account")
+	/**
+	 * 邀请制用户账号
+	 */
+	@DbIgnore
 	private String account;
 
 	/**
@@ -54,9 +51,6 @@ public class OrderDonBackView {
 	@DbField("g.type")
 	private Integer goodsDonType;
 
-	@DbField("g.second_type")
-	private Integer secondType;
-
 	@DbField("o.order_no")
 	private String orderNo;
 
@@ -69,22 +63,12 @@ public class OrderDonBackView {
 	@DbField("g.title")
 	private String title;
 
-	@DbField("g.id")
-	private Long goodsId;
+	@DbField("o.sku_id")
+	private Long skuId;
 
-	@DbField("sku.is_benefits")
-	private Boolean isBenefits;
-
-	@DbField("sku.benefits_list")
-	@JsonIgnore
-	private String benefitsList;
-
-	@DbField("sku.spec_val")
+	@DbIgnore
 	private String specVal;
 
-	@DbField("sku.months")
-	private Integer months;
-
 	@DbField("o.user_id")
 	private Long userId;
 

+ 24 - 5
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -16,6 +16,7 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonSkuMapper;
+import com.cyksj.mapper.GroupsRelationMapper;
 import com.cyksj.mapper.OrderCommentMapper;
 import com.cyksj.mapper.RealGoodsInterestUserMapper;
 import com.cyksj.mapper.channel.ChannelPopularizeMapper;
@@ -83,14 +84,26 @@ public class CmsOrderController {
 
 	private final ChannelPopularizeMapper channelPopularizeMapper;
 
+	private final GroupsRelationMapper relationMapper;
+
+
 	@GetMapping("/get")
 	@SaCheckPermission("order:view")
-	public Result<SearchResult<OrderDonBackView>> get(Long channelId) {
+	public Result<SearchResult<OrderDonBackView>> get(Long channelId, String account) {
 		MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
 		if (channelId != null) {
 			List<Long> popularizeIds = channelPopularizeMapper.getPopularizeIdByChannelId(channelId);
 			builder.field(OrderDonBackView::getPopularizeId, popularizeIds).op(Operator.InList);
 		}
+		if (StrUtil.isNotBlank(account)) {
+			GroupsRelation relation = relationMapper.selectOne(Wrappers.lambdaQuery(GroupsRelation.class)
+					.eq(GroupsRelation::getAccount, account).last("limit 1"));
+			if (relation != null) {
+				builder.field(OrderDonBackView::getRelationId, relation.getId());
+			} else {
+				builder.field(OrderDonBackView::getRelationId).op(Operator.IsNull);
+			}
+		}
 		SearchResult<OrderDonBackView> search = beanSearcher.search(OrderDonBackView.class, builder.build());
 		search.getDataList().forEach(data -> {
 			if (data.getPopularizeId() != null) {
@@ -108,10 +121,16 @@ public class CmsOrderController {
 				data.setCouponName(couponMapper.getCouponNameByCouponUserId(data.getCouponUserId()));
 				data.setCouponMoney(data.getCouponMoney() == null ? BigDecimal.ZERO : data.getCouponMoney());
 			}
-			Optional.ofNullable(data.getGroupsId()).ifPresent(groupsId -> {
-				AccountView accountView = beanSearcher.searchFirst(AccountView.class, MapUtils.builder().field(AccountView::getGroupsId, groupsId).onlySelect(AccountView::getAccount).build());
-				Optional.ofNullable(accountView).ifPresent(account -> data.setGtAccount(account.getAccount()));
-			});
+			Optional.ofNullable(relationMapper.selectById(data.getRelationId()))
+					.ifPresent(relation -> {
+						data.setAccount(relation.getAccount());
+						AccountView accountView = beanSearcher.searchFirst(AccountView.class, MapUtils.builder().field(AccountView::getGroupsId, relation.getGroupsId()).onlySelect(AccountView::getAccount).build());
+						Optional.ofNullable(accountView).ifPresent(view -> data.setGtAccount(view.getAccount()));
+					});
+			Optional.ofNullable(skuMapper.selectById(data.getSkuId()))
+					.ifPresent(sku -> {
+						data.setSpecVal(sku.getSpecVal());
+					});
 		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}