peng
6 天以前 923c8e406c7ab57a728911683f0196a6bb732084
完成小程序商户端查看订单发货查看物流
6个文件已修改
1个文件已添加
541 ■■■■■ 已修改文件
buyer-api/src/main/java/cn/lili/controller/lmk/SupplierController.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consumer/src/main/resources/application.yml 171 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/entity/dto/SupplierOrderSearchParams.java 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lmk-job/src/main/java/cn/lili/handler/impl/coupon/CouponExecute.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/lmk/SupplierController.java
@@ -1,6 +1,7 @@
package cn.lili.controller.lmk;
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;
@@ -8,16 +9,26 @@
import cn.lili.modules.goods.service.CategoryService;
import cn.lili.modules.member.entity.dos.Clerk;
import cn.lili.modules.member.service.ClerkService;
import cn.lili.modules.member.service.StoreLogisticsService;
import cn.lili.modules.order.order.entity.dto.PartDeliveryParamsDTO;
import cn.lili.modules.order.order.entity.dto.SupplierOrderSearchParams;
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
import cn.lili.modules.order.order.entity.vo.OrderSimpleXcxVO;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.store.service.StoreDetailService;
import cn.lili.modules.system.entity.vo.StoreLogisticsVO;
import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Objects;
@@ -37,8 +48,22 @@
     */
    @Autowired
    private StoreDetailService storeDetailService;
    /**
     * 物流公司
     */
    @Autowired
    private StoreLogisticsService storeLogisticsService;
    /**
     * 订单
     */
    @Autowired
    private OrderService orderService;
    @Autowired
    private COSUtil cosUtil;
    @Autowired
    private ClerkService clerkService;
    @ApiOperation(value = "获取店铺经营的分类")
    @GetMapping(value = "/allCategery")
    public ResultMessage<List<CategoryVO>> getListAll() {
@@ -53,4 +78,53 @@
        String goodsManagementCategory = storeDetailService.getStoreDetail(storeId).getGoodsManagementCategory();
        return ResultUtil.data(this.categoryService.getStoreCategory(goodsManagementCategory.split(",")));
    }
    @ApiOperation(value = "查询会员订单列表")
    @GetMapping("/orderList")
    public ResultMessage<IPage<OrderSimpleXcxVO>> orderList(SupplierOrderSearchParams orderSearchParams) {
        String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
        if (StringUtils.isEmpty(storeId)) {
            Clerk clerk = clerkService.getClerkByMemberId(UserContext.getCurrentUserId());
            orderSearchParams.setStoreId(clerk.getStoreId());
        } else {
            orderSearchParams.setStoreId(storeId);
        }
        return ResultUtil.data(orderService.querySupplierOrderParams(orderSearchParams));
    }
    @ApiOperation(value = "订单明细")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path")
    })
    @GetMapping(value = "/orderDetail/{orderSn}")
    public ResultMessage<OrderDetailVO> detail(@NotNull @PathVariable String orderSn) {
        OperationalJudgment.judgment(orderService.getBySn(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 = "获取商家已选择物流公司列表")
    @GetMapping("/getChecked")
    public ResultMessage<List<StoreLogisticsVO>> getChecked() {
        String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
        return ResultUtil.data(storeLogisticsService.getStoreSelectedLogistics(storeId));
    }
    @ApiOperation(value = "订单包裹发货")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "orderSn", value = "订单sn", required = true, dataType = "String", paramType = "path"),
            @ApiImplicitParam(name = "logisticsNo", value = "发货单号", required = true, dataType = "String", paramType = "query"),
            @ApiImplicitParam(name = "logisticsId", value = "物流公司", required = true, dataType = "String", paramType = "query")
    })
    @PostMapping(value = "/{orderSn}/partDelivery")
    public ResultMessage<Object> delivery(@RequestBody PartDeliveryParamsDTO partDeliveryParamsDTO) {
        return ResultUtil.data(orderService.partDelivery(partDeliveryParamsDTO));
    }
}
consumer/src/main/resources/application.yml
@@ -4,9 +4,6 @@
  servlet:
    context-path: /
  # 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
  #    multipart:
  #      location: /Users/lifenlong/Desktop/ceshi
  tomcat:
    uri-encoding: UTF-8
    threads:
@@ -25,8 +22,6 @@
      exposure:
        include: '*'
spring:
  application:
    name: consumer
  # 要在其中注册的Spring Boot Admin Server的URL。
  boot:
    admin:
