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 6ce12f85..bb4ba2c2 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,12 +1,15 @@ package com.czg.controller.user; +import com.czg.order.dto.OrderInfoAddDTO; import com.czg.order.dto.OrderInfoQueryDTO; import com.czg.order.entity.OrderInfo; import com.czg.order.service.OrderInfoService; +import com.czg.order.vo.OrderInfoCreateVo; import com.czg.order.vo.OrderInfoVo; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; import com.czg.utils.AssertUtil; +import com.czg.utils.ServletUtil; import com.mybatisflex.core.paginate.Page; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; @@ -36,10 +39,12 @@ public class UserOrderController { } @PostMapping("/createOrder") - public CzgResult createOrder(@RequestBody OrderInfoQueryDTO queryDTO) { - queryDTO.setIsDel(1); - queryDTO.setUserId(StpKit.USER.getLoginIdAsLong()); - return CzgResult.success(); + public CzgResult createOrder(@RequestBody OrderInfoAddDTO addDto) { + addDto.setPlatformType(ServletUtil.getHeaderIgnoreCase(ServletUtil.getRequest(), "platformType")); + addDto.setUserId(StpKit.USER.getLoginIdAsLong()); + addDto.setShopId(StpKit.USER.getShopId()); + addDto.setOrderType("miniapp"); + return CzgResult.success(orderInfoService.createOrder(addDto)); } @PutMapping("/{id}") diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopActivateCouponDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopActivateCouponDTO.java new file mode 100644 index 00000000..d9cc771b --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopActivateCouponDTO.java @@ -0,0 +1,14 @@ +package com.czg.account.dto; + +import lombok.Data; + +/** + * @author ww + * @description + */ +@Data +public class ShopActivateCouponDTO { + private Long id; + private Integer num; + private String name; +} 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 index 9cd1a369..77a307eb 100644 --- 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 @@ -14,12 +14,14 @@ import java.io.Serial; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; + /** * 活动 实体类。 * * @author ww - * @since 2025-02-17 + * @since 2025-02-20 */ @Data @Builder @@ -55,17 +57,14 @@ public class ShopActivateDTO implements Serializable { /** * 是否赠送优惠卷 0否 1是 */ - private Integer isGiftCoupon = 0; + private Integer isGiftCoupon; + + private List couponList; /** - * 优惠卷id + * 优惠卷信息{卷id:数量} */ - private Long couponId; - - /** - * 优惠卷数量 - */ - private Integer num; + private String coupons; @JSONField(format = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java index 346d9422..286f6267 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java @@ -1,11 +1,9 @@ package com.czg.account.dto.shopinfo; -import com.mybatisflex.annotation.Column; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; -import java.time.LocalDateTime; /** * @author Administrator @@ -207,11 +205,6 @@ public class ShopInfoEditDTO { private String address; - /** - * 积分群体 all-所有 vip-仅针对会员 - */ - private String consumeColony; - /** * 小程序码(零点八零首页) */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/PointsBasicSetting.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/PointsBasicSetting.java new file mode 100644 index 00000000..3831d7cf --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/PointsBasicSetting.java @@ -0,0 +1,96 @@ +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-20 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_points_basic_setting") +public class PointsBasicSetting implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 店铺id + */ + @Id(keyType = KeyType.Auto) + private Long shopId; + + /** + * 开启消费赠送积分 1-开启 0-关闭 + */ + private Integer enableRewards; + + /** + * 赠积分适用群体 all-全部 vip-仅会员 + */ + private String rewardsGroup; + + /** + * 每消费xx元赠送1积分 + */ + private BigDecimal consumeAmount; + + /** + * 开启下单积分抵扣 1-开启 0-关闭 + */ + private Integer enableDeduction; + + /** + * 抵扣适用群体 all-全部 vip-仅会员 + */ + private String deductionGroup; + + /** + * 下单实付抵扣门槛 + */ + private BigDecimal minPaymentAmount; + + /** + * 下单最高抵扣比例 + */ + private BigDecimal maxDeductionRatio; + + /** + * 下单抵扣积分比例 1元=?积分 + */ + private Integer equivalentPoints; + + /** + * 开启积分商城 + */ + private Integer enablePointsMall; + + /** + * 浏览模式 list-列表 grid-宫格 + */ + private String browseMode; + + /** + * 创建时间 + */ + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + +} 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 index c2e18507..887d94ec 100644 --- 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 @@ -18,7 +18,7 @@ import java.time.LocalDateTime; * 活动 实体类。 * * @author ww - * @since 2025-02-17 + * @since 2025-02-20 */ @Data @Builder @@ -56,14 +56,9 @@ public class ShopActivate implements Serializable { private Integer isGiftCoupon; /** - * 优惠卷id + * 优惠卷信息{卷id:数量} */ - private Long couponId; - - /** - * 优惠卷数量 - */ - private Integer num; + private String coupons; @Column(onInsertValue = "now()") private LocalDateTime createTime; 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/ShopActivateCouponRecord.java similarity index 86% rename from cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateInRecord.java rename to cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateCouponRecord.java index 175035f5..c56df0fc 100644 --- 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/ShopActivateCouponRecord.java @@ -4,6 +4,7 @@ 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; @@ -19,14 +20,14 @@ import lombok.NoArgsConstructor; * 活动商品赠送记录表 实体类。 * * @author ww - * @since 2025-02-17 + * @since 2025-02-20 */ @Data @Builder @NoArgsConstructor @AllArgsConstructor -@Table("tb_shop_activate_in_record") -public class ShopActivateInRecord implements Serializable { +@Table("tb_shop_activate_coupon_record") +public class ShopActivateCouponRecord implements Serializable { @Serial private static final long serialVersionUID = 1L; @@ -69,16 +70,6 @@ public class ShopActivateInRecord implements Serializable { */ private BigDecimal discountAmount; - /** - * 赠送数量 - */ - private Integer num; - - /** - * 未使用数量 - */ - private Integer overNum; - /** * 店铺id */ @@ -109,9 +100,13 @@ public class ShopActivateInRecord implements Serializable { private String couponJson; - /** - * invited/activate - */ private String source; + /** + * 已使用 used + * 未使用 not_used + * 已过期 expired + */ + private String status; + } 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 deleted file mode 100644 index 4edceddf..00000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopActivateOutRecord.java +++ /dev/null @@ -1,79 +0,0 @@ -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 index b2254b8d..2eae0bb2 100644 --- 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 @@ -4,21 +4,23 @@ 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; -import java.io.Serial; -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; - /** * 优惠券 实体类。 * * @author ww - * @since 2025-02-17 + * @since 2025-02-20 */ @Data @Builder @@ -36,17 +38,22 @@ public class ShopCoupon implements Serializable { @Id(keyType = KeyType.Auto) private Long id; - /** - * 状态0-关闭 1 正常 - */ - private Integer status; + private Long shopId; /** * 名称(无意义) */ private String title; - private Long shopId; + /** + * 1-满减 2-商品 + */ + private Integer type; + + /** + * 状态0-关闭 1 正常 + */ + private Integer status; /** * 已使用数量 @@ -71,7 +78,7 @@ public class ShopCoupon implements Serializable { /** * 有效天数 */ - private Long validDays; + private Integer validDays; /** * 隔多少天生效 @@ -99,19 +106,14 @@ public class ShopCoupon implements Serializable { private String useTimeType; /** - * 可用开始时间 00:00 + * 可用开始时间 */ - private String useStartTime; + private Time useStartTime; /** - * 可用结束时间 23:59 + * 可用结束时间 */ - private String useEndTime; - - /** - * 1-满减 2-商品 - */ - private Integer type; + private Time useEndTime; /** * 满多少金额 @@ -123,6 +125,11 @@ public class ShopCoupon implements Serializable { */ private BigDecimal discountAmount; + /** + * 商品id + */ + private Long proId; + /** * 描述 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopCouponProduct.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopCouponProduct.java deleted file mode 100644 index 56041b98..00000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopCouponProduct.java +++ /dev/null @@ -1,56 +0,0 @@ -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 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-18 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Table("tb_shop_coupon_product") -public class ShopCouponProduct implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @Id(keyType = KeyType.Auto) - private Long id; - - /** - * 活动Id - */ - private Long couponId; - - /** - * 商品id - */ - private Long productId; - - /** - * 数量 - */ - 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/ShopInfo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopInfo.java index 558ff1ec..68e5cab0 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopInfo.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopInfo.java @@ -90,7 +90,11 @@ public class ShopInfo implements Serializable { * 店铺简介 */ private String detail; - + /** + * 注册类型 + * 快餐版 先付 munchies + * 餐饮版 先付/后付 restaurant + */ private String registerType; /** @@ -224,11 +228,6 @@ public class ShopInfo implements Serializable { */ private Integer isMemberPrice; - /** - * 积分群体 all-所有 vip-仅针对会员 - */ - private String consumeColony; - /** * 就餐模式 堂食 dine-in 外带 take-out */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/PointsBasicSettingService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/PointsBasicSettingService.java new file mode 100644 index 00000000..8b2e0ad4 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/PointsBasicSettingService.java @@ -0,0 +1,14 @@ +package com.czg.account.service; + +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.PointsBasicSetting; + +/** + * 积分基本设置 服务层。 + * + * @author ww + * @since 2025-02-20 + */ +public interface PointsBasicSettingService extends IService { + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateCouponRecordService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateCouponRecordService.java new file mode 100644 index 00000000..2b601193 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateCouponRecordService.java @@ -0,0 +1,14 @@ +package com.czg.account.service; + +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.ShopActivateCouponRecord; + +/** + * 活动商品赠送记录表 服务层。 + * + * @author ww + * @since 2025-02-20 + */ +public interface ShopActivateCouponRecordService extends IService { + +} 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 deleted file mode 100644 index e6744672..00000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateInRecordService.java +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 33532473..00000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateOutRecordService.java +++ /dev/null @@ -1,14 +0,0 @@ -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/ShopCouponProductService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopCouponProductService.java deleted file mode 100644 index cd8f71f9..00000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopCouponProductService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.czg.account.service; - -import com.czg.account.entity.ShopCouponProduct; -import com.mybatisflex.core.service.IService; - -/** - * 活动赠送商品表 服务层。 - * - * @author ww - * @since 2025-02-18 - */ -public interface ShopCouponProductService extends IService { - -} 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 index 75f27b4f..8ee077b5 100644 --- 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 @@ -1,7 +1,6 @@ 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; @@ -20,7 +19,6 @@ public interface ShopCouponService extends IService { * * @param shopId 店铺id * @param status 状态 0 未使用 1已使用 -1已过期 - * @return */ List getList(Long shopId, Integer status); ShopCouponDTO getCouponById(ShopCouponDTO couponDTO); @@ -31,9 +29,9 @@ public interface ShopCouponService extends IService { Boolean delete(Long id); Boolean find(Long id); - Boolean use(Integer shopId, Integer orderId, Integer vipUserId, List param); + Boolean use(Integer shopId, Integer orderId, Integer vipUserId); - Boolean refund(List param); + Boolean refund(); diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopTableService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopTableService.java index 13a78a48..09cdb9df 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopTableService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopTableService.java @@ -2,10 +2,11 @@ package com.czg.account.service; import com.czg.account.dto.table.ShopTableAddDTO; import com.czg.account.dto.table.ShopTableBindDTO; -import com.mybatisflex.core.paginate.Page; -import com.mybatisflex.core.service.IService; import com.czg.account.entity.ShopTable; +import com.mybatisflex.core.service.IService; import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import java.io.IOException; @@ -19,6 +20,8 @@ public interface ShopTableService extends IService { Boolean add(Long shopId, ShopTableAddDTO shopTableAddDTO); + ShopTable getOneByTableCode(@NotNull Long shopId,@NotBlank String tableCode); + void createQrCode(Long shopId, Integer num, HttpServletResponse response) throws IOException; Boolean bind(Long shopId, ShopTableBindDTO shopTableBindDTO); diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/CouponProductVo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/CouponProductVo.java deleted file mode 100644 index f638267a..00000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/CouponProductVo.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.czg.account.vo; - - -import lombok.Data; - -/** - * @author ww - * @description - */ -@Data -public class CouponProductVo { - /** - * 商品id - */ - private Long productId; - /** - * 数量 - */ - private Integer num; -} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/dto/OrderInfoAddDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/order/dto/OrderInfoAddDTO.java new file mode 100644 index 00000000..063c0c9b --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/dto/OrderInfoAddDTO.java @@ -0,0 +1,140 @@ + +package com.czg.order.dto; + +import cn.hutool.core.util.StrUtil; +import jakarta.validation.constraints.NotBlank; +import lombok.*; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 订单表 实体类。 + * + * @author ww + * @since 2025-02-13 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OrderInfoAddDTO implements Serializable { + + private Long orderId; + /** + * 店铺Id + */ + private Long shopId; + + private Long userId; + /** + * 用餐人数 + */ + private Integer seatNum; + + /** + * 打包费 + */ + private BigDecimal packFee; + /** + * 订单原金额(包含打包费+餐位费) 不含折扣价格 + */ + private BigDecimal originAmount; + + /** + * 折扣比例(计算时 向上取整保留 两位小数) + */ + private BigDecimal discountRatio; + /** + * 手动优惠金额 + */ + private BigDecimal discountAmount; + + /** + * 商品优惠券抵扣金额 + */ + private BigDecimal productCouponDiscountAmount; + /** + * 满减优惠券抵扣金额 + */ + private BigDecimal fullCouponDiscountAmount; + /** + * 用户使用的卡券 + */ + private String couponInfoList; + + /** + * 订单金额 + */ + private BigDecimal orderAmount; + + /** + * 积分抵扣金额(tb_points_basic_setting表) + */ + private BigDecimal pointsDiscountAmount; + + /** + * 使用的积分数量 (扣除各类折扣 enable_deduction后使用) + */ + private BigDecimal pointsNum; + + /** + * 台桌Id + */ + @NotBlank(message = "台桌码不能为空") + private String tableCode; + /** + * 订单类型- + * cash收银(除小程序以外 都属于收银) + * miniapp小程序 + */ + private String orderType; + + /** + * 平台类型 pc 收银机客户端 wechat 微信小程序 alipay 支付宝小程序 admin-pc PC管理端 admin-app APP管理端 + */ + private String platformType; + + /** + * 用餐模式 堂食 dine-in 外带 take-out 外卖 take-away + */ + @NotBlank(message = "用餐模式不能为空") + private String eatModel; + + /** + * 支付模式: afterPay 后付费 normal 正常模式 + */ + @NotBlank(message = "付款模式不能为空") + private String payMode; + + /** + * 备注 + */ + private String remark; + + /** + * 当前订单下单次数 + */ + private Integer placeNum; + + /** + * 是否等叫 0 否 1 等叫 + */ + private boolean waitCall; + /** + * 是否使用会员价 + */ + private boolean vipPrice; + + public Integer getSeatNum() { + return seatNum == null ? 0 : seatNum; + } + + public String getEatModel() { + return StrUtil.isBlank(eatModel) ? "dine-in" : eatModel; + } + + public BigDecimal getPointsNum() { + return pointsNum == null ? BigDecimal.ZERO : pointsNum; + } +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/entity/CashierCart.java b/cash-common/cash-common-service/src/main/java/com/czg/order/entity/CashierCart.java new file mode 100644 index 00000000..4d096e12 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/entity/CashierCart.java @@ -0,0 +1,131 @@ +package com.czg.order.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 购物车 实体类。 + * + * @author ww + * @since 2025-02-20 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_cashier_cart") +public class CashierCart implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 店铺Id + */ + private Long shopId; + + /** + * skuId + */ + private Long skuId; + + /** + * 商品Id + */ + private Long productId; + + /** + * 商品名称(临时菜使用) + */ + private String productName; + + /** + * 规格描述(临时菜使用) + */ + private String skuName; + + /** + * 数量 + */ + private BigDecimal number; + + /** + * 台桌桌码 + * 平台类型 + * 小程序为 桌码 + * 其余为 + * 收银机客户端 PC+唯一值 + * PC管理端 APC+唯一值 + * APP管理端 APP+唯一值 + */ + private String tableCode; + + /** + * 是否打包 + */ + private Integer isPack; + + /** + * 是否赠送 + */ + private Integer isGift; + + /** + * 是否是临时菜 + */ + private Integer isTemporary; + + /** + * 单品改价金额 + */ + private BigDecimal discountSaleAmount; + + /** + * 改价备注 + */ + private String discountSaleNote; + + /** + * 是否打票 + */ + private Integer isPrint; + + /** + * 是否等叫 + */ + private Integer isWaitCall; + + /** + * 套餐商品选择信息 + */ + private String proGroupInfo; + + /** + * 备注 + */ + private String remark; + + @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/order/service/CashierCartService.java b/cash-common/cash-common-service/src/main/java/com/czg/order/service/CashierCartService.java new file mode 100644 index 00000000..c243a9d4 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/service/CashierCartService.java @@ -0,0 +1,23 @@ +package com.czg.order.service; + +import com.czg.order.entity.OrderDetail; +import com.mybatisflex.core.service.IService; +import com.czg.order.entity.CashierCart; +import jakarta.validation.constraints.NotBlank; + +import java.util.List; + +/** + * 购物车 服务层。 + * + * @author ww + * @since 2025-02-20 + */ +public interface CashierCartService extends IService { + + /** + * 获取到的结果 是针对tb_order_detail的 + * @param tableCode 桌码 + */ + List getCartByTableCode(@NotBlank String tableCode); +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java index 77fe124b..6d245023 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java @@ -1,9 +1,11 @@ package com.czg.order.service; import com.alibaba.fastjson2.JSONObject; +import com.czg.order.dto.OrderInfoAddDTO; import com.czg.order.dto.OrderInfoQueryDTO; import com.czg.order.entity.OrderInfo; import com.czg.order.enums.PayEnums; +import com.czg.order.vo.OrderInfoCreateVo; import com.czg.order.vo.OrderInfoVo; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; @@ -22,6 +24,7 @@ import java.time.LocalDateTime; public interface OrderInfoService extends IService { Page getOrderByPage(OrderInfoQueryDTO param); + OrderInfoCreateVo createOrder(OrderInfoAddDTO param); void payCallBackOrder(@NotBlank String orderNo, @NotNull JSONObject resultJson); diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/vo/OrderInfoCreateVo.java b/cash-common/cash-common-service/src/main/java/com/czg/order/vo/OrderInfoCreateVo.java new file mode 100644 index 00000000..eb2936cc --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/vo/OrderInfoCreateVo.java @@ -0,0 +1,11 @@ +package com.czg.order.vo; + +import lombok.Data; + +/** + * @author ww + * @description + */ +@Data +public class OrderInfoCreateVo { +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/PointsBasicSettingMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/PointsBasicSettingMapper.java new file mode 100644 index 00000000..63016b93 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/PointsBasicSettingMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.PointsBasicSetting; + +/** + * 积分基本设置 映射层。 + * + * @author ww + * @since 2025-02-20 + */ +public interface PointsBasicSettingMapper extends BaseMapper { + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateCouponRecordMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateCouponRecordMapper.java new file mode 100644 index 00000000..0c137771 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateCouponRecordMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.ShopActivateCouponRecord; + +/** + * 活动商品赠送记录表 映射层。 + * + * @author ww + * @since 2025-02-20 + */ +public interface ShopActivateCouponRecordMapper extends BaseMapper { + +} 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 deleted file mode 100644 index 63cbea62..00000000 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateInRecordMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -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/ShopActivateOutRecordMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateOutRecordMapper.java deleted file mode 100644 index 5992d1e2..00000000 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopActivateOutRecordMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -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/ShopCouponProductMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopCouponProductMapper.java deleted file mode 100644 index 0b445616..00000000 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopCouponProductMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.czg.service.account.mapper; - -import com.czg.account.entity.ShopCouponProduct; -import com.mybatisflex.core.BaseMapper; - -/** - * 活动赠送商品表 映射层。 - * - * @author ww - * @since 2025-02-18 - */ -public interface ShopCouponProductMapper extends BaseMapper { - -} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PointsBasicSettingServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PointsBasicSettingServiceImpl.java new file mode 100644 index 00000000..184070b6 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PointsBasicSettingServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.service.account.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.PointsBasicSetting; +import com.czg.account.service.PointsBasicSettingService; +import com.czg.service.account.mapper.PointsBasicSettingMapper; +import org.springframework.stereotype.Service; + +/** + * 积分基本设置 服务层实现。 + * + * @author ww + * @since 2025-02-20 + */ +@Service +public class PointsBasicSettingServiceImpl extends ServiceImpl implements PointsBasicSettingService{ + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateCouponRecordServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateCouponRecordServiceImpl.java new file mode 100644 index 00000000..4580f9cc --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateCouponRecordServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.service.account.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.ShopActivateCouponRecord; +import com.czg.account.service.ShopActivateCouponRecordService; +import com.czg.service.account.mapper.ShopActivateCouponRecordMapper; +import org.springframework.stereotype.Service; + +/** + * 活动商品赠送记录表 服务层实现。 + * + * @author ww + * @since 2025-02-20 + */ +@Service +public class ShopActivateCouponRecordServiceImpl extends ServiceImpl implements ShopActivateCouponRecordService{ + +} 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 deleted file mode 100644 index 30652031..00000000 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateInRecordServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -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 deleted file mode 100644 index a81945eb..00000000 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateOutRecordServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -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 index e73beab7..2bcc34ca 100644 --- 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 @@ -1,17 +1,22 @@ package com.czg.service.account.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.czg.account.dto.ShopActivateCouponDTO; import com.czg.account.dto.ShopActivateDTO; import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO; import com.czg.account.entity.ShopActivate; -import com.czg.account.entity.ShopActivateInRecord; +import com.czg.account.entity.ShopActivateCouponRecord; import com.czg.account.entity.ShopCoupon; -import com.czg.account.entity.ShopCouponProduct; -import com.czg.account.service.*; -import com.czg.account.vo.CouponProductVo; +import com.czg.account.service.ShopActivateCouponRecordService; +import com.czg.account.service.ShopActivateService; +import com.czg.account.service.ShopCouponService; +import com.czg.account.service.ShopUserService; import com.czg.enums.ShopUserFlowBizEnum; import com.czg.sa.StpKit; import com.czg.service.account.mapper.ShopActivateMapper; @@ -24,7 +29,9 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 活动 服务层实现。 @@ -38,24 +45,31 @@ public class ShopActivateServiceImpl extends ServiceImpl getList() { - return queryChain().select() + List activateDtoS = queryChain().select() .eq(ShopActivate::getShopId, StpKit.USER.getShopId()) .orderBy(ShopActivate::getAmount, true) .listAs(ShopActivateDTO.class); + for (ShopActivateDTO activateDTO : activateDtoS) { + if (StrUtil.isNotBlank(activateDTO.getCoupons())) { + activateDTO.setCouponList(JSON.parseArray(activateDTO.getCoupons(), ShopActivateCouponDTO.class)); + } + } + return activateDtoS; } @Override public Boolean add(ShopActivateDTO activateDTO) { ShopActivate shopActivate = new ShopActivate(); BeanUtil.copyProperties(activateDTO, shopActivate); + if (CollUtil.isNotEmpty(activateDTO.getCouponList())) { + shopActivate.setCoupons(JSONObject.toJSONString(activateDTO.getCouponList())); + } return save(shopActivate); } @@ -63,6 +77,9 @@ public class ShopActivateServiceImpl extends ServiceImpl activate.getNum()) { - LocalDateTime start = LocalDateTime.now().with(LocalTime.MIN); - LocalDateTime end = null; - if ("fixed".equals(shopCoupon.getValidityType())) { - //固定时间 - end = LocalDateTimeUtil.offset(start, shopCoupon.getValidDays(), ChronoUnit.DAYS).with(LocalTime.MAX); - } else if ("custom".equals(shopCoupon.getValidityType())) { - //自定义时间 - start = shopCoupon.getValidStartTime(); - end = shopCoupon.getValidEndTime(); + List activateCoupons = JSON.parseArray(activate.getCoupons(), ShopActivateCouponDTO.class); + Map couponMap = new HashMap<>(); + activateCoupons.forEach(coupon -> { + ShopCoupon shopCoupon = new ShopCoupon(); + if (couponMap.containsKey(coupon.getId())) { + shopCoupon = couponMap.get(coupon.getId()); + } else { + shopCoupon = couponService.queryChain().select().eq(ShopCoupon::getId, coupon.getId()).one(); + couponMap.put(coupon.getId(), shopCoupon); } - List actGiveRecords = new ArrayList<>(); - if (shopCoupon.getType() == 1) { - //满减 - ShopActivateInRecord record = new ShopActivateInRecord(); + if (shopCoupon != null && shopCoupon.getStatus().equals(1) && shopCoupon.getLeftNumber() > coupon.getNum()) { + LocalDateTime start = LocalDateTime.now().with(LocalTime.MIN); + LocalDateTime end = null; + if ("fixed".equals(shopCoupon.getValidityType())) { + //固定时间 + end = LocalDateTimeUtil.offset(start, shopCoupon.getValidDays(), ChronoUnit.DAYS).with(LocalTime.MAX); + } else if ("custom".equals(shopCoupon.getValidityType())) { + //自定义时间 + start = shopCoupon.getValidStartTime(); + end = shopCoupon.getValidEndTime(); + } + List actGiveRecords = new ArrayList<>(); + ShopActivateCouponRecord record = new ShopActivateCouponRecord(); record.setVipUserId(vipId); record.setCouponId(shopCoupon.getId()); - record.setName("满" + shopCoupon.getFullAmount() + "减" + shopCoupon.getDiscountAmount()); - record.setFullAmount(shopCoupon.getFullAmount()); - record.setDiscountAmount(shopCoupon.getDiscountAmount()); - record.setType(1); - record.setNum(activate.getNum()); - record.setOverNum(activate.getNum()); record.setShopId(shopId); record.setSourceActId(activate.getId()); record.setSourceFlowId(relationId); record.setUseStartTime(start); record.setUseEndTime(end); record.setSource("activate"); - record.setCouponJson(getCouponJson(activate, shopCoupon, null)); - actGiveRecords.add(record); - } else if (shopCoupon.getType() == 2) { - List couponProducts = couProductService.queryChain() - .select(ShopCouponProduct::getProductId, ShopCouponProduct::getNum) - .eq(ShopCouponProduct::getCouponId, shopCoupon.getId()) - .listAs(CouponProductVo.class); - //商品券 - for (CouponProductVo actPro : couponProducts) { - ShopActivateInRecord record = new ShopActivateInRecord(); - record.setVipUserId(vipId); - record.setCouponId(shopCoupon.getId()); - record.setName("商品券"); + record.setCouponJson(getCouponJson(activate, shopCoupon)); + if (shopCoupon.getType() == 1) { + record.setType(1); + record.setName("满" + shopCoupon.getFullAmount() + "减" + shopCoupon.getDiscountAmount()); + record.setFullAmount(shopCoupon.getFullAmount()); + record.setDiscountAmount(shopCoupon.getDiscountAmount()); + } else if (shopCoupon.getType() == 2) { record.setType(2); - record.setProId(actPro.getProductId()); - record.setNum(actPro.getNum() * activate.getNum()); - record.setOverNum(actPro.getNum() * activate.getNum()); - record.setShopId(shopId); - record.setSourceActId(activate.getId()); - record.setSourceFlowId(relationId); - record.setUseStartTime(start); - record.setUseEndTime(end); - record.setSource("activate"); - record.setCouponJson(getCouponJson(activate, shopCoupon, actPro)); + record.setName("商品券"); + record.setProId(shopCoupon.getProId()); + } + for (int i = 0; i < coupon.getNum(); i++) { actGiveRecords.add(record); } + inRecordService.saveBatch(actGiveRecords); + couponService.updateChain() + .set(ShopCoupon::getLeftNumber, shopCoupon.getLeftNumber() - coupon.getNum()) + .eq(ShopCoupon::getId, shopCoupon.getId()) + .update(); } - inRecordService.saveBatch(actGiveRecords); - shopCoupon.setLeftNumber(shopCoupon.getLeftNumber() - activate.getNum()); - couponService.updateChain() - .set(ShopCoupon::getLeftNumber, shopCoupon.getLeftNumber() - activate.getNum()) - .eq(ShopCoupon::getId, shopCoupon.getId()) - .update(); - } + }); } //赠送金额 if (activate.getGiftAmount() != null && activate.getGiftAmount().compareTo(BigDecimal.ZERO) > 0) { @@ -158,13 +163,10 @@ public class ShopActivateServiceImpl extends ServiceImpl implements ShopCouponProductService { - -} 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 index 815597d9..12548c34 100644 --- 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 @@ -2,10 +2,8 @@ package com.czg.service.account.service.impl; import cn.hutool.core.date.DateUtil; 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.czg.account.entity.ShopActivateCouponRecord; +import com.czg.account.service.ShopActivateCouponRecordService; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import com.czg.account.entity.ShopCoupon; @@ -26,23 +24,21 @@ import java.util.List; public class ShopCouponServiceImpl extends ServiceImpl implements ShopCouponService { @Resource - private ShopActivateInRecordService inService; - @Resource - private ShopActivateOutRecordService outService; + private ShopActivateCouponRecordService inService; @Override public List getList(Long shopId, Integer status) { QueryWrapper queryWrapper = new QueryWrapper(); if (shopId != null) { if (status == 1) { - queryWrapper.eq(ShopActivateOutRecord::getShopId, shopId); + queryWrapper.eq(ShopActivateCouponRecord::getShopId, shopId); }else { - queryWrapper.eq(ShopActivateInRecord::getShopId, shopId); + queryWrapper.eq(ShopActivateCouponRecord::getShopId, shopId); } } return switch (status) { case -1 -> { - queryWrapper.ge(ShopActivateInRecord::getUseEndTime, DateUtil.date()); + queryWrapper.ge(ShopActivateCouponRecord::getUseEndTime, DateUtil.date()); yield list(queryWrapper); } case 0 -> { @@ -84,17 +80,16 @@ public class ShopCouponServiceImpl extends ServiceImpl param) { + public Boolean use(Integer shopId, Integer orderId, Integer vipUserId) { return null; } /** * 退还券 * - * @param param giveId和 refNum 必传 */ @Override - public Boolean refund(List param) { + public Boolean refund() { // for (ShopActivateOutRecord outRecord : param) { // outService.updateChain() // .set(ShopActivateOutRecord::getRefNum, outRecord.getRefNum()) diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopTableServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopTableServiceImpl.java index 290d7cd9..4c21b6d7 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopTableServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopTableServiceImpl.java @@ -7,21 +7,21 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.qrcode.QrCodeUtil; import com.czg.account.dto.table.ShopTableAddDTO; import com.czg.account.dto.table.ShopTableBindDTO; +import com.czg.account.entity.ShopTable; import com.czg.account.entity.ShopTableArea; import com.czg.account.entity.ShopTableCode; import com.czg.account.service.ShopTableAreaService; import com.czg.account.service.ShopTableCodeService; +import com.czg.account.service.ShopTableService; import com.czg.enums.ShopTableStatusEnum; import com.czg.exception.ApiNotPrintException; +import com.czg.service.account.mapper.ShopTableMapper; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; -import com.czg.account.entity.ShopTable; -import com.czg.account.service.ShopTableService; -import com.czg.service.account.mapper.ShopTableMapper; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; -import org.springframework.stereotype.Service; +import org.apache.dubbo.config.annotation.DubboService; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; @@ -39,8 +39,8 @@ import java.util.zip.ZipOutputStream; * @author zs * @since 2025-02-13 */ -@Service -public class ShopTableServiceImpl extends ServiceImpl implements ShopTableService{ +@DubboService +public class ShopTableServiceImpl extends ServiceImpl implements ShopTableService { @Resource private ShopTableAreaService shopAreaService; @Resource @@ -80,6 +80,11 @@ public class ShopTableServiceImpl extends ServiceImpl - + diff --git a/cash-service/account-service/src/main/resources/mapper/ShopActivateOutRecordMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopActivateCouponRecordMapper.xml similarity index 67% rename from cash-service/account-service/src/main/resources/mapper/ShopActivateOutRecordMapper.xml rename to cash-service/account-service/src/main/resources/mapper/ShopActivateCouponRecordMapper.xml index 92aade17..fef85eae 100644 --- a/cash-service/account-service/src/main/resources/mapper/ShopActivateOutRecordMapper.xml +++ b/cash-service/account-service/src/main/resources/mapper/ShopActivateCouponRecordMapper.xml @@ -2,6 +2,6 @@ - + diff --git a/cash-service/account-service/src/main/resources/mapper/ShopActivateInRecordMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopActivateInRecordMapper.xml deleted file mode 100644 index f5e1d356..00000000 --- a/cash-service/account-service/src/main/resources/mapper/ShopActivateInRecordMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/mapper/CashierCartMapper.java b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/CashierCartMapper.java new file mode 100644 index 00000000..43929dca --- /dev/null +++ b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/CashierCartMapper.java @@ -0,0 +1,19 @@ +package com.czg.service.order.mapper; + +import com.czg.order.entity.OrderDetail; +import com.mybatisflex.core.BaseMapper; +import com.czg.order.entity.CashierCart; + +import java.util.List; + +/** + * 购物车 映射层。 + * + * @author ww + * @since 2025-02-20 + */ +public interface CashierCartMapper extends BaseMapper { + + + List getCartByTableCode(String tableCode); +} diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/CashierCartServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/CashierCartServiceImpl.java new file mode 100644 index 00000000..1a1b5728 --- /dev/null +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/CashierCartServiceImpl.java @@ -0,0 +1,25 @@ +package com.czg.service.order.service.impl; + +import com.czg.order.entity.OrderDetail; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.order.entity.CashierCart; +import com.czg.order.service.CashierCartService; +import com.czg.service.order.mapper.CashierCartMapper; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 购物车 服务层实现。 + * + * @author ww + * @since 2025-02-20 + */ +@Service +public class CashierCartServiceImpl extends ServiceImpl implements CashierCartService{ + + @Override + public List getCartByTableCode(String tableCode) { + return getMapper().getCartByTableCode(tableCode); + } +} 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 5773ff94..26ea571f 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 @@ -1,29 +1,33 @@ package com.czg.service.order.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.exceptions.ValidateException; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO; -import com.czg.account.entity.ShopUser; -import com.czg.account.service.ShopActivateService; -import com.czg.account.service.ShopUserService; +import com.czg.account.entity.*; +import com.czg.account.service.*; import com.czg.config.RabbitPublisher; import com.czg.entity.notify.CzgPayNotifyDTO; import com.czg.entity.notify.CzgRefundNotifyDTO; import com.czg.enums.ShopUserFlowBizEnum; +import com.czg.order.dto.OrderInfoAddDTO; import com.czg.order.dto.OrderInfoQueryDTO; import com.czg.order.entity.OrderDetail; import com.czg.order.entity.OrderInfo; import com.czg.order.entity.OrderPayment; import com.czg.order.enums.PayEnums; +import com.czg.order.service.CashierCartService; import com.czg.order.service.OrderDetailService; import com.czg.order.service.OrderInfoService; import com.czg.order.service.OrderPaymentService; import com.czg.order.vo.OrderDetailSmallVO; +import com.czg.order.vo.OrderInfoCreateVo; import com.czg.order.vo.OrderInfoVo; import com.czg.service.order.enums.OrderStatusEnums; import com.czg.service.order.mapper.OrderInfoMapper; +import com.czg.utils.AssertUtil; import com.czg.utils.CzgStrUtils; import com.czg.utils.PageUtil; import com.mybatisflex.core.paginate.Page; @@ -59,9 +63,21 @@ public class OrderInfoServiceImpl extends ServiceImpl 0 && !pointSetting.getEnableDeduction().equals(1)) { + throw new ValidateException("生成订单失败,该店铺未开启积分抵扣"); + } + UserInfo userInfo = userInfoService.getById(param.getUserId()); + AssertUtil.isNull(userInfo, "生成订单失败,用户信息不存在"); + ShopUser shopUser = shopUserService.getShopUserInfo(param.getShopId(), param.getUserId()); + if (!shopUser.getIsVip().equals(1) && pointSetting.getDeductionGroup().contains("vip")) { + throw new ValidateException("生成订单失败,该店铺仅会员可使用积分抵扣"); + } + ShopTable table = shopTableService.getOneByTableCode(param.getShopId(), param.getTableCode()); + AssertUtil.isNull(table, "生成订单失败,桌台信息不存在"); + +// List cashierCarts = cartService. + + + return null; + } + @Override @Transactional public void payCallBackOrder(@NotBlank String orderNo, @NotNull JSONObject resultJson) { diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java index c5ebe33b..d703211e 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java @@ -63,7 +63,7 @@ public class PayServiceImpl implements PayService { @DubboReference private ShopUserFlowService userFlowService; @DubboReference - private ShopActivateInRecordService inRecordService; + private ShopActivateCouponRecordService inRecordService; @Resource private RabbitPublisher rabbitPublisher; @Resource @@ -309,7 +309,7 @@ public class PayServiceImpl implements PayService { .eq(ShopUserFlow::getBizCode, ShopUserFlowBizEnum.AWARD_IN.getCode()) .one(); resultMap.put("amount", shopUser.getAmount()); - resultMap.put("inAmount", inFlow.getAmount( )); + resultMap.put("inAmount", inFlow.getAmount()); resultMap.put("inRefundAmount", inFlow.getRefundAmount()); resultMap.put("giftAmount", giftFlow == null ? BigDecimal.ZERO : giftFlow.getAmount()); resultMap.put("giftRefundAmount", giftFlow == null ? BigDecimal.ZERO : giftFlow.getRefundAmount()); @@ -356,34 +356,34 @@ public class PayServiceImpl implements PayService { if (res.getCode() != 200 || res.getData() == null) { return CzgResult.failure(res.getMsg()); } - } else { - ShopUserMoneyEditDTO shopUserMoneyEditDTO = ShopUserMoneyEditDTO.builder() - .id(shopUser.getId()) - .money(refPayParam.getRefAmount()) - .type(0) - .remark("退款") - .bizEnum(ShopUserFlowBizEnum.RECHARGE_REFUND) - .relationId(refPaymentId) - .rechargeId(inFlow.getId()) - .build(); - //更新会员余额 并生成流水 - shopUserService.updateMoney(shopUser.getShopId(), shopUserMoneyEditDTO); + } + ShopUserMoneyEditDTO shopUserMoneyEditDTO = ShopUserMoneyEditDTO.builder() + .id(shopUser.getId()) + .money(refPayParam.getRefAmount()) + .type(0) + .remark("退款") + .bizEnum(ShopUserFlowBizEnum.RECHARGE_REFUND) + .relationId(refPaymentId) + .rechargeId(inFlow.getId()) + .build(); + //更新会员余额 并生成流水 + shopUserService.updateMoney(shopUser.getShopId(), shopUserMoneyEditDTO); + userFlowService.updateChain() + .setRaw(ShopUserFlow::getRefundAmount, "refund_amount" + refPayParam.getRefAmount()) + .eq(ShopUserFlow::getId, inFlow.getId()) + .update(); + if (giftFlow != null) { userFlowService.updateChain() - .setRaw(ShopUserFlow::getRefundAmount, "refund_amount" + refPayParam.getRefAmount()) - .eq(ShopUserFlow::getId, inFlow.getId()) - .update(); - if (giftFlow != null) { - userFlowService.updateChain() - .setRaw(ShopUserFlow::getRefundAmount, "refund_amount" + giftFlow.getAmount()) - .eq(ShopUserFlow::getId, giftFlow.getId()) - .update(); - } - inRecordService.updateChain() - .set(ShopActivateInRecord::getOverNum, 0) - .eq(ShopActivateInRecord::getId, inFlow.getId()) + .setRaw(ShopUserFlow::getRefundAmount, "refund_amount" + giftFlow.getAmount()) + .eq(ShopUserFlow::getId, giftFlow.getId()) .update(); } + inRecordService.updateChain() + .set(ShopActivateCouponRecord::getStatus, "not_used") + .eq(ShopActivateCouponRecord::getSourceFlowId, inFlow.getId()) + .update(); + return CzgResult.success(); } diff --git a/cash-service/order-service/src/main/resources/mapper/CashierCartMapper.xml b/cash-service/order-service/src/main/resources/mapper/CashierCartMapper.xml new file mode 100644 index 00000000..455f78c3 --- /dev/null +++ b/cash-service/order-service/src/main/resources/mapper/CashierCartMapper.xml @@ -0,0 +1,19 @@ + + + + + +