SpringBoot企業微信點餐系統
阿新 • • 發佈:2019-02-01
專案目錄 | |--買家端類目 | 買家類目-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