1. 程式人生 > >SpringBoot企業微信點餐系統

SpringBoot企業微信點餐系統

專案目錄
|
|--買家端類目
|    買家類目-dao(上)
|    買家類目-dao(下)
|    買家類目-service
|
|--買家端商品
|    買家商品-dao
|    買家商品-service
|    買家商品-api(上)
|    買家商品-api(下)
|
|--買家端訂單
|    買家訂單-dao(上)
|    買家訂單-dao(下)
|    買家訂單-service建立_A
|    買家訂單-service建立_B
|    買家訂單-service建立_C
|    買家訂單-service建立_D
|    買家訂單-service查詢
|    買家訂單-service取消
|    買家訂單-service finish和paid
|    買家訂單-api_A
|    買家訂單-api_B
|    買家訂單-api_C
|    買家訂單-api_D
|
|--微信授權
|    設定域名.mp4
|    獲取code.mp4
|    換取access_token.mp4
|    使用sdk方式(上).mp4
|    使用sdk方式(下).mp4
|    微信網頁授權前端除錯.mp4
|
|--微信支付和退款
|    發起微信支付-後端(上)
|    發起微信支付-後端(下)
|    在網頁發起支付
|    動態注入引數發起支付
|    微信非同步通知(上)
|    微信非同步通知(下)
|    微信退款.mp4
|    補充:使用測試號實現授權.mp4
|
|--賣家端訂單
|    賣家訂單-service
|    賣家-訂單-controller(上)
|    賣家-訂單-controller(下)
|    賣家訂單-controller-翻頁
|    賣家訂單-controller-取消訂單
|    賣家訂單-controller-訂單詳情
|    賣家訂單-controller-完結訂單
|
|--賣家端通用功能和上下架
|    關於模版的小技巧
|    實現邊欄
|    實現商品列表
|    商品上下架-service
|    商品上下架-controller
|
|--賣家端新增商品和類目
|    賣家商品-新增修改頁面
|    賣家商品-修改表單提交
|    賣家商品-新增功能
|    賣家類目功能開發
|
|--買家和賣家端聯通
|    分散式session理論(上)
|    分散式session理論(下)
|    賣家資訊表-dao開發
|    賣家掃碼登入service開發
|    賣家掃碼登入獲取openid
|    登入成功
|    登出成功
|    AOP實現身份驗證
|    微信模版訊息推送
|    webSocket訊息推送
|
|--專案優化
|    異常捕獲
|    mybatis註解方式使用_A
|    mybatis註解方式使用_B
|    mybatis xml方式使用
|    jpa和mybatis的選擇
|    ab壓測介紹
|    synchronized處理併發
|    redis分散式鎖
|    redis快取的使用(上)
|    redis快取的使用(下)
|
|--專案部署
|    專案部署


微信點餐資料庫

-- 類目
create table `product_category` (
    `category_id` int not null auto_increment,
    `category_name` varchar(64) not null comment '類目名字',
    `category_type` int not null comment '類目編號',
    `create_time` timestamp not null default current_timestamp comment '建立時間',
    `update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改時間',
    primary key (`category_id`)
);

-- 商品
create table `product_info` (
    `product_id` varchar(32) not null,
    `product_name` varchar(64) not null comment '商品名稱',
    `product_price` decimal(8,2) not null comment '單價',
    `product_stock` int not null comment '庫存',
    `product_description` varchar(64) comment '描述',
    `product_icon` varchar(512) comment '小圖',
    `product_status` tinyint(3) DEFAULT '0' COMMENT '商品狀態,0正常1下架',
    `category_type` int not null comment '類目編號',
    `create_time` timestamp not null default current_timestamp comment '建立時間',
    `update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改時間',
    primary key (`product_id`)
);

-- 訂單
create table `order_master` (
    `order_id` varchar(32) not null,
    `buyer_name` varchar(32) not null comment '買家名字',
    `buyer_phone` varchar(32) not null comment '買家電話',
    `buyer_address` varchar(128) not null comment '買家地址',
    `buyer_openid` varchar(64) not null comment '買家微信openid',
    `order_amount` decimal(8,2) not null comment '訂單總金額',
    `order_status` tinyint(3) not null default '0' comment '訂單狀態, 預設為新下單',
    `pay_status` tinyint(3) not null default '0' comment '支付狀態, 預設未支付',
    `create_time` timestamp not null default current_timestamp comment '建立時間',
    `update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改時間',
    primary key (`order_id`),
    key `idx_buyer_openid` (`buyer_openid`)
);

-- 訂單商品
create table `order_detail` (
    `detail_id` varchar(32) not null,
    `order_id` varchar(32) not null,
    `product_id` varchar(32) not null,
    `product_name` varchar(64) not null comment '商品名稱',
    `product_price` decimal(8,2) not null comment '當前價格,單位分',
    `product_quantity` int not null comment '數量',
    `product_icon` varchar(512) comment '小圖',
    `create_time` timestamp not null default current_timestamp comment '建立時間',
    `update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改時間',
    primary key (`detail_id`),
    key `idx_order_id` (`order_id`)
);

