From ef3cbe85b1cba4c4131a928504de4998b99703ef Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 17 Feb 2025 14:51:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=20=E5=87=BA?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/ShopActivateController.java | 54 +++++++ .../admin/ShopCouponController.java | 20 +++ .../user/UserShopActivateController.java | 31 ++++ .../controller/user/UserOrderController.java | 26 +++- .../java/com/czg/mq/RabbitmqReceiver.java | 7 +- .../java/com/czg/config/RabbitPublisher.java | 16 +- .../com/czg/account/dto/ShopActivateDTO.java | 75 +++++++++ .../com/czg/account/dto/ShopCouponDTO.java | 142 +++++++++++++++++ .../com/czg/account/entity/ShopActivate.java | 74 +++++++++ .../account/entity/ShopActivateInRecord.java | 117 ++++++++++++++ .../account/entity/ShopActivateOutRecord.java | 79 ++++++++++ .../com/czg/account/entity/ShopCoupon.java | 145 ++++++++++++++++++ .../java/com/czg/account/entity/ShopUser.java | 5 - .../service/ShopActivateInRecordService.java | 14 ++ .../service/ShopActivateOutRecordService.java | 14 ++ .../account/service/ShopActivateService.java | 24 +++ .../account/service/ShopCouponService.java | 36 +++++ .../java/com/czg/account/vo/UserCouponVo.java | 43 ++++++ .../mapper/ShopActivateInRecordMapper.java | 14 ++ .../account/mapper/ShopActivateMapper.java | 14 ++ .../mapper/ShopActivateOutRecordMapper.java | 14 ++ .../account/mapper/ShopCouponMapper.java | 14 ++ .../impl/ShopActivateInRecordServiceImpl.java | 20 +++ .../ShopActivateOutRecordServiceImpl.java | 19 +++ .../service/impl/ShopActivateServiceImpl.java | 43 ++++++ .../service/impl/ShopCouponServiceImpl.java | 85 ++++++++++ .../service/impl/ShopUserServiceImpl.java | 9 +- .../mapper/ShopActivateInRecordMapper.xml | 7 + .../resources/mapper/ShopActivateMapper.xml | 7 + .../mapper/ShopActivateOutRecordMapper.xml | 7 + .../resources/mapper/ShopCouponMapper.xml | 7 + .../czg/service/order/dto/CreateOrderDTO.java | 44 ++++++ .../service/order/dto/UserCouponInfoDTO.java | 12 ++ .../service/impl/OrderInfoServiceImpl.java | 10 +- 34 files changed, 1224 insertions(+), 24 deletions(-) create mode 100644 cash-api/account-server/src/main/java/com/czg/controller/admin/ShopActivateController.java create mode 100644 cash-api/account-server/src/main/java/com/czg/controller/admin/ShopCouponController.java create mode 100644 cash-api/account-server/src/main/java/com/czg/controller/user/UserShopActivateController.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopActivateDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopCouponDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivate.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateInRecord.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateOutRecord.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopCoupon.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateInRecordService.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateOutRecordService.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateService.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopCouponService.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponVo.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateInRecordMapper.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateMapper.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateOutRecordMapper.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopCouponMapper.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateInRecordServiceImpl.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateOutRecordServiceImpl.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateServiceImpl.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopCouponServiceImpl.java create mode 100644 cash-service/account-service/src/main/resources/mapper/ShopActivateInRecordMapper.xml create mode 100644 cash-service/account-service/src/main/resources/mapper/ShopActivateMapper.xml create mode 100644 cash-service/account-service/src/main/resources/mapper/ShopActivateOutRecordMapper.xml create mode 100644 cash-service/account-service/src/main/resources/mapper/ShopCouponMapper.xml create mode 100644 cash-service/order-service/src/main/java/com/czg/service/order/dto/CreateOrderDTO.java create mode 100644 cash-service/order-service/src/main/java/com/czg/service/order/dto/UserCouponInfoDTO.java diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopActivateController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopActivateController.java new file mode 100644 index 000000000..eb6981b3f --- /dev/null +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopActivateController.java @@ -0,0 +1,54 @@ +package com.czg.controller.admin; + +import com.czg.account.dto.ShopActivateDTO; +import com.czg.account.service.ShopActivateService; +import com.czg.annotation.SaAdminCheckPermission; +import com.czg.resp.CzgResult; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 店铺充值活动管理 + * @author ww + * @description + */ + +@RestController +@RequestMapping("/admin/activate") +public class ShopActivateController { + @Resource + private ShopActivateService shopActivateService; + + /** + * 店铺充值活动列表 + * 权限标识: activate:list + */ + @SaAdminCheckPermission("activate:list") + @GetMapping + public CzgResult> detail() { + return CzgResult.success(shopActivateService.getList()); + } + + /** + * 店铺充值活动新增 + * 权限标识: activate:add + */ + @SaAdminCheckPermission("activate:add") + @PutMapping + public CzgResult add(@RequestBody @Validated ShopActivateDTO activateDTO) { + return CzgResult.success(shopActivateService.add(activateDTO)); + } + + /** + * 店铺充值活动修改 + * 权限标识: activate:edit + */ + @SaAdminCheckPermission("activate:edit") + @PutMapping + public CzgResult edit(@RequestBody @Validated ShopActivateDTO activateDTO) { + return CzgResult.success(shopActivateService.edit(activateDTO)); + } +} diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopCouponController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopCouponController.java new file mode 100644 index 000000000..ec4967f2b --- /dev/null +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopCouponController.java @@ -0,0 +1,20 @@ +package com.czg.controller.admin; + +import com.czg.account.service.ShopCouponService; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author ww + * @description + */ + +@RestController +@RequestMapping("/admin/coupon") +public class ShopCouponController { + @Resource + private ShopCouponService couponService; + + +} diff --git a/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopActivateController.java b/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopActivateController.java new file mode 100644 index 000000000..513ebf3ef --- /dev/null +++ b/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopActivateController.java @@ -0,0 +1,31 @@ +package com.czg.controller.user; + +import com.czg.account.dto.ShopActivateDTO; +import com.czg.account.service.ShopActivateService; +import com.czg.resp.CzgResult; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 店铺充值活动管理 + * @author ww + */ +@RestController +@RequestMapping("/user/activate") +public class UserShopActivateController { + @Resource + private ShopActivateService shopActivateService; + + /** + * 店铺充值活动列表 + */ + @GetMapping + public CzgResult> detail() { + return CzgResult.success(shopActivateService.getList()); + } + +} diff --git a/cash-api/order-server/src/main/java/com/czg/controller/user/UserOrderController.java b/cash-api/order-server/src/main/java/com/czg/controller/user/UserOrderController.java index 3cd70bd94..76a4b6a1a 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/user/UserOrderController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/user/UserOrderController.java @@ -1,9 +1,12 @@ package com.czg.controller.user; import com.czg.order.dto.OrderInfoQueryDTO; +import com.czg.order.entity.OrderInfo; import com.czg.order.service.OrderInfoService; import com.czg.order.vo.OrderInfoVo; import com.czg.resp.CzgResult; +import com.czg.sa.StpKit; +import com.czg.utils.AssertUtil; import com.mybatisflex.core.paginate.Page; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; @@ -11,6 +14,7 @@ import org.springframework.web.bind.annotation.*; /** * 订单管理 + * * @author ww * @description */ @@ -25,7 +29,27 @@ public class UserOrderController { * 订单列表 */ @PostMapping - public CzgResult> get(@RequestBody OrderInfoQueryDTO queryDTO) { + public CzgResult> getOrderPage(@RequestBody OrderInfoQueryDTO queryDTO) { + queryDTO.setIsDel(1); + queryDTO.setUserId(StpKit.USER.getLoginIdAsLong()); return CzgResult.success(orderInfoService.getOrderByPage(queryDTO)); } + + @PostMapping + public CzgResult createOrder(@RequestBody OrderInfoQueryDTO queryDTO) { + queryDTO.setIsDel(1); + queryDTO.setUserId(StpKit.USER.getLoginIdAsLong()); + return CzgResult.success(); + } + + @PutMapping("{id}") + public CzgResult upOrderIsDel(@PathVariable("id") Long id) { + //效验数据 + AssertUtil.isNull(id, "{}不能为空", "订单Id"); + orderInfoService.updateChain() + .set(OrderInfo::getIsDel, 1) + .eq(OrderInfoVo::getId, id) + .update(); + return CzgResult.success(); + } } diff --git a/cash-api/order-server/src/main/java/com/czg/mq/RabbitmqReceiver.java b/cash-api/order-server/src/main/java/com/czg/mq/RabbitmqReceiver.java index f2d2f3be4..854f30ca2 100644 --- a/cash-api/order-server/src/main/java/com/czg/mq/RabbitmqReceiver.java +++ b/cash-api/order-server/src/main/java/com/czg/mq/RabbitmqReceiver.java @@ -18,6 +18,7 @@ public class RabbitmqReceiver { /** * 消费者监听,绑定队列 + * Queue RabbitConfig类的 orderPrintQueue */ @RabbitListener( bindings = @QueueBinding(value = @Queue(value = "#{orderPrintQueue.name}", durable = "true", @@ -26,11 +27,9 @@ public class RabbitmqReceiver { concurrency = "10" ) @RabbitHandler - public void receiveOrderPrintQueue(Channel channel, String payload, Message message) throws IOException { + public void receiveOrderPrintQueue(Channel channel, String orderId, Message message) throws IOException { try { - System.out.println("Topic模式(orderPrintQueue)消费者收到消息: " + message); - System.out.println(payload); - + log.info("订单监听 消息体:{},消息内容:{}", message, orderId); // 手动确认消息,multiple 参数表示是否批量确认 channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } catch (Exception e) { diff --git a/cash-common/cash-common-mq/src/main/java/com/czg/config/RabbitPublisher.java b/cash-common/cash-common-mq/src/main/java/com/czg/config/RabbitPublisher.java index f65e418af..f435b2da9 100644 --- a/cash-common/cash-common-mq/src/main/java/com/czg/config/RabbitPublisher.java +++ b/cash-common/cash-common-mq/src/main/java/com/czg/config/RabbitPublisher.java @@ -17,12 +17,20 @@ public class RabbitPublisher { @Resource private RabbitTemplate rabbitTemplate; - public void sendOrderStockMsg(String msg) { - sendMsg(RabbitConstants.Exchange.CASH_EXCHANGE, RabbitConstants.Queue.ORDER_STOCK_QUEUE, msg); + /** + * 库存损耗消息 + * @param orderId 订单id + */ + public void sendOrderStockMsg(String orderId) { + sendMsg(RabbitConstants.Exchange.CASH_EXCHANGE, RabbitConstants.Queue.ORDER_STOCK_QUEUE, orderId); } - public void sendOrderPrintMsg(String msg) { - sendMsg(RabbitConstants.Exchange.CASH_EXCHANGE, RabbitConstants.Queue.ORDER_PRINT_QUEUE, msg); + /** + * 订单打印消息 + * @param orderId + */ + public void sendOrderPrintMsg(String orderId) { + sendMsg(RabbitConstants.Exchange.CASH_EXCHANGE, RabbitConstants.Queue.ORDER_PRINT_QUEUE, orderId); } private void sendMsg(String exchange, String queue, String msg) { diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopActivateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopActivateDTO.java new file mode 100644 index 000000000..436881d0b --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopActivateDTO.java @@ -0,0 +1,75 @@ + +package com.czg.account.dto; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.czg.validator.group.InsertGroup; +import com.czg.validator.group.UpdateGroup; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 活动 实体类。 + * + * @author ww + * @since 2025-02-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ShopActivateDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @NotNull(message = "主键不能为空", groups = {UpdateGroup.class}) + private Long id; + + + private Long shopId; + + /** + * 充值金额 + */ + @NotNull(message = "充值金额不能为空", groups = {InsertGroup.class, UpdateGroup.class}) + private Integer amount; + + /** + * 赠送金额 + */ + private Integer giftAmount; + + /** + * 赠送积分 + */ + private Integer giftPoints; + + /** + * 是否赠送优惠卷 0否 1是 + */ + private Integer isGiftCoupon = 0; + + /** + * 优惠卷id + */ + private Long couponId; + + /** + * 优惠卷数量 + */ + private Integer num; + + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopCouponDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopCouponDTO.java new file mode 100644 index 000000000..ffff1ed30 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopCouponDTO.java @@ -0,0 +1,142 @@ + +package com.czg.account.dto; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.sql.Time; +import java.time.LocalDateTime; +import com.alibaba.fastjson2.annotation.JSONField; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 优惠券 实体类。 + * + * @author ww + * @since 2025-02-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ShopCouponDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 自增 + */ + private Long id; + + /** + * 状态0-关闭 1 正常 + */ + private Integer status; + + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** + * 名称(无意义) + */ + private String title; + + private String shopId; + + /** + * 已使用数量 + */ + private Integer useNumber; + + /** + * 发放数量 + */ + private Integer number; + + /** + * 剩余数量 + */ + private Integer leftNumber; + + /** + * 有效期类型,可选值为 fixed(固定时间)/custom(自定义时间) + */ + private String validityType; + + /** + * 有效天数 + */ + private Integer validDays; + + /** + * 隔多少天生效 + */ + private Integer daysToTakeEffect; + + /** + * 有效开始时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime validStartTime; + + /** + * 有效结束时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime validEndTime; + + /** + * 周 数组["周一","周二"] + */ + private String userDays; + + /** + * all-全时段 custom-指定时段 + */ + private String useTimeType; + + /** + * 可用开始时间 + */ + @JSONField(format = "HH:mm:ss") + private Time useStartTime; + + /** + * 可用结束时间 + */ + @JSONField(format = "HH:mm:ss") + private Time useEndTime; + + /** + * 1-满减 2-商品 + */ + private Integer type; + + /** + * 满多少金额 + */ + private BigDecimal fullAmount; + + /** + * 减多少金额 + */ + private BigDecimal discountAmount; + + /** + * 描述 + */ + private String description; + + /** + * 发放人 + */ + private String editor; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivate.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivate.java new file mode 100644 index 000000000..f2d6e3eda --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivate.java @@ -0,0 +1,74 @@ +package com.czg.account.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 活动 实体类。 + * + * @author ww + * @since 2025-02-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_shop_activate") +public class ShopActivate implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Long id; + + private Long shopId; + + /** + * 充值金额 + */ + private Integer amount; + + /** + * 赠送金额 + */ + private Integer giftAmount; + + /** + * 赠送积分 + */ + private Integer giftPoints; + + /** + * 是否赠送优惠卷 0否 1是 + */ + private Integer isGiftCoupon; + + /** + * 优惠卷id + */ + private Long couponId; + + /** + * 优惠卷数量 + */ + private Integer num; + + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateInRecord.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateInRecord.java new file mode 100644 index 000000000..175035f56 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateInRecord.java @@ -0,0 +1,117 @@ +package com.czg.account.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 活动商品赠送记录表 实体类。 + * + * @author ww + * @since 2025-02-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_shop_activate_in_record") +public class ShopActivateInRecord implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 会员id + */ + private Long vipUserId; + + /** + * 卷Id (校验是否可用) + */ + private Long couponId; + + /** + * 卷描述 满10减2/商品卷 + */ + private String name; + + /** + * 1-满减 2-商品 + */ + private Integer type; + + /** + * 商品id + */ + private Long proId; + + /** + * 满多少金额 + */ + private BigDecimal fullAmount; + + /** + * 减多少金额 + */ + private BigDecimal discountAmount; + + /** + * 赠送数量 + */ + private Integer num; + + /** + * 未使用数量 + */ + private Integer overNum; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 来源活动id + */ + private Long sourceActId; + + private Long sourceFlowId; + + /** + * 可用开始时间 + */ + private LocalDateTime useStartTime; + + /** + * 可用结束时间 + */ + private LocalDateTime useEndTime; + + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + + private String couponJson; + + /** + * invited/activate + */ + private String source; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateOutRecord.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateOutRecord.java new file mode 100644 index 000000000..4edceddff --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateOutRecord.java @@ -0,0 +1,79 @@ +package com.czg.account.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 活动赠送商品使用记录表 实体类。 + * + * @author ww + * @since 2025-02-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_shop_activate_out_record") +public class ShopActivateOutRecord implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Long id; + + private Long shopId; + + /** + * 订单id + */ + private Long orderId; + + /** + * 商品赠送Id tb_activate_in_record的id + */ + private Long giveId; + + /** + * 会员id + */ + private Long vipUserId; + + /** + * 1-满减 2-商品 + */ + private Integer type; + + /** + * 使用数量 + */ + private Integer useNum; + + /** + * 退单量 + */ + private Integer refNum; + + /** + * 新建: create, 完成: closed, 取消:cancel, + */ + private String status; + + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopCoupon.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopCoupon.java new file mode 100644 index 000000000..d60118288 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopCoupon.java @@ -0,0 +1,145 @@ +package com.czg.account.entity; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.sql.Time; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 优惠券 实体类。 + * + * @author ww + * @since 2025-02-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_shop_coupon") +public class ShopCoupon implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 自增 + */ + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 状态0-关闭 1 正常 + */ + private Integer status; + + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + + /** + * 名称(无意义) + */ + private String title; + + private String shopId; + + /** + * 已使用数量 + */ + private Integer useNumber; + + /** + * 发放数量 + */ + private Integer number; + + /** + * 剩余数量 + */ + private Integer leftNumber; + + /** + * 有效期类型,可选值为 fixed(固定时间)/custom(自定义时间) + */ + private String validityType; + + /** + * 有效天数 + */ + private Integer validDays; + + /** + * 隔多少天生效 + */ + private Integer daysToTakeEffect; + + /** + * 有效开始时间 + */ + private LocalDateTime validStartTime; + + /** + * 有效结束时间 + */ + private LocalDateTime validEndTime; + + /** + * 周 数组["周一","周二"] + */ + private String userDays; + + /** + * all-全时段 custom-指定时段 + */ + private String useTimeType; + + /** + * 可用开始时间 + */ + private Time useStartTime; + + /** + * 可用结束时间 + */ + private Time useEndTime; + + /** + * 1-满减 2-商品 + */ + private Integer type; + + /** + * 满多少金额 + */ + private BigDecimal fullAmount; + + /** + * 减多少金额 + */ + private BigDecimal discountAmount; + + /** + * 描述 + */ + private String description; + + /** + * 发放人 + */ + private String editor; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUser.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUser.java index f9d5c9f28..6bd1a52d6 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUser.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUser.java @@ -106,11 +106,6 @@ public class ShopUser implements Serializable { */ private String code; - /** - * 会员码 - */ - private String dynamicCode; - /** * 最近一次积分变动时间 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateInRecordService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateInRecordService.java new file mode 100644 index 000000000..e67446727 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateInRecordService.java @@ -0,0 +1,14 @@ +package com.czg.account.service; + +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.ShopActivateInRecord; + +/** + * 活动商品赠送记录表 服务层。 + * + * @author ww + * @since 2025-02-17 + */ +public interface ShopActivateInRecordService extends IService { + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateOutRecordService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateOutRecordService.java new file mode 100644 index 000000000..335324731 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateOutRecordService.java @@ -0,0 +1,14 @@ +package com.czg.account.service; + +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.ShopActivateOutRecord; + +/** + * 活动赠送商品使用记录表 服务层。 + * + * @author ww + * @since 2025-02-17 + */ +public interface ShopActivateOutRecordService extends IService { + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateService.java new file mode 100644 index 000000000..714eea038 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateService.java @@ -0,0 +1,24 @@ +package com.czg.account.service; + +import com.czg.account.dto.ShopActivateDTO; +import com.czg.account.entity.ShopActivate; +import com.mybatisflex.core.service.IService; + +import java.util.List; + +/** + * 活动 服务层。 + * + * @author ww + * @since 2025-02-17 + */ +public interface ShopActivateService extends IService { + + List getList(); + + Boolean add(ShopActivateDTO activateDTO); + + Boolean edit(ShopActivateDTO activateDTO); + + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopCouponService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopCouponService.java new file mode 100644 index 000000000..4881a0977 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopCouponService.java @@ -0,0 +1,36 @@ +package com.czg.account.service; + +import com.czg.account.dto.ShopCouponDTO; +import com.czg.account.entity.ShopActivateOutRecord; +import com.czg.account.entity.ShopCoupon; +import com.mybatisflex.core.service.IService; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 优惠券 服务层。 + * + * @author ww + * @since 2025-02-17 + */ +public interface ShopCouponService extends IService { + + List getList(ShopCouponDTO couponDTO); + ShopCouponDTO getCouponById(ShopCouponDTO couponDTO); + + Boolean add(ShopCouponDTO couponDTO); + + Boolean edit(ShopCouponDTO couponDTO); + + Boolean delete(Long id); + Boolean find(Long id); + Boolean use(Integer shopId, Integer orderId, Integer vipUserId, List param); + + Boolean refund(List param); + + + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponVo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponVo.java new file mode 100644 index 000000000..22af88db3 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponVo.java @@ -0,0 +1,43 @@ +package com.czg.account.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class UserCouponVo { + private Long id; + private BigDecimal fullAmount; + private BigDecimal discountAmount; + private Long couponId; + private Long proId; + // 商品名称 + private String productName; + private String productCover; + //优惠券名称 + private String name; + + //优惠券类型 1 满减 2 商品券 + private Integer type; + //数量 + private Integer num; + //到期时间 + private Date endTime; + private Long expireTime; + private String useRestrictions; + private boolean isUse = false; + //当前使用数量 + private BigDecimal currentUseNum; + private Integer finalUseNum; + private BigDecimal finalDiscountAmount = new BigDecimal(0); + + + public void setEndTime(Date endTime) { + this.endTime = endTime; + if(endTime!=null){ + expireTime=endTime.getTime(); + } + } + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateInRecordMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateInRecordMapper.java new file mode 100644 index 000000000..63cbea620 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateInRecordMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.ShopActivateInRecord; + +/** + * 活动商品赠送记录表 映射层。 + * + * @author ww + * @since 2025-02-17 + */ +public interface ShopActivateInRecordMapper extends BaseMapper { + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateMapper.java new file mode 100644 index 000000000..6880e4d1f --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.ShopActivate; + +/** + * 活动 映射层。 + * + * @author ww + * @since 2025-02-17 + */ +public interface ShopActivateMapper extends BaseMapper { + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateOutRecordMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateOutRecordMapper.java new file mode 100644 index 000000000..5992d1e2a --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateOutRecordMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.ShopActivateOutRecord; + +/** + * 活动赠送商品使用记录表 映射层。 + * + * @author ww + * @since 2025-02-17 + */ +public interface ShopActivateOutRecordMapper extends BaseMapper { + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopCouponMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopCouponMapper.java new file mode 100644 index 000000000..0d9583f22 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopCouponMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.ShopCoupon; + +/** + * 优惠券 映射层。 + * + * @author ww + * @since 2025-02-17 + */ +public interface ShopCouponMapper extends BaseMapper { + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateInRecordServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateInRecordServiceImpl.java new file mode 100644 index 000000000..306520311 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateInRecordServiceImpl.java @@ -0,0 +1,20 @@ +package com.czg.service.account.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.ShopActivateInRecord; +import com.czg.account.service.ShopActivateInRecordService; +import com.czg.service.account.mapper.ShopActivateInRecordMapper; +import org.apache.dubbo.config.annotation.DubboService; + + +/** + * 活动商品赠送记录表 服务层实现。 + * + * @author ww + * @since 2025-02-17 + */ +@DubboService +public class ShopActivateInRecordServiceImpl extends ServiceImpl implements ShopActivateInRecordService{ + + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateOutRecordServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateOutRecordServiceImpl.java new file mode 100644 index 000000000..a81945eb9 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateOutRecordServiceImpl.java @@ -0,0 +1,19 @@ +package com.czg.service.account.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.ShopActivateOutRecord; +import com.czg.account.service.ShopActivateOutRecordService; +import com.czg.service.account.mapper.ShopActivateOutRecordMapper; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.stereotype.Service; + +/** + * 活动赠送商品使用记录表 服务层实现。 + * + * @author ww + * @since 2025-02-17 + */ +@DubboService +public class ShopActivateOutRecordServiceImpl extends ServiceImpl implements ShopActivateOutRecordService{ + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateServiceImpl.java new file mode 100644 index 000000000..7b7e92baf --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateServiceImpl.java @@ -0,0 +1,43 @@ +package com.czg.service.account.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.czg.account.dto.ShopActivateDTO; +import com.czg.account.entity.ShopActivate; +import com.czg.account.service.ShopActivateService; +import com.czg.sa.StpKit; +import com.czg.service.account.mapper.ShopActivateMapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 活动 服务层实现。 + * + * @author ww + * @since 2025-02-17 + */ +@DubboService +public class ShopActivateServiceImpl extends ServiceImpl implements ShopActivateService { + + @Override + public List getList() { + return queryChain().select().eq(ShopActivate::getShopId, StpKit.USER.getShopId()) + .orderBy(ShopActivate::getAmount, true).listAs(ShopActivateDTO.class); + } + + @Override + public Boolean add(ShopActivateDTO activateDTO) { + ShopActivate shopActivate = new ShopActivate(); + BeanUtil.copyProperties(activateDTO, shopActivate); + return save(shopActivate); + } + + @Override + public Boolean edit(ShopActivateDTO activateDTO) { + ShopActivate shopActivate = new ShopActivate(); + BeanUtil.copyProperties(activateDTO, shopActivate); + return updateById(shopActivate); + } +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopCouponServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopCouponServiceImpl.java new file mode 100644 index 000000000..c9d1a29d3 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopCouponServiceImpl.java @@ -0,0 +1,85 @@ +package com.czg.service.account.service.impl; + +import com.czg.account.dto.ShopCouponDTO; +import com.czg.account.entity.ShopActivateInRecord; +import com.czg.account.entity.ShopActivateOutRecord; +import com.czg.account.service.ShopActivateInRecordService; +import com.czg.account.service.ShopActivateOutRecordService; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.ShopCoupon; +import com.czg.account.service.ShopCouponService; +import com.czg.service.account.mapper.ShopCouponMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * 优惠券 服务层实现。 + * + * @author ww + * @since 2025-02-17 + */ +@Service +public class ShopCouponServiceImpl extends ServiceImpl implements ShopCouponService { + + @Resource + private ShopActivateInRecordService inService; + @Resource + private ShopActivateOutRecordService outService; + + @Override + public List getList(ShopCouponDTO couponDTO) { + return null; + } + + @Override + public ShopCouponDTO getCouponById(ShopCouponDTO couponDTO) { + return null; + } + + @Override + public Boolean add(ShopCouponDTO couponDTO) { + return null; + } + + @Override + public Boolean edit(ShopCouponDTO couponDTO) { + return null; + } + + @Override + public Boolean delete(Long id) { + return null; + } + + @Override + public Boolean find(Long id) { + return null; + } + + @Override + public Boolean use(Integer shopId, Integer orderId, Integer vipUserId, List param) { + return null; + } + + /** + * 退还券 + * + * @param param giveId和 refNum 必传 + */ + @Override + public Boolean refund(List param) { +// for (ShopActivateOutRecord outRecord : param) { +// outService.updateChain() +// .set(ShopActivateOutRecord::getRefNum, outRecord.getRefNum()) +// .eq(ShopActivateOutRecord::getId, outRecord.getId()) +// .update(); +// ShopActivateInRecord inRecord = inService.getById(outRecord.getGiveId()); +// inRecord.setOverNum(inRecord.getOverNum() + outRecord.getRefNum()); +// inService.updateOverNum(inRecord.getId(), inRecord.getOverNum()); +// } + return true; + } +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java index 5be1ed766..e82eedd91 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java @@ -17,6 +17,7 @@ import com.czg.exception.ApiNotPrintException; import com.czg.sa.StpKit; import com.czg.service.RedisService; import com.czg.service.account.mapper.ShopUserMapper; +import com.czg.utils.AssertUtil; import com.czg.utils.PageUtil; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.spring.service.impl.ServiceImpl; @@ -131,13 +132,9 @@ public class ShopUserServiceImpl extends ServiceImpl i @Override public String getCode(long userInfoId, long shopId) { ShopUser shopUser = queryChain().eq(ShopUser::getShopId, shopId).eq(ShopUser::getUserId, userInfoId).one(); - if (shopUser == null) { - throw new ApiNotPrintException("会员信息不存在"); - } + AssertUtil.isNull(shopUser, "会员信息不存在"); String dynamicCode = generatePaymentCode(String.valueOf(shopId), String.valueOf(userInfoId)); - redisService.set(RedisCst.SHOP_USER_DYNAMIC_CODE + shopUser.getId(), dynamicCode, 300); - shopUser.setDynamicCode(dynamicCode); - updateById(shopUser); + redisService.set(RedisCst.SHOP_USER_DYNAMIC_CODE + shopUser.getId() + ":" + dynamicCode, 1, 180); return dynamicCode; } diff --git a/cash-service/account-service/src/main/resources/mapper/ShopActivateInRecordMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopActivateInRecordMapper.xml new file mode 100644 index 000000000..f5e1d3565 --- /dev/null +++ b/cash-service/account-service/src/main/resources/mapper/ShopActivateInRecordMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/account-service/src/main/resources/mapper/ShopActivateMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopActivateMapper.xml new file mode 100644 index 000000000..68dab5fd4 --- /dev/null +++ b/cash-service/account-service/src/main/resources/mapper/ShopActivateMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/account-service/src/main/resources/mapper/ShopActivateOutRecordMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopActivateOutRecordMapper.xml new file mode 100644 index 000000000..92aade171 --- /dev/null +++ b/cash-service/account-service/src/main/resources/mapper/ShopActivateOutRecordMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/account-service/src/main/resources/mapper/ShopCouponMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopCouponMapper.xml new file mode 100644 index 000000000..0e9410c78 --- /dev/null +++ b/cash-service/account-service/src/main/resources/mapper/ShopCouponMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/dto/CreateOrderDTO.java b/cash-service/order-service/src/main/java/com/czg/service/order/dto/CreateOrderDTO.java new file mode 100644 index 000000000..16a71a84c --- /dev/null +++ b/cash-service/order-service/src/main/java/com/czg/service/order/dto/CreateOrderDTO.java @@ -0,0 +1,44 @@ +package com.czg.service.order.dto; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * 创建订单 + * @author ww + */ +@Data +public class CreateOrderDTO { + @NotBlank(message = "桌号不能为空") + private String tableCode; + @NotBlank(message = "用餐模式 堂食 dine-in 外带 take-out 外卖 take-away") + private String dineMode; + /** + * 平台类型 + * 微信小程序 WX + * 支付宝小程序 ALI + * 收银机客户端 PC + * PC管理端 APC + * APP管理端 APP + */ + @NotBlank(message = "平台类型不能为空") + private String platformType; + + /** + * 是否使用了霸王餐 + */ + private boolean isFreeDine = false; + + private String remark; + + // 使用的积分抵扣数量 + private Integer pointsNum; + + // 使用的优惠券 + @Valid + private List userCouponInfos = new ArrayList<>(); +} diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/dto/UserCouponInfoDTO.java b/cash-service/order-service/src/main/java/com/czg/service/order/dto/UserCouponInfoDTO.java new file mode 100644 index 000000000..bf0aac5b1 --- /dev/null +++ b/cash-service/order-service/src/main/java/com/czg/service/order/dto/UserCouponInfoDTO.java @@ -0,0 +1,12 @@ +package com.czg.service.order.dto; + +import jakarta.validation.constraints.Min; +import lombok.Data; + + +@Data +public class UserCouponInfoDTO { + private Long userCouponId; + @Min(1) + private Integer num; +} diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java index e33081a82..a7f9746a8 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java @@ -57,10 +57,12 @@ public class OrderInfoServiceImpl extends ServiceImpl orderInfoVoPage = pageAs(PageUtil.buildPage(), queryWrapper, OrderInfoVo.class); orderInfoVoPage.getRecords().parallelStream().forEach(s -> { @@ -83,8 +85,8 @@ public class OrderInfoServiceImpl extends ServiceImpl