Browse Source

feat: 更新业务逻辑

master
xc-yjs 8 months ago
parent
commit
6fcfc09647
  1. 23
      nla-coupon-service/src/main/java/cn/nla/coupon/controller/CouponTaskController.java
  2. 23
      nla-coupon-service/src/main/java/cn/nla/coupon/mapper/CouponTaskMapper.java
  3. 50
      nla-coupon-service/src/main/java/cn/nla/coupon/model/entity/CouponTaskEntity.java
  4. 16
      nla-coupon-service/src/main/java/cn/nla/coupon/service/CouponTaskService.java
  5. 20
      nla-coupon-service/src/main/java/cn/nla/coupon/service/impl/CouponTaskServiceImpl.java
  6. 45
      nla-coupon-service/src/main/resources/application.yml
  7. 74
      nla-coupon-service/src/main/resources/application_m.yml
  8. 39
      nla-coupon-service/src/main/resources/mapper/CouponTaskMapper.xml
  9. 85
      nla-order-service/src/main/java/cn/nla/order/controller/ProductOrderController.java
  10. 23
      nla-order-service/src/main/java/cn/nla/order/controller/ProductOrderItemController.java
  11. 16
      nla-order-service/src/main/java/cn/nla/order/mapper/ProductOrderItemMapper.java
  12. 16
      nla-order-service/src/main/java/cn/nla/order/mapper/ProductOrderMapper.java
  13. 96
      nla-order-service/src/main/java/cn/nla/order/model/entity/ProductOrderEntity.java
  14. 70
      nla-order-service/src/main/java/cn/nla/order/model/entity/ProductOrderItemEntity.java
  15. 16
      nla-order-service/src/main/java/cn/nla/order/service/ProductOrderItemService.java
  16. 35
      nla-order-service/src/main/java/cn/nla/order/service/ProductOrderService.java
  17. 20
      nla-order-service/src/main/java/cn/nla/order/service/impl/ProductOrderItemServiceImpl.java
  18. 38
      nla-order-service/src/main/java/cn/nla/order/service/impl/ProductOrderServiceImpl.java
  19. 24
      nla-order-service/src/main/resources/mapper/ProductOrderItemMapper.xml
  20. 28
      nla-order-service/src/main/resources/mapper/ProductOrderMapper.xml
  21. 23
      nla-product-service/src/main/java/cn/nla/product/controller/ProductTaskController.java
  22. 16
      nla-product-service/src/main/java/cn/nla/product/mapper/ProductTaskMapper.java
  23. 54
      nla-product-service/src/main/java/cn/nla/product/model/entity/ProductTaskEntity.java
  24. 16
      nla-product-service/src/main/java/cn/nla/product/service/ProductTaskService.java
  25. 20
      nla-product-service/src/main/java/cn/nla/product/service/impl/ProductTaskServiceImpl.java
  26. 21
      nla-product-service/src/main/resources/mapper/ProductTaskMapper.xml

23
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;
/**
* <p>
* 优惠券记录锁定任务表 前端控制器
* </p>
*
* @author YJs
* @since 2024-08-14
*/
@Api(tags = "优惠券记录锁定任务控制器")
@RestController
@RequestMapping("/cop/couponTask/v1")
public class CouponTaskController {
}

23
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;
/**
* <p>
* 优惠券记录锁定任务表 Mapper 接口
* </p>
*
* @author YJs
* @since 2024-08-14
*/
public interface CouponTaskMapper extends BaseMapper<CouponTaskEntity> {
/**
* 批量插入
*/
int insertBatch(@Param("couponTaskList") List<CouponTaskEntity> couponTaskList);
}

50
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;
/**
* <p>
* 优惠券记录锁定任务表
* </p>
*
* @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;
}

16
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;
/**
* <p>
* 优惠券记录锁定任务表 服务类
* </p>
*
* @author YJs
* @since 2024-08-14
*/
public interface CouponTaskService extends IService<CouponTaskEntity> {
}

20
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;
/**
* <p>
* 优惠券记录锁定任务表 服务实现类
* </p>
*
* @author YJs
* @since 2024-08-14
*/
@Service
public class CouponTaskServiceImpl extends ServiceImpl<CouponTaskMapper, CouponTaskEntity> implements CouponTaskService {
}

45
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

74
nla-coupon-service/src/main/resources/application_m.yml

@ -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

39
nla-coupon-service/src/main/resources/mapper/CouponTaskMapper.xml

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.nla.coupon.mapper.CouponTaskMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.nla.coupon.model.entity.CouponTaskEntity">
<id column="id" property="id"/>
<result column="coupon_record_id" property="couponRecordId"/>
<result column="create_time" property="createTime"/>
<result column="out_trade_no" property="outTradeNo"/>
<result column="lock_state" property="lockState"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, coupon_record_id, create_time, out_trade_no, lock_state
</sql>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List_No_Id">
coupon_record_id, create_time, out_trade_no, lock_state
</sql>
<insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
insert into coupon_task
(
<include refid="Base_Column_List_No_Id"/>
)
values
<foreach collection="couponTaskList" item="item" index="index" separator=",">
(
#{item.couponRecordId},
#{item.createTime},
#{item.outTradeNo},
#{item.lockState}
)
</foreach>
</insert>
</mapper>

85
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;
/**
* <p>
* 订单表 前端控制器
* </p>
*
* @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);
}
}
}

23
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;
/**
* <p>
* 订单项表 前端控制器
* </p>
*
* @author YJs
* @since 2024-08-13
*/
@Api(tags = "订单项控制器")
@RestController
@RequestMapping("/odr/productItem")
public class ProductOrderItemController {
}

