From 4318746ee88ad53e00341df1a0395058bebc40fa Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 25 六月 2025 14:33:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java | 23 ++
buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java | 21 ++
buyer-api/src/main/java/cn/lili/controller/member/FootprintController.java | 23 ++
framework/src/main/java/cn/lili/modules/search/entity/dto/EsGoodsSearchDTO.java | 5
framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java | 9
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java | 53 +++++
framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java | 4
framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java | 24 ++
seller-api/src/main/java/cn/lili/controller/order/OrderStoreController.java | 14 +
framework/src/main/java/cn/lili/modules/member/serviceimpl/FootprintServiceImpl.java | 2
framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderItemVO.java | 3
framework/src/main/java/cn/lili/modules/order/order/entity/vo/AllowOperation.java | 37 ++++
buyer-api/src/main/java/cn/lili/controller/order/CartController.java | 36 +++
framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleXcxVO.java | 232 +++++++++++++++++++++++++
14 files changed, 472 insertions(+), 14 deletions(-)
diff --git a/buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java b/buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java
index c5d3d25..3d94bc5 100644
--- a/buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java
+++ b/buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java
@@ -4,6 +4,7 @@
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException;
+import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.goods.entity.dos.Goods;
@@ -20,6 +21,7 @@
import cn.lili.modules.search.service.HotWordsService;
import cn.lili.modules.statistics.aop.PageViewPoint;
import cn.lili.modules.statistics.aop.enums.PageViewEnum;
+import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
@@ -68,6 +70,9 @@
@Autowired
private HotWordsService hotWordsService;
+ @Autowired
+ private COSUtil cosUtil;
+
@ApiOperation(value = "閫氳繃id鑾峰彇鍟嗗搧淇℃伅")
@ApiImplicitParam(name = "goodsId", value = "鍟嗗搧ID", required = true, paramType = "path", dataType = "Long")
@GetMapping(value = "/get/{goodsId}")
@@ -114,7 +119,23 @@
@GetMapping("/es")
public ResultMessage<Page<EsGoodsIndex>> getGoodsByPageFromEs(EsGoodsSearchDTO goodsSearchParams, PageVO pageVO) {
pageVO.setNotConvert(true);
- return ResultUtil.data(goodsSearchService.searchGoodsByPage(goodsSearchParams, pageVO));
+ Page<EsGoodsIndex> ePage = goodsSearchService.searchGoodsByPage(goodsSearchParams, pageVO);
+ ePage.getRecords().forEach(item -> {
+ String small = item.getSmall();
+ String thumbnail = item.getThumbnail();
+ String goodsVideo = item.getGoodsVideo();
+ if (StringUtils.isNotBlank(small) && !small.contains("http")) {
+ item.setSmall(cosUtil.getPreviewUrl(small));
+ }
+ if (StringUtils.isNotBlank(thumbnail) && !thumbnail.contains("http")) {
+ item.setThumbnail(cosUtil.getPreviewUrl(thumbnail));
+ }
+ if (StringUtils.isNotBlank(goodsVideo) && !goodsVideo.contains("http")) {
+ item.setGoodsVideo(cosUtil.getPreviewUrl(goodsVideo));
+ }
+
+ });
+ return ResultUtil.data(ePage);
}
@ApiOperation(value = "鍟嗗搧鍒嗛〉-鍙戝竷瑙嗛鏃跺叧鑱斿晢鍝�")
diff --git a/buyer-api/src/main/java/cn/lili/controller/member/FootprintController.java b/buyer-api/src/main/java/cn/lili/controller/member/FootprintController.java
index 480b882..43318e5 100644
--- a/buyer-api/src/main/java/cn/lili/controller/member/FootprintController.java
+++ b/buyer-api/src/main/java/cn/lili/controller/member/FootprintController.java
@@ -2,11 +2,13 @@
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext;
+import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dto.FootPrintQueryParams;
import cn.lili.modules.member.service.FootprintService;
import cn.lili.modules.search.entity.dos.EsGoodsIndex;
+import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -36,11 +38,30 @@
@Autowired
private FootprintService footprintService;
+ @Autowired
+ private COSUtil cosUtil;
@ApiOperation(value = "鍒嗛〉鑾峰彇")
@GetMapping
public ResultMessage<IPage<EsGoodsIndex>> getByPage(FootPrintQueryParams params) {
params.setMemberId(UserContext.getCurrentUser().getId());
- return ResultUtil.data(footprintService.footPrintPage(params));
+ IPage<EsGoodsIndex> indexIPage = footprintService.footPrintPage(params);
+ indexIPage.getRecords().forEach(item -> {
+
+ String small = item.getSmall();
+ String thumbnail = item.getThumbnail();
+ String goodsVideo = item.getGoodsVideo();
+ if (StringUtils.isNotBlank(small) && !small.contains("http")) {
+ item.setSmall(cosUtil.getPreviewUrl(small));
+ }
+ if (StringUtils.isNotBlank(thumbnail) && !thumbnail.contains("http")) {
+ item.setThumbnail(cosUtil.getPreviewUrl(thumbnail));
+ }
+ if (StringUtils.isNotBlank(goodsVideo) && !goodsVideo.contains("http")) {
+ item.setGoodsVideo(cosUtil.getPreviewUrl(goodsVideo));
+ }
+
+ });
+ return ResultUtil.data(indexIPage);
}
@ApiOperation(value = "鏍规嵁id鍒犻櫎")
diff --git a/buyer-api/src/main/java/cn/lili/controller/order/CartController.java b/buyer-api/src/main/java/cn/lili/controller/order/CartController.java
index 6eb90b1..2973172 100644
--- a/buyer-api/src/main/java/cn/lili/controller/order/CartController.java
+++ b/buyer-api/src/main/java/cn/lili/controller/order/CartController.java
@@ -1,9 +1,11 @@
package cn.lili.controller.order;
+import cn.hutool.json.JSONUtil;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException;
+import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.cart.entity.dto.BuyBackDTO;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
@@ -11,6 +13,7 @@
import cn.lili.modules.order.cart.entity.vo.TradeParams;
import cn.lili.modules.order.cart.service.CartService;
import cn.lili.modules.order.order.entity.vo.ReceiptVO;
+import cn.lili.utils.COSUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -45,6 +48,8 @@
*/
@Autowired
private CartService cartService;
+ @Autowired
+ private COSUtil cosUtil;
@ApiOperation(value = "鍚戣喘鐗╄溅涓坊鍔犱竴涓骇鍝�")
@@ -74,7 +79,19 @@
@ApiOperation(value = "鑾峰彇璐墿杞﹂〉闈㈣喘鐗╄溅璇︽儏")
@GetMapping("/all")
public ResultMessage<TradeDTO> cartAll() {
- return ResultUtil.data(this.cartService.getAllTradeDTO());
+ TradeDTO allTradeDTO = this.cartService.getAllTradeDTO();
+ allTradeDTO.getSkuList().forEach(item->{
+ String goodsVideo = item.getGoodsSku().getGoodsVideo();
+ if (StringUtils.isNotBlank(goodsVideo)&&!goodsVideo.contains("http")) {
+ item.getGoodsSku().setGoodsVideo(cosUtil.getPreviewUrl(goodsVideo));
+ }
+
+ String thumbnail = item.getGoodsSku().getThumbnail();
+ if (StringUtils.isNotBlank(thumbnail)&&!thumbnail.contains("http")) {
+ item.getGoodsSku().setThumbnail(cosUtil.getPreviewUrl(thumbnail));
+ }
+ });
+ return ResultUtil.data(allTradeDTO);
}
@ApiOperation(value = "鑾峰彇璐墿杞︽暟閲�")
@@ -174,7 +191,22 @@
public ResultMessage<TradeDTO> cartChecked(@NotNull(message = "璇诲彇閫変腑鍒楄〃") String way) {
try {
//璇诲彇閫変腑鐨勫垪琛�
- return ResultUtil.data(this.cartService.getCheckedTradeDTO(CartTypeEnum.valueOf(way)));
+ TradeDTO checkedTradeDTO = this.cartService.getCheckedTradeDTO(CartTypeEnum.valueOf(way));
+ checkedTradeDTO.getSkuList().forEach(item->{
+
+
+ String goodsVideo = item.getGoodsSku().getGoodsVideo();
+ if (StringUtils.isNotBlank(goodsVideo)&&!goodsVideo.contains("http")) {
+ item.getGoodsSku().setGoodsVideo(cosUtil.getPreviewUrl(goodsVideo));
+ }
+
+ String thumbnail = item.getGoodsSku().getThumbnail();
+ if (StringUtils.isNotBlank(thumbnail)&&!thumbnail.contains("http")) {
+ item.getGoodsSku().setThumbnail(cosUtil.getPreviewUrl(thumbnail));
+ }
+ });
+ System.err.println(JSONUtil.toJsonStr(checkedTradeDTO));
+ return ResultUtil.data(checkedTradeDTO);
} catch (ServiceException se) {
log.error(se.getMsg(), se);
throw se;
diff --git a/buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java b/buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java
index c192d36..086685d 100644
--- a/buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java
+++ b/buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java
@@ -7,6 +7,7 @@
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.OperationalJudgment;
import cn.lili.common.security.context.UserContext;
+import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dos.OrderPackage;
@@ -14,9 +15,12 @@
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
+import cn.lili.modules.order.order.entity.vo.OrderSimpleXcxVO;
+import cn.lili.modules.order.order.service.OrderItemService;
import cn.lili.modules.order.order.service.OrderPackageService;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.system.entity.vo.Traces;
+import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -50,12 +54,23 @@
@Autowired
private OrderPackageService orderPackageService;
+ @Autowired
+ private COSUtil cosUtil;
+
@ApiOperation(value = "鏌ヨ浼氬憳璁㈠崟鍒楄〃")
@GetMapping
public ResultMessage<IPage<OrderSimpleVO>> queryMineOrder(OrderSearchParams orderSearchParams) {
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
orderSearchParams.setMemberId(currentUser.getId());
return ResultUtil.data(orderService.queryByParams(orderSearchParams));
+ }
+
+ @ApiOperation(value = "鏌ヨ浼氬憳璁㈠崟鍒楄〃")
+ @GetMapping("/xcx")
+ public ResultMessage<IPage<OrderSimpleXcxVO>> queryXcxMineOrder(OrderSearchParams orderSearchParams) {
+ AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
+ orderSearchParams.setMemberId(currentUser.getId());
+ return ResultUtil.data(orderService.queryByXcxParams(orderSearchParams));
}
@ApiOperation(value = "璁㈠崟鏄庣粏")
@@ -66,6 +81,12 @@
public ResultMessage<OrderDetailVO> detail(@NotNull(message = "璁㈠崟缂栧彿涓嶈兘涓虹┖") @PathVariable("orderSn") String orderSn) {
OrderDetailVO orderDetailVO = orderService.queryDetail(orderSn);
OperationalJudgment.judgment(orderDetailVO.getOrder());
+ orderDetailVO.getOrderItems().forEach(orderItem -> {
+ String image = orderItem.getImage();
+ if (StringUtils.isNotBlank(image)&&!image.contains("http")) {
+ orderItem.setImage(cosUtil.getPreviewUrl(image));
+ }
+ });
return ResultUtil.data(orderDetailVO);
}
diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/FootprintServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/FootprintServiceImpl.java
index f74fd3f..723725f 100644
--- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/FootprintServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/FootprintServiceImpl.java
@@ -74,7 +74,7 @@
return null;
}
Optional<FootPrint> first =
- footPrintPages.getRecords().stream().filter(j -> j.getSkuId().equals(goodsSkuByIdFromCache.get(i).getId())).findFirst();
+ footPrintPages.getRecords().stream().filter(j -> goodsSkuByIdFromCache.get(i).getId().equals(j.getSkuId())).findFirst();
return first.map(footPrint -> new EsGoodsIndex(goodsSkuByIdFromCache.get(i), footPrint.getCreateTime())).orElseGet(() -> new EsGoodsIndex(goodsSkuByIdFromCache.get(i)));
})
.collect(Collectors.toList());
diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/vo/AllowOperation.java b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/AllowOperation.java
index 7458bd2..d839f42 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/entity/vo/AllowOperation.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/AllowOperation.java
@@ -128,5 +128,42 @@
this.take = order.getOrderType().equals(OrderTypeEnum.VIRTUAL.name()) && order.getOrderStatus().equals(OrderStatusEnum.TAKE.name());
}
+ /**
+ * 鏍规嵁鍚勭鐘舵�佹瀯寤哄璞�
+ *
+ * @param order
+ */
+ public AllowOperation(OrderSimpleXcxVO order) {
+
+ //鑾峰彇璁㈠崟绫诲瀷
+ String status = order.getOrderStatus();
+ String payStatus = order.getPayStatus();
+ //缂栬緫璁㈠崟浠锋牸 鏈粯娆惧苟涓旀槸鏂拌鍗�
+ if (payStatus.equals(PayStatusEnum.UNPAID.name()) && status.equals(OrderStatusEnum.UNPAID.name())) {
+ this.editPrice = true;
+ }
+
+ //鍙栨秷鍒ゅ畾
+ if (CharSequenceUtil.equalsAny(status, OrderStatusEnum.UNPAID.name(), OrderStatusEnum.PAID.name(), OrderStatusEnum.UNDELIVERED.name())) {
+ this.cancel = true;
+ }
+ //鏂拌鍗曪紝鍏佽鏀粯
+ this.pay = status.equals(OrderStatusEnum.UNPAID.name());
+
+ //璁㈠崟鏈彂璐э紝灏卞彲浠ョ紪杈戞敹璐т汉淇℃伅
+ this.editConsignee = order.getDeliverStatus().equals(DeliverStatusEnum.UNDELIVERED.name());
+
+ //鏄惁鍏佽琚彂璐�
+ this.ship = editConsignee && status.equals(OrderStatusEnum.UNDELIVERED.name());
+
+ //鏄惁鍏佽琚敹璐�
+ this.rog = status.equals(OrderStatusEnum.DELIVERED.name());
+
+ //鏄惁鍏佽鏌ョ湅鐗╂祦淇℃伅
+ this.showLogistics = order.getDeliverStatus().equals(DeliverStatusEnum.DELIVERED.name()) && status.equals(OrderStatusEnum.DELIVERED.name());
+
+ this.take = order.getOrderType().equals(OrderTypeEnum.VIRTUAL.name()) && order.getOrderStatus().equals(OrderStatusEnum.TAKE.name());
+ }
+
}
diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderItemVO.java b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderItemVO.java
index 66134c9..1ae4ce5 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderItemVO.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderItemVO.java
@@ -32,6 +32,9 @@
@ApiModelProperty(value = "鍥剧墖")
private String image;
+ @ApiModelProperty(value = "鍥剧墖")
+ private String video;
+
@ApiModelProperty(value = "鍟嗗搧鍚嶇О")
private String name;
diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleXcxVO.java b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleXcxVO.java
new file mode 100644
index 0000000..811f3d4
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleXcxVO.java
@@ -0,0 +1,232 @@
+package cn.lili.modules.order.order.entity.vo;
+
+import cn.hutool.core.text.CharSequenceUtil;
+import cn.lili.common.enums.ClientTypeEnum;
+import cn.lili.common.security.sensitive.Sensitive;
+import cn.lili.common.security.sensitive.enums.SensitiveStrategy;
+import cn.lili.modules.order.order.entity.enums.OrderItemAfterSaleStatusEnum;
+import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 璁㈠崟绠�鐣ヤ俊鎭�
+ * 鐢ㄤ簬璁㈠崟鍒楄〃鏌ョ湅
+ *
+ * @author Chopper
+ * @since 2020-08-17 20:28
+ */
+@Data
+public class OrderSimpleXcxVO {
+
+ @ApiModelProperty("sn")
+ private String sn;
+
+ @ApiModelProperty(value = "鎬讳环鏍�")
+ private Double flowPrice;
+
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ private Date createTime;
+
+ /**
+ * @see cn.lili.modules.order.order.entity.enums.OrderStatusEnum
+ */
+ @ApiModelProperty(value = "璁㈠崟鐘舵��")
+ private String orderStatus;
+
+ /**
+ * @see cn.lili.modules.order.order.entity.enums.PayStatusEnum
+ */
+ @ApiModelProperty(value = "浠樻鐘舵��")
+ private String payStatus;
+
+ @ApiModelProperty(value = "鏀粯鏂瑰紡")
+ private String paymentMethod;
+
+ @ApiModelProperty(value = "鏀粯鏃堕棿")
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date paymentTime;
+
+ @ApiModelProperty(value = "鐢ㄦ埛鍚�")
+ @Sensitive(strategy = SensitiveStrategy.PHONE)
+ private String memberName;
+
+ @ApiModelProperty(value = "搴楅摵鍚嶇О")
+ private String storeName;
+
+ @ApiModelProperty(value = "搴楅摵ID")
+ private String storeId;
+
+ /**
+ * @see ClientTypeEnum
+ */
+ @ApiModelProperty(value = "璁㈠崟鏉ユ簮")
+ private String clientType;
+
+ /**
+ * 瀛愯鍗曚俊鎭�
+ */
+ @Getter
+ private List<OrderItemVO> orderItems;
+
+ @ApiModelProperty(hidden = true, value = "item goods_id")
+ @Setter
+ private String groupGoodsId;
+
+ @ApiModelProperty(hidden = true, value = "item sku id")
+ @Setter
+ private String groupSkuId;
+
+ @ApiModelProperty(hidden = true, value = "item 鏁伴噺")
+ @Setter
+ private String groupNum;
+
+ @ApiModelProperty(hidden = true, value = "item 鍥剧墖")
+ @Setter
+ private String groupImages;
+
+ @ApiModelProperty(hidden = true, value = "item 鍚嶅瓧")
+ @Setter
+ private String groupName;
+
+ @ApiModelProperty(hidden = true, value = "item 缂栧彿")
+ @Setter
+ private String groupOrderItemsSn;
+
+ @ApiModelProperty(hidden = true, value = "item 鍟嗗搧浠锋牸")
+ @Setter
+ private String groupGoodsPrice;
+ /**
+ * @see OrderItemAfterSaleStatusEnum
+ */
+ @ApiModelProperty(hidden = true, value = "item 鍞悗鐘舵��", allowableValues = "NOT_APPLIED(鏈敵璇�),ALREADY_APPLIED(宸茬敵璇�),EXPIRED(宸插け鏁堜笉鍏佽鐢宠鍞悗)")
+ @Setter
+ private String groupAfterSaleStatus;
+
+ /**
+ * @see cn.lili.modules.order.order.entity.enums.OrderComplaintStatusEnum
+ */
+ @ApiModelProperty(hidden = true, value = "item 鎶曡瘔鐘舵��")
+ @Setter
+ private String groupComplainStatus;
+
+ /**
+ * @see cn.lili.modules.order.order.entity.enums.CommentStatusEnum
+ */
+ @ApiModelProperty(hidden = true, value = "item 璇勪环鐘舵��")
+ @Setter
+ private String groupCommentStatus;
+
+
+ /**
+ * @see cn.lili.modules.order.order.entity.enums.OrderTypeEnum
+ */
+ @ApiModelProperty(value = "璁㈠崟绫诲瀷")
+ private String orderType;
+
+ /**
+ * @see cn.lili.modules.order.order.entity.enums.DeliverStatusEnum
+ */
+ @ApiModelProperty(value = "璐ц繍鐘舵��")
+ private String deliverStatus;
+
+ /**
+ * @see OrderPromotionTypeEnum
+ */
+ @ApiModelProperty(value = "璁㈠崟淇冮攢绫诲瀷")
+ private String orderPromotionType;
+
+ @ApiModelProperty(value = "鏄惁閫�娆�")
+ private String groupIsRefund;
+
+ @ApiModelProperty(value = "閫�娆鹃噾棰�")
+ private String groupRefundPrice;
+
+ @ApiModelProperty(value = "鍗栧璁㈠崟澶囨敞")
+ private String sellerRemark;
+ private int i = 0;
+ public List<OrderItemVO> initOrderItems() {
+ if (CharSequenceUtil.isEmpty(groupGoodsId)) {
+ return new ArrayList<>();
+ }
+ List<OrderItemVO> orderItemVOS = new ArrayList<>();
+
+
+ String[] goodsId = groupGoodsId.split(",");
+
+ for (int i = 0; i < goodsId.length; i++) {
+ orderItemVOS.add(this.getOrderItemVO(i));
+ }
+ return orderItemVOS;
+
+ }
+
+ private OrderItemVO getOrderItemVO(int i) {
+ OrderItemVO orderItemVO = new OrderItemVO();
+ orderItemVO.setGoodsId(groupGoodsId.split(",")[i]);
+ if (CharSequenceUtil.isNotEmpty(groupOrderItemsSn)) {
+ orderItemVO.setSn(groupOrderItemsSn.split(",")[i]);
+ }
+ if (CharSequenceUtil.isNotEmpty(groupSkuId)) {
+ orderItemVO.setSkuId(groupSkuId.split(",")[i]);
+ }
+ if (CharSequenceUtil.isNotEmpty(groupName)) {
+ orderItemVO.setName(groupName.split(",")[i]);
+ }
+ if (CharSequenceUtil.isNotEmpty(groupNum) && groupNum.split(",").length == groupGoodsId.split(",").length) {
+ orderItemVO.setNum(groupNum.split(",")[i]);
+ }
+ if (CharSequenceUtil.isNotEmpty(groupImages) && groupImages.split(",").length == groupGoodsId.split(",").length) {
+ orderItemVO.setImage(groupImages.split(",")[i]);
+ }
+ if (CharSequenceUtil.isNotEmpty(groupAfterSaleStatus) && groupAfterSaleStatus.split(",").length == groupGoodsId.split(",").length) {
+ if (!OrderPromotionTypeEnum.isCanAfterSale(this.orderPromotionType)) {
+ orderItemVO.setAfterSaleStatus(OrderItemAfterSaleStatusEnum.EXPIRED.name());
+ } else {
+ orderItemVO.setAfterSaleStatus(groupAfterSaleStatus.split(",")[i]);
+ }
+ }
+ if (CharSequenceUtil.isNotEmpty(groupComplainStatus) && groupComplainStatus.split(",").length == groupGoodsId.split(",").length) {
+ orderItemVO.setComplainStatus(groupComplainStatus.split(",")[i]);
+ }
+ if (CharSequenceUtil.isNotEmpty(groupCommentStatus) && groupCommentStatus.split(",").length == groupGoodsId.split(",").length) {
+ orderItemVO.setCommentStatus(groupCommentStatus.split(",")[i]);
+ }
+ if (CharSequenceUtil.isNotEmpty(groupGoodsPrice) && groupGoodsPrice.split(",").length == groupGoodsId.split(",").length) {
+ orderItemVO.setGoodsPrice(Double.parseDouble(groupGoodsPrice.split(",")[i]));
+ }
+ if (CharSequenceUtil.isNotEmpty(groupIsRefund) && groupIsRefund.split(",").length == groupGoodsId.split(",").length) {
+ orderItemVO.setIsRefund(groupIsRefund.split(",")[i]);
+ }
+ if (CharSequenceUtil.isNotEmpty(groupRefundPrice) && groupRefundPrice.split(",").length == groupGoodsId.split(",").length) {
+ orderItemVO.setRefundPrice(groupRefundPrice.split(",")[i]);
+ }
+ return orderItemVO;
+ }
+
+ /**
+ * 鍒濆鍖栬嚜韬姸鎬�
+ */
+ public AllowOperation getAllowOperationVO() {
+ //璁剧疆璁㈠崟鐨勫彲鎿嶄綔鐘舵��
+ return new AllowOperation(this);
+ }
+
+ public String getGroupAfterSaleStatus() {
+ // 涓嶅彲鍞悗鐨勮鍗曠被鍨嬮泦鍚�
+ if (!OrderPromotionTypeEnum.isCanAfterSale(this.orderPromotionType)) {
+ return OrderItemAfterSaleStatusEnum.EXPIRED.name();
+ }
+ return groupAfterSaleStatus;
+ }
+}
diff --git a/framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java b/framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java
index 1b19087..698f654 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java
@@ -3,6 +3,7 @@
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dto.OrderExportDTO;
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
+import cn.lili.modules.order.order.entity.vo.OrderSimpleXcxVO;
import cn.lili.modules.order.order.entity.vo.PaymentLog;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -96,6 +97,29 @@
",GROUP_CONCAT(oi.refund_price) as group_refund_price " +
" FROM li_order o LEFT JOIN li_order_item AS oi on o.sn = oi.order_sn ${ew.customSqlSegment} ")
IPage<OrderSimpleVO> queryByParams(IPage<OrderSimpleVO> page, @Param(Constants.WRAPPER) Wrapper<OrderSimpleVO> queryWrapper);
+ /**
+ * 鏌ヨ璁㈠崟绠�鐭俊鎭垎椤�
+ *
+ * @param page 鍒嗛〉
+ * @param queryWrapper 鏌ヨ鏉′欢
+ * @return 绠�鐭鍗曞垎椤�
+ */
+ @Select("select o.sn,o.flow_price,o.create_time,o.order_status,o.pay_status,o.payment_method,o.payment_time,o.member_name,o.store_name as " +
+ "store_name,o.store_id as store_id,o.client_type,o.order_type,o.deliver_status,o.order_promotion_type,o.seller_remark " +
+ ",GROUP_CONCAT(oi.goods_id) as group_goods_id," +
+ " GROUP_CONCAT(oi.sku_id) as group_sku_id," +
+ " GROUP_CONCAT(oi.num) as group_num" +
+ ",GROUP_CONCAT(oi.image) as group_images" +
+ ",GROUP_CONCAT(oi.goods_name) as group_name " +
+ ",GROUP_CONCAT(oi.after_sale_status) as group_after_sale_status" +
+ ",GROUP_CONCAT(oi.complain_status) as group_complain_status" +
+ ",GROUP_CONCAT(oi.comment_status) as group_comment_status" +
+ ",GROUP_CONCAT(oi.sn) as group_order_items_sn " +
+ ",GROUP_CONCAT(oi.goods_price) as group_goods_price " +
+ ",GROUP_CONCAT(oi.is_refund) as group_is_refund " +
+ ",GROUP_CONCAT(oi.refund_price) as group_refund_price " +
+ " FROM li_order o LEFT JOIN li_order_item AS oi on o.sn = oi.order_sn ${ew.customSqlSegment} ")
+ IPage<OrderSimpleXcxVO> queryByXcxParams(IPage<OrderSimpleVO> page, @Param(Constants.WRAPPER) Wrapper<OrderSimpleVO> queryWrapper);
/**
* 鏌ヨ璁㈠崟淇℃伅
diff --git a/framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java b/framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java
index 00be1e0..93d229d 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java
@@ -3,12 +3,12 @@
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.order.entity.dos.Order;
-import cn.lili.modules.order.order.entity.dto.OrderExportDTO;
import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.modules.order.order.entity.dto.OrderSearchParams;
import cn.lili.modules.order.order.entity.dto.PartDeliveryParamsDTO;
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
+import cn.lili.modules.order.order.entity.vo.OrderSimpleXcxVO;
import cn.lili.modules.order.order.entity.vo.PaymentLog;
import cn.lili.modules.system.entity.vo.Traces;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
@@ -53,6 +53,13 @@
* @return 绠�鐭鍗曞垎椤�
*/
IPage<OrderSimpleVO> queryByParams(OrderSearchParams orderSearchParams);
+ /**
+ * 璁㈠崟鏌ヨ
+ *
+ * @param orderSearchParams 鏌ヨ鍙傛暟
+ * @return 绠�鐭鍗曞垎椤�
+ */
+ IPage<OrderSimpleXcxVO> queryByXcxParams(OrderSearchParams orderSearchParams);
/**
* 璁㈠崟淇℃伅
diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
index 296c304..dc4a066 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -1,9 +1,11 @@
package cn.lili.modules.order.order.serviceimpl;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.CharSequenceUtil;
+import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import cn.hutool.poi.excel.ExcelReader;
@@ -20,7 +22,10 @@
import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.utils.CurrencyUtil;
import cn.lili.common.utils.SnowFlake;
+import cn.lili.common.utils.StringUtils;
+import cn.lili.modules.goods.entity.dos.Goods;
import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage;
+import cn.lili.modules.goods.service.GoodsService;
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.cart.entity.enums.DeliveryMethodEnum;
@@ -28,10 +33,7 @@
import cn.lili.modules.order.order.entity.dos.*;
import cn.lili.modules.order.order.entity.dto.*;
import cn.lili.modules.order.order.entity.enums.*;
-import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
-import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
-import cn.lili.modules.order.order.entity.vo.OrderVO;
-import cn.lili.modules.order.order.entity.vo.PaymentLog;
+import cn.lili.modules.order.order.entity.vo.*;
import cn.lili.modules.order.order.mapper.OrderMapper;
import cn.lili.modules.order.order.service.*;
import cn.lili.modules.order.trade.entity.dos.OrderLog;
@@ -59,12 +61,14 @@
import cn.lili.trigger.model.TimeExecuteConstant;
import cn.lili.trigger.model.TimeTriggerMsg;
import cn.lili.trigger.util.DelayQueueTools;
+import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Cell;
@@ -168,7 +172,10 @@
@Autowired
private SettingService settingService;
-
+ @Autowired
+ private GoodsService goodsService;
+ @Autowired
+ private COSUtil cosUtil;
@Override
@Transactional(rollbackFor = Exception.class)
public void intoDB(TradeDTO tradeDTO) {
@@ -224,6 +231,42 @@
return this.baseMapper.queryByParams(PageUtil.initPage(orderSearchParams), queryWrapper);
}
+ @Override
+ public IPage<OrderSimpleXcxVO> queryByXcxParams(OrderSearchParams orderSearchParams) {
+ QueryWrapper queryWrapper = orderSearchParams.queryWrapper();
+ queryWrapper.groupBy("o.id");
+ queryWrapper.orderByDesc("o.id");
+ IPage<OrderSimpleXcxVO> iPage = this.baseMapper.queryByXcxParams(PageUtil.initPage(orderSearchParams), queryWrapper);
+ Set<String> goodsIds = new HashSet<>();
+ for (OrderSimpleXcxVO orderSimpleVO : iPage.getRecords()) {
+ orderSimpleVO.setOrderItems(orderSimpleVO.initOrderItems());
+ String groupGoodsId = orderSimpleVO.getGroupGoodsId();
+ if (StringUtils.isNotBlank(groupGoodsId)) {
+ goodsIds.addAll(Arrays.asList(groupGoodsId.split(",")));
+ }
+ }
+ if (CollectionUtil.isNotEmpty(goodsIds)) {
+ List<Goods> list = goodsService.list(Wrappers.<Goods>lambdaQuery().in(Goods::getId, goodsIds));
+ Map<String, String> goodsVideos = list
+ .stream().collect(Collectors.toMap(Goods::getId, g->
+ StringUtils.isNotBlank(g.getGoodsVideo())?g.getGoodsVideo():""
+ ));
+ iPage.getRecords().forEach(orderSimpleVO -> {
+ orderSimpleVO.getOrderItems().forEach(orderItem -> {
+ String videoUrl = goodsVideos.get(orderItem.getGoodsId());
+ if (StringUtils.isNotBlank(videoUrl)&&!videoUrl.contains("http")) {
+ orderItem.setVideo(cosUtil.getPreviewUrl(videoUrl));
+ }
+ String image = orderItem.getImage();
+ if (StringUtils.isNotBlank(image)&&!image.contains("http")) {
+ orderItem.setImage(cosUtil.getPreviewUrl(image));
+ }
+ });
+ });
+ }
+ return iPage;
+ }
+
/**
* 璁㈠崟淇℃伅
*
diff --git a/framework/src/main/java/cn/lili/modules/search/entity/dto/EsGoodsSearchDTO.java b/framework/src/main/java/cn/lili/modules/search/entity/dto/EsGoodsSearchDTO.java
index 1eeb771..ba73b62 100644
--- a/framework/src/main/java/cn/lili/modules/search/entity/dto/EsGoodsSearchDTO.java
+++ b/framework/src/main/java/cn/lili/modules/search/entity/dto/EsGoodsSearchDTO.java
@@ -76,6 +76,11 @@
@ApiModelProperty("闄や簡閿�鍞ā寮忓綋鍓嶉攢鍞ā寮忎箣澶�")
private String neSalesModel;
+ @ApiModelProperty("鏄惁寮�鍚晢鍝佽繃婊�")
+ private Boolean canFilter;
+
+
+
//杩囨护鎼滅储鍏抽敭瀛�
public String getKeyword() {
if (CharSequenceUtil.isNotEmpty(keyword)) {
diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
index 11aa047..0cadc1c 100644
--- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
@@ -93,7 +93,9 @@
cache.incrementScore(CachePrefix.HOT_WORD.getPrefix(), searchDTO.getKeyword());
}
NativeSearchQueryBuilder searchQueryBuilder = createSearchQueryBuilder(searchDTO, pageVo);
-// searchQueryBuilder.withCollapseField("goodsId.keyword");
+ if (Objects.nonNull(searchDTO.getCanFilter())&&searchDTO.getCanFilter()){
+ searchQueryBuilder.withCollapseField("goodsId.keyword");
+ }
NativeSearchQuery searchQuery = searchQueryBuilder.build();
searchQuery.setTrackTotalHits(true);
log.debug("searchGoods DSL:{}", searchQuery.getQuery());
diff --git a/seller-api/src/main/java/cn/lili/controller/order/OrderStoreController.java b/seller-api/src/main/java/cn/lili/controller/order/OrderStoreController.java
index 784c832..3204355 100644
--- a/seller-api/src/main/java/cn/lili/controller/order/OrderStoreController.java
+++ b/seller-api/src/main/java/cn/lili/controller/order/OrderStoreController.java
@@ -8,6 +8,7 @@
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.OperationalJudgment;
import cn.lili.common.security.context.UserContext;
+import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
import cn.lili.modules.member.service.StoreLogisticsService;
@@ -20,6 +21,7 @@
import cn.lili.modules.order.order.service.OrderPriceService;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.system.service.LogisticsService;
+import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -75,7 +77,8 @@
@Autowired
private OrderPackageService orderPackageService;
-
+ @Autowired
+ private COSUtil cosUtil;
@ApiOperation(value = "鏌ヨ璁㈠崟鍒楄〃")
@GetMapping
public ResultMessage<IPage<OrderSimpleVO>> queryMineOrder(OrderSearchParams orderSearchParams) {
@@ -90,7 +93,14 @@
@GetMapping(value = "/{orderSn}")
public ResultMessage<OrderDetailVO> detail(@NotNull @PathVariable String orderSn) {
OperationalJudgment.judgment(orderService.getBySn(orderSn));
- return ResultUtil.data(orderService.queryDetail(orderSn));
+ OrderDetailVO orderDetailVO = orderService.queryDetail(orderSn);
+ orderDetailVO.getOrderItems().forEach(orderItem -> {
+ String image = orderItem.getImage();
+ if (StringUtils.isNotBlank(image)&&!image.contains("http")) {
+ orderItem.setImage(cosUtil.getPreviewUrl(image));
+ }
+ });
+ return ResultUtil.data(orderDetailVO);
}
@ApiOperation(value = "淇敼鏀惰揣浜轰俊鎭�")
--
Gitblit v1.8.0