diff --git a/nla-coupon-service/src/main/java/cn/nla/coupon/controller/CouponTaskController.java b/nla-coupon-service/src/main/java/cn/nla/coupon/controller/CouponTaskController.java new file mode 100644 index 0000000..d08e970 --- /dev/null +++ b/nla-coupon-service/src/main/java/cn/nla/coupon/controller/CouponTaskController.java @@ -0,0 +1,23 @@ +package cn.nla.coupon.controller; + + +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 优惠券记录锁定任务表 前端控制器 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +@Api(tags = "优惠券记录锁定任务控制器") +@RestController +@RequestMapping("/cop/couponTask/v1") +public class CouponTaskController { + +} + diff --git a/nla-coupon-service/src/main/java/cn/nla/coupon/mapper/CouponTaskMapper.java b/nla-coupon-service/src/main/java/cn/nla/coupon/mapper/CouponTaskMapper.java new file mode 100644 index 0000000..e5e0a8d --- /dev/null +++ b/nla-coupon-service/src/main/java/cn/nla/coupon/mapper/CouponTaskMapper.java @@ -0,0 +1,23 @@ +package cn.nla.coupon.mapper; + +import cn.nla.coupon.model.entity.CouponTaskEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 优惠券记录锁定任务表 Mapper 接口 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +public interface CouponTaskMapper extends BaseMapper { + + /** + * 批量插入 + */ + int insertBatch(@Param("couponTaskList") List couponTaskList); +} diff --git a/nla-coupon-service/src/main/java/cn/nla/coupon/model/entity/CouponTaskEntity.java b/nla-coupon-service/src/main/java/cn/nla/coupon/model/entity/CouponTaskEntity.java new file mode 100644 index 0000000..2c3c70d --- /dev/null +++ b/nla-coupon-service/src/main/java/cn/nla/coupon/model/entity/CouponTaskEntity.java @@ -0,0 +1,50 @@ +package cn.nla.coupon.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 优惠券记录锁定任务表 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("coupon_task") +public class CouponTaskEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 优惠券记录id + */ + private Long couponRecordId; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 订单号 + */ + private String outTradeNo; + + /** + * 锁定状态 锁定LOCK-完成FINISH 取消CANCEL + */ + private String lockState; + + +} diff --git a/nla-coupon-service/src/main/java/cn/nla/coupon/service/CouponTaskService.java b/nla-coupon-service/src/main/java/cn/nla/coupon/service/CouponTaskService.java new file mode 100644 index 0000000..2feb540 --- /dev/null +++ b/nla-coupon-service/src/main/java/cn/nla/coupon/service/CouponTaskService.java @@ -0,0 +1,16 @@ +package cn.nla.coupon.service; + +import cn.nla.coupon.model.entity.CouponTaskEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 优惠券记录锁定任务表 服务类 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +public interface CouponTaskService extends IService { + +} diff --git a/nla-coupon-service/src/main/java/cn/nla/coupon/service/impl/CouponTaskServiceImpl.java b/nla-coupon-service/src/main/java/cn/nla/coupon/service/impl/CouponTaskServiceImpl.java new file mode 100644 index 0000000..9a9ec31 --- /dev/null +++ b/nla-coupon-service/src/main/java/cn/nla/coupon/service/impl/CouponTaskServiceImpl.java @@ -0,0 +1,20 @@ +package cn.nla.coupon.service.impl; + +import cn.nla.coupon.model.entity.CouponTaskEntity; +import cn.nla.coupon.mapper.CouponTaskMapper; +import cn.nla.coupon.service.CouponTaskService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 优惠券记录锁定任务表 服务实现类 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +@Service +public class CouponTaskServiceImpl extends ServiceImpl implements CouponTaskService { + +} diff --git a/nla-coupon-service/src/main/resources/application.yml b/nla-coupon-service/src/main/resources/application.yml index cef309b..5b5f297 100644 --- a/nla-coupon-service/src/main/resources/application.yml +++ b/nla-coupon-service/src/main/resources/application.yml @@ -3,43 +3,51 @@ server: spring: application: name: nla-coupon-service + # 缓存 redis: host: 127.0.0.1 port: 6379 database: 0 password: yuan123456 + #数据库配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://117.72.43.105:3306/p_nla_coupon?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: Yuan625621105. + #注册中心地址 cloud: nacos: discovery: server-addr: 117.72.43.105:8848 -# username: nacos -# password: sW5U%pxecL#p -# namespace: yjs + # username: nacos + # password: sW5U%pxecL#p + # namespace: yjs + #消息队列 rabbitmq: - host: 192.168.30.130 - port: 5672 - virtual-host: / - password: admin - username: admin - listener: + host: 192.168.30.130 + port: 5672 + virtual-host: / + password: admin + username: admin + #开启手动确认消息 + listener: simple: acknowledge-mode: manual +#配置plus打印sql⽇志 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +#设置⽇志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示 #logging: # level: # root: INFO +#seata配置 #seata: # tx-service-group: ${spring.application.name}-group # service: @@ -49,11 +57,18 @@ mybatis-plus: # nla-coupon-service-group: nla +##自定义消息队列配置,发送锁定库存消息-》延迟exchange-》lock.queue-》死信exchange-》release.queue mq: config: - coupon_release_delay_queue: coupon.release.delay.queue - coupon_release_queue: coupon.release.queue - coupon_event_exchange: coupon.event.exchange - coupon_release_delay_routing_key: coupon.release.delay.routing.key - coupon_release_routing_key: coupon.release.routing.key - ttl: 6000 + #延迟队列,不能被监听消费 + coupon_release_delay_queue: coupon.release.delay.queue + #延迟队列的消息过期后转发的队列 + coupon_release_queue: coupon.release.queue + #交换机 + coupon_event_exchange: coupon.event.exchange + #进入延迟队列的路由key + coupon_release_delay_routing_key: coupon.release.delay.routing.key + #消息过期,进入释放死信队列的key + coupon_release_routing_key: coupon.release.routing.key + #消息过期时间,毫秒,临时改为6分钟 + ttl: 360000 diff --git a/nla-coupon-service/src/main/resources/application_m.yml b/nla-coupon-service/src/main/resources/application_m.yml deleted file mode 100644 index c2b61c2..0000000 --- a/nla-coupon-service/src/main/resources/application_m.yml +++ /dev/null @@ -1,74 +0,0 @@ -server: - port: 9002 -spring: - application: - name: nla-coupon-service - # 缓存 - redis: - host: 127.0.0.1 - port: 6379 - database: 0 - password: yuan123456 - #数据库配置 - datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://117.72.43.105:3306/p_nla_coupon?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai - username: root - password: Yuan625621105. - #注册中心地址 - cloud: - nacos: - discovery: - server-addr: 117.72.43.105:8848 -# username: nacos -# password: sW5U%pxecL#p -# namespace: yjs - - #消息队列 - rabbitmq: - host: 192.168.30.130 - port: 5672 - virtual-host: / - password: admin - username: admin - #开启手动确认消息 - listener: - simple: - acknowledge-mode: manual - -#配置plus打印sql⽇志 -mybatis-plus: - configuration: - log-impl: - org.apache.ibatis.logging.stdout.StdOutImpl -#设置⽇志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示 -#logging: -# level: -# root: INFO - - -#seata配置 -#seata: -# tx-service-group: ${spring.application.name}-group -# service: -# grouplist: -# nla: 127.0.0.1:8091 -# vgroup-mapping: -# nla-coupon-service-group: nla - - -##自定义消息队列配置,发送锁定库存消息-》延迟exchange-》lock.queue-》死信exchange-》release.queue -mq: - config: - #延迟队列,不能被监听消费 - coupon_release_delay_queue: coupon.release.delay.queue - #延迟队列的消息过期后转发的队列 - coupon_release_queue: coupon.release.queue - #交换机 - coupon_event_exchange: coupon.event.exchange - #进入延迟队列的路由key - coupon_release_delay_routing_key: coupon.release.delay.routing.key - #消息过期,进入释放死信队列的key - coupon_release_routing_key: coupon.release.routing.key - #消息过期时间,毫秒,临时改为6分钟 - ttl: 360000 diff --git a/nla-coupon-service/src/main/resources/mapper/CouponTaskMapper.xml b/nla-coupon-service/src/main/resources/mapper/CouponTaskMapper.xml new file mode 100644 index 0000000..6db9271 --- /dev/null +++ b/nla-coupon-service/src/main/resources/mapper/CouponTaskMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + id, coupon_record_id, create_time, out_trade_no, lock_state + + + + + coupon_record_id, create_time, out_trade_no, lock_state + + + + insert into coupon_task + ( + + ) + values + + ( + #{item.couponRecordId}, + #{item.createTime}, + #{item.outTradeNo}, + #{item.lockState} + ) + + + diff --git a/nla-order-service/src/main/java/cn/nla/order/controller/ProductOrderController.java b/nla-order-service/src/main/java/cn/nla/order/controller/ProductOrderController.java new file mode 100644 index 0000000..dcf6a55 --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/controller/ProductOrderController.java @@ -0,0 +1,85 @@ +package cn.nla.order.controller; + + +import cn.nla.common.enums.BizCodeEnum; +import cn.nla.common.enums.ClientType; +import cn.nla.common.enums.ProductOrderPayTypeEnum; +import cn.nla.common.util.JsonData; +import cn.nla.order.model.request.ConfirmOrderRequest; +import cn.nla.order.service.ProductOrderService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + *

