Files
pyGoEdge-UserPanel/billing/__pycache__/views.cpython-312.pyc

70 lines
12 KiB
Plaintext
Raw Normal View History

2025-11-18 03:36:49 +08:00
<EFBFBD>
<00>i<><00><00>P<00>ddlmZddlZddlmZddlmZddlmZmZddl m
Z
ddl m Z dd l mZdd
lmZdd lmZdd lmZdd lmZddlmZddlZddlZed<0F><00>Zedefd<11><04>Zedefd<12><04>Zdede de!fd<16>Z"d<17>Z#ed<18><00>Z$edefd<19><04>Z%ejLe'<27>Z(y)<1A>)<01>renderN)<01>login_required)<01>Sum)<02>get_object_or_404<30>redirect)<01>timezone)<01>messages<65>)<01>Invoice)<01>DomainTrafficDaily)<01>Decimal)<01> OperationLog)<01>SystemSettings<67><01> HttpResponsec <00>|<00>|jjd<01>}tjj |j
<00><02>}|r|j |<01><03>}|j d<04>}|jtd<05><00><06>}t|d||jd<08>xsd |xsd
ttd g<00>d <0C><04>S) N<>status)<01>user)rz -period_end<6E> amount_total)<01> total_amountzbilling/list.htmlrr<00><00>STATUS_CHOICES)<04>invoicesrr<00>status_choices) <0B>GET<45>getr <00>objects<74>filterr<00>order_by<62> aggregaterr<00>getattr)<05>requestr<00> invoices_qsr<00>totalss <20>$E:\Project\pygoedge\billing\views.py<70> list_billingr&s<><00><00> <14>[<5B>[<5B>_<EFBFBD>_<EFBFBD>X<EFBFBD> &<26>F<EFBFBD><19>/<2F>/<2F>(<28>(<28>g<EFBFBD>l<EFBFBD>l<EFBFBD>(<28>;<3B>K<EFBFBD> <0A>!<21>(<28>(<28><06>(<28>7<> <0B><1A>#<23>#<23>M<EFBFBD>2<>H<EFBFBD> <18> "<22> "<22><03>N<EFBFBD>0C<30> "<22> D<>F<EFBFBD> <11>'<27>.<2E><1C><1E>
<EFBFBD>
<EFBFBD>><3E>2<>7<>a<EFBFBD><18>,<2C>B<EFBFBD>!<21>'<27>+;<3B>R<EFBFBD>@<40> 1<06> <07><07><00>
invoice_idc<00><><00>tt|<01><01>}|j|jjk(s!|jj
s t d<02>S|jdk(<00>r|jjd<04>}|dk(r<>|jtjk(r<>tj|_
tj<00>|_|j!ddg<02><08> t"j$j'|jd d
|j<00><00>d |j(<00>d |j*<00>d |j,<00><00><06><0E>t5j6|d<10>t d|j<00><12>S|j8j;d<13>j=<00>}|j>}|j@}|jB}|j,}i} g}
|j(} |j*} |D]<5D>} | jDs<01>| jD| vs<01>tFj$jI| jD| | <0C><14>jKtMd<15><00><16>dxsd}tOtQtS|<0E><00>tQtSd<19><00>z d<1A>}|| | jD<|
jU| jV|d<1B><02><00><>tY|d||||||| |
| | d<1D>
<EFBFBD>S#t.$rt0j3d<0F>Y<00><01><>wxYw)N<><01>id<69> billing:list<73>POST<53>action<6F> mark_paidr<00>paid_at<61><01> update_fields<64>invoice_mark_paid<69>Invoice#zperiod=u→z; amount_total=<3D><04>actorr.<00>target<65>detailzoperation log write failedu账单已标记为已支付。<E4BB98>billing:detail<69>r(<00>domain)<03> domain_id<69>day__gte<74>day__lte<74>bytes)<01>br@ri@<40>)r;<00>gbzbilling/detail.html)
<EFBFBD>invoice<63>items<6D>
plan_total<EFBFBD> overage_total<61>
adjustmentr<00>traffic_by_domain<69> domain_stats<74> period_start<72>
period_end)-rr <00>user_idrr+<00>is_staffr<00>methodr-rr<00> STATUS_UNPAID<49> STATUS_PAIDr<00>nowr0<00>saverr<00>createrJrKr<00> Exception<6F>logger<65> exceptionr <00>successrD<00>select_related<65>all<6C>amount_plan_total<61>amount_overage_total<61>amount_adjustmentr<r rr r<00>roundr <00>str<74>appendr;r)r"r(rCr.rDrErFrGrrHrIrJrK<00>it<69> bytes_sumrBs r%<00>invoice_detailrb#s<><00><00><1F><07>J<EFBFBD>7<>G<EFBFBD> <13>O<EFBFBD>O<EFBFBD>w<EFBFBD>|<7C>|<7C><EFBFBD><EFBFBD> .<2E>'<27>,<2C>,<2C>2G<32>2G<32><17><0E>'<27>'<27><0E>~<7E>~<7E><16><1F><18><1C><1C>!<21>!<21>(<28>+<2B><06> <11>[<5B> <20>W<EFBFBD>^<5E>^<5E>w<EFBFBD>7L<37>7L<37>%L<>$<24>0<>0<>G<EFBFBD>N<EFBFBD>&<26>l<EFBFBD>l<EFBFBD>n<EFBFBD>G<EFBFBD>O<EFBFBD> <13>L<EFBFBD>L<EFBFBD><08>)<29>'<<3C>L<EFBFBD> =<3D> ?<3F><1C>$<24>$<24>+<2B>+<2B>!<21>,<2C>,<2C>.<2E>%<25>g<EFBFBD>j<EFBFBD>j<EFBFBD>\<5C>2<>$<24>W<EFBFBD>%9<>%9<>$:<3A>#<23>g<EFBFBD>>P<>>P<>=Q<>Q`<60>ah<61>au<61>au<61>`v<>w<> ,<2C><12> <15> <1C> <1C>W<EFBFBD>&F<> G<><1B>,<2C><17><1A><1A>D<> D<> <13>M<EFBFBD>M<EFBFBD> (<28> (<28><18> 2<> 6<> 6<> 8<>E<EFBFBD><18>*<2A>*<2A>J<EFBFBD><1B>0<>0<>M<EFBFBD><18>*<2A>*<2A>J<EFBFBD><1A>'<27>'<27>L<EFBFBD><1A><15><15>L<EFBFBD><1A>'<27>'<27>L<EFBFBD><18>#<23>#<23>J<EFBFBD><13><02> <0A><<3C><<3C>B<EFBFBD>L<EFBFBD>L<EFBFBD>0A<30>A<>*<2A>2<>2<>9<>9<>B<EFBFBD>L<EFBFBD>L<EFBFBD>[g<>r|<7C>9<>}<7D>H<02>H<02>KN<02>OV<02>KW<02>H<02>X<02>Y\<02>]<02>b<02>ab<02>I<EFBFBD><16>w<EFBFBD>s<EFBFBD>9<EFBFBD>~<7E>.<2E><17><13>Y<EFBFBD><1E>1H<31>H<>!<21>L<>B<EFBFBD>.0<EFBFBD> <1D>b<EFBFBD>l<EFBFBD>l<EFBFBD> +<2B> <18> <1F> <1F>2<EFBFBD>9<EFBFBD>9<EFBFBD>B<EFBFBD> ?<3F> @<40> <14> <12>'<27>0<><1A><16> <20>&<26> <20>$<24>.<2E>$<24>$<24> <20> 3<06> <07> <07><>+<1D> ?<3F><16> <20> <20>!=<3D>><3E> ?<3F>s<00>&A!K<00>K2<03>1K2c
<00><><00> <0B>tt||j<00><01>}|jtjk7rt d|j <00><03>Stjjd<04>j<00>}|jxsdjd<06>}|jxsd}|jxsd}|r|r|s-tj |d<07>t d|j <00><03>S|j"j%d<08>xsd }||d
|j <00><00>|j't)d <0B><00>|j't)d <0C><00>d |j <00><00>t+|j,<00>ddd<10> <09> dj/<00> fd<12>t1<00> <0B>D<00><00>dz|z}t3j4|j7d<14><00>j9<00>j;<00>} | <09> d<|dzt<j>jA<00> <0B>z}
tBjjE|jdd |j <00><00>|
<EFBFBD><18>t |
<EFBFBD>S#tF$r Yt |
<EFBFBD>SwxYw)N)r+rr9r:r+r<00>/u支付未配置<E9858D>type<70>alipay<61>INVzbilling:notifyzbilling:returnr4<00>PyGoEdge<67>MD5) <09>pidre<00> out_trade_no<6E>
notify_url<EFBFBD>
return_url<EFBFBD>name<6D>money<65>sitename<6D> sign_type<70>&c3<00>N<00>K<00>|]}|dvs<01><08>|dk7s<01>|<01>d<02>|<00><00><03><01><00>y<03>w)<04><02>signrqr<00>=N<>)<03>.0<EFBFBD>k<>paramss <20>r%<00> <genexpr>zinvoice_pay.<locals>.<genexpr>rs8<00><><00><><00>y<>N<EFBFBD>q<EFBFBD>a<EFBFBD>Od<4F>Fd<46>io<69>pq<70>ir<69>vx<76>ix<69>1<EFBFBD>#<23>Q<EFBFBD>v<EFBFBD>a<EFBFBD>y<EFBFBD>k<EFBFBD>*<2A>N<EFBFBD>s <00> %<01>%<01>%<01>&key=<3D>utf-8ruz /submit.php?<3F>invoice_pay_creater5)$rr rrrOrr+rrr<00>first<73>epay_api_base_url<72>rstrip<69>epay_pid<69>epay_keyr <00>errorrr<00>build_absolute_uri<72>reverser^r<00>join<69>sorted<65>hashlib<69>md5<64>encode<64> hexdigest<73>upper<65>urllib<69>parse<73> urlencoderrSrT) r"r(rC<00> settings_obj<62>apirj<00>key<65>pay_type<70>sign_srcru<00>urlrzs @r%<00> invoice_payr<79>Zs <00><><00><1F><07>J<EFBFBD>W<EFBFBD>\<5C>\<5C>J<>G<EFBFBD><0E>~<7E>~<7E><17>.<2E>.<2E>.<2E><17>(<28>W<EFBFBD>Z<EFBFBD>Z<EFBFBD>@<40>@<40>!<21>)<29>)<29>2<>2<>4<EFBFBD>8<>><3E>><3E>@<40>L<EFBFBD> <17> )<29> )<29> /<2F>R<EFBFBD>
7<EFBFBD>
7<EFBFBD><03>
<<3C>C<EFBFBD>
<16>
<1F>
<1F>
%<25>2<EFBFBD>C<EFBFBD>
<16>
<1F>
<1F>
%<25>2<EFBFBD>C<EFBFBD> <0F>C<EFBFBD>C<EFBFBD><10><0E><0E>w<EFBFBD> 1<>2<><17>(<28>W<EFBFBD>Z<EFBFBD>Z<EFBFBD>@<40>@<40><16>{<7B>{<7B><EFBFBD><EFBFBD>v<EFBFBD>&<26>2<>(<28>H<EFBFBD><12><18><1D>g<EFBFBD>j<EFBFBD>j<EFBFBD>\<5C>*<2A><1D>0<>0<><17>9I<39>1J<31>K<><1D>0<>0<><17>9I<39>1J<31>K<><1A>7<EFBFBD>:<3A>:<3A>,<2C>'<27><14>W<EFBFBD>)<29>)<29>*<2A><1E><1A>
<06>F<EFBFBD><13>x<EFBFBD>x<EFBFBD>y<>F<EFBFBD>6<EFBFBD>N<EFBFBD>y<>y<>}D<02>D<02>GJ<02>J<02>H<EFBFBD> <12>;<3B>;<3B>x<EFBFBD><EFBFBD><EFBFBD>w<EFBFBD>/<2F> 0<> :<3A> :<3A> <<3C> B<> B<> D<>D<EFBFBD><19>F<EFBFBD>6<EFBFBD>N<EFBFBD>
<0A><0E>
<1E><16><1C><1C>!7<>!7<><06>!?<3F>
?<3F>C<EFBFBD> <0A><14><1C><1C>#<23>#<23>'<27>,<2C>,<2C>?S<>^f<>gn<67>gq<67>gq<67>fr<66>\s<>|<>#<23> A<02> <14>C<EFBFBD>=<3D><18><> <15> <0A> <0C> <13>C<EFBFBD>=<3D><18> <0A>s<00> :I<00> I(<03>'I(rzr<><00>returnc<00><><00><06>|j<00>D<00><02>cic]\}}|dvs<01> |<03><01>|dk7s<01>||<03><02>c}}<02>dj<00>fd<04>t<00><06>D<00><00>dz|z}tj|j d<06><00>j <00>j<00>}||jd<07>xsdj<00>k(Scc}}w)Nrtrrrc3<00>2<00>K<00>|]}|<01>d<00>|<00><00><03><01><00>y<01>w)rvNrw)rxry<00>ps <20>r%r{z$_verify_epay_sign.<locals>.<genexpr>s <00><><00><><00>4<>)<29>Q<EFBFBD>a<EFBFBD>S<EFBFBD><01>!<21>A<EFBFBD>$<24><16>=<3D>)<29>s<00>r|r}ru) rDr<>r<>r<>r<>r<>r<>r<>r)rzr<>ry<00>v<>src<72>calcr<63>s @r%<00>_verify_epay_signr<6E>}s<><00><><00> <20>,<2C>,<2C>.<2E>i<>.<2E>$<24>!<21>Q<EFBFBD>A<EFBFBD>5J<35>,J<>q<EFBFBD>}<7D>ab<61>fh<66>ah<61><11>A<EFBFBD><14>.<2E>i<>A<EFBFBD>
<0A>(<28>(<28>4<>&<26><11>)<29>4<>
4<EFBFBD>w<EFBFBD>
><3E><13>
D<EFBFBD>C<EFBFBD> <12>;<3B>;<3B>s<EFBFBD>z<EFBFBD>z<EFBFBD>'<27>*<2A> +<2B> 5<> 5<> 7<> =<3D> =<3D> ?<3F>D<EFBFBD> <0F>F<EFBFBD>J<EFBFBD>J<EFBFBD>v<EFBFBD>&<26>,<2C>"<22>3<>3<>5<> 5<>5<><35> js<00> C<06>C<06>C<06>Cc<00><><00>tjjd<01>j<00>}|jxsd}t |j j<00><00>}|r t||<02>nd}|jd<04>xsd}|jd<05>xsd}|jd<06>xsd}|<04>r|jd<07><00>r
|<06>rt|jdd<02><00>}tjj|<08><08>j<00>} | r<>| jtj k(r<>t#| j$<00>t#|<07>k(r~tj&| _t)j*<00>| _| j/d d
g<02> <0B> t0jj3dd d | j4<00><00>|<05><0E>t9d<0F>St9d<10>S#t6$r Yt9d<0F>SwxYw)Nr+rFrk<00> trade_statusrorgr*rr0r1<00>invoice_paid_notifyr4r5<00>SUCCESS<53>FAIL)rrrrr<><00>dictrrDr<>r<00>
startswith<EFBFBD>int<6E>replacer rrrOr^rrPrrQr0rRrrSr+rTr)
r"r<>r<>rz<00>okrkr<>ro<00>inv_id<69>invs
r%<00>payment_notifyr<79><00>s<><00><00>!<21>)<29>)<29>2<>2<>4<EFBFBD>8<>><3E>><3E>@<40>L<EFBFBD>
<16>
<1F>
<1F>
%<25>2<EFBFBD>C<EFBFBD> <11>'<27>+<2B>+<2B>#<23>#<23>%<25> &<26>F<EFBFBD>,/<2F>
<1B>F<EFBFBD>C<EFBFBD>
(<28>U<EFBFBD>B<EFBFBD><19>:<3A>:<3A>n<EFBFBD>-<2D>3<><12>L<EFBFBD><19>:<3A>:<3A>n<EFBFBD>-<2D>3<><12>L<EFBFBD> <12>J<EFBFBD>J<EFBFBD>w<EFBFBD> <1F> %<25>2<EFBFBD>E<EFBFBD> <09>l<EFBFBD>%<25>%<25>e<EFBFBD>,<2C><1C><14>\<5C>)<29>)<29>%<25><12>4<>5<><06><15>o<EFBFBD>o<EFBFBD>$<24>$<24><06>$<24>/<2F>5<>5<>7<><03> <0E>3<EFBFBD>:<3A>:<3A><17>!6<>!6<>6<><12>3<EFBFBD>#<23>#<23>$<24><03>E<EFBFBD>
<EFBFBD>2<>$<24>0<>0<><03>
<EFBFBD>&<26>l<EFBFBD>l<EFBFBD>n<EFBFBD><03> <0B><13><08><08><08>)<29>'<<3C><08>=<3D><19> <20>(<28>(<28>/<2F>/<2F>d<EFBFBD>CX<43>ck<63>lo<6C>lr<6C>lr<6C>ks<6B>at<61>~J<02>/<2F>K<02>$<24>I<EFBFBD>.<2E>.<2E> <17><06> <1F><1F><>!<21><19><18>#<23>I<EFBFBD>.<2E>.<2E><19>s<00>0G<00> G0<03>/G0c<00>D<00>tj|d<01>td<02>S)NuQ支付流程已完成如账单仍显示未支付请稍后或刷新页面。r,)r <00>infor)r"s r%<00>payment_returnr<6E><00>s<00><00> <0C>M<EFBFBD>M<EFBFBD>'<27>n<>o<> <13>N<EFBFBD> #<23>#r'c
<00><><00>tt|<01><01>}|j|jjk(s!|jj
s t d<02>Sddl}ddlm }|d<05><06>}d|j<00>d<08>|d <|j|<05>}|jgd
<EFBFBD><01>|jjd <0B>j<00>D]}}|j|jr|jj nd |j"t%|j&<00>t%|j(<00>t%|j*<00>g<05><00>|S) Nr*r,rrztext/csv; charset=utf-8)<01> content_typezattachment; filename="invoice_z.csv"zContent-Disposition)<05>Domain<69> Descriptionz Quantity(GB)z
Unit Price<63>Amountr;r)rr rLrr+rMr<00>csv<73> django.httpr<00>writer<65>writerowrDrXrYr;rn<00> descriptionr^<00>quantity<74>
unit_price<EFBFBD>amount)r"r(rCr<>r<00>responser<65>r`s r%<00>invoice_detail_csvr<76><00>s<><00><00><1F><07>J<EFBFBD>7<>G<EFBFBD> <13>O<EFBFBD>O<EFBFBD>w<EFBFBD>|<7C>|<7C><EFBFBD><EFBFBD> .<2E>'<27>,<2C>,<2C>2G<32>2G<32><17><0E>'<27>'<27><0E>(<28><1B>)B<>C<>H<EFBFBD>(F<>w<EFBFBD>z<EFBFBD>z<EFBFBD>l<EFBFBD>RW<52>&X<>H<EFBFBD> "<22>#<23> <10>Z<EFBFBD>Z<EFBFBD><08> !<21>F<EFBFBD>
<EFBFBD>O<EFBFBD>O<EFBFBD>U<>V<><15>m<EFBFBD>m<EFBFBD>*<2A>*<2A>8<EFBFBD>4<>8<>8<>:<3A><02><0E><0F><0F> <20>i<EFBFBD>i<EFBFBD>B<EFBFBD>I<EFBFBD>I<EFBFBD>N<EFBFBD>N<EFBFBD>R<EFBFBD> <0E>N<EFBFBD>N<EFBFBD> <0F><02> <0B> <0B> <1C> <0F><02> <0A> <0A> <1E> <0F><02> <09> <09>N<EFBFBD> 
<EFBFBD> <0B>;<3B> <14>Or'))<29>django.shortcutsr<00>logging<6E>django.contrib.auth.decoratorsr<00>django.db.modelsrrr<00> django.utilsr<00>django.contribr <00>modelsr <00>domains.modelsr <00>decimalr <00> core.modelsrrr<>rr<><00> urllib.parser<65>r&r<>rbr<>r<>r^<00>boolr<6C>r<>r<>r<><00> getLogger<65>__name__rUrwr'r%<00><module>r<>s<><00><01>#<23><0E>9<> <20>8<>!<21>#<23><1B>-<2D><1B>$<24>&<26>$<24><0E><13><10> <07><10> <07><10>3<07><03>3<07><10>3<07>l<10><19>S<EFBFBD><19><10><19>D6<>d<EFBFBD>6<><13>6<><14>6<> <20>0<10>$<24><10>$<24>
<10><14>C<EFBFBD><14><10><14>*
<1B><17> <1A> <1A>8<EFBFBD> $<24>r'