@@ -36,9 +31,10 @@
    type: redis
  # Redis
  redis:
    host: 127.0.0.1
    host: 42.193.1.25
    port: 6379
#    password: lilishop
    password: ycl2018
    database: 12
    lettuce:
      pool:
        # 连接池最大连接数(使用负值表示没有限制) 默认 8
@@ -67,11 +63,13 @@
      default-datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
        url: jdbc:mysql://42.193.1.25:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
        #        url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
        username: root
        password: 123456
        maxActive: 20
        initialSize: 5
        password: 321$YcYl@1970!
        #        password: 123456
        maxActive: 50
        initialSize: 20
        maxWait: 60000
        minIdle: 5
        timeBetweenEvictionRunsMillis: 60000
@@ -111,7 +109,7 @@
    props:
      #是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
      sql:
        show: false
        show: true
# 忽略鉴权url
ignored:
@@ -122,33 +120,42 @@
    - /MP_verify_qSyvBPhDsPdxvOhC.txt
    - /weixin/**
    - /source/**
    - /buyer/mini-program/**
    - /buyer/cashier/**
    - /buyer/pageData/**
    - /buyer/article/**
    - /store/passport/login/**
    - /store/passport/login/refresh/**
    - /common/common/slider/**
    - /common/common/sms/**
    - /common/common/site
    - /buyer/payment/cashier/**
    - /buyer/other/pageData/**
    - /buyer/other/article/**
    - /buyer/goods/**
    - /buyer/category/**
    - /buyer/shop/**
    - /buyer/connect/**
    - /buyer/members/smsLogin
    - /buyer/members/refresh/*
    - /buyer/members/refresh**
    - /buyer/promotion/pintuan
    - /buyer/promotion/seckill
    - /buyer/memberEvaluation/**/goodsEvaluation
    - /buyer/memberEvaluation/**/evaluationNumber
    - /store/login/**
    - /manager/user/login
    - /manager/user/refresh/**
    - /buyer/store/**
    - /buyer/passport/connect/**
    - /buyer/members/**
    - /buyer/passport/member/**
    - /buyer/passport/member/refresh/**
    - /buyer/promotion/pintuan/**
    - /buyer/promotion/seckill/**
    - /buyer/promotion/pointsGoods/**
    - /buyer/promotion/coupon
    - /buyer/member/evaluation/**/goodsEvaluation
    - /buyer/member/evaluation/**/evaluationNumber
    - /buyer/other/appVersion/**
    - /buyer/broadcast/studio/**
    - /manager/passport/user/login
    - /manager/passport/user/refresh/**
    - /manager/other/elasticsearch
    - /manager/other/customWords
    - /druid/**
    - /swagger-ui.html
    - /doc.html
    - /swagger-resources/**
    - /swagger/**
    - /webjars/**
    - /v2/api-docs
    - /v2/api-docs**
    - /configuration/ui
    - /boot-admin
    - /manager/promotion/seckill/init
    - /**/*.js
    - /**/*.css
    - /**/*.png
@@ -156,9 +163,9 @@
# Swagger界面内容配置
swagger:
  title: lili API接口文档
  description: lili Api Documentation
  version: 1.0.0
  title: lilishop API接口文档
  description: lilishop Api Documentation
  version: 4.2.2
  termsOfServiceUrl: https://pickmall.cn
  contact:
    name: lili
@@ -167,24 +174,31 @@
# Mybatis-plus
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  mapper-locations: classpath*:mapper/**/*.xml
  configuration:
    #缓存开启
    cache-enabled: true
    #日志
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      #逻辑删除配置字段
      logic-delete-field: deleteFlag
      #逻辑删除配置字段 1 删除
      logic-delete-value: 1
      #逻辑删除配置字段 0 不删除
      logic-not-delete-value: 0
# 日志
logging:
  config: classpath:logback-spring.xml
  # 输出级别
  level:
    root: info
    cn.lili: info
  #    org.hibernate: debug
  #    org.springframework: debug
  file:
    # 指定路径
    path: lili-logs
    path: logs
  logback:
    rollingpolicy:
      # 最大保存天数
@@ -196,9 +210,26 @@
  encryptor:
    password: lili
