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;