+ * 订单表 前端控制器 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +@Api(tags = "订单控制器") +@Slf4j +@RestController +@RequestMapping("/odr/product/v1") +public class ProductOrderController { + @Resource + private ProductOrderService orderService; + /** + * 查询订单状态 + * + * 此接口没有登录拦截,可以增加一个秘钥进行rpc通信 + */ + @ApiOperation("查询订单状态") + @GetMapping("query_state") + public JsonData queryProductOrderState(@ApiParam("订单号") @RequestParam("out_trade_no")String outTradeNo){ + log.info("获取订单查询: {}",outTradeNo); + String state = orderService.queryProductOrderState(outTradeNo); + return StringUtils.isBlank(state)?JsonData.buildResult(BizCodeEnum.ORDER_CONFIRM_NOT_EXIST):JsonData.buildSuccess(state); + + } + + @ApiOperation("提交订单") + @PostMapping("confirm") + public void confirmOrder(@ApiParam("订单对象") @RequestBody ConfirmOrderRequest orderRequest, HttpServletResponse response) { + JsonData jsonData = orderService.confirmOrder(orderRequest); + if (jsonData.getCode() == 0) { + String client = orderRequest.getClientType(); + String payType = orderRequest.getPayType(); + //如果是支付宝网页支付,都是跳转网页,APP除外 + if (payType.equalsIgnoreCase(ProductOrderPayTypeEnum.ALIPAY.name())) { + log.info("创建支付宝订单成功:{}", orderRequest.toString()); + if (client.equalsIgnoreCase(ClientType.H5.name())) { + writeData(response, jsonData); + } else if (client.equalsIgnoreCase(ClientType.APP.name())) { + //APP SDK支付 TODO + } + } else if (payType.equalsIgnoreCase(ProductOrderPayTypeEnum.WECHAT.name())) { + //微信支付 TODO + } + } else { + log.error("创建订单失败{}", jsonData); + } + } + + + private void writeData(HttpServletResponse response, JsonData jsonData) { + try { + response.setContentType("text/html;charset=UTF8"); + response.getWriter().write(jsonData.getData().toString()); + response.getWriter().flush(); + response.getWriter().close(); + } catch (IOException e) { + log.error("写出Html异常", e); + } + } +} + diff --git a/nla-order-service/src/main/java/cn/nla/order/controller/ProductOrderItemController.java b/nla-order-service/src/main/java/cn/nla/order/controller/ProductOrderItemController.java new file mode 100644 index 0000000..7cb0da8 --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/controller/ProductOrderItemController.java @@ -0,0 +1,23 @@ +package cn.nla.order.controller; + + +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 订单项表 前端控制器 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +@Api(tags = "订单项控制器") +@RestController +@RequestMapping("/odr/productItem") +public class ProductOrderItemController { + +} + diff --git a/nla-order-service/src/main/java/cn/nla/order/mapper/ProductOrderItemMapper.java b/nla-order-service/src/main/java/cn/nla/order/mapper/ProductOrderItemMapper.java new file mode 100644 index 0000000..26204d3 --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/mapper/ProductOrderItemMapper.java @@ -0,0 +1,16 @@ +package cn.nla.order.mapper; + +import cn.nla.order.model.entity.ProductOrderItemEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 订单项表 Mapper 接口 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +public interface ProductOrderItemMapper extends BaseMapper { + +} diff --git a/nla-order-service/src/main/java/cn/nla/order/mapper/ProductOrderMapper.java b/nla-order-service/src/main/java/cn/nla/order/mapper/ProductOrderMapper.java new file mode 100644 index 0000000..2b29f37 --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/mapper/ProductOrderMapper.java @@ -0,0 +1,16 @@ +package cn.nla.order.mapper; + +import cn.nla.order.model.entity.ProductOrderEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 订单表 Mapper 接口 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +public interface ProductOrderMapper extends BaseMapper { + +} diff --git a/nla-order-service/src/main/java/cn/nla/order/model/entity/ProductOrderEntity.java b/nla-order-service/src/main/java/cn/nla/order/model/entity/ProductOrderEntity.java new file mode 100644 index 0000000..d78dc6e --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/model/entity/ProductOrderEntity.java @@ -0,0 +1,96 @@ +package cn.nla.order.model.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 订单表 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("product_order") +public class ProductOrderEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 订单唯一标识 + */ + private String outTradeNo; + + /** + * NEW 未支付订单,PAY已经支付订单,CANCEL超时取消订单 + */ + private String state; + + /** + * 订单生成时间 + */ + private Date createTime; + + /** + * 订单总金额 + */ + private BigDecimal totalAmount; + + /** + * 订单实际支付价格 + */ + private BigDecimal payAmount; + + /** + * 支付类型,微信-银行-支付宝 + */ + private String payType; + + /** + * 昵称 + */ + private String nickname; + + /** + * 头像 + */ + private String headImg; + + /** + * 用户id + */ + private Integer userId; + + /** + * 0表示未删除,1表示已经删除 + */ + private Integer del; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 订单类型 DAILY普通单,PROMOTION促销订单 + */ + private String orderType; + + /** + * 收货地址 json存储 + */ + private String receiverAddress; + + +} diff --git a/nla-order-service/src/main/java/cn/nla/order/model/entity/ProductOrderItemEntity.java b/nla-order-service/src/main/java/cn/nla/order/model/entity/ProductOrderItemEntity.java new file mode 100644 index 0000000..6dc0cdb --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/model/entity/ProductOrderItemEntity.java @@ -0,0 +1,70 @@ +package cn.nla.order.model.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 订单项表 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("product_order_item") +public class ProductOrderItemEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 订单号 + */ + private Long productOrderId; + + private String outTradeNo; + + /** + * 产品id + */ + private Long productId; + + /** + * 商品名称 + */ + private String productName; + + /** + * 商品图片 + */ + private String productImg; + + /** + * 购买数量 + */ + private Integer buyNum; + + private Date createTime; + + /** + * 购物项商品总价格 + */ + private BigDecimal totalAmount; + + /** + * 购物项商品单价 + */ + private BigDecimal amount; + + +} diff --git a/nla-order-service/src/main/java/cn/nla/order/service/ProductOrderItemService.java b/nla-order-service/src/main/java/cn/nla/order/service/ProductOrderItemService.java new file mode 100644 index 0000000..8785afc --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/service/ProductOrderItemService.java @@ -0,0 +1,16 @@ +package cn.nla.order.service; + +import cn.nla.order.model.entity.ProductOrderItemEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 订单项表 服务类 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +public interface ProductOrderItemService extends IService { + +} diff --git a/nla-order-service/src/main/java/cn/nla/order/service/ProductOrderService.java b/nla-order-service/src/main/java/cn/nla/order/service/ProductOrderService.java new file mode 100644 index 0000000..22f30b7 --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/service/ProductOrderService.java @@ -0,0 +1,35 @@ +package cn.nla.order.service; + +import cn.nla.common.util.JsonData; +import cn.nla.order.model.entity.ProductOrderEntity; +import cn.nla.order.model.request.ConfirmOrderRequest; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 订单表 服务类 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +public interface ProductOrderService extends IService { + + /** + * 防重提交
+ * 用户微服务-确认收货地址
+ * 商品微服务-获取最新购物项和价格
+ * 订单验价
+ * * 优惠券微服务-获取优惠券
+ * * 验证价格
+ * 锁定优惠券
+ * 锁定商品库存
+ * 创建订单对象
+ * 创建子订单对象
+ * 发送延迟消息-用于自动关单
+ * 创建支付信息-对接三方支付 + */ + JsonData confirmOrder(ConfirmOrderRequest request); + + String queryProductOrderState(String outTradeNo); +} diff --git a/nla-order-service/src/main/java/cn/nla/order/service/impl/ProductOrderItemServiceImpl.java b/nla-order-service/src/main/java/cn/nla/order/service/impl/ProductOrderItemServiceImpl.java new file mode 100644 index 0000000..1b3e828 --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/service/impl/ProductOrderItemServiceImpl.java @@ -0,0 +1,20 @@ +package cn.nla.order.service.impl; + +import cn.nla.order.model.entity.ProductOrderItemEntity; +import cn.nla.order.mapper.ProductOrderItemMapper; +import cn.nla.order.service.ProductOrderItemService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 订单项表 服务实现类 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +@Service +public class ProductOrderItemServiceImpl extends ServiceImpl implements ProductOrderItemService { + +} diff --git a/nla-order-service/src/main/java/cn/nla/order/service/impl/ProductOrderServiceImpl.java b/nla-order-service/src/main/java/cn/nla/order/service/impl/ProductOrderServiceImpl.java new file mode 100644 index 0000000..e01f033 --- /dev/null +++ b/nla-order-service/src/main/java/cn/nla/order/service/impl/ProductOrderServiceImpl.java @@ -0,0 +1,38 @@ +package cn.nla.order.service.impl; + +import cn.nla.common.util.JsonData; +import cn.nla.order.model.entity.ProductOrderEntity; +import cn.nla.order.mapper.ProductOrderMapper; +import cn.nla.order.model.request.ConfirmOrderRequest; +import cn.nla.order.service.ProductOrderService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 订单表 服务实现类 + *

+ * + * @author YJs + * @since 2024-08-13 + */ +@Service +public class ProductOrderServiceImpl extends ServiceImpl implements ProductOrderService { + + @Override + public JsonData confirmOrder(ConfirmOrderRequest request) { + return null; + } + + @Override + public String queryProductOrderState(String outTradeNo) { + ProductOrderEntity productOrderDO = baseMapper.selectOne(new QueryWrapper() + .eq("out_trade_no", outTradeNo)); + if (productOrderDO == null) { + return ""; + } else { + return productOrderDO.getState(); + } + } +} diff --git a/nla-order-service/src/main/resources/mapper/ProductOrderItemMapper.xml b/nla-order-service/src/main/resources/mapper/ProductOrderItemMapper.xml new file mode 100644 index 0000000..4efeca3 --- /dev/null +++ b/nla-order-service/src/main/resources/mapper/ProductOrderItemMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + id, product_order_id, out_trade_no, product_id, product_name, product_img, buy_num, create_time, total_amount, amount + + + diff --git a/nla-order-service/src/main/resources/mapper/ProductOrderMapper.xml b/nla-order-service/src/main/resources/mapper/ProductOrderMapper.xml new file mode 100644 index 0000000..8f1709c --- /dev/null +++ b/nla-order-service/src/main/resources/mapper/ProductOrderMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, out_trade_no, state, create_time, total_amount, pay_amount, pay_type, nickname, head_img, user_id, del, update_time, order_type, receiver_address + + + diff --git a/nla-product-service/src/main/java/cn/nla/product/controller/ProductTaskController.java b/nla-product-service/src/main/java/cn/nla/product/controller/ProductTaskController.java new file mode 100644 index 0000000..51e1932 --- /dev/null +++ b/nla-product-service/src/main/java/cn/nla/product/controller/ProductTaskController.java @@ -0,0 +1,23 @@ +package cn.nla.product.controller; + + +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 下单锁库存任务表 前端控制器 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +@Api(tags = "下单锁库存任务控制器") +@RestController +@RequestMapping("/pdt/productTask/v1") +public class ProductTaskController { + +} + diff --git a/nla-product-service/src/main/java/cn/nla/product/mapper/ProductTaskMapper.java b/nla-product-service/src/main/java/cn/nla/product/mapper/ProductTaskMapper.java new file mode 100644 index 0000000..056ecda --- /dev/null +++ b/nla-product-service/src/main/java/cn/nla/product/mapper/ProductTaskMapper.java @@ -0,0 +1,16 @@ +package cn.nla.product.mapper; + +import cn.nla.product.model.entity.ProductTaskEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 下单锁库存任务表 Mapper 接口 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +public interface ProductTaskMapper extends BaseMapper { + +} diff --git a/nla-product-service/src/main/java/cn/nla/product/model/entity/ProductTaskEntity.java b/nla-product-service/src/main/java/cn/nla/product/model/entity/ProductTaskEntity.java new file mode 100644 index 0000000..c227574 --- /dev/null +++ b/nla-product-service/src/main/java/cn/nla/product/model/entity/ProductTaskEntity.java @@ -0,0 +1,54 @@ +package cn.nla.product.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 下单锁库存任务表 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("product_task") +public class ProductTaskEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 商品id + */ + private Long productId; + + /** + * 购买数量 + */ + private Integer buyNum; + + /** + * 商品标题 + */ + private String productName; + + /** + * 锁定状态锁定LOCK 完成FINISH-取消CANCEL + */ + private String lockState; + + private String outTradeNo; + + private Date createTime; + + +} diff --git a/nla-product-service/src/main/java/cn/nla/product/service/ProductTaskService.java b/nla-product-service/src/main/java/cn/nla/product/service/ProductTaskService.java new file mode 100644 index 0000000..11de514 --- /dev/null +++ b/nla-product-service/src/main/java/cn/nla/product/service/ProductTaskService.java @@ -0,0 +1,16 @@ +package cn.nla.product.service; + +import cn.nla.product.model.entity.ProductTaskEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 下单锁库存任务表 服务类 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +public interface ProductTaskService extends IService { + +} diff --git a/nla-product-service/src/main/java/cn/nla/product/service/impl/ProductTaskServiceImpl.java b/nla-product-service/src/main/java/cn/nla/product/service/impl/ProductTaskServiceImpl.java new file mode 100644 index 0000000..67382f7 --- /dev/null +++ b/nla-product-service/src/main/java/cn/nla/product/service/impl/ProductTaskServiceImpl.java @@ -0,0 +1,20 @@ +package cn.nla.product.service.impl; + +import cn.nla.product.model.entity.ProductTaskEntity; +import cn.nla.product.mapper.ProductTaskMapper; +import cn.nla.product.service.ProductTaskService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 下单锁库存任务表 服务实现类 + *

+ * + * @author YJs + * @since 2024-08-14 + */ +@Service +public class ProductTaskServiceImpl extends ServiceImpl implements ProductTaskService { + +} diff --git a/nla-product-service/src/main/resources/mapper/ProductTaskMapper.xml b/nla-product-service/src/main/resources/mapper/ProductTaskMapper.xml new file mode 100644 index 0000000..dc57f43 --- /dev/null +++ b/nla-product-service/src/main/resources/mapper/ProductTaskMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + id, product_id, buy_num, product_name, lock_state, out_trade_no, create_time + + +