16
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;
/**
* <p>
* 订单项表 Mapper 接口
* </p>
*
* @author YJs
* @since 2024-08-13
*/
public interface ProductOrderItemMapper extends BaseMapper<ProductOrderItemEntity> {
}

16
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;
/**
* <p>
* 订单表 Mapper 接口
* </p>
*
* @author YJs
* @since 2024-08-13
*/
public interface ProductOrderMapper extends BaseMapper<ProductOrderEntity> {
}

96
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;
/**
* <p>
* 订单表
* </p>
*
* @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;
}

70
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;
/**
* <p>
* 订单项表
* </p>
*
* @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;
}

16
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;
/**
* <p>
* 订单项表 服务类
* </p>
*
* @author YJs
* @since 2024-08-13
*/
public interface ProductOrderItemService extends IService<ProductOrderItemEntity> {
}

35
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;
/**
* <p>
* 订单表 服务类
* </p>
*
* @author YJs
* @since 2024-08-13
*/
public interface ProductOrderService extends IService<ProductOrderEntity> {
/**
* 防重提交<br>
* 用户微服务-确认收货地址 <br>
* 商品微服务-获取最新购物项和价格<br>
* 订单验价<br>
* * 优惠券微服务-获取优惠券<br>
* * 验证价格<br>
* 锁定优惠券<br>
* 锁定商品库存<br>
* 创建订单对象<br>
* 创建子订单对象<br>
* 发送延迟消息-用于自动关单<br>
* 创建支付信息-对接三方支付
*/
JsonData confirmOrder(ConfirmOrderRequest request);
String queryProductOrderState(String outTradeNo);
}

20
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;
/**
* <p>
* 订单项表 服务实现类
* </p>
*
* @author YJs
* @since 2024-08-13
*/
@Service
public class ProductOrderItemServiceImpl extends ServiceImpl<ProductOrderItemMapper, ProductOrderItemEntity> implements ProductOrderItemService {
}

38
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;
/**
* <p>
* 订单表 服务实现类
* </p>
*
* @author YJs
* @since 2024-08-13
*/
@Service
public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, ProductOrderEntity> implements ProductOrderService {
@Override
public JsonData confirmOrder(ConfirmOrderRequest request) {
return null;
}
@Override
public String queryProductOrderState(String outTradeNo) {
ProductOrderEntity productOrderDO = baseMapper.selectOne(new QueryWrapper<ProductOrderEntity>()
.eq("out_trade_no", outTradeNo));
if (productOrderDO == null) {
return "";
} else {
return productOrderDO.getState();
}
}
}

24
nla-order-service/src/main/resources/mapper/ProductOrderItemMapper.xml

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.nla.order.mapper.ProductOrderItemMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.nla.order.model.entity.ProductOrderItemEntity">
<id column="id" property="id" />
<result column="product_order_id" property="productOrderId" />
<result column="out_trade_no" property="outTradeNo" />
<result column="product_id" property="productId" />
<result column="product_name" property="productName" />
<result column="product_img" property="productImg" />
<result column="buy_num" property="buyNum" />
<result column="create_time" property="createTime" />
<result column="total_amount" property="totalAmount" />
<result column="amount" property="amount" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, product_order_id, out_trade_no, product_id, product_name, product_img, buy_num, create_time, total_amount, amount
</sql>
</mapper>

28
nla-order-service/src/main/resources/mapper/ProductOrderMapper.xml

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.nla.order.mapper.ProductOrderMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.nla.order.model.entity.ProductOrderEntity">
<id column="id" property="id" />
<result column="out_trade_no" property="outTradeNo" />
<result column="state" property="state" />
<result column="create_time" property="createTime" />
<result column="total_amount" property="totalAmount" />
<result column="pay_amount" property="payAmount" />
<result column="pay_type" property="payType" />
<result column="nickname" property="nickname" />
<result column="head_img" property="headImg" />
<result column="user_id" property="userId" />
<result column="del" property="del" />
<result column="update_time" property="updateTime" />
<result column="order_type" property="orderType" />
<result column="receiver_address" property="receiverAddress" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
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
</sql>
</mapper>

23
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;
/**
* <p>
* 下单锁库存任务表 前端控制器
* </p>
*
* @author YJs
* @since 2024-08-14
*/
@Api(tags = "下单锁库存任务控制器")
@RestController
@RequestMapping("/pdt/productTask/v1")
public class ProductTaskController {
}

16
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;
/**
* <p>
* 下单锁库存任务表 Mapper 接口
* </p>
*
* @author YJs
* @since 2024-08-14
*/
public interface ProductTaskMapper extends BaseMapper<ProductTaskEntity> {
}

54
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;
/**
* <p>
* 下单锁库存任务表
* </p>
*
* @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;
}

16
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;
/**
* <p>
* 下单锁库存任务表 服务类
* </p>
*
* @author YJs
* @since 2024-08-14
*/
public interface ProductTaskService extends IService<ProductTaskEntity> {
}

20
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;
/**
* <p>
* 下单锁库存任务表 服务实现类
* </p>
*
* @author YJs
* @since 2024-08-14
*/
@Service
public class ProductTaskServiceImpl extends ServiceImpl<ProductTaskMapper, ProductTaskEntity> implements ProductTaskService {
}

21
nla-product-service/src/main/resources/mapper/ProductTaskMapper.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.nla.product.mapper.ProductTaskMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.nla.product.model.entity.ProductTaskEntity">
<id column="id" property="id" />
<result column="product_id" property="productId" />
<result column="buy_num" property="buyNum" />
<result column="product_name" property="productName" />
<result column="lock_state" property="lockState" />
<result column="out_trade_no" property="outTradeNo" />
<result column="create_time" property="createTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, product_id, buy_num, product_name, lock_state, out_trade_no, create_time
</sql>
</mapper>
Loading…
Cancel
Save