lili:
  #验证码设置
  verification-code:
    #图形验证码有效时间 秒 包含滑块验证码有效时间, 以及验证通过之后,缓存中存储的验证结果有效时间
    effectiveTime: 300
    #水印
    watermark: 绿满筐
    #干扰项数量 最大2 默认0
    interfereNum: 1
    #允许误差像素
    faultTolerant: 3
  system:
    isDemoSite: true
    isDemoSite: false
    #     脱敏级别:
    #     0:不做脱敏处理
    #     1:管理端用户手机号等信息脱敏
    #     2:商家端信息脱敏(为2时,表示管理端,商家端同时脱敏)
    sensitiveLevel: 1
  statistics:
    # 在线人数统计 X 小时。这里设置48,即统计过去48小时每小时在线人数
    onlineMember: 48
@@ -210,21 +241,21 @@
    sk: zhNKVrJK6UPOhqIjn8AQvG37b9sz6
  #域名
  domain:
    pc: https://pc.b2b2c.pickmall.cn
    wap: https://m.b2b2c.pickmall.cn
    store: https://store.b2b2c.pickmall.cn
    admin: https://admin.b2b2c.pickmall.cn
    pc: http://127.0.0.1:8888
    wap: http://127.0.0.1:8888
    seller: http://127.0.0.1:8888
    admin: http://127.0.0.1:8888
  #api地址
  api:
    buyer: https://buyer-api.pickmall.cn
    common: https://common-api.pickmall.cn
    manager: https://admin-api.pickmall.cn
    store: https://store-api.pickmall.cn
    buyer: https://z171l91606.51mypc.cn
    base: http://127.0.0.1:8888
    manager: http://127.0.0.1:8888
    seller: http://127.0.0.1:8888
  # jwt 细节设定
  jwt-setting:
    # token过期时间(分钟)
    tokenExpireTime: 60
    tokenExpireTime: 360
  # 使用Spring @Cacheable注解失效时间
  cache:
@@ -247,9 +278,14 @@
    #      account:
    #        username: elastic
    #        password: LiLiShopES
#    logstash:
#      server: 127.0.0.1:4560
    #    logstash:
    #      server: 127.0.0.1:30560
    rocketmq:
      comment-topic: lmk_comment_topic  # 评论
      comment-group: lmk_comment_group
      video-topic: lmk_video_topic  # 视频
      video-group: lmk_video_group
      promotion-topic: lili_promotion_topic
      promotion-group: lili_promotion_group
      msg-ext-topic: lili_msg_topic
@@ -272,6 +308,7 @@
      after-sale-group: lili_after_sale_group
rocketmq:
  name-server: 127.0.0.1:9876
  isVIPChannel: false
  producer:
    group: lili_group
    send-message-timeout: 30000
@@ -287,3 +324,37 @@
      port: 8848
      logpath: ./xxl-job/executor
      logretentiondays: 7