-- 賣家(登入後臺使用, 賣家登入之後可能直接採用微信掃碼登入,不使用賬號密碼)
create table `seller_info` (
    `id` varchar(32) not null,
    `username` varchar(32) not null,
    `password` varchar(32) not null,
    `openid` varchar(64) not null comment '微信openid',
    `create_time` timestamp not null default current_timestamp comment '建立時間',
    `update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改時間',
    primary key (`id`)
) comment '賣家資訊表';

後端主要技術:

功能分析 

API

###商品列表

GET /sell/buyer/product/list

引數

返回

{
    "code": 0,
    "msg": "成功",
    "data": [
        {
            "name": "熱榜",
            "type": 1,
            "foods": [
                {
                    "id": "123456",
                    "name": "皮蛋粥",
                    "price": 1.2,
                    "description": "好吃的皮蛋粥",
                    "icon": "http://xxx.com",
                }
            ]
        },
        {
            "name": "好吃的",
            "type": 2,
            "foods": [
                {
                    "id": "123457",
                    "name": "慕斯蛋糕",
                    "price": 10.9,
                    "description": "美味爽口",
                    "icon": "http://xxx.com",
                }
            ]
        }
    ]
}

###建立訂單

POST /sell/buyer/order/create

引數

name: "張三"
phone: "18868822111"
address: "慕課網總部"
openid: "ew3euwhd7sjw9diwkq" //使用者的微信openid
items: [{
    productId: "1423113435324",
    productQuantity: 2 //購買數量
}]
返回
{
  "code": 0,
  "msg": "成功",
  "data": {
      "orderId": "147283992738221" 
  }
}

###訂單列表

GET /sell/buyer/order/list

引數

openid: 18eu2jwk2kse3r42e2e
page: 0 //從第0頁開始
size: 10

返回

{
  "code": 0,
  "msg": "成功",
  "data": [
    {
      "orderId": "161873371171128075",
      "buyerName": "張三",
      "buyerPhone": "18868877111",
      "buyerAddress": "慕課網總部",
      "buyerOpenid": "18eu2jwk2kse3r42e2e",
      "orderAmount": 0,
      "orderStatus": 0,
      "payStatus": 0,
      "createTime": 1490171219,
      "updateTime": 1490171219,
      "orderDetailList": null
    },
    {
      "orderId": "161873371171128076",
      "buyerName": "張三",
      "buyerPhone": "18868877111",
      "buyerAddress": "慕課網總部",
      "buyerOpenid": "18eu2jwk2kse3r42e2e",
      "orderAmount": 0,
      "orderStatus": 0,
      "payStatus": 0,
      "createTime": 1490171219,
      "updateTime": 1490171219,
      "orderDetailList": null
    }]
}

###查詢訂單詳情

GET /sell/buyer/order/detail

引數

openid: 18eu2jwk2kse3r42e2e
orderId: 161899085773669363

返回

{
    "code": 0,
    "msg": "成功",
    "data": {
          "orderId": "161899085773669363",
          "buyerName": "李四",
          "buyerPhone": "18868877111",
          "buyerAddress": "慕課網總部",
          "buyerOpenid": "18eu2jwk2kse3r42e2e",
          "orderAmount": 18,
          "orderStatus": 0,
          "payStatus": 0,
          "createTime": 1490177352,
          "updateTime": 1490177352,
          "orderDetailList": [
            {
                "detailId": "161899085974995851",
                "orderId": "161899085773669363",
                "productId": "157875196362360019",
                "productName": "招牌奶茶",
                "productPrice": 9,
                "productQuantity": 2,
                "productIcon": "http://xxx.com",
                "productImage": "http://xxx.com"
            }
        ]
    }
}

###取消訂單

POST /sell/buyer/order/cancel

引數

openid: 18eu2jwk2kse3r42e2e
orderId: 161899085773669363

返回

{
    "code": 0,
    "msg": "成功",
    "data": null
}

###獲取openid

重定向到 /sell/wechat/authorize

引數

returnUrl: http://xxx.com/abc  //【必填】

返回

http://xxx.com/abc?openid=oZxSYw5ldcxv6H0EU67GgSXOUrVg

###支付訂單

重定向 /sell/pay/create

引數

orderId: 161899085773669363
returnUrl: http://xxx.com/abc/order/161899085773669363

返回

http://xxx.com/abc/order/161899085773669363