前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >订单微服务(5)-1024电商平台项目技术选择和创 建聚合工程项目【工业级PaaS云平台+SpringCloudAlibaba+JDK11综合项目实战】

订单微服务(5)-1024电商平台项目技术选择和创 建聚合工程项目【工业级PaaS云平台+SpringCloudAlibaba+JDK11综合项目实战】

作者头像
高大北
发布2022-09-16 16:37:38
1.1K0
发布2022-09-16 16:37:38
举报

第二十章 1024电商平台-订单微服务开发

第1集 1024电商平台-订单微服务功能需求介绍

简介:订单微服务功能需求介绍

  • 核心接口-下单
  • 订单微服务涉及的功能知识点
    • 创建订单和防重提交
    • 多个微服务之间通讯-分布式事务选择
    • 商品库存锁定和回收
    • 优惠券使用锁定和回收
    • 支付宝支付对接
    • 优惠券+商品订单验价
    • 多通道支付和设计整合
第2集 1024电商平台-订单微服务数据库表讲解

简介:订单微服务数据库表讲解

  • 订单表
代码语言:javascript
复制
CREATE TABLE `product_order` (
  `id` bigint(11) NOT NULL AUTO_INCREMENT,
  `out_trade_no` varchar(64) DEFAULT NULL COMMENT '订单唯一标识',
  `state` varchar(11) DEFAULT NULL COMMENT 'NEW 未支付订单,PAY已经支付订单,CANCEL超时取消订单',
  `create_time` datetime DEFAULT NULL COMMENT '订单生成时间',
  `total_amount` decimal(16,2) DEFAULT NULL COMMENT '订单总金额',
  `pay_amount` decimal(16,2) DEFAULT NULL COMMENT '订单实际支付价格',
  `pay_type` varchar(64) DEFAULT NULL COMMENT '支付类型,微信-银行-支付宝',
  `nickname` varchar(64) DEFAULT NULL COMMENT '昵称',
  `head_img` varchar(524) DEFAULT NULL COMMENT '头像',
  `user_id` int(11) DEFAULT NULL COMMENT '用户id',
  `del` int(5) DEFAULT '0' COMMENT '0表示未删除,1表示已经删除',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `order_type` varchar(32) DEFAULT NULL COMMENT '订单类型 DAILY普通单,PROMOTION促销订单',
  `receiver_address` varchar(1024) DEFAULT NULL COMMENT '收货地址 json存储',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2439 DEFAULT CHARSET=utf8mb4;
  • 订单项表
代码语言:javascript
复制
CREATE TABLE `product_order_item` (
  `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,
  `product_order_id` bigint(11) DEFAULT NULL COMMENT '订单号',
  `out_trade_no` varchar(32) DEFAULT NULL,
  `product_id` bigint(11) DEFAULT NULL COMMENT '产品id',
  `product_name` varchar(128) DEFAULT NULL COMMENT '商品名称',
  `product_img` varchar(524) DEFAULT NULL COMMENT '商品图片',
  `buy_num` int(11) DEFAULT NULL COMMENT '购买数量',
  `create_time` datetime DEFAULT NULL,
  `total_amount` decimal(16,2) DEFAULT NULL COMMENT '购物项商品总价格',
  `amount` decimal(16,0) DEFAULT NULL COMMENT '购物项商品单价',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=194 DEFAULT CHARSET=utf8mb4;
第3集 订单微服务+MybatisPlusGenerator代码自动生成工具

简介:Mybatis-plus-generator代码自动化生成微服务相关类

  • 配置代码生成(标记TODO的记得修改)
代码语言:javascript
复制
public class MyBatisPlusGenerator {

    public static void main(String[] args) {
        //1. 全局配置
        GlobalConfig config = new GlobalConfig();

                // 作者
                config.setAuthor("二当家小D")
                // 生成路径,最好使用绝对路径,window路径是不一样的
                //TODO  TODO  TODO  TODO
                .setOutputDir("/Users/xdclass/Desktop/demo/src/main/java")
                // 文件覆盖
                .setFileOverride(true)
                // 主键策略
                .setIdType(IdType.AUTO)

                .setDateType(DateType.ONLY_DATE)
                // 设置生成的service接口的名字的首字母是否为I,默认Service是以I开头的
                .setServiceName("%sService")

                //实体类结尾名称
                .setEntityName("%sDO")

                //生成基本的resultMap
                .setBaseResultMap(true)

                //不使用AR模式
                .setActiveRecord(false)

                //生成基本的SQL片段
                .setBaseColumnList(true);

        //2. 数据源配置
        DataSourceConfig dsConfig = new DataSourceConfig();
        // 设置数据库类型
        dsConfig.setDbType(DbType.MYSQL)
                .setDriverName("com.mysql.cj.jdbc.Driver")
                //TODO  TODO  TODO  TODO
                .setUrl("jdbc:mysql://127.0.0.1:3306/xdclass_order?useSSL=false")
                .setUsername("root")
                .setPassword("xdclass.net");

        //3. 策略配置globalConfiguration中
        StrategyConfig stConfig = new StrategyConfig();

        //全局大写命名
        stConfig.setCapitalMode(true)
                // 数据库表映射到实体的命名策略
                .setNaming(NamingStrategy.underline_to_camel)

                //使用lombok
                .setEntityLombokModel(true)

                //使用restcontroller注解
                .setRestControllerStyle(true)

                // 生成的表, 支持多表一起生成,以数组形式填写
                //TODO  TODO  TODO  TODO
                .setInclude("product_order","product_order_item");

        //4. 包名策略配置
        PackageConfig pkConfig = new PackageConfig();
        pkConfig.setParent("net.xdclass")
                .setMapper("mapper")
                .setService("service")
                .setController("controller")
                .setEntity("model")
                .setXml("mapper");

        //5. 整合配置
        AutoGenerator ag = new AutoGenerator();
        ag.setGlobalConfig(config)
                .setDataSource(dsConfig)
                .setStrategy(stConfig)
                .setPackageInfo(pkConfig);

        //6. 执行操作
        ag.execute();
        System.out.println("======= 小滴课堂 Done 相关代码生成完毕  ========");
    }
}
  • 导入生成好的代码
    • model (为啥不放common项目,如果是确定每个服务都用到的依赖或者类才放到common项目)
    • mapper 类接口拷贝
    • resource/mapper文件夹 xml脚本拷贝
    • controller
    • service 不拷贝
第4集 订单微服务项目基本配置整合-拦截器-枚举类配置

简介:项目相关配置整合和拦截器配置

  • SpringBoot项目启动类和配置文件配置
  • 拦截器配置
  • 枚举类配置
代码语言:javascript
复制
/**
 * 客户端枚举类
 */
public enum ClientType {

    /**
     * 原生应用
     */
    APP,

    /**
     * 电脑端
     */
    PC,

    /**
     * 网页
     */
    H5
}


public enum ProductOrderPayTypeEnum {

    /**
     * 微信支付
     */
    WECHAT,

    /**
     * 支付支付
     */
    ALIPAY,

    /**
     * 银行卡支付
     */
    BANK;

}

public enum ProductOrderStateEnum {

    /**
     * 未支付订单
     */
    NEW,


    /**
     * 已经支付订单
     */
    PAY,

    /**
     * 超时取消订单
     */
    CANCEL;

}

public enum ProductOrderTypeEnum {

    /**
     * 普通订单
     */
    DAILY,


    /**
     * 促销订单
     */
    PROMOTION;

}
第5集 订单微服务-创建订单接口介绍-request类

简介:订单微服务-创建订单接口介绍和request类型编写

  • 下单逻辑
    • 二步:创建订单-》调用支付(京东)
    • 一步:创建订单并调用支付(手淘)
  • 创建订单
    • controller编写
第6集 订单微服务-创建订单service伪代码编写

简介:订单微服务-创建订单伪代码编写

  • service编写伪代码
    • 防重提交
    • 用户微服务-确认收货地址
    • 商品微服务-获取最新购物项和价格
    • 订单验价
      • 优惠券微服务-获取优惠券
      • 验证价格
    • 锁定优惠券
    • 锁定商品库存
    • 创建订单对象
    • 创建子订单对象
    • 发送延迟消息-用于自动关单
    • 创建支付信息-对接三方支付
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第二十章 1024电商平台-订单微服务开发
    • 第1集 1024电商平台-订单微服务功能需求介绍
      • 第2集 1024电商平台-订单微服务数据库表讲解
        • 第3集 订单微服务+MybatisPlusGenerator代码自动生成工具
          • 第4集 订单微服务项目基本配置整合-拦截器-枚举类配置
            • 第5集 订单微服务-创建订单接口介绍-request类
              • 第6集 订单微服务-创建订单service伪代码编写
              相关产品与服务
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档