# 腾讯cos-sts配置
cos:
  secretId: AKID6zd07yZtwjFVVGkxvc2C5h26uTmpc9QQ  # 腾讯ARM用户的secretId
  secretKey: lFTcV6RVIo43lCMFsEKAk36tRjlVzC8n  # 腾讯ARM用户的secretKey
  durationSeconds: 1800  # STS临时访问凭证有效期,单位秒,默认1800s,主账号最长2小时,子账号(ARM用户)36小时
  bucket: lmk-1356772813
  region: ap-chengdu
  endpoint: https://lmk-1356772813.cos.ap-chengdu.myqcloud.com  # 访问域名
  urlExpireMinute: 360  # 预签名url有效时间(分钟)
  actions:  # sts的权限
    - cos:GetBucketACL
    - cos:GetObject
    - cos:GetObjectACL
    - cos:GetObjectTagging
    - cos:HeadObject
    - cos:ListMultipartUploads
    - cos:ListParts
    - cos:AbortMultipartUpload
    - cos:AppendObject
    - cos:CompleteMultipartUpload
    - cos:DeleteMultipleObjects
    - cos:DeleteObject
    - cos:InitiateMultipartUpload
    - cos:PostObject
    - cos:PutObject
    - cos:PutObjectACL
    - cos:PutObjectCopy
    - cos:PutObjectTagging
    - cos:RenameObject
    - cos:UploadPart
    - cos:UploadPartCopy
  resources: # 能操作哪些资源
    - qcs::cos::uid/1356772813:lmk-1356772813/*
framework/src/main/java/cn/lili/modules/order/order/entity/dto/SupplierOrderSearchParams.java
New file
@@ -0,0 +1,227 @@
package cn.lili.modules.order.order.entity.dto;
import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.DateUtil;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.order.order.entity.enums.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
 * 订单查询参数
 *
 * @author Chopper
 * @since 2020/11/17 4:33 下午
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class SupplierOrderSearchParams extends PageVO {
    private static final long serialVersionUID = -6380573339089959194L;
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    @ApiModelProperty(value = "订单编号")
    private String orderSn;
    @ApiModelProperty(value = "页面标签",
            example = "ALL:全部," +
                    "WAIT_PAY:待付款," +
                    "WAIT_ROG:待收货," +
                    "CANCELLED:已取消," +
                    "COMPLETE:已完成")
    private String tag;
    @ApiModelProperty(value = "商家ID")
    private String storeId;
    @ApiModelProperty(value = "会员ID")
    private String memberId;
    @ApiModelProperty(value = "收货人")
    private String shipName;
    @ApiModelProperty(value = "买家昵称")
    private String buyerName;
    @ApiModelProperty(value = "订单状态")
    private String orderStatus;
    @ApiModelProperty(value = "付款状态")
    private String payStatus;
    @ApiModelProperty(value = "关键字 商品名称/买家名称/店铺名称")
    private String keywords;
    @ApiModelProperty(value = "付款方式")
    private String paymentType;
    /**
     * @see OrderTypeEnum
     * @see OrderPromotionTypeEnum
     */
    @ApiModelProperty(value = "订单类型", allowableValues = "NORMAL,VIRTUAL,GIFT,PINTUAN,POINT")
    private String orderType;
    @ApiModelProperty(value = "支付方式")
    private String paymentMethod;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "支付时间")
    private Date paymentTime;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "下单开始时间")
    private Date startDate;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "下单结束时间")
    private Date endDate;
    @ApiModelProperty(value = "订单来源")
    private String clientType;
    /**
     * @see CommentStatusEnum
     */
    @ApiModelProperty(value = "评论状态:未评论(UNFINISHED),待追评(WAIT_CHASE),评论完成(FINISHED),")
    private String commentStatus;
    @ApiModelProperty(value = "是否为其他订单下的订单,如果是则为依赖订单的sn,否则为空")
    private String parentOrderSn;
    @ApiModelProperty(value = "是否为某订单类型的订单,如果是则为订单类型的id,否则为空")
    private String promotionId;
    @ApiModelProperty(value = "总价格,可以为范围,如10_1000")
    private String flowPrice;
    /**
     * @see OrderPromotionTypeEnum
     */
    @ApiModelProperty(value = "订单促销类型")
    private String orderPromotionType;
    public <T> QueryWrapper<T> queryWrapper() {
        AuthUser currentUser = UserContext.getCurrentUser();
        QueryWrapper<T> wrapper = new QueryWrapper<>();
        //关键字查询
        if (CharSequenceUtil.isNotEmpty(keywords)) {
            wrapper.and(keyWrapper -> keyWrapper.like("o.sn", keywords).or().like("oi.goods_name", keywords));
        }
//        if (currentUser != null) {
//            //按卖家查询
//            wrapper.eq(CharSequenceUtil.equals(currentUser.getRole().name(), UserEnums.STORE.name()), "o.store_id", currentUser.getStoreId());
//
//            //店铺查询
//            wrapper.eq(CharSequenceUtil.equals(currentUser.getRole().name(), UserEnums.MANAGER.name())
//                    && CharSequenceUtil.isNotEmpty(storeId), "o.store_id", storeId);
//
//            //按买家查询
//            wrapper.eq(CharSequenceUtil.equals(currentUser.getRole().name(), UserEnums.MEMBER.name()) && memberId == null, "o.member_id", currentUser.getId());
//
//        }
        wrapper.eq( CharSequenceUtil.isNotEmpty(storeId), "o.store_id", storeId);
        //按照买家查询
        wrapper.like(CharSequenceUtil.isNotEmpty(memberId), "o.member_id", memberId);
        //按订单编号查询
        wrapper.like(CharSequenceUtil.isNotEmpty(orderSn), "o.sn", orderSn);
        //按时间查询
        wrapper.ge(startDate != null, "o.create_time", startDate);
        wrapper.le(endDate != null, "o.create_time", DateUtil.endOfDate(endDate));
        //按购买人用户名
        wrapper.like(CharSequenceUtil.isNotEmpty(buyerName), "o.member_name", buyerName);
        //按订单类型
        wrapper.eq(CharSequenceUtil.isNotEmpty(orderType), "o.order_type", orderType);
        //物流查询
        wrapper.like(CharSequenceUtil.isNotEmpty(shipName), "o.consignee_name", shipName);
        //按商品名称查询
        wrapper.like(CharSequenceUtil.isNotEmpty(goodsName), "oi.goods_name", goodsName);
        //付款方式
        wrapper.like(CharSequenceUtil.isNotEmpty(paymentType), "o.payment_type", paymentType);
        //按支付方式
        wrapper.eq(CharSequenceUtil.isNotEmpty(paymentMethod), "o.payment_method", paymentMethod);
        //订单状态
        wrapper.eq(CharSequenceUtil.isNotEmpty(orderStatus), "o.order_status", orderStatus);
        //付款状态
        wrapper.eq(CharSequenceUtil.isNotEmpty(payStatus), "o.pay_status", payStatus);
        //订单来源
        wrapper.like(CharSequenceUtil.isNotEmpty(clientType), "o.client_type", clientType);
        //按评价状态
        wrapper.eq(CharSequenceUtil.isNotEmpty(commentStatus), "oi.comment_status", commentStatus);
        //按标签查询
        if (CharSequenceUtil.isNotEmpty(tag)) {
            String orderStatusColumn = "o.order_status";
            OrderTagEnum tagEnum = OrderTagEnum.valueOf(tag);
            switch (tagEnum) {
                //待付款
                case WAIT_PAY:
                    wrapper.eq(orderStatusColumn, OrderStatusEnum.UNPAID.name());
                    break;
                //待发货
                case WAIT_SHIP:
                    wrapper.eq(orderStatusColumn, OrderStatusEnum.UNDELIVERED.name());
                    break;
                //待收货
                case WAIT_ROG:
                    wrapper.eq(orderStatusColumn, OrderStatusEnum.DELIVERED.name());
                    break;
                //已取消
                case CANCELLED:
                    wrapper.eq(orderStatusColumn, OrderStatusEnum.CANCELLED.name());
                    break;
                //已完成
                case COMPLETE:
                    wrapper.eq(orderStatusColumn, OrderStatusEnum.COMPLETED.name());
                    break;
                default:
                    break;
            }
        }
        // 依赖订单
        wrapper.eq(parentOrderSn != null, "o.parent_order_sn", parentOrderSn);
        // 促销活动id
        wrapper.eq(CharSequenceUtil.isNotEmpty(promotionId), "o.promotion_id", promotionId);
        wrapper.eq(CharSequenceUtil.isNotEmpty(orderPromotionType), "o.order_promotion_type", orderPromotionType);
        if (CharSequenceUtil.isNotEmpty(flowPrice)) {
            String[] s = flowPrice.split("_");
            if (s.length > 1) {
                wrapper.between("o.flow_price", s[0], s[1]);
            } else {
                wrapper.ge("o.flow_price", s[0]);
            }
        }
        wrapper.eq("o.delete_flag", false);
        return wrapper;
    }
}
framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java
@@ -120,6 +120,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<OrderSimpleXcxVO> queryByXcxParams(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> querySupplierOrderParams(IPage<OrderSimpleVO> page, @Param(Constants.WRAPPER) Wrapper<OrderSimpleVO> queryWrapper);
    /**
     * 查询订单信息
framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java
@@ -6,6 +6,7 @@
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.dto.SupplierOrderSearchParams;
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;
@@ -61,6 +62,8 @@
     */
    IPage<OrderSimpleXcxVO> queryByXcxParams(OrderSearchParams orderSearchParams);
    IPage<OrderSimpleXcxVO> querySupplierOrderParams(SupplierOrderSearchParams orderSearchParams);
    /**
     * 订单信息
     *
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -272,6 +272,42 @@
        return iPage;
    }
    @Override
    public IPage<OrderSimpleXcxVO> querySupplierOrderParams(SupplierOrderSearchParams orderSearchParams) {
        QueryWrapper queryWrapper = orderSearchParams.queryWrapper();
        queryWrapper.groupBy("o.id");
        queryWrapper.orderByDesc("o.id");
        IPage<OrderSimpleXcxVO>  iPage = this.baseMapper.querySupplierOrderParams(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;
    }
    /**
     * 订单信息
     *
lmk-job/src/main/java/cn/lili/handler/impl/coupon/CouponExecute.java
@@ -1,5 +1,6 @@
package cn.lili.handler.impl.coupon;
import cn.lili.handler.EveryDayExecute;
import cn.lili.modules.promotion.entity.dos.MemberCoupon;
import cn.lili.modules.promotion.entity.enums.MemberCouponStatusEnum;
import cn.lili.modules.promotion.service.MemberCouponService;