From 72bacacf4f532f1a8d67a2427c407890b5e20ba1 Mon Sep 17 00:00:00 2001 From: 24024 <240241002@qq.com> Date: Wed, 14 Jan 2026 20:18:35 +0800 Subject: [PATCH] =?UTF-8?q?feat(auth):=20=E5=A2=9E=E5=8A=A0=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86=E5=92=8C?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E5=85=85=E5=80=BC=E8=AE=B0=E5=BD=95=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增全员订单管理页面,仅限管理员访问 - 购买积分页新增显示用户个人充值记录,管理员可见全员记录 - 支付模块增加用户充值历史查看页面及对应 API 接口 - buy.html 模板新增充值记录展示,包括个人和管理员视角的切换标签 - base.html 添加网站图标图像替换原图标字体图标 - 更新支付宝配置 AppID 和应用私钥 - 增加页面脚本支持充值记录标签页切换功能 - 补充日志,记录更多用户登录成功信息 --- __pycache__/config.cpython-312.pyc | Bin 4123 -> 4123 bytes blueprints/__pycache__/auth.cpython-312.pyc | Bin 11924 -> 13108 bytes .../__pycache__/payment.cpython-312.pyc | Bin 7522 -> 9571 bytes blueprints/auth.py | 22 ++- blueprints/payment.py | 32 ++++ config.py | 4 +- logs/system.log | 4 + static/A_2IGfT6uTwlgAAAAAQmAAAAgAerF1AQ.png | Bin 0 -> 39354 bytes templates/base.html | 5 +- templates/buy.html | 151 +++++++++++++++++- templates/orders.html | 148 +++++++++++++++++ templates/recharge_history.html | 87 ++++++++++ 12 files changed, 447 insertions(+), 6 deletions(-) create mode 100644 static/A_2IGfT6uTwlgAAAAAQmAAAAgAerF1AQ.png create mode 100644 templates/orders.html create mode 100644 templates/recharge_history.html diff --git a/__pycache__/config.cpython-312.pyc b/__pycache__/config.cpython-312.pyc index 63b4247c9958f281a01db61b5754f960970fd9f9..3c1358472622286daa4095e616a76f5203e2b5da 100644 GIT binary patch delta 1619 zcmWlZInt!)8H5#~85teXcW57j9SW0uE1=jZyrO`QeczoLZw@eKpF*Ky%yneR(%*T2 zj5jmhCx8C<`QzK)-@kwR$Cv*1=fA)G_n-eFDGVpkzkd7e`GGiNkUh<~gx>0^Q!XfG z67ER=-=>Ch1U5{I)5B*3Dup4b;p$e$n~ZxhKG`X-wYy;?j0JUSQlAaMJz!7cJ7;ZM zU$z@3gj}@k@}o84kPjU&I@x=)r7jP-9dtA_m>(AI^nCHGq2aDD9@xt%2_@{10n2Di zeFF`9TvXR1O&UB!Y}8hAr}tKpDkp+OLS~3AM#4uIr;y*pyK+^i9C_}&01{^LlpANAPj6z!mAjO9tbHKP9zcf?X|xA>E`kW`|K~MZQWM zS9c!-$DvWb+HWsiY7uF>$usgyocCnbK~z9#w|X;jvp`pNEHF5h6?p(eHeN^`-ekBQ znv@<8>*nwX)K8jS5$5M?V{8NJBFYXw_Il^J8XY~s%ZF#wEhU$P+Qr+pD_7pH!x20Q z4Vog5g{lgxQ2~cv)<~cM>uzD2{Gw2X>`&aq8XGR&5Wg~Z3u}CktPSX%(?Z{!(Nj74 zlFDA0n&tLk-JtBOetefnoN5&?$4%_G{mc7M>HZwWiG-gQRUBs3vzb5P3H`)r4HxuT zAnsJ%hfcM<`$tJKQd;j^&KDHEJS)vd*(mkNAyt+JhtzB(WUN=6YWJH?!6h-!i%yb0 zA|KNwM%#rBsrIC$rPjJ5Z(f<^AvqG4er_1>ay;L|rqU%XjVG_Yo>IXtwXJi&79hnS zoFaiZnhPJg0FwoBwL`N*#o44*POm*w4aJQ@B^nO{T9^v~DZBAJqda;?A0%Im#yq3+ zC=Y&VxO9=r*}>KAiSPGEa2>Svw#f@Jlc*vJe0(^$kC!V2L`>$VdJGHMw#FRuy zM~L9>#y{_sMZf}f3w<+Z6j$@Pk*TFoT6vx|qn=x|}?;jG?R7N3RyxUq+`2_&w zW&~$b{5_NXi-&0V!j^tFt$Ei?SBr4n$>+egS7|kfdsZotv4J{47gj(5Y06;waf_@D zbpnRk@%h@Q+KjlX-KGZCVXa2}z1Qn%6e+!@tmczVD-uTgjYmleJfXYP18z6N7vS&> zcYjr^;VWQNF`09l7hyUJ{Pu6m;kkAd9&rgjvGAcpvab|60U zA*X3B!AakSEgrDP5jclVCdRa}CHTNBKUa`u&;hIAHbXEGK*|F1E|H{y=%t$SDF>jW zY0RNpltuM*HSvU(@4>_C_H|Tzj6=2!))XugG`5%7tUrJjZE-#3*KNk@MGgBk@eab^ zWmS$JUmw}+kA-W2L|z~13q#I1nJf-=i0EjxH$mA1aG zNBYV}>CN?osqNXFvtTe*w-*8Bc@Xlo9%gMSCaDSp zx@(FnD`w4qz*A%iFR)Agah-;0l~-|Z%mNw6UDct>S7tH~UTxIE!v$V-(O%l|V2s=- zyp_dG6wMu2n>0*>%!OHnbqPaxb%y06;2B|ckKdv`uwr@VHXGT*8g`M?Uaf=YVJop4 vm>Kao&KmJ`1z$P7=2G?L^>BdRv3P6rMsII1^~SZxch44?{`1GTpTGYfmE|0{ delta 1619 zcmW-hIqs}x0>np}X9rJucW_R?@&OGY&E9OyzGO7}4$V%|6U+@9z8g5R<`{DwAHaXP z4p923R8>EJ`}y1V|Nr>${a;`Dg68Ohy{hdoRBt+atE2OJ z)z9SlGJ}*p#xvRFQ(W`lC6s7m@ZnUoDrTgR$#=s3bMJs0dCRiIls((!QBOyE6>W76s23_>_;} zaXtutw8Q1G0Vu9Q{c#?y^cj76)H2Zm+FQWUF}m(<*z_&+z*occ?d9ZQfFvlD5l1E{ z4TNpRI}X~#;{{O%YFj~4F=nRZ9kWb1T7qP|AnOh;i5RW4qpZ8Ua)`~9w>M8~UbEZx zGvXAta3thLls{>o-HxbHflKM^RKmz0G0CMlyN4E&A!J_wx?ZN!6+Mc*wul5XWO>$^ zb%JJuP2@@5$d4joD%beW_>?xw>c-*BHuCM5sX30r3PsKK6U!l`H z4z7JGEfxv|4?8dqT9WmZXJQdG4;;GD%JUy!)>?52*srFRUyAc-AD)VKR7_b*Tk{3N z9K9$Trn!xcF8P)v@e>b*tEs`$m8yg*Y3*x?k!^K!mD}BmgObqh>(LD3oTJCc#9P7V zZ`hlCU)bh2RivCL?5(TWV!M;n#4XQ*Tf)YHNdm(7pgXi&xEJ)%CGA9f%p#iZmgRM=PHUk;$7N*T$Nj{bO$~3NkH6JnB_)=$mhpJqHL(z7@Q%5;j*o{)#raX$A xRABDFcpQY8v%Cwswil^eImmzGu1AxavC3zxeBFR4&G-|Z&FO#t`Tp~lzX6xe9SZ;e diff --git a/blueprints/__pycache__/auth.cpython-312.pyc b/blueprints/__pycache__/auth.cpython-312.pyc index 2a5fea6095a9867aae4ffa903ef65a90de1deba3..3183e55ff3dde999336c11ff9c9474d0ae30886e 100644 GIT binary patch delta 2766 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 delta 682 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 {% block title %}AI 视界{% endblock %} + @@ -18,8 +19,8 @@

{% endblock %} {% block scripts %} {% endblock %} \ No newline at end of file diff --git a/templates/orders.html b/templates/orders.html new file mode 100644 index 0000000..a91d21b --- /dev/null +++ b/templates/orders.html @@ -0,0 +1,148 @@ +{% extends "base.html" %} + +{% block title %}全员充值记录 - 管理后台{% endblock %} + +{% block content %} +
+
+ +
+
+

全员充值记录

+

+ + 管理和查询系统内所有用户的充值情况 +

+
+
+
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + +
用户信息订单详情积分/金额状态时间
+
+ +

正在获取记录...

+
+
+
+
+
+
+{% endblock %} + +{% block scripts %} + +{% endblock %} diff --git a/templates/recharge_history.html b/templates/recharge_history.html new file mode 100644 index 0000000..14d30dd --- /dev/null +++ b/templates/recharge_history.html @@ -0,0 +1,87 @@ +{% extends "base.html" %} + +{% block title %}充值记录 - AI 视界{% endblock %} + +{% block content %} +
+
+ +
+
+

充值记录

+

+ + 查看您的所有积分充值历史 +

+
+ + + 立即充值 + +
+ + +
+
+ + + + + + + + + + + + {% if orders %} + {% for order in orders %} + + + + + + + + {% endfor %} + {% else %} + + + + {% endif %} + +
订单号积分金额状态支付时间
+
+ {{ order.out_trade_no }} + Ali: {{ order.trade_no or '-' }} +
+
+
+
+ +
+ +{{ order.points }} +
+
+ ¥{{ order.amount }} + + {% if order.status == 'PAID' %} + 已完成 + {% elif order.status == 'PENDING' %} + 待支付 + {% else %} + 已取消 + {% endif %} + + {{ order.paid_at.strftime('%Y-%m-%d %H:%M') if order.paid_at else '-' }} +
+
+ +

暂无充值记录

+
+
+
+
+
+
+{% endblock %}