Commit e5e694ed by jscat

nyx mysql:

1. 主要更新tbl_pay的字段
parent 13360b35
USE rockwell_key; USE rockwell_key;
...@@ -6,8 +6,8 @@ USE rockwell_key; ...@@ -6,8 +6,8 @@ USE rockwell_key;
*/ */
DROP TABLE IF EXISTS tbl_pay_info; DROP TABLE IF EXISTS tbl_pay;
CREATE TABLE tbl_pay_info ( CREATE TABLE tbl_pay (
`pay_id` VARCHAR(100) COMMENT '支付的id, 支付流水号, identity maxId, pid_001', `pay_id` VARCHAR(100) COMMENT '支付的id, 支付流水号, identity maxId, pid_001',
`order_id` VARCHAR(100) COMMENT '订单的id, uuid format, oid_001', `order_id` VARCHAR(100) COMMENT '订单的id, uuid format, oid_001',
`user_id` VARCHAR(100) COMMENT '用户的id, uuid format, uid_001', `user_id` VARCHAR(100) COMMENT '用户的id, uuid format, uid_001',
...@@ -19,9 +19,8 @@ CREATE TABLE tbl_pay_info ( ...@@ -19,9 +19,8 @@ CREATE TABLE tbl_pay_info (
KEY `query_key` (`order_id`, `user_id`, `pay_status`)) KEY `query_key` (`order_id`, `user_id`, `pay_status`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='支付信息表'; ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='支付信息表';
INSERT INTO `tbl_pay_info`(`pay_id`, `order_id`, `user_id`, `pay_platform`, `pay_number`, `pay_status`, `create_datetime`,`update_datetime`) INSERT INTO `tbl_pay`(`pay_id`, `order_id`, `user_id`, `pay_platform`, `pay_status`, `create_datetime`,`update_datetime`)
VALUES VALUES
('piid_001', 'oid_001', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '10', 'pay_001', '01', '2019-11-20 11:24:45', '2019-11-20 11:24:45'), ('pid_2020080610555700003', 'oid_001', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '10', '01', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('piid_002', 'oid_002', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', NULL, NULL, '00', '2019-11-20 11:24:45', '2019-11-20 11:24:45'), ('pid_2020080810555700001', 'oid_003', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '10', '01', '2019-11-20 11:24:45', '2019-11-20 11:24:45')
('piid_003', 'oid_003', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '10', 'pay_001', '01', '2019-11-20 11:24:45', '2019-11-20 11:24:45')
; ;
/* /*
...@@ -177,14 +177,14 @@ ...@@ -177,14 +177,14 @@
-- 存储到数据库 -- 存储到数据库
tbl_order tbl_order
tbl_order_item tbl_order_item
tbl_pay_info tbl_pay
-- 回到my/my-order/my-order页面 -- 回到my/my-order/my-order页面
--如果失败, 回到order.xml --如果失败, 回到order.xml
--待支付页 todo weapp order-pay.wxml --待支付页 todo weapp order-onpay.wxml
...@@ -231,25 +231,27 @@ ...@@ -231,25 +231,27 @@
update tbl_order set order_status="20", payment=59.0, payment_type="01", payment_datetime=NOW(), qrcode_url="" update tbl_order set order_status="20", payment=59.0, payment_type="01", payment_datetime=NOW(), qrcode_url=""
where order_id='oid_002' where order_id='oid_002'
更新 tbl_pay_info 表 备注: 更新 pay_number 一定是在pay的时候 更新 tbl_pay 表 备注: 更新 pay_id 一定是在pay的时候
参考1: https://www.cnblogs.com/heyuquan/p/global-guid-identity-maxId.html 如何在高并发分布式系统中生成全局唯一Id 参考1: https://www.cnblogs.com/heyuquan/p/global-guid-identity-maxId.html 如何在高并发分布式系统中生成全局唯一Id
12位年月日时分秒+5位流水码+3位服务器编码 (这样流水码就需要结合数据库和缓存)---共20位 (将影响顺序权重大的“流水码”放前面,影响顺序权重小的服务器编码放后) 12位年月日时分秒+5位流水码+3位服务器编码 (这样流水码就需要结合数据库和缓存)---共20位 (将影响顺序权重大的“流水码”放前面,影响顺序权重小的服务器编码放后)
缺陷:因为使用到流水码,流水码的生成必然会遇到和MaxId、序列表、Sequence方案中类似的问题 缺陷:因为使用到流水码,流水码的生成必然会遇到和MaxId、序列表、Sequence方案中类似的问题
参考2: https://blog.csdn.net/wzn1054162229/article/details/88587021 如何自动生成流水号(以MySQL为例) 参考2: https://blog.csdn.net/wzn1054162229/article/details/88587021 如何自动生成流水号(以MySQL为例)
SELECT CONCAT(DATE_FORMAT(NOW(),'%Y%m%d%h%i%s'), SELECT CONCAT('pid_',DATE_FORMAT(NOW(),'%Y%m%d%H%i%s'),
( (
CASE CASE
WHEN SUBSTR(pay_number, 1, 8) = DATE_FORMAT(NOW(),'%Y%m%d') WHEN SUBSTR(MAX(pay_id), 5, 8) = DATE_FORMAT(NOW(),'%Y%m%d')
THEN SUBSTR(CONCAT('0000' , (IFNULL(MAX(SUBSTR(pay_number,-5)),0) + 1 )), -5) THEN SUBSTR(CONCAT('0000' , (SUBSTR(SUBSTR(MAX(pay_id), 5, 19), -5) + 1 ) ), -5)
ELSE '00001' ELSE '00001'
END END
)) AS pay_number )) AS pay_id
FROM FROM
tbl_pay_info tbl_pay
update tbl_pay_info INSERT INTO `tbl_pay`(`pay_id`, `order_id`, `user_id`, `pay_platform`, `pay_status`, `create_datetime`,`update_datetime`)
set pay_number='2020080610555700003', pay_platform='10', pay_status='01' VALUES
where order_id='oid_002' ('pid_2020080610555700003', 'oid_001', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '10', '01', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('pid_2020080810555700001', 'oid_003', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '10', '01', '2019-11-20 11:24:45', '2019-11-20 11:24:45')
;
425 425
424 页面数据 424 页面数据
...@@ -291,6 +293,10 @@ ...@@ -291,6 +293,10 @@
421 421
备注 tbl_order 和 tbl_pay 的关系
点击 '去支付' -> '扫码' -> '完成支付' -> 生成 tbl_order/tbl_order_item, 生成 tbl_pay
点击 '去支付' -> '取消' -> '未完成支付' -> 生成 tbl_order/tbl_order_item, 生成页面 order-onpay.wxml (查看订单, 去付款) -> 生成 tbl_pay
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论