存储过程.sql 3.0 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670286712867228673286742867528676286772867828679286802868128682286832868428685286862868728688286892869028691286922869328694286952869628697286982869928700287012870228703287042870528706287072870828709287102871128712287132871428715287162871728718287192872028721287222872328724287252872628727287282872928730287312873228733287342873528736287372873828739287402874128742287432874428745287462874728748287492875028751287522875328754287552875628757287582875928760287612876228763287642876528766287672876828769287702877128772287732877428775287762877728778287792878028781287822878328784287852878628787287882878928790287912879228793287942879528796287972879828799288002880128802288032880428805288062880728808288092881028811288122881328814288152881628817288182881928820288212882228823288242882528826288272882828829288302883128832288332883428835288362883728838288392884028841288422884328844288452884628847288482884928850288512885228853288542885528856288572885828859288602886128862288632886428865288662886728868288692887028871288722887328874288752887628877288782887928880288812888228883288842888528886288872888828889288902889128892288932889428895288962889728898288992890028901289022890328904289052890628907289082890928910289112891228913289142891528916289172891828919289202892128922289232892428925289262892728928289292893028931289322893328934289352893628937289382893928940289412894228943289442894528946289472894828949289502895128952289532895428955289562895728958289592896028961289622896328964289652896628967289682896928970289712897228973289742897528976289772897828979289802898128982289832898428985289862898728988289892899028991289922899328994289952899628997289982899929000290012900229003290042900529006290072900829009290102901129012290132901429015290162901729018290192902029021290222902329024290252902629027290282902929030290312903229033290342903529036290372903829039290402904129042290432904429045290462904729048290492905029051290522905329054290552905629057290582905929060290612906229063290642906529066290672906829069290702907129072290732907429075290762907729078290792908029081290822908329084290852908629087290882908929090290912909229093290942909529096290972909829099291002910129102291032910429105291062910729108291092911029111291122911329114291152911629117291182911929120291212912229123291242912529126291272912829129291302913129132291332913429135291362913729138291392914029141291422914329144291452914629147291482914929150291512915229153291542915529156291572915829159291602916129162291632916429165291662916729168291692917029171291722917329174291752917629177291782917929180291812918229183291842918529186291872918829189291902919129192291932919429195291962919729198291992920029201292022920329204292052920629207292082920929210292112921229213292142921529216292172921829219292202922129222292232922429225292262922729228292292923029231292322923329234292352923629237292382923929240292412924229243292442924529246292472924829249292502925129252292532925429255292562925729258292592926029261292622926329264292652926629267292682926929270292712927229273292742927529276292772927829279292802928129282292832928429285292862928729288292892929029291292922929329294292952929629297292982929929300293012930229303293042930529306293072930829309293102931129312293132931429315293162931729318293192932029321293222932329324293252932629327293282932929330293312933229333293342933529336293372933829339293402934129342293432934429345293462934729348293492935029351293522935329354293552935629357293582935929360293612936229363293642936529366293672936829369293702937129372293732937429375293762937729378293792938029381293822938329384293852938629387293882938929390293912939229393293942939529396293972939829399294002940129402294032940429405294062940729408294092941029411294122941329414294152941629417294182941929420294212942229423294242942529426294272942829429294302943129432294332943429435294362943729438294392944029441294422944329444294452944629447294482944929450294512945229453294542945529456294572945829459294602946129462294632946429465294662946729468294692947029471294722947329474294752947629477294782947929480294812948229483294842948529486294872948829489294902949129492294932949429495294962949729498294992950029501295022950329504295052950629507295082950929510295112951229513295142951529516295172951829519295202952129522295232952429525295262952729528295292953029531295322953329534295352953629537295382953929540295412954229543295442954529546295472954829549295502955129552295532955429555295562955729558295592956029561295622956329564295652956629567295682956929570295712957229573295742957529576295772957829579295802958129582295832958429585295862958729588295892959029591295922959329594295952959629597295982959929600296012960229603296042960529606296072960829609296102961129612296132961429615296162961729618296192962029621296222962329624296252962629627296282962929630296312963229633296342963529636296372963829639296402964129642296432964429645296462964729648296492965029651296522965329654296552965629657296582965929660296612966229663296642966529666296672966829669296702967129672296732967429675296762967729678296792968029681296822968329684296852968629687296882968929690296912969229693296942969529696296972969829699297002970129702297032970429705297062970729708297092971029711297122971329714297152971629717297182971929720297212972229723297242972529726297272972829729297302973129732297332973429735297362973729738297392974029741297422974329744297452974629747297482974929750297512975229753297542975529756297572975829759297602976129762297632976429765297662976729768297692977029771297722977329774297752977629777297782977929780297812978229783297842978529786297872978829789297902979129792297932979429795297962979729798297992980029801298022980329804298052980629807298082980929810298112981229813298142981529816298172981829819298202982129822298232982429825298262982729828298292983029831298322983329834298352983629837298382983929840298412984229843298442984529846298472984829849298502985129852298532985429855298562985729858298592986029861298622986329864298652986629867298682986929870298712987229873298742987529876298772987829879298802988129882298832988429885298862988729888298892989029891298922989329894298952989629897298982989929900299012990229903299042990529906299072990829909299102991129912299132991429915299162991729918299192992029921299222992329924299252992629927299282992929930299312993229933299342993529936299372993829939299402994129942299432994429945299462994729948299492995029951299522995329954299552995629957299582995929960299612996229963299642996529966299672996829969299702997129972299732997429975299762997729978299792998029981299822998329984299852998629987299882998929990299912999229993299942999529996299972999829999300003000130002300033000430005300063000730008300093001030011300123001330014300153001630017300183001930020300213002230023300243002530026300273002830029300303003130032300333003430035300363003730038300393004030041300423004330044300453004630047300483004930050300513005230053300543005530056300573005830059300603006130062300633006430065300663006730068300693007030071300723007330074300753007630077300783007930080300813008230083300843008530086300873008830089300903009130092300933009430095300963009730098300993010030101301023010330104301053010630107301083010930110301113011230113301143011530116301173011830119301203012130122301233012430125301263012730128301293013030131301323013330134301353013630137301383013930140301413014230143301443014530146301473014830149301503015130152301533015430155301563015730158301593016030161301623016330164301653016630167301683016930170301713017230173301743017530176301773017830179301803018130182301833018430185301863018730188301893019030191301923019330194301953019630197301983019930200302013020230203302043020530206302073020830209302103021130212302133021430215302163021730218302193022030221302223022330224302253022630227302283022930230302313023230233302343023530236302373023830239302403024130242302433024430245302463024730248302493025030251302523025330254302553025630257302583025930260302613026230263302643026530266302673026830269302703027130272302733027430275302763027730278302793028030281302823028330284302853028630287302883028930290302913029230293302943029530296302973029830299303003030130302303033030430305303063030730308303093031030311303123031330314303153031630317303183031930320303213032230323303243032530326303273032830329303303033130332303333033430335303363033730338303393034030341303423034330344303453034630347303483034930350303513035230353303543035530356303573035830359303603036130362303633036430365303663036730368303693037030371303723037330374303753037630377303783037930380303813038230383303843038530386303873038830389303903039130392303933039430395303963039730398303993040030401304023040330404304053040630407304083040930410304113041230413304143041530416304173041830419304203042130422304233042430425304263042730428304293043030431304323043330434304353043630437304383043930440304413044230443304443044530446304473044830449304503045130452304533045430455304563045730458304593046030461304623046330464304653046630467304683046930470304713047230473304743047530476304773047830479304803048130482304833048430485304863048730488304893049030491304923049330494304953049630497304983049930500305013050230503305043050530506305073050830509305103051130512305133051430515305163051730518305193052030521305223052330524305253052630527305283052930530305313053230533305343053530536305373053830539305403054130542305433054430545305463054730548305493055030551305523055330554305553055630557305583055930560305613056230563305643056530566305673056830569305703057130572305733057430575305763057730578305793058030581305823058330584305853058630587305883058930590305913059230593305943059530596305973059830599306003060130602306033060430605306063060730608306093061030611306123061330614306153061630617306183061930620306213062230623306243062530626306273062830629306303063130632306333063430635306363063730638306393064030641306423064330644306453064630647306483064930650306513065230653306543065530656306573065830659306603066130662306633066430665306663066730668306693067030671306723067330674306753067630677306783067930680306813068230683306843068530686306873068830689306903069130692306933069430695306963069730698306993070030701307023070330704307053070630707307083070930710307113071230713307143071530716307173071830719307203072130722307233072430725307263072730728307293073030731307323073330734307353073630737307383073930740307413074230743307443074530746307473074830749307503075130752307533075430755307563075730758307593076030761307623076330764307653076630767307683076930770307713077230773307743077530776307773077830779307803078130782307833078430785307863078730788307893079030791307923079330794307953079630797307983079930800308013080230803308043080530806308073080830809308103081130812308133081430815308163081730818308193082030821308223082330824308253082630827308283082930830308313083230833308343083530836308373083830839308403084130842308433084430845308463084730848308493085030851308523085330854308553085630857308583085930860308613086230863308643086530866308673086830869308703087130872308733087430875308763087730878308793088030881308823088330884308853088630887308883088930890308913089230893308943089530896308973089830899309003090130902309033090430905309063090730908309093091030911309123091330914309153091630917309183091930920309213092230923309243092530926309273092830929309303093130932309333093430935309363093730938309393094030941309423094330944309453094630947309483094930950309513095230953309543095530956309573095830959309603096130962309633096430965309663096730968309693097030971309723097330974309753097630977309783097930980309813098230983309843098530986309873098830989309903099130992309933099430995309963099730998309993100031001310023100331004310053100631007310083100931010310113101231013310143101531016310173101831019310203102131022310233102431025310263102731028310293103031031310323103331034310353103631037310383103931040310413104231043310443104531046310473104831049310503105131052310533105431055310563105731058310593106031061310623106331064310653106631067310683106931070310713107231073310743107531076310773107831079310803108131082310833108431085310863108731088310893109031091310923109331094310953109631097310983109931100311013110231103311043110531106311073110831109311103111131112311133111431115311163111731118311193112031121311223112331124311253112631127311283112931130311313113231133311343113531136311373113831139311403114131142311433114431145311463114731148311493115031151311523115331154311553115631157311583115931160311613116231163311643116531166311673116831169311703117131172311733117431175311763117731178311793118031181311823118331184311853118631187311883118931190311913119231193311943119531196311973119831199312003120131202312033120431205312063120731208312093121031211312123121331214312153121631217312183121931220312213122231223312243122531226312273122831229312303123131232312333123431235312363123731238312393124031241312423124331244312453124631247312483124931250312513125231253312543125531256312573125831259312603126131262312633126431265312663126731268312693127031271312723127331274312753127631277312783127931280312813128231283312843128531286312873128831289312903129131292312933129431295312963129731298312993130031301313023130331304313053130631307313083130931310313113131231313313143131531316313173131831319313203132131322313233132431325313263132731328313293133031331313323133331334313353133631337313383133931340313413134231343313443134531346313473134831349313503135131352313533135431355313563135731358313593136031361313623136331364313653136631367313683136931370313713137231373313743137531376313773137831379313803138131382313833138431385313863138731388313893139031391313923139331394313953139631397313983139931400314013140231403314043140531406314073140831409314103141131412314133141431415314163141731418314193142031421314223142331424314253142631427314283142931430314313143231433314343143531436314373143831439314403144131442314433144431445314463144731448314493145031451314523145331454314553145631457314583145931460314613146231463314643146531466314673146831469314703147131472314733147431475314763147731478314793148031481314823148331484314853148631487314883148931490314913149231493314943149531496314973149831499315003150131502315033150431505315063150731508315093151031511315123151331514315153151631517315183151931520315213152231523315243152531526315273152831529315303153131532315333153431535315363153731538315393154031541315423154331544315453154631547315483154931550315513155231553315543155531556315573155831559315603156131562315633156431565315663156731568315693157031571315723157331574315753157631577315783157931580315813158231583315843158531586315873158831589315903159131592315933159431595315963159731598315993160031601316023160331604316053160631607316083160931610316113161231613316143161531616316173161831619316203162131622316233162431625316263162731628316293163031631316323163331634316353163631637316383163931640316413164231643316443164531646316473164831649316503165131652316533165431655316563165731658316593166031661316623166331664316653166631667316683166931670316713167231673316743167531676316773167831679316803168131682316833168431685316863168731688316893169031691316923169331694316953169631697316983169931700317013170231703317043170531706317073170831709317103171131712317133171431715317163171731718317193172031721317223172331724317253172631727317283172931730317313173231733317343173531736317373173831739317403174131742317433174431745317463174731748317493175031751317523175331754317553175631757317583175931760317613176231763317643176531766317673176831769317703177131772317733177431775317763177731778317793178031781317823178331784317853178631787317883178931790317913179231793317943179531796317973179831799318003180131802318033180431805318063180731808318093181031811318123181331814318153181631817318183181931820318213182231823318243182531826318273182831829318303183131832318333183431835318363183731838318393184031841318423184331844318453184631847318483184931850318513185231853318543185531856318573185831859318603186131862318633186431865318663186731868318693187031871318723187331874318753187631877318783187931880318813188231883318843188531886318873188831889318903189131892318933189431895318963189731898318993190031901319023190331904319053190631907319083190931910319113191231913319143191531916319173191831919319203192131922319233192431925319263192731928319293193031931319323193331934319353193631937319383193931940319413194231943319443194531946319473194831949319503195131952319533195431955319563195731958319593196031961319623196331964319653196631967319683196931970319713197231973319743197531976319773197831979319803198131982319833198431985319863198731988319893199031991319923199331994319953199631997319983199932000320013200232003320043200532006320073200832009320103201132012320133201432015320163201732018320193202032021320223202332024320253202632027320283202932030320313203232033320343203532036320373203832039320403204132042320433204432045320463204732048320493205032051320523205332054320553205632057320583205932060320613206232063320643206532066320673206832069320703207132072320733207432075320763207732078320793208032081320823208332084320853208632087320883208932090320913209232093320943209532096320973209832099321003210132102321033210432105321063210732108321093211032111321123211332114321153211632117321183211932120321213212232123321243212532126321273212832129321303213132132321333213432135321363213732138321393214032141321423214332144321453214632147321483214932150321513215232153321543215532156321573215832159321603216132162321633216432165321663216732168321693217032171321723217332174321753217632177321783217932180321813218232183321843218532186321873218832189321903219132192321933219432195321963219732198321993220032201322023220332204322053220632207322083220932210322113221232213322143221532216322173221832219322203222132222322233222432225322263222732228322293223032231322323223332234322353223632237322383223932240322413224232243322443224532246322473224832249322503225132252322533225432255322563225732258322593226032261322623226332264322653226632267322683226932270322713227232273322743227532276322773227832279322803228132282322833228432285322863228732288322893229032291322923229332294322953229632297322983229932300323013230232303323043230532306323073230832309323103231132312323133231432315323163231732318323193232032321323223232332324323253232632327323283232932330323313233232333323343233532336323373233832339323403234132342323433234432345323463234732348323493235032351323523235332354323553235632357323583235932360323613236232363323643236532366323673236832369323703237132372323733237432375323763237732378323793238032381323823238332384323853238632387323883238932390323913239232393323943239532396323973239832399324003240132402324033240432405324063240732408324093241032411324123241332414324153241632417324183241932420324213242232423324243242532426324273242832429324303243132432324333243432435324363243732438324393244032441324423244332444324453244632447324483244932450324513245232453324543245532456324573245832459324603246132462324633246432465324663246732468324693247032471324723247332474324753247632477324783247932480324813248232483324843248532486324873248832489324903249132492324933249432495324963249732498324993250032501325023250332504325053250632507325083250932510325113251232513325143251532516325173251832519325203252132522325233252432525325263252732528325293253032531325323253332534325353253632537325383253932540325413254232543325443254532546325473254832549325503255132552325533255432555325563255732558325593256032561325623256332564325653256632567325683256932570325713257232573325743257532576325773257832579325803258132582325833258432585325863258732588325893259032591325923259332594325953259632597325983259932600326013260232603326043260532606326073260832609326103261132612326133261432615326163261732618326193262032621326223262332624326253262632627326283262932630326313263232633326343263532636326373263832639326403264132642326433264432645326463264732648326493265032651326523265332654326553265632657326583265932660326613266232663326643266532666326673266832669326703267132672326733267432675326763267732678326793268032681326823268332684326853268632687326883268932690326913269232693326943269532696326973269832699327003270132702327033270432705327063270732708327093271032711327123271332714327153271632717327183271932720327213272232723327243272532726327273272832729327303273132732327333273432735327363273732738327393274032741327423274332744327453274632747327483274932750327513275232753327543275532756327573275832759327603276132762327633276432765327663276732768327693277032771327723277332774327753277632777327783277932780327813278232783327843278532786327873278832789327903279132792327933279432795327963279732798327993280032801328023280332804328053280632807328083280932810328113281232813328143281532816328173281832819328203282132822328233282432825328263282732828328293283032831328323283332834328353283632837328383283932840328413284232843328443284532846328473284832849328503285132852328533285432855328563285732858328593286032861328623286332864328653286632867328683286932870328713287232873328743287532876328773287832879328803288132882328833288432885328863288732888328893289032891328923289332894328953289632897328983289932900329013290232903329043290532906329073290832909329103291132912329133291432915329163291732918329193292032921329223292332924329253292632927329283292932930329313293232933329343293532936329373293832939329403294132942329433294432945329463294732948329493295032951329523295332954329553295632957329583295932960329613296232963329643296532966329673296832969329703297132972329733297432975329763297732978329793298032981329823298332984329853298632987329883298932990329913299232993329943299532996329973299832999330003300133002330033300433005330063300733008330093301033011330123301333014330153301633017330183301933020330213302233023330243302533026330273302833029330303303133032330333303433035330363303733038330393304033041330423304333044330453304633047330483304933050330513305233053330543305533056330573305833059330603306133062330633306433065330663306733068330693307033071330723307333074330753307633077330783307933080330813308233083330843308533086330873308833089330903309133092330933309433095330963309733098330993310033101331023310333104331053310633107331083310933110331113311233113331143311533116331173311833119331203312133122331233312433125331263312733128331293313033131331323313333134331353313633137331383313933140331413314233143331443314533146331473314833149331503315133152331533315433155331563315733158331593316033161331623316333164331653316633167331683316933170331713317233173331743317533176331773317833179331803318133182331833318433185331863318733188331893319033191331923319333194331953319633197331983319933200332013320233203332043320533206332073320833209332103321133212332133321433215332163321733218332193322033221332223322333224332253322633227332283322933230332313323233233332343323533236332373323833239332403324133242332433324433245332463324733248332493325033251332523325333254332553325633257332583325933260332613326233263332643326533266332673326833269332703327133272332733327433275332763327733278332793328033281332823328333284332853328633287332883328933290332913329233293332943329533296332973329833299333003330133302333033330433305333063330733308333093331033311333123331333314333153331633317333183331933320333213332233323333243332533326333273332833329333303333133332333333333433335333363333733338333393334033341333423334333344333453334633347333483334933350333513335233353333543335533356333573335833359333603336133362333633336433365333663336733368333693337033371333723337333374333753337633377333783337933380333813338233383333843338533386333873338833389333903339133392333933339433395333963339733398333993340033401334023340333404334053340633407334083340933410334113341233413334143341533416334173341833419334203342133422334233342433425334263342733428334293343033431334323343333434334353343633437334383343933440334413344233443334443344533446334473344833449334503345133452334533345433455334563345733458334593346033461334623346333464334653346633467334683346933470334713347233473334743347533476334773347833479334803348133482334833348433485334863348733488334893349033491334923349333494334953349633497334983349933500335013350233503335043350533506335073350833509335103351133512335133351433515335163351733518335193352033521335223352333524335253352633527335283352933530335313353233533335343353533536335373353833539335403354133542335433354433545335463354733548335493355033551335523355333554335553355633557335583355933560335613356233563335643356533566335673356833569335703357133572335733357433575335763357733578335793358033581335823358333584335853358633587335883358933590335913359233593335943359533596335973359833599336003360133602336033360433605336063360733608336093361033611336123361333614336153361633617336183361933620336213362233623336243362533626336273362833629336303363133632336333363433635336363363733638336393364033641336423364333644336453364633647336483364933650336513365233653336543365533656336573365833659336603366133662336633366433665336663366733668336693367033671336723367333674336753367633677336783367933680336813368233683336843368533686336873368833689336903369133692336933369433695336963369733698336993370033701337023370333704337053370633707337083370933710337113371233713337143371533716337173371833719337203372133722337233372433725337263372733728337293373033731337323373333734337353373633737337383373933740337413374233743337443374533746337473374833749337503375133752337533375433755337563375733758337593376033761337623376333764337653376633767337683376933770337713377233773337743377533776337773377833779337803378133782337833378433785337863378733788337893379033791337923379333794337953379633797337983379933800338013380233803338043380533806338073380833809338103381133812338133381433815338163381733818338193382033821338223382333824338253382633827338283382933830338313383233833338343383533836338373383833839338403384133842338433384433845338463384733848338493385033851338523385333854338553385633857338583385933860338613386233863338643386533866338673386833869338703387133872338733387433875338763387733878338793388033881338823388333884338853388633887338883388933890338913389233893338943389533896338973389833899339003390133902339033390433905339063390733908339093391033911339123391333914339153391633917339183391933920339213392233923339243392533926339273392833929339303393133932339333393433935339363393733938339393394033941339423394333944339453394633947339483394933950339513395233953339543395533956339573395833959339603396133962339633396433965339663396733968339693397033971339723397333974339753397633977339783397933980339813398233983339843398533986339873398833989339903399133992339933399433995339963399733998339993400034001340023400334004340053400634007340083400934010340113401234013340143401534016340173401834019340203402134022340233402434025340263402734028340293403034031340323403334034340353403634037340383403934040340413404234043340443404534046340473404834049340503405134052340533405434055340563405734058340593406034061340623406334064340653406634067340683406934070340713407234073340743407534076340773407834079340803408134082340833408434085340863408734088340893409034091340923409334094340953409634097340983409934100341013410234103341043410534106341073410834109341103411134112341133411434115341163411734118341193412034121341223412334124341253412634127341283412934130341313413234133341343413534136341373413834139341403414134142341433414434145341463414734148341493415034151341523415334154341553415634157341583415934160341613416234163341643416534166341673416834169341703417134172341733417434175341763417734178341793418034181341823418334184341853418634187341883418934190341913419234193341943419534196341973419834199342003420134202342033420434205342063420734208342093421034211342123421334214342153421634217342183421934220342213422234223342243422534226342273422834229342303423134232342333423434235342363423734238342393424034241342423424334244342453424634247342483424934250342513425234253342543425534256342573425834259342603426134262342633426434265342663426734268342693427034271342723427334274342753427634277342783427934280342813428234283342843428534286342873428834289342903429134292342933429434295342963429734298342993430034301343023430334304343053430634307343083430934310343113431234313343143431534316343173431834319343203432134322343233432434325343263432734328343293433034331343323433334334343353433634337343383433934340343413434234343343443434534346343473434834349343503435134352343533435434355343563435734358343593436034361343623436334364343653436634367343683436934370343713437234373343743437534376343773437834379343803438134382343833438434385343863438734388343893439034391343923439334394343953439634397343983439934400344013440234403344043440534406344073440834409344103441134412344133441434415344163441734418344193442034421344223442334424344253442634427344283442934430344313443234433344343443534436344373443834439344403444134442344433444434445344463444734448344493445034451344523445334454344553445634457344583445934460344613446234463344643446534466344673446834469344703447134472344733447434475344763447734478344793448034481344823448334484344853448634487344883448934490344913449234493344943449534496344973449834499345003450134502345033450434505345063450734508345093451034511345123451334514345153451634517345183451934520345213452234523345243452534526345273452834529345303453134532345333453434535345363453734538345393454034541345423454334544345453454634547345483454934550345513455234553345543455534556345573455834559345603456134562345633456434565345663456734568345693457034571345723457334574345753457634577345783457934580345813458234583345843458534586345873458834589345903459134592345933459434595345963459734598345993460034601346023460334604346053460634607346083460934610346113461234613346143461534616346173461834619346203462134622346233462434625346263462734628346293463034631346323463334634346353463634637346383463934640346413464234643346443464534646346473464834649346503465134652346533465434655346563465734658346593466034661346623466334664346653466634667346683466934670346713467234673346743467534676346773467834679346803468134682346833468434685346863468734688346893469034691346923469334694346953469634697346983469934700347013470234703347043470534706347073470834709347103471134712347133471434715347163471734718347193472034721347223472334724347253472634727347283472934730347313473234733347343473534736347373473834739347403474134742347433474434745347463474734748347493475034751347523475334754347553475634757347583475934760347613476234763347643476534766347673476834769347703477134772347733477434775347763477734778347793478034781347823478334784347853478634787347883478934790347913479234793347943479534796347973479834799348003480134802348033480434805348063480734808348093481034811348123481334814348153481634817348183481934820348213482234823348243482534826348273482834829348303483134832348333483434835348363483734838348393484034841348423484334844348453484634847348483484934850348513485234853348543485534856348573485834859348603486134862348633486434865348663486734868348693487034871348723487334874348753487634877348783487934880348813488234883348843488534886348873488834889348903489134892348933489434895348963489734898348993490034901349023490334904349053490634907349083490934910349113491234913349143491534916349173491834919349203492134922349233492434925349263492734928349293493034931349323493334934349353493634937349383493934940349413494234943349443494534946349473494834949349503495134952349533495434955349563495734958349593496034961349623496334964349653496634967349683496934970349713497234973349743497534976349773497834979349803498134982349833498434985349863498734988349893499034991349923499334994349953499634997349983499935000350013500235003350043500535006350073500835009350103501135012350133501435015350163501735018350193502035021350223502335024350253502635027350283502935030350313503235033350343503535036350373503835039350403504135042350433504435045350463504735048350493505035051350523505335054350553505635057350583505935060350613506235063350643506535066350673506835069350703507135072350733507435075350763507735078350793508035081350823508335084350853508635087350883508935090350913509235093350943509535096350973509835099351003510135102351033510435105351063510735108351093511035111351123511335114351153511635117351183511935120351213512235123351243512535126351273512835129351303513135132351333513435135351363513735138351393514035141351423514335144351453514635147351483514935150351513515235153351543515535156351573515835159351603516135162351633516435165351663516735168351693517035171351723517335174351753517635177351783517935180351813518235183351843518535186351873518835189351903519135192351933519435195351963519735198351993520035201352023520335204352053520635207352083520935210352113521235213352143521535216352173521835219352203522135222352233522435225352263522735228352293523035231352323523335234352353523635237352383523935240352413524235243352443524535246352473524835249352503525135252352533525435255352563525735258352593526035261352623526335264352653526635267352683526935270352713527235273352743527535276352773527835279352803528135282352833528435285352863528735288352893529035291352923529335294352953529635297352983529935300353013530235303353043530535306353073530835309353103531135312353133531435315353163531735318353193532035321353223532335324353253532635327353283532935330353313533235333353343533535336353373533835339353403534135342353433534435345353463534735348353493535035351353523535335354353553535635357353583535935360353613536235363353643536535366353673536835369353703537135372353733537435375353763537735378353793538035381353823538335384353853538635387353883538935390353913539235393353943539535396353973539835399354003540135402354033540435405354063540735408354093541035411354123541335414354153541635417354183541935420354213542235423354243542535426354273542835429354303543135432354333543435435354363543735438354393544035441354423544335444354453544635447354483544935450354513545235453354543545535456354573545835459354603546135462354633546435465354663546735468354693547035471354723547335474354753547635477354783547935480354813548235483354843548535486354873548835489354903549135492354933549435495354963549735498354993550035501355023550335504355053550635507355083550935510355113551235513355143551535516355173551835519355203552135522355233552435525355263552735528355293553035531355323553335534355353553635537355383553935540355413554235543355443554535546355473554835549355503555135552355533555435555355563555735558355593556035561355623556335564355653556635567355683556935570355713557235573355743557535576355773557835579355803558135582355833558435585355863558735588355893559035591355923559335594355953559635597355983559935600356013560235603356043560535606356073560835609356103561135612356133561435615356163561735618356193562035621356223562335624356253562635627356283562935630356313563235633356343563535636356373563835639356403564135642356433564435645356463564735648356493565035651356523565335654356553565635657356583565935660356613566235663356643566535666356673566835669356703567135672356733567435675356763567735678356793568035681356823568335684356853568635687356883568935690356913569235693356943569535696356973569835699357003570135702357033570435705357063570735708357093571035711357123571335714357153571635717357183571935720357213572235723357243572535726357273572835729357303573135732357333573435735357363573735738357393574035741357423574335744357453574635747357483574935750357513575235753357543575535756357573575835759357603576135762357633576435765357663576735768357693577035771357723577335774357753577635777357783577935780357813578235783357843578535786357873578835789357903579135792357933579435795357963579735798357993580035801358023580335804358053580635807358083580935810358113581235813358143581535816358173581835819358203582135822358233582435825358263582735828358293583035831358323583335834358353583635837358383583935840358413584235843358443584535846358473584835849358503585135852358533585435855358563585735858358593586035861358623586335864358653586635867358683586935870358713587235873358743587535876358773587835879358803588135882358833588435885358863588735888358893589035891358923589335894358953589635897358983589935900359013590235903359043590535906359073590835909359103591135912359133591435915359163591735918359193592035921359223592335924359253592635927359283592935930359313593235933359343593535936359373593835939359403594135942359433594435945359463594735948359493595035951359523595335954359553595635957359583595935960359613596235963359643596535966359673596835969359703597135972359733597435975359763597735978359793598035981359823598335984359853598635987359883598935990359913599235993359943599535996359973599835999360003600136002360033600436005360063600736008360093601036011360123601336014360153601636017360183601936020360213602236023360243602536026360273602836029360303603136032360333603436035360363603736038360393604036041360423604336044360453604636047360483604936050360513605236053360543605536056360573605836059360603606136062360633606436065360663606736068360693607036071360723607336074360753607636077360783607936080360813608236083360843608536086360873608836089360903609136092360933609436095360963609736098360993610036101361023610336104361053610636107361083610936110361113611236113361143611536116361173611836119361203612136122361233612436125361263612736128361293613036131361323613336134361353613636137361383613936140361413614236143361443614536146361473614836149361503615136152361533615436155361563615736158361593616036161361623616336164361653616636167361683616936170361713617236173361743617536176361773617836179361803618136182361833618436185361863618736188361893619036191361923619336194361953619636197361983619936200362013620236203362043620536206362073620836209362103621136212362133621436215362163621736218362193622036221362223622336224362253622636227362283622936230362313623236233362343623536236362373623836239362403624136242362433624436245362463624736248362493625036251362523625336254362553625636257362583625936260362613626236263362643626536266362673626836269362703627136272362733627436275362763627736278362793628036281362823628336284362853628636287362883628936290362913629236293362943629536296362973629836299363003630136302363033630436305363063630736308363093631036311363123631336314363153631636317363183631936320363213632236323363243632536326363273632836329363303633136332363333633436335363363633736338363393634036341363423634336344363453634636347363483634936350363513635236353363543635536356363573635836359363603636136362363633636436365363663636736368363693637036371363723637336374363753637636377363783637936380363813638236383363843638536386363873638836389363903639136392363933639436395363963639736398363993640036401364023640336404364053640636407364083640936410364113641236413364143641536416364173641836419364203642136422364233642436425364263642736428364293643036431364323643336434364353643636437364383643936440364413644236443364443644536446364473644836449364503645136452364533645436455364563645736458364593646036461364623646336464364653646636467364683646936470364713647236473364743647536476364773647836479364803648136482364833648436485364863648736488364893649036491364923649336494364953649636497364983649936500365013650236503365043650536506365073650836509365103651136512365133651436515365163651736518365193652036521365223652336524365253652636527365283652936530365313653236533365343653536536365373653836539365403654136542365433654436545365463654736548365493655036551365523655336554365553655636557365583655936560365613656236563365643656536566365673656836569365703657136572365733657436575365763657736578365793658036581365823658336584365853658636587365883658936590365913659236593365943659536596365973659836599366003660136602366033660436605366063660736608366093661036611366123661336614366153661636617366183661936620366213662236623366243662536626366273662836629366303663136632366333663436635366363663736638366393664036641366423664336644366453664636647366483664936650366513665236653366543665536656366573665836659366603666136662366633666436665366663666736668366693667036671366723667336674366753667636677366783667936680366813668236683366843668536686366873668836689366903669136692366933669436695366963669736698366993670036701367023670336704367053670636707367083670936710367113671236713367143671536716367173671836719367203672136722367233672436725367263672736728367293673036731367323673336734367353673636737367383673936740367413674236743367443674536746367473674836749367503675136752367533675436755367563675736758367593676036761367623676336764367653676636767367683676936770367713677236773367743677536776367773677836779367803678136782367833678436785367863678736788367893679036791367923679336794367953679636797367983679936800368013680236803368043680536806368073680836809368103681136812368133681436815368163681736818368193682036821368223682336824368253682636827368283682936830368313683236833368343683536836368373683836839368403684136842368433684436845368463684736848368493685036851368523685336854368553685636857368583685936860368613686236863368643686536866368673686836869368703687136872368733687436875368763687736878368793688036881368823688336884368853688636887368883688936890368913689236893368943689536896368973689836899369003690136902369033690436905369063690736908369093691036911369123691336914369153691636917369183691936920369213692236923369243692536926369273692836929369303693136932369333693436935369363693736938369393694036941369423694336944369453694636947369483694936950369513695236953369543695536956369573695836959369603696136962369633696436965369663696736968369693697036971369723697336974369753697636977369783697936980369813698236983369843698536986369873698836989369903699136992369933699436995369963699736998369993700037001370023700337004370053700637007370083700937010370113701237013370143701537016370173701837019370203702137022370233702437025370263702737028370293703037031370323703337034370353703637037370383703937040370413704237043370443704537046370473704837049370503705137052370533705437055370563705737058370593706037061370623706337064370653706637067370683706937070370713707237073370743707537076370773707837079370803708137082370833708437085370863708737088370893709037091370923709337094370953709637097370983709937100371013710237103371043710537106371073710837109371103711137112371133711437115371163711737118371193712037121371223712337124371253712637127371283712937130371313713237133371343713537136371373713837139371403714137142371433714437145371463714737148371493715037151371523715337154371553715637157371583715937160371613716237163371643716537166371673716837169371703717137172371733717437175371763717737178371793718037181371823718337184371853718637187371883718937190371913719237193371943719537196371973719837199372003720137202372033720437205372063720737208372093721037211372123721337214372153721637217372183721937220372213722237223372243722537226372273722837229372303723137232372333723437235372363723737238372393724037241372423724337244372453724637247372483724937250372513725237253372543725537256372573725837259372603726137262372633726437265372663726737268372693727037271372723727337274372753727637277372783727937280372813728237283372843728537286372873728837289372903729137292372933729437295372963729737298372993730037301373023730337304373053730637307373083730937310373113731237313373143731537316373173731837319373203732137322373233732437325373263732737328373293733037331373323733337334373353733637337373383733937340373413734237343373443734537346373473734837349373503735137352373533735437355373563735737358373593736037361373623736337364373653736637367373683736937370373713737237373373743737537376373773737837379373803738137382373833738437385373863738737388373893739037391373923739337394373953739637397373983739937400374013740237403374043740537406374073740837409374103741137412374133741437415374163741737418374193742037421374223742337424374253742637427374283742937430374313743237433374343743537436374373743837439374403744137442374433744437445374463744737448374493745037451374523745337454374553745637457374583745937460374613746237463374643746537466374673746837469374703747137472374733747437475374763747737478374793748037481374823748337484374853748637487374883748937490374913749237493374943749537496374973749837499375003750137502375033750437505375063750737508375093751037511375123751337514375153751637517375183751937520375213752237523375243752537526375273752837529375303753137532375333753437535375363753737538375393754037541375423754337544375453754637547375483754937550375513755237553375543755537556375573755837559375603756137562375633756437565375663756737568375693757037571375723757337574375753757637577375783757937580375813758237583375843758537586375873758837589375903759137592375933759437595375963759737598375993760037601376023760337604376053760637607376083760937610376113761237613376143761537616376173761837619376203762137622376233762437625376263762737628376293763037631376323763337634376353763637637376383763937640376413764237643376443764537646376473764837649376503765137652376533765437655376563765737658376593766037661376623766337664376653766637667376683766937670376713767237673376743767537676376773767837679376803768137682376833768437685376863768737688376893769037691376923769337694376953769637697376983769937700377013770237703377043770537706377073770837709377103771137712377133771437715377163771737718377193772037721377223772337724377253772637727377283772937730377313773237733377343773537736377373773837739377403774137742377433774437745377463774737748377493775037751377523775337754377553775637757377583775937760377613776237763377643776537766377673776837769377703777137772377733777437775377763777737778377793778037781377823778337784377853778637787377883778937790377913779237793377943779537796377973779837799378003780137802378033780437805378063780737808378093781037811378123781337814378153781637817378183781937820378213782237823378243782537826378273782837829378303783137832378333783437835378363783737838378393784037841378423784337844378453784637847378483784937850378513785237853378543785537856378573785837859378603786137862378633786437865378663786737868378693787037871378723787337874378753787637877378783787937880378813788237883378843788537886378873788837889378903789137892378933789437895378963789737898378993790037901379023790337904379053790637907379083790937910379113791237913379143791537916379173791837919379203792137922379233792437925379263792737928379293793037931379323793337934379353793637937379383793937940379413794237943379443794537946379473794837949379503795137952379533795437955379563795737958379593796037961379623796337964379653796637967379683796937970379713797237973379743797537976379773797837979379803798137982379833798437985379863798737988379893799037991379923799337994379953799637997379983799938000380013800238003380043800538006380073800838009380103801138012380133801438015380163801738018380193802038021380223802338024380253802638027380283802938030380313803238033380343803538036380373803838039380403804138042380433804438045380463804738048380493805038051380523805338054380553805638057380583805938060380613806238063380643806538066380673806838069380703807138072380733807438075380763807738078380793808038081380823808338084380853808638087380883808938090380913809238093380943809538096380973809838099381003810138102381033810438105381063810738108381093811038111381123811338114381153811638117381183811938120381213812238123381243812538126381273812838129381303813138132381333813438135381363813738138381393814038141381423814338144381453814638147381483814938150381513815238153381543815538156381573815838159381603816138162381633816438165381663816738168381693817038171381723817338174381753817638177381783817938180381813818238183381843818538186381873818838189381903819138192381933819438195381963819738198381993820038201382023820338204382053820638207382083820938210382113821238213382143821538216382173821838219382203822138222382233822438225382263822738228382293823038231382323823338234382353823638237382383823938240382413824238243382443824538246382473824838249382503825138252382533825438255382563825738258382593826038261382623826338264382653826638267382683826938270382713827238273382743827538276382773827838279382803828138282382833828438285382863828738288382893829038291382923829338294382953829638297382983829938300383013830238303383043830538306383073830838309383103831138312383133831438315383163831738318383193832038321383223832338324383253832638327383283832938330383313833238333383343833538336383373833838339383403834138342383433834438345383463834738348383493835038351383523835338354383553835638357383583835938360383613836238363383643836538366383673836838369383703837138372383733837438375383763837738378383793838038381383823838338384383853838638387383883838938390383913839238393383943839538396383973839838399384003840138402384033840438405384063840738408384093841038411384123841338414384153841638417384183841938420384213842238423384243842538426384273842838429384303843138432384333843438435384363843738438384393844038441384423844338444384453844638447384483844938450384513845238453384543845538456384573845838459384603846138462384633846438465384663846738468384693847038471384723847338474384753847638477384783847938480384813848238483384843848538486384873848838489384903849138492384933849438495384963849738498384993850038501385023850338504385053850638507385083850938510385113851238513385143851538516385173851838519385203852138522385233852438525385263852738528385293853038531385323853338534385353853638537385383853938540385413854238543385443854538546385473854838549385503855138552385533855438555385563855738558385593856038561385623856338564385653856638567385683856938570385713857238573385743857538576385773857838579385803858138582385833858438585385863858738588385893859038591385923859338594385953859638597385983859938600386013860238603386043860538606386073860838609386103861138612386133861438615386163861738618386193862038621386223862338624386253862638627386283862938630386313863238633386343863538636386373863838639386403864138642386433864438645386463864738648386493865038651386523865338654386553865638657386583865938660386613866238663386643866538666386673866838669386703867138672386733867438675386763867738678386793868038681386823868338684386853868638687386883868938690386913869238693386943869538696386973869838699387003870138702387033870438705387063870738708387093871038711387123871338714387153871638717387183871938720387213872238723387243872538726387273872838729387303873138732387333873438735387363873738738387393874038741387423874338744387453874638747387483874938750387513875238753387543875538756387573875838759387603876138762387633876438765387663876738768387693877038771387723877338774387753877638777387783877938780387813878238783387843878538786387873878838789387903879138792387933879438795387963879738798387993880038801388023880338804388053880638807388083880938810388113881238813388143881538816388173881838819388203882138822388233882438825388263882738828388293883038831388323883338834388353883638837388383883938840388413884238843388443884538846388473884838849388503885138852388533885438855388563885738858388593886038861388623886338864388653886638867388683886938870388713887238873388743887538876388773887838879388803888138882388833888438885388863888738888388893889038891388923889338894388953889638897388983889938900389013890238903389043890538906389073890838909389103891138912389133891438915389163891738918389193892038921389223892338924389253892638927389283892938930389313893238933389343893538936389373893838939389403894138942389433894438945389463894738948389493895038951389523895338954389553895638957389583895938960389613896238963389643896538966389673896838969389703897138972389733897438975389763897738978389793898038981389823898338984389853898638987389883898938990389913899238993389943899538996389973899838999390003900139002390033900439005390063900739008390093901039011390123901339014390153901639017390183901939020390213902239023390243902539026390273902839029390303903139032390333903439035390363903739038390393904039041390423904339044390453904639047390483904939050390513905239053390543905539056390573905839059390603906139062390633906439065390663906739068390693907039071390723907339074390753907639077390783907939080390813908239083390843908539086390873908839089390903909139092390933909439095390963909739098390993910039101391023910339104391053910639107391083910939110391113911239113391143911539116391173911839119391203912139122391233912439125391263912739128391293913039131391323913339134391353913639137391383913939140391413914239143391443914539146391473914839149391503915139152391533915439155391563915739158391593916039161391623916339164391653916639167391683916939170391713917239173391743917539176391773917839179391803918139182391833918439185391863918739188391893919039191391923919339194391953919639197391983919939200392013920239203392043920539206392073920839209392103921139212392133921439215392163921739218392193922039221392223922339224392253922639227392283922939230392313923239233392343923539236392373923839239392403924139242392433924439245392463924739248392493925039251392523925339254392553925639257392583925939260392613926239263392643926539266392673926839269392703927139272392733927439275392763927739278392793928039281392823928339284392853928639287392883928939290392913929239293392943929539296392973929839299393003930139302393033930439305393063930739308393093931039311393123931339314393153931639317393183931939320393213932239323393243932539326393273932839329393303933139332393333933439335393363933739338393393934039341393423934339344393453934639347393483934939350393513935239353393543935539356393573935839359393603936139362393633936439365393663936739368393693937039371393723937339374393753937639377393783937939380393813938239383393843938539386393873938839389393903939139392393933939439395393963939739398393993940039401394023940339404394053940639407394083940939410394113941239413394143941539416394173941839419394203942139422394233942439425394263942739428394293943039431394323943339434394353943639437394383943939440394413944239443394443944539446394473944839449394503945139452394533945439455394563945739458394593946039461394623946339464394653946639467394683946939470394713947239473394743947539476394773947839479394803948139482394833948439485394863948739488394893949039491394923949339494394953949639497394983949939500395013950239503395043950539506395073950839509395103951139512395133951439515395163951739518395193952039521395223952339524395253952639527395283952939530395313953239533395343953539536395373953839539395403954139542395433954439545395463954739548395493955039551395523955339554395553955639557395583955939560395613956239563395643956539566395673956839569395703957139572395733957439575395763957739578395793958039581395823958339584395853958639587395883958939590395913959239593395943959539596395973959839599396003960139602396033960439605396063960739608396093961039611396123961339614396153961639617396183961939620396213962239623396243962539626396273962839629396303963139632396333963439635396363963739638396393964039641396423964339644396453964639647396483964939650396513965239653396543965539656396573965839659396603966139662396633966439665396663966739668396693967039671396723967339674396753967639677396783967939680396813968239683396843968539686396873968839689396903969139692396933969439695396963969739698396993970039701397023970339704397053970639707397083970939710397113971239713397143971539716397173971839719397203972139722397233972439725397263972739728397293973039731397323973339734397353973639737397383973939740397413974239743397443974539746397473974839749397503975139752397533975439755397563975739758397593976039761397623976339764397653976639767397683976939770397713977239773397743977539776397773977839779397803978139782397833978439785397863978739788397893979039791397923979339794397953979639797397983979939800398013980239803398043980539806398073980839809398103981139812398133981439815398163981739818398193982039821398223982339824398253982639827398283982939830398313983239833398343983539836398373983839839398403984139842398433984439845398463984739848398493985039851398523985339854398553985639857398583985939860398613986239863398643986539866398673986839869398703987139872398733987439875398763987739878398793988039881398823988339884398853988639887398883988939890398913989239893398943989539896398973989839899399003990139902399033990439905399063990739908399093991039911399123991339914399153991639917399183991939920399213992239923399243992539926399273992839929399303993139932399333993439935399363993739938399393994039941399423994339944399453994639947399483994939950399513995239953399543995539956399573995839959399603996139962399633996439965399663996739968399693997039971399723997339974399753997639977399783997939980399813998239983399843998539986399873998839989399903999139992399933999439995399963999739998399994000040001400024000340004400054000640007400084000940010400114001240013400144001540016400174001840019400204002140022400234002440025400264002740028400294003040031400324003340034400354003640037400384003940040400414004240043400444004540046400474004840049400504005140052400534005440055400564005740058400594006040061400624006340064400654006640067400684006940070400714007240073400744007540076400774007840079400804008140082400834008440085400864008740088400894009040091400924009340094400954009640097400984009940100401014010240103401044010540106401074010840109401104011140112401134011440115401164011740118401194012040121401224012340124401254012640127401284012940130401314013240133401344013540136401374013840139401404014140142401434014440145401464014740148401494015040151401524015340154401554015640157401584015940160401614016240163401644016540166401674016840169401704017140172401734017440175401764017740178401794018040181401824018340184401854018640187401884018940190401914019240193401944019540196401974019840199402004020140202402034020440205402064020740208402094021040211402124021340214402154021640217402184021940220402214022240223402244022540226402274022840229402304023140232402334023440235402364023740238402394024040241402424024340244402454024640247402484024940250402514025240253402544025540256402574025840259402604026140262402634026440265402664026740268402694027040271402724027340274402754027640277402784027940280402814028240283402844028540286402874028840289402904029140292402934029440295402964029740298402994030040301403024030340304403054030640307403084030940310403114031240313403144031540316403174031840319403204032140322403234032440325403264032740328403294033040331403324033340334403354033640337403384033940340403414034240343403444034540346403474034840349403504035140352403534035440355403564035740358403594036040361403624036340364403654036640367403684036940370403714037240373403744037540376403774037840379403804038140382403834038440385403864038740388403894039040391403924039340394403954039640397403984039940400404014040240403404044040540406404074040840409404104041140412404134041440415404164041740418404194042040421404224042340424404254042640427404284042940430404314043240433404344043540436404374043840439404404044140442404434044440445404464044740448404494045040451404524045340454404554045640457404584045940460404614046240463404644046540466404674046840469404704047140472404734047440475404764047740478404794048040481404824048340484404854048640487404884048940490404914049240493404944049540496404974049840499405004050140502405034050440505405064050740508405094051040511405124051340514405154051640517405184051940520405214052240523405244052540526405274052840529405304053140532405334053440535405364053740538405394054040541405424054340544405454054640547405484054940550405514055240553405544055540556405574055840559405604056140562405634056440565405664056740568405694057040571405724057340574405754057640577405784057940580405814058240583405844058540586405874058840589405904059140592405934059440595405964059740598405994060040601406024060340604406054060640607406084060940610406114061240613406144061540616406174061840619406204062140622406234062440625406264062740628406294063040631406324063340634406354063640637406384063940640406414064240643406444064540646406474064840649406504065140652406534065440655406564065740658406594066040661406624066340664406654066640667406684066940670406714067240673406744067540676406774067840679406804068140682406834068440685406864068740688406894069040691406924069340694406954069640697406984069940700407014070240703407044070540706407074070840709407104071140712407134071440715407164071740718407194072040721407224072340724407254072640727407284072940730407314073240733407344073540736407374073840739407404074140742407434074440745407464074740748407494075040751407524075340754407554075640757407584075940760407614076240763407644076540766407674076840769407704077140772407734077440775407764077740778407794078040781407824078340784407854078640787407884078940790407914079240793407944079540796407974079840799408004080140802408034080440805408064080740808408094081040811408124081340814408154081640817408184081940820408214082240823408244082540826408274082840829408304083140832408334083440835408364083740838408394084040841408424084340844408454084640847408484084940850408514085240853408544085540856408574085840859408604086140862408634086440865408664086740868408694087040871408724087340874408754087640877408784087940880408814088240883408844088540886408874088840889408904089140892408934089440895408964089740898408994090040901409024090340904409054090640907409084090940910409114091240913409144091540916409174091840919409204092140922409234092440925409264092740928409294093040931409324093340934409354093640937409384093940940409414094240943409444094540946409474094840949409504095140952409534095440955409564095740958409594096040961409624096340964409654096640967409684096940970409714097240973409744097540976409774097840979409804098140982409834098440985409864098740988409894099040991409924099340994409954099640997409984099941000410014100241003410044100541006410074100841009410104101141012410134101441015410164101741018410194102041021410224102341024410254102641027410284102941030410314103241033410344103541036410374103841039410404104141042410434104441045410464104741048410494105041051410524105341054410554105641057410584105941060410614106241063410644106541066410674106841069410704107141072410734107441075410764107741078410794108041081410824108341084410854108641087410884108941090410914109241093410944109541096410974109841099411004110141102411034110441105411064110741108411094111041111411124111341114411154111641117411184111941120411214112241123411244112541126411274112841129411304113141132411334113441135411364113741138411394114041141411424114341144411454114641147411484114941150411514115241153411544115541156411574115841159411604116141162411634116441165411664116741168411694117041171411724117341174411754117641177411784117941180411814118241183411844118541186411874118841189411904119141192411934119441195411964119741198411994120041201412024120341204412054120641207412084120941210412114121241213412144121541216412174121841219412204122141222412234122441225412264122741228412294123041231412324123341234412354123641237412384123941240412414124241243412444124541246412474124841249412504125141252412534125441255412564125741258412594126041261412624126341264412654126641267412684126941270412714127241273412744127541276412774127841279412804128141282412834128441285412864128741288412894129041291412924129341294412954129641297412984129941300413014130241303413044130541306413074130841309413104131141312413134131441315413164131741318413194132041321413224132341324413254132641327413284132941330413314133241333413344133541336413374133841339413404134141342413434134441345413464134741348413494135041351413524135341354413554135641357413584135941360413614136241363413644136541366413674136841369413704137141372413734137441375413764137741378413794138041381413824138341384413854138641387413884138941390413914139241393413944139541396413974139841399414004140141402414034140441405414064140741408414094141041411414124141341414414154141641417414184141941420414214142241423414244142541426414274142841429414304143141432414334143441435414364143741438414394144041441414424144341444414454144641447414484144941450414514145241453414544145541456414574145841459414604146141462414634146441465414664146741468414694147041471414724147341474414754147641477414784147941480414814148241483414844148541486414874148841489414904149141492414934149441495414964149741498414994150041501415024150341504415054150641507415084150941510415114151241513415144151541516415174151841519415204152141522415234152441525415264152741528415294153041531415324153341534415354153641537415384153941540415414154241543415444154541546415474154841549415504155141552415534155441555415564155741558415594156041561415624156341564415654156641567415684156941570415714157241573415744157541576415774157841579415804158141582415834158441585415864158741588415894159041591415924159341594415954159641597415984159941600416014160241603416044160541606416074160841609416104161141612416134161441615416164161741618416194162041621416224162341624416254162641627416284162941630416314163241633416344163541636416374163841639416404164141642416434164441645416464164741648416494165041651416524165341654416554165641657416584165941660416614166241663416644166541666416674166841669416704167141672416734167441675416764167741678416794168041681416824168341684416854168641687416884168941690416914169241693416944169541696416974169841699417004170141702417034170441705417064170741708417094171041711417124171341714417154171641717417184171941720417214172241723417244172541726417274172841729417304173141732417334173441735417364173741738417394174041741417424174341744417454174641747417484174941750417514175241753417544175541756417574175841759417604176141762417634176441765417664176741768417694177041771417724177341774417754177641777417784177941780417814178241783417844178541786417874178841789417904179141792417934179441795417964179741798417994180041801418024180341804418054180641807418084180941810418114181241813418144181541816418174181841819418204182141822418234182441825418264182741828418294183041831418324183341834418354183641837418384183941840418414184241843418444184541846418474184841849418504185141852418534185441855418564185741858418594186041861418624186341864418654186641867418684186941870418714187241873418744187541876418774187841879418804188141882418834188441885418864188741888418894189041891418924189341894418954189641897418984189941900419014190241903419044190541906419074190841909419104191141912419134191441915419164191741918419194192041921419224192341924419254192641927419284192941930419314193241933419344193541936419374193841939419404194141942419434194441945419464194741948419494195041951419524195341954419554195641957419584195941960419614196241963419644196541966419674196841969419704197141972419734197441975419764197741978419794198041981419824198341984419854198641987419884198941990419914199241993419944199541996419974199841999420004200142002420034200442005420064200742008420094201042011420124201342014420154201642017420184201942020420214202242023420244202542026420274202842029420304203142032420334203442035420364203742038420394204042041420424204342044420454204642047420484204942050420514205242053420544205542056420574205842059420604206142062420634206442065420664206742068420694207042071420724207342074420754207642077420784207942080420814208242083420844208542086420874208842089420904209142092420934209442095420964209742098420994210042101421024210342104421054210642107421084210942110421114211242113421144211542116421174211842119421204212142122421234212442125421264212742128421294213042131421324213342134421354213642137421384213942140421414214242143421444214542146421474214842149421504215142152421534215442155421564215742158421594216042161421624216342164421654216642167421684216942170421714217242173421744217542176421774217842179421804218142182421834218442185421864218742188421894219042191421924219342194421954219642197421984219942200422014220242203422044220542206422074220842209422104221142212422134221442215422164221742218422194222042221422224222342224422254222642227422284222942230422314223242233422344223542236422374223842239422404224142242422434224442245422464224742248422494225042251422524225342254422554225642257422584225942260422614226242263422644226542266422674226842269422704227142272422734227442275422764227742278422794228042281422824228342284422854228642287422884228942290422914229242293422944229542296422974229842299423004230142302423034230442305423064230742308423094231042311423124231342314423154231642317423184231942320423214232242323423244232542326423274232842329423304233142332423334233442335423364233742338423394234042341423424234342344423454234642347423484234942350423514235242353423544235542356423574235842359423604236142362423634236442365423664236742368423694237042371423724237342374423754237642377423784237942380423814238242383423844238542386423874238842389423904239142392423934239442395423964239742398423994240042401424024240342404424054240642407424084240942410424114241242413424144241542416424174241842419424204242142422424234242442425424264242742428424294243042431424324243342434424354243642437424384243942440424414244242443424444244542446424474244842449424504245142452424534245442455424564245742458424594246042461424624246342464424654246642467424684246942470424714247242473424744247542476424774247842479424804248142482424834248442485424864248742488424894249042491424924249342494424954249642497424984249942500425014250242503425044250542506425074250842509425104251142512425134251442515425164251742518425194252042521425224252342524425254252642527425284252942530425314253242533425344253542536425374253842539425404254142542425434254442545425464254742548425494255042551425524255342554425554255642557425584255942560425614256242563425644256542566425674256842569425704257142572425734257442575425764257742578425794258042581425824258342584425854258642587425884258942590425914259242593425944259542596425974259842599426004260142602426034260442605426064260742608426094261042611426124261342614426154261642617426184261942620426214262242623426244262542626426274262842629426304263142632426334263442635426364263742638426394264042641426424264342644426454264642647426484264942650426514265242653426544265542656426574265842659426604266142662426634266442665426664266742668426694267042671426724267342674426754267642677426784267942680426814268242683426844268542686426874268842689426904269142692426934269442695426964269742698426994270042701427024270342704427054270642707427084270942710427114271242713427144271542716427174271842719427204272142722427234272442725427264272742728427294273042731427324273342734427354273642737427384273942740427414274242743427444274542746427474274842749427504275142752427534275442755427564275742758427594276042761427624276342764427654276642767427684276942770427714277242773427744277542776427774277842779427804278142782427834278442785427864278742788427894279042791427924279342794427954279642797427984279942800428014280242803428044280542806428074280842809428104281142812428134281442815428164281742818428194282042821428224282342824428254282642827428284282942830428314283242833428344283542836428374283842839428404284142842428434284442845428464284742848428494285042851428524285342854428554285642857428584285942860428614286242863428644286542866428674286842869428704287142872428734287442875428764287742878428794288042881428824288342884428854288642887428884288942890428914289242893428944289542896428974289842899429004290142902429034290442905429064290742908429094291042911429124291342914429154291642917429184291942920429214292242923429244292542926429274292842929429304293142932429334293442935429364293742938429394294042941429424294342944429454294642947429484294942950429514295242953429544295542956429574295842959429604296142962429634296442965429664296742968429694297042971429724297342974429754297642977429784297942980429814298242983429844298542986429874298842989429904299142992429934299442995429964299742998429994300043001430024300343004430054300643007430084300943010430114301243013430144301543016430174301843019430204302143022430234302443025430264302743028430294303043031430324303343034430354303643037430384303943040430414304243043430444304543046430474304843049430504305143052430534305443055430564305743058430594306043061430624306343064430654306643067430684306943070430714307243073430744307543076430774307843079430804308143082430834308443085430864308743088430894309043091430924309343094430954309643097430984309943100431014310243103431044310543106431074310843109431104311143112431134311443115431164311743118431194312043121431224312343124431254312643127431284312943130431314313243133431344313543136431374313843139431404314143142431434314443145431464314743148431494315043151431524315343154431554315643157431584315943160431614316243163431644316543166431674316843169431704317143172431734317443175431764317743178431794318043181431824318343184431854318643187431884318943190431914319243193431944319543196431974319843199432004320143202432034320443205432064320743208432094321043211432124321343214432154321643217432184321943220432214322243223432244322543226432274322843229432304323143232432334323443235432364323743238432394324043241432424324343244432454324643247432484324943250432514325243253432544325543256432574325843259432604326143262432634326443265432664326743268432694327043271432724327343274432754327643277432784327943280432814328243283432844328543286432874328843289432904329143292432934329443295432964329743298432994330043301433024330343304433054330643307433084330943310433114331243313433144331543316433174331843319433204332143322433234332443325433264332743328433294333043331433324333343334433354333643337433384333943340433414334243343433444334543346433474334843349433504335143352433534335443355433564335743358433594336043361433624336343364433654336643367433684336943370433714337243373433744337543376433774337843379433804338143382433834338443385433864338743388433894339043391433924339343394433954339643397433984339943400434014340243403434044340543406434074340843409434104341143412434134341443415434164341743418434194342043421434224342343424434254342643427434284342943430434314343243433434344343543436434374343843439434404344143442434434344443445434464344743448434494345043451434524345343454434554345643457434584345943460434614346243463434644346543466434674346843469434704347143472434734347443475434764347743478434794348043481434824348343484434854348643487434884348943490434914349243493434944349543496434974349843499435004350143502435034350443505435064350743508435094351043511435124351343514435154351643517435184351943520435214352243523435244352543526435274352843529435304353143532435334353443535435364353743538435394354043541435424354343544435454354643547435484354943550435514355243553435544355543556435574355843559435604356143562435634356443565435664356743568435694357043571435724357343574435754357643577435784357943580435814358243583435844358543586435874358843589435904359143592435934359443595435964359743598435994360043601436024360343604436054360643607436084360943610436114361243613436144361543616436174361843619436204362143622436234362443625436264362743628436294363043631436324363343634436354363643637436384363943640436414364243643436444364543646436474364843649436504365143652436534365443655436564365743658436594366043661436624366343664436654366643667436684366943670436714367243673436744367543676436774367843679436804368143682436834368443685436864368743688436894369043691436924369343694436954369643697436984369943700437014370243703437044370543706437074370843709437104371143712437134371443715437164371743718437194372043721437224372343724437254372643727437284372943730437314373243733437344373543736437374373843739437404374143742437434374443745437464374743748437494375043751437524375343754437554375643757437584375943760437614376243763437644376543766437674376843769437704377143772437734377443775437764377743778437794378043781437824378343784437854378643787437884378943790437914379243793437944379543796437974379843799438004380143802438034380443805438064380743808438094381043811438124381343814438154381643817438184381943820438214382243823438244382543826438274382843829438304383143832438334383443835438364383743838438394384043841438424384343844438454384643847438484384943850438514385243853438544385543856438574385843859438604386143862438634386443865438664386743868438694387043871438724387343874438754387643877438784387943880438814388243883438844388543886438874388843889438904389143892438934389443895438964389743898438994390043901439024390343904439054390643907439084390943910439114391243913439144391543916439174391843919439204392143922439234392443925439264392743928439294393043931439324393343934439354393643937439384393943940439414394243943439444394543946439474394843949439504395143952439534395443955439564395743958439594396043961439624396343964439654396643967439684396943970439714397243973439744397543976439774397843979439804398143982439834398443985439864398743988439894399043991439924399343994439954399643997439984399944000440014400244003440044400544006440074400844009440104401144012440134401444015440164401744018440194402044021440224402344024440254402644027440284402944030440314403244033440344403544036440374403844039440404404144042440434404444045440464404744048440494405044051440524405344054440554405644057440584405944060440614406244063440644406544066440674406844069440704407144072440734407444075440764407744078440794408044081440824408344084440854408644087440884408944090440914409244093440944409544096440974409844099441004410144102441034410444105441064410744108441094411044111441124411344114441154411644117441184411944120441214412244123441244412544126441274412844129441304413144132441334413444135441364413744138441394414044141441424414344144441454414644147441484414944150441514415244153441544415544156441574415844159441604416144162441634416444165441664416744168441694417044171441724417344174441754417644177441784417944180441814418244183441844418544186441874418844189441904419144192441934419444195441964419744198441994420044201442024420344204442054420644207442084420944210442114421244213442144421544216442174421844219442204422144222442234422444225442264422744228442294423044231442324423344234442354423644237442384423944240442414424244243442444424544246442474424844249442504425144252442534425444255442564425744258442594426044261442624426344264442654426644267442684426944270442714427244273442744427544276442774427844279442804428144282442834428444285442864428744288442894429044291442924429344294442954429644297442984429944300443014430244303443044430544306443074430844309443104431144312443134431444315443164431744318443194432044321443224432344324443254432644327443284432944330443314433244333443344433544336443374433844339443404434144342443434434444345443464434744348443494435044351443524435344354443554435644357443584435944360443614436244363443644436544366443674436844369443704437144372443734437444375443764437744378443794438044381443824438344384443854438644387443884438944390443914439244393443944439544396443974439844399444004440144402444034440444405444064440744408444094441044411444124441344414444154441644417444184441944420444214442244423444244442544426444274442844429444304443144432444334443444435444364443744438444394444044441444424444344444444454444644447444484444944450444514445244453444544445544456444574445844459444604446144462444634446444465444664446744468444694447044471444724447344474444754447644477444784447944480444814448244483444844448544486444874448844489444904449144492444934449444495444964449744498444994450044501445024450344504445054450644507445084450944510445114451244513445144451544516445174451844519445204452144522445234452444525445264452744528445294453044531445324453344534445354453644537445384453944540445414454244543445444454544546445474454844549445504455144552445534455444555445564455744558445594456044561445624456344564445654456644567445684456944570445714457244573445744457544576445774457844579445804458144582445834458444585445864458744588445894459044591445924459344594445954459644597445984459944600446014460244603446044460544606446074460844609446104461144612446134461444615446164461744618446194462044621446224462344624446254462644627446284462944630446314463244633446344463544636446374463844639446404464144642446434464444645446464464744648446494465044651446524465344654446554465644657446584465944660446614466244663446644466544666446674466844669446704467144672446734467444675446764467744678446794468044681446824468344684446854468644687446884468944690446914469244693446944469544696446974469844699447004470144702447034470444705447064470744708447094471044711447124471344714447154471644717447184471944720447214472244723447244472544726447274472844729447304473144732447334473444735447364473744738447394474044741447424474344744447454474644747447484474944750447514475244753447544475544756447574475844759447604476144762447634476444765447664476744768447694477044771447724477344774447754477644777447784477944780447814478244783447844478544786447874478844789447904479144792447934479444795447964479744798447994480044801448024480344804448054480644807448084480944810448114481244813448144481544816448174481844819448204482144822448234482444825448264482744828448294483044831448324483344834448354483644837448384483944840448414484244843448444484544846448474484844849448504485144852448534485444855448564485744858448594486044861448624486344864448654486644867448684486944870448714487244873448744487544876448774487844879448804488144882448834488444885448864488744888448894489044891448924489344894448954489644897448984489944900449014490244903449044490544906449074490844909449104491144912449134491444915449164491744918449194492044921449224492344924449254492644927449284492944930449314493244933449344493544936449374493844939449404494144942449434494444945449464494744948449494495044951449524495344954449554495644957449584495944960449614496244963449644496544966449674496844969449704497144972449734497444975449764497744978449794498044981449824498344984449854498644987449884498944990449914499244993449944499544996449974499844999450004500145002450034500445005450064500745008450094501045011450124501345014450154501645017450184501945020450214502245023450244502545026450274502845029450304503145032450334503445035450364503745038450394504045041450424504345044450454504645047450484504945050450514505245053450544505545056450574505845059450604506145062450634506445065450664506745068450694507045071450724507345074450754507645077450784507945080450814508245083450844508545086450874508845089450904509145092450934509445095450964509745098450994510045101451024510345104451054510645107451084510945110451114511245113451144511545116451174511845119451204512145122451234512445125451264512745128451294513045131451324513345134451354513645137451384513945140451414514245143451444514545146451474514845149451504515145152451534515445155451564515745158451594516045161451624516345164451654516645167451684516945170451714517245173451744517545176451774517845179451804518145182451834518445185451864518745188451894519045191451924519345194451954519645197451984519945200452014520245203452044520545206452074520845209452104521145212452134521445215452164521745218452194522045221452224522345224452254522645227452284522945230452314523245233452344523545236452374523845239452404524145242452434524445245452464524745248452494525045251452524525345254452554525645257452584525945260452614526245263452644526545266452674526845269452704527145272452734527445275452764527745278452794528045281452824528345284452854528645287452884528945290452914529245293452944529545296452974529845299453004530145302453034530445305453064530745308453094531045311453124531345314453154531645317453184531945320453214532245323453244532545326453274532845329453304533145332453334533445335453364533745338453394534045341453424534345344453454534645347453484534945350453514535245353453544535545356453574535845359453604536145362453634536445365453664536745368453694537045371453724537345374453754537645377453784537945380453814538245383453844538545386453874538845389453904539145392453934539445395453964539745398453994540045401454024540345404454054540645407454084540945410454114541245413454144541545416454174541845419454204542145422454234542445425454264542745428454294543045431454324543345434454354543645437454384543945440454414544245443454444544545446454474544845449454504545145452454534545445455454564545745458454594546045461454624546345464454654546645467454684546945470454714547245473454744547545476454774547845479454804548145482454834548445485454864548745488454894549045491454924549345494454954549645497454984549945500455014550245503455044550545506455074550845509455104551145512455134551445515455164551745518455194552045521455224552345524455254552645527455284552945530455314553245533455344553545536455374553845539455404554145542455434554445545455464554745548455494555045551455524555345554455554555645557455584555945560455614556245563455644556545566455674556845569455704557145572455734557445575455764557745578455794558045581455824558345584455854558645587455884558945590455914559245593455944559545596455974559845599456004560145602456034560445605456064560745608456094561045611456124561345614456154561645617456184561945620456214562245623456244562545626456274562845629456304563145632456334563445635456364563745638456394564045641456424564345644456454564645647456484564945650456514565245653456544565545656456574565845659456604566145662456634566445665456664566745668456694567045671456724567345674456754567645677456784567945680456814568245683456844568545686456874568845689456904569145692456934569445695456964569745698456994570045701457024570345704457054570645707457084570945710457114571245713457144571545716457174571845719457204572145722457234572445725457264572745728457294573045731457324573345734457354573645737457384573945740457414574245743457444574545746457474574845749457504575145752457534575445755457564575745758457594576045761457624576345764457654576645767457684576945770457714577245773457744577545776457774577845779457804578145782457834578445785457864578745788457894579045791457924579345794457954579645797457984579945800458014580245803458044580545806458074580845809458104581145812458134581445815458164581745818458194582045821458224582345824458254582645827458284582945830458314583245833458344583545836458374583845839458404584145842458434584445845458464584745848458494585045851458524585345854458554585645857458584585945860458614586245863458644586545866458674586845869458704587145872458734587445875458764587745878458794588045881458824588345884458854588645887458884588945890458914589245893458944589545896458974589845899459004590145902459034590445905459064590745908459094591045911459124591345914459154591645917459184591945920459214592245923459244592545926459274592845929459304593145932459334593445935459364593745938459394594045941459424594345944459454594645947459484594945950459514595245953459544595545956459574595845959459604596145962459634596445965459664596745968459694597045971459724597345974459754597645977459784597945980459814598245983459844598545986459874598845989459904599145992459934599445995459964599745998459994600046001460024600346004460054600646007460084600946010460114601246013460144601546016460174601846019460204602146022460234602446025460264602746028460294603046031460324603346034460354603646037460384603946040460414604246043460444604546046460474604846049460504605146052460534605446055460564605746058460594606046061460624606346064460654606646067460684606946070460714607246073460744607546076460774607846079460804608146082460834608446085460864608746088460894609046091460924609346094460954609646097460984609946100461014610246103461044610546106461074610846109461104611146112461134611446115461164611746118461194612046121461224612346124461254612646127461284612946130461314613246133461344613546136461374613846139461404614146142461434614446145461464614746148461494615046151461524615346154461554615646157461584615946160461614616246163461644616546166461674616846169461704617146172461734617446175461764617746178461794618046181461824618346184461854618646187461884618946190461914619246193461944619546196461974619846199462004620146202462034620446205462064620746208462094621046211462124621346214462154621646217462184621946220462214622246223462244622546226462274622846229462304623146232462334623446235462364623746238462394624046241462424624346244462454624646247462484624946250462514625246253462544625546256462574625846259462604626146262462634626446265462664626746268462694627046271462724627346274462754627646277462784627946280462814628246283462844628546286462874628846289462904629146292462934629446295462964629746298462994630046301463024630346304463054630646307463084630946310463114631246313463144631546316463174631846319463204632146322463234632446325463264632746328463294633046331463324633346334463354633646337463384633946340463414634246343463444634546346463474634846349463504635146352463534635446355463564635746358463594636046361463624636346364463654636646367463684636946370463714637246373463744637546376463774637846379463804638146382463834638446385463864638746388463894639046391463924639346394463954639646397463984639946400464014640246403464044640546406464074640846409464104641146412464134641446415464164641746418464194642046421464224642346424464254642646427464284642946430464314643246433464344643546436464374643846439464404644146442464434644446445464464644746448464494645046451464524645346454464554645646457464584645946460464614646246463464644646546466464674646846469464704647146472464734647446475464764647746478464794648046481464824648346484464854648646487464884648946490464914649246493464944649546496464974649846499465004650146502465034650446505465064650746508465094651046511465124651346514465154651646517465184651946520465214652246523465244652546526465274652846529465304653146532465334653446535465364653746538465394654046541465424654346544465454654646547465484654946550465514655246553465544655546556465574655846559465604656146562465634656446565465664656746568465694657046571465724657346574465754657646577465784657946580465814658246583465844658546586465874658846589465904659146592465934659446595465964659746598465994660046601466024660346604466054660646607466084660946610466114661246613466144661546616466174661846619466204662146622466234662446625466264662746628466294663046631466324663346634466354663646637466384663946640466414664246643466444664546646466474664846649466504665146652466534665446655466564665746658466594666046661466624666346664466654666646667466684666946670466714667246673466744667546676466774667846679466804668146682466834668446685466864668746688466894669046691466924669346694466954669646697466984669946700467014670246703467044670546706467074670846709467104671146712467134671446715467164671746718467194672046721467224672346724467254672646727467284672946730467314673246733467344673546736467374673846739467404674146742467434674446745467464674746748467494675046751467524675346754467554675646757467584675946760467614676246763467644676546766467674676846769467704677146772467734677446775467764677746778467794678046781467824678346784467854678646787467884678946790467914679246793467944679546796467974679846799468004680146802468034680446805468064680746808468094681046811468124681346814468154681646817468184681946820468214682246823468244682546826468274682846829468304683146832468334683446835468364683746838468394684046841468424684346844468454684646847468484684946850468514685246853468544685546856468574685846859468604686146862468634686446865468664686746868468694687046871468724687346874468754687646877468784687946880468814688246883468844688546886468874688846889468904689146892468934689446895468964689746898468994690046901469024690346904469054690646907469084690946910469114691246913469144691546916469174691846919469204692146922469234692446925469264692746928469294693046931469324693346934469354693646937469384693946940469414694246943469444694546946469474694846949469504695146952469534695446955469564695746958469594696046961469624696346964469654696646967469684696946970469714697246973469744697546976469774697846979469804698146982469834698446985469864698746988469894699046991469924699346994469954699646997469984699947000470014700247003470044700547006470074700847009470104701147012470134701447015470164701747018470194702047021470224702347024470254702647027470284702947030470314703247033470344703547036470374703847039470404704147042470434704447045470464704747048470494705047051470524705347054470554705647057470584705947060470614706247063470644706547066470674706847069470704707147072470734707447075470764707747078470794708047081470824708347084470854708647087470884708947090470914709247093470944709547096470974709847099471004710147102471034710447105471064710747108471094711047111471124711347114471154711647117471184711947120471214712247123471244712547126471274712847129471304713147132471334713447135471364713747138471394714047141471424714347144471454714647147471484714947150471514715247153471544715547156471574715847159471604716147162471634716447165471664716747168471694717047171471724717347174471754717647177471784717947180471814718247183471844718547186471874718847189471904719147192471934719447195471964719747198471994720047201472024720347204472054720647207472084720947210472114721247213472144721547216472174721847219472204722147222472234722447225472264722747228472294723047231472324723347234472354723647237472384723947240472414724247243472444724547246472474724847249472504725147252472534725447255472564725747258472594726047261472624726347264472654726647267472684726947270472714727247273472744727547276472774727847279472804728147282472834728447285472864728747288472894729047291472924729347294472954729647297472984729947300473014730247303473044730547306473074730847309473104731147312473134731447315473164731747318473194732047321473224732347324473254732647327473284732947330473314733247333473344733547336473374733847339473404734147342473434734447345473464734747348473494735047351473524735347354473554735647357473584735947360473614736247363473644736547366473674736847369473704737147372473734737447375473764737747378473794738047381473824738347384473854738647387473884738947390473914739247393473944739547396473974739847399474004740147402474034740447405474064740747408474094741047411474124741347414474154741647417474184741947420474214742247423474244742547426474274742847429474304743147432474334743447435474364743747438474394744047441474424744347444474454744647447474484744947450474514745247453474544745547456474574745847459474604746147462474634746447465474664746747468474694747047471474724747347474474754747647477474784747947480474814748247483474844748547486474874748847489474904749147492474934749447495474964749747498474994750047501475024750347504475054750647507475084750947510475114751247513475144751547516475174751847519475204752147522475234752447525475264752747528475294753047531475324753347534475354753647537475384753947540475414754247543475444754547546475474754847549475504755147552475534755447555475564755747558475594756047561475624756347564475654756647567475684756947570475714757247573475744757547576475774757847579475804758147582475834758447585475864758747588475894759047591475924759347594475954759647597475984759947600476014760247603476044760547606476074760847609476104761147612476134761447615476164761747618476194762047621476224762347624476254762647627476284762947630476314763247633476344763547636476374763847639476404764147642476434764447645476464764747648476494765047651476524765347654476554765647657476584765947660476614766247663476644766547666476674766847669476704767147672476734767447675476764767747678476794768047681476824768347684476854768647687476884768947690476914769247693476944769547696476974769847699477004770147702477034770447705477064770747708477094771047711477124771347714477154771647717477184771947720477214772247723477244772547726477274772847729477304773147732477334773447735477364773747738477394774047741477424774347744477454774647747477484774947750477514775247753477544775547756477574775847759477604776147762477634776447765477664776747768477694777047771477724777347774477754777647777477784777947780477814778247783477844778547786477874778847789477904779147792477934779447795477964779747798477994780047801478024780347804478054780647807478084780947810478114781247813478144781547816478174781847819478204782147822478234782447825478264782747828478294783047831478324783347834478354783647837478384783947840478414784247843478444784547846478474784847849478504785147852478534785447855478564785747858478594786047861478624786347864478654786647867478684786947870478714787247873478744787547876478774787847879478804788147882478834788447885478864788747888478894789047891478924789347894478954789647897478984789947900479014790247903479044790547906479074790847909479104791147912479134791447915479164791747918479194792047921479224792347924479254792647927479284792947930479314793247933479344793547936479374793847939479404794147942479434794447945479464794747948479494795047951479524795347954479554795647957479584795947960479614796247963479644796547966479674796847969479704797147972479734797447975479764797747978479794798047981479824798347984479854798647987479884798947990479914799247993479944799547996479974799847999480004800148002480034800448005480064800748008480094801048011480124801348014480154801648017480184801948020480214802248023480244802548026480274802848029480304803148032480334803448035480364803748038480394804048041480424804348044480454804648047480484804948050480514805248053480544805548056480574805848059480604806148062480634806448065480664806748068480694807048071480724807348074480754807648077480784807948080480814808248083480844808548086480874808848089480904809148092480934809448095480964809748098480994810048101481024810348104481054810648107481084810948110481114811248113481144811548116481174811848119481204812148122481234812448125481264812748128481294813048131481324813348134481354813648137481384813948140481414814248143481444814548146481474814848149481504815148152481534815448155481564815748158481594816048161481624816348164481654816648167481684816948170481714817248173481744817548176481774817848179481804818148182481834818448185481864818748188481894819048191481924819348194481954819648197481984819948200482014820248203482044820548206482074820848209482104821148212482134821448215482164821748218482194822048221482224822348224482254822648227482284822948230482314823248233482344823548236482374823848239482404824148242482434824448245482464824748248482494825048251482524825348254482554825648257482584825948260482614826248263482644826548266482674826848269482704827148272482734827448275482764827748278482794828048281482824828348284482854828648287482884828948290482914829248293482944829548296482974829848299483004830148302483034830448305483064830748308483094831048311483124831348314483154831648317483184831948320483214832248323483244832548326483274832848329483304833148332483334833448335483364833748338483394834048341483424834348344483454834648347483484834948350483514835248353483544835548356483574835848359483604836148362483634836448365483664836748368483694837048371483724837348374483754837648377483784837948380483814838248383483844838548386483874838848389483904839148392483934839448395483964839748398483994840048401484024840348404484054840648407484084840948410484114841248413484144841548416484174841848419484204842148422484234842448425484264842748428484294843048431484324843348434484354843648437484384843948440484414844248443484444844548446484474844848449484504845148452484534845448455484564845748458484594846048461484624846348464484654846648467484684846948470484714847248473484744847548476484774847848479484804848148482484834848448485484864848748488484894849048491484924849348494484954849648497484984849948500485014850248503485044850548506485074850848509485104851148512485134851448515485164851748518485194852048521485224852348524485254852648527485284852948530485314853248533485344853548536485374853848539485404854148542485434854448545485464854748548485494855048551485524855348554485554855648557485584855948560485614856248563485644856548566485674856848569485704857148572485734857448575485764857748578485794858048581485824858348584485854858648587485884858948590485914859248593485944859548596485974859848599486004860148602486034860448605486064860748608486094861048611486124861348614486154861648617486184861948620486214862248623486244862548626486274862848629486304863148632486334863448635486364863748638486394864048641486424864348644486454864648647486484864948650486514865248653486544865548656486574865848659486604866148662486634866448665486664866748668486694867048671486724867348674486754867648677486784867948680486814868248683486844868548686486874868848689486904869148692486934869448695486964869748698486994870048701487024870348704487054870648707487084870948710487114871248713487144871548716487174871848719487204872148722487234872448725487264872748728487294873048731487324873348734487354873648737487384873948740487414874248743487444874548746487474874848749487504875148752487534875448755487564875748758487594876048761487624876348764487654876648767487684876948770487714877248773487744877548776487774877848779487804878148782487834878448785487864878748788487894879048791487924879348794487954879648797487984879948800488014880248803488044880548806488074880848809488104881148812488134881448815488164881748818488194882048821488224882348824488254882648827488284882948830488314883248833488344883548836488374883848839488404884148842488434884448845488464884748848488494885048851488524885348854488554885648857488584885948860488614886248863488644886548866488674886848869488704887148872488734887448875488764887748878488794888048881488824888348884488854888648887488884888948890488914889248893488944889548896488974889848899489004890148902489034890448905489064890748908489094891048911489124891348914489154891648917489184891948920489214892248923489244892548926489274892848929489304893148932489334893448935489364893748938489394894048941489424894348944489454894648947489484894948950489514895248953489544895548956489574895848959489604896148962489634896448965489664896748968489694897048971489724897348974489754897648977489784897948980489814898248983489844898548986489874898848989489904899148992489934899448995489964899748998489994900049001490024900349004490054900649007490084900949010490114901249013490144901549016490174901849019490204902149022490234902449025490264902749028490294903049031490324903349034490354903649037490384903949040490414904249043490444904549046490474904849049490504905149052490534905449055490564905749058490594906049061490624906349064490654906649067490684906949070490714907249073490744907549076490774907849079490804908149082490834908449085490864908749088490894909049091490924909349094490954909649097490984909949100491014910249103491044910549106491074910849109491104911149112491134911449115491164911749118491194912049121491224912349124491254912649127491284912949130491314913249133491344913549136491374913849139491404914149142491434914449145491464914749148491494915049151491524915349154491554915649157491584915949160491614916249163491644916549166491674916849169491704917149172491734917449175491764917749178491794918049181491824918349184491854918649187491884918949190491914919249193491944919549196491974919849199492004920149202492034920449205492064920749208492094921049211492124921349214492154921649217492184921949220492214922249223492244922549226492274922849229492304923149232492334923449235492364923749238492394924049241492424924349244492454924649247492484924949250492514925249253492544925549256492574925849259492604926149262492634926449265492664926749268492694927049271492724927349274492754927649277492784927949280492814928249283492844928549286492874928849289492904929149292492934929449295492964929749298492994930049301493024930349304493054930649307493084930949310493114931249313493144931549316493174931849319493204932149322493234932449325493264932749328493294933049331493324933349334493354933649337493384933949340493414934249343493444934549346493474934849349493504935149352493534935449355493564935749358493594936049361493624936349364493654936649367493684936949370493714937249373493744937549376493774937849379493804938149382493834938449385493864938749388493894939049391493924939349394493954939649397493984939949400494014940249403494044940549406494074940849409494104941149412494134941449415494164941749418494194942049421494224942349424494254942649427494284942949430494314943249433494344943549436494374943849439494404944149442494434944449445494464944749448494494945049451494524945349454494554945649457494584945949460494614946249463494644946549466494674946849469494704947149472494734947449475494764947749478494794948049481494824948349484494854948649487494884948949490494914949249493494944949549496494974949849499495004950149502495034950449505495064950749508495094951049511495124951349514495154951649517495184951949520495214952249523495244952549526495274952849529495304953149532495334953449535495364953749538495394954049541495424954349544495454954649547495484954949550495514955249553495544955549556495574955849559495604956149562495634956449565495664956749568495694957049571495724957349574495754957649577495784957949580495814958249583495844958549586495874958849589495904959149592495934959449595495964959749598495994960049601496024960349604496054960649607496084960949610496114961249613496144961549616496174961849619496204962149622496234962449625496264962749628496294963049631496324963349634496354963649637496384963949640496414964249643496444964549646496474964849649496504965149652496534965449655496564965749658496594966049661496624966349664496654966649667496684966949670496714967249673496744967549676496774967849679496804968149682496834968449685496864968749688496894969049691496924969349694496954969649697496984969949700497014970249703497044970549706497074970849709497104971149712497134971449715497164971749718497194972049721497224972349724497254972649727497284972949730497314973249733497344973549736497374973849739497404974149742497434974449745497464974749748497494975049751497524975349754497554975649757497584975949760497614976249763497644976549766497674976849769497704977149772497734977449775497764977749778497794978049781497824978349784497854978649787497884978949790497914979249793497944979549796497974979849799498004980149802498034980449805498064980749808498094981049811498124981349814498154981649817498184981949820498214982249823498244982549826498274982849829498304983149832498334983449835498364983749838498394984049841498424984349844498454984649847498484984949850498514985249853498544985549856498574985849859498604986149862498634986449865498664986749868498694987049871498724987349874498754987649877498784987949880498814988249883498844988549886498874988849889498904989149892498934989449895498964989749898498994990049901499024990349904499054990649907499084990949910499114991249913499144991549916499174991849919499204992149922499234992449925499264992749928499294993049931499324993349934499354993649937499384993949940499414994249943499444994549946499474994849949499504995149952499534995449955499564995749958499594996049961499624996349964499654996649967499684996949970499714997249973499744997549976499774997849979499804998149982499834998449985499864998749988499894999049991499924999349994499954999649997499984999950000500015000250003500045000550006500075000850009500105001150012500135001450015500165001750018500195002050021500225002350024500255002650027500285002950030500315003250033500345003550036500375003850039500405004150042500435004450045500465004750048500495005050051500525005350054500555005650057500585005950060500615006250063500645006550066500675006850069500705007150072500735007450075500765007750078500795008050081500825008350084500855008650087500885008950090500915009250093500945009550096500975009850099501005010150102501035010450105501065010750108501095011050111501125011350114501155011650117501185011950120501215012250123501245012550126501275012850129501305013150132501335013450135501365013750138501395014050141501425014350144501455014650147501485014950150501515015250153501545015550156501575015850159501605016150162501635016450165501665016750168501695017050171501725017350174501755017650177501785017950180501815018250183501845018550186501875018850189501905019150192501935019450195501965019750198501995020050201502025020350204502055020650207502085020950210502115021250213502145021550216502175021850219502205022150222502235022450225502265022750228502295023050231502325023350234502355023650237502385023950240502415024250243502445024550246502475024850249502505025150252502535025450255502565025750258502595026050261502625026350264502655026650267502685026950270502715027250273502745027550276502775027850279502805028150282502835028450285502865028750288502895029050291502925029350294502955029650297502985029950300503015030250303503045030550306503075030850309503105031150312503135031450315503165031750318503195032050321503225032350324503255032650327503285032950330503315033250333503345033550336503375033850339503405034150342503435034450345503465034750348503495035050351503525035350354503555035650357503585035950360503615036250363503645036550366503675036850369503705037150372503735037450375503765037750378503795038050381503825038350384503855038650387503885038950390503915039250393503945039550396503975039850399504005040150402504035040450405504065040750408504095041050411504125041350414504155041650417504185041950420504215042250423504245042550426504275042850429504305043150432504335043450435504365043750438504395044050441504425044350444504455044650447504485044950450504515045250453504545045550456504575045850459504605046150462504635046450465504665046750468504695047050471504725047350474504755047650477504785047950480504815048250483504845048550486504875048850489504905049150492504935049450495504965049750498504995050050501505025050350504505055050650507505085050950510505115051250513505145051550516505175051850519505205052150522505235052450525505265052750528505295053050531505325053350534505355053650537505385053950540505415054250543505445054550546505475054850549505505055150552505535055450555505565055750558505595056050561505625056350564505655056650567505685056950570505715057250573505745057550576505775057850579505805058150582505835058450585505865058750588505895059050591505925059350594505955059650597505985059950600506015060250603506045060550606506075060850609506105061150612506135061450615506165061750618506195062050621506225062350624506255062650627506285062950630506315063250633506345063550636506375063850639506405064150642506435064450645506465064750648506495065050651506525065350654506555065650657506585065950660506615066250663506645066550666506675066850669506705067150672506735067450675506765067750678506795068050681506825068350684506855068650687506885068950690506915069250693506945069550696506975069850699507005070150702507035070450705507065070750708507095071050711507125071350714507155071650717507185071950720507215072250723507245072550726507275072850729507305073150732507335073450735507365073750738507395074050741507425074350744507455074650747507485074950750507515075250753507545075550756507575075850759507605076150762507635076450765507665076750768507695077050771507725077350774507755077650777507785077950780507815078250783507845078550786507875078850789507905079150792507935079450795507965079750798507995080050801508025080350804508055080650807508085080950810508115081250813508145081550816508175081850819508205082150822508235082450825508265082750828508295083050831508325083350834508355083650837508385083950840508415084250843508445084550846508475084850849508505085150852508535085450855508565085750858508595086050861508625086350864508655086650867508685086950870508715087250873508745087550876508775087850879508805088150882508835088450885508865088750888508895089050891508925089350894508955089650897508985089950900509015090250903509045090550906509075090850909509105091150912509135091450915509165091750918509195092050921509225092350924509255092650927509285092950930509315093250933509345093550936509375093850939509405094150942509435094450945509465094750948509495095050951509525095350954509555095650957509585095950960509615096250963509645096550966509675096850969509705097150972509735097450975509765097750978509795098050981509825098350984509855098650987509885098950990509915099250993509945099550996509975099850999510005100151002510035100451005510065100751008510095101051011510125101351014510155101651017510185101951020510215102251023510245102551026510275102851029510305103151032510335103451035510365103751038510395104051041510425104351044510455104651047510485104951050510515105251053510545105551056510575105851059510605106151062510635106451065510665106751068510695107051071510725107351074510755107651077510785107951080510815108251083510845108551086510875108851089510905109151092510935109451095510965109751098510995110051101511025110351104511055110651107511085110951110511115111251113511145111551116511175111851119511205112151122511235112451125511265112751128511295113051131511325113351134511355113651137511385113951140511415114251143511445114551146511475114851149511505115151152511535115451155511565115751158511595116051161511625116351164511655116651167511685116951170511715117251173511745117551176511775117851179511805118151182511835118451185511865118751188511895119051191511925119351194511955119651197511985119951200512015120251203512045120551206512075120851209512105121151212512135121451215512165121751218512195122051221512225122351224512255122651227512285122951230512315123251233512345123551236512375123851239512405124151242512435124451245512465124751248512495125051251512525125351254512555125651257512585125951260512615126251263512645126551266512675126851269512705127151272512735127451275512765127751278512795128051281512825128351284512855128651287512885128951290512915129251293512945129551296512975129851299513005130151302513035130451305513065130751308513095131051311513125131351314513155131651317513185131951320513215132251323513245132551326513275132851329513305133151332513335133451335513365133751338513395134051341513425134351344513455134651347513485134951350513515135251353513545135551356513575135851359513605136151362513635136451365513665136751368513695137051371513725137351374513755137651377513785137951380513815138251383513845138551386513875138851389513905139151392513935139451395513965139751398513995140051401514025140351404514055140651407514085140951410514115141251413514145141551416514175141851419514205142151422514235142451425514265142751428514295143051431514325143351434514355143651437514385143951440514415144251443514445144551446514475144851449514505145151452514535145451455514565145751458514595146051461514625146351464514655146651467514685146951470514715147251473514745147551476514775147851479514805148151482514835148451485514865148751488514895149051491514925149351494514955149651497514985149951500515015150251503515045150551506515075150851509515105151151512515135151451515515165151751518515195152051521515225152351524515255152651527515285152951530515315153251533515345153551536515375153851539515405154151542515435154451545515465154751548515495155051551515525155351554515555155651557515585155951560515615156251563515645156551566515675156851569515705157151572515735157451575515765157751578515795158051581515825158351584515855158651587515885158951590515915159251593515945159551596515975159851599516005160151602516035160451605516065160751608516095161051611516125161351614516155161651617516185161951620516215162251623516245162551626516275162851629516305163151632516335163451635516365163751638516395164051641516425164351644516455164651647516485164951650516515165251653516545165551656516575165851659516605166151662516635166451665516665166751668516695167051671516725167351674516755167651677516785167951680516815168251683516845168551686516875168851689516905169151692516935169451695516965169751698516995170051701517025170351704517055170651707517085170951710517115171251713517145171551716517175171851719517205172151722517235172451725517265172751728517295173051731517325173351734517355173651737517385173951740517415174251743517445174551746517475174851749517505175151752517535175451755517565175751758517595176051761517625176351764517655176651767517685176951770517715177251773517745177551776517775177851779517805178151782517835178451785517865178751788517895179051791517925179351794517955179651797517985179951800518015180251803518045180551806518075180851809518105181151812518135181451815518165181751818518195182051821518225182351824518255182651827518285182951830518315183251833518345183551836518375183851839518405184151842518435184451845518465184751848518495185051851518525185351854518555185651857518585185951860518615186251863518645186551866518675186851869518705187151872518735187451875518765187751878518795188051881518825188351884518855188651887518885188951890518915189251893518945189551896518975189851899519005190151902519035190451905519065190751908519095191051911519125191351914519155191651917519185191951920519215192251923519245192551926519275192851929519305193151932519335193451935519365193751938519395194051941519425194351944519455194651947519485194951950519515195251953519545195551956519575195851959519605196151962519635196451965519665196751968519695197051971519725197351974519755197651977519785197951980519815198251983519845198551986519875198851989519905199151992519935199451995519965199751998519995200052001520025200352004520055200652007520085200952010520115201252013520145201552016520175201852019520205202152022520235202452025520265202752028520295203052031520325203352034520355203652037520385203952040520415204252043520445204552046520475204852049520505205152052520535205452055520565205752058520595206052061520625206352064520655206652067520685206952070520715207252073520745207552076520775207852079520805208152082520835208452085520865208752088520895209052091520925209352094520955209652097520985209952100521015210252103521045210552106521075210852109521105211152112521135211452115521165211752118521195212052121521225212352124521255212652127521285212952130521315213252133521345213552136521375213852139521405214152142521435214452145521465214752148521495215052151521525215352154521555215652157521585215952160521615216252163521645216552166521675216852169521705217152172521735217452175521765217752178521795218052181521825218352184521855218652187521885218952190521915219252193521945219552196521975219852199522005220152202522035220452205522065220752208522095221052211522125221352214522155221652217522185221952220522215222252223522245222552226522275222852229522305223152232522335223452235522365223752238522395224052241522425224352244522455224652247522485224952250522515225252253522545225552256522575225852259522605226152262522635226452265522665226752268522695227052271522725227352274522755227652277522785227952280522815228252283522845228552286522875228852289522905229152292522935229452295522965229752298522995230052301523025230352304523055230652307523085230952310523115231252313523145231552316523175231852319523205232152322523235232452325523265232752328523295233052331523325233352334523355233652337523385233952340523415234252343523445234552346523475234852349523505235152352523535235452355523565235752358523595236052361523625236352364523655236652367523685236952370523715237252373523745237552376523775237852379523805238152382523835238452385523865238752388523895239052391523925239352394523955239652397523985239952400524015240252403524045240552406524075240852409524105241152412524135241452415524165241752418524195242052421524225242352424524255242652427524285242952430524315243252433524345243552436524375243852439524405244152442524435244452445524465244752448524495245052451524525245352454524555245652457524585245952460524615246252463524645246552466524675246852469524705247152472524735247452475524765247752478524795248052481524825248352484524855248652487524885248952490524915249252493524945249552496524975249852499525005250152502525035250452505525065250752508525095251052511525125251352514525155251652517525185251952520525215252252523525245252552526525275252852529525305253152532525335253452535525365253752538525395254052541525425254352544525455254652547525485254952550525515255252553525545255552556525575255852559525605256152562525635256452565525665256752568525695257052571525725257352574525755257652577525785257952580525815258252583525845258552586525875258852589525905259152592525935259452595525965259752598525995260052601526025260352604526055260652607526085260952610526115261252613526145261552616526175261852619526205262152622526235262452625526265262752628526295263052631526325263352634526355263652637526385263952640526415264252643526445264552646526475264852649526505265152652526535265452655526565265752658526595266052661526625266352664526655266652667526685266952670526715267252673526745267552676526775267852679526805268152682526835268452685526865268752688526895269052691526925269352694526955269652697526985269952700527015270252703527045270552706527075270852709527105271152712527135271452715527165271752718527195272052721527225272352724527255272652727527285272952730527315273252733527345273552736527375273852739527405274152742527435274452745527465274752748527495275052751527525275352754527555275652757527585275952760527615276252763527645276552766527675276852769527705277152772527735277452775527765277752778527795278052781527825278352784527855278652787527885278952790527915279252793527945279552796527975279852799528005280152802528035280452805528065280752808528095281052811528125281352814528155281652817528185281952820528215282252823528245282552826528275282852829528305283152832528335283452835528365283752838528395284052841528425284352844528455284652847528485284952850528515285252853528545285552856528575285852859528605286152862528635286452865528665286752868528695287052871528725287352874528755287652877528785287952880528815288252883528845288552886528875288852889528905289152892528935289452895528965289752898528995290052901529025290352904529055290652907529085290952910529115291252913529145291552916529175291852919529205292152922529235292452925529265292752928529295293052931529325293352934529355293652937529385293952940529415294252943529445294552946529475294852949529505295152952529535295452955529565295752958529595296052961529625296352964529655296652967529685296952970529715297252973529745297552976529775297852979529805298152982529835298452985529865298752988529895299052991529925299352994529955299652997529985299953000530015300253003530045300553006530075300853009530105301153012530135301453015530165301753018530195302053021530225302353024530255302653027530285302953030530315303253033530345303553036530375303853039530405304153042530435304453045530465304753048530495305053051530525305353054530555305653057530585305953060530615306253063530645306553066530675306853069530705307153072530735307453075530765307753078530795308053081530825308353084530855308653087530885308953090530915309253093530945309553096530975309853099531005310153102531035310453105531065310753108531095311053111531125311353114531155311653117531185311953120531215312253123531245312553126531275312853129531305313153132531335313453135531365313753138531395314053141531425314353144531455314653147531485314953150531515315253153531545315553156531575315853159531605316153162531635316453165531665316753168531695317053171531725317353174531755317653177531785317953180531815318253183531845318553186531875318853189531905319153192531935319453195531965319753198531995320053201532025320353204532055320653207532085320953210532115321253213532145321553216532175321853219532205322153222532235322453225532265322753228532295323053231532325323353234532355323653237532385323953240532415324253243532445324553246532475324853249532505325153252532535325453255532565325753258532595326053261532625326353264532655326653267532685326953270532715327253273532745327553276532775327853279532805328153282532835328453285532865328753288532895329053291532925329353294532955329653297532985329953300533015330253303533045330553306533075330853309533105331153312533135331453315533165331753318533195332053321533225332353324533255332653327533285332953330533315333253333533345333553336533375333853339533405334153342533435334453345533465334753348533495335053351533525335353354533555335653357533585335953360533615336253363533645336553366533675336853369533705337153372533735337453375533765337753378533795338053381533825338353384533855338653387533885338953390533915339253393533945339553396533975339853399534005340153402534035340453405534065340753408534095341053411534125341353414534155341653417534185341953420534215342253423534245342553426534275342853429534305343153432534335343453435534365343753438534395344053441534425344353444534455344653447534485344953450534515345253453534545345553456534575345853459534605346153462534635346453465534665346753468534695347053471534725347353474534755347653477534785347953480534815348253483534845348553486534875348853489534905349153492534935349453495534965349753498534995350053501535025350353504535055350653507535085350953510535115351253513535145351553516535175351853519535205352153522535235352453525535265352753528535295353053531535325353353534535355353653537535385353953540535415354253543535445354553546535475354853549535505355153552535535355453555535565355753558535595356053561535625356353564535655356653567535685356953570535715357253573535745357553576535775357853579535805358153582535835358453585535865358753588535895359053591535925359353594535955359653597535985359953600536015360253603536045360553606536075360853609536105361153612536135361453615536165361753618536195362053621536225362353624536255362653627536285362953630536315363253633536345363553636536375363853639536405364153642536435364453645536465364753648536495365053651536525365353654536555365653657536585365953660536615366253663536645366553666536675366853669536705367153672536735367453675536765367753678536795368053681536825368353684536855368653687536885368953690536915369253693536945369553696536975369853699537005370153702537035370453705537065370753708537095371053711537125371353714537155371653717537185371953720537215372253723537245372553726537275372853729537305373153732537335373453735537365373753738537395374053741537425374353744537455374653747537485374953750537515375253753537545375553756537575375853759537605376153762537635376453765537665376753768537695377053771537725377353774537755377653777537785377953780537815378253783537845378553786537875378853789537905379153792537935379453795537965379753798537995380053801538025380353804538055380653807538085380953810538115381253813538145381553816538175381853819538205382153822538235382453825538265382753828538295383053831538325383353834538355383653837538385383953840538415384253843538445384553846538475384853849538505385153852538535385453855538565385753858538595386053861538625386353864538655386653867538685386953870538715387253873538745387553876538775387853879538805388153882538835388453885538865388753888538895389053891538925389353894538955389653897538985389953900539015390253903539045390553906539075390853909539105391153912539135391453915539165391753918539195392053921539225392353924539255392653927539285392953930539315393253933539345393553936539375393853939539405394153942539435394453945539465394753948539495395053951539525395353954539555395653957539585395953960539615396253963539645396553966539675396853969539705397153972539735397453975539765397753978539795398053981539825398353984539855398653987539885398953990539915399253993539945399553996539975399853999540005400154002540035400454005540065400754008540095401054011540125401354014540155401654017540185401954020540215402254023540245402554026540275402854029540305403154032540335403454035540365403754038540395404054041540425404354044540455404654047540485404954050540515405254053540545405554056540575405854059540605406154062540635406454065540665406754068540695407054071540725407354074540755407654077540785407954080540815408254083540845408554086540875408854089540905409154092540935409454095540965409754098540995410054101541025410354104541055410654107541085410954110541115411254113541145411554116541175411854119541205412154122541235412454125541265412754128541295413054131541325413354134541355413654137541385413954140541415414254143541445414554146541475414854149541505415154152541535415454155541565415754158541595416054161541625416354164541655416654167541685416954170541715417254173541745417554176541775417854179541805418154182541835418454185541865418754188541895419054191541925419354194541955419654197541985419954200542015420254203542045420554206542075420854209542105421154212542135421454215542165421754218542195422054221542225422354224542255422654227542285422954230542315423254233542345423554236542375423854239542405424154242542435424454245542465424754248542495425054251542525425354254542555425654257542585425954260542615426254263542645426554266542675426854269542705427154272542735427454275542765427754278542795428054281542825428354284542855428654287542885428954290542915429254293542945429554296542975429854299543005430154302543035430454305543065430754308543095431054311543125431354314543155431654317543185431954320543215432254323543245432554326543275432854329543305433154332543335433454335543365433754338543395434054341543425434354344543455434654347543485434954350543515435254353543545435554356543575435854359543605436154362543635436454365543665436754368543695437054371543725437354374543755437654377543785437954380543815438254383543845438554386543875438854389543905439154392543935439454395543965439754398543995440054401544025440354404544055440654407544085440954410544115441254413544145441554416544175441854419544205442154422544235442454425544265442754428544295443054431544325443354434544355443654437544385443954440544415444254443544445444554446544475444854449544505445154452544535445454455544565445754458544595446054461544625446354464544655446654467544685446954470544715447254473544745447554476544775447854479544805448154482544835448454485544865448754488544895449054491544925449354494544955449654497544985449954500545015450254503545045450554506545075450854509545105451154512545135451454515545165451754518545195452054521545225452354524545255452654527545285452954530545315453254533545345453554536545375453854539545405454154542545435454454545545465454754548545495455054551545525455354554545555455654557545585455954560545615456254563545645456554566545675456854569545705457154572545735457454575545765457754578545795458054581545825458354584545855458654587545885458954590545915459254593545945459554596545975459854599546005460154602546035460454605546065460754608546095461054611546125461354614546155461654617546185461954620546215462254623546245462554626546275462854629546305463154632546335463454635546365463754638546395464054641546425464354644546455464654647546485464954650546515465254653546545465554656546575465854659546605466154662546635466454665546665466754668546695467054671546725467354674546755467654677546785467954680546815468254683546845468554686546875468854689546905469154692546935469454695546965469754698546995470054701547025470354704547055470654707547085470954710547115471254713547145471554716547175471854719547205472154722547235472454725547265472754728547295473054731547325473354734547355473654737547385473954740547415474254743547445474554746547475474854749547505475154752547535475454755547565475754758547595476054761547625476354764547655476654767547685476954770547715477254773547745477554776547775477854779547805478154782547835478454785547865478754788547895479054791547925479354794547955479654797547985479954800548015480254803548045480554806548075480854809548105481154812548135481454815548165481754818548195482054821548225482354824548255482654827548285482954830548315483254833548345483554836548375483854839548405484154842548435484454845548465484754848548495485054851548525485354854548555485654857548585485954860548615486254863548645486554866548675486854869548705487154872548735487454875548765487754878548795488054881548825488354884548855488654887548885488954890548915489254893548945489554896548975489854899549005490154902549035490454905549065490754908549095491054911549125491354914549155491654917549185491954920549215492254923549245492554926549275492854929549305493154932549335493454935549365493754938549395494054941549425494354944549455494654947549485494954950549515495254953549545495554956549575495854959549605496154962549635496454965549665496754968549695497054971549725497354974549755497654977549785497954980549815498254983549845498554986549875498854989549905499154992549935499454995549965499754998549995500055001550025500355004550055500655007550085500955010550115501255013550145501555016550175501855019550205502155022550235502455025550265502755028550295503055031550325503355034550355503655037550385503955040550415504255043550445504555046550475504855049550505505155052550535505455055550565505755058550595506055061550625506355064550655506655067550685506955070550715507255073550745507555076550775507855079550805508155082550835508455085550865508755088550895509055091550925509355094550955509655097550985509955100551015510255103551045510555106551075510855109551105511155112551135511455115551165511755118551195512055121551225512355124551255512655127551285512955130551315513255133551345513555136551375513855139551405514155142551435514455145551465514755148551495515055151551525515355154551555515655157551585515955160551615516255163551645516555166551675516855169551705517155172551735517455175551765517755178551795518055181551825518355184551855518655187551885518955190551915519255193551945519555196551975519855199552005520155202552035520455205552065520755208552095521055211552125521355214552155521655217552185521955220552215522255223552245522555226552275522855229552305523155232552335523455235552365523755238552395524055241552425524355244552455524655247552485524955250552515525255253552545525555256552575525855259552605526155262552635526455265552665526755268552695527055271552725527355274552755527655277552785527955280552815528255283552845528555286552875528855289552905529155292552935529455295552965529755298552995530055301553025530355304553055530655307553085530955310553115531255313553145531555316553175531855319553205532155322553235532455325553265532755328553295533055331553325533355334553355533655337553385533955340553415534255343553445534555346553475534855349553505535155352553535535455355553565535755358553595536055361553625536355364553655536655367553685536955370553715537255373553745537555376553775537855379553805538155382553835538455385553865538755388553895539055391553925539355394553955539655397553985539955400554015540255403554045540555406554075540855409554105541155412554135541455415554165541755418554195542055421554225542355424554255542655427554285542955430554315543255433554345543555436554375543855439554405544155442554435544455445554465544755448554495545055451554525545355454554555545655457554585545955460554615546255463554645546555466554675546855469554705547155472554735547455475554765547755478554795548055481554825548355484554855548655487554885548955490554915549255493554945549555496554975549855499555005550155502555035550455505555065550755508555095551055511555125551355514555155551655517555185551955520555215552255523555245552555526555275552855529555305553155532555335553455535555365553755538555395554055541555425554355544555455554655547555485554955550555515555255553555545555555556555575555855559555605556155562555635556455565555665556755568555695557055571555725557355574555755557655577555785557955580555815558255583555845558555586555875558855589555905559155592555935559455595555965559755598555995560055601556025560355604556055560655607556085560955610556115561255613556145561555616556175561855619556205562155622556235562455625556265562755628556295563055631556325563355634556355563655637556385563955640556415564255643556445564555646556475564855649556505565155652556535565455655556565565755658556595566055661556625566355664556655566655667556685566955670556715567255673556745567555676556775567855679556805568155682556835568455685556865568755688556895569055691556925569355694556955569655697556985569955700557015570255703557045570555706557075570855709557105571155712557135571455715557165571755718557195572055721557225572355724557255572655727557285572955730557315573255733557345573555736557375573855739557405574155742557435574455745557465574755748557495575055751557525575355754557555575655757557585575955760557615576255763557645576555766557675576855769557705577155772557735577455775557765577755778557795578055781557825578355784557855578655787557885578955790557915579255793557945579555796557975579855799558005580155802558035580455805558065580755808558095581055811558125581355814558155581655817558185581955820558215582255823558245582555826558275582855829558305583155832558335583455835558365583755838558395584055841558425584355844558455584655847558485584955850558515585255853558545585555856558575585855859558605586155862558635586455865558665586755868558695587055871558725587355874558755587655877558785587955880558815588255883558845588555886558875588855889558905589155892558935589455895558965589755898558995590055901559025590355904559055590655907559085590955910559115591255913559145591555916559175591855919559205592155922559235592455925559265592755928559295593055931559325593355934559355593655937559385593955940559415594255943559445594555946559475594855949559505595155952559535595455955559565595755958559595596055961559625596355964559655596655967559685596955970559715597255973559745597555976559775597855979559805598155982559835598455985559865598755988559895599055991559925599355994559955599655997559985599956000560015600256003560045600556006560075600856009560105601156012560135601456015560165601756018560195602056021560225602356024560255602656027560285602956030560315603256033560345603556036560375603856039560405604156042560435604456045560465604756048560495605056051560525605356054560555605656057560585605956060560615606256063560645606556066560675606856069560705607156072560735607456075560765607756078560795608056081560825608356084560855608656087560885608956090560915609256093560945609556096560975609856099561005610156102561035610456105561065610756108561095611056111561125611356114561155611656117561185611956120561215612256123561245612556126561275612856129561305613156132561335613456135561365613756138561395614056141561425614356144561455614656147561485614956150561515615256153561545615556156561575615856159561605616156162561635616456165561665616756168561695617056171561725617356174561755617656177561785617956180561815618256183561845618556186561875618856189561905619156192561935619456195561965619756198561995620056201562025620356204562055620656207562085620956210562115621256213562145621556216562175621856219562205622156222562235622456225562265622756228562295623056231562325623356234562355623656237562385623956240562415624256243562445624556246562475624856249562505625156252562535625456255562565625756258562595626056261562625626356264562655626656267562685626956270562715627256273562745627556276562775627856279562805628156282562835628456285562865628756288562895629056291562925629356294562955629656297562985629956300563015630256303563045630556306563075630856309563105631156312563135631456315563165631756318563195632056321563225632356324563255632656327563285632956330563315633256333563345633556336563375633856339563405634156342563435634456345563465634756348563495635056351563525635356354563555635656357563585635956360563615636256363563645636556366563675636856369563705637156372563735637456375563765637756378563795638056381563825638356384563855638656387563885638956390563915639256393563945639556396563975639856399564005640156402564035640456405564065640756408564095641056411564125641356414564155641656417564185641956420564215642256423564245642556426564275642856429564305643156432564335643456435564365643756438564395644056441564425644356444564455644656447564485644956450564515645256453564545645556456564575645856459564605646156462564635646456465564665646756468564695647056471564725647356474564755647656477564785647956480564815648256483564845648556486564875648856489564905649156492564935649456495564965649756498564995650056501565025650356504565055650656507565085650956510565115651256513565145651556516565175651856519565205652156522565235652456525565265652756528565295653056531565325653356534565355653656537565385653956540565415654256543565445654556546565475654856549565505655156552565535655456555565565655756558565595656056561565625656356564565655656656567565685656956570565715657256573565745657556576565775657856579565805658156582565835658456585565865658756588565895659056591565925659356594565955659656597565985659956600566015660256603566045660556606566075660856609566105661156612566135661456615566165661756618566195662056621566225662356624566255662656627566285662956630566315663256633566345663556636566375663856639566405664156642566435664456645566465664756648566495665056651566525665356654566555665656657566585665956660566615666256663566645666556666566675666856669566705667156672566735667456675566765667756678566795668056681566825668356684566855668656687566885668956690566915669256693566945669556696566975669856699567005670156702567035670456705567065670756708567095671056711567125671356714567155671656717567185671956720567215672256723567245672556726567275672856729567305673156732567335673456735567365673756738567395674056741567425674356744567455674656747567485674956750567515675256753567545675556756567575675856759567605676156762567635676456765567665676756768567695677056771567725677356774567755677656777567785677956780567815678256783567845678556786567875678856789567905679156792567935679456795567965679756798567995680056801568025680356804568055680656807568085680956810568115681256813568145681556816568175681856819568205682156822568235682456825568265682756828568295683056831568325683356834568355683656837568385683956840568415684256843568445684556846568475684856849568505685156852568535685456855568565685756858568595686056861568625686356864568655686656867568685686956870568715687256873568745687556876568775687856879568805688156882568835688456885568865688756888568895689056891568925689356894568955689656897568985689956900569015690256903569045690556906569075690856909569105691156912569135691456915569165691756918569195692056921569225692356924569255692656927569285692956930569315693256933569345693556936569375693856939569405694156942569435694456945569465694756948569495695056951569525695356954569555695656957569585695956960569615696256963569645696556966569675696856969569705697156972569735697456975569765697756978569795698056981569825698356984569855698656987569885698956990569915699256993569945699556996569975699856999570005700157002570035700457005570065700757008570095701057011570125701357014570155701657017570185701957020570215702257023570245702557026570275702857029570305703157032570335703457035570365703757038570395704057041570425704357044570455704657047570485704957050570515705257053570545705557056570575705857059570605706157062570635706457065570665706757068570695707057071570725707357074570755707657077570785707957080570815708257083570845708557086570875708857089570905709157092570935709457095570965709757098570995710057101571025710357104571055710657107571085710957110571115711257113571145711557116571175711857119571205712157122571235712457125571265712757128571295713057131571325713357134571355713657137571385713957140571415714257143571445714557146571475714857149571505715157152571535715457155571565715757158571595716057161571625716357164571655716657167571685716957170571715717257173571745717557176571775717857179571805718157182571835718457185571865718757188571895719057191571925719357194571955719657197571985719957200572015720257203572045720557206572075720857209572105721157212572135721457215572165721757218572195722057221572225722357224572255722657227572285722957230572315723257233572345723557236572375723857239572405724157242572435724457245572465724757248572495725057251572525725357254572555725657257572585725957260572615726257263572645726557266572675726857269572705727157272572735727457275572765727757278572795728057281572825728357284572855728657287572885728957290572915729257293572945729557296572975729857299573005730157302573035730457305573065730757308573095731057311573125731357314573155731657317573185731957320573215732257323573245732557326573275732857329573305733157332573335733457335573365733757338573395734057341573425734357344573455734657347573485734957350573515735257353573545735557356573575735857359573605736157362573635736457365573665736757368573695737057371573725737357374573755737657377573785737957380573815738257383573845738557386573875738857389573905739157392573935739457395573965739757398573995740057401574025740357404574055740657407574085740957410574115741257413574145741557416574175741857419574205742157422574235742457425574265742757428574295743057431574325743357434574355743657437574385743957440574415744257443574445744557446574475744857449574505745157452574535745457455574565745757458574595746057461574625746357464574655746657467574685746957470574715747257473574745747557476574775747857479574805748157482574835748457485574865748757488574895749057491574925749357494574955749657497574985749957500575015750257503575045750557506575075750857509575105751157512575135751457515575165751757518575195752057521575225752357524575255752657527575285752957530575315753257533575345753557536575375753857539575405754157542575435754457545575465754757548575495755057551575525755357554575555755657557575585755957560575615756257563575645756557566575675756857569575705757157572575735757457575575765757757578575795758057581575825758357584575855758657587575885758957590575915759257593575945759557596575975759857599576005760157602576035760457605576065760757608576095761057611576125761357614576155761657617576185761957620576215762257623576245762557626576275762857629576305763157632576335763457635576365763757638576395764057641576425764357644576455764657647576485764957650576515765257653576545765557656576575765857659576605766157662576635766457665576665766757668576695767057671576725767357674576755767657677576785767957680576815768257683576845768557686576875768857689576905769157692576935769457695576965769757698576995770057701577025770357704577055770657707577085770957710577115771257713577145771557716577175771857719577205772157722577235772457725577265772757728577295773057731577325773357734577355773657737577385773957740577415774257743577445774557746577475774857749577505775157752577535775457755577565775757758577595776057761577625776357764577655776657767577685776957770577715777257773577745777557776577775777857779577805778157782577835778457785577865778757788577895779057791577925779357794577955779657797577985779957800578015780257803578045780557806578075780857809578105781157812578135781457815578165781757818578195782057821578225782357824578255782657827578285782957830578315783257833578345783557836578375783857839578405784157842578435784457845578465784757848578495785057851578525785357854578555785657857578585785957860578615786257863578645786557866578675786857869578705787157872578735787457875578765787757878578795788057881578825788357884578855788657887578885788957890578915789257893578945789557896578975789857899579005790157902579035790457905579065790757908579095791057911579125791357914579155791657917579185791957920579215792257923579245792557926579275792857929579305793157932579335793457935579365793757938579395794057941579425794357944579455794657947579485794957950579515795257953579545795557956579575795857959579605796157962579635796457965579665796757968579695797057971579725797357974579755797657977579785797957980579815798257983579845798557986579875798857989579905799157992579935799457995579965799757998579995800058001580025800358004580055800658007580085800958010580115801258013580145801558016580175801858019580205802158022580235802458025580265802758028580295803058031580325803358034580355803658037580385803958040580415804258043580445804558046580475804858049580505805158052580535805458055580565805758058580595806058061580625806358064580655806658067580685806958070580715807258073580745807558076580775807858079580805808158082580835808458085580865808758088580895809058091580925809358094580955809658097580985809958100581015810258103581045810558106581075810858109581105811158112581135811458115581165811758118581195812058121581225812358124581255812658127581285812958130581315813258133581345813558136581375813858139581405814158142581435814458145581465814758148581495815058151581525815358154581555815658157581585815958160581615816258163581645816558166581675816858169581705817158172581735817458175581765817758178581795818058181581825818358184581855818658187581885818958190581915819258193581945819558196581975819858199582005820158202582035820458205582065820758208582095821058211582125821358214582155821658217582185821958220582215822258223582245822558226582275822858229582305823158232582335823458235582365823758238582395824058241582425824358244582455824658247582485824958250582515825258253582545825558256582575825858259582605826158262582635826458265582665826758268582695827058271582725827358274582755827658277582785827958280582815828258283582845828558286582875828858289582905829158292582935829458295582965829758298582995830058301583025830358304583055830658307583085830958310583115831258313583145831558316583175831858319583205832158322583235832458325583265832758328583295833058331583325833358334583355833658337583385833958340583415834258343583445834558346583475834858349583505835158352583535835458355583565835758358583595836058361583625836358364583655836658367583685836958370583715837258373583745837558376583775837858379583805838158382583835838458385583865838758388583895839058391583925839358394583955839658397583985839958400584015840258403584045840558406584075840858409584105841158412584135841458415584165841758418584195842058421584225842358424584255842658427584285842958430584315843258433584345843558436584375843858439584405844158442584435844458445584465844758448584495845058451584525845358454584555845658457584585845958460584615846258463584645846558466584675846858469584705847158472584735847458475584765847758478584795848058481584825848358484584855848658487584885848958490584915849258493584945849558496584975849858499585005850158502585035850458505585065850758508585095851058511585125851358514585155851658517585185851958520585215852258523585245852558526585275852858529585305853158532585335853458535585365853758538585395854058541585425854358544585455854658547585485854958550585515855258553585545855558556585575855858559585605856158562585635856458565585665856758568585695857058571585725857358574585755857658577585785857958580585815858258583585845858558586585875858858589585905859158592585935859458595585965859758598585995860058601586025860358604586055860658607586085860958610586115861258613586145861558616586175861858619586205862158622586235862458625586265862758628586295863058631586325863358634586355863658637586385863958640586415864258643586445864558646586475864858649586505865158652586535865458655586565865758658586595866058661586625866358664586655866658667586685866958670586715867258673586745867558676586775867858679586805868158682586835868458685586865868758688586895869058691586925869358694586955869658697586985869958700587015870258703587045870558706587075870858709587105871158712587135871458715587165871758718587195872058721587225872358724587255872658727587285872958730587315873258733587345873558736587375873858739587405874158742587435874458745587465874758748587495875058751587525875358754587555875658757587585875958760587615876258763587645876558766587675876858769587705877158772587735877458775587765877758778587795878058781587825878358784587855878658787587885878958790587915879258793587945879558796587975879858799588005880158802588035880458805588065880758808588095881058811588125881358814588155881658817588185881958820588215882258823588245882558826588275882858829588305883158832588335883458835588365883758838588395884058841588425884358844588455884658847588485884958850588515885258853588545885558856588575885858859588605886158862588635886458865588665886758868588695887058871588725887358874588755887658877588785887958880588815888258883588845888558886588875888858889588905889158892588935889458895588965889758898588995890058901589025890358904589055890658907589085890958910589115891258913589145891558916589175891858919589205892158922589235892458925589265892758928589295893058931589325893358934589355893658937589385893958940589415894258943589445894558946589475894858949589505895158952589535895458955589565895758958589595896058961589625896358964589655896658967589685896958970589715897258973589745897558976589775897858979589805898158982589835898458985589865898758988589895899058991589925899358994589955899658997589985899959000590015900259003590045900559006590075900859009590105901159012590135901459015590165901759018590195902059021590225902359024590255902659027590285902959030590315903259033590345903559036590375903859039590405904159042590435904459045590465904759048590495905059051590525905359054590555905659057590585905959060590615906259063590645906559066590675906859069590705907159072590735907459075590765907759078590795908059081590825908359084590855908659087590885908959090590915909259093590945909559096590975909859099591005910159102591035910459105591065910759108591095911059111591125911359114591155911659117591185911959120591215912259123591245912559126591275912859129591305913159132591335913459135591365913759138591395914059141591425914359144591455914659147591485914959150591515915259153591545915559156591575915859159591605916159162591635916459165591665916759168591695917059171591725917359174591755917659177591785917959180591815918259183591845918559186591875918859189591905919159192591935919459195591965919759198591995920059201592025920359204592055920659207592085920959210592115921259213592145921559216592175921859219592205922159222592235922459225592265922759228592295923059231592325923359234592355923659237592385923959240592415924259243592445924559246592475924859249592505925159252592535925459255592565925759258592595926059261592625926359264592655926659267592685926959270592715927259273592745927559276592775927859279592805928159282592835928459285592865928759288592895929059291592925929359294592955929659297592985929959300593015930259303593045930559306593075930859309593105931159312593135931459315593165931759318593195932059321593225932359324593255932659327593285932959330593315933259333593345933559336593375933859339593405934159342593435934459345593465934759348593495935059351593525935359354593555935659357593585935959360593615936259363593645936559366593675936859369593705937159372593735937459375593765937759378593795938059381593825938359384593855938659387593885938959390593915939259393593945939559396593975939859399594005940159402594035940459405594065940759408594095941059411594125941359414594155941659417594185941959420594215942259423594245942559426594275942859429594305943159432594335943459435594365943759438594395944059441594425944359444594455944659447594485944959450594515945259453594545945559456594575945859459594605946159462594635946459465594665946759468594695947059471594725947359474594755947659477594785947959480594815948259483594845948559486594875948859489594905949159492594935949459495594965949759498594995950059501595025950359504595055950659507595085950959510595115951259513595145951559516595175951859519595205952159522595235952459525595265952759528595295953059531595325953359534595355953659537595385953959540595415954259543595445954559546595475954859549595505955159552595535955459555595565955759558595595956059561595625956359564595655956659567595685956959570595715957259573595745957559576595775957859579595805958159582595835958459585595865958759588595895959059591595925959359594595955959659597595985959959600596015960259603596045960559606596075960859609596105961159612596135961459615596165961759618596195962059621596225962359624596255962659627596285962959630596315963259633596345963559636596375963859639596405964159642596435964459645596465964759648596495965059651596525965359654596555965659657596585965959660596615966259663596645966559666596675966859669596705967159672596735967459675596765967759678596795968059681596825968359684596855968659687596885968959690596915969259693596945969559696596975969859699597005970159702597035970459705597065970759708597095971059711597125971359714597155971659717597185971959720597215972259723597245972559726597275972859729597305973159732597335973459735597365973759738597395974059741597425974359744597455974659747597485974959750597515975259753597545975559756597575975859759597605976159762597635976459765597665976759768597695977059771597725977359774597755977659777597785977959780597815978259783597845978559786597875978859789597905979159792597935979459795597965979759798597995980059801598025980359804598055980659807598085980959810598115981259813598145981559816598175981859819598205982159822598235982459825598265982759828598295983059831598325983359834598355983659837598385983959840598415984259843598445984559846598475984859849598505985159852598535985459855598565985759858598595986059861598625986359864598655986659867598685986959870598715987259873598745987559876598775987859879598805988159882598835988459885598865988759888598895989059891598925989359894598955989659897598985989959900599015990259903599045990559906599075990859909599105991159912599135991459915599165991759918599195992059921599225992359924599255992659927599285992959930599315993259933599345993559936599375993859939599405994159942599435994459945599465994759948599495995059951599525995359954599555995659957599585995959960599615996259963599645996559966599675996859969599705997159972599735997459975599765997759978599795998059981599825998359984599855998659987599885998959990599915999259993599945999559996599975999859999600006000160002600036000460005600066000760008600096001060011600126001360014600156001660017600186001960020600216002260023600246002560026600276002860029600306003160032600336003460035600366003760038600396004060041600426004360044600456004660047600486004960050600516005260053600546005560056600576005860059600606006160062600636006460065600666006760068600696007060071600726007360074600756007660077600786007960080600816008260083600846008560086600876008860089600906009160092600936009460095600966009760098600996010060101601026010360104601056010660107601086010960110601116011260113601146011560116601176011860119601206012160122601236012460125601266012760128601296013060131601326013360134601356013660137601386013960140601416014260143601446014560146601476014860149601506015160152601536015460155601566015760158601596016060161601626016360164601656016660167601686016960170601716017260173601746017560176601776017860179601806018160182601836018460185
  1. USE [GameCenterDB]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[Game_AllUser_SetGameStatus] Script Date: 2024/1/12 11:01:14 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. -- EXEC [Game_AllUser_SetGameStatus]
  9. -- ==============================================
  10. -- Author: wolf
  11. -- Create Date: 2014-09-03
  12. -- Mendor: wolf
  13. -- Alter Date: 2014-12-02
  14. -- Description: 设置游戏信息(在线、离线)
  15. -- ==============================================
  16. CREATE PROCEDURE [dbo].[Game_AllUser_SetGameStatus]
  17. @UserID INT, --用户ID
  18. @GameID INT, --游戏ID
  19. @ServerName NVARCHAR(32), --服务器名称
  20. @IsOnline TINYINT, --是否在线(1=在线 0=离线)
  21. @IsChip TINYINT = 0 --是否元宝(0=休闲 1=元宝)
  22. AS
  23. SET NOCOUNT ON
  24. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25. SET XACT_ABORT ON
  26. BEGIN
  27. DECLARE @LoginTime DATETIME --登录时间
  28. --非法参数
  29. IF(@IsOnline IS NULL OR @IsOnline NOT IN (0, 1))
  30. RETURN
  31. --机器人
  32. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  33. RETURN
  34. --在线
  35. IF(@IsOnline = 1)
  36. BEGIN
  37. --在线数据
  38. IF EXISTS(SELECT UserID FROM [t_onlineuser] WHERE UserID = @UserID)
  39. BEGIN
  40. --清理在线数据
  41. DELETE FROM [t_onlineuser] WHERE Userid = @UserID
  42. END
  43. --记录在线
  44. INSERT INTO [t_onlineuser]
  45. (
  46. UserID, ServerName, LoginTime, GameID, IsChip
  47. )
  48. VALUES
  49. (
  50. @UserID, @ServerName, GETDATE(), @GameID, @IsChip
  51. )
  52. --添加在线用户日志
  53. INSERT INTO [t_onlinelog]
  54. (
  55. UserID, GameID, ServerName, Crdate, IsChip
  56. )
  57. VALUES
  58. (
  59. @UserID, @GameID, @ServerName, GETDATE(), @IsChip
  60. )
  61. --更新登录时间
  62. UPDATE
  63. [t_onlinetime]
  64. SET
  65. LoginTime = GETDATE(),
  66. TodaySeconds = CASE
  67. WHEN LoginTime < CONVERT(CHAR(10), GETDATE(), 120) THEN 0
  68. ELSE TodaySeconds
  69. END
  70. WHERE
  71. UserID = @UserID
  72. IF(@@ROWCOUNT = 0)
  73. BEGIN
  74. --初始化
  75. INSERT INTO [t_onlinetime]
  76. (
  77. UserID, TotalSeconds, TodaySeconds, LoginTime
  78. )
  79. VALUES
  80. (
  81. @UserID, 0, 0, GETDATE()
  82. )
  83. END
  84. --更新登录时间
  85. UPDATE [AgentMember] SET LoginTime = GETDATE() WHERE UserID = @UserID
  86. END
  87. --离开游戏,进入大厅
  88. ELSE IF(@IsOnline = 0 AND @GameID > 0)
  89. BEGIN
  90. UPDATE
  91. [t_onlineuser]
  92. SET
  93. GameID = 0, LoginTime = GETDATE(), ServerName = N'游戏大厅', IsChip = @IsChip
  94. WHERE
  95. UserID = @UserID
  96. END
  97. --退出元宝大厅,进入休闲大厅
  98. ELSE IF(@IsOnline = 0 AND @GameID = 0 AND @IsChip = 1)
  99. BEGIN
  100. UPDATE
  101. [t_onlineuser]
  102. SET
  103. GameID = 0, LoginTime = GETDATE(), ServerName = N'游戏大厅', IsChip = 0
  104. WHERE
  105. UserID = @UserID
  106. END
  107. --离线
  108. ELSE
  109. BEGIN
  110. --删除在线
  111. DELETE FROM [t_onlineuser] WHERE UserID = @UserID
  112. --添加在线用户日志
  113. INSERT INTO [t_onlinelog]
  114. (
  115. UserID, GameID, ServerName, Crdate, IsChip
  116. )
  117. VALUES
  118. (
  119. @UserID, @GameID, @ServerName, GETDATE(), @IsChip
  120. )
  121. --计算时长
  122. UPDATE
  123. [t_onlinetime]
  124. SET
  125. TotalSeconds = TotalSeconds + DATEDIFF(SECOND, LoginTime, GETDATE()),
  126. TodaySeconds = TodaySeconds + DATEDIFF(SECOND, LoginTime, GETDATE())
  127. WHERE
  128. UserID = @UserID
  129. END
  130. RETURN
  131. END
  132. GO
  133. /****** Object: StoredProcedure [dbo].[Game_BetCount_Write] Script Date: 2024/1/12 11:01:14 ******/
  134. SET ANSI_NULLS ON
  135. GO
  136. SET QUOTED_IDENTIFIER ON
  137. GO
  138. -- EXEC [Game_BetCount_Write]
  139. -- ==============================================
  140. -- Author: wolf
  141. -- Create Date: 2014-06-11
  142. -- Mendor: wolf
  143. -- Alter Date: 2014-06-11
  144. -- Description: 下注局数
  145. -- ==============================================
  146. CREATE PROCEDURE [dbo].[Game_BetCount_Write]
  147. @UserID INT, --用户ID
  148. @GameID INT, --游戏ID
  149. @BetSecBefore INT, --结算前几秒下注的
  150. @PlayCount INT --游戏局数
  151. AS
  152. SET NOCOUNT ON
  153. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  154. SET XACT_ABORT ON
  155. BEGIN
  156. DECLARE @BetTime DATETIME --下注时间
  157. SET @BetTime = DATEADD(SECOND, -@BetSecBefore, GETDATE())
  158. --游戏下注局数
  159. INSERT INTO [UserBetCount]
  160. (
  161. UserID, GameID, PlayCount, BetTime
  162. )
  163. VALUES
  164. (
  165. @UserID, @GameID, @PlayCount, @BetTime
  166. )
  167. RETURN
  168. END
  169. GO
  170. /****** Object: StoredProcedure [dbo].[Game_BetRecord_Write] Script Date: 2024/1/12 11:01:14 ******/
  171. SET ANSI_NULLS ON
  172. GO
  173. SET QUOTED_IDENTIFIER ON
  174. GO
  175. --EXEC [Game_BetRecord_Write]
  176. -- ==============================================
  177. -- Author: wolf
  178. -- Create Date: 2019-06-24
  179. -- Mendor: wolf
  180. -- Alter Date: 2019-07-11
  181. -- Description: 服务器游戏写记录
  182. -- ============================================
  183. CREATE PROCEDURE [dbo].[Game_BetRecord_Write]
  184. @UserID INT, --用户ID
  185. @GameID INT, --游戏ID
  186. @BetSecBefore INT, --结算前几秒下注的
  187. @BetAmount BIGINT, --下注金额
  188. @BetZone VARCHAR(128), --下注描述
  189. @ResultAmount BIGINT, --输赢
  190. @ResultZone VARCHAR(1024), --结果描述
  191. @Tax BIGINT, --产生税收
  192. @Odds DECIMAL(10, 2), --赔率(百为基数)
  193. @TransType VARCHAR(32),
  194. @IpAddress VARCHAR(16), --IP地址
  195. @ServerName NVARCHAR(32) --房间名称
  196. AS
  197. SET NOCOUNT ON
  198. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  199. SET XACT_ABORT ON
  200. BEGIN
  201. DECLARE @CurrTime DATETIME --系统当前时间
  202. DECLARE @BetTime DATETIME --下注时间
  203. DECLARE @RecordID VARCHAR(32) --记录ID
  204. DECLARE @DateFlag SMALLDATETIME --日期标识
  205. DECLARE @Amount BIGINT --金币数
  206. DECLARE @Bank BIGINT --保险柜
  207. DECLARE @PartnerID INT --渠道ID
  208. DECLARE @WinCount INT --赢局数
  209. DECLARE @WinAmount BIGINT
  210. DECLARE @InvestAmount BIGINT --投注额
  211. DECLARE @StartIndex INT --起始索引
  212. DECLARE @EndIndex INT --截止索引
  213. DECLARE @FreeType INT --免费类型
  214. DECLARE @ChipAmount BIGINT --筹码数量
  215. DECLARE @RetCode TINYINT
  216. DECLARE @LogType INT --日志类型
  217. DECLARE @IMei VARCHAR(64)
  218. DECLARE @deviceid VARCHAR(64)
  219. DECLARE @ChipSend BIGINT --筹码赠送
  220. SET @CurrTime = GETDATE()
  221. SET @BetTime = DATEADD(SECOND, -@BetSecBefore, @CurrTime)
  222. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  223. SET @RecordID = ''
  224. SET @WinCount = 0
  225. SET @InvestAmount = 0
  226. --表变量
  227. DECLARE @tmptable TABLE(
  228. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  229. UserID INT NOT NULL --用户ID
  230. )
  231. IF(@UserID <= 0)
  232. RETURN
  233. --机器人
  234. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  235. RETURN
  236. --金币
  237. EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
  238. --生成数据
  239. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  240. --获取订单ID
  241. SELECT @RecordID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  242. --组装成有序的订单
  243. SET @RecordID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(VARCHAR(16), GETDATE(), 114), ':', '') + SUBSTRING(@RecordID, 1, 2)
  244. --添加下注信息
  245. INSERT INTO [Bet]
  246. (
  247. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds,
  248. ResultAmount, ResultTime, ResultZone, Tax, StillAmount, Status
  249. )
  250. VALUES
  251. (
  252. @RecordID, @UserID, @GameID, @TransType, @BetAmount, @BetTime, @BetZone, @Odds,
  253. @ResultAmount, @CurrTime, @ResultZone, @Tax, @Amount, 2
  254. )
  255. --计算赢局数
  256. SET @WinCount = CASE WHEN @ResultAmount - @BetAmount > 0 THEN 1 ELSE 0 END
  257. --SET @WinAmount = @ResultAmount - @BetAmount
  258. SET @WinAmount = CASE WHEN @ResultAmount > 0 THEN @ResultAmount ELSE 0 END
  259. --Match=比赛场、PrivateRoom=私人场
  260. SET @ServerName = CASE
  261. WHEN @BetZone IN ('PrivateRoom', 'Match') THEN @BetZone
  262. ELSE @ServerName
  263. END
  264. --统计每日流水
  265. UPDATE
  266. [DailyBetStat]
  267. SET
  268. BetAmount = BetAmount + @BetAmount, ResultAmount = ResultAmount + @ResultAmount,
  269. WinAmount = WinAmount + @WinAmount,
  270. TotalCount = TotalCount + 1, WinCount = WinCount + @WinCount
  271. WHERE
  272. DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID AND ServerName = @ServerName
  273. --当天无流水
  274. IF(@@ROWCOUNT = 0)
  275. BEGIN
  276. INSERT INTO [DailyBetStat]
  277. (
  278. DateFlag, UserID, GameID, ServerName, BetAmount, ResultAmount, WinAmount,
  279. MoneySum, TaxAmount, TotalCount, WinCount, PlaySeconds
  280. )
  281. VALUES
  282. (
  283. @DateFlag, @UserID, @GameID, @ServerName, @BetAmount, @ResultAmount, @WinAmount,
  284. 0, 0, 1, @WinCount, 0
  285. )
  286. END
  287. UPDATE
  288. [UserGameCount]
  289. SET
  290. TotalCount = TotalCount + 1, WinCount = WinCount + @WinCount,
  291. MaxWinAmount = CASE
  292. WHEN @ResultAmount - @BetAmount > MaxWinAmount THEN @ResultAmount - @BetAmount
  293. ELSE MaxWinAmount
  294. END
  295. WHERE
  296. UserID = @UserID AND GameID = @GameID
  297. IF(@@ROWCOUNT = 0)
  298. BEGIN
  299. INSERT INTO [UserGameCount]
  300. (
  301. UserID, GameID, TotalCount, WinCount, MaxWinAmount, CardStat
  302. )
  303. VALUES
  304. (
  305. @UserID, @GameID, 1, @WinCount, CASE WHEN @ResultAmount - @BetAmount > 0 THEN @ResultAmount - @BetAmount ELSE 0 END, ''
  306. )
  307. END
  308. --最大赢金
  309. UPDATE
  310. [UserMaxWin]
  311. SET
  312. WinAmount = CASE WHEN @WinAmount > WinAmount THEN @WinAmount ELSE WinAmount END
  313. WHERE
  314. DateFlag = @DateFlag AND UserID = @UserID
  315. IF(@@ROWCOUNT = 0)
  316. BEGIN
  317. INSERT INTO [UserMaxWin]
  318. (
  319. DateFlag, UserID, WinAmount
  320. )
  321. VALUES
  322. (
  323. @DateFlag, @UserID, @WinAmount
  324. )
  325. END
  326. --投注额
  327. EXEC [Game_Score_Cal] @UserID = @UserID, @GameID = @GameID, @ServerName = @ServerName, @BetAmount = @BetAmount
  328. IF(@GameID IN (50, 51, 52, 55, 56, 57, 58, 87))
  329. BEGIN
  330. SET @StartIndex = 1
  331. SET @EndIndex = 0
  332. SET @EndIndex = CHARINDEX('|', @BetZone, @StartIndex)
  333. IF(@EndIndex > 0)
  334. BEGIN
  335. SET @BetAmount = CAST(SUBSTRING(@BetZone, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
  336. SET @StartIndex = @EndIndex + 1
  337. SET @FreeType = CAST(SUBSTRING(@BetZone, @StartIndex, LEN(@BetZone) - @StartIndex + 1) AS INT)
  338. SET @InvestAmount = @BetAmount + CASE WHEN @FreeType = 0 THEN 3 WHEN @FreeType = 1 THEN 4 ELSE 0 END
  339. END
  340. --数据监控
  341. EXEC [Game_Slot_Trigger] @UserID = @UserID, @GameID = @GameID, @BetAmount = @BetAmount,
  342. @ResultAmount = @ResultAmount, @WinAmount = @WinAmount, @Tax = @Tax, @InvestAmount = @InvestAmount
  343. END
  344. /*
  345. --非免费
  346. IF(CHARINDEX('|', @BetZone) = 0)
  347. BEGIN
  348. --用户信息
  349. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
  350. --非游客用户
  351. IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.' OR LEFT(@deviceid, 3) = 'gg.' )
  352. BEGIN
  353. --统计今天赠送的筹码总额
  354. SELECT @ChipSend = ISNULL(SUM(Amount), 0) FROM [ChipSendLog] WHERE UserID = @UserID AND DateFlag >= @DateFlag
  355. --结算额的0.0001%
  356. SET @ChipAmount = ABS(@WinAmount) * 0.000001
  357. SET @ChipAmount = CASE
  358. WHEN @ChipAmount + @ChipSend > 3000000 THEN 3000000 - @ChipSend --超过上限,补差额
  359. ELSE @ChipAmount
  360. END
  361. --赠送
  362. IF(@ChipAmount > 0)
  363. BEGIN
  364. --记录赠送日志
  365. UPDATE [ChipSendLog] SET Amount = Amount + @ChipAmount WHERE UserID = @UserID AND DateFlag = @DateFlag AND IsShow = 0
  366. IF(@@ROWCOUNT = 0)
  367. BEGIN
  368. INSERT INTO [ChipSendLog](DateFlag, UserID, Amount, IsShow) VALUES(@DateFlag, @UserID, @ChipAmount, 0)
  369. END
  370. --日志
  371. SET @LogType = @GameID * 100 + 88
  372. --加筹码
  373. EXEC [Game_Chip_Give] @UserID = @UserID, @SourceName = @ServerName, @GameID = @GameID, @WantedAmount = @ChipAmount,
  374. @LogType = @LogType, @Remark = N'游戏赠送', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
  375. END
  376. END
  377. END
  378. */
  379. RETURN
  380. END
  381. GO
  382. /****** Object: StoredProcedure [dbo].[Game_CardStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  383. SET ANSI_NULLS ON
  384. GO
  385. SET QUOTED_IDENTIFIER ON
  386. GO
  387. -- EXEC [Game_CardStat_Stat]
  388. -- ==============================================
  389. -- Author: wolf
  390. -- Create Date: 2014-06-11
  391. -- Mendor: wolf
  392. -- Alter Date: 2014-06-11
  393. -- Description: 玩牌统计
  394. -- ==============================================
  395. CREATE PROCEDURE [dbo].[Game_CardStat_Stat]
  396. AS
  397. SET NOCOUNT ON
  398. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  399. SET XACT_ABORT ON
  400. BEGIN
  401. DECLARE @DateFlag SMALLDATETIME --日期标识
  402. DECLARE @BreakAmount INT --破产额
  403. DECLARE @tmpMiday TABLE(
  404. DateFlag SMALLDATETIME NOT NULL, --日期标识
  405. GameID INT NOT NULL, --游戏ID
  406. MidwayUserCount INT NOT NULL, --中途退出人数
  407. MidwayTimes INT NOT NULL --中途退出次数
  408. )
  409. DECLARE @tmpUser TABLE(
  410. UserID INT NOT NULL
  411. )
  412. DECLARE @tmpBetCount TABLE(
  413. DateFlag SMALLDATETIME NOT NULL, --日期标识
  414. GameID INT NOT NULL, --游戏ID
  415. PlayCount INT NOT NULL --游戏局数
  416. )
  417. SET @DateFlag = CONVERT(CHAR(10), GETDATE() -1, 120)
  418. SET @BreakAmount = 5000 --破产额
  419. --牌局统计
  420. INSERT INTO [GameCardStat]
  421. (
  422. DateFlag, GameID, TypeID, PlayUserCount, SendAmount, ConsumeAmount,
  423. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
  424. )
  425. SELECT
  426. @DateFlag, GameID, 0, COUNT(DISTINCT UserID),
  427. SUM(CASE WHEN ResultAmount - BetAmount > 0 THEN ResultAmount - BetAmount ELSE 0 END),
  428. SUM(CASE WHEN ResultAmount - BetAmount < 0 THEN ResultAmount - BetAmount ELSE 0 END),
  429. COUNT(DISTINCT CASE WHEN StillAmount <= @BreakAmount THEN UserID ELSE 0 END) - 1,
  430. SUM(CASE WHEN StillAmount <= @BreakAmount THEN 1 ELSE 0 END),
  431. COUNT(UserID), SUM(DATEDIFF(SECOND, BetTime, ResultTime)), 0, 0
  432. FROM
  433. [BetInfoHistory]
  434. WHERE
  435. BetTime BETWEEN @DateFlag AND @DateFlag + 1
  436. GROUP BY
  437. GameID
  438. --统计中途退出
  439. INSERT INTO @tmpMiday
  440. (
  441. DateFlag, GameID, MidwayUserCount, MidwayTimes
  442. )
  443. SELECT
  444. CONVERT(CHAR(10), m.Crdate, 120) AS DateFlag, m.GameID,
  445. COUNT(DISTINCT CASE WHEN IPAddress = '127.0.0.1' THEN UserID ELSE 0 END) - 1,
  446. SUM(CASE WHEN IPAddress = '127.0.0.1' THEN 1 ELSE 0 END)
  447. FROM
  448. [MoneyLog_bak] m INNER JOIN [MoneyLogType] l ON m.LogType = l.LogType AND l.LogTypeName IN (N'结算', N'游戏结算')
  449. WHERE
  450. m.Crdate BETWEEN @DateFlag AND @DateFlag + 1
  451. GROUP BY
  452. CONVERT(CHAR(10), m.Crdate, 120), m.GameID
  453. --更新中途统计数据
  454. UPDATE
  455. g
  456. SET
  457. g.MidwayUserCount = t.MidwayUserCount, g.MidwayTimes = t.MidwayTimes
  458. FROM
  459. [GameCardStat] g INNER JOIN @tmpMiday t ON g.DateFlag = t.DateFlag AND g.GameID = t.GameID
  460. WHERE
  461. TypeID = 0
  462. --统计游戏局数
  463. INSERT INTO @tmpBetCount
  464. (
  465. DateFlag, GameID, PlayCount
  466. )
  467. SELECT
  468. @DateFlag, GameID, SUM(PlayCount)
  469. FROM
  470. [UserBetCount]
  471. WHERE
  472. BetTime BETWEEN @DateFlag AND @DateFlag + 1
  473. GROUP BY
  474. GameID
  475. --更新游戏局数
  476. UPDATE
  477. g
  478. SET
  479. g.PlayCount = t.PlayCount
  480. FROM
  481. [GameCardStat] g INNER JOIN @tmpBetCount t ON g.DateFlag = t.DateFlag AND g.GameID = t.GameID
  482. WHERE
  483. TypeID = 0
  484. --初始化
  485. INSERT INTO @tmpUser(UserID)
  486. SELECT
  487. UserID
  488. FROM
  489. [LabelPool]
  490. WHERE
  491. TypeID = 17 AND LabelID != '' AND Expire >= GETDATE()
  492. --牌局统计
  493. INSERT INTO [GameCardStat]
  494. (
  495. DateFlag, GameID, TypeID, PlayUserCount, SendAmount, ConsumeAmount,
  496. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
  497. )
  498. SELECT
  499. @DateFlag, GameID, 17, COUNT(DISTINCT b.UserID),
  500. SUM(CASE WHEN ResultAmount - BetAmount > 0 THEN ResultAmount - BetAmount ELSE 0 END),
  501. SUM(CASE WHEN ResultAmount - BetAmount < 0 THEN ResultAmount - BetAmount ELSE 0 END),
  502. COUNT(DISTINCT CASE WHEN StillAmount <= @BreakAmount THEN b.UserID ELSE 0 END) - 1,
  503. SUM(CASE WHEN StillAmount <= @BreakAmount THEN 1 ELSE 0 END),
  504. COUNT(b.UserID), SUM(DATEDIFF(SECOND, BetTime, ResultTime)), 0, 0
  505. FROM
  506. [BetInfoHistory] b INNER JOIN @tmpUser u ON b.UserID = u.UserID
  507. WHERE
  508. BetTime BETWEEN @DateFlag AND @DateFlag + 1
  509. GROUP BY
  510. GameID
  511. --统计中途退出
  512. INSERT INTO @tmpMiday
  513. (
  514. DateFlag, GameID, MidwayUserCount, MidwayTimes
  515. )
  516. SELECT
  517. CONVERT(CHAR(10), m.Crdate, 120) AS DateFlag, m.GameID,
  518. COUNT(DISTINCT CASE WHEN IPAddress = '127.0.0.1' THEN m.UserID ELSE 0 END) - 1,
  519. SUM(CASE WHEN IPAddress = '127.0.0.1' THEN 1 ELSE 0 END)
  520. FROM
  521. [MoneyLog_bak] m INNER JOIN [MoneyLogType] l ON m.LogType = l.LogType AND l.LogTypeName IN (N'结算', N'游戏结算')
  522. INNER JOIN @tmpUser u ON m.UserID = u.UserID
  523. WHERE
  524. m.Crdate BETWEEN @DateFlag AND @DateFlag + 1
  525. GROUP BY
  526. CONVERT(CHAR(10), m.Crdate, 120), m.GameID
  527. --更新中途统计数据
  528. UPDATE
  529. g
  530. SET
  531. g.MidwayUserCount = t.MidwayUserCount, g.MidwayTimes = t.MidwayTimes
  532. FROM
  533. [GameCardStat] g INNER JOIN @tmpMiday t ON g.DateFlag = t.DateFlag AND g.GameID = t.GameID
  534. WHERE
  535. TypeID = 17
  536. --统计游戏局数
  537. INSERT INTO @tmpBetCount
  538. (
  539. DateFlag, GameID, PlayCount
  540. )
  541. SELECT
  542. @DateFlag, GameID, SUM(PlayCount)
  543. FROM
  544. [UserBetCount] u INNER JOIN @tmpUser t ON u.UserID = t.UserID
  545. WHERE
  546. BetTime BETWEEN @DateFlag AND @DateFlag + 1
  547. GROUP BY
  548. GameID
  549. --更新游戏局数
  550. UPDATE
  551. g
  552. SET
  553. g.PlayCount = t.PlayCount
  554. FROM
  555. [GameCardStat] g INNER JOIN @tmpBetCount t ON g.DateFlag = t.DateFlag AND g.GameID = t.GameID
  556. WHERE
  557. TypeID = 17
  558. RETURN
  559. END
  560. GO
  561. /****** Object: StoredProcedure [dbo].[Game_Cash_Transfer] Script Date: 2024/1/12 11:01:14 ******/
  562. SET ANSI_NULLS ON
  563. GO
  564. SET QUOTED_IDENTIFIER ON
  565. GO
  566. /*************************
  567. 用途:保险柜转账
  568. 说明:税为0%、单次转账最大额1E、最小额100、
  569. 说明:同时判断接收方加金币不超过20E(INT最大值)
  570. **************************/
  571. CREATE PROCEDURE [dbo].[Game_Cash_Transfer]
  572. @UserID INT, --转账方ID
  573. @AcceptUserID INT, --接收方ID
  574. @WantAmount BIGINT, --要转多少金币,保证为正数
  575. @IPAddress VARCHAR(15) --IP地址
  576. AS
  577. SET NOCOUNT ON
  578. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  579. SET XACT_ABORT ON
  580. BEGIN
  581. DECLARE @MAX_AMOUNT BIGINT --单次转账最大量
  582. DECLARE @MIN_AMOUNT BIGINT --单次转账最小量
  583. DECLARE @AcceptCurrAmount BIGINT --接收者的当前金币量
  584. DECLARE @TaxAmount BIGINT --税
  585. DECLARE @CurrAmount BIGINT --当前的金币量
  586. DECLARE @TotalAmount BIGINT --实际总共改变的金币量,等于@WantAmount +@TaxAmount
  587. DECLARE @NickName NVARCHAR(32) --昵称
  588. DECLARE @AcceptNickName NVARCHAR(32) --接收方昵称
  589. DECLARE @AcceptStillAmount BIGINT --接收者剩余金币
  590. DECLARE @CurrTime DATETIME --时间
  591. DECLARE @Msg NVARCHAR(256) --消息
  592. DECLARE @DailyTransferAmount BIGINT --日转账
  593. DECLARE @TransferAmount BIGINT --转账金额
  594. DECLARE @SysMsgID INT
  595. DECLARE @TimeStamp INT --时间戳
  596. DECLARE @WantAmountUnit VARCHAR(32)
  597. DECLARE @Fee INT --手续费率(百分制)
  598. DECLARE @FreeBeginTime DATETIME --免费开启时间
  599. DECLARE @FreeEndTime DATETIME --免费截止时间
  600. DECLARE @RefundBeginTime DATETIME --返额开始时间
  601. DECLARE @RefundEndTime DATETIME --返额截止时间
  602. DECLARE @RefundRatio INT --返额比率(百分制)
  603. DECLARE @RefundMaxAmount BIGINT --单笔返额上限(首笔)
  604. DECLARE @Refund BIGINT --返还金额
  605. DECLARE @MinAmount BIGINT --转账最低金额
  606. DECLARE @RetCode INT --操作结果
  607. DECLARE @ErrMsg VARCHAR(128) --消息
  608. DECLARE @StillAmount BIGINT --剩余保险柜
  609. DECLARE @Title NVARCHAR(32)
  610. SET @StillAmount = 0
  611. SET @TaxAmount = @WantAmount * 0.01 --1%的手续费
  612. SET @TotalAmount = @WantAmount + @TaxAmount -- 消耗的金币 = 转出的金币+税
  613. SET @NickName = ''
  614. SET @AcceptNickName = ''
  615. SET @MAX_AMOUNT = 999999999999999
  616. SET @MIN_AMOUNT = 1
  617. SET @RetCode = 0
  618. SET @CurrTime = GETDATE()
  619. SET @WantAmountUnit = ''
  620. SET @MinAmount = 100000000
  621. SET @Refund = 0
  622. IF(@WantAmount IS NULL OR @WantAmount < 0)
  623. BEGIN
  624. SET @RetCode = -1
  625. SET @ErrMsg = 'Safe amount input error'
  626. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  627. RETURN
  628. END
  629. IF(@UserID IS NULL OR @AcceptUserID IS NULL OR @UserID < 0 OR @AcceptUserID < 0)
  630. BEGIN
  631. IF @UserID IS NULL
  632. SET @UserID = 0
  633. IF @AcceptUserID IS NULL
  634. SET @AcceptUserID = 0
  635. INSERT INTO [MoneyLog]
  636. (
  637. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  638. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  639. )
  640. VALUES
  641. (
  642. 0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
  643. 0, @TaxAmount, @IPAddress, 'Safe transfer:Incoming user parameter error', @CurrTime, 0
  644. )
  645. SET @RetCode = -2
  646. SET @ErrMsg = 'User parameter error'
  647. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  648. RETURN
  649. END
  650. --判断是否是自己账号
  651. IF(@UserID = @AcceptUserID)
  652. BEGIN
  653. SET @RetCode = -2
  654. SET @ErrMsg = 'User parameter error'
  655. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  656. RETURN
  657. END
  658. --获取配置信息
  659. SELECT
  660. @Fee = Fee, @FreeBeginTime = FreeBeginTime, @FreeEndTime = FreeEndTime,
  661. @RefundBeginTime = RefundBeginTime, @RefundEndTime = RefundEndTime,
  662. @RefundRatio = RefundRatio, @RefundMaxAmount = RefundMaxAmount,
  663. @MinAmount = CASE
  664. WHEN @CurrTime BETWEEN MinBeginTime AND MinEndTime THEN MinAmount
  665. ELSE @MinAmount
  666. END
  667. FROM
  668. [TransferConfig]
  669. WHERE
  670. ConfigID = 1
  671. --有配置信息
  672. IF(@@ROWCOUNT > 0)
  673. BEGIN
  674. --免费
  675. IF(@CurrTime BETWEEN @FreeBeginTime AND @FreeEndTime)
  676. BEGIN
  677. SET @TaxAmount = 0
  678. END
  679. --手续费
  680. ELSE
  681. BEGIN
  682. SET @TaxAmount = @WantAmount * (@Fee / 100.00) --1%的手续费
  683. END
  684. --扣减的总金额
  685. SET @TotalAmount = @WantAmount + @TaxAmount
  686. --限时返额
  687. IF(@CurrTime BETWEEN @RefundBeginTime AND @RefundEndTime)
  688. BEGIN
  689. --判断时间段内是否是首笔
  690. IF NOT EXISTS(SELECT LogID FROM [TransferLog] WHERE Crdate BETWEEN @RefundBeginTime AND @RefundEndTime AND UserID = @UserID)
  691. BEGIN
  692. SET @Refund = @WantAmount * (@RefundRatio / 100.00) --返还金额
  693. --是否超过返额上限
  694. SET @Refund = CASE
  695. WHEN @Refund > @RefundMaxAmount THEN @RefundMaxAmount
  696. ELSE @Refund
  697. END
  698. END
  699. END
  700. END
  701. IF(@WantAmount < @MIN_AMOUNT OR @WantAmount > @MAX_AMOUNT)
  702. BEGIN
  703. INSERT INTO [MoneyLog]
  704. (
  705. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  706. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  707. )
  708. VALUES
  709. (
  710. 0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
  711. 0, @TaxAmount, @IPAddress, 'Safe transfer:Incoming amount error', @CurrTime, 0
  712. )
  713. SET @RetCode = -3
  714. SET @ErrMsg = 'The transfer amount of safe exceeds the limit'
  715. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  716. RETURN
  717. END
  718. --获取当前自己的昵称
  719. SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
  720. IF(@@ROWCOUNT = 0)
  721. BEGIN
  722. INSERT INTO [MoneyLog]
  723. (
  724. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  725. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  726. )
  727. VALUES
  728. (
  729. 0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
  730. 0, @TaxAmount, @IPAddress, 'Safe transfer:Incoming user parameter error', @CurrTime, 0
  731. )
  732. SET @RetCode = -2
  733. SET @ErrMsg = 'User parameter error'
  734. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  735. RETURN
  736. END
  737. --获取当前自己的昵称
  738. SELECT @AcceptNickName = NickName FROM [AllUser] WHERE UserID = @AcceptUserID
  739. IF(@@ROWCOUNT = 0)
  740. BEGIN
  741. INSERT INTO [MoneyLog]
  742. (
  743. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  744. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  745. )
  746. VALUES
  747. (
  748. 0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
  749. 0, @TaxAmount, @IPAddress, 'Safe transfer:Receive ID does not exist', @CurrTime, 0
  750. )
  751. SET @RetCode = -5
  752. SET @ErrMsg = 'Receive ID does not exist'
  753. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  754. RETURN
  755. END
  756. --日转账限额
  757. SELECT @DailyTransferAmount = DailyTransferAmount FROM [PlatformConfig] WHERE ConfigID = 1
  758. --有设置转账限额
  759. IF(@DailyTransferAmount > 0)
  760. BEGIN
  761. --今天转账金额
  762. SELECT
  763. @TransferAmount = ISNULL(SUM(-WantAmount), 0)
  764. FROM
  765. [TransferLog]
  766. WHERE
  767. Crdate >= CONVERT(CHAR(10), @CurrTime, 120) AND UserID = @UserID
  768. --判断是否达到上限
  769. IF((@TransferAmount + @WantAmount) > @DailyTransferAmount)
  770. BEGIN
  771. SET @RetCode = -9
  772. SET @ErrMsg = 'Up to today transfer limit'
  773. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  774. RETURN
  775. END
  776. END
  777. SET @AcceptCurrAmount = (SELECT [Amount] FROM [Money] WHERE [UserID] = @AcceptUserID)
  778. IF @AcceptCurrAmount IS NULL
  779. SET @AcceptCurrAmount = 0
  780. --开始金币的转账操作
  781. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  782. BEGIN TRAN
  783. --检查用户现金
  784. SET @CurrAmount = (SELECT [Amount] FROM [Money] WHERE [UserID] = @UserID)
  785. IF @CurrAmount IS NULL
  786. SET @CurrAmount = 0
  787. IF(@CurrAmount < @TotalAmount)
  788. BEGIN
  789. ROLLBACK TRAN
  790. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  791. INSERT INTO [MoneyLog]
  792. (
  793. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  794. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  795. )
  796. VALUES
  797. (
  798. 0, N'玩家转账', 'CASH', @UserID, 0, @WantAmount,
  799. 0, @TaxAmount, @IPAddress, 'Safe transfer:Cash is not enough', @CurrTime, 0
  800. )
  801. SET @RetCode = -7
  802. SET @ErrMsg = 'Your current safe is not less than the amount sent'
  803. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  804. RETURN
  805. END
  806. --可以进行保险柜操作了
  807. UPDATE [Money] SET [Amount] = [Amount] - @TotalAmount WHERE [UserID] = @UserID
  808. UPDATE [Money] SET [Amount] = [Amount] + @WantAmount WHERE [UserID] = @AcceptUserID
  809. IF(@@RowCount = 0)
  810. BEGIN
  811. INSERT INTO [Money]
  812. (
  813. [UserID],[Amount], bank
  814. )
  815. VALUES
  816. (
  817. @AcceptUserID, @WantAmount, 0
  818. )
  819. END
  820. COMMIT TRAN
  821. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  822. --写日志
  823. INSERT INTO [MoneyLog]
  824. (
  825. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  826. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  827. )
  828. SELECT
  829. 0, N'玩家转账', 'CASH', @AcceptUserID, @AcceptCurrAmount, @WantAmount,
  830. @AcceptCurrAmount + @WantAmount, @TaxAmount, @IPAddress, 'Safe transfer:Receiving OK', @CurrTime, 11
  831. UNION ALL
  832. SELECT
  833. 0, N'玩家转账,', 'CASH', @UserID, @CurrAmount, -@WantAmount,
  834. @CurrAmount - @WantAmount, @TaxAmount, @IPAddress, 'Safe transfer:Send OK', @CurrTime, 111
  835. --剩余金币
  836. SET @StillAmount = @CurrAmount - @TotalAmount
  837. SET @AcceptStillAmount = @AcceptCurrAmount + @WantAmount
  838. SET @ErrMsg ='Safe transfer succeeded, you have sent ' + CAST(@WantAmount AS VARCHAR(64)) + ',You still have the safe account ' + CAST(@StillAmount AS VARCHAR(64))
  839. --转账日志
  840. INSERT INTO [TransferLog]
  841. (
  842. [UserID], [NickName],[CurrAmount],[WantAmount], [StillAmount],
  843. [AcceptUserID], [AcceptNickName], [AcceptCurrAmount], [AcceptWantAmount], [AcceptStillAmount],
  844. [TaxAmount], [IPAddress], [Memo], [Crdate]
  845. )
  846. VALUES
  847. (
  848. @UserID, @NickName, @CurrAmount, -@WantAmount, @StillAmount,
  849. @AcceptUserID, @AcceptNickName, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount,
  850. @TaxAmount, @IPAddress, @ErrMsg, @CurrTime
  851. )
  852. SET @WantAmountUnit = CASE
  853. WHEN @WantAmount >= 1000000000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'T'
  854. WHEN @WantAmount >= 1000000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'B'
  855. WHEN @WantAmount >= 1000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'M'
  856. ELSE CAST(@WantAmount AS VARCHAR(32))
  857. END
  858. --SET @Msg = N'Teman Anda ' + @NickName + ' ID' + LTRIM(STR(@UserID)) + ' memberi Anda ' + REPLACE(@WantAmountUnit, '.00', '') + ' ingot'
  859. SET @Msg = N'账号@A给您赠送了@B金币,货币已经直接到账'
  860. EXEC [Game_Translate_Get] @Source = N'交易通知', @Target = @Title OUTPUT
  861. EXEC [Game_Translate_Get] @Source = @Msg, @Target = @Msg OUTPUT
  862. SET @Msg = REPLACE(@Msg, '@A', @NickName)
  863. SET @Msg = REPLACE(@Msg, '@B', REPLACE(@WantAmountUnit, '.00', ''))
  864. SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
  865. --发送消息
  866. EXEC [WS_SysMessage_Send] @UserID = @AcceptUserID, @Title = @Title, @Content = @Msg, @Status = 0, @SourceName = 'Transfer',
  867. @Crdate = @TimeStamp, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
  868. --加元宝(限时返额)
  869. IF(@Refund > 0)
  870. BEGIN
  871. --加筹码
  872. EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = N'玩家转账', @GameID = 0, @WantedAmount = @Refund,
  873. @LogType = 44, @Remark = N'赠送返还', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
  874. END
  875. SET @RetCode = 1
  876. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  877. RETURN
  878. END
  879. GO
  880. /****** Object: StoredProcedure [dbo].[Game_Cash_TransferLog] Script Date: 2024/1/12 11:01:14 ******/
  881. SET ANSI_NULLS ON
  882. GO
  883. SET QUOTED_IDENTIFIER ON
  884. GO
  885. -- EXEC [Game_Cash_TransferLog]
  886. -- ==============================================
  887. -- Author: wolf
  888. -- Create Date: 2014-09-03
  889. -- Mendor: wolf
  890. -- Alter Date: 2014-12-02
  891. -- Description: 筹码赠送记录
  892. -- ==============================================
  893. CREATE PROCEDURE [dbo].[Game_Cash_TransferLog]
  894. @UserID INT, --用户ID
  895. @Days INT = 7 --天数
  896. AS
  897. SET NOCOUNT ON
  898. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  899. SET XACT_ABORT ON
  900. BEGIN
  901. --返回信息
  902. SELECT TOP 100
  903. UserID, NickName, AcceptUserID, AcceptNickName, AcceptWantAmount AS Amount,
  904. CONVERT(CHAR(16), Crdate, 120) AS Crdate, TaxAmount
  905. FROM
  906. [TransferLog]
  907. WHERE
  908. Crdate >= CONVERT(CHAR(10), GETDATE() - @Days, 120) AND (UserID = @UserID OR AcceptUserID = @UserID)
  909. ORDER BY
  910. LogID DESC
  911. RETURN
  912. END
  913. GO
  914. /****** Object: StoredProcedure [dbo].[Game_CasinoOnline_Lock] Script Date: 2024/1/12 11:01:14 ******/
  915. SET ANSI_NULLS ON
  916. GO
  917. SET QUOTED_IDENTIFIER ON
  918. GO
  919. -- EXEC [Game_CasinoOnline_Lock]
  920. -- ==============================================
  921. -- Author: wolf
  922. -- Create Date: 2014-01-21
  923. -- Mendor: wolf
  924. -- Alter Date: 2016-11-07
  925. -- Description: 金币锁加锁
  926. -- ==============================================
  927. CREATE PROCEDURE [dbo].[Game_CasinoOnline_Lock]
  928. @UserID INT, --用户ID
  929. @GameID INT, --游戏ID
  930. @ServerName NVARCHAR(32) --服务器名称
  931. AS
  932. SET NOCOUNT ON
  933. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  934. SET XACT_ABORT ON
  935. BEGIN
  936. DECLARE @DBServerName NVARCHAR(32) --服务器名称
  937. --服务器名称
  938. SELECT @DBServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
  939. --没有锁
  940. IF(@@ROWCOUNT = 0)
  941. BEGIN
  942. --上锁
  943. INSERT INTO [CasinoOnline]
  944. (
  945. UserID, LoginTime, ServerName, GameID
  946. )
  947. VALUES
  948. (
  949. @UserID, GETDATE(), @ServerName, @GameID
  950. )
  951. RETURN 1
  952. END
  953. --同服务器
  954. IF(@DBServerName = @ServerName)
  955. RETURN 1
  956. RETURN 0
  957. END
  958. GO
  959. /****** Object: StoredProcedure [dbo].[Game_CasinoOnline_Unlock] Script Date: 2024/1/12 11:01:14 ******/
  960. SET ANSI_NULLS ON
  961. GO
  962. SET QUOTED_IDENTIFIER ON
  963. GO
  964. -- EXEC [Game_CasinoOnline_Unlock]
  965. -- ==============================================
  966. -- Author: wolf
  967. -- Create Date: 2014-01-21
  968. -- Mendor: wolf
  969. -- Alter Date: 2016-11-07
  970. -- Description: 金币锁解锁
  971. -- ==============================================
  972. CREATE PROCEDURE [dbo].[Game_CasinoOnline_Unlock]
  973. @UserID INT --用户ID
  974. AS
  975. SET NOCOUNT ON
  976. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  977. SET XACT_ABORT ON
  978. BEGIN
  979. --解锁
  980. DELETE FROM [CasinoOnline] WHERE UserID = @UserID
  981. RETURN
  982. END
  983. GO
  984. /****** Object: StoredProcedure [dbo].[Game_CasinoOnline_Verify] Script Date: 2024/1/12 11:01:14 ******/
  985. SET ANSI_NULLS ON
  986. GO
  987. SET QUOTED_IDENTIFIER ON
  988. GO
  989. -- EXEC [Game_CasinoOnline_Verify]
  990. -- ==============================================
  991. -- Author: wolf
  992. -- Create Date: 2014-01-21
  993. -- Mendor: wolf
  994. -- Alter Date: 2016-11-07
  995. -- Description: 金币锁校验
  996. -- ==============================================
  997. CREATE PROCEDURE [dbo].[Game_CasinoOnline_Verify]
  998. @GameID INT, --游戏ID
  999. @ServerName NVARCHAR(32), --服务器名称
  1000. @Type TINYINT --状态 0=开服 1=关服 2=普通轮询
  1001. AS
  1002. SET NOCOUNT ON
  1003. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  1004. SET XACT_ABORT ON
  1005. BEGIN
  1006. --用户
  1007. DECLARE @tmpUser TABLE(UserID INT NOT NULL)
  1008. --表变量
  1009. DECLARE @tmptable TABLE(
  1010. GameID INT NOT NULL, --游戏ID
  1011. ServerName NVARCHAR(32) NOT NULL --服务器名称
  1012. )
  1013. IF(@Type NOT IN (0, 1, 2))
  1014. RETURN
  1015. --0=开服 1=关服
  1016. IF(@Type IN (0, 1))
  1017. BEGIN
  1018. --删除旧服务器信息
  1019. DELETE FROM [Server] WHERE GameID = @GameID AND ServerName = @ServerName
  1020. --初始化
  1021. INSERT INTO @tmptable(GameID, ServerName) VALUES(@GameID, @ServerName)
  1022. END
  1023. --0=开服
  1024. IF(@Type = 0)
  1025. BEGIN
  1026. --新服务器信息
  1027. INSERT INTO [Server]
  1028. (
  1029. GameID, ServerName, RollTime, Crdate
  1030. )
  1031. VALUES
  1032. (
  1033. @GameID, @ServerName, GETDATE(), GETDATE()
  1034. )
  1035. END
  1036. --2=正常轮询
  1037. ELSE IF(@Type = 2)
  1038. BEGIN
  1039. --服务器轮询
  1040. UPDATE [Server] SET RollTime = GETDATE() WHERE GameID = @GameID AND ServerName = @ServerName
  1041. END
  1042. --过期服务器
  1043. INSERT INTO @tmptable(GameID, ServerName)
  1044. SELECT GameID, ServerName FROM [Server] WHERE RollTime < DATEADD(SECOND, -90, GETDATE())
  1045. --用户
  1046. INSERT INTO @tmpUser(UserID)
  1047. SELECT c.UserID FROM [CasinoOnline] c INNER JOIN @tmptable t ON c.GameID = t.GameID AND c.ServerName = t.ServerName
  1048. IF(@@ROWCOUNT = 0)
  1049. RETURN
  1050. --清理金币锁
  1051. DELETE FROM [CasinoOnline] WHERE UserID IN (SELECT UserID FROM @tmpUser)
  1052. RETURN
  1053. END
  1054. GO
  1055. /****** Object: StoredProcedure [dbo].[Game_Chip_BankIn] Script Date: 2024/1/12 11:01:14 ******/
  1056. SET ANSI_NULLS ON
  1057. GO
  1058. SET QUOTED_IDENTIFIER ON
  1059. GO
  1060. /*
  1061. declare @s varchar(512)
  1062. exec p_bank_in 10479800, 9999, '', 0 , 0, @s output
  1063. print @s
  1064. */
  1065. --存入保险柜
  1066. --返回值1:成功 其它:失败
  1067. CREATE PROCEDURE [dbo].[Game_Chip_BankIn]
  1068. @userid INT,
  1069. @amount BIGINT,
  1070. @servername NVARCHAR(64), --金币房间传这个进来,非金币房间或WEB传''
  1071. @cashamount BIGINT OUTPUT, --数据库中金币数量,只有成功才会返回
  1072. @bankamount BIGINT OUTPUT, --保险柜中的金币数量
  1073. @outmsg NVARCHAR(512) OUTPUT,
  1074. @GameID INT = 0,
  1075. @EPassword VARCHAR(32) = '', --MD5密文
  1076. @IPAddress VARCHAR(16) = '', --IP地址
  1077. @RetCode INT OUTPUT --操作结果
  1078. AS
  1079. Set NoCount On
  1080. Set Xact_Abort On
  1081. BEGIN
  1082. --金币锁
  1083. declare @chvOnlineServerName NVARCHAR(64)
  1084. DECLARE @currentcashamount BIGINT
  1085. DECLARE @currentbankamount BIGINT
  1086. DECLARE @CurrTime DATETIME --系统当前时间
  1087. DECLARE @OldEPassword VARCHAR(32) --登陆密码
  1088. DECLARE @Msg VARCHAR(4096) --操作描述
  1089. DECLARE @IsRobot TINYINT --是否机器人
  1090. SET @currentbankamount = 0
  1091. SET @CurrTime = GETDATE()
  1092. SET @RetCode = 0
  1093. SELECT
  1094. @OldEPassword = EPassword, @IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
  1095. FROM
  1096. [AllUser]
  1097. WHERE
  1098. UserID = @UserID
  1099. IF(@@ROWCOUNT = 0)
  1100. BEGIN
  1101. set @outmsg = N'存入保险柜失败:账号信息不存在'
  1102. return
  1103. END
  1104. /*
  1105. IF(LEN(@ServerName) <= 0)
  1106. BEGIN
  1107. --校验登陆密码
  1108. IF(@OldEPassword IS NULL OR @OldEPassword != @EPassword)
  1109. BEGIN
  1110. SET @Msg = '存入保险柜,密码校验失败,关联信息,@UserID=' + LTRIM(STR(@userid)) + ',@amount=' + CAST(@amount AS VARCHAR(32)) + ',@EPassword=' + @EPassword
  1111. --添加日志
  1112. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = '系统', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
  1113. set @outmsg = '存入保险柜失败'
  1114. return
  1115. END
  1116. END
  1117. */
  1118. select @chvOnlineServerName = [ServerName] from [CasinoOnline] where [UserID] = @userid
  1119. set @bankamount = 0
  1120. set @cashamount = 0
  1121. if @chvOnlineServerName != @servername --没有锁时不能触发这个条件
  1122. begin
  1123. set @outmsg = N'游戏中不能存入金币,只能取出'
  1124. return
  1125. end
  1126. if @amount <= 0
  1127. begin
  1128. set @outmsg = N'存入保险柜失败:请输入正确的数量'
  1129. return
  1130. end
  1131. --检查存入后金额是否超过INT限制
  1132. SELECT @currentcashamount = amount, @currentbankamount = bank FROM [Chip] WHERE userid = @userid
  1133. --非金币房间需要更新 amount
  1134. if @servername = ''
  1135. update [Chip] set bank = bank + @amount, amount = amount - @amount where userid = @userid and amount >= @amount
  1136. else
  1137. update [Chip] set bank = bank + @amount where userid = @userid
  1138. if @@rowcount = 1 --成功
  1139. begin
  1140. select @cashamount = amount, @bankamount = bank from [Chip] where userid = @userid
  1141. INSERT INTO [ChipBankLog]
  1142. (
  1143. userid, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
  1144. )
  1145. VALUES
  1146. (
  1147. @userid, @userid, @currentbankamount, @amount, @bankamount, '<font color="red">存入保险柜</font>', @CurrTime, @IPAddress
  1148. )
  1149. --机器人
  1150. IF(@IsRobot = 1)
  1151. BEGIN
  1152. INSERT INTO [RobotMoneyLog]
  1153. (
  1154. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1155. [StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
  1156. )
  1157. SELECT
  1158. N'钱包', @GameID, 'CASH', @userid, @currentcashamount, -@amount,
  1159. @currentcashamount - @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
  1160. UNION ALL
  1161. SELECT
  1162. N'钱包', @GameID, 'BANK', @userid, @currentbankamount, @amount,
  1163. @currentbankamount + @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
  1164. END
  1165. ELSE
  1166. BEGIN
  1167. INSERT INTO [ChipLog]
  1168. (
  1169. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1170. [StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
  1171. )
  1172. SELECT
  1173. N'钱包', @GameID, 'CASH', @userid, @currentcashamount, -@amount,
  1174. @currentcashamount - @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
  1175. UNION ALL
  1176. SELECT
  1177. N'钱包', @GameID, 'BANK', @userid, @currentbankamount, @amount,
  1178. @currentbankamount + @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
  1179. END
  1180. set @outmsg = N'成功'
  1181. SET @RetCode = 1
  1182. return
  1183. end
  1184. else
  1185. begin
  1186. set @outmsg = N'存入保险柜失败:您身上金币不足'
  1187. return
  1188. end
  1189. END
  1190. GO
  1191. /****** Object: StoredProcedure [dbo].[Game_Chip_BankOut] Script Date: 2024/1/12 11:01:14 ******/
  1192. SET ANSI_NULLS ON
  1193. GO
  1194. SET QUOTED_IDENTIFIER ON
  1195. GO
  1196. /*
  1197. declare @s varchar(512)
  1198. exec p_bank_out 22, 10000, '123', '', 0 , 0 , @s output
  1199. print @s
  1200. */
  1201. --从保险柜取出
  1202. --返回值1:成功 其它:失败
  1203. CREATE PROCEDURE [dbo].[Game_Chip_BankOut]
  1204. @userid INT,
  1205. @amount BIGINT,
  1206. @safeboxpwd VARCHAR(32), --保险柜密码 (加密前的)
  1207. @servername NVARCHAR(64), --金币房间传这个进来,非金币房间或WEB传''
  1208. @cashamount BIGINT OUTPUT, --数据库中金币数量,只有成功才会返回
  1209. @bankamount BIGINT OUTPUT, --保险柜中的金币数量
  1210. @outmsg NVARCHAR(512) OUTPUT,
  1211. @EPassword VARCHAR(32) = '', --MD5密文
  1212. @IPAddress VARCHAR(16) = '', --IP地址
  1213. @RetCode INT OUTPUT, --操作结果
  1214. @GameID INT = 0
  1215. AS
  1216. SET NOCOUNT ON
  1217. SET XACT_ABORT ON
  1218. BEGIN
  1219. --金币锁
  1220. DECLARE @chvOnlineServerName NVARCHAR(64)
  1221. DECLARE @max_amount BIGINT
  1222. DECLARE @currentcashamount BIGINT
  1223. DECLARE @currentbankamount BIGINT
  1224. DECLARE @CurrTime DATETIME --系统当前时间
  1225. DECLARE @OldEPassword VARCHAR(32) --登陆密码
  1226. DECLARE @OldEsafeboxpwd VARCHAR(32) --保险柜密码
  1227. DECLARE @Msg VARCHAR(4096) --操作描述
  1228. DECLARE @IsRobot TINYINT
  1229. SET @max_amount = 2000000000000000
  1230. SET @currentcashamount = 0
  1231. SET @CurrTime = GETDATE()
  1232. SET @RetCode = 0
  1233. --获取当前登陆密码、保险柜密码
  1234. SELECT
  1235. @OldEPassword = EPassword, --@OldEsafeboxPwd = Esafeboxpwd,
  1236. @IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
  1237. FROM
  1238. [AllUser]
  1239. WHERE
  1240. UserID = @userid
  1241. IF(@@ROWCOUNT = 0)
  1242. BEGIN
  1243. SET @RetCode = 11
  1244. set @outmsg = N'从保险柜取出失败:账号信息不存在'
  1245. return 0
  1246. END
  1247. /*
  1248. --Web 调用
  1249. IF(LEN(@ServerName) <= 0)
  1250. BEGIN
  1251. --校验登陆密码
  1252. IF(@OldEPassword IS NULL OR @OldEPassword != @EPassword)
  1253. BEGIN
  1254. SET @Msg = '保险柜取出,密码校验失败,关联信息,@UserID=' + LTRIM(STR(@userid)) + ',@amount=' + CAST(@amount AS VARCHAR(32)) + ',@EPassword=' + @EPassword
  1255. --添加日志
  1256. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = '系统', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
  1257. SET @outmsg = '从保险柜取出失败'
  1258. RETURN -1
  1259. END
  1260. END
  1261. */
  1262. declare @rc int --其它存储过程的返回值
  1263. select @chvOnlineServerName = [ServerName] from [CasinoOnline] where [UserID] = @userid
  1264. set @bankamount = 0
  1265. set @cashamount = 0
  1266. if @chvOnlineServerName != @servername --没有锁时不能触发这个条件
  1267. begin
  1268. SET @RetCode = 12
  1269. set @outmsg = N'从保险柜取出失败:您已在服务器[' + @chvOnlineServerName + '],请登陆此服务器,或通过客服中心寻求帮助'
  1270. return 0
  1271. end
  1272. --不判断是否会员
  1273. if @amount <= 0
  1274. begin
  1275. SET @RetCode = 13
  1276. set @outmsg = N'从保险柜取出失败:请输入正确的数量'
  1277. return 0
  1278. end
  1279. --校验保险柜密码
  1280. --IF(@OldEsafeboxpwd != dbo.fn_md5(@safeboxpwd))
  1281. --BEGIN
  1282. -- set @outmsg = '从保险柜取出失败:保险柜密码不正确!'
  1283. -- return 0
  1284. --END
  1285. --检查取出后金额是否超过INT限制
  1286. SELECT @currentcashamount = amount, @currentbankamount = bank FROM [Chip] WHERE userid = @userid
  1287. IF @amount + @currentcashamount > @max_amount
  1288. BEGIN
  1289. SET @RetCode = 14
  1290. set @outmsg = N'从保险柜取出失败:取出数量过大'
  1291. return 0
  1292. END
  1293. update
  1294. [Chip]
  1295. set
  1296. bank = bank - @amount,
  1297. amount = amount + case @servername when '' then @amount else 0 end
  1298. where
  1299. userid = @userid and bank >= @amount
  1300. if @@rowcount = 1 --成功
  1301. begin
  1302. set @outmsg = N'成功'
  1303. select @cashamount = amount, @bankamount = bank from [Chip] where userid = @userid
  1304. INSERT INTO [ChipBankLog]
  1305. (
  1306. userid, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
  1307. )
  1308. VALUES
  1309. (
  1310. @userid, @userid, @currentbankamount, -@amount, @bankamount, '<font color="green">保险柜取出</font>', @CurrTime, @IPAddress
  1311. )
  1312. --机器人
  1313. IF(@IsRobot = 1)
  1314. BEGIN
  1315. INSERT INTO [RobotMoneyLog]
  1316. (
  1317. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1318. [StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
  1319. )
  1320. SELECT
  1321. N'钱包', @GameID, 'CASH', @userid, @currentcashamount, @amount,
  1322. @currentcashamount + @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
  1323. UNION ALL
  1324. SELECT
  1325. N'钱包', @GameID, 'BANK', @userid, @currentbankamount, -@amount,
  1326. @currentbankamount - @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
  1327. END
  1328. ELSE
  1329. BEGIN
  1330. INSERT INTO [ChipLog]
  1331. (
  1332. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1333. [StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
  1334. )
  1335. SELECT
  1336. N'钱包', @GameID, 'CASH', @userid, @currentcashamount, @amount,
  1337. @currentcashamount + @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
  1338. UNION ALL
  1339. SELECT
  1340. N'钱包', @GameID, 'BANK', @userid, @currentbankamount, -@amount,
  1341. @currentbankamount - @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
  1342. END
  1343. SET @RetCode = 1
  1344. return 1
  1345. end
  1346. else
  1347. begin
  1348. SET @RetCode = 15
  1349. set @outmsg =N'从保险柜取出失败:您保险柜金额不足'
  1350. return 0
  1351. end
  1352. END
  1353. GO
  1354. /****** Object: StoredProcedure [dbo].[Game_Chip_BankQuery] Script Date: 2024/1/12 11:01:14 ******/
  1355. SET ANSI_NULLS ON
  1356. GO
  1357. SET QUOTED_IDENTIFIER ON
  1358. GO
  1359. --接口:查询保险柜数量
  1360. CREATE PROCEDURE [dbo].[Game_Chip_BankQuery]
  1361. @UserID INT,
  1362. @BankAmount BIGINT OUTPUT
  1363. AS
  1364. SET NOCOUNT ON
  1365. SET XACT_ABORT ON
  1366. BEGIN
  1367. SET @BankAmount = 0
  1368. SELECT @BankAmount = Bank FROM [Chip] WHERE userid = @userid
  1369. RETURN
  1370. END
  1371. GO
  1372. /****** Object: StoredProcedure [dbo].[Game_Chip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  1373. SET ANSI_NULLS ON
  1374. GO
  1375. SET QUOTED_IDENTIFIER ON
  1376. GO
  1377. --EXEC [Game_Chip_GetInfo]
  1378. -- ==============================================
  1379. -- Author: wolf
  1380. -- Create Date: 2019-06-24
  1381. -- Mendor: wolf
  1382. -- Alter Date: 2019-07-11
  1383. -- Description: 筹码信息
  1384. -- ============================================
  1385. CREATE PROCEDURE [dbo].[Game_Chip_GetInfo]
  1386. @UserID INT,
  1387. @Amount BIGINT OUTPUT,
  1388. @Bank BIGINT OUTPUT
  1389. AS
  1390. SET NOCOUNT ON
  1391. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  1392. SET XACT_ABORT ON
  1393. BEGIN
  1394. SET @Amount = 0
  1395. SET @Bank = 0
  1396. --获取金币、保险柜
  1397. SELECT @Amount = Amount, @Bank = Bank FROM [Chip] WHERE UserID = @UserID
  1398. RETURN 1
  1399. END
  1400. GO
  1401. /****** Object: StoredProcedure [dbo].[Game_Chip_Give] Script Date: 2024/1/12 11:01:14 ******/
  1402. SET ANSI_NULLS ON
  1403. GO
  1404. SET QUOTED_IDENTIFIER ON
  1405. GO
  1406. -- DECLARE @RetCode TINYINT
  1407. -- EXEC [Game_Chip_Give]
  1408. -- @UserID = 10001,
  1409. -- @SourceName = '',
  1410. -- @WantedAmount = 100,
  1411. -- @LogType = 1,
  1412. -- @IPAddress = '',
  1413. -- @RetCode = @RetCode OUTPUT
  1414. -- SELECT @RetCode AS RetCode
  1415. -- ==============================================
  1416. -- Author: wolf
  1417. -- Create Date: 2014-09-03
  1418. -- Mendor: wolf
  1419. -- Alter Date: 2014-09-04
  1420. -- Description: 加筹码接口(供其他接口调用)
  1421. -- ==============================================
  1422. CREATE PROCEDURE [dbo].[Game_Chip_Give]
  1423. @UserID INT, --用户ID
  1424. @WantedAmount BIGINT, --筹码数
  1425. @GameID INT, --游戏ID
  1426. @LogType INT, --日志类型
  1427. @SourceName NVARCHAR(64), --源名称
  1428. @Remark NVARCHAR(128), --备注
  1429. @IPAddress VARCHAR(16), --IP地址
  1430. @RetCode TINYINT OUTPUT --操作结果
  1431. --操作结果描述: 1=操作成功 11=传入参数错误
  1432. AS
  1433. SET NOCOUNT ON
  1434. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  1435. SET XACT_ABORT ON
  1436. BEGIN
  1437. DECLARE @CurrentAmount BIGINT --当前筹码数
  1438. DECLARE @LogID INT --日志ID
  1439. DECLARE @Balance BIGINT --剩余
  1440. SET @RetCode = 0
  1441. SET @CurrentAmount = 0
  1442. SET @Balance = 0
  1443. --判断领取筹码数是否异常
  1444. IF(@WantedAmount IS NULL OR @WantedAmount <= 0)
  1445. BEGIN
  1446. SET @RetCode = 11
  1447. SET @Remark = @Remark + ',Invalid Amount'
  1448. INSERT INTO [ChipLog]
  1449. (
  1450. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1451. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1452. )
  1453. VALUES
  1454. (
  1455. @SourceName, @GameID, 'CASH', @UserID, 0, 0,
  1456. 0, 0, @IPAddress, @Remark, GETDATE(), @LogType
  1457. )
  1458. RETURN
  1459. END
  1460. -------------------先检查输入参数------------------------
  1461. IF(@UserID IS NULL OR @UserID <= 0)
  1462. BEGIN
  1463. SET @RetCode = 11
  1464. SET @Remark = @Remark + ',Invalid User'
  1465. INSERT INTO [ChipLog]
  1466. (
  1467. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1468. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1469. )
  1470. VALUES
  1471. (
  1472. @SourceName, @GameID, 'CASH', @UserID, 0, 0,
  1473. 0, 0, @IPAddress, @Remark, GETDATE(), @LogType
  1474. )
  1475. RETURN
  1476. END
  1477. --不用提高事务隔离级别,Update 原子性操作
  1478. --加筹码
  1479. UPDATE
  1480. [Chip]
  1481. SET
  1482. Amount = Amount + @WantedAmount, @CurrentAmount = Amount,
  1483. @Balance = Amount + @WantedAmount
  1484. WHERE
  1485. UserID = @UserID
  1486. --还没有数据
  1487. IF(@@RowCount = 0)
  1488. BEGIN
  1489. INSERT INTO [Chip](UserID, Amount, Bank) VALUES(@UserID, @WantedAmount, 0)
  1490. END
  1491. --备注
  1492. SET @Remark = @Remark + ' ' + ISNULL((SELECT ChineseName + ',' + LogTypeName FROM [MoneyLogType] WHERE LogType = @LogType), 'UnKnown')
  1493. --写日志
  1494. INSERT INTO [ChipLog]
  1495. (
  1496. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1497. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1498. )
  1499. VALUES
  1500. (
  1501. @SourceName, @GameID, 'CASH', @UserID, @CurrentAmount, @WantedAmount,
  1502. @Balance, 0, @IPAddress, @Remark, GETDATE(), @LogType
  1503. )
  1504. --日志ID
  1505. SET @LogID = SCOPE_IDENTITY()
  1506. --统计
  1507. EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @WantedAmount, @TaxSum = 0, @LogType = @LogType
  1508. --操作成功
  1509. SET @RetCode = 1
  1510. RETURN @LogID
  1511. END
  1512. GO
  1513. /****** Object: StoredProcedure [dbo].[Game_Chip_Reduce] Script Date: 2024/1/12 11:01:14 ******/
  1514. SET ANSI_NULLS ON
  1515. GO
  1516. SET QUOTED_IDENTIFIER ON
  1517. GO
  1518. -- DECLARE @RetCode TINYINT
  1519. -- EXEC [Game_Chip_Reduce]
  1520. -- @UserID = 10010,
  1521. -- @SourceName = '',
  1522. -- @WantedAmount = 100,
  1523. -- @LogType = 1,
  1524. -- @IPAddress = '',
  1525. -- @RetCode = @RetCode OUTPUT
  1526. -- SELECT @RetCode AS RetCode
  1527. -- ==============================================
  1528. -- Author: wolf
  1529. -- Create Date: 2014-09-03
  1530. -- Mendor: wolf
  1531. -- Alter Date: 2014-12-02
  1532. -- Description: 扣除筹码接口(供其他接口调用)
  1533. -- ==============================================
  1534. CREATE PROCEDURE [dbo].[Game_Chip_Reduce]
  1535. @UserID INT, --用户ID
  1536. @WantedAmount BIGINT, --操作筹码(必须>0)
  1537. @GameID INT, --游戏ID
  1538. @LogType INT, --日志类型
  1539. @SourceName VARCHAR(64), --源名称
  1540. @Remark VARCHAR(128), --备注
  1541. @IPAddress VARCHAR(16), --IP地址
  1542. @RetCode TINYINT OUTPUT --操作结果
  1543. --操作结果描述:1=操作成功 11=筹码不足 12=参数异常 21=筹码锁
  1544. AS
  1545. SET NOCOUNT ON
  1546. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  1547. SET XACT_ABORT ON
  1548. BEGIN
  1549. DECLARE @DateFlag SMALLDATETIME --日期标识
  1550. DECLARE @CurrentAmount BIGINT --当前筹码数
  1551. DECLARE @ServerName NVARCHAR(32) --服务器名称
  1552. DECLARE @LogID INT --日志ID
  1553. DECLARE @Balance BIGINT --剩余
  1554. SET @RetCode = 0
  1555. SET @CurrentAmount = 0
  1556. SET @Balance = 0
  1557. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  1558. --判断领取筹码数是否异常
  1559. IF(@WantedAmount IS NULL OR @WantedAmount <= 0)
  1560. BEGIN
  1561. SET @RetCode = 11
  1562. SET @Remark = @Remark + ',Invalid Amount'
  1563. RETURN
  1564. END
  1565. -------------------先检查输入参数------------------------
  1566. IF(@UserID IS NULL OR @UserID <= 0)
  1567. BEGIN
  1568. SET @RetCode = 11
  1569. SET @Remark = @Remark + ',Invalid User'
  1570. RETURN
  1571. END
  1572. --检查用户锁
  1573. SELECT @ServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
  1574. IF(@@ROWCOUNT > 0)
  1575. BEGIN
  1576. SET @RetCode = 21
  1577. SET @Remark = @Remark + ',Hold Money Mutex, ServerName = ' + @ServerName
  1578. RETURN
  1579. END
  1580. --不用提高事务隔离级别, Update 原子性
  1581. --扣筹码
  1582. UPDATE
  1583. [Chip]
  1584. SET
  1585. Amount = Amount - @WantedAmount, @CurrentAmount = Amount, @Balance = Amount - @WantedAmount
  1586. WHERE
  1587. UserID = @UserID AND Amount >= @WantedAmount
  1588. --判断是否成功
  1589. IF(@@ROWCOUNT <= 0)
  1590. BEGIN
  1591. SET @RetCode = 11
  1592. SET @Remark = @Remark + ', Reduce Fail'
  1593. RETURN
  1594. END
  1595. --备注
  1596. SET @Remark = @Remark + ' ' + ISNULL((SELECT ChineseName + ',' + LogTypeName FROM [MoneyLogType] WHERE LogType = @LogType), 'Unknown')
  1597. --写日志
  1598. INSERT INTO [ChipLog]
  1599. (
  1600. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1601. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1602. )
  1603. VALUES
  1604. (
  1605. @SourceName, @GameID, 'CASH', @UserID, @CurrentAmount, -@WantedAmount,
  1606. @Balance, 0, @IPAddress, @Remark, GETDATE(), @LogType
  1607. )
  1608. --日志ID
  1609. SET @LogID = SCOPE_IDENTITY()
  1610. SET @WantedAmount = -@WantedAmount
  1611. --统计
  1612. EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @WantedAmount, @TaxSum = 0, @LogType = @LogType
  1613. --操作成功
  1614. SET @RetCode = 1
  1615. RETURN @LogID
  1616. END
  1617. GO
  1618. /****** Object: StoredProcedure [dbo].[Game_Chip_Transfer] Script Date: 2024/1/12 11:01:14 ******/
  1619. SET ANSI_NULLS ON
  1620. GO
  1621. SET QUOTED_IDENTIFIER ON
  1622. GO
  1623. /*************************
  1624. 用途:保险柜转账
  1625. 说明:税为0%、单次转账最大额1E、最小额100、
  1626. 说明:同时判断接收方加金币不超过20E(INT最大值)
  1627. **************************/
  1628. CREATE PROCEDURE [dbo].[Game_Chip_Transfer]
  1629. @UserID INT, --转账方ID
  1630. @AcceptUserID INT, --接收方ID
  1631. @WantAmount BIGINT, --要转多少金币,保证为正数
  1632. @IPAddress VARCHAR(15) --IP地址
  1633. AS
  1634. SET NOCOUNT ON
  1635. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  1636. SET XACT_ABORT ON
  1637. BEGIN
  1638. DECLARE @MAX_AMOUNT BIGINT --单次转账最大量
  1639. DECLARE @MIN_AMOUNT BIGINT --单次转账最小量
  1640. DECLARE @AcceptCurrAmount BIGINT --接收者的当前金币量
  1641. DECLARE @TaxAmount BIGINT --税
  1642. DECLARE @CurrAmount BIGINT --当前的金币量
  1643. DECLARE @TotalAmount BIGINT --实际总共改变的金币量,等于@WantAmount +@TaxAmount
  1644. DECLARE @NickName NVARCHAR(32) --昵称
  1645. DECLARE @AcceptNickName NVARCHAR(32) --接收方昵称
  1646. DECLARE @AcceptStillAmount BIGINT --接收者剩余金币
  1647. DECLARE @CurrTime DATETIME --时间
  1648. DECLARE @Msg NVARCHAR(256) --消息
  1649. DECLARE @DailyTransferAmount BIGINT --日转账
  1650. DECLARE @TransferAmount BIGINT --转账金额
  1651. DECLARE @SysMsgID INT
  1652. DECLARE @TimeStamp INT --时间戳
  1653. DECLARE @WantAmountUnit VARCHAR(32)
  1654. DECLARE @Fee INT --手续费率(百分制)
  1655. DECLARE @FreeBeginTime DATETIME --免费开启时间
  1656. DECLARE @FreeEndTime DATETIME --免费截止时间
  1657. DECLARE @RefundBeginTime DATETIME --返额开始时间
  1658. DECLARE @RefundEndTime DATETIME --返额截止时间
  1659. DECLARE @RefundRatio INT --返额比率(百分制)
  1660. DECLARE @RefundMaxAmount BIGINT --单笔返额上限(首笔)
  1661. DECLARE @Refund BIGINT --返还金额
  1662. DECLARE @MinAmount BIGINT --转账最低金额
  1663. DECLARE @RetCode INT --操作结果
  1664. DECLARE @ErrMsg NVARCHAR(256) --消息
  1665. DECLARE @StillAmount BIGINT --剩余保险柜
  1666. SET @StillAmount = 0
  1667. SET @TaxAmount = @WantAmount * 0.01 --1%的手续费
  1668. SET @TotalAmount = @WantAmount + @TaxAmount -- 消耗的金币 = 转出的金币+税
  1669. SET @NickName = ''
  1670. SET @AcceptNickName = ''
  1671. SET @MAX_AMOUNT = 999999999999999
  1672. SET @MIN_AMOUNT = 1
  1673. SET @RetCode = 0
  1674. SET @CurrTime = GETDATE()
  1675. SET @WantAmountUnit = ''
  1676. SET @MinAmount = 100000000
  1677. SET @Refund = 0
  1678. IF(@WantAmount IS NULL OR @WantAmount < 0)
  1679. BEGIN
  1680. SET @RetCode = -1
  1681. SET @ErrMsg = N'Safe amount input error'
  1682. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  1683. RETURN
  1684. END
  1685. IF(@UserID IS NULL OR @AcceptUserID IS NULL OR @UserID < 0 OR @AcceptUserID < 0)
  1686. BEGIN
  1687. IF @UserID IS NULL
  1688. SET @UserID = 0
  1689. IF @AcceptUserID IS NULL
  1690. SET @AcceptUserID = 0
  1691. INSERT INTO [ChipLog]
  1692. (
  1693. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1694. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1695. )
  1696. VALUES
  1697. (
  1698. 0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
  1699. 0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming user parameter error', @CurrTime, 0
  1700. )
  1701. SET @RetCode = -2
  1702. SET @ErrMsg = N'User parameter error'
  1703. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  1704. RETURN
  1705. END
  1706. --判断是否是自己账号
  1707. IF(@UserID = @AcceptUserID)
  1708. BEGIN
  1709. SET @RetCode = -2
  1710. SET @ErrMsg = N'User parameter error'
  1711. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  1712. RETURN
  1713. END
  1714. --获取配置信息
  1715. SELECT
  1716. @Fee = Fee, @FreeBeginTime = FreeBeginTime, @FreeEndTime = FreeEndTime,
  1717. @RefundBeginTime = RefundBeginTime, @RefundEndTime = RefundEndTime,
  1718. @RefundRatio = RefundRatio, @RefundMaxAmount = RefundMaxAmount,
  1719. @MinAmount = CASE
  1720. WHEN @CurrTime BETWEEN MinBeginTime AND MinEndTime THEN MinAmount
  1721. ELSE @MinAmount
  1722. END
  1723. FROM
  1724. [TransferConfig]
  1725. WHERE
  1726. ConfigID = 1
  1727. --有配置信息
  1728. IF(@@ROWCOUNT > 0)
  1729. BEGIN
  1730. --免费
  1731. IF(@CurrTime BETWEEN @FreeBeginTime AND @FreeEndTime)
  1732. BEGIN
  1733. SET @TaxAmount = 0
  1734. END
  1735. --手续费
  1736. ELSE
  1737. BEGIN
  1738. SET @TaxAmount = @WantAmount * (@Fee / 100.00) --1%的手续费
  1739. END
  1740. --扣减的总金额
  1741. SET @TotalAmount = @WantAmount + @TaxAmount
  1742. --限时返额
  1743. IF(@CurrTime BETWEEN @RefundBeginTime AND @RefundEndTime)
  1744. BEGIN
  1745. --判断时间段内是否是首笔
  1746. IF NOT EXISTS(SELECT LogID FROM [ChipTransferLog] WHERE Crdate BETWEEN @RefundBeginTime AND @RefundEndTime AND UserID = @UserID)
  1747. BEGIN
  1748. SET @Refund = @WantAmount * (@RefundRatio / 100.00) --返还金额
  1749. --是否超过返额上限
  1750. SET @Refund = CASE
  1751. WHEN @Refund > @RefundMaxAmount THEN @RefundMaxAmount
  1752. ELSE @Refund
  1753. END
  1754. END
  1755. END
  1756. END
  1757. IF(@WantAmount < @MIN_AMOUNT OR @WantAmount > @MAX_AMOUNT)
  1758. BEGIN
  1759. INSERT INTO [ChipLog]
  1760. (
  1761. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1762. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1763. )
  1764. VALUES
  1765. (
  1766. 0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
  1767. 0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming amount error', @CurrTime, 0
  1768. )
  1769. SET @RetCode = -3
  1770. SET @ErrMsg = N'The transfer amount of safe exceeds the limit'
  1771. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  1772. RETURN
  1773. END
  1774. --获取当前自己的昵称
  1775. SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
  1776. IF(@@ROWCOUNT = 0)
  1777. BEGIN
  1778. INSERT INTO [ChipLog]
  1779. (
  1780. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1781. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1782. )
  1783. VALUES
  1784. (
  1785. 0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
  1786. 0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming user parameter error', @CurrTime, 0
  1787. )
  1788. SET @RetCode = -2
  1789. SET @ErrMsg = N'User parameter error'
  1790. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  1791. RETURN
  1792. END
  1793. --获取当前自己的昵称
  1794. SELECT @AcceptNickName = NickName FROM [AllUser] WHERE UserID = @AcceptUserID
  1795. IF(@@ROWCOUNT = 0)
  1796. BEGIN
  1797. INSERT INTO [ChipLog]
  1798. (
  1799. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1800. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1801. )
  1802. VALUES
  1803. (
  1804. 0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
  1805. 0, @TaxAmount, @IPAddress, N'Safe transfer:Receive ID does not exist', @CurrTime, 0
  1806. )
  1807. SET @RetCode = -5
  1808. SET @ErrMsg = N'Receive ID does not exist'
  1809. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  1810. RETURN
  1811. END
  1812. --日转账限额
  1813. SELECT @DailyTransferAmount = DailyTransferAmount FROM [PlatformConfig] WHERE ConfigID = 1
  1814. --有设置转账限额
  1815. IF(@DailyTransferAmount > 0)
  1816. BEGIN
  1817. --今天转账金额
  1818. SELECT
  1819. @TransferAmount = ISNULL(SUM(-WantAmount), 0)
  1820. FROM
  1821. [ChipTransferLog]
  1822. WHERE
  1823. Crdate >= CONVERT(CHAR(10), @CurrTime, 120) AND UserID = @UserID
  1824. --判断是否达到上限
  1825. IF((@TransferAmount + @WantAmount) > @DailyTransferAmount)
  1826. BEGIN
  1827. SET @RetCode = -9
  1828. SET @ErrMsg = N'Up to today transfer limit'
  1829. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  1830. RETURN
  1831. END
  1832. END
  1833. SET @AcceptCurrAmount = (SELECT [Amount] FROM [Chip] WHERE [UserID] = @AcceptUserID)
  1834. IF @AcceptCurrAmount IS NULL
  1835. SET @AcceptCurrAmount = 0
  1836. --开始金币的转账操作
  1837. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  1838. BEGIN TRAN
  1839. --检查用户现金
  1840. SET @CurrAmount = (SELECT [Amount] FROM [Chip] WHERE [UserID] = @UserID)
  1841. IF @CurrAmount IS NULL
  1842. SET @CurrAmount = 0
  1843. IF(@CurrAmount < @TotalAmount)
  1844. BEGIN
  1845. ROLLBACK TRAN
  1846. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  1847. INSERT INTO [ChipLog]
  1848. (
  1849. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1850. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1851. )
  1852. VALUES
  1853. (
  1854. 0, N'玩家转账', 'CASH', @UserID, 0, @WantAmount,
  1855. 0, @TaxAmount, @IPAddress, N'Safe transfer:Cash is not enough', @CurrTime, 0
  1856. )
  1857. SET @RetCode = -7
  1858. SET @ErrMsg = N'Your current safe is not less than the amount sent'
  1859. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  1860. RETURN
  1861. END
  1862. --可以进行保险柜操作了
  1863. UPDATE [Chip] SET [Amount] = [Amount] - @TotalAmount WHERE [UserID] = @UserID
  1864. UPDATE [Chip] SET [Amount] = [Amount] + @WantAmount WHERE [UserID] = @AcceptUserID
  1865. IF(@@RowCount = 0)
  1866. BEGIN
  1867. INSERT INTO [Chip]
  1868. (
  1869. [UserID],[Amount], bank
  1870. )
  1871. VALUES
  1872. (
  1873. @AcceptUserID, @WantAmount, 0
  1874. )
  1875. END
  1876. COMMIT TRAN
  1877. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  1878. --写日志
  1879. INSERT INTO [ChipLog]
  1880. (
  1881. [GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  1882. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  1883. )
  1884. SELECT
  1885. 0, N'玩家转账', 'CASH', @AcceptUserID, @AcceptCurrAmount, @WantAmount,
  1886. @AcceptCurrAmount + @WantAmount, @TaxAmount, @IPAddress, N'Safe transfer:Receiving OK', @CurrTime, 11
  1887. UNION ALL
  1888. SELECT
  1889. 0, N'玩家转账,', 'CASH', @UserID, @CurrAmount, -@WantAmount,
  1890. @CurrAmount - @WantAmount, @TaxAmount, @IPAddress, N'Safe transfer:Send OK', @CurrTime, 111
  1891. --剩余金币
  1892. SET @StillAmount = @CurrAmount - @TotalAmount
  1893. SET @AcceptStillAmount = @AcceptCurrAmount + @WantAmount
  1894. SET @ErrMsg = N'Safe transfer succeeded, you have sent ' + CAST(@WantAmount AS VARCHAR(64)) + ',You still have the safe account ' + CAST(@StillAmount AS VARCHAR(64))
  1895. --保险柜日志
  1896. INSERT INTO [ChipBankLog]
  1897. (
  1898. UserID, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
  1899. )
  1900. SELECT @UserID, @AcceptUserID, @CurrAmount, -@WantAmount, @StillAmount, N'Safe transfer out', @CurrTime, @IPAddress
  1901. UNION ALL
  1902. SELECT @AcceptUserID, @UserID, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount, N'Safe transfer in', @CurrTime, @IPAddress
  1903. --转账日志
  1904. INSERT INTO [ChipTransferLog]
  1905. (
  1906. [UserID], [NickName],[CurrAmount],[WantAmount], [StillAmount],
  1907. [AcceptUserID], [AcceptNickName], [AcceptCurrAmount], [AcceptWantAmount], [AcceptStillAmount],
  1908. [TaxAmount], [IPAddress], [Memo], [Crdate]
  1909. )
  1910. VALUES
  1911. (
  1912. @UserID, @NickName, @CurrAmount, -@WantAmount, @StillAmount,
  1913. @AcceptUserID, @AcceptNickName, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount,
  1914. @TaxAmount, @IPAddress, @ErrMsg, @CurrTime
  1915. )
  1916. SET @WantAmountUnit = CASE
  1917. WHEN @WantAmount >= 1000000000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'T'
  1918. WHEN @WantAmount >= 1000000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'B'
  1919. WHEN @WantAmount >= 1000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'M'
  1920. ELSE CAST(@WantAmount AS VARCHAR(32))
  1921. END
  1922. SET @Msg = N'Teman Anda ' + @NickName + ' ID' + LTRIM(STR(@UserID)) + ' memberi Anda ' + REPLACE(@WantAmountUnit, '.00', '') + ' ingot'
  1923. SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
  1924. --发送消息
  1925. EXEC [WS_SysMessage_Send] @UserID = @AcceptUserID, @Title = N'Pemberitahuan Kedatangan Ingot', @Content = @Msg, @Status = 0, @SourceName = 'Transfer',
  1926. @Crdate = @TimeStamp, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
  1927. --加元宝(限时返额)
  1928. IF(@Refund > 0)
  1929. BEGIN
  1930. --加筹码
  1931. EXEC [Game_Chip_Give] @UserID = @UserID, @SourceName = N'玩家转账', @GameID = 0, @WantedAmount = @Refund,
  1932. @LogType = 44, @Remark = N'赠送返还', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
  1933. END
  1934. SET @RetCode = 1
  1935. SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
  1936. RETURN
  1937. END
  1938. GO
  1939. /****** Object: StoredProcedure [dbo].[Game_Chip_TransferLog] Script Date: 2024/1/12 11:01:14 ******/
  1940. SET ANSI_NULLS ON
  1941. GO
  1942. SET QUOTED_IDENTIFIER ON
  1943. GO
  1944. -- EXEC [Game_Chip_TransferLog]
  1945. -- ==============================================
  1946. -- Author: wolf
  1947. -- Create Date: 2014-09-03
  1948. -- Mendor: wolf
  1949. -- Alter Date: 2014-12-02
  1950. -- Description: 筹码赠送记录
  1951. -- ==============================================
  1952. CREATE PROCEDURE [dbo].[Game_Chip_TransferLog]
  1953. @UserID INT --用户ID
  1954. AS
  1955. SET NOCOUNT ON
  1956. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  1957. SET XACT_ABORT ON
  1958. BEGIN
  1959. --返回信息
  1960. SELECT TOP 100
  1961. AcceptUserID, AcceptNickName, AcceptWantAmount,
  1962. CONVERT(CHAR(16), Crdate, 120) AS Crdate
  1963. FROM
  1964. [ChipTransferLog]
  1965. WHERE
  1966. Crdate >= GETDATE() - 7 AND UserID = @UserID
  1967. ORDER BY
  1968. LogID DESC
  1969. RETURN
  1970. END
  1971. GO
  1972. /****** Object: StoredProcedure [dbo].[Game_Chip_Write] Script Date: 2024/1/12 11:01:14 ******/
  1973. SET ANSI_NULLS ON
  1974. GO
  1975. SET QUOTED_IDENTIFIER ON
  1976. GO
  1977. -- EXEC [Game_Chip_Write]
  1978. -- ==============================================
  1979. -- Author: wolf
  1980. -- Create Date: 2014-06-17
  1981. -- Mendor: wolf
  1982. -- Alter Date: 2016-08-16
  1983. -- Description: 用户写筹码
  1984. -- ==============================================
  1985. CREATE PROCEDURE [dbo].[Game_Chip_Write]
  1986. @UserID INT, --用户ID
  1987. @SourceName NVARCHAR(64), --源名称
  1988. @GameID INT, --游戏ID
  1989. @Amount BIGINT, --金额
  1990. @Tax BIGINT, --台费
  1991. @Status TINYINT, --状态(0=无效 1=下注 2=结算 3=派奖 11=下注(扣到零为止) 12=结算(扣减到零))
  1992. @IPAddress VARCHAR(16), --IP地址
  1993. @Type INT, --下注或结算信息(保留)
  1994. @Balance BIGINT OUTPUT, --写分后金额
  1995. @RetCode TINYINT OUTPUT --操作结果 1=操作成功 2=操作成功(扣减到零) 11=操作失败 12=参数错误
  1996. AS
  1997. SET NOCOUNT ON
  1998. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  1999. SET XACT_ABORT ON
  2000. BEGIN
  2001. DECLARE @PreAmount BIGINT --操作前金额
  2002. DECLARE @chvRemark NVARCHAR(128) --备注
  2003. DECLARE @CurrTime DATETIME --时间
  2004. DECLARE @DateFlag SMALLDATETIME --日期标识
  2005. DECLARE @WinAmount BIGINT --赢金币
  2006. DECLARE @LoseAmount BIGINT --输金币
  2007. DECLARE @PlaySeconds INT --游戏时长(秒)
  2008. DECLARE @RefreshTime DATETIME --刷新时间
  2009. DECLARE @IsRobot TINYINT --是否机器人
  2010. SET @PreAmount = 0
  2011. SET @Balance = 0
  2012. SET @RetCode = 1 --假设成功
  2013. SET @CurrTime = GETDATE()
  2014. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  2015. SET @WinAmount = 0
  2016. SET @LoseAmount = 0
  2017. SET @RefreshTime = 0
  2018. SET @PlaySeconds = 0
  2019. SET @IsRobot = 0
  2020. --判断参数
  2021. IF(@UserID IS NULL OR @Amount IS NULL)
  2022. BEGIN
  2023. SET @RetCode = 12
  2024. RETURN
  2025. END
  2026. IF(@UserID <= 0)
  2027. BEGIN
  2028. SET @IsRobot = 1
  2029. END
  2030. --是否机器人
  2031. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  2032. BEGIN
  2033. SET @IsRobot = 1
  2034. END
  2035. --提高事务隔离级别
  2036. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  2037. --开启事务
  2038. BEGIN TRAN
  2039. --加金币
  2040. IF(@Amount >= 0)
  2041. BEGIN
  2042. UPDATE
  2043. [Chip]
  2044. SET
  2045. Amount = Amount + @Amount, @PreAmount = Amount, @Balance = Amount + @Amount
  2046. WHERE
  2047. UserID = @UserID
  2048. IF(@@ROWCOUNT = 0)
  2049. BEGIN
  2050. --增加一个现金帐号
  2051. INSERT INTO [Chip](UserID, Amount, Bank) VALUES(@UserID, @Amount, 0)
  2052. SET @Balance = @Amount
  2053. END
  2054. END
  2055. --扣减金币
  2056. ELSE IF(@Amount < 0)
  2057. BEGIN
  2058. UPDATE
  2059. [Chip]
  2060. SET
  2061. Amount = Amount + @Amount, @PreAmount = Amount, @Balance = Amount + @Amount
  2062. WHERE
  2063. UserID = @UserID AND Amount >= ABS(@Amount)
  2064. IF(@@ROWCOUNT = 0)
  2065. BEGIN
  2066. SET @RetCode = 11
  2067. END
  2068. END
  2069. --提交事务
  2070. COMMIT TRAN
  2071. --恢复事务隔离级别
  2072. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2073. --操作成功
  2074. IF(@RetCode != 1)
  2075. BEGIN
  2076. SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type))) + ',Operate Fail'
  2077. IF(@IsRobot = 1)
  2078. RETURN
  2079. --记录日志
  2080. INSERT INTO [ChipLog]
  2081. (
  2082. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  2083. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  2084. )
  2085. values
  2086. (
  2087. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
  2088. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  2089. )
  2090. RETURN
  2091. END
  2092. --机器人
  2093. IF(@IsRobot = 1)
  2094. RETURN
  2095. --正常玩家
  2096. --游戏税收统计
  2097. IF(@Tax > 0)
  2098. BEGIN
  2099. UPDATE [ChipTax] SET Tax = Tax + @Tax WHERE DateFlag = @DateFlag AND ServerName = @SourceName
  2100. IF(@@ROWCOUNT = 0)
  2101. BEGIN
  2102. INSERT INTO [ChipTax] (DateFlag, ServerName, Tax) VALUES(@DateFlag, @SourceName, @Tax)
  2103. END
  2104. END
  2105. SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type)))
  2106. --添加日志
  2107. INSERT INTO [ChipLog]
  2108. (
  2109. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  2110. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  2111. )
  2112. values
  2113. (
  2114. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
  2115. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  2116. )
  2117. --用戶日常统计
  2118. --赢金币
  2119. IF(@Amount > 0)
  2120. BEGIN
  2121. SET @WinAmount = @Amount
  2122. END
  2123. --输金币
  2124. ELSE IF(@Amount < 0)
  2125. BEGIN
  2126. SET @LoseAmount = @Amount
  2127. END
  2128. --获取今天最后游戏时间
  2129. SELECT @RefreshTime = RefreshTime FROM [UserPlayTime] WHERE UserID = @UserID
  2130. --计算游戏时长
  2131. IF(@RefreshTime >= @DateFlag)
  2132. BEGIN
  2133. SET @PlaySeconds = DATEDIFF(SECOND, @RefreshTime, @CurrTime)
  2134. --超过5分钟
  2135. SET @PlaySeconds = CASE WHEN @PlaySeconds >= 300 THEN 0 ELSE @PlaySeconds END
  2136. END
  2137. -- 下面更新统计
  2138. IF(@Amount != 0 OR @Tax != 0)
  2139. BEGIN
  2140. --统计
  2141. IF(@Type % 100 != 99)
  2142. BEGIN
  2143. --统计
  2144. EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @Amount, @TaxSum = @Tax, @LogType = @Type
  2145. END
  2146. END
  2147. --更新
  2148. UPDATE
  2149. [UserDailyStat]
  2150. SET
  2151. GameStart = CASE WHEN GameStart = '2021-01-01' THEN @CurrTime ELSE GameStart END, GameEnd = @CurrTime,
  2152. PlaySeconds = PlaySeconds + @PlaySeconds
  2153. WHERE
  2154. DateFlag = @DateFlag AND UserID = @UserID
  2155. IF(@@ROWCOUNT = 0)
  2156. BEGIN
  2157. INSERT INTO [UserDailyStat]
  2158. (
  2159. DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  2160. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  2161. )
  2162. VALUES
  2163. (
  2164. @DateFlag, @UserID, 0, 0, 0, @CurrTime, @CurrTime,
  2165. @PlaySeconds, 0, 0, 0, 0
  2166. )
  2167. END
  2168. --游戏
  2169. IF(@GameID > 0)
  2170. BEGIN
  2171. --刷新时间
  2172. UPDATE [UserPlayTime] SET RefreshTime = @CurrTime WHERE UserID = @UserID
  2173. IF(@@ROWCOUNT = 0)
  2174. BEGIN
  2175. INSERT INTO [UserPlayTime](UserID, RefreshTime) VALUES(@UserID, @CurrTime)
  2176. END
  2177. END
  2178. --游戏大厅离线
  2179. IF(@Type = 99)
  2180. BEGIN
  2181. INSERT INTO [UserTrack](UserID, Level_1, Level_2, Level_3, Crdate) VALUES(@UserID, N'大厅', N'离线', '', @CurrTime)
  2182. END
  2183. RETURN
  2184. END
  2185. GO
  2186. /****** Object: StoredProcedure [dbo].[Game_ChipBetRecord_Write] Script Date: 2024/1/12 11:01:14 ******/
  2187. SET ANSI_NULLS ON
  2188. GO
  2189. SET QUOTED_IDENTIFIER ON
  2190. GO
  2191. --EXEC [Game_ChipBetRecord_Write]
  2192. -- ==============================================
  2193. -- Author: wolf
  2194. -- Create Date: 2019-06-24
  2195. -- Mendor: wolf
  2196. -- Alter Date: 2019-07-11
  2197. -- Description: 服务器游戏写记录(筹码)
  2198. -- ============================================
  2199. CREATE PROCEDURE [dbo].[Game_ChipBetRecord_Write]
  2200. @UserID INT, --用户ID
  2201. @GameID INT, --游戏ID
  2202. @BetSecBefore INT, --结算前几秒下注的
  2203. @BetAmount BIGINT, --下注金额
  2204. @BetZone VARCHAR(128), --下注描述
  2205. @ResultAmount BIGINT, --输赢
  2206. @ResultZone VARCHAR(1024), --结果描述
  2207. @Tax BIGINT, --产生税收
  2208. @Odds DECIMAL(10, 2), --赔率(百为基数)
  2209. @TransType VARCHAR(32),
  2210. @IpAddress VARCHAR(16), --IP地址
  2211. @ServerName NVARCHAR(32) --房间名称
  2212. AS
  2213. SET NOCOUNT ON
  2214. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2215. SET XACT_ABORT ON
  2216. BEGIN
  2217. DECLARE @CurrTime DATETIME --系统当前时间
  2218. DECLARE @BetTime DATETIME --下注时间
  2219. DECLARE @RecordID VARCHAR(32) --记录ID
  2220. DECLARE @DateFlag SMALLDATETIME --日期标识
  2221. DECLARE @Amount BIGINT --金币数
  2222. DECLARE @Bank BIGINT --保险柜
  2223. DECLARE @WinCount INT --赢局数
  2224. DECLARE @WinAmount BIGINT
  2225. DECLARE @InvestAmount BIGINT --投注额
  2226. DECLARE @StartIndex INT --起始索引
  2227. DECLARE @EndIndex INT --截止索引
  2228. DECLARE @FreeType INT --免费类型
  2229. DECLARE @Score BIGINT --积分
  2230. SET @CurrTime = GETDATE()
  2231. SET @BetTime = DATEADD(SECOND, -@BetSecBefore, @CurrTime)
  2232. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  2233. SET @RecordID = ''
  2234. SET @WinCount = 0
  2235. SET @InvestAmount = 0
  2236. --表变量
  2237. DECLARE @tmptable TABLE(
  2238. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  2239. UserID INT NOT NULL --用户ID
  2240. )
  2241. IF(@UserID <= 0)
  2242. RETURN
  2243. --机器人
  2244. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  2245. RETURN
  2246. --筹码
  2247. EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @Amount OUTPUT, @Bank = @Bank OUTPUT
  2248. --生成数据
  2249. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  2250. --获取订单ID
  2251. SELECT @RecordID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  2252. --组装成有序的订单
  2253. SET @RecordID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(VARCHAR(16), GETDATE(), 114), ':', '') + SUBSTRING(@RecordID, 1, 2)
  2254. --添加下注信息
  2255. INSERT INTO [ChipBet]
  2256. (
  2257. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds,
  2258. ResultAmount, ResultTime, ResultZone, Tax, StillAmount, Status
  2259. )
  2260. VALUES
  2261. (
  2262. @RecordID, @UserID, @GameID, @TransType, @BetAmount, @BetTime, @BetZone, @Odds,
  2263. @ResultAmount, @CurrTime, @ResultZone, @Tax, @Amount, 2
  2264. )
  2265. --计算赢局数
  2266. SET @WinCount = CASE WHEN @ResultAmount - @BetAmount > 0 THEN 1 ELSE 0 END
  2267. SET @WinAmount = @ResultAmount - @BetAmount
  2268. IF(@GameID IN (50, 51, 52, 55, 56, 57, 58, 87))
  2269. BEGIN
  2270. SET @StartIndex = 1
  2271. SET @EndIndex = 0
  2272. SET @EndIndex = CHARINDEX('|', @BetZone, @StartIndex)
  2273. IF(@EndIndex > 0)
  2274. BEGIN
  2275. SET @BetAmount = CAST(SUBSTRING(@BetZone, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
  2276. SET @StartIndex = @EndIndex + 1
  2277. SET @FreeType = CAST(SUBSTRING(@BetZone, @StartIndex, LEN(@BetZone) - @StartIndex + 1) AS INT)
  2278. SET @InvestAmount = @BetAmount + CASE WHEN @FreeType = 0 THEN 3 WHEN @FreeType = 1 THEN 4 ELSE 0 END
  2279. END
  2280. --数据监控
  2281. EXEC [Game_SlotChip_Trigger] @UserID = @UserID, @GameID = @GameID, @BetAmount = @BetAmount,
  2282. @ResultAmount = @ResultAmount, @WinAmount = @WinAmount, @Tax = @Tax, @InvestAmount = @InvestAmount
  2283. END
  2284. --活动时间
  2285. IF(@CurrTime BETWEEN '2022-05-02 10:00' AND '2022-05-06 23:59:59')
  2286. BEGIN
  2287. --计算积分
  2288. SET @Score = CASE
  2289. WHEN @WinAmount > 0 THEN @WinAmount / 1000 * 2 --结果为正,则玩家每1k结算金额可获得2积分
  2290. WHEN @WinAmount < 0 THEN ABS(@WinAmount) / 1000 --结果为负,则玩家每1k结算金额可获得1积分
  2291. ELSE 0
  2292. END
  2293. --加积分
  2294. IF(@Score > 0)
  2295. BEGIN
  2296. --更新
  2297. UPDATE [UserChipScore] SET Score = Score + @Score WHERE DateFlag = @DateFlag AND UserID = @UserID
  2298. IF(@@ROWCOUNT = 0)
  2299. BEGIN
  2300. INSERT INTO [UserChipScore](DateFlag, UserID, Score) VALUES(@DateFlag, @UserID, @Score)
  2301. END
  2302. END
  2303. END
  2304. RETURN
  2305. END
  2306. GO
  2307. /****** Object: StoredProcedure [dbo].[Game_ChipLoginStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  2308. SET ANSI_NULLS ON
  2309. GO
  2310. SET QUOTED_IDENTIFIER ON
  2311. GO
  2312. -- EXEC [Game_ChipLoginStat_GetList]
  2313. -- ==============================================
  2314. -- Author: wolf
  2315. -- Create Date: 2014-10-17
  2316. -- Mendor: wolf
  2317. -- Alter Date: 2014-10-77
  2318. -- Description: 元宝大厅登录统计
  2319. -- ==============================================
  2320. CREATE PROCEDURE [dbo].[Game_ChipLoginStat_GetList]
  2321. @BeginTime DATETIME, --开始时间
  2322. @EndTime DATETIME --截止时间
  2323. AS
  2324. SET NOCOUNT ON
  2325. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2326. SET XACT_ABORT ON
  2327. BEGIN
  2328. DECLARE @tmptable TABLE(
  2329. DateFlag SMALLDATETIME NOT NULL, --日期标识
  2330. LoginCount INT NOT NULL --登录人数
  2331. )
  2332. --初始化
  2333. INSERT INTO @tmptable
  2334. (
  2335. DateFlag, LoginCount
  2336. )
  2337. SELECT
  2338. DateFlag, LoginCount
  2339. FROM
  2340. [ChipLoginStat]
  2341. WHERE
  2342. DateFlag BETWEEN @BeginTime AND @EndTime
  2343. --统计今天的
  2344. IF(@EndTime >= CONVERT(CHAR(10), GETDATE(), 120))
  2345. BEGIN
  2346. --初始化
  2347. INSERT INTO @tmptable
  2348. (
  2349. DateFlag, LoginCount
  2350. )
  2351. SELECT
  2352. DateFlag, COUNT(DISTINCT UserID)
  2353. FROM
  2354. [ChipStat]
  2355. WHERE
  2356. DateFlag = CONVERT(CHAR(10), GETDATE(), 120) AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
  2357. GROUP BY
  2358. DateFlag
  2359. END
  2360. --返回信息
  2361. SELECT
  2362. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, LoginCount
  2363. FROM
  2364. @tmptable
  2365. ORDER BY
  2366. DateFlag DESC
  2367. RETURN
  2368. END
  2369. GO
  2370. /****** Object: StoredProcedure [dbo].[Game_ChipStat_Total] Script Date: 2024/1/12 11:01:14 ******/
  2371. SET ANSI_NULLS ON
  2372. GO
  2373. SET QUOTED_IDENTIFIER ON
  2374. GO
  2375. -- EXEC [Game_ChipStat_Total]
  2376. -- ==============================================
  2377. -- Author: wolf
  2378. -- Create Date: 2014-09-03
  2379. -- Mendor: wolf
  2380. -- Alter Date: 2016-07-28
  2381. -- Description: 每隔30分钟统计筹码总量
  2382. -- ==============================================
  2383. CREATE PROCEDURE [dbo].[Game_ChipStat_Total]
  2384. AS
  2385. SET NOCOUNT ON
  2386. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2387. SET XACT_ABORT ON
  2388. BEGIN
  2389. DECLARE @TotalAmount BIGINT --总存量
  2390. DECLARE @TotalBank BIGINT --保险柜存量
  2391. --现金总量、保险柜存量
  2392. SELECT
  2393. @TotalAmount = SUM(Amount), @TotalBank = SUM(Bank)
  2394. FROM
  2395. [Chip]
  2396. WHERE
  2397. UserID NOT IN (SELECT UserID FROM [MachineUser])
  2398. SET @TotalAmount = ISNULL(@TotalAmount, 0)
  2399. SET @TotalBank = ISNULL(@TotalBank, 0)
  2400. --记录
  2401. INSERT INTO [ChipStatTotal]
  2402. (
  2403. Crdate, TotalAmount, TotalBank
  2404. )
  2405. VALUES
  2406. (
  2407. CONVERT(CHAR(16), GETDATE(), 120), @TotalAmount, @TotalBank
  2408. )
  2409. RETURN
  2410. END
  2411. GO
  2412. /****** Object: StoredProcedure [dbo].[Game_ChipStat_Update] Script Date: 2024/1/12 11:01:14 ******/
  2413. SET ANSI_NULLS ON
  2414. GO
  2415. SET QUOTED_IDENTIFIER ON
  2416. GO
  2417. -- EXEC [Game_ChipStat_Update]
  2418. -- @MoneySum = 1,
  2419. -- @TaxSum = 1,
  2420. -- @LogType = 1
  2421. -- ==============================================
  2422. -- Author: wolf
  2423. -- Create Date: 2014-06-12
  2424. -- Mendor: wolf
  2425. -- Alter Date: 2014-09-02
  2426. -- Description: 游戏筹码统计(暂时只统计普通玩家)
  2427. -- ==============================================
  2428. CREATE PROCEDURE [dbo].[Game_ChipStat_Update]
  2429. @UserID INT, --用户ID
  2430. @MoneySum BIGINT, --金币数
  2431. @TaxSum BIGINT, --税收
  2432. @LogType INT --日志类型
  2433. AS
  2434. SET NOCOUNT ON
  2435. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2436. SET XACT_ABORT ON
  2437. BEGIN
  2438. DECLARE @CurrTime DATETIME --系统当前时间
  2439. DECLARE @DateFlag SMALLDATETIME --日期标志
  2440. SET @CurrTime = GETDATE()
  2441. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  2442. --更新统计信息
  2443. UPDATE
  2444. [ChipStat]
  2445. SET
  2446. MoneySum = MoneySum + @MoneySum, TaxSum = TaxSum + @TaxSum
  2447. WHERE
  2448. DateFlag = @DateFlag AND UserID = @UserID AND LogType = @LogType
  2449. --还没有统计信息
  2450. IF(@@ROWCOUNT = 0)
  2451. BEGIN
  2452. INSERT INTO [ChipStat]
  2453. (
  2454. DateFlag, UserID, LogType, MoneySum, TaxSum
  2455. )
  2456. VALUES
  2457. (
  2458. @DateFlag, @UserID, @LogType, @MoneySum, @TaxSum
  2459. )
  2460. END
  2461. RETURN
  2462. END
  2463. GO
  2464. /****** Object: StoredProcedure [dbo].[Game_CouponTask_Stat] Script Date: 2024/1/12 11:01:14 ******/
  2465. SET ANSI_NULLS ON
  2466. GO
  2467. SET QUOTED_IDENTIFIER ON
  2468. GO
  2469. -- EXEC [Game_CouponTask_Stat]
  2470. -- ==============================================
  2471. -- Author: wolf
  2472. -- Create Date: 2015-10-10
  2473. -- Mendor: wolf
  2474. -- Alter Date: 2015-10-10
  2475. -- Description: 红包券统计
  2476. -- ==============================================
  2477. CREATE PROCEDURE [dbo].[Game_CouponTask_Stat]
  2478. AS
  2479. SET NOCOUNT ON
  2480. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2481. SET XACT_ABORT ON
  2482. BEGIN
  2483. DECLARE @CurrTime DATETIME --系统时间
  2484. DECLARE @DateFlag SMALLDATETIME --日期标识
  2485. SET @CurrTime = GETDATE()
  2486. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  2487. SET @DateFlag = @DateFlag - 1
  2488. --0点
  2489. IF(DATEPART(HOUR, @CurrTime) != 0)
  2490. RETURN
  2491. IF(DATEPART(MINUTE, @CurrTime) > 1)
  2492. RETURN
  2493. --统计
  2494. INSERT INTO [CouponStat]
  2495. (
  2496. DateFlag, CouponCount, UserCount
  2497. )
  2498. SELECT
  2499. @DateFlag, SUM(CouponCount), COUNT(DISTINCT UserID)
  2500. FROM
  2501. [UserCouponStat]
  2502. WHERE
  2503. DateFlag >= @DateFlag AND DateFlag < @DateFlag + 1
  2504. RETURN
  2505. END
  2506. GO
  2507. /****** Object: StoredProcedure [dbo].[Game_DailyReport_Stat] Script Date: 2024/1/12 11:01:14 ******/
  2508. SET ANSI_NULLS ON
  2509. GO
  2510. SET QUOTED_IDENTIFIER ON
  2511. GO
  2512. -- EXEC [Game_DailyReport_Stat]
  2513. -- ==============================================
  2514. -- Author: wolf
  2515. -- Create Date: 2014-01-21
  2516. -- Mendor: wolf
  2517. -- Alter Date: 2016-11-07
  2518. -- Description: 每日报表统计
  2519. -- ==============================================
  2520. CREATE PROCEDURE [dbo].[Game_DailyReport_Stat]
  2521. @CurrTime DATETIME --系统当前时间
  2522. AS
  2523. SET NOCOUNT ON
  2524. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2525. SET XACT_ABORT ON
  2526. BEGIN
  2527. DECLARE @DateFlag SMALLDATETIME --日期标识
  2528. DECLARE @BeginTime DATETIME --开始时间
  2529. DECLARE @EndTime DATETIME --截止时间
  2530. DECLARE @AvgOnlineCount INT --平均在线
  2531. DECLARE @MaxOnlineCount INT --最高在线
  2532. DECLARE @RegCount INT --注册用户
  2533. DECLARE @LoginCount INT --登陆用户
  2534. DECLARE @ActiveCount INT--活跃用户(活跃用户是指参与过游戏的用户)
  2535. DECLARE @ReturnUserCount INT --回归用户(回归用户是指这天登录,但此前超过10天没有登录过的用户)
  2536. DECLARE @GooglePay DECIMAL(18, 2) --google充值
  2537. DECLARE @PayerMaxPay DECIMAL(18, 2) --payerMax充值
  2538. DECLARE @ManualPay DECIMAL(18, 2) --手动充值
  2539. DECLARE @PayUserCount INT --付费人数
  2540. DECLARE @AvgPayMoney DECIMAL(18, 2) --人均付费
  2541. DECLARE @ExchangeWithdrawAmount DECIMAL(18, 2) --兑换提现
  2542. DECLARE @LiveUsers_1 INT --次日留存
  2543. DECLARE @LiveUsers_3 INT --3日留存
  2544. DECLARE @LiveUsers_7 INT --7日留存
  2545. DECLARE @SystemStock BIGINT --系统存量
  2546. DECLARE @SystemSend BIGINT --系统发放
  2547. DECLARE @SystemDel BIGINT --系统回收
  2548. DECLARE @GameSend BIGINT --游戏发放
  2549. DECLARE @GameDel BIGINT --游戏回收
  2550. DECLARE @PayUsers_1 INT --第1天充值人数
  2551. DECLARE @PayMoney_1 DECIMAL(18, 2) --第1天充值金额
  2552. DECLARE @PayMoney_2 DECIMAL(18, 2) --第2天充值金额
  2553. DECLARE @PayMoney_3 DECIMAL(18, 2) --第3天充值金额
  2554. DECLARE @PayMoney_7 DECIMAL(18, 2) --第7天充值金额
  2555. DECLARE @PlatformName VARCHAR(32) --平台名称
  2556. DECLARE @Rate INT --比率
  2557. DECLARE @GoldSend BIGINT --币商充值
  2558. DECLARE @GoldSendUsers INT --币商充值用户数
  2559. DECLARE @GoldDel BIGINT --币商支出
  2560. DECLARE @GoldDelUsers INT --币商支出用户数
  2561. --表变量
  2562. DECLARE @tmptable TABLE(
  2563. LogType INT NOT NULL, --日志类型
  2564. Amount BIGINT NOT NULL --金额
  2565. )
  2566. SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
  2567. SET @BeginTime = @DateFlag
  2568. SET @EndTime = CONVERT(CHAR(11), @DateFlag, 120) + '23:59:59'
  2569. SET @Rate = 1
  2570. SELECT
  2571. @AvgOnlineCount = AvgOnlineCount, @MaxOnlineCount = MaxOnlineCount,
  2572. @LoginCount = LoginCount, @ActiveCount = ActiveCount, @ReturnUserCount = ReturnUserCount,
  2573. @PayUserCount = PayUserCount, @AvgPayMoney = AvgPayMoney,
  2574. @RegCount = RegCount, @LiveUsers_1 = LiveUsers_1, @LiveUsers_3 = LiveUsers_3, @LiveUsers_7 = LiveUsers_7
  2575. FROM
  2576. [DailyStat]
  2577. WHERE
  2578. DateFlag = @DateFlag
  2579. --平台名称
  2580. SELECT @PlatformName = PlatformName FROM [PlatformConfig] WHERE ConfigID = 1
  2581. IF(@PlatformName IN ('Egypt'))
  2582. BEGIN
  2583. SET @Rate = 100
  2584. END
  2585. --=======================================1=用户数据==============================================
  2586. INSERT INTO [DailyReport]
  2587. (
  2588. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2589. )
  2590. SELECT @DateFlag, N'平均在线', @AvgOnlineCount, 1, 1, @CurrTime
  2591. UNION ALL
  2592. SELECT @DateFlag, N'最高在线', @MaxOnlineCount, 1, 1, @CurrTime
  2593. UNION ALL
  2594. SELECT @DateFlag, N'登录用户', @LoginCount, 1, 1, @CurrTime
  2595. UNION ALL
  2596. SELECT @DateFlag, N'游戏用户', @ActiveCount, 1, 1, @CurrTime
  2597. UNION ALL
  2598. SELECT @DateFlag, N'回归用户', @ReturnUserCount, 1, 1, @CurrTime
  2599. UNION ALL
  2600. SELECT @DateFlag, N'付费人数', @PayUserCount, 1, 2, @CurrTime
  2601. UNION ALL
  2602. SELECT @DateFlag, N'人均付费', @AvgPayMoney / @Rate, 1, 2, @CurrTime
  2603. UNION ALL
  2604. SELECT @DateFlag, N'付费率', CAST(@PayUserCount * 100.00 / ISNULL(@LoginCount, 1) AS DECIMAL(18, 2)), 1, 2, @CurrTime
  2605. --=======================================2=充值提现数据==============================================
  2606. --谷歌充值
  2607. SELECT @GooglePay = SUM(Price / @Rate) FROM [GoogleSuccessLog] WHERE Crdate BETWEEN @BeginTime AND @EndTime
  2608. IF(@GooglePay >= 0)
  2609. BEGIN
  2610. INSERT INTO [DailyReport]
  2611. (
  2612. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2613. )
  2614. VALUES
  2615. (
  2616. @DateFlag, N'谷歌充值', @GooglePay, 2, 1, @CurrTime
  2617. )
  2618. END
  2619. --PayerMaxPay
  2620. SELECT @PayerMaxPay = SUM(Price / @Rate) FROM [PayerMaxPay] WHERE Crdate BETWEEN @BeginTime AND @EndTime
  2621. IF(@PayerMaxPay >= 0)
  2622. BEGIN
  2623. INSERT INTO [DailyReport]
  2624. (
  2625. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2626. )
  2627. VALUES
  2628. (
  2629. @DateFlag, N'Payermax充值', @PayerMaxPay, 2, 1, @CurrTime
  2630. )
  2631. END
  2632. --手动充值
  2633. SELECT @ManualPay = SUM(Price / @Rate) FROM [ManualPay] WHERE Crdate BETWEEN @BeginTime AND @EndTime
  2634. IF(@ManualPay >= 0)
  2635. BEGIN
  2636. INSERT INTO [DailyReport]
  2637. (
  2638. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2639. )
  2640. VALUES
  2641. (
  2642. @DateFlag, N'手动充值', @ManualPay, 2, 1, @CurrTime
  2643. )
  2644. END
  2645. --兑换提现
  2646. SELECT
  2647. @ExchangeWithdrawAmount = SUM(e.Amount)
  2648. FROM
  2649. [Exchange] e INNER JOIN [ExchangeHistory] h ON e.Id = h.ExchangeID
  2650. WHERE
  2651. h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Amount > 0
  2652. SET @ExchangeWithdrawAmount = ISNULL(@ExchangeWithdrawAmount, 0)
  2653. INSERT INTO [DailyReport]
  2654. (
  2655. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2656. )
  2657. VALUES
  2658. (
  2659. @DateFlag, N'兑换提现', @ExchangeWithdrawAmount, 2, 2, @CurrTime
  2660. )
  2661. --币商充值
  2662. SELECT
  2663. @GoldSend = SUM(WantAmount), @GoldSendUsers = COUNT(DISTINCT AcceptUserID)
  2664. FROM
  2665. [TransferLog]
  2666. WHERE
  2667. Crdate BETWEEN @BeginTime AND @EndTime AND UserID IN (29803034)
  2668. IF(@GoldSend != 0)
  2669. BEGIN
  2670. INSERT INTO [DailyReport]
  2671. (
  2672. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2673. )
  2674. SELECT @DateFlag, N'币商充值', ABS(@GoldSend) / 10500, 2, 1, @CurrTime
  2675. UNION ALL
  2676. SELECT @DateFlag, N'币商充值人数', @GoldSendUsers, 2, 90, @CurrTime
  2677. END
  2678. --币商支出
  2679. SELECT
  2680. @GoldDel = SUM(WantAmount), @GoldDelUsers = COUNT(DISTINCT UserID)
  2681. FROM
  2682. [TransferLog]
  2683. WHERE
  2684. Crdate BETWEEN @BeginTime AND @EndTime AND AcceptUserID IN (29803034)
  2685. IF(@GoldDel != 0)
  2686. BEGIN
  2687. INSERT INTO [DailyReport]
  2688. (
  2689. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2690. )
  2691. SELECT @DateFlag, N'币商支出', ABS(@GoldDel) / 11500, 2, 2, @CurrTime
  2692. UNION ALL
  2693. SELECT @DateFlag, N'币商支出人数', @GoldDelUsers, 2, 91, @CurrTime
  2694. END
  2695. --=======================================3=注册留存==============================================
  2696. SELECT
  2697. @PayUsers_1 = PayUsers_1, @PayMoney_1 = PayMoney_1, @PayMoney_2 = PayMoney_2,
  2698. @PayMoney_3 = PayMoney_3, @PayMoney_7 = PayMoney_7
  2699. FROM
  2700. [NewUserStat]
  2701. WHERE
  2702. DateFlag = @DateFlag AND Source = 'All Source'
  2703. --注册用户数
  2704. INSERT INTO [DailyReport]
  2705. (
  2706. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2707. )
  2708. SELECT @DateFlag, N'注册用户', @RegCount, 3, 1, @CurrTime
  2709. UNION ALL
  2710. SELECT @DateFlag, N'次日留存', @LiveUsers_1, 3, 2, @CurrTime
  2711. UNION ALL
  2712. SELECT @DateFlag, N'次日留存率', CAST(@LiveUsers_1 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2)), 3, 2, @CurrTime
  2713. UNION ALL
  2714. SELECT @DateFlag, N'3日留存', @LiveUsers_3, 3, 2, @CurrTime
  2715. UNION ALL
  2716. SELECT @DateFlag, N'3日留存率', CAST(@LiveUsers_3 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2)), 3, 2, @CurrTime
  2717. UNION ALL
  2718. SELECT @DateFlag, N'7日留存', @LiveUsers_7, 3, 2, @CurrTime
  2719. UNION ALL
  2720. SELECT @DateFlag, N'7日留存率', CAST(@LiveUsers_7 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2)), 3, 2, @CurrTime
  2721. /*
  2722. UNION ALL
  2723. SELECT @DateFlag, N'当日充值人数', @PayUsers_1, 3, 3, @CurrTime
  2724. UNION ALL
  2725. SELECT @DateFlag, N'当日充值', @PayMoney_1 / @Rate, 3, 3, @CurrTime
  2726. UNION ALL
  2727. SELECT @DateFlag, N'次日充值', @PayMoney_2 / @Rate, 3, 3, @CurrTime
  2728. UNION ALL
  2729. SELECT @DateFlag, N'3日充值', @PayMoney_3 / @Rate, 3, 3, @CurrTime
  2730. UNION ALL
  2731. SELECT @DateFlag, N'7日充值', @PayMoney_7 / @Rate, 3, 3, @CurrTime
  2732. */
  2733. --=======================================4=金币收支==============================================
  2734. --系统存量
  2735. SELECT @SystemStock = SUM(TotalAmount + TotalBank) FROM [MoneyStatTotal] WHERE Crdate = @DateFlag + 1
  2736. SET @SystemStock = ISNULL(@SystemStock, 0)
  2737. --初始化表变量
  2738. INSERT INTO @tmptable(LogType, Amount)
  2739. SELECT
  2740. LogType, SUM(MoneySum)
  2741. FROM
  2742. [MoneyStat]
  2743. WHERE
  2744. DateFlag = @DateFlag AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  2745. GROUP BY
  2746. LogType
  2747. --系统发放、系统回收
  2748. SELECT
  2749. @SystemSend = SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END),
  2750. @SystemDel = SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END)
  2751. FROM
  2752. @tmptable
  2753. WHERE
  2754. LogType < 1000
  2755. SET @SystemSend = ISNULL(@SystemSend, 0)
  2756. SET @SystemDel = ISNULL(@SystemDel, 0)
  2757. --游戏发放、游戏回收
  2758. SELECT
  2759. @GameSend = SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END),
  2760. @GameDel = SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END)
  2761. FROM
  2762. @tmptable
  2763. WHERE
  2764. LogType >= 1000
  2765. SET @GameSend = ISNULL(@GameSend, 0)
  2766. SET @GameDel = ISNULL(@GameDel, 0)
  2767. INSERT INTO [DailyReport]
  2768. (
  2769. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2770. )
  2771. SELECT @DateFlag, N'金币存量', @SystemStock, 4, 1, @CurrTime
  2772. UNION ALL
  2773. SELECT @DateFlag, N'系统发放', @SystemSend, 4, 2, @CurrTime
  2774. UNION ALL
  2775. SELECT @DateFlag, N'系统回收', @SystemDel, 4, 2, @CurrTime
  2776. UNION ALL
  2777. SELECT @DateFlag, N'游戏发放', @GameSend, 4, 3, @CurrTime
  2778. UNION ALL
  2779. SELECT @DateFlag, N'游戏回收', @GameDel, 4, 3, @CurrTime
  2780. UNION ALL
  2781. SELECT @DateFlag, N'游戏净回收', @GameDel + @GameSend, 4, 3, @CurrTime
  2782. UNION ALL
  2783. SELECT @DateFlag, N'回收率', CAST((@GameDel + @GameSend) * 100.00 / ISNULL(@GameDel, 1) AS DECIMAL(18, 2)), 4, 3, @CurrTime
  2784. --=======================================初始化==============================================
  2785. INSERT INTO [DailyReport]
  2786. (
  2787. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  2788. )
  2789. SELECT @DateFlag, N'总收入', 0, 2, 100, @CurrTime
  2790. UNION ALL
  2791. SELECT @DateFlag, N'总支出', 0, 2, 101, @CurrTime
  2792. UNION ALL
  2793. SELECT @DateFlag, N'投放成本', 0, 2, 102, @CurrTime
  2794. UNION ALL
  2795. SELECT @DateFlag, N'收入/投放', 0, 2, 103, @CurrTime
  2796. UNION ALL
  2797. SELECT @DateFlag, N'提现/充值', 0, 2, 104, @CurrTime
  2798. UNION ALL
  2799. SELECT @DateFlag, N'充提差', 0, 2, 105, @CurrTime
  2800. UNION ALL
  2801. SELECT @DateFlag, N'毛利', 0, 2, 106, @CurrTime
  2802. UNION ALL
  2803. SELECT @DateFlag, N'ArpuDau', 0, 1, 101, @CurrTime
  2804. UNION ALL
  2805. SELECT @DateFlag, N'Arppu', 0, 1, 102, @CurrTime
  2806. RETURN
  2807. END
  2808. GO
  2809. /****** Object: StoredProcedure [dbo].[Game_DailyStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  2810. SET ANSI_NULLS ON
  2811. GO
  2812. SET QUOTED_IDENTIFIER ON
  2813. GO
  2814. -- EXEC [Game_DailyStat_Stat]
  2815. -- ==============================================
  2816. -- Author: wolf
  2817. -- Create Date: 2014-06-11
  2818. -- Mendor: wolf
  2819. -- Alter Date: 2014-12-29
  2820. -- Description: 日常统计
  2821. -- ==============================================
  2822. CREATE PROCEDURE [dbo].[Game_DailyStat_Stat]
  2823. AS
  2824. SET NOCOUNT ON
  2825. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2826. SET XACT_ABORT ON
  2827. BEGIN
  2828. DECLARE @DateFlag SMALLDATETIME --日期标识
  2829. DECLARE @AvgOnlineCount INT --平均在线
  2830. DECLARE @MaxOnlineCount INT --最高在线
  2831. DECLARE @RegCount INT --注册用户
  2832. DECLARE @LoginCount INT --登陆用户
  2833. DECLARE @ActiveCount INT--活跃用户(活跃用户是指参与过游戏的用户)
  2834. DECLARE @PayMoney DECIMAL(18, 2) --充值
  2835. DECLARE @CosumeAmount INT --消耗货币(消耗货币是指昨日的货币总额变化数量)
  2836. DECLARE @PayUserCount INT --付费人数
  2837. DECLARE @AvgPayMoney DECIMAL(18, 2) --人均付费
  2838. DECLARE @LiveUsers_1 INT --次日留存
  2839. DECLARE @LiveUsers_3 INT --3日留存
  2840. DECLARE @LiveUsers_7 INT --7日留存
  2841. DECLARE @ReturnUserCount INT --回归用户(回归用户是指这天登录,但此前超过10天没有登录过的用户)
  2842. DECLARE @YesterDayUserCount INT --昨天登录用户数
  2843. DECLARE @LoginUserCount INT --最近10天登陆的用户数
  2844. DECLARE @VideoPlayTimes INT --视频广告播放次数
  2845. DECLARE @VideoSendAmount BIGINT --视频广告播放赠送金币
  2846. DECLARE @tmpBet TABLE(
  2847. UserID INT NOT NULL --用户ID
  2848. )
  2849. --表变量
  2850. DECLARE @tmpUser TABLE(UserID INT NOT NULL)
  2851. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  2852. --获取昨天在线
  2853. SELECT
  2854. @AvgOnlineCount = AVG(OnlineUserCount), @MaxOnlineCount = MAX(OnlineUserCount)
  2855. FROM
  2856. [OnlineStat]
  2857. WHERE
  2858. DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag AND PartnerID = -1
  2859. --注册用户(当天的零点,就是前一天的结点)
  2860. SELECT TOP 1 @RegCount = UserCount FROM [RegStat] WHERE DateFlag >= @DateFlag ORDER BY DateFlag ASC
  2861. --登陆用户
  2862. SELECT
  2863. @LoginCount = COUNT(DISTINCT UserID)
  2864. FROM
  2865. [UserLoginLog_bak]
  2866. WHERE
  2867. Crdate >= @DateFlag - 1 AND Crdate < @DateFlag AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  2868. --下注用户
  2869. INSERT INTO @tmpBet(UserID)
  2870. SELECT UserID FROM [Bet] WHERE BetTime >= @DateFlag - 1 AND BetTime < @DateFlag
  2871. UNION ALL
  2872. SELECT UserID FROM [BetInfoHistory] WHERE BetTime >= @DateFlag - 1 AND BetTime < @DateFlag
  2873. --活跃用户(活跃用户是指参与过游戏的用户)
  2874. SELECT
  2875. @ActiveCount = COUNT(DISTINCT UserID)
  2876. FROM
  2877. @tmpBet
  2878. WHERE
  2879. UserID NOT IN (SELECT UserID FROM [MachineUser])
  2880. --充值、付费人数
  2881. SELECT
  2882. @PayMoney = ISNULL(SUM(RMBMoney), 0), @PayUserCount = COUNT(DISTINCT UserID)
  2883. FROM
  2884. [UserPayLog]
  2885. WHERE
  2886. DateFlag = @DateFlag - 1 AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  2887. --平均付费
  2888. SET @AvgPayMoney = @PayMoney / CASE WHEN @PayUserCount = 0 THEN 1 ELSE @PayUserCount END
  2889. --留存统计
  2890. SELECT
  2891. @LiveUsers_1 = LiveUsers_1, @LiveUsers_3 = LiveUsers_3, @LiveUsers_7 = LiveUsers_7
  2892. FROM
  2893. [LiveStat]
  2894. WHERE
  2895. DateFlag = @DateFlag - 1 AND PartnerID = 1
  2896. --昨天登陆的用户(排除注册用户)
  2897. INSERT INTO @tmpUser(UserID)
  2898. SELECT UserID FROM [AllUser] WHERE LoginTime >= @DateFlag - 1 AND RegTime < @DateFlag - 1 AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  2899. --昨天登陆的用户数
  2900. SET @YesterDayUserCount = @@ROWCOUNT
  2901. --最近10天登陆的用户数
  2902. SELECT
  2903. @LoginUserCount = COUNT(DISTINCT u.UserID)
  2904. FROM
  2905. [UserLoginLog_bak] b INNER JOIN @tmpUser u ON b.UserID = u.UserID
  2906. WHERE
  2907. b.Crdate >= @DateFlag - 11 AND b.Crdate < @DateFlag - 1
  2908. --回归用户(回归用户是指这天登录,但此前超过10天没有登录过的用户)
  2909. SELECT @ReturnUserCount = @YesterDayUserCount - @LoginUserCount
  2910. --视频广告
  2911. SELECT
  2912. @VideoPlayTimes = SUM(VideoPlayTimes), @VideoSendAmount = SUM(VideoSendAmount)
  2913. FROM
  2914. [UserDailyStat]
  2915. WHERE
  2916. DateFlag = @DateFlag - 1
  2917. SELECT
  2918. @AvgOnlineCount = ISNULL(@AvgOnlineCount, 0), @MaxOnlineCount = ISNULL(@MaxOnlineCount, 0),
  2919. @RegCount = ISNULL(@RegCount, 0), @LoginCount = ISNULL(@LoginCount, 0),
  2920. @ActiveCount = ISNULL(@ActiveCount, 0), @PayMoney = ISNULL(@PayMoney, 0),
  2921. @CosumeAmount = ISNULL(@CosumeAmount, 0), @PayUserCount = ISNULL(@PayUserCount, 0),
  2922. @AvgPayMoney = ISNULL(@AvgPayMoney, 0), @LiveUsers_1 = ISNULL(@LiveUsers_1, 0),
  2923. @LiveUsers_3 = ISNULL(@LiveUsers_3, 0), @LiveUsers_7 = ISNULL(@LiveUsers_7, 0),
  2924. @ReturnUserCount = ISNULL(@ReturnUserCount, 0), @VideoPlayTimes = ISNULL(@VideoPlayTimes, 0),
  2925. @VideoSendAmount = ISNULL(@VideoSendAmount, 0)
  2926. --记录
  2927. INSERT INTO [DailyStat]
  2928. (
  2929. DateFlag, AvgOnlineCount, MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney,
  2930. CosumeAmount, PayUserCount, AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
  2931. VideoPlayTimes, VideoSendAmount
  2932. )
  2933. VALUES
  2934. (
  2935. @DateFlag - 1, @AvgOnlineCount, @MaxOnlineCount, @RegCount, @LoginCount, @ActiveCount, @PayMoney,
  2936. @CosumeAmount, @PayUserCount, @AvgPayMoney, @LiveUsers_1, @LiveUsers_3, @LiveUsers_7, @ReturnUserCount,
  2937. @VideoPlayTimes, @VideoSendAmount
  2938. )
  2939. --更新次日留存
  2940. --UPDATE [DailyStat] SET TodayLiveCount = @TodayLiveCount WHERE DateFlag = @DateFlag - 2
  2941. RETURN
  2942. END
  2943. GO
  2944. /****** Object: StoredProcedure [dbo].[Game_GameDailyStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  2945. SET ANSI_NULLS ON
  2946. GO
  2947. SET QUOTED_IDENTIFIER ON
  2948. GO
  2949. -- EXEC [Game_GameDailyStat_Stat]
  2950. -- ==============================================
  2951. -- Author: wolf
  2952. -- Create Date: 2014-06-11
  2953. -- Mendor: wolf
  2954. -- Alter Date: 2014-12-29
  2955. -- Description: 游戏日常统计
  2956. -- ==============================================
  2957. CREATE PROCEDURE [dbo].[Game_GameDailyStat_Stat]
  2958. AS
  2959. SET NOCOUNT ON
  2960. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2961. SET XACT_ABORT ON
  2962. BEGIN
  2963. DECLARE @DateFlag SMALLDATETIME --日期标识
  2964. DECLARE @tmpOnline TABLE(
  2965. GameID INT NOT NULL, --游戏ID
  2966. ServerName NVARCHAR(32) NOT NULL, --服务器名称
  2967. AvgOnlineCount INT NOT NULL, --平均在线
  2968. MaxOnlineCount INT NOT NULL --最高在线
  2969. )
  2970. --游戏日常统计
  2971. DECLARE @tmptable TABLE(
  2972. GameID INT NOT NULL, --游戏ID
  2973. ServerName NVARCHAR(32) NOT NULL, --服务器名称
  2974. AvgOnlineCount INT NOT NULL, --平均在线
  2975. MaxOnlineCount INT NOT NULL, --最高在线
  2976. ActiveCount INT NOT NULL, --活跃用户(指有消耗的用户数)
  2977. BetAmount BIGINT NOT NULL, --下注金额
  2978. ResultAmount BIGINT NOT NULL --结算金额
  2979. )
  2980. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  2981. --初始化表变量
  2982. INSERT INTO @tmptable
  2983. (
  2984. GameID, ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
  2985. )
  2986. SELECT
  2987. GameID, ServerName, 0, 0, SUM(BetAmount), SUM(ResultAmount), COUNT(DISTINCT UserID)
  2988. FROM
  2989. [DailyBetStat]
  2990. WHERE
  2991. DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag
  2992. GROUP BY
  2993. GameID, ServerName
  2994. --在线统计
  2995. INSERT INTO @tmpOnline
  2996. (
  2997. GameID, ServerName, AvgOnlineCount, MaxOnlineCount
  2998. )
  2999. SELECT
  3000. GameID, ServerName, AVG(OnlineUserCount), MAX(OnlineUserCount)
  3001. FROM
  3002. [OnlineStat]
  3003. WHERE
  3004. DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag AND GameID > 0
  3005. GROUP BY
  3006. GameID, ServerName
  3007. --获取在线统计
  3008. UPDATE
  3009. t
  3010. SET
  3011. t.AvgOnlineCount = o.AvgOnlineCount, t.MaxOnlineCount = o.MaxOnlineCount
  3012. FROM
  3013. @tmptable t INNER JOIN @tmpOnline o ON t.GameID = o.GameID AND t.ServerName = o.ServerName
  3014. --记录
  3015. INSERT INTO [GameDailyStat]
  3016. (
  3017. DateFlag, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, ActiveCount, BetAmount, ResultAmount
  3018. )
  3019. SELECT
  3020. @DateFlag - 1, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, ActiveCount, BetAmount, ResultAmount
  3021. FROM
  3022. @tmptable
  3023. RETURN
  3024. END
  3025. GO
  3026. /****** Object: StoredProcedure [dbo].[Game_GameData_GetRecordList] Script Date: 2024/1/12 11:01:14 ******/
  3027. SET ANSI_NULLS ON
  3028. GO
  3029. SET QUOTED_IDENTIFIER ON
  3030. GO
  3031. -- EXEC [Game_GameData_GetRecordList]
  3032. -- ==============================================
  3033. -- Author: wolf
  3034. -- Create Date: 2016-06-25
  3035. -- Mendor: wolf
  3036. -- Alter Date: 2016-11-03
  3037. -- Description: 查询记录
  3038. -- ==============================================
  3039. CREATE PROCEDURE [dbo].[Game_GameData_GetRecordList]
  3040. @UserID INT, --用户ID
  3041. @GameID INT, --游戏ID
  3042. @RoomName VARCHAR(32), --房间名称
  3043. @RecordCount INT --记录数
  3044. AS
  3045. SET NOCOUNT ON
  3046. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  3047. SET XACT_ABORT ON
  3048. BEGIN
  3049. DECLARE @RowCount INT --行数
  3050. --表变量
  3051. DECLARE @tmptable TABLE(RoomData VARCHAR(512) NOT NULL)
  3052. --查询记录
  3053. INSERT INTO @tmptable(RoomData)
  3054. SELECT TOP (@RecordCount)
  3055. RoomData
  3056. FROM
  3057. [GameData]
  3058. WHERE
  3059. UserID = @UserID AND GameID = @GameID AND RoomName = @RoomName
  3060. ORDER BY
  3061. Rid DESC
  3062. --行数
  3063. SET @RowCount = @@ROWCOUNT
  3064. --记录数不够
  3065. IF(@RowCount < @RecordCount)
  3066. BEGIN
  3067. --查询记录
  3068. INSERT INTO @tmptable(RoomData)
  3069. SELECT TOP (@RecordCount - @RowCount)
  3070. RoomData
  3071. FROM
  3072. [GameDataHistory]
  3073. WHERE
  3074. UserID = @UserID AND GameID = @GameID AND RoomName = @RoomName
  3075. ORDER BY
  3076. Rid DESC
  3077. END
  3078. SELECT RoomData FROM @tmptable
  3079. RETURN
  3080. END
  3081. GO
  3082. /****** Object: StoredProcedure [dbo].[Game_GameData_WriteRecord] Script Date: 2024/1/12 11:01:14 ******/
  3083. SET ANSI_NULLS ON
  3084. GO
  3085. SET QUOTED_IDENTIFIER ON
  3086. GO
  3087. -- EXEC [Game_GameData_WriteRecord]
  3088. -- ==============================================
  3089. -- Author: wolf
  3090. -- Create Date: 2016-06-25
  3091. -- Mendor: wolf
  3092. -- Alter Date: 2016-11-03
  3093. -- Description: 游戏数据写记录
  3094. -- ==============================================
  3095. CREATE PROCEDURE [dbo].[Game_GameData_WriteRecord]
  3096. @UserID INT, --用户ID
  3097. @GameID INT, --游戏ID
  3098. @RoomName VARCHAR(32), --房间名称
  3099. @RoomData VARCHAR(512) --房间数据
  3100. AS
  3101. SET NOCOUNT ON
  3102. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  3103. SET XACT_ABORT ON
  3104. BEGIN
  3105. RETURN
  3106. --记录数据
  3107. INSERT INTO [GameData]
  3108. (
  3109. UserID, GameID, RoomName, RoomData, Crdate
  3110. )
  3111. VALUES
  3112. (
  3113. @UserID, @GameID, @RoomName, @RoomData, GETDATE()
  3114. )
  3115. RETURN
  3116. END
  3117. GO
  3118. /****** Object: StoredProcedure [dbo].[Game_GameReport_Stat] Script Date: 2024/1/12 11:01:14 ******/
  3119. SET ANSI_NULLS ON
  3120. GO
  3121. SET QUOTED_IDENTIFIER ON
  3122. GO
  3123. -- EXEC [Game_GameReport_Stat]
  3124. -- ==============================================
  3125. -- Author: wolf
  3126. -- Create Date: 2014-01-21
  3127. -- Mendor: wolf
  3128. -- Alter Date: 2016-11-07
  3129. -- Description: 游戏报表统计
  3130. -- ==============================================
  3131. CREATE PROCEDURE [dbo].[Game_GameReport_Stat]
  3132. @CurrTime DATETIME
  3133. AS
  3134. SET NOCOUNT ON
  3135. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  3136. SET XACT_ABORT ON
  3137. BEGIN
  3138. DECLARE @DateFlag SMALLDATETIME --日期标识
  3139. --表变量
  3140. DECLARE @tmptable TABLE(
  3141. LogType INT NOT NULL, --日志类型
  3142. GameID INT NOT NULL, --游戏ID
  3143. ChineseName NVARCHAR(32) NOT NULL, --游戏名称
  3144. Amount BIGINT NOT NULL --金额
  3145. )
  3146. SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
  3147. --初始化表变量
  3148. INSERT INTO @tmptable(LogType, GameID, ChineseName, Amount)
  3149. SELECT
  3150. LogType, 0, '', SUM(MoneySum + TaxSum)
  3151. FROM
  3152. [MoneyStat]
  3153. WHERE
  3154. DateFlag = @DateFlag AND UserID NOT IN (SELECT UserID FROM [MachineUser]) AND LogType >= 1000
  3155. GROUP BY
  3156. LogType
  3157. --获取游戏信息
  3158. UPDATE
  3159. t
  3160. SET
  3161. t.GameID = m.GameID, t.ChineseName = m.ChineseName
  3162. FROM
  3163. @tmptable t INNER JOIN [MoneyLogType] m ON t.LogType = m.LogType
  3164. --游戏发行
  3165. INSERT INTO [GameReport]
  3166. (
  3167. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  3168. )
  3169. SELECT
  3170. @DateFlag, ChineseName + N'发行', SUM(Amount), GameID, 1, @CurrTime
  3171. FROM
  3172. @tmptable
  3173. WHERE
  3174. Amount > 0
  3175. GROUP BY
  3176. ChineseName, GameID
  3177. --游戏消耗
  3178. INSERT INTO [GameReport]
  3179. (
  3180. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  3181. )
  3182. SELECT
  3183. @DateFlag, ChineseName + N'消耗', SUM(Amount), GameID, 2, @CurrTime
  3184. FROM
  3185. @tmptable
  3186. WHERE
  3187. Amount < 0
  3188. GROUP BY
  3189. ChineseName, GameID
  3190. --游戏净消耗
  3191. INSERT INTO [GameReport]
  3192. (
  3193. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  3194. )
  3195. SELECT
  3196. @DateFlag, ChineseName + N'净消耗', SUM(Amount), GameID, 3, @CurrTime
  3197. FROM
  3198. @tmptable
  3199. GROUP BY
  3200. ChineseName, GameID
  3201. RETURN
  3202. END
  3203. GO
  3204. /****** Object: StoredProcedure [dbo].[Game_Issue_Stat] Script Date: 2024/1/12 11:01:14 ******/
  3205. SET ANSI_NULLS ON
  3206. GO
  3207. SET QUOTED_IDENTIFIER ON
  3208. GO
  3209. -- EXEC [Game_Issue_Stat]
  3210. -- ==============================================
  3211. -- Author: wolf
  3212. -- Create Date: 2014-01-21
  3213. -- Mendor: wolf
  3214. -- Alter Date: 2016-11-07
  3215. -- Description: 发行统计
  3216. -- ==============================================
  3217. CREATE PROCEDURE [dbo].[Game_Issue_Stat]
  3218. AS
  3219. SET NOCOUNT ON
  3220. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  3221. SET XACT_ABORT ON
  3222. BEGIN
  3223. DECLARE @DateFlag SMALLDATETIME --日期标识
  3224. DECLARE @LoginUserCount INT --登录用户数
  3225. DECLARE @PayMoney DECIMAL(18, 2) --充值金额
  3226. DECLARE @PayUserCount INT --充值人数
  3227. DECLARE @GameUserCount_1 INT --1局以上玩牌人数
  3228. DECLARE @GameUserCount_3 INT --3局以上玩牌人数
  3229. DECLARE @GameUserCount_7 INT --7局以上玩牌人数
  3230. DECLARE @SubsidyUserCount INT --破产人数
  3231. DECLARE @RegUserCount INT --注册用户数
  3232. DECLARE @GuideStempUserCount INT --新手引导玩家数
  3233. DECLARE @LiveRegUserCount INT --留存注册用户数
  3234. DECLARE @LiveLoginUserCount INT --留存登录用户数
  3235. DECLARE @TodaySeconds INT --今天在线时长
  3236. -- 登录用户表变量
  3237. DECLARE @tmpLoginUser TABLE(
  3238. UserID INT NOT NULL, --用户ID
  3239. RegTime DATETIME NOT NULL, --注册时间
  3240. PayMoney DECIMAL(18, 2) NOT NULL, --充值金额
  3241. GameCount INT NOT NULL, --游戏局数
  3242. IsGuideStep TINYINT NOT NULL, --是否新手引导
  3243. IsSubsidy TINYINT NOT NULL, --是否破产
  3244. TodaySeconds INT NOT NULL --今天在线时长
  3245. )
  3246. --表变量
  3247. DECLARE @tmptable TABLE(
  3248. Rid INT IDENTITY NOT NULL, --标识
  3249. ItemType TINYINT NOT NULL, --项类型(1=总盘 2=新玩家 3=老玩家)
  3250. ItemName NVARCHAR(32) NOT NULL, --项名称
  3251. ItemValue DECIMAL(18, 2) NOT NULL --项值
  3252. )
  3253. SET @DateFlag = CONVERT(CHAR(10), GETDATE() - 1, 120)
  3254. SET @LoginUserCount = 0
  3255. SET @PayMoney = 0
  3256. SET @PayUserCount = 0
  3257. SET @GameUserCount_1 = 0
  3258. SET @GameUserCount_3 = 0
  3259. SET @GameUserCount_7 = 0
  3260. SET @SubsidyUserCount = 0
  3261. SET @RegUserCount = 0
  3262. SET @GuideStempUserCount = 0
  3263. SET @LiveRegUserCount = 0
  3264. SET @LiveLoginUserCount = 0
  3265. SET @TodaySeconds = 0
  3266. --初始化表变量
  3267. INSERT INTO @tmpLoginUser
  3268. (
  3269. UserID, RegTime, PayMoney, GameCount, IsGuideStep, IsSubsidy, TodaySeconds
  3270. )
  3271. SELECT
  3272. UserID, RegTime, 0, 0, 0, 0, 0
  3273. FROM
  3274. [AllUser]
  3275. WHERE
  3276. LoginTime >= @DateFlag
  3277. --获取充值金额
  3278. UPDATE
  3279. t
  3280. SET
  3281. t.PayMoney = p.RMBMoney
  3282. FROM
  3283. @tmpLoginUser t INNER JOIN [UserPayLog] p ON t.UserID = p.UserID AND p.DateFlag = @DateFlag
  3284. --游戏局数
  3285. UPDATE
  3286. t
  3287. SET
  3288. t.GameCount = b.TotalCount
  3289. FROM
  3290. @tmpLoginUser t INNER JOIN [DailyBetStat] b ON t.UserID = b.UserID
  3291. WHERE
  3292. b.DateFlag = @DateFlag AND b.GameID IN (37)
  3293. --新手引导
  3294. UPDATE
  3295. t
  3296. SET
  3297. t.IsGuideStep = 1
  3298. FROM
  3299. @tmpLoginUser t INNER JOIN [UserTask] ut ON t.UserID = ut.UserID AND ut.TaskID = 20014 AND ut.Scheduled > 0
  3300. WHERE
  3301. t.RegTime >= @DateFlag
  3302. --破产补助
  3303. UPDATE
  3304. t
  3305. SET
  3306. t.IsSubsidy = 1
  3307. FROM
  3308. @tmpLoginUser t INNER JOIN [UserSubsidy] us ON t.UserID = us.UserID AND us.Crdate >= @DateFlag AND us.GiftTimes > 0
  3309. --今天在线时长
  3310. UPDATE
  3311. t
  3312. SET
  3313. t.TodaySeconds = o.TodaySeconds
  3314. FROM
  3315. @tmpLoginUser t INNER JOIN [t_onlinetime] o ON t.UserID = o.UserID
  3316. --------------------------------------大盘-------------------------------------------------
  3317. --统计
  3318. SELECT
  3319. @LoginUserCount = COUNT(UserID), @PayMoney = ISNULL(SUM(PayMoney), 0),
  3320. @PayUserCount = ISNULL(SUM(CASE WHEN PayMoney > 0 THEN 1 ELSE 0 END), 0),
  3321. @GameUserCount_1 = ISNULL(SUM(CASE WHEN GameCount >= 1 THEN 1 ELSE 0 END), 0),
  3322. @GameUserCount_3 = ISNULL(SUM(CASE WHEN GameCount >= 3 THEN 1 ELSE 0 END), 0),
  3323. @GameUserCount_7 = ISNULL(SUM(CASE WHEN GameCount >= 7 THEN 1 ELSE 0 END), 0),
  3324. @SubsidyUserCount = ISNULL(SUM(IsSubsidy), 0)
  3325. FROM
  3326. @tmpLoginUser
  3327. --记录
  3328. INSERT INTO @tmptable
  3329. (
  3330. ItemType, ItemName, ItemValue
  3331. )
  3332. SELECT 1, N'DAU', @LoginUserCount
  3333. UNION ALL
  3334. SELECT 1, N'充值金额', @PayMoney
  3335. UNION ALL
  3336. SELECT 1, N'充值人数', @PayUserCount
  3337. UNION ALL
  3338. SELECT 1, N'付费率', CAST(@PayUserCount * 100.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
  3339. UNION ALL
  3340. SELECT 1, N'ARPU', CAST(@PayMoney * 1.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
  3341. UNION ALL
  3342. SELECT 1, N'ARPPU', CAST(@PayMoney * 1.00 / CASE WHEN @PayUserCount = 0 THEN 1 ELSE ISNULL(@PayUserCount, 1) END AS DECIMAL(18, 2))
  3343. UNION ALL
  3344. SELECT 1, N'三局玩牌率', CAST(@GameUserCount_3 * 100.00 / CASE WHEN @GameUserCount_1 = 0 THEN 1 ELSE ISNULL(@GameUserCount_1, 1) END AS DECIMAL(18, 2))
  3345. UNION ALL
  3346. SELECT 1, N'七局玩牌率', CAST(@GameUserCount_7 * 100.00 / CASE WHEN @GameUserCount_1 = 0 THEN 1 ELSE ISNULL(@GameUserCount_1, 1) END AS DECIMAL(18, 2))
  3347. UNION ALL
  3348. SELECT 1, N'破产率', CAST(@SubsidyUserCount * 100.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
  3349. UNION ALL
  3350. SELECT 1, N'日活次留率', 0
  3351. --清空数据
  3352. SET @LoginUserCount = 0
  3353. SET @PayMoney = 0
  3354. SET @PayUserCount = 0
  3355. SET @GameUserCount_1 = 0
  3356. SET @GameUserCount_3 = 0
  3357. SET @GameUserCount_7 = 0
  3358. SET @SubsidyUserCount = 0
  3359. SET @TodaySeconds = 0
  3360. --------------------------------------新玩家-------------------------------------------------
  3361. --统计
  3362. SELECT
  3363. @RegUserCount = COUNT(UserID), @PayMoney = ISNULL(SUM(PayMoney), 0),
  3364. @PayUserCount = ISNULL(SUM(CASE WHEN PayMoney > 0 THEN 1 ELSE 0 END), 0),
  3365. @GuideStempUserCount = ISNULL(SUM(IsGuideStep), 0), @SubsidyUserCount = ISNULL(SUM(IsSubsidy), 0),
  3366. @GameUserCount_1 = ISNULL(SUM(CASE WHEN GameCount >= 1 THEN 1 ELSE 0 END), 0),
  3367. @TodaySeconds = ISNULL(SUM(TodaySeconds), 0)
  3368. FROM
  3369. @tmpLoginUser
  3370. WHERE
  3371. RegTime >= @DateFlag
  3372. --记录
  3373. INSERT INTO @tmptable
  3374. (
  3375. ItemType, ItemName, ItemValue
  3376. )
  3377. SELECT 2, N'新增注册', @RegUserCount
  3378. UNION ALL
  3379. SELECT 2, N'充值金额', @PayMoney
  3380. UNION ALL
  3381. SELECT 2, N'充值人数', @PayUserCount
  3382. UNION ALL
  3383. SELECT 2, N'付费率', CAST(@PayUserCount * 100.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
  3384. UNION ALL
  3385. SELECT 2, N'新手引导率', CAST(@GuideStempUserCount * 100.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
  3386. UNION ALL
  3387. SELECT 2, N'开局率', CAST(@GameUserCount_1 * 100.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
  3388. UNION ALL
  3389. SELECT 2, N'破产率', CAST(@SubsidyUserCount * 100.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
  3390. UNION ALL
  3391. SELECT 2, N'ARPU', CAST(@PayMoney * 1.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
  3392. UNION ALL
  3393. SELECT 2, N'ARPPU', CAST(@PayMoney * 1.00 / CASE WHEN @PayUserCount = 0 THEN 1 ELSE ISNULL(@PayUserCount, 1) END AS DECIMAL(18, 2))
  3394. UNION ALL
  3395. SELECT 2, N'次留率', 0
  3396. UNION ALL
  3397. SELECT 2, N'人均时长', CAST(@TodaySeconds * 1.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
  3398. --清空数据
  3399. SET @LoginUserCount = 0
  3400. SET @RegUserCount = 0
  3401. SET @PayMoney = 0
  3402. SET @PayUserCount = 0
  3403. SET @GuideStempUserCount = 0
  3404. SET @SubsidyUserCount = 0
  3405. SET @GameUserCount_1 = 0
  3406. SET @GameUserCount_3 = 0
  3407. SET @GameUserCount_7 = 0
  3408. SET @TodaySeconds = 0
  3409. --------------------------------------老玩家-------------------------------------------------
  3410. --统计
  3411. SELECT
  3412. @LoginUserCount = COUNT(UserID), @PayMoney = SUM(PayMoney),
  3413. @PayUserCount = ISNULL(SUM(CASE WHEN PayMoney > 0 THEN 1 ELSE 0 END), 0),
  3414. @GameUserCount_1 = ISNULL(SUM(CASE WHEN GameCount >= 1 THEN 1 ELSE 0 END), 0),
  3415. @GameUserCount_3 = ISNULL(SUM(CASE WHEN GameCount >= 3 THEN 1 ELSE 0 END), 0),
  3416. @GameUserCount_7 = ISNULL(SUM(CASE WHEN GameCount >= 7 THEN 1 ELSE 0 END), 0),
  3417. @SubsidyUserCount = ISNULL(SUM(IsSubsidy), 0)
  3418. FROM
  3419. @tmpLoginUser
  3420. WHERE
  3421. RegTime < @DateFlag
  3422. --记录
  3423. INSERT INTO @tmptable
  3424. (
  3425. ItemType, ItemName, ItemValue
  3426. )
  3427. SELECT 3, N'DAU', @LoginUserCount
  3428. UNION ALL
  3429. SELECT 3, N'充值金额', @PayMoney
  3430. UNION ALL
  3431. SELECT 3, N'充值人数', @PayUserCount
  3432. UNION ALL
  3433. SELECT 3, N'付费率', CAST(@PayUserCount * 100.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
  3434. UNION ALL
  3435. SELECT 3, N'ARPU', CAST(@PayMoney * 1.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
  3436. UNION ALL
  3437. SELECT 3, N'ARPPU', CAST(@PayMoney * 1.00 / CASE WHEN @PayUserCount = 0 THEN 1 ELSE ISNULL(@PayUserCount, 1) END AS DECIMAL(18, 2))
  3438. UNION ALL
  3439. SELECT 3, N'三局玩牌率', CAST(@GameUserCount_3 * 100.00 / CASE WHEN @GameUserCount_1 = 0 THEN 1 ELSE ISNULL(@GameUserCount_1, 1) END AS DECIMAL(18, 2))
  3440. UNION ALL
  3441. SELECT 3, N'七局玩牌率', CAST(@GameUserCount_7 * 100.00 / CASE WHEN @GameUserCount_1 = 0 THEN 1 ELSE ISNULL(@GameUserCount_1, 1) END AS DECIMAL(18, 2))
  3442. --清空数据
  3443. SET @LoginUserCount = 0
  3444. SET @RegUserCount = 0
  3445. SET @PayMoney = 0
  3446. SET @PayUserCount = 0
  3447. SET @GuideStempUserCount = 0
  3448. SET @SubsidyUserCount = 0
  3449. SET @GameUserCount_1 = 0
  3450. SET @GameUserCount_3 = 0
  3451. SET @GameUserCount_7 = 0
  3452. SET @TodaySeconds = 0
  3453. --------------------------------------注册次留-------------------------------------------------
  3454. --统计
  3455. SELECT
  3456. @LiveRegUserCount = COUNT(UserID),
  3457. @LiveLoginUserCount = ISNULL(SUM(CASE WHEN LoginTime BETWEEN @DateFlag AND @DateFlag + 1 THEN 1 ELSE 0 END), 0)
  3458. FROM
  3459. [AllUser]
  3460. WHERE
  3461. RegTime BETWEEN @DateFlag - 1 AND @DateFlag
  3462. --补齐前天次留
  3463. UPDATE
  3464. [IssueStat]
  3465. SET
  3466. ItemValue = CAST(@LiveLoginUserCount * 100.00 / CASE WHEN @LiveRegUserCount = 0 THEN 1 ELSE ISNULL(@LiveRegUserCount, 1) END AS DECIMAL(18, 2))
  3467. WHERE
  3468. DateFlag = @DateFlag - 1 AND ItemName = N'次留率'
  3469. SET @LiveLoginUserCount = 0
  3470. SET @LoginUserCount = 0
  3471. --------------------------------------日活次留-------------------------------------------------
  3472. --统计第2天登录
  3473. SELECT
  3474. @LiveLoginUserCount = COUNT(u.UserID)
  3475. FROM
  3476. [UserDailyStat] u INNER JOIN @tmpLoginUser t ON u.UserID = t.UserID
  3477. WHERE
  3478. u.DateFlag = @DateFlag - 1
  3479. --前天日活
  3480. SELECT @LoginUserCount = ItemValue FROM [IssueStat] WHERE DateFlag = @DateFlag - 1 AND ItemType = 1 AND ItemName = N'DAU'
  3481. --补齐前天日活次留
  3482. UPDATE
  3483. [IssueStat]
  3484. SET
  3485. ItemValue = CAST(@LiveLoginUserCount * 100 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE @LoginUserCount END AS DECIMAL(18, 2))
  3486. WHERE
  3487. DateFlag = @DateFlag - 1 AND ItemName = N'日活次留率'
  3488. --------------------------------------永久保存统计数据-------------------------------------------------
  3489. INSERT INTO [IssueStat]
  3490. (
  3491. DateFlag, LabelID, ItemType, ItemName, ItemValue
  3492. )
  3493. SELECT
  3494. @DateFlag, '', ItemType, ItemName, ItemValue
  3495. FROM
  3496. @tmptable
  3497. ORDER BY
  3498. Rid ASC
  3499. RETURN
  3500. END
  3501. GO
  3502. /****** Object: StoredProcedure [dbo].[Game_JackPot_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  3503. SET ANSI_NULLS ON
  3504. GO
  3505. SET QUOTED_IDENTIFIER ON
  3506. GO
  3507. -- EXEC [Game_JackPot_GetInfo]
  3508. -- ==============================================
  3509. -- Author: wolf
  3510. -- Create Date: 2014-06-17
  3511. -- Mendor: wolf
  3512. -- Alter Date: 2016-08-16
  3513. -- Description: 获取游戏奖池信息
  3514. -- ==============================================
  3515. CREATE PROCEDURE [dbo].[Game_JackPot_GetInfo]
  3516. @GameID INT, --用户ID
  3517. @Amount BIGINT OUTPUT --奖池金额
  3518. AS
  3519. SET NOCOUNT ON
  3520. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  3521. SET XACT_ABORT ON
  3522. BEGIN
  3523. SET @Amount = 0
  3524. --获取信息
  3525. SELECT @Amount = Amount FROM [JackPot] WHERE GameID = @GameID
  3526. RETURN
  3527. END
  3528. GO
  3529. /****** Object: StoredProcedure [dbo].[Game_JackPot_Incr] Script Date: 2024/1/12 11:01:14 ******/
  3530. SET ANSI_NULLS ON
  3531. GO
  3532. SET QUOTED_IDENTIFIER ON
  3533. GO
  3534. -- EXEC [Game_JackPot_Incr]
  3535. -- ==============================================
  3536. -- Author: wolf
  3537. -- Create Date: 2014-06-17
  3538. -- Mendor: wolf
  3539. -- Alter Date: 2016-08-16
  3540. -- Description: 放入奖池
  3541. -- ==============================================
  3542. CREATE PROCEDURE [dbo].[Game_JackPot_Incr]
  3543. @UserID INT, --用户ID
  3544. @GameID INT, --游戏ID
  3545. @Amount BIGINT, --操作金额(必须大于0)
  3546. @Balance BIGINT OUTPUT --剩余金额
  3547. AS
  3548. SET NOCOUNT ON
  3549. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  3550. SET XACT_ABORT ON
  3551. BEGIN
  3552. DECLARE @PreAmount BIGINT --操作前金额
  3553. SET @PreAmount = 0
  3554. SET @Balance = 0
  3555. IF(@Amount IS NULL OR @Amount <= 0)
  3556. RETURN
  3557. --添加金额
  3558. UPDATE
  3559. [JackPot]
  3560. SET
  3561. Amount = Amount + @Amount, @PreAmount = Amount, @Balance = Amount + @Amount
  3562. WHERE
  3563. GameID = @GameID
  3564. --还没有数据
  3565. IF(@@ROWCOUNT = 0)
  3566. BEGIN
  3567. SET @Balance = @Amount
  3568. INSERT INTO [JackPot](GameID, Amount) VALUES(@GameID, @Amount)
  3569. END
  3570. --加记录
  3571. INSERT INTO [JackPotRecord]
  3572. (
  3573. GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
  3574. )
  3575. VALUES
  3576. (
  3577. @GameID, @UserID, @PreAmount, @Amount, @Balance, GETDATE()
  3578. )
  3579. RETURN
  3580. END
  3581. GO
  3582. /****** Object: StoredProcedure [dbo].[Game_JackPot_Modify] Script Date: 2024/1/12 11:01:14 ******/
  3583. SET ANSI_NULLS ON
  3584. GO
  3585. SET QUOTED_IDENTIFIER ON
  3586. GO
  3587. -- EXEC [Game_JackPot_Modify]
  3588. -- ==============================================
  3589. -- Author: wolf
  3590. -- Create Date: 2014-06-17
  3591. -- Mendor: wolf
  3592. -- Alter Date: 2016-08-16
  3593. -- Description: 奖池修改
  3594. -- ==============================================
  3595. CREATE PROCEDURE [dbo].[Game_JackPot_Modify]
  3596. @UserID INT, --用户ID
  3597. @GameID INT, --游戏ID
  3598. @Amount BIGINT --操作金额
  3599. AS
  3600. SET NOCOUNT ON
  3601. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  3602. SET XACT_ABORT ON
  3603. BEGIN
  3604. DECLARE @PreAmount BIGINT --操作前金额
  3605. SET @PreAmount = 0
  3606. IF(@Amount IS NULL)
  3607. RETURN
  3608. --添加金额
  3609. UPDATE [JackPot] SET Amount = @Amount, @PreAmount = Amount WHERE GameID = @GameID
  3610. --还没有数据
  3611. IF(@@ROWCOUNT = 0)
  3612. BEGIN
  3613. INSERT INTO [JackPot](GameID, Amount) VALUES(@GameID, @Amount)
  3614. END
  3615. --加记录
  3616. INSERT INTO [JackPotRecord]
  3617. (
  3618. GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
  3619. )
  3620. VALUES
  3621. (
  3622. @GameID, @UserID, @PreAmount, @Amount - @PreAmount, @Amount, GETDATE()
  3623. )
  3624. RETURN
  3625. END
  3626. GO
  3627. /****** Object: StoredProcedure [dbo].[Game_JackPot_Sub] Script Date: 2024/1/12 11:01:14 ******/
  3628. SET ANSI_NULLS ON
  3629. GO
  3630. SET QUOTED_IDENTIFIER ON
  3631. GO
  3632. -- EXEC [Game_JackPot_Sub]
  3633. -- ==============================================
  3634. -- Author: wolf
  3635. -- Create Date: 2014-06-17
  3636. -- Mendor: wolf
  3637. -- Alter Date: 2016-08-16
  3638. -- Description: 扣减游戏奖池(用于派奖)
  3639. -- ==============================================
  3640. CREATE PROCEDURE [dbo].[Game_JackPot_Sub]
  3641. @UserID INT, --用户ID
  3642. @GameID INT, --游戏ID
  3643. @Amount BIGINT, --操作金额(必须大于0)
  3644. @Balance BIGINT OUTPUT --当前
  3645. AS
  3646. SET NOCOUNT ON
  3647. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  3648. SET XACT_ABORT ON
  3649. BEGIN
  3650. DECLARE @PreAmount BIGINT --操作前金额
  3651. DECLARE @Msg VARCHAR(1024) --系统消息
  3652. SET @Balance = 0
  3653. IF(@Amount IS NULL OR @Amount <= 0)
  3654. RETURN
  3655. --扣减
  3656. UPDATE
  3657. [JackPot]
  3658. SET
  3659. Amount = Amount - @Amount, @PreAmount = Amount, @Balance = Amount - @Amount
  3660. WHERE
  3661. GameID = @GameID AND Amount >= @Amount
  3662. --扣减失败
  3663. IF(@@ROWCOUNT = 0)
  3664. BEGIN
  3665. SET @Msg = 'JackPot_Sub fail UserID=' + LTRIM(STR(@UserID)) + ',@GameID=' + LTRIM(STR(@GameID)) +
  3666. ',@Amount=' + LTRIM(STR(@Amount))
  3667. RETURN
  3668. END
  3669. --记录
  3670. INSERT INTO [JackPotRecord]
  3671. (
  3672. GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
  3673. )
  3674. VALUES
  3675. (
  3676. @GameID, @UserID, @PreAmount, @Amount, @Balance, GETDATE()
  3677. )
  3678. RETURN
  3679. END
  3680. GO
  3681. /****** Object: StoredProcedure [dbo].[Game_JackPotChip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  3682. SET ANSI_NULLS ON
  3683. GO
  3684. SET QUOTED_IDENTIFIER ON
  3685. GO
  3686. -- EXEC [Game_JackPotChip_GetInfo]
  3687. -- ==============================================
  3688. -- Author: wolf
  3689. -- Create Date: 2014-06-17
  3690. -- Mendor: wolf
  3691. -- Alter Date: 2016-08-16
  3692. -- Description: 获取游戏奖池信息
  3693. -- ==============================================
  3694. CREATE PROCEDURE [dbo].[Game_JackPotChip_GetInfo]
  3695. @GameID INT, --用户ID
  3696. @Amount BIGINT OUTPUT --奖池金额
  3697. AS
  3698. SET NOCOUNT ON
  3699. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  3700. SET XACT_ABORT ON
  3701. BEGIN
  3702. SET @Amount = 0
  3703. --获取信息
  3704. SELECT @Amount = Amount FROM [JackPotChip] WHERE GameID = @GameID
  3705. RETURN
  3706. END
  3707. GO
  3708. /****** Object: StoredProcedure [dbo].[Game_JackPotChip_Incr] Script Date: 2024/1/12 11:01:14 ******/
  3709. SET ANSI_NULLS ON
  3710. GO
  3711. SET QUOTED_IDENTIFIER ON
  3712. GO
  3713. -- EXEC [Game_JackPotChip_Incr]
  3714. -- ==============================================
  3715. -- Author: wolf
  3716. -- Create Date: 2014-06-17
  3717. -- Mendor: wolf
  3718. -- Alter Date: 2016-08-16
  3719. -- Description: 放入奖池
  3720. -- ==============================================
  3721. CREATE PROCEDURE [dbo].[Game_JackPotChip_Incr]
  3722. @UserID INT, --用户ID
  3723. @GameID INT, --游戏ID
  3724. @Amount INT, --操作金额(必须大于0)
  3725. @Balance BIGINT OUTPUT --剩余金额
  3726. AS
  3727. SET NOCOUNT ON
  3728. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  3729. SET XACT_ABORT ON
  3730. BEGIN
  3731. DECLARE @PreAmount BIGINT --操作前金额
  3732. SET @PreAmount = 0
  3733. SET @Balance = 0
  3734. IF(@Amount IS NULL OR @Amount <= 0)
  3735. RETURN
  3736. --添加金额
  3737. UPDATE
  3738. [JackPotChip]
  3739. SET
  3740. Amount = Amount + @Amount, @PreAmount = Amount, @Balance = Amount + @Amount
  3741. WHERE
  3742. GameID = @GameID
  3743. --还没有数据
  3744. IF(@@ROWCOUNT = 0)
  3745. BEGIN
  3746. SET @Balance = @Amount
  3747. INSERT INTO [JackPotChip](GameID, Amount) VALUES(@GameID, @Amount)
  3748. END
  3749. --加记录
  3750. INSERT INTO [JackPotChipRecord]
  3751. (
  3752. GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
  3753. )
  3754. VALUES
  3755. (
  3756. @GameID, @UserID, @PreAmount, @Amount, @Balance, GETDATE()
  3757. )
  3758. RETURN
  3759. END
  3760. GO
  3761. /****** Object: StoredProcedure [dbo].[Game_JackPotChip_Modify] Script Date: 2024/1/12 11:01:14 ******/
  3762. SET ANSI_NULLS ON
  3763. GO
  3764. SET QUOTED_IDENTIFIER ON
  3765. GO
  3766. -- EXEC [Game_JackPotChip_Modify]
  3767. -- ==============================================
  3768. -- Author: wolf
  3769. -- Create Date: 2014-06-17
  3770. -- Mendor: wolf
  3771. -- Alter Date: 2016-08-16
  3772. -- Description: 奖池修改
  3773. -- ==============================================
  3774. CREATE PROCEDURE [dbo].[Game_JackPotChip_Modify]
  3775. @UserID INT, --用户ID
  3776. @GameID INT, --游戏ID
  3777. @Amount INT --操作金额
  3778. AS
  3779. SET NOCOUNT ON
  3780. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  3781. SET XACT_ABORT ON
  3782. BEGIN
  3783. DECLARE @PreAmount BIGINT --操作前金额
  3784. SET @PreAmount = 0
  3785. IF(@Amount IS NULL)
  3786. RETURN
  3787. --添加金额
  3788. UPDATE [JackPotChip] SET Amount = @Amount, @PreAmount = Amount WHERE GameID = @GameID
  3789. --还没有数据
  3790. IF(@@ROWCOUNT = 0)
  3791. BEGIN
  3792. INSERT INTO [JackPotChip](GameID, Amount) VALUES(@GameID, @Amount)
  3793. END
  3794. --加记录
  3795. INSERT INTO [JackPotChipRecord]
  3796. (
  3797. GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
  3798. )
  3799. VALUES
  3800. (
  3801. @GameID, @UserID, @PreAmount, @Amount - @PreAmount, @Amount, GETDATE()
  3802. )
  3803. RETURN
  3804. END
  3805. GO
  3806. /****** Object: StoredProcedure [dbo].[Game_JackPotChip_Sub] Script Date: 2024/1/12 11:01:14 ******/
  3807. SET ANSI_NULLS ON
  3808. GO
  3809. SET QUOTED_IDENTIFIER ON
  3810. GO
  3811. -- EXEC [Game_JackPotChip_Sub]
  3812. -- ==============================================
  3813. -- Author: wolf
  3814. -- Create Date: 2014-06-17
  3815. -- Mendor: wolf
  3816. -- Alter Date: 2016-08-16
  3817. -- Description: 扣减游戏奖池(用于派奖)
  3818. -- ==============================================
  3819. CREATE PROCEDURE [dbo].[Game_JackPotChip_Sub]
  3820. @UserID INT, --用户ID
  3821. @GameID INT, --游戏ID
  3822. @Amount INT, --操作金额(必须大于0)
  3823. @Balance BIGINT OUTPUT --当前
  3824. AS
  3825. SET NOCOUNT ON
  3826. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  3827. SET XACT_ABORT ON
  3828. BEGIN
  3829. DECLARE @PreAmount BIGINT --操作前金额
  3830. DECLARE @Msg VARCHAR(1024) --系统消息
  3831. SET @Balance = 0
  3832. IF(@Amount IS NULL OR @Amount <= 0)
  3833. RETURN
  3834. --扣减
  3835. UPDATE
  3836. [JackPotChip]
  3837. SET
  3838. Amount = Amount - @Amount, @PreAmount = Amount, @Balance = Amount - @Amount
  3839. WHERE
  3840. GameID = @GameID AND Amount >= @Amount
  3841. --扣减失败
  3842. IF(@@ROWCOUNT = 0)
  3843. BEGIN
  3844. SET @Msg = 'JackPotChip_Sub fail UserID=' + LTRIM(STR(@UserID)) + ',@GameID=' + LTRIM(STR(@GameID)) +
  3845. ',@Amount=' + LTRIM(STR(@Amount))
  3846. RETURN
  3847. END
  3848. --记录
  3849. INSERT INTO [JackPotChipRecord]
  3850. (
  3851. GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
  3852. )
  3853. VALUES
  3854. (
  3855. @GameID, @UserID, @PreAmount, @Amount, @Balance, GETDATE()
  3856. )
  3857. RETURN
  3858. END
  3859. GO
  3860. /****** Object: StoredProcedure [dbo].[Game_LabelLiveStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  3861. SET ANSI_NULLS ON
  3862. GO
  3863. SET QUOTED_IDENTIFIER ON
  3864. GO
  3865. -- EXEC [Game_LabelLiveStat_Stat]
  3866. -- ==============================================
  3867. -- Author: wolf
  3868. -- Create Date: 2014-06-11
  3869. -- Mendor: wolf
  3870. -- Alter Date: 2014-06-11
  3871. -- Description: 标签留存统计(每天凌晨0:00执行,供作业调用)
  3872. -- ==============================================
  3873. CREATE PROCEDURE [dbo].[Game_LabelLiveStat_Stat]
  3874. AS
  3875. SET NOCOUNT ON
  3876. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  3877. SET XACT_ABORT ON
  3878. BEGIN
  3879. DECLARE @DateFlag SMALLDATETIME --日期标识
  3880. DECLARE @StatFlag SMALLDATETIME --统计日期标识
  3881. DECLARE @LabelID VARCHAR(32) --标签ID
  3882. DECLARE @RegCount INT --注册人数
  3883. DECLARE @LiveUsers_1 INT --次日留存
  3884. DECLARE @LiveUsers_3 INT --3日留存
  3885. DECLARE @LiveUsers_5 INT --5日留存
  3886. DECLARE @LiveUsers_7 INT --7日留存
  3887. DECLARE @LiveUsers_15 INT --15日留存
  3888. DECLARE @LiveUsers_30 INT --30日留存
  3889. DECLARE @Rid INT --标识
  3890. DECLARE @OneRid INT --当前标识
  3891. DECLARE @Days INT --天数
  3892. DECLARE @tmptable TABLE(
  3893. UserID INT NOT NULL, --用户ID
  3894. LabelID VARCHAR(32) NOT NULL --标签ID
  3895. )
  3896. SET @DateFlag = CONVERT(CHAR(10), GETDATE() - 1, 120)
  3897. --初始化变量
  3898. INSERT INTO @tmptable
  3899. (
  3900. UserID, LabelID
  3901. )
  3902. SELECT
  3903. UserID, LabelID
  3904. FROM
  3905. [LabelPool]
  3906. WHERE
  3907. RegTime >= @DateFlag AND RegTime < @DateFlag + 1 AND LabelID != ''
  3908. IF(@@ROWCOUNT > 0)
  3909. BEGIN
  3910. --初始化各渠道
  3911. INSERT INTO [LabelLiveStat]
  3912. (
  3913. DateFlag, LabelID, RegCount, LiveUsers_1, LiveUsers_3,
  3914. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  3915. )
  3916. SELECT
  3917. @DateFlag, LabelID, COUNT(DISTINCT UserID), 0, 0,
  3918. 0, 0, 0, 0
  3919. FROM
  3920. @tmptable
  3921. GROUP BY
  3922. LabelID
  3923. END
  3924. SET @Rid = 0
  3925. WHILE(1=1)
  3926. BEGIN
  3927. SET @OneRid = @Rid
  3928. SET @Rid = NULL
  3929. SET @StatFlag = NULL
  3930. SET @LabelID = NULL
  3931. SET @LiveUsers_1 = NULL
  3932. SET @LiveUsers_3 = NULL
  3933. SET @LiveUsers_5 = NULL
  3934. SET @LiveUsers_7 = NULL
  3935. SET @LiveUsers_15 = NULL
  3936. SET @LiveUsers_30 = NULL
  3937. SET @RegCount = NULL
  3938. SELECT TOP 1
  3939. @Rid = Rid, @StatFlag = DateFlag, @LabelID = LabelID, @RegCount = RegCount
  3940. FROM
  3941. [LabelLiveStat]
  3942. WHERE
  3943. DateFlag >= @DateFlag - 30 AND Rid > @OneRid
  3944. ORDER BY
  3945. Rid ASC
  3946. IF(@Rid IS NULL)
  3947. BREAK
  3948. --计算天数
  3949. SET @Days = DATEDIFF(DAY, @StatFlag, @DateFlag) + 1
  3950. --次日
  3951. IF(@Days = 2)
  3952. BEGIN
  3953. --次日留存
  3954. SELECT
  3955. @LiveUsers_1 = COUNT(l.UserID)
  3956. FROM
  3957. [LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 2
  3958. WHERE
  3959. l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 2 AND l.LabelID = @LabelID
  3960. END
  3961. --3日留存
  3962. ELSE IF(@Days = 3)
  3963. BEGIN
  3964. --3日留存
  3965. SELECT
  3966. @LiveUsers_3 = COUNT(l.UserID)
  3967. FROM
  3968. [LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 3
  3969. WHERE
  3970. l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 3 AND l.LabelID = @LabelID
  3971. END
  3972. --5日留存
  3973. ELSE IF(@Days = 5)
  3974. BEGIN
  3975. --5日留存
  3976. SELECT
  3977. @LiveUsers_5 = COUNT(l.UserID)
  3978. FROM
  3979. [LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 5
  3980. WHERE
  3981. l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 5 AND l.LabelID = @LabelID
  3982. END
  3983. --7日留存
  3984. ELSE IF(@Days = 7)
  3985. BEGIN
  3986. --7日留存
  3987. SELECT
  3988. @LiveUsers_7 = COUNT(l.UserID)
  3989. FROM
  3990. [LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 7
  3991. WHERE
  3992. l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 7 AND l.LabelID = @LabelID
  3993. END
  3994. --15日留存
  3995. ELSE IF(@Days = 15)
  3996. BEGIN
  3997. --15日留存
  3998. SELECT
  3999. @LiveUsers_15 = COUNT(l.UserID)
  4000. FROM
  4001. [LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 15
  4002. WHERE
  4003. l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 15 AND l.LabelID = @LabelID
  4004. END
  4005. --30日留存
  4006. ELSE IF(@Days = 30)
  4007. BEGIN
  4008. --30日留存
  4009. SELECT
  4010. @LiveUsers_30 = COUNT(l.UserID)
  4011. FROM
  4012. [LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 30
  4013. WHERE
  4014. l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 30 AND l.LabelID = @LabelID
  4015. END
  4016. SET @LiveUsers_1 = ISNULL(@LiveUsers_1, 0)
  4017. SET @LiveUsers_3 = ISNULL(@LiveUsers_3, 0)
  4018. SET @LiveUsers_5 = ISNULL(@LiveUsers_5, 0)
  4019. SET @LiveUsers_7 = ISNULL(@LiveUsers_7, 0)
  4020. SET @LiveUsers_15 = ISNULL(@LiveUsers_15, 0)
  4021. SET @LiveUsers_30 = ISNULL(@LiveUsers_30, 0)
  4022. /*
  4023. PRINT '@Rid=' + LTRIM(STR(@Rid)) + ',@DateFlag=' + CONVERT(VARCHAR(16), @StatFlag, 120) + ',@LabelID=' + @LabelID +
  4024. ',@LiveUsers_1=' + LTRIM(STR(@LiveUsers_1)) + ',@LiveUsers_3=' + LTRIM(STR(@LiveUsers_3)) + ',@LiveUsers_5=' + LTRIM(STR(@LiveUsers_5)) +
  4025. ',@LiveUsers_7=' + LTRIM(STR(@LiveUsers_7)) + ',@LiveUsers_15=' + LTRIM(STR(@LiveUsers_15)) + ',@LiveUsers_30=' + LTRIM(STR(@LiveUsers_30)) +
  4026. ',@Days=' + LTRIM(STR(@Days))
  4027. */
  4028. --更新统计
  4029. UPDATE
  4030. [LabelLiveStat]
  4031. SET
  4032. LiveUsers_1 = CASE WHEN @LiveUsers_1 > 0 THEN @LiveUsers_1 ELSE LiveUsers_1 END,
  4033. LiveUsers_3 = CASE WHEN @LiveUsers_3 > 0 THEN @LiveUsers_3 ELSE LiveUsers_3 END,
  4034. LiveUsers_5 = CASE WHEN @LiveUsers_5 > 0 THEN @LiveUsers_5 ELSE LiveUsers_5 END,
  4035. LiveUsers_7 = CASE WHEN @LiveUsers_7 > 0 THEN @LiveUsers_7 ELSE LiveUsers_7 END,
  4036. LiveUsers_15 = CASE WHEN @LiveUsers_15 > 0 THEN @LiveUsers_15 ELSE LiveUsers_15 END,
  4037. LiveUsers_30 = CASE WHEN @LiveUsers_30 > 0 THEN @LiveUsers_30 ELSE LiveUsers_30 END
  4038. WHERE
  4039. Rid = @Rid
  4040. END
  4041. RETURN
  4042. END
  4043. GO
  4044. /****** Object: StoredProcedure [dbo].[Game_Level_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
  4045. SET ANSI_NULLS ON
  4046. GO
  4047. SET QUOTED_IDENTIFIER ON
  4048. GO
  4049. -- EXEC [Game_Level_GetUserInfo]
  4050. -- ==============================================
  4051. -- Author: wolf
  4052. -- Create Date: 2014-09-03
  4053. -- Mendor: wolf
  4054. -- Alter Date: 2014-12-02
  4055. -- Description: 用户等级信息
  4056. -- ==============================================
  4057. CREATE PROCEDURE [dbo].[Game_Level_GetUserInfo]
  4058. @UserID INT --用户ID
  4059. AS
  4060. SET NOCOUNT ON
  4061. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  4062. SET XACT_ABORT ON
  4063. BEGIN
  4064. DECLARE @IsWhite TINYINT --是否白名单(0=普通用户 1=白名单用户 2=黑名单用户)
  4065. DECLARE @IsFacebook TINYINT --是否fb账号
  4066. DECLARE @IMei VARCHAR(64)
  4067. DECLARE @deviceid VARCHAR(64)
  4068. DECLARE @Lv TINYINT --等级
  4069. DECLARE @Exp INT --经验值
  4070. DECLARE @LoginAward TINYINT --登录奖励(0=无效 1=可领取 2=已领取)
  4071. DECLARE @RetCode TINYINT
  4072. DECLARE @IsAdd TINYINT --是否允许加经验(1=允许)
  4073. SET @IsWhite = 0
  4074. SET @IsFacebook = 0
  4075. SET @Lv = 1
  4076. SET @Exp = 0
  4077. SET @LoginAward = 0
  4078. SET @RetCode = 0
  4079. SET @IsAdd = 1
  4080. --判断是否白名单
  4081. SELECT @IsWhite = WhiteType FROM [ChipWhiteList] WHERE UserID = @UserID
  4082. --用户信息
  4083. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
  4084. --非游客用户
  4085. IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.' OR LEFT(@deviceid, 3) = 'gg.')
  4086. BEGIN
  4087. SET @IsFacebook = 1
  4088. SET @LoginAward = 1
  4089. --非埃及平台
  4090. IF NOT EXISTS(SELECT ConfigID FROM [PlatformConfig] WHERE PlatformName IN ('Egypt', 'ME'))
  4091. BEGIN
  4092. SET @IsAdd = 0
  4093. SELECT @Lv = Lv, @Exp = Exp FROM [SysLevel] WHERE Lv = 2
  4094. END
  4095. END
  4096. --等级奖励
  4097. SELECT @LoginAward = LoginAward FROM [UserLevel] WHERE UserID = @UserID
  4098. --如果不存在,初始化
  4099. IF(@@ROWCOUNT = 0)
  4100. BEGIN
  4101. INSERT INTO [UserLevel](UserID, Lv, Exp, LoginAward) VALUES(@UserID, @Lv, @Exp, @LoginAward)
  4102. END
  4103. /*
  4104. --登录奖励未领取
  4105. IF(@LoginAward = 1)
  4106. BEGIN
  4107. --修改状态
  4108. UPDATE [UserLevel] SET LoginAward = 2 WHERE UserID = @UserID AND LoginAward = 1
  4109. --修改成功
  4110. IF(@@ROWCOUNT > 0)
  4111. BEGIN
  4112. --加筹码
  4113. EXEC [Game_Chip_Give] @UserID = @UserID, @SourceName = N'游戏大厅', @GameID = 0, @WantedAmount = 3000000,
  4114. @LogType = 54, @Remark = N'登录奖励', @IPAddress = '127.0.0.1', @RetCode = @RetCode OUTPUT
  4115. END
  4116. END
  4117. */
  4118. SELECT
  4119. Lv, Exp, @IsWhite AS IsWhite,
  4120. CASE
  4121. WHEN @LoginAward = 1 THEN 3 --去通知
  4122. ELSE LoginAward
  4123. END AS LoginAward, @IsFacebook AS IsFacebook, @IsAdd AS IsAdd
  4124. FROM
  4125. [UserLevel]
  4126. WHERE
  4127. UserID = @UserID
  4128. RETURN
  4129. END
  4130. GO
  4131. /****** Object: StoredProcedure [dbo].[Game_Level_LoginAward] Script Date: 2024/1/12 11:01:14 ******/
  4132. SET ANSI_NULLS ON
  4133. GO
  4134. SET QUOTED_IDENTIFIER ON
  4135. GO
  4136. -- EXEC [Game_Level_LoginAward]
  4137. -- ==============================================
  4138. -- Author: wolf
  4139. -- Create Date: 2014-09-03
  4140. -- Mendor: wolf
  4141. -- Alter Date: 2014-12-02
  4142. -- Description: 元宝大厅用户登录奖励
  4143. -- ==============================================
  4144. CREATE PROCEDURE [dbo].[Game_Level_LoginAward]
  4145. @UserID INT --用户ID
  4146. AS
  4147. SET NOCOUNT ON
  4148. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  4149. SET XACT_ABORT ON
  4150. BEGIN
  4151. DECLARE @RetCode TINYINT --操作结果
  4152. DECLARE @Amount INT --金额
  4153. SET @RetCode = 0
  4154. SET @Amount = 0
  4155. SELECT @RetCode AS RetCode, @Amount AS Amount
  4156. RETURN
  4157. UPDATE [UserLevel] SET LoginAward = 2 WHERE UserID = @UserID AND LoginAward = 1
  4158. IF(@@ROWCOUNT = 0)
  4159. BEGIN
  4160. SET @RetCode = 11
  4161. SELECT @RetCode AS RetCode, @Amount AS Amount
  4162. RETURN
  4163. END
  4164. --操作成功
  4165. SET @RetCode = 1
  4166. SELECT @RetCode AS RetCode, @Amount AS Amount
  4167. RETURN
  4168. END
  4169. GO
  4170. /****** Object: StoredProcedure [dbo].[Game_Level_SysExpList] Script Date: 2024/1/12 11:01:14 ******/
  4171. SET ANSI_NULLS ON
  4172. GO
  4173. SET QUOTED_IDENTIFIER ON
  4174. GO
  4175. -- EXEC [Game_Level_SysExpList]
  4176. -- ==============================================
  4177. -- Author: wolf
  4178. -- Create Date: 2014-09-03
  4179. -- Mendor: wolf
  4180. -- Alter Date: 2014-12-02
  4181. -- Description: 游戏经验数值
  4182. -- ==============================================
  4183. CREATE PROCEDURE [dbo].[Game_Level_SysExpList]
  4184. AS
  4185. SET NOCOUNT ON
  4186. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  4187. SET XACT_ABORT ON
  4188. BEGIN
  4189. SELECT
  4190. GameID, WinExp, LoseExp
  4191. FROM
  4192. [SysLevelExp]
  4193. ORDER BY
  4194. GameID ASC
  4195. RETURN
  4196. END
  4197. GO
  4198. /****** Object: StoredProcedure [dbo].[Game_Level_SysList] Script Date: 2024/1/12 11:01:14 ******/
  4199. SET ANSI_NULLS ON
  4200. GO
  4201. SET QUOTED_IDENTIFIER ON
  4202. GO
  4203. -- EXEC [Game_Level_SysList]
  4204. -- ==============================================
  4205. -- Author: wolf
  4206. -- Create Date: 2014-09-03
  4207. -- Mendor: wolf
  4208. -- Alter Date: 2014-12-02
  4209. -- Description: 等级系统数值
  4210. -- ==============================================
  4211. CREATE PROCEDURE [dbo].[Game_Level_SysList]
  4212. AS
  4213. SET NOCOUNT ON
  4214. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  4215. SET XACT_ABORT ON
  4216. BEGIN
  4217. SELECT
  4218. Lv, Exp, Memo, GiftPack, Privilege
  4219. FROM
  4220. [SysLevel]
  4221. ORDER BY
  4222. Lv ASC
  4223. RETURN
  4224. END
  4225. GO
  4226. /****** Object: StoredProcedure [dbo].[Game_Level_UpdateUserInfo] Script Date: 2024/1/12 11:01:14 ******/
  4227. SET ANSI_NULLS ON
  4228. GO
  4229. SET QUOTED_IDENTIFIER ON
  4230. GO
  4231. -- EXEC [Game_Level_UpdateUserInfo]
  4232. -- ==============================================
  4233. -- Author: wolf
  4234. -- Create Date: 2014-09-03
  4235. -- Mendor: wolf
  4236. -- Alter Date: 2014-12-02
  4237. -- Description: 修改用户等级信息
  4238. -- ==============================================
  4239. CREATE PROCEDURE [dbo].[Game_Level_UpdateUserInfo]
  4240. @UserID INT, --用户ID
  4241. @Lv TINYINT, --等级
  4242. @Exp INT, --经验
  4243. @LoginAward TINYINT --登录奖励(0=无效 1=可领取 2=已领取)
  4244. AS
  4245. SET NOCOUNT ON
  4246. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  4247. SET XACT_ABORT ON
  4248. BEGIN
  4249. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  4250. RETURN
  4251. UPDATE
  4252. [UserLevel]
  4253. SET
  4254. Lv = @Lv, Exp = @Exp,
  4255. LoginAward = CASE WHEN LoginAward != 2 THEN @LoginAward ELSE LoginAward END
  4256. WHERE
  4257. UserID = @UserID
  4258. IF(@@ROWCOUNT = 0)
  4259. BEGIN
  4260. INSERT INTO [UserLevel](UserID, Lv, Exp, LoginAward) VALUES(@UserID, @Lv, @Exp, 0)
  4261. END
  4262. RETURN
  4263. END
  4264. GO
  4265. /****** Object: StoredProcedure [dbo].[Game_LiveStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  4266. SET ANSI_NULLS ON
  4267. GO
  4268. SET QUOTED_IDENTIFIER ON
  4269. GO
  4270. -- EXEC [Game_LiveStat_Stat]
  4271. -- ==============================================
  4272. -- Author: wolf
  4273. -- Create Date: 2014-06-11
  4274. -- Mendor: wolf
  4275. -- Alter Date: 2014-06-11
  4276. -- Description: 留存统计(每天凌晨0:00执行,供作业调用)
  4277. -- ==============================================
  4278. CREATE PROCEDURE [dbo].[Game_LiveStat_Stat]
  4279. @CurrTime DATETIME --系统当前时间
  4280. AS
  4281. SET NOCOUNT ON
  4282. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  4283. SET XACT_ABORT ON
  4284. BEGIN
  4285. DECLARE @DateFlag SMALLDATETIME --日期标识
  4286. DECLARE @StatFlag SMALLDATETIME --统计日期标识
  4287. DECLARE @PartnerID INT --渠道ID
  4288. DECLARE @RegCount INT --注册人数
  4289. DECLARE @LiveUsers_1 INT --次日留存
  4290. DECLARE @LiveUsers_3 INT --3日留存
  4291. DECLARE @LiveUsers_5 INT --5日留存
  4292. DECLARE @LiveUsers_7 INT --7日留存
  4293. DECLARE @LiveUsers_15 INT --15日留存
  4294. DECLARE @LiveUsers_30 INT --30日留存
  4295. DECLARE @Rid INT --标识
  4296. DECLARE @OneRid INT --当前标识
  4297. DECLARE @Days INT --天数
  4298. DECLARE @tmptable TABLE(
  4299. UserID INT NOT NULL, --用户ID
  4300. PartnerID INT NOT NULL --渠道ID
  4301. )
  4302. SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
  4303. --初始化变量
  4304. INSERT INTO @tmptable
  4305. (
  4306. UserID, PartnerID
  4307. )
  4308. SELECT
  4309. UserID, RegPartnerID
  4310. FROM
  4311. [AllUser]
  4312. WHERE
  4313. RegTime >= @DateFlag AND RegTime < @DateFlag + 1
  4314. IF(@@ROWCOUNT > 0)
  4315. BEGIN
  4316. --初始化各渠道
  4317. INSERT INTO [LiveStat]
  4318. (
  4319. DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
  4320. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  4321. )
  4322. SELECT
  4323. @DateFlag, PartnerID, COUNT(DISTINCT UserID), 0, 0,
  4324. 0, 0, 0, 0
  4325. FROM
  4326. @tmptable
  4327. GROUP BY
  4328. PartnerID
  4329. --初始化所有
  4330. INSERT INTO [LiveStat]
  4331. (
  4332. DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
  4333. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  4334. )
  4335. SELECT
  4336. @DateFlag, 1, COUNT(DISTINCT UserID), 0, 0,
  4337. 0, 0, 0, 0
  4338. FROM
  4339. @tmptable
  4340. END
  4341. SET @Rid = 0
  4342. WHILE(1=1)
  4343. BEGIN
  4344. SET @OneRid = @Rid
  4345. SET @Rid = NULL
  4346. SET @StatFlag = NULL
  4347. SET @PartnerID = NULL
  4348. SET @LiveUsers_1 = NULL
  4349. SET @LiveUsers_3 = NULL
  4350. SET @LiveUsers_5 = NULL
  4351. SET @LiveUsers_7 = NULL
  4352. SET @LiveUsers_15 = NULL
  4353. SET @LiveUsers_30 = NULL
  4354. SET @RegCount = NULL
  4355. SELECT TOP 1
  4356. @Rid = Rid, @StatFlag = DateFlag, @PartnerID = PartnerID, @RegCount = RegCount
  4357. FROM
  4358. [LiveStat]
  4359. WHERE
  4360. DateFlag >= @DateFlag - 30 AND Rid > @OneRid
  4361. ORDER BY
  4362. Rid ASC
  4363. IF(@Rid IS NULL)
  4364. BREAK
  4365. --计算天数
  4366. SET @Days = DATEDIFF(DAY, @StatFlag, @DateFlag) + 1
  4367. --所有渠道
  4368. IF(@PartnerID = 1)
  4369. BEGIN
  4370. --次日
  4371. IF(@Days = 2)
  4372. BEGIN
  4373. --次日留存
  4374. SELECT
  4375. @LiveUsers_1 = COUNT(UserID)
  4376. FROM
  4377. [AllUser]
  4378. WHERE
  4379. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 1 AND @StatFlag + 2
  4380. --更新日报统计
  4381. --次日留存
  4382. UPDATE [DailyReport] SET ItemValue = @LiveUsers_1 WHERE DateFlag = @StatFlag AND ItemName = N'次日留存'
  4383. --次日留存率
  4384. UPDATE
  4385. [DailyReport]
  4386. SET
  4387. ItemValue = CAST(@LiveUsers_1 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2))
  4388. WHERE
  4389. DateFlag = @StatFlag AND ItemName = N'次日留存率'
  4390. END
  4391. --3日留存
  4392. ELSE IF(@Days = 3)
  4393. BEGIN
  4394. --3日留存
  4395. SELECT
  4396. @LiveUsers_3 = COUNT(UserID)
  4397. FROM
  4398. [AllUser]
  4399. WHERE
  4400. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 2 AND @StatFlag + 3
  4401. --更新日报统计
  4402. --3日留存
  4403. UPDATE [DailyReport] SET ItemValue = @LiveUsers_3 WHERE DateFlag = @StatFlag AND ItemName = N'3日留存'
  4404. --3日留存率
  4405. UPDATE
  4406. [DailyReport]
  4407. SET
  4408. ItemValue = CAST(@LiveUsers_3 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2))
  4409. WHERE
  4410. DateFlag = @StatFlag AND ItemName = N'3日留存率'
  4411. END
  4412. --5日留存
  4413. ELSE IF(@Days = 5)
  4414. BEGIN
  4415. --5日留存
  4416. SELECT
  4417. @LiveUsers_5 = COUNT(UserID)
  4418. FROM
  4419. [AllUser]
  4420. WHERE
  4421. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 4 AND @StatFlag + 5
  4422. END
  4423. --7日留存
  4424. ELSE IF(@Days = 7)
  4425. BEGIN
  4426. --7日留存
  4427. SELECT
  4428. @LiveUsers_7 = COUNT(UserID)
  4429. FROM
  4430. [AllUser]
  4431. WHERE
  4432. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 6 AND @StatFlag + 7
  4433. --更新日报统计
  4434. --7日留存
  4435. UPDATE [DailyReport] SET ItemValue = @LiveUsers_7 WHERE DateFlag = @StatFlag AND ItemName = N'7日留存'
  4436. --7日留存率
  4437. UPDATE
  4438. [DailyReport]
  4439. SET
  4440. ItemValue = CAST(@LiveUsers_7 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2))
  4441. WHERE
  4442. DateFlag = @StatFlag AND ItemName = N'7日留存率'
  4443. END
  4444. --15日留存
  4445. ELSE IF(@Days = 15)
  4446. BEGIN
  4447. --15日留存
  4448. SELECT
  4449. @LiveUsers_15 = COUNT(UserID)
  4450. FROM
  4451. [AllUser]
  4452. WHERE
  4453. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 14 AND @StatFlag + 15
  4454. END
  4455. --30日留存
  4456. ELSE IF(@Days = 30)
  4457. BEGIN
  4458. --30日留存
  4459. SELECT
  4460. @LiveUsers_30 = COUNT(UserID)
  4461. FROM
  4462. [AllUser]
  4463. WHERE
  4464. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 29 AND @StatFlag + 30
  4465. END
  4466. END
  4467. --各渠道
  4468. ELSE
  4469. BEGIN
  4470. --次日
  4471. IF(@Days = 2)
  4472. BEGIN
  4473. --次日留存
  4474. SELECT
  4475. @LiveUsers_1 = COUNT(UserID)
  4476. FROM
  4477. [AllUser]
  4478. WHERE
  4479. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 1 AND @StatFlag + 2 AND RegPartnerID = @PartnerID
  4480. END
  4481. --3日留存
  4482. ELSE IF(@Days = 3)
  4483. BEGIN
  4484. --3日留存
  4485. SELECT
  4486. @LiveUsers_3 = COUNT(UserID)
  4487. FROM
  4488. [AllUser]
  4489. WHERE
  4490. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 2 AND @StatFlag + 3 AND RegPartnerID = @PartnerID
  4491. END
  4492. --5日留存
  4493. ELSE IF(@Days = 5)
  4494. BEGIN
  4495. --5日留存
  4496. SELECT
  4497. @LiveUsers_5 = COUNT(UserID)
  4498. FROM
  4499. [AllUser]
  4500. WHERE
  4501. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 4 AND @StatFlag + 5 AND RegPartnerID = @PartnerID
  4502. END
  4503. --7日留存
  4504. ELSE IF(@Days = 7)
  4505. BEGIN
  4506. --7日留存
  4507. SELECT
  4508. @LiveUsers_7 = COUNT(UserID)
  4509. FROM
  4510. [AllUser]
  4511. WHERE
  4512. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 6 AND @StatFlag + 7 AND RegPartnerID = @PartnerID
  4513. END
  4514. --15日留存
  4515. ELSE IF(@Days = 15)
  4516. BEGIN
  4517. --15日留存
  4518. SELECT
  4519. @LiveUsers_15 = COUNT(UserID)
  4520. FROM
  4521. [AllUser]
  4522. WHERE
  4523. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 14 AND @StatFlag + 15 AND RegPartnerID = @PartnerID
  4524. END
  4525. --30日留存
  4526. ELSE IF(@Days = 30)
  4527. BEGIN
  4528. --30日留存
  4529. SELECT
  4530. @LiveUsers_30 = COUNT(UserID)
  4531. FROM
  4532. [AllUser]
  4533. WHERE
  4534. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 29 AND @StatFlag + 30 AND RegPartnerID = @PartnerID
  4535. END
  4536. END
  4537. SET @LiveUsers_1 = ISNULL(@LiveUsers_1, 0)
  4538. SET @LiveUsers_3 = ISNULL(@LiveUsers_3, 0)
  4539. SET @LiveUsers_5 = ISNULL(@LiveUsers_5, 0)
  4540. SET @LiveUsers_7 = ISNULL(@LiveUsers_7, 0)
  4541. SET @LiveUsers_15 = ISNULL(@LiveUsers_15, 0)
  4542. SET @LiveUsers_30 = ISNULL(@LiveUsers_30, 0)
  4543. /*
  4544. PRINT '@Rid=' + LTRIM(STR(@Rid)) + ',@DateFlag=' + CONVERT(VARCHAR(16), @StatFlag, 120) + ',@PartnerID=' + LTRIM(STR(@PartnerID)) +
  4545. ',@LiveUsers_1=' + LTRIM(STR(@LiveUsers_1)) + ',@LiveUsers_3=' + LTRIM(STR(@LiveUsers_3)) + ',@LiveUsers_5=' + LTRIM(STR(@LiveUsers_5)) +
  4546. ',@LiveUsers_7=' + LTRIM(STR(@LiveUsers_7)) + ',@LiveUsers_15=' + LTRIM(STR(@LiveUsers_15)) + ',@LiveUsers_30=' + LTRIM(STR(@LiveUsers_30)) +
  4547. ',@Days=' + LTRIM(STR(@Days))
  4548. */
  4549. --更新统计
  4550. UPDATE
  4551. [LiveStat]
  4552. SET
  4553. LiveUsers_1 = CASE WHEN @LiveUsers_1 > 0 THEN @LiveUsers_1 ELSE LiveUsers_1 END,
  4554. LiveUsers_3 = CASE WHEN @LiveUsers_3 > 0 THEN @LiveUsers_3 ELSE LiveUsers_3 END,
  4555. LiveUsers_5 = CASE WHEN @LiveUsers_5 > 0 THEN @LiveUsers_5 ELSE LiveUsers_5 END,
  4556. LiveUsers_7 = CASE WHEN @LiveUsers_7 > 0 THEN @LiveUsers_7 ELSE LiveUsers_7 END,
  4557. LiveUsers_15 = CASE WHEN @LiveUsers_15 > 0 THEN @LiveUsers_15 ELSE LiveUsers_15 END,
  4558. LiveUsers_30 = CASE WHEN @LiveUsers_30 > 0 THEN @LiveUsers_30 ELSE LiveUsers_30 END
  4559. WHERE
  4560. Rid = @Rid
  4561. END
  4562. RETURN
  4563. END
  4564. GO
  4565. /****** Object: StoredProcedure [dbo].[Game_Log_Add] Script Date: 2024/1/12 11:01:14 ******/
  4566. SET ANSI_NULLS ON
  4567. GO
  4568. SET QUOTED_IDENTIFIER ON
  4569. GO
  4570. -- EXEC [Game_Log_Add]
  4571. -- @OpUserID = 10001,
  4572. -- @OpUserName = '',
  4573. -- @IPAddress = '',
  4574. -- @Msg = ''
  4575. -- =============================================
  4576. -- Author: wolf
  4577. -- Create Date: 2015-04-21
  4578. -- Mendor: wolf
  4579. -- Alter Date: 2016-11-11
  4580. -- Description: 日志记录
  4581. -- =============================================
  4582. CREATE PROCEDURE [dbo].[Game_Log_Add]
  4583. @OpUserID INT, --操作用户ID
  4584. @OpUserName VARCHAR(32), --操作用户名
  4585. @IPAddress VARCHAR(15), --IP地址
  4586. @Msg NVARCHAR(4000), --消息
  4587. @Type TINYINT = 1 --1=后台操作 2=系统日志
  4588. AS
  4589. SET NOCOUNT ON
  4590. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  4591. SET XACT_ABORT ON
  4592. BEGIN
  4593. --2=系统日志
  4594. IF(@Type = 2)
  4595. BEGIN
  4596. INSERT INTO [SysLog]
  4597. (
  4598. OpUserID, OpUserName, IPAddress, Msg, Crdate
  4599. )
  4600. VALUES
  4601. (
  4602. @OpUserID, @OpUserName, @IPAddress, @Msg, GETDATE()
  4603. )
  4604. END
  4605. --1=后台操作日志(默认)
  4606. ELSE
  4607. BEGIN
  4608. --后台操作日志
  4609. INSERT INTO [AdminLog]
  4610. (
  4611. AdminUserID, AdminUserName, IPAddress, Msg, Crdate
  4612. )
  4613. VALUES
  4614. (
  4615. @OpUserID, @OpUserName, @IPAddress, @Msg, GETDATE()
  4616. )
  4617. END
  4618. RETURN
  4619. END
  4620. GO
  4621. /****** Object: StoredProcedure [dbo].[Game_MidwayStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  4622. SET ANSI_NULLS ON
  4623. GO
  4624. SET QUOTED_IDENTIFIER ON
  4625. GO
  4626. -- EXEC [Game_MidwayStat_Stat]
  4627. -- ==============================================
  4628. -- Author: wolf
  4629. -- Create Date: 2014-06-11
  4630. -- Mendor: wolf
  4631. -- Alter Date: 2014-06-11
  4632. -- Description: 游戏中途退出
  4633. -- ==============================================
  4634. CREATE PROCEDURE [dbo].[Game_MidwayStat_Stat]
  4635. AS
  4636. SET NOCOUNT ON
  4637. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  4638. SET XACT_ABORT ON
  4639. BEGIN
  4640. DECLARE @DateFlag SMALLDATETIME --日期标识
  4641. DECLARE @tmpUser TABLE(
  4642. UserID INT NOT NULL
  4643. )
  4644. SET @DateFlag = CONVERT(CHAR(10), GETDATE() -1, 120)
  4645. --游戏中途退出
  4646. INSERT INTO [GameMidwayStat]
  4647. (
  4648. DateFlag, GameID, TypeID, SourceName, PlayUserCount, PlayCount,
  4649. MidwayUserCount, MidwayTimes
  4650. )
  4651. SELECT
  4652. CONVERT(CHAR(10), m.Crdate, 120) AS DateFlag, m.GameID, 0, m.SourceName, COUNT(DISTINCT UserID), COUNT(UserID),
  4653. COUNT(DISTINCT CASE WHEN IPAddress = '127.0.0.1' THEN UserID ELSE 0 END) - 1,
  4654. SUM(CASE WHEN IPAddress = '127.0.0.1' THEN 1 ELSE 0 END)
  4655. FROM
  4656. [MoneyLog_bak] m INNER JOIN [MoneyLogType] l ON m.LogType = l.LogType AND l.LogTypeName IN (N'结算', N'游戏结算')
  4657. WHERE
  4658. m.Crdate BETWEEN @DateFlag AND @DateFlag + 1
  4659. GROUP BY
  4660. CONVERT(CHAR(10), m.Crdate, 120), m.GameID, m.SourceName
  4661. --初始化
  4662. INSERT INTO @tmpUser(UserID)
  4663. SELECT
  4664. UserID
  4665. FROM
  4666. [LabelPool]
  4667. WHERE
  4668. TypeID = 17 AND LabelID != '' AND Expire >= GETDATE()
  4669. --游戏中途退出
  4670. INSERT INTO [GameMidwayStat]
  4671. (
  4672. DateFlag, GameID, TypeID, SourceName, PlayUserCount, PlayCount,
  4673. MidwayUserCount, MidwayTimes
  4674. )
  4675. SELECT
  4676. CONVERT(CHAR(10), m.Crdate, 120) AS DateFlag, m.GameID, 17, m.SourceName, COUNT(DISTINCT m.UserID), COUNT(m.UserID),
  4677. COUNT(DISTINCT CASE WHEN IPAddress = '127.0.0.1' THEN m.UserID ELSE 0 END) - 1,
  4678. SUM(CASE WHEN IPAddress = '127.0.0.1' THEN 1 ELSE 0 END)
  4679. FROM
  4680. [MoneyLog_bak] m INNER JOIN [MoneyLogType] l ON m.LogType = l.LogType AND l.LogTypeName IN (N'结算', N'游戏结算')
  4681. INNER JOIN @tmpUser u ON m.UserID = u.UserID
  4682. WHERE
  4683. m.Crdate BETWEEN @DateFlag AND @DateFlag + 1
  4684. GROUP BY
  4685. CONVERT(CHAR(10), m.Crdate, 120), m.GameID, m.SourceName
  4686. RETURN
  4687. END
  4688. GO
  4689. /****** Object: StoredProcedure [dbo].[Game_Money_GiveMoney] Script Date: 2024/1/12 11:01:14 ******/
  4690. SET ANSI_NULLS ON
  4691. GO
  4692. SET QUOTED_IDENTIFIER ON
  4693. GO
  4694. -- DECLARE @RetCode TINYINT
  4695. -- EXEC [Game_Money_GiveMoney]
  4696. -- @UserID = 10001,
  4697. -- @SourceName = '',
  4698. -- @WantedAmount = 100,
  4699. -- @LogType = 1,
  4700. -- @IPAddress = '',
  4701. -- @RetCode = @RetCode OUTPUT
  4702. -- SELECT @RetCode AS RetCode
  4703. -- ==============================================
  4704. -- Author: wolf
  4705. -- Create Date: 2014-09-03
  4706. -- Mendor: wolf
  4707. -- Alter Date: 2014-09-04
  4708. -- Description: 加金币接口(供其他接口调用)
  4709. -- ==============================================
  4710. CREATE PROCEDURE [dbo].[Game_Money_GiveMoney]
  4711. @UserID INT, --用户ID
  4712. @WantedAmount BIGINT, --金币数
  4713. @GameID INT, --游戏ID
  4714. @LogType INT, --日志类型
  4715. @SourceName NVARCHAR(32), --源名称
  4716. @Remark NVARCHAR(128), --备注
  4717. @IPAddress VARCHAR(16), --IP地址
  4718. @RetCode TINYINT OUTPUT --操作结果
  4719. --操作结果描述: 1=操作成功 11=传入参数错误
  4720. AS
  4721. SET NOCOUNT ON
  4722. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  4723. SET XACT_ABORT ON
  4724. BEGIN
  4725. DECLARE @DateFlag SMALLDATETIME --日期标识
  4726. DECLARE @CurrentAmount BIGINT --当前金币数
  4727. DECLARE @LogID INT --日志ID
  4728. DECLARE @Balance BIGINT --剩余
  4729. SET @RetCode = 0
  4730. SET @CurrentAmount = 0
  4731. SET @Balance = 0
  4732. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  4733. --判断领取金币数是否异常
  4734. IF(@WantedAmount IS NULL OR @WantedAmount <= 0)
  4735. BEGIN
  4736. SET @RetCode = 11
  4737. SET @Remark = @Remark + ',Invalid Amount'
  4738. INSERT INTO [MoneyLog]
  4739. (
  4740. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  4741. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  4742. )
  4743. VALUES
  4744. (
  4745. @SourceName, @GameID, 'CASH', @UserID, 0, 0,
  4746. 0, 0, @IPAddress, @Remark, GETDATE(), @LogType
  4747. )
  4748. RETURN
  4749. END
  4750. -------------------先检查输入参数------------------------
  4751. IF(@UserID IS NULL OR @UserID <= 0)
  4752. BEGIN
  4753. SET @RetCode = 11
  4754. SET @Remark = @Remark + ',Invalid User'
  4755. INSERT INTO [MoneyLog]
  4756. (
  4757. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  4758. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  4759. )
  4760. VALUES
  4761. (
  4762. @SourceName, @GameID, 'CASH', @UserID, 0, 0,
  4763. 0, 0, @IPAddress, @Remark, GETDATE(), @LogType
  4764. )
  4765. RETURN
  4766. END
  4767. --不用提高事务隔离级别,Update 原子性操作
  4768. --加金币
  4769. UPDATE
  4770. [Money]
  4771. SET
  4772. Amount = Amount + @WantedAmount, @CurrentAmount = Amount,
  4773. @Balance = Amount + @WantedAmount, RefreshTime = GETDATE()
  4774. WHERE
  4775. UserID = @UserID
  4776. --还没有数据
  4777. IF(@@RowCount = 0)
  4778. BEGIN
  4779. INSERT INTO [Money]
  4780. (
  4781. UserID, Amount, Bank, RegisterTime, RefreshTime
  4782. )
  4783. VALUES
  4784. (
  4785. @UserID, @WantedAmount, 0, GETDATE(), GETDATE()
  4786. )
  4787. END
  4788. --备注
  4789. SET @Remark = @Remark + ' ' + ISNULL((SELECT ChineseName + ',' + LogTypeName FROM [MoneyLogType] WHERE LogType = @LogType), 'UnKnown')
  4790. --写日志
  4791. INSERT INTO [MoneyLog]
  4792. (
  4793. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  4794. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  4795. )
  4796. VALUES
  4797. (
  4798. @SourceName, @GameID, 'CASH', @UserID, @CurrentAmount, @WantedAmount,
  4799. @Balance, 0, @IPAddress, @Remark, GETDATE(), @LogType
  4800. )
  4801. --日志ID
  4802. SET @LogID = SCOPE_IDENTITY()
  4803. --统计
  4804. EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @WantedAmount, @TaxSum = 0, @LogType = @LogType
  4805. --机器人
  4806. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  4807. BEGIN
  4808. --操作成功
  4809. SET @RetCode = 1
  4810. RETURN @LogID
  4811. END
  4812. --用戶日常统计
  4813. --更新
  4814. UPDATE [UserDailyStat] SET StillAmount = @Balance WHERE DateFlag = @DateFlag AND UserID = @UserID
  4815. IF(@@ROWCOUNT = 0)
  4816. BEGIN
  4817. INSERT INTO [UserDailyStat]
  4818. (
  4819. DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  4820. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  4821. )
  4822. VALUES
  4823. (
  4824. @DateFlag, @UserID, 0, 0, @Balance, '2021-01-01', '2021-01-01',
  4825. 0, 0, 0, 0, 0
  4826. )
  4827. END
  4828. --操作成功
  4829. SET @RetCode = 1
  4830. RETURN @LogID
  4831. END
  4832. GO
  4833. /****** Object: StoredProcedure [dbo].[Game_Money_ReduceMoney] Script Date: 2024/1/12 11:01:14 ******/
  4834. SET ANSI_NULLS ON
  4835. GO
  4836. SET QUOTED_IDENTIFIER ON
  4837. GO
  4838. -- DECLARE @RetCode TINYINT
  4839. -- EXEC [Game_Money_ReduceMoney]
  4840. -- @UserID = 10010,
  4841. -- @SourceName = '',
  4842. -- @WantedAmount = 100,
  4843. -- @LogType = 1,
  4844. -- @IPAddress = '',
  4845. -- @RetCode = @RetCode OUTPUT
  4846. -- SELECT @RetCode AS RetCode
  4847. -- ==============================================
  4848. -- Author: wolf
  4849. -- Create Date: 2014-09-03
  4850. -- Mendor: wolf
  4851. -- Alter Date: 2014-12-02
  4852. -- Description: 扣除金币接口(供其他接口调用)
  4853. -- ==============================================
  4854. CREATE PROCEDURE [dbo].[Game_Money_ReduceMoney]
  4855. @UserID INT, --用户ID
  4856. @WantedAmount BIGINT, --操作金币(必须>0)
  4857. @GameID INT, --游戏ID
  4858. @LogType INT, --日志类型
  4859. @SourceName NVARCHAR(64), --源名称
  4860. @Remark NVARCHAR(128), --备注
  4861. @IPAddress VARCHAR(16), --IP地址
  4862. @RetCode TINYINT OUTPUT --操作结果
  4863. --操作结果描述:1=操作成功 11=金币不足 12=参数异常 21=金币锁
  4864. AS
  4865. SET NOCOUNT ON
  4866. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  4867. SET XACT_ABORT ON
  4868. BEGIN
  4869. DECLARE @DateFlag SMALLDATETIME --日期标识
  4870. DECLARE @CurrentAmount BIGINT --当前金币数
  4871. DECLARE @ServerName NVARCHAR(32) --服务器名称
  4872. DECLARE @LogID INT --日志ID
  4873. DECLARE @Balance BIGINT --剩余
  4874. SET @RetCode = 0
  4875. SET @CurrentAmount = 0
  4876. SET @Balance = 0
  4877. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  4878. --判断领取金币数是否异常
  4879. IF(@WantedAmount IS NULL OR @WantedAmount <= 0)
  4880. BEGIN
  4881. SET @RetCode = 11
  4882. SET @Remark = @Remark + ',Invalid Amount'
  4883. RETURN
  4884. END
  4885. -------------------先检查输入参数------------------------
  4886. IF(@UserID IS NULL OR @UserID <= 0)
  4887. BEGIN
  4888. SET @RetCode = 11
  4889. SET @Remark = @Remark + ',Invalid User'
  4890. RETURN
  4891. END
  4892. --检查用户锁
  4893. SELECT @ServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
  4894. IF(@@ROWCOUNT > 0)
  4895. BEGIN
  4896. SET @RetCode = 21
  4897. SET @Remark = @Remark + ',Hold Money Mutex, ServerName = ' + @ServerName
  4898. RETURN
  4899. END
  4900. --不用提高事务隔离级别, Update 原子性
  4901. --扣金币
  4902. UPDATE
  4903. [Money]
  4904. SET
  4905. Amount = Amount - @WantedAmount, RefreshTime = GETDATE(),
  4906. @CurrentAmount = Amount, @Balance = Amount - @WantedAmount
  4907. WHERE
  4908. UserID = @UserID AND Amount >= @WantedAmount
  4909. --判断是否成功
  4910. IF(@@ROWCOUNT <= 0)
  4911. BEGIN
  4912. SET @RetCode = 11
  4913. SET @Remark = @Remark + ', Reduce Fail'
  4914. RETURN
  4915. END
  4916. --备注
  4917. SET @Remark = @Remark + ' ' + ISNULL((SELECT ChineseName + ',' + LogTypeName FROM [MoneyLogType] WHERE LogType = @LogType), 'Unknown')
  4918. --写日志
  4919. INSERT INTO [MoneyLog]
  4920. (
  4921. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  4922. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  4923. )
  4924. VALUES
  4925. (
  4926. @SourceName, @GameID, 'CASH', @UserID, @CurrentAmount, -@WantedAmount,
  4927. @Balance, 0, @IPAddress, @Remark, GETDATE(), @LogType
  4928. )
  4929. --日志ID
  4930. SET @LogID = SCOPE_IDENTITY()
  4931. SET @WantedAmount = -@WantedAmount
  4932. --统计
  4933. EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @WantedAmount, @TaxSum = 0, @LogType = @LogType
  4934. --机器人
  4935. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  4936. BEGIN
  4937. --操作成功
  4938. SET @RetCode = 1
  4939. RETURN @LogID
  4940. END
  4941. --用戶日常统计
  4942. --更新
  4943. UPDATE [UserDailyStat] SET StillAmount = @Balance WHERE DateFlag = @DateFlag AND UserID = @UserID
  4944. IF(@@ROWCOUNT = 0)
  4945. BEGIN
  4946. INSERT INTO [UserDailyStat]
  4947. (
  4948. DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  4949. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  4950. )
  4951. VALUES
  4952. (
  4953. @DateFlag, @UserID, 0, 0, @Balance, '2021-01-01', '2021-01-01',
  4954. 0, 0, 0, 0, 0
  4955. )
  4956. END
  4957. --操作成功
  4958. SET @RetCode = 1
  4959. RETURN @LogID
  4960. END
  4961. GO
  4962. /****** Object: StoredProcedure [dbo].[Game_Money_WriteMoney] Script Date: 2024/1/12 11:01:14 ******/
  4963. SET ANSI_NULLS ON
  4964. GO
  4965. SET QUOTED_IDENTIFIER ON
  4966. GO
  4967. -- EXEC [Game_Money_WriteMoney]
  4968. -- ==============================================
  4969. -- Author: wolf
  4970. -- Create Date: 2014-06-17
  4971. -- Mendor: wolf
  4972. -- Alter Date: 2016-08-16
  4973. -- Description: 用户写分
  4974. -- ==============================================
  4975. CREATE PROCEDURE [dbo].[Game_Money_WriteMoney]
  4976. @UserID INT, --用户ID
  4977. @SourceName NVARCHAR(64), --源名称
  4978. @GameID INT, --游戏ID
  4979. @Amount BIGINT, --金额
  4980. @Tax BIGINT, --台费
  4981. @Status TINYINT, --状态(0=无效 1=下注 2=结算 3=派奖 11=下注(扣到零为止) 12=结算(扣减到零))
  4982. @IPAddress VARCHAR(16), --IP地址
  4983. @Type INT, --下注或结算信息(保留)
  4984. @Balance BIGINT OUTPUT, --写分后金额
  4985. @RetCode TINYINT OUTPUT --操作结果 1=操作成功 2=操作成功(扣减到零) 11=操作失败 12=参数错误
  4986. AS
  4987. SET NOCOUNT ON
  4988. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  4989. SET XACT_ABORT ON
  4990. BEGIN
  4991. DECLARE @PreAmount BIGINT --操作前金额
  4992. DECLARE @chvRemark NVARCHAR(128) --备注
  4993. DECLARE @CurrTime DATETIME --时间
  4994. DECLARE @DateFlag SMALLDATETIME --日期标识
  4995. DECLARE @WinAmount BIGINT --赢金币
  4996. DECLARE @LoseAmount BIGINT --输金币
  4997. DECLARE @PlaySeconds INT --游戏时长(秒)
  4998. DECLARE @RefreshTime DATETIME --刷新时间
  4999. DECLARE @IsRobot TINYINT --是否机器人
  5000. SET @PreAmount = 0
  5001. SET @Balance = 0
  5002. SET @RetCode = 1 --假设成功
  5003. SET @CurrTime = GETDATE()
  5004. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  5005. SET @WinAmount = 0
  5006. SET @LoseAmount = 0
  5007. SET @RefreshTime = 0
  5008. SET @PlaySeconds = 0
  5009. SET @IsRobot = 0
  5010. --判断参数
  5011. IF(@UserID IS NULL OR @Amount IS NULL)
  5012. BEGIN
  5013. SET @RetCode = 12
  5014. RETURN
  5015. END
  5016. /*
  5017. IF(@GameID = 52 AND @Type = 5201 AND @Amount < -90000000)
  5018. BEGIN
  5019. SET @RetCode = 11
  5020. RETURN
  5021. END
  5022. */
  5023. IF(@UserID <= 0)
  5024. BEGIN
  5025. SET @IsRobot = 1
  5026. END
  5027. --是否机器人
  5028. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  5029. BEGIN
  5030. SET @IsRobot = 1
  5031. END
  5032. --提高事务隔离级别
  5033. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  5034. --开启事务
  5035. BEGIN TRAN
  5036. --加金币
  5037. IF(@Amount >= 0)
  5038. BEGIN
  5039. UPDATE
  5040. [Money]
  5041. SET
  5042. Amount = Amount + @Amount, RefreshTime = @CurrTime,
  5043. @PreAmount = Amount, @Balance = Amount + @Amount
  5044. WHERE
  5045. UserID = @UserID
  5046. IF(@@ROWCOUNT = 0)
  5047. BEGIN
  5048. --增加一个现金帐号
  5049. INSERT INTO [Money]
  5050. (
  5051. UserID, Amount, Bank, RegisterTime, RefreshTime
  5052. )
  5053. VALUES
  5054. (
  5055. @UserID, @Amount, 0, @CurrTime, @CurrTime
  5056. )
  5057. SET @Balance = @Amount
  5058. END
  5059. END
  5060. --扣减金币
  5061. ELSE IF(@Amount < 0)
  5062. BEGIN
  5063. UPDATE
  5064. [Money]
  5065. SET
  5066. Amount = Amount + @Amount, RefreshTime = @CurrTime,
  5067. @PreAmount = Amount, @Balance = Amount + @Amount
  5068. WHERE
  5069. UserID = @UserID AND Amount >= ABS(@Amount)
  5070. IF(@@ROWCOUNT = 0)
  5071. BEGIN
  5072. SET @RetCode = 11
  5073. END
  5074. END
  5075. --提交事务
  5076. COMMIT TRAN
  5077. --恢复事务隔离级别
  5078. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  5079. --操作成功
  5080. IF(@RetCode != 1)
  5081. BEGIN
  5082. SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type))) + ',Operate Fail'
  5083. IF(@IsRobot = 1)
  5084. BEGIN
  5085. --记录日志
  5086. INSERT INTO [RobotMoneyLog]
  5087. (
  5088. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  5089. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  5090. )
  5091. values
  5092. (
  5093. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
  5094. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  5095. )
  5096. RETURN
  5097. END
  5098. --记录日志
  5099. INSERT INTO [MoneyLog]
  5100. (
  5101. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  5102. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  5103. )
  5104. values
  5105. (
  5106. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
  5107. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  5108. )
  5109. RETURN
  5110. END
  5111. SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type)))
  5112. --机器人
  5113. IF(@IsRobot = 1)
  5114. BEGIN
  5115. --添加日志
  5116. INSERT INTO [RobotMoneyLog]
  5117. (
  5118. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  5119. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  5120. )
  5121. values
  5122. (
  5123. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
  5124. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  5125. )
  5126. RETURN
  5127. END
  5128. --正常玩家
  5129. ELSE
  5130. BEGIN
  5131. --游戏税收统计
  5132. IF(@Tax > 0)
  5133. BEGIN
  5134. UPDATE [GameTax] SET Tax = Tax + @Tax WHERE DateFlag = @DateFlag AND ServerName = @SourceName
  5135. IF(@@ROWCOUNT = 0)
  5136. BEGIN
  5137. INSERT INTO [GameTax] (DateFlag, ServerName, Tax) VALUES(@DateFlag, @SourceName, @Tax)
  5138. END
  5139. --台费触发代理收益
  5140. EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = @GameID, @Tax = @Tax, @IPAddress = @IPAddress, @TriggerType = 2
  5141. END
  5142. END
  5143. --添加日志
  5144. INSERT INTO [MoneyLog]
  5145. (
  5146. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  5147. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  5148. )
  5149. values
  5150. (
  5151. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
  5152. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  5153. )
  5154. --流水触发代理收益
  5155. IF(@Amount != 0)
  5156. BEGIN
  5157. EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = @GameID, @Tax = @Amount, @IPAddress = @IPAddress, @TriggerType = 1
  5158. END
  5159. --用戶日常统计
  5160. --赢金币
  5161. IF(@Amount > 0)
  5162. BEGIN
  5163. SET @WinAmount = @Amount
  5164. END
  5165. --输金币
  5166. ELSE IF(@Amount < 0)
  5167. BEGIN
  5168. SET @LoseAmount = @Amount
  5169. END
  5170. --获取今天最后游戏时间
  5171. SELECT @RefreshTime = RefreshTime FROM [UserPlayTime] WHERE UserID = @UserID
  5172. --计算游戏时长
  5173. IF(@RefreshTime >= @DateFlag)
  5174. BEGIN
  5175. SET @PlaySeconds = DATEDIFF(SECOND, @RefreshTime, @CurrTime)
  5176. --超过5分钟
  5177. SET @PlaySeconds = CASE WHEN @PlaySeconds >= 300 THEN 0 ELSE @PlaySeconds END
  5178. END
  5179. -- 下面更新统计
  5180. IF(@Amount != 0 OR @Tax != 0)
  5181. BEGIN
  5182. --统计
  5183. IF(@Type % 100 != 99)
  5184. BEGIN
  5185. --游戏记录
  5186. UPDATE
  5187. [DailyBetStat]
  5188. SET
  5189. MoneySum = MoneySum + @Amount, TaxAmount = TaxAmount + @Tax, PlaySeconds = PlaySeconds + @PlaySeconds
  5190. WHERE
  5191. DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID AND ServerName = @SourceName
  5192. IF(@@ROWCOUNT = 0)
  5193. BEGIN
  5194. INSERT INTO [DailyBetStat]
  5195. (
  5196. DateFlag, UserID, GameID, ServerName, BetAmount, ResultAmount, WinAmount,
  5197. MoneySum, TaxAmount, TotalCount, WinCount, PlaySeconds
  5198. )
  5199. VALUES
  5200. (
  5201. @DateFlag, @UserID, @GameID, @SourceName, 0, 0, 0,
  5202. @Amount, @Tax, 1, 0, @PlaySeconds
  5203. )
  5204. END
  5205. --统计
  5206. EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @Amount, @TaxSum = @Tax, @LogType = @Type
  5207. END
  5208. END
  5209. --更新
  5210. UPDATE
  5211. [UserDailyStat]
  5212. SET
  5213. WinAmount = WinAmount + @WinAmount, LoseAmount = LoseAmount + @LoseAmount, StillAmount = @Balance,
  5214. GameStart = CASE WHEN GameStart = '2021-01-01' THEN @CurrTime ELSE GameStart END, GameEnd = @CurrTime,
  5215. PlaySeconds = PlaySeconds + @PlaySeconds
  5216. WHERE
  5217. DateFlag = @DateFlag AND UserID = @UserID
  5218. IF(@@ROWCOUNT = 0)
  5219. BEGIN
  5220. INSERT INTO [UserDailyStat]
  5221. (
  5222. DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  5223. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  5224. )
  5225. VALUES
  5226. (
  5227. @DateFlag, @UserID, @WinAmount, @LoseAmount, @Balance, @CurrTime, @CurrTime,
  5228. @PlaySeconds, 0, 0, 0, 0
  5229. )
  5230. END
  5231. --游戏
  5232. IF(@GameID > 0)
  5233. BEGIN
  5234. --刷新时间
  5235. UPDATE [UserPlayTime] SET RefreshTime = @CurrTime WHERE UserID = @UserID
  5236. IF(@@ROWCOUNT = 0)
  5237. BEGIN
  5238. INSERT INTO [UserPlayTime](UserID, RefreshTime) VALUES(@UserID, @CurrTime)
  5239. END
  5240. END
  5241. --游戏大厅离线
  5242. IF(@Type = 99)
  5243. BEGIN
  5244. INSERT INTO [UserTrack](UserID, Level_1, Level_2, Level_3, Crdate) VALUES(@UserID, N'大厅', N'离线', '', @CurrTime)
  5245. END
  5246. RETURN
  5247. END
  5248. GO
  5249. /****** Object: StoredProcedure [dbo].[Game_Money_WriteMoney_GetModifyAmount] Script Date: 2024/1/12 11:01:14 ******/
  5250. SET ANSI_NULLS ON
  5251. GO
  5252. SET QUOTED_IDENTIFIER ON
  5253. GO
  5254. -- EXEC [Game_Money_WriteMoney_GetModifyAmount]
  5255. -- ==============================================
  5256. -- Author: wolf
  5257. -- Create Date: 2014-06-17
  5258. -- Mendor: wolf
  5259. -- Alter Date: 2016-08-16
  5260. -- Description: 用户写分
  5261. -- ==============================================
  5262. CREATE PROCEDURE [dbo].[Game_Money_WriteMoney_GetModifyAmount]
  5263. @UserID INT, --用户ID
  5264. @SourceName NVARCHAR(64), --源名称
  5265. @GameID INT, --游戏ID
  5266. @Amount BIGINT, --金额
  5267. @Tax BIGINT, --台费
  5268. @Status TINYINT, --状态(0=无效 1=下注 2=结算 3=派奖 11=下注(扣到零为止) 12=结算(扣减到零))
  5269. @IPAddress VARCHAR(16), --IP地址
  5270. @Type INT, --下注或结算信息(保留)
  5271. @Balance BIGINT OUTPUT, --写分后金额
  5272. @RetCode TINYINT OUTPUT, --操作结果 1=操作成功 2=操作成功(扣减到零) 11=操作失败 12=参数错误
  5273. @ModifyAmount BIGINT OUTPUT --实际修改的
  5274. AS
  5275. SET NOCOUNT ON
  5276. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  5277. SET XACT_ABORT ON
  5278. BEGIN
  5279. DECLARE @PreAmount BIGINT --操作前金额
  5280. DECLARE @chvRemark NVARCHAR(128) --备注
  5281. DECLARE @CurrTime DATETIME --时间
  5282. DECLARE @DateFlag SMALLDATETIME --日期标识
  5283. DECLARE @WinAmount BIGINT --赢金币
  5284. DECLARE @LoseAmount BIGINT --输金币
  5285. DECLARE @PlaySeconds INT --游戏时长(秒)
  5286. DECLARE @RefreshTime DATETIME --刷新时间
  5287. DECLARE @IsRobot TINYINT --是否机器人
  5288. SET @PreAmount = 0
  5289. SET @Balance = 0
  5290. SET @RetCode = 1 --假设成功
  5291. SET @CurrTime = GETDATE()
  5292. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  5293. SET @WinAmount = 0
  5294. SET @LoseAmount = 0
  5295. SET @RefreshTime = 0
  5296. SET @PlaySeconds = 0
  5297. SET @IsRobot = 0
  5298. SET @ModifyAmount = 0
  5299. --判断参数
  5300. IF(@UserID IS NULL OR @Amount IS NULL)
  5301. BEGIN
  5302. SET @RetCode = 12
  5303. RETURN
  5304. END
  5305. IF(@UserID <= 0)
  5306. BEGIN
  5307. SET @IsRobot = 1
  5308. END
  5309. --是否机器人
  5310. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  5311. BEGIN
  5312. SET @IsRobot = 1
  5313. END
  5314. --提高事务隔离级别
  5315. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  5316. --开启事务
  5317. BEGIN TRAN
  5318. --加金币
  5319. IF(@Amount >= 0)
  5320. BEGIN
  5321. UPDATE
  5322. [Money]
  5323. SET
  5324. Amount = Amount + @Amount, RefreshTime = @CurrTime,
  5325. @PreAmount = Amount, @Balance = Amount + @Amount,
  5326. @ModifyAmount = @Amount
  5327. WHERE
  5328. UserID = @UserID
  5329. IF(@@ROWCOUNT = 0)
  5330. BEGIN
  5331. --增加一个现金帐号
  5332. INSERT INTO [Money]
  5333. (
  5334. UserID, Amount, Bank, RegisterTime, RefreshTime
  5335. )
  5336. VALUES
  5337. (
  5338. @UserID, @Amount, 0, @CurrTime, @CurrTime
  5339. )
  5340. SET @Balance = @Amount
  5341. SET @ModifyAmount = @Amount
  5342. END
  5343. END
  5344. --扣减金币
  5345. ELSE IF(@Amount < 0)
  5346. BEGIN
  5347. UPDATE
  5348. [Money]
  5349. SET
  5350. Amount = CASE WHEN Amount + @Amount > 0 THEN Amount + @Amount ELSE 0 END,
  5351. RefreshTime = @CurrTime, @PreAmount = Amount,
  5352. @Balance = CASE WHEN Amount + @Amount > 0 THEN Amount + @Amount ELSE 0 END,
  5353. @ModifyAmount = CASE WHEN Amount + @Amount > 0 THEN @Amount ELSE -Amount END
  5354. WHERE
  5355. UserID = @UserID
  5356. IF(@@ROWCOUNT = 0)
  5357. BEGIN
  5358. SET @RetCode = 11
  5359. END
  5360. END
  5361. --提交事务
  5362. COMMIT TRAN
  5363. --恢复事务隔离级别
  5364. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  5365. --操作成功
  5366. IF(@RetCode != 1)
  5367. BEGIN
  5368. SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type))) + ',Operate Fail'
  5369. IF(@IsRobot = 1)
  5370. BEGIN
  5371. --记录日志
  5372. INSERT INTO [RobotMoneyLog]
  5373. (
  5374. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  5375. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  5376. )
  5377. values
  5378. (
  5379. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @ModifyAmount,
  5380. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  5381. )
  5382. RETURN
  5383. END
  5384. --记录日志
  5385. INSERT INTO [MoneyLog]
  5386. (
  5387. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  5388. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  5389. )
  5390. values
  5391. (
  5392. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @ModifyAmount,
  5393. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  5394. )
  5395. RETURN
  5396. END
  5397. SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type)))
  5398. --机器人
  5399. IF(@IsRobot = 1)
  5400. BEGIN
  5401. --添加日志
  5402. INSERT INTO [RobotMoneyLog]
  5403. (
  5404. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  5405. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  5406. )
  5407. values
  5408. (
  5409. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @ModifyAmount,
  5410. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  5411. )
  5412. RETURN
  5413. END
  5414. --正常玩家
  5415. ELSE
  5416. BEGIN
  5417. --游戏税收统计
  5418. IF(@Tax > 0)
  5419. BEGIN
  5420. UPDATE [GameTax] SET Tax = Tax + @Tax WHERE DateFlag = @DateFlag AND ServerName = @SourceName
  5421. IF(@@ROWCOUNT = 0)
  5422. BEGIN
  5423. INSERT INTO [GameTax] (DateFlag, ServerName, Tax) VALUES(@DateFlag, @SourceName, @Tax)
  5424. END
  5425. --台费触发代理收益
  5426. EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = @GameID, @Tax = @Tax, @IPAddress = @IPAddress, @TriggerType = 2
  5427. END
  5428. END
  5429. --添加日志
  5430. INSERT INTO [MoneyLog]
  5431. (
  5432. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  5433. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  5434. )
  5435. values
  5436. (
  5437. @SourceName, @GameID, 'CASH', @UserID, @PreAmount, @ModifyAmount,
  5438. @Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
  5439. )
  5440. --流水触发代理收益
  5441. IF(@ModifyAmount != 0)
  5442. BEGIN
  5443. EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = @GameID, @Tax = @ModifyAmount, @IPAddress = @IPAddress, @TriggerType = 1
  5444. END
  5445. --用戶日常统计
  5446. --赢金币
  5447. IF(@ModifyAmount > 0)
  5448. BEGIN
  5449. SET @WinAmount = @ModifyAmount
  5450. END
  5451. --输金币
  5452. ELSE IF(@ModifyAmount < 0)
  5453. BEGIN
  5454. SET @LoseAmount = @ModifyAmount
  5455. END
  5456. --获取今天最后游戏时间
  5457. SELECT @RefreshTime = RefreshTime FROM [UserPlayTime] WHERE UserID = @UserID
  5458. --计算游戏时长
  5459. IF(@RefreshTime >= @DateFlag)
  5460. BEGIN
  5461. SET @PlaySeconds = DATEDIFF(SECOND, @RefreshTime, @CurrTime)
  5462. --超过5分钟
  5463. SET @PlaySeconds = CASE WHEN @PlaySeconds >= 300 THEN 0 ELSE @PlaySeconds END
  5464. END
  5465. -- 下面更新统计
  5466. IF(@Amount != 0 OR @Tax != 0)
  5467. BEGIN
  5468. --统计
  5469. IF(@Type % 100 != 99)
  5470. BEGIN
  5471. --游戏记录
  5472. UPDATE
  5473. [DailyBetStat]
  5474. SET
  5475. MoneySum = MoneySum + @ModifyAmount, TaxAmount = TaxAmount + @Tax, PlaySeconds = PlaySeconds + @PlaySeconds
  5476. WHERE
  5477. DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID AND ServerName = @SourceName
  5478. IF(@@ROWCOUNT = 0)
  5479. BEGIN
  5480. INSERT INTO [DailyBetStat]
  5481. (
  5482. DateFlag, UserID, GameID, ServerName, BetAmount, ResultAmount, WinAmount,
  5483. MoneySum, TaxAmount, TotalCount, WinCount, PlaySeconds
  5484. )
  5485. VALUES
  5486. (
  5487. @DateFlag, @UserID, @GameID, @SourceName, 0, 0, 0,
  5488. @ModifyAmount, @Tax, 1, 0, @PlaySeconds
  5489. )
  5490. END
  5491. --统计
  5492. EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @ModifyAmount, @TaxSum = @Tax, @LogType = @Type
  5493. END
  5494. END
  5495. --更新
  5496. UPDATE
  5497. [UserDailyStat]
  5498. SET
  5499. WinAmount = WinAmount + @WinAmount, LoseAmount = LoseAmount + @LoseAmount, StillAmount = @Balance,
  5500. GameStart = CASE WHEN GameStart = '2021-01-01' THEN @CurrTime ELSE GameStart END, GameEnd = @CurrTime,
  5501. PlaySeconds = PlaySeconds + @PlaySeconds
  5502. WHERE
  5503. DateFlag = @DateFlag AND UserID = @UserID
  5504. IF(@@ROWCOUNT = 0)
  5505. BEGIN
  5506. INSERT INTO [UserDailyStat]
  5507. (
  5508. DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  5509. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  5510. )
  5511. VALUES
  5512. (
  5513. @DateFlag, @UserID, @WinAmount, @LoseAmount, @Balance, @CurrTime, @CurrTime,
  5514. @PlaySeconds, 0, 0, 0, 0
  5515. )
  5516. END
  5517. --游戏
  5518. IF(@GameID > 0)
  5519. BEGIN
  5520. --刷新时间
  5521. UPDATE [UserPlayTime] SET RefreshTime = @CurrTime WHERE UserID = @UserID
  5522. IF(@@ROWCOUNT = 0)
  5523. BEGIN
  5524. INSERT INTO [UserPlayTime](UserID, RefreshTime) VALUES(@UserID, @CurrTime)
  5525. END
  5526. END
  5527. --游戏大厅离线
  5528. IF(@Type = 99)
  5529. BEGIN
  5530. INSERT INTO [UserTrack](UserID, Level_1, Level_2, Level_3, Crdate) VALUES(@UserID, N'大厅', N'离线', '', @CurrTime)
  5531. END
  5532. RETURN
  5533. END
  5534. GO
  5535. /****** Object: StoredProcedure [dbo].[Game_MoneyFlow_Stat] Script Date: 2024/1/12 11:01:14 ******/
  5536. SET ANSI_NULLS ON
  5537. GO
  5538. SET QUOTED_IDENTIFIER ON
  5539. GO
  5540. -- EXEC [Game_MoneyFlow_Stat]
  5541. -- ==============================================
  5542. -- Author: wolf
  5543. -- Create Date: 2014-07-18
  5544. -- Mendor: wolf
  5545. -- Alter Date: 2017-01-05
  5546. -- Description: 游戏金币流量统计
  5547. -- ==============================================
  5548. CREATE PROCEDURE [dbo].[Game_MoneyFlow_Stat]
  5549. @MoneyLogID INT --金币日志ID
  5550. AS
  5551. SET NOCOUNT ON
  5552. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  5553. SET XACT_ABORT ON
  5554. BEGIN
  5555. DECLARE @CurrTime DATETIME --系统时间
  5556. DECLARE @DateFlag SMALLDATETIME --日期标识
  5557. SET @CurrTime = GETDATE()
  5558. IF(DATEPART(MINUTE, @CurrTime) < 10)
  5559. BEGIN
  5560. SET @DateFlag = CONVERT(CHAR(14), @CurrTime, 120) + '00'
  5561. END
  5562. ELSE
  5563. BEGIN
  5564. SET @DateFlag = CONVERT(CHAR(14), @CurrTime, 120) + '30'
  5565. END
  5566. --最近30分钟内
  5567. SET @DateFlag = DATEADD(MINUTE, -30, @DateFlag)
  5568. --统计
  5569. INSERT INTO [MoneyFlow]
  5570. (
  5571. DateFlag, GameID, Amount, Tax
  5572. )
  5573. SELECT
  5574. @DateFlag, GameID, SUM(ModifyAmount), SUM(TaxAmount)
  5575. FROM
  5576. [MoneyLog]
  5577. WHERE
  5578. LogID <= @MoneyLogID AND GameID > 0 AND ModifyAmount != 0
  5579. GROUP BY
  5580. GameID
  5581. RETURN
  5582. END
  5583. GO
  5584. /****** Object: StoredProcedure [dbo].[Game_MoneyStat_Total] Script Date: 2024/1/12 11:01:14 ******/
  5585. SET ANSI_NULLS ON
  5586. GO
  5587. SET QUOTED_IDENTIFIER ON
  5588. GO
  5589. -- EXEC [Game_MoneyStat_Total]
  5590. -- ==============================================
  5591. -- Author: wolf
  5592. -- Create Date: 2014-09-03
  5593. -- Mendor: wolf
  5594. -- Alter Date: 2016-07-28
  5595. -- Description: 每隔30分钟统计金币总量
  5596. -- ==============================================
  5597. CREATE PROCEDURE [dbo].[Game_MoneyStat_Total]
  5598. AS
  5599. SET NOCOUNT ON
  5600. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  5601. SET XACT_ABORT ON
  5602. BEGIN
  5603. DECLARE @TotalAmount BIGINT --总存量
  5604. DECLARE @TotalBank BIGINT --保险柜存量
  5605. --现金总量、保险柜存量
  5606. SELECT
  5607. @TotalAmount = SUM(Amount), @TotalBank = SUM(Bank)
  5608. FROM
  5609. [Money]
  5610. WHERE
  5611. UserID NOT IN (SELECT UserID FROM [MachineUser])
  5612. SET @TotalAmount = ISNULL(@TotalAmount, 0)
  5613. SET @TotalBank = ISNULL(@TotalBank, 0)
  5614. --记录
  5615. INSERT INTO [MoneyStatTotal]
  5616. (
  5617. Crdate, TotalAmount, TotalBank
  5618. )
  5619. VALUES
  5620. (
  5621. CONVERT(CHAR(16), GETDATE(), 120), @TotalAmount, @TotalBank
  5622. )
  5623. RETURN
  5624. END
  5625. GO
  5626. /****** Object: StoredProcedure [dbo].[Game_MoneyStat_Update] Script Date: 2024/1/12 11:01:14 ******/
  5627. SET ANSI_NULLS ON
  5628. GO
  5629. SET QUOTED_IDENTIFIER ON
  5630. GO
  5631. -- EXEC [Game_MoneyStat_Update]
  5632. -- @MoneySum = 1,
  5633. -- @TaxSum = 1,
  5634. -- @LogType = 1
  5635. -- ==============================================
  5636. -- Author: wolf
  5637. -- Create Date: 2014-06-12
  5638. -- Mendor: wolf
  5639. -- Alter Date: 2014-09-02
  5640. -- Description: 游戏金币统计(暂时只统计普通玩家)
  5641. -- ==============================================
  5642. CREATE PROCEDURE [dbo].[Game_MoneyStat_Update]
  5643. @UserID INT, --用户ID
  5644. @MoneySum BIGINT, --金币数
  5645. @TaxSum BIGINT, --税收
  5646. @LogType INT --日志类型
  5647. AS
  5648. SET NOCOUNT ON
  5649. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  5650. SET XACT_ABORT ON
  5651. BEGIN
  5652. DECLARE @CurrTime DATETIME --系统当前时间
  5653. DECLARE @DateFlag SMALLDATETIME --日期标志
  5654. SET @CurrTime = GETDATE()
  5655. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  5656. --更新统计信息
  5657. UPDATE
  5658. [MoneyStat]
  5659. SET
  5660. MoneySum = MoneySum + @MoneySum, TaxSum = TaxSum + @TaxSum
  5661. WHERE
  5662. DateFlag = @DateFlag AND UserID = @UserID AND LogType = @LogType
  5663. --还没有统计信息
  5664. IF(@@ROWCOUNT = 0)
  5665. BEGIN
  5666. INSERT INTO [MoneyStat]
  5667. (
  5668. DateFlag, UserID, LogType, MoneySum, TaxSum
  5669. )
  5670. VALUES
  5671. (
  5672. @DateFlag, @UserID, @LogType, @MoneySum, @TaxSum
  5673. )
  5674. END
  5675. RETURN
  5676. END
  5677. GO
  5678. /****** Object: StoredProcedure [dbo].[Game_NewUserStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  5679. SET ANSI_NULLS ON
  5680. GO
  5681. SET QUOTED_IDENTIFIER ON
  5682. GO
  5683. -- EXEC [Game_NewUserStat_Stat]
  5684. -- ==============================================
  5685. -- Author: wolf
  5686. -- Create Date: 2014-01-21
  5687. -- Mendor: wolf
  5688. -- Alter Date: 2016-11-07
  5689. -- Description: 新用户统计(每天统计)
  5690. -- ==============================================
  5691. CREATE PROCEDURE [dbo].[Game_NewUserStat_Stat]
  5692. @CurrTime DATETIME --系统当前时间
  5693. AS
  5694. SET NOCOUNT ON
  5695. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  5696. SET XACT_ABORT ON
  5697. BEGIN
  5698. DECLARE @DateFlag SMALLDATETIME --日期标识
  5699. DECLARE @StatFlag SMALLDATETIME --统计日期标识
  5700. DECLARE @RegCount INT --注册人数
  5701. DECLARE @Source NVARCHAR(256) --UTM源
  5702. DECLARE @LiveUsers_2 INT --次日留存
  5703. DECLARE @Rid INT --标识
  5704. DECLARE @OneRid INT --当前标识
  5705. DECLARE @Days INT --天数
  5706. DECLARE @PayMoney DECIMAL(18, 2) --充值金额
  5707. DECLARE @tmptable TABLE(
  5708. UserID INT NOT NULL, --用户ID
  5709. Source NVARCHAR(256) NOT NULL, --UTM源
  5710. IsPay INT NOT NULL, --是否充值
  5711. PayMoney DECIMAL(18, 2) NOT NULL --充值金额
  5712. )
  5713. SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
  5714. --初始化变量
  5715. INSERT INTO @tmptable
  5716. (
  5717. UserID, Source, IsPay, PayMoney
  5718. )
  5719. SELECT
  5720. u.UserID, CASE WHEN s.Source IS NULL OR s.Source = '' THEN 'unknown' ELSE s.Source END,
  5721. CASE WHEN l.RMBMoney > 0 THEN 1 ELSE 0 END, ISNULL(l.RMBMoney, 0)
  5722. FROM
  5723. [AllUser] u LEFT JOIN [UTM] s ON u.UserID = s.UserID
  5724. LEFT JOIN [UserPayLog] l ON u.UserID = l.UserID AND l.DateFlag = @DateFlag
  5725. WHERE
  5726. u.RegTime >= @DateFlag AND u.RegTime < @DateFlag + 1
  5727. IF(@@ROWCOUNT > 0)
  5728. BEGIN
  5729. --初始化各渠道
  5730. INSERT INTO [NewUserStat]
  5731. (
  5732. DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
  5733. PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
  5734. )
  5735. SELECT
  5736. @DateFlag, Source, COUNT(DISTINCT UserID), 0, SUM(IsPay),
  5737. SUM(PayMoney), 0, 0, 0, 0, 0
  5738. FROM
  5739. @tmptable
  5740. GROUP BY
  5741. Source
  5742. --初始化所有
  5743. INSERT INTO [NewUserStat]
  5744. (
  5745. DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
  5746. PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
  5747. )
  5748. SELECT
  5749. @DateFlag, N'All Source', COUNT(DISTINCT UserID), 0, SUM(IsPay),
  5750. SUM(PayMoney), 0, 0, 0, 0, 0
  5751. FROM
  5752. @tmptable
  5753. END
  5754. SET @Rid = 0
  5755. WHILE(1=1)
  5756. BEGIN
  5757. SET @OneRid = @Rid
  5758. SET @Rid = NULL
  5759. SET @Source = NULL
  5760. SET @LiveUsers_2 = NULL
  5761. SET @PayMoney = NULL
  5762. SET @StatFlag = NULL
  5763. SELECT TOP 1
  5764. @Rid = Rid, @StatFlag = DateFlag, @Source = Source
  5765. FROM
  5766. [NewUserStat]
  5767. WHERE
  5768. DateFlag >= @DateFlag - 30 AND Rid > @OneRid
  5769. ORDER BY
  5770. Rid ASC
  5771. IF(@Rid IS NULL)
  5772. BREAK
  5773. --计算天数
  5774. SET @Days = DATEDIFF(DAY, @StatFlag, @DateFlag) + 1
  5775. --所有渠道
  5776. IF(@Source = 'All Source')
  5777. BEGIN
  5778. --次日
  5779. IF(@Days = 2)
  5780. BEGIN
  5781. --次日留存
  5782. SELECT
  5783. @LiveUsers_2 = COUNT(UserID)
  5784. FROM
  5785. [AllUser]
  5786. WHERE
  5787. RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 1 AND @StatFlag + 2
  5788. END
  5789. --充值金额
  5790. SELECT
  5791. @PayMoney = SUM(p.RMBMoney)
  5792. FROM
  5793. [AllUser] u INNER JOIN [UserPayLog] p ON u.UserID = p.UserID AND p.DateFlag <= @DateFlag
  5794. WHERE
  5795. u.RegTime BETWEEN @StatFlag AND @StatFlag + 1
  5796. END
  5797. --各渠道
  5798. ELSE
  5799. BEGIN
  5800. --次日
  5801. IF(@Days = 2)
  5802. BEGIN
  5803. --次日留存
  5804. SELECT
  5805. @LiveUsers_2 = COUNT(u.UserID)
  5806. FROM
  5807. [AllUser] u INNER JOIN [UTM] s ON u.UserID = s.UserID
  5808. WHERE
  5809. u.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND u.LoginTime BETWEEN @StatFlag + 1 AND @StatFlag + 2 AND s.Source = @Source
  5810. END
  5811. --充值金额
  5812. SELECT
  5813. @PayMoney = SUM(p.RMBMoney)
  5814. FROM
  5815. [AllUser] u INNER JOIN [UserPayLog] p ON u.UserID = p.UserID AND p.DateFlag <= @DateFlag
  5816. INNER JOIN [UTM] s ON u.UserID = s.UserID
  5817. WHERE
  5818. u.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND s.Source = @Source
  5819. END
  5820. SET @LiveUsers_2 = ISNULL(@LiveUsers_2, 0)
  5821. SET @PayMoney = ISNULL(@PayMoney, 0)
  5822. /*
  5823. PRINT '@Rid=' + LTRIM(STR(@Rid)) + ',@DateFlag=' + CONVERT(VARCHAR(16), @StatFlag, 120) + ',@Source=' + @Source +
  5824. ',@Days=' + LTRIM(STR(@Days)) + ',@LiveUsers_2=' + LTRIM(STR(@LiveUsers_2)) + ',@PayMoney=' + CAST(@PayMoney AS VARCHAR(16))
  5825. */
  5826. --更新统计
  5827. UPDATE
  5828. [NewUserStat]
  5829. SET
  5830. LiveUsers_2 = CASE WHEN @LiveUsers_2 > 0 THEN @LiveUsers_2 ELSE LiveUsers_2 END,
  5831. PayMoney_2 = CASE WHEN @Days = 2 THEN @PayMoney ELSE PayMoney_2 END,
  5832. PayMoney_3 = CASE WHEN @Days = 3 THEN @PayMoney ELSE PayMoney_3 END,
  5833. PayMoney_7 = CASE WHEN @Days = 7 THEN @PayMoney ELSE PayMoney_7 END,
  5834. PayMoney_14 = CASE WHEN @Days = 14 THEN @PayMoney ELSE PayMoney_14 END,
  5835. PayMoney_30 = CASE WHEN @Days = 30 THEN @PayMoney ELSE PayMoney_30 END
  5836. WHERE
  5837. Rid = @Rid
  5838. END
  5839. END
  5840. GO
  5841. /****** Object: StoredProcedure [dbo].[Game_OnlineStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  5842. SET ANSI_NULLS ON
  5843. GO
  5844. SET QUOTED_IDENTIFIER ON
  5845. GO
  5846. -- EXEC [Game_OnlineStat_Stat]
  5847. -- ==============================================
  5848. -- Author: wolf
  5849. -- Create Date: 2014-10-08
  5850. -- Mendor: wolf
  5851. -- Alter Date: 2016-08-16
  5852. -- Description: 在线人数统计(每小时执行,供作业调用)
  5853. -- ==============================================
  5854. CREATE PROCEDURE [dbo].[Game_OnlineStat_Stat]
  5855. AS
  5856. SET NOCOUNT ON
  5857. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  5858. SET XACT_ABORT ON
  5859. BEGIN
  5860. DECLARE @CurrTime DATETIME --系统当前时间
  5861. DECLARE @DateFlag SMALLDATETIME --日期标识
  5862. DECLARE @Rid INT --标识
  5863. DECLARE @OneRid INT --当前标识
  5864. DECLARE @GameID INT --游戏ID
  5865. DECLARE @OnlineUserCount INT --在线用户数
  5866. --日志
  5867. DECLARE @tmpLog TABLE(
  5868. UserID INT NOT NULL, --用户ID
  5869. GameID INT NOT NULL, --游戏ID
  5870. ServerName NVARCHAR(32) NOT NULL, --服务器名称
  5871. PartnerID INT NOT NULL --渠道ID
  5872. )
  5873. --表变量
  5874. DECLARE @tmptable TABLE(
  5875. Rid INT IDENTITY, --标识
  5876. GameID INT NOT NULL, --游戏ID
  5877. OnlineUserCount INT NOT NULL --在线用户数
  5878. )
  5879. DECLARE @Hour INT --小时
  5880. DECLARE @Hour_0 INT -- 0点
  5881. DECLARE @Hour_1 INT -- 1点
  5882. DECLARE @Hour_2 INT -- 2点
  5883. DECLARE @Hour_3 INT -- 3点
  5884. DECLARE @Hour_4 INT -- 4点
  5885. DECLARE @Hour_5 INT -- 5点
  5886. DECLARE @Hour_6 INT -- 6点
  5887. DECLARE @Hour_7 INT -- 7点
  5888. DECLARE @Hour_8 INT -- 8点
  5889. DECLARE @Hour_9 INT -- 9点
  5890. DECLARE @Hour_10 INT -- 10点
  5891. DECLARE @Hour_11 INT -- 11点
  5892. DECLARE @Hour_12 INT -- 12点
  5893. DECLARE @Hour_13 INT -- 13点
  5894. DECLARE @Hour_14 INT -- 14点
  5895. DECLARE @Hour_15 INT -- 15点
  5896. DECLARE @Hour_16 INT -- 16点
  5897. DECLARE @Hour_17 INT -- 17点
  5898. DECLARE @Hour_18 INT -- 18点
  5899. DECLARE @Hour_19 INT -- 19点
  5900. DECLARE @Hour_20 INT -- 20点
  5901. DECLARE @Hour_21 INT -- 21点
  5902. DECLARE @Hour_22 INT -- 22点
  5903. DECLARE @Hour_23 INT -- 23点
  5904. SET @CurrTime = CONVERT(CHAR(14), DATEADD(HOUR, -1, GETDATE()), 120) + '00'
  5905. SET @Hour = DATEPART(HOUR, @CurrTime)
  5906. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  5907. --初始化
  5908. INSERT INTO @tmpLog
  5909. (
  5910. UserID, GameID, ServerName, PartnerID
  5911. )
  5912. SELECT DISTINCT
  5913. UserID, GameID, ServerName, 0
  5914. FROM
  5915. [t_onlinelog]
  5916. WHERE
  5917. Crdate >= @CurrTime
  5918. --获取渠道ID
  5919. UPDATE l SET l.PartnerID = u.PartnerID FROM @tmpLog l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  5920. --统计整个在线用户
  5921. INSERT INTO [OnlineStat]
  5922. (
  5923. DateFlag, PartnerID, OnlineUserCount, GameID, ServerName
  5924. )
  5925. SELECT
  5926. @CurrTime, -1, COUNT(DISTINCT UserID), -1, ''
  5927. FROM
  5928. @tmpLog
  5929. --添加到统计表
  5930. INSERT INTO [OnlineStat]
  5931. (
  5932. DateFlag, PartnerID, OnlineUserCount, GameID, ServerName
  5933. )
  5934. SELECT
  5935. @CurrTime, PartnerID, COUNT(UserID), GameID, ServerName
  5936. FROM
  5937. @tmpLog
  5938. GROUP BY
  5939. PartnerID, GameID, ServerName
  5940. --游戏在线用户
  5941. INSERT INTO @tmptable
  5942. (
  5943. GameID, OnlineUserCount
  5944. )
  5945. SELECT
  5946. GameID, COUNT(DISTINCT UserID)
  5947. FROM
  5948. @tmpLog
  5949. WHERE
  5950. GameID > 0
  5951. GROUP BY
  5952. GameID
  5953. SET @Rid = 0
  5954. --遍历
  5955. WHILE(1=1)
  5956. BEGIN
  5957. SET @OneRid = @Rid
  5958. SET @Rid = NULL
  5959. SET @GameID = NULL
  5960. SET @OnlineUserCount = NULL
  5961. SELECT TOP 1
  5962. @Rid = Rid, @GameID = GameID, @OnlineUserCount = OnlineUserCount
  5963. FROM
  5964. @tmptable
  5965. WHERE
  5966. Rid > @OneRid
  5967. ORDER BY
  5968. Rid ASC
  5969. IF(@Rid IS NULL OR @GameID IS NULL OR @OnlineUserCount IS NULL)
  5970. BREAK
  5971. --分时段
  5972. SELECT
  5973. @Hour_0 = CASE WHEN @Hour = 0 THEN @OnlineUserCount ELSE 0 END, @Hour_1 = CASE WHEN @Hour = 1 THEN @OnlineUserCount ELSE 0 END,
  5974. @Hour_2 = CASE WHEN @Hour = 2 THEN @OnlineUserCount ELSE 0 END, @Hour_3 = CASE WHEN @Hour = 3 THEN @OnlineUserCount ELSE 0 END,
  5975. @Hour_4 = CASE WHEN @Hour = 4 THEN @OnlineUserCount ELSE 0 END, @Hour_5 = CASE WHEN @Hour = 5 THEN @OnlineUserCount ELSE 0 END,
  5976. @Hour_6 = CASE WHEN @Hour = 6 THEN @OnlineUserCount ELSE 0 END, @Hour_7 = CASE WHEN @Hour = 7 THEN @OnlineUserCount ELSE 0 END,
  5977. @Hour_8 = CASE WHEN @Hour = 8 THEN @OnlineUserCount ELSE 0 END, @Hour_9 = CASE WHEN @Hour = 9 THEN @OnlineUserCount ELSE 0 END,
  5978. @Hour_10 = CASE WHEN @Hour = 10 THEN @OnlineUserCount ELSE 0 END, @Hour_11 = CASE WHEN @Hour = 11 THEN @OnlineUserCount ELSE 0 END,
  5979. @Hour_12 = CASE WHEN @Hour = 12 THEN @OnlineUserCount ELSE 0 END, @Hour_13 = CASE WHEN @Hour = 13 THEN @OnlineUserCount ELSE 0 END,
  5980. @Hour_14 = CASE WHEN @Hour = 14 THEN @OnlineUserCount ELSE 0 END, @Hour_15 = CASE WHEN @Hour = 15 THEN @OnlineUserCount ELSE 0 END,
  5981. @Hour_16 = CASE WHEN @Hour = 16 THEN @OnlineUserCount ELSE 0 END, @Hour_17 = CASE WHEN @Hour = 17 THEN @OnlineUserCount ELSE 0 END,
  5982. @Hour_18 = CASE WHEN @Hour = 18 THEN @OnlineUserCount ELSE 0 END, @Hour_19 = CASE WHEN @Hour = 19 THEN @OnlineUserCount ELSE 0 END,
  5983. @Hour_20 = CASE WHEN @Hour = 20 THEN @OnlineUserCount ELSE 0 END, @Hour_21 = CASE WHEN @Hour = 21 THEN @OnlineUserCount ELSE 0 END,
  5984. @Hour_22 = CASE WHEN @Hour = 22 THEN @OnlineUserCount ELSE 0 END, @Hour_23 = CASE WHEN @Hour = 23 THEN @OnlineUserCount ELSE 0 END
  5985. --统计
  5986. UPDATE
  5987. [OnlineStatHour]
  5988. SET
  5989. Hour_0 = Hour_0 + @Hour_0, Hour_1 = Hour_1 + @Hour_1, Hour_2 = Hour_2 + @Hour_2, Hour_3 = Hour_3 + @Hour_3,
  5990. Hour_4 = Hour_4 + @Hour_4, Hour_5 = Hour_5 + @Hour_5, Hour_6 = Hour_6 + @Hour_6, Hour_7 = Hour_7 + @Hour_7,
  5991. Hour_8 = Hour_8 + @Hour_8, Hour_9 = Hour_9 + @Hour_9, Hour_10 = Hour_10 + @Hour_10, Hour_11 = Hour_11 + @Hour_11,
  5992. Hour_12 = Hour_12 + @Hour_12, Hour_13 = Hour_13 + @Hour_13, Hour_14 = Hour_14 + @Hour_14, Hour_15 = Hour_15 + @Hour_15,
  5993. Hour_16 = Hour_16 + @Hour_16, Hour_17 = Hour_17 + @Hour_17, Hour_18 = Hour_18 + @Hour_18, Hour_19 = Hour_19 + @Hour_19,
  5994. Hour_20 = Hour_20 + @Hour_20, Hour_21 = Hour_21 + @Hour_21, Hour_22 = Hour_22 + @Hour_22, Hour_23 = Hour_23 + @Hour_23
  5995. WHERE
  5996. DateFlag = @DateFlag AND GameID = @GameID
  5997. --今天还没有
  5998. IF(@@ROWCOUNT = 0)
  5999. BEGIN
  6000. INSERT INTO [OnlineStatHour]
  6001. (
  6002. DateFlag, GameID,
  6003. Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  6004. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  6005. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  6006. )
  6007. VALUES
  6008. (
  6009. @DateFlag, @GameID,
  6010. @Hour_0, @Hour_1, @Hour_2, @Hour_3, @Hour_4, @Hour_5, @Hour_6, @Hour_7, @Hour_8,
  6011. @Hour_9, @Hour_10, @Hour_11, @Hour_12, @Hour_13, @Hour_14, @Hour_15, @Hour_16,
  6012. @Hour_17, @Hour_18, @Hour_19, @Hour_20, @Hour_21, @Hour_22, @Hour_23
  6013. )
  6014. END
  6015. END
  6016. RETURN
  6017. END
  6018. GO
  6019. /****** Object: StoredProcedure [dbo].[Game_OnlineStatChip_Stat] Script Date: 2024/1/12 11:01:14 ******/
  6020. SET ANSI_NULLS ON
  6021. GO
  6022. SET QUOTED_IDENTIFIER ON
  6023. GO
  6024. -- EXEC [Game_OnlineStatChip_Stat]
  6025. -- ==============================================
  6026. -- Author: wolf
  6027. -- Create Date: 2014-10-08
  6028. -- Mendor: wolf
  6029. -- Alter Date: 2016-08-16
  6030. -- Description: 在线人数统计(每小时执行,供作业调用)
  6031. -- ==============================================
  6032. CREATE PROCEDURE [dbo].[Game_OnlineStatChip_Stat]
  6033. AS
  6034. SET NOCOUNT ON
  6035. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  6036. SET XACT_ABORT ON
  6037. BEGIN
  6038. DECLARE @CurrTime DATETIME --系统当前时间
  6039. DECLARE @DateFlag SMALLDATETIME --日期标识
  6040. DECLARE @Rid INT --标识
  6041. DECLARE @OneRid INT --当前标识
  6042. DECLARE @GameID INT --游戏ID
  6043. DECLARE @OnlineUserCount INT --在线用户数
  6044. --日志
  6045. DECLARE @tmpLog TABLE(
  6046. UserID INT NOT NULL, --用户ID
  6047. GameID INT NOT NULL, --游戏ID
  6048. ServerName NVARCHAR(32) NOT NULL, --服务器名称
  6049. PartnerID INT NOT NULL --渠道ID
  6050. )
  6051. --表变量
  6052. DECLARE @tmptable TABLE(
  6053. Rid INT IDENTITY, --标识
  6054. GameID INT NOT NULL, --游戏ID
  6055. OnlineUserCount INT NOT NULL --在线用户数
  6056. )
  6057. DECLARE @Hour INT --小时
  6058. DECLARE @Hour_0 INT -- 0点
  6059. DECLARE @Hour_1 INT -- 1点
  6060. DECLARE @Hour_2 INT -- 2点
  6061. DECLARE @Hour_3 INT -- 3点
  6062. DECLARE @Hour_4 INT -- 4点
  6063. DECLARE @Hour_5 INT -- 5点
  6064. DECLARE @Hour_6 INT -- 6点
  6065. DECLARE @Hour_7 INT -- 7点
  6066. DECLARE @Hour_8 INT -- 8点
  6067. DECLARE @Hour_9 INT -- 9点
  6068. DECLARE @Hour_10 INT -- 10点
  6069. DECLARE @Hour_11 INT -- 11点
  6070. DECLARE @Hour_12 INT -- 12点
  6071. DECLARE @Hour_13 INT -- 13点
  6072. DECLARE @Hour_14 INT -- 14点
  6073. DECLARE @Hour_15 INT -- 15点
  6074. DECLARE @Hour_16 INT -- 16点
  6075. DECLARE @Hour_17 INT -- 17点
  6076. DECLARE @Hour_18 INT -- 18点
  6077. DECLARE @Hour_19 INT -- 19点
  6078. DECLARE @Hour_20 INT -- 20点
  6079. DECLARE @Hour_21 INT -- 21点
  6080. DECLARE @Hour_22 INT -- 22点
  6081. DECLARE @Hour_23 INT -- 23点
  6082. SET @CurrTime = CONVERT(CHAR(14), DATEADD(HOUR, -1, GETDATE()), 120) + '00'
  6083. SET @Hour = DATEPART(HOUR, @CurrTime)
  6084. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  6085. --初始化
  6086. INSERT INTO @tmpLog
  6087. (
  6088. UserID, GameID, ServerName, PartnerID
  6089. )
  6090. SELECT DISTINCT
  6091. UserID, GameID, ServerName, 0
  6092. FROM
  6093. [t_onlinelog]
  6094. WHERE
  6095. Crdate >= @CurrTime AND IsChip = 1
  6096. --获取渠道ID
  6097. UPDATE l SET l.PartnerID = u.PartnerID FROM @tmpLog l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  6098. --统计整个在线用户
  6099. INSERT INTO [OnlineStatChip]
  6100. (
  6101. DateFlag, PartnerID, OnlineUserCount, GameID, ServerName
  6102. )
  6103. SELECT
  6104. @CurrTime, -1, COUNT(DISTINCT UserID), -1, ''
  6105. FROM
  6106. @tmpLog
  6107. --添加到统计表
  6108. INSERT INTO [OnlineStatChip]
  6109. (
  6110. DateFlag, PartnerID, OnlineUserCount, GameID, ServerName
  6111. )
  6112. SELECT
  6113. @CurrTime, PartnerID, COUNT(UserID), GameID, ServerName
  6114. FROM
  6115. @tmpLog
  6116. GROUP BY
  6117. PartnerID, GameID, ServerName
  6118. --游戏在线用户
  6119. INSERT INTO @tmptable
  6120. (
  6121. GameID, OnlineUserCount
  6122. )
  6123. SELECT
  6124. GameID, COUNT(DISTINCT UserID)
  6125. FROM
  6126. @tmpLog
  6127. WHERE
  6128. GameID > 0
  6129. GROUP BY
  6130. GameID
  6131. SET @Rid = 0
  6132. --遍历
  6133. WHILE(1=1)
  6134. BEGIN
  6135. SET @OneRid = @Rid
  6136. SET @Rid = NULL
  6137. SET @GameID = NULL
  6138. SET @OnlineUserCount = NULL
  6139. SELECT TOP 1
  6140. @Rid = Rid, @GameID = GameID, @OnlineUserCount = OnlineUserCount
  6141. FROM
  6142. @tmptable
  6143. WHERE
  6144. Rid > @OneRid
  6145. ORDER BY
  6146. Rid ASC
  6147. IF(@Rid IS NULL OR @GameID IS NULL OR @OnlineUserCount IS NULL)
  6148. BREAK
  6149. --分时段
  6150. SELECT
  6151. @Hour_0 = CASE WHEN @Hour = 0 THEN @OnlineUserCount ELSE 0 END, @Hour_1 = CASE WHEN @Hour = 1 THEN @OnlineUserCount ELSE 0 END,
  6152. @Hour_2 = CASE WHEN @Hour = 2 THEN @OnlineUserCount ELSE 0 END, @Hour_3 = CASE WHEN @Hour = 3 THEN @OnlineUserCount ELSE 0 END,
  6153. @Hour_4 = CASE WHEN @Hour = 4 THEN @OnlineUserCount ELSE 0 END, @Hour_5 = CASE WHEN @Hour = 5 THEN @OnlineUserCount ELSE 0 END,
  6154. @Hour_6 = CASE WHEN @Hour = 6 THEN @OnlineUserCount ELSE 0 END, @Hour_7 = CASE WHEN @Hour = 7 THEN @OnlineUserCount ELSE 0 END,
  6155. @Hour_8 = CASE WHEN @Hour = 8 THEN @OnlineUserCount ELSE 0 END, @Hour_9 = CASE WHEN @Hour = 9 THEN @OnlineUserCount ELSE 0 END,
  6156. @Hour_10 = CASE WHEN @Hour = 10 THEN @OnlineUserCount ELSE 0 END, @Hour_11 = CASE WHEN @Hour = 11 THEN @OnlineUserCount ELSE 0 END,
  6157. @Hour_12 = CASE WHEN @Hour = 12 THEN @OnlineUserCount ELSE 0 END, @Hour_13 = CASE WHEN @Hour = 13 THEN @OnlineUserCount ELSE 0 END,
  6158. @Hour_14 = CASE WHEN @Hour = 14 THEN @OnlineUserCount ELSE 0 END, @Hour_15 = CASE WHEN @Hour = 15 THEN @OnlineUserCount ELSE 0 END,
  6159. @Hour_16 = CASE WHEN @Hour = 16 THEN @OnlineUserCount ELSE 0 END, @Hour_17 = CASE WHEN @Hour = 17 THEN @OnlineUserCount ELSE 0 END,
  6160. @Hour_18 = CASE WHEN @Hour = 18 THEN @OnlineUserCount ELSE 0 END, @Hour_19 = CASE WHEN @Hour = 19 THEN @OnlineUserCount ELSE 0 END,
  6161. @Hour_20 = CASE WHEN @Hour = 20 THEN @OnlineUserCount ELSE 0 END, @Hour_21 = CASE WHEN @Hour = 21 THEN @OnlineUserCount ELSE 0 END,
  6162. @Hour_22 = CASE WHEN @Hour = 22 THEN @OnlineUserCount ELSE 0 END, @Hour_23 = CASE WHEN @Hour = 23 THEN @OnlineUserCount ELSE 0 END
  6163. --统计
  6164. UPDATE
  6165. [OnlineStatHourChip]
  6166. SET
  6167. Hour_0 = Hour_0 + @Hour_0, Hour_1 = Hour_1 + @Hour_1, Hour_2 = Hour_2 + @Hour_2, Hour_3 = Hour_3 + @Hour_3,
  6168. Hour_4 = Hour_4 + @Hour_4, Hour_5 = Hour_5 + @Hour_5, Hour_6 = Hour_6 + @Hour_6, Hour_7 = Hour_7 + @Hour_7,
  6169. Hour_8 = Hour_8 + @Hour_8, Hour_9 = Hour_9 + @Hour_9, Hour_10 = Hour_10 + @Hour_10, Hour_11 = Hour_11 + @Hour_11,
  6170. Hour_12 = Hour_12 + @Hour_12, Hour_13 = Hour_13 + @Hour_13, Hour_14 = Hour_14 + @Hour_14, Hour_15 = Hour_15 + @Hour_15,
  6171. Hour_16 = Hour_16 + @Hour_16, Hour_17 = Hour_17 + @Hour_17, Hour_18 = Hour_18 + @Hour_18, Hour_19 = Hour_19 + @Hour_19,
  6172. Hour_20 = Hour_20 + @Hour_20, Hour_21 = Hour_21 + @Hour_21, Hour_22 = Hour_22 + @Hour_22, Hour_23 = Hour_23 + @Hour_23
  6173. WHERE
  6174. DateFlag = @DateFlag AND GameID = @GameID
  6175. --今天还没有
  6176. IF(@@ROWCOUNT = 0)
  6177. BEGIN
  6178. INSERT INTO [OnlineStatHourChip]
  6179. (
  6180. DateFlag, GameID,
  6181. Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  6182. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  6183. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  6184. )
  6185. VALUES
  6186. (
  6187. @DateFlag, @GameID,
  6188. @Hour_0, @Hour_1, @Hour_2, @Hour_3, @Hour_4, @Hour_5, @Hour_6, @Hour_7, @Hour_8,
  6189. @Hour_9, @Hour_10, @Hour_11, @Hour_12, @Hour_13, @Hour_14, @Hour_15, @Hour_16,
  6190. @Hour_17, @Hour_18, @Hour_19, @Hour_20, @Hour_21, @Hour_22, @Hour_23
  6191. )
  6192. END
  6193. END
  6194. RETURN
  6195. END
  6196. GO
  6197. /****** Object: StoredProcedure [dbo].[Game_OnlineUser_Stat] Script Date: 2024/1/12 11:01:14 ******/
  6198. SET ANSI_NULLS ON
  6199. GO
  6200. SET QUOTED_IDENTIFIER ON
  6201. GO
  6202. -- EXEC [Game_OnlineUser_Stat]
  6203. -- ==============================================
  6204. -- Author: wolf
  6205. -- Create Date: 2014-10-08
  6206. -- Mendor: wolf
  6207. -- Alter Date: 2016-08-16
  6208. -- Description: 同时在线人数统计
  6209. -- ==============================================
  6210. CREATE PROCEDURE [dbo].[Game_OnlineUser_Stat]
  6211. @CurrTime DATETIME --时间
  6212. AS
  6213. SET NOCOUNT ON
  6214. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  6215. SET XACT_ABORT ON
  6216. BEGIN
  6217. DECLARE @Rid INT --标识
  6218. DECLARE @OneRid INT --当前标识
  6219. DECLARE @GameID INT --游戏ID
  6220. DECLARE @OnlineUserCount INT --在线用户数
  6221. DECLARE @DateFlag SMALLDATETIME --日期标识
  6222. DECLARE @Hour INT --小时
  6223. DECLARE @Min INT --分钟
  6224. DECLARE @Hour_0000 INT -- 00:00
  6225. DECLARE @Hour_0030 INT -- 00:30
  6226. DECLARE @Hour_0100 INT -- 01:00
  6227. DECLARE @Hour_0130 INT -- 01:30
  6228. DECLARE @Hour_0200 INT -- 02:00
  6229. DECLARE @Hour_0230 INT -- 02:30
  6230. DECLARE @Hour_0300 INT -- 03:00
  6231. DECLARE @Hour_0330 INT -- 03:30
  6232. DECLARE @Hour_0400 INT -- 04:00
  6233. DECLARE @Hour_0430 INT -- 04:30
  6234. DECLARE @Hour_0500 INT -- 05:00
  6235. DECLARE @Hour_0530 INT -- 05:30
  6236. DECLARE @Hour_0600 INT -- 06:00
  6237. DECLARE @Hour_0630 INT -- 06:30
  6238. DECLARE @Hour_0700 INT -- 07:00
  6239. DECLARE @Hour_0730 INT -- 07:30
  6240. DECLARE @Hour_0800 INT -- 08:00
  6241. DECLARE @Hour_0830 INT -- 08:30
  6242. DECLARE @Hour_0900 INT -- 09:00
  6243. DECLARE @Hour_0930 INT -- 09:30
  6244. DECLARE @Hour_1000 INT -- 10:00
  6245. DECLARE @Hour_1030 INT -- 10:30
  6246. DECLARE @Hour_1100 INT -- 11:00
  6247. DECLARE @Hour_1130 INT -- 11:30
  6248. DECLARE @Hour_1200 INT -- 12:00
  6249. DECLARE @Hour_1230 INT -- 12:30
  6250. DECLARE @Hour_1300 INT -- 13:00
  6251. DECLARE @Hour_1330 INT -- 13:30
  6252. DECLARE @Hour_1400 INT -- 14:00
  6253. DECLARE @Hour_1430 INT -- 14:30
  6254. DECLARE @Hour_1500 INT -- 15:00
  6255. DECLARE @Hour_1530 INT -- 15:30
  6256. DECLARE @Hour_1600 INT -- 16:00
  6257. DECLARE @Hour_1630 INT -- 16:30
  6258. DECLARE @Hour_1700 INT -- 17:00
  6259. DECLARE @Hour_1730 INT -- 17:30
  6260. DECLARE @Hour_1800 INT -- 18:00
  6261. DECLARE @Hour_1830 INT -- 18:30
  6262. DECLARE @Hour_1900 INT -- 19:00
  6263. DECLARE @Hour_1930 INT -- 19:30
  6264. DECLARE @Hour_2000 INT -- 20:00
  6265. DECLARE @Hour_2030 INT -- 20:30
  6266. DECLARE @Hour_2100 INT -- 21:00
  6267. DECLARE @Hour_2130 INT -- 21:30
  6268. DECLARE @Hour_2200 INT -- 22:00
  6269. DECLARE @Hour_2230 INT -- 22:30
  6270. DECLARE @Hour_2300 INT -- 23:00
  6271. DECLARE @Hour_2330 INT -- 23:30
  6272. DECLARE @tmptable TABLE(
  6273. Rid INT IDENTITY, --自增
  6274. GameID INT NOT NULL, --游戏ID
  6275. OnlineUserCount INT NOT NULL --在线人数
  6276. )
  6277. SET @Hour = DATEPART(HOUR, @CurrTime)
  6278. SET @Min = DATEPART(MINUTE, @CurrTime)
  6279. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  6280. --初始化
  6281. INSERT INTO @tmptable
  6282. (
  6283. GameID, OnlineUserCount
  6284. )
  6285. SELECT
  6286. GameID, COUNT(UserID)
  6287. FROM
  6288. [t_onlineuser]
  6289. GROUP BY
  6290. GameID
  6291. SET @Rid = 0
  6292. --遍历
  6293. WHILE(1=1)
  6294. BEGIN
  6295. SET @OneRid = @Rid
  6296. SET @Rid = NULL
  6297. SET @GameID = NULL
  6298. SET @OnlineUserCount = NULL
  6299. SELECT TOP 1
  6300. @Rid = Rid, @GameID = GameID, @OnlineUserCount = OnlineUserCount
  6301. FROM
  6302. @tmptable
  6303. WHERE
  6304. Rid > @OneRid
  6305. ORDER BY
  6306. Rid ASC
  6307. IF(@Rid IS NULL OR @GameID IS NULL OR @OnlineUserCount IS NULL)
  6308. BREAK
  6309. --分时段
  6310. SELECT
  6311. @Hour_0000 = CASE WHEN @Hour = 0 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6312. @Hour_0030 = CASE WHEN @Hour = 0 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6313. @Hour_0100 = CASE WHEN @Hour = 1 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6314. @Hour_0130 = CASE WHEN @Hour = 1 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6315. @Hour_0200 = CASE WHEN @Hour = 2 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6316. @Hour_0230 = CASE WHEN @Hour = 2 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6317. @Hour_0300 = CASE WHEN @Hour = 3 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6318. @Hour_0330 = CASE WHEN @Hour = 3 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6319. @Hour_0400 = CASE WHEN @Hour = 4 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6320. @Hour_0430 = CASE WHEN @Hour = 4 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6321. @Hour_0500 = CASE WHEN @Hour = 5 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6322. @Hour_0530 = CASE WHEN @Hour = 5 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6323. @Hour_0600 = CASE WHEN @Hour = 6 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6324. @Hour_0630 = CASE WHEN @Hour = 6 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6325. @Hour_0700 = CASE WHEN @Hour = 7 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6326. @Hour_0730 = CASE WHEN @Hour = 7 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6327. @Hour_0800 = CASE WHEN @Hour = 8 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6328. @Hour_0830 = CASE WHEN @Hour = 8 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6329. @Hour_0900 = CASE WHEN @Hour = 9 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6330. @Hour_0930 = CASE WHEN @Hour = 9 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6331. @Hour_1000 = CASE WHEN @Hour = 10 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6332. @Hour_1030 = CASE WHEN @Hour = 10 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6333. @Hour_1100 = CASE WHEN @Hour = 11 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6334. @Hour_1130 = CASE WHEN @Hour = 11 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6335. @Hour_1200 = CASE WHEN @Hour = 12 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6336. @Hour_1230 = CASE WHEN @Hour = 12 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6337. @Hour_1300 = CASE WHEN @Hour = 13 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6338. @Hour_1330 = CASE WHEN @Hour = 13 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6339. @Hour_1400 = CASE WHEN @Hour = 14 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6340. @Hour_1430 = CASE WHEN @Hour = 14 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6341. @Hour_1500 = CASE WHEN @Hour = 15 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6342. @Hour_1530 = CASE WHEN @Hour = 15 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6343. @Hour_1600 = CASE WHEN @Hour = 16 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6344. @Hour_1630 = CASE WHEN @Hour = 16 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6345. @Hour_1700 = CASE WHEN @Hour = 17 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6346. @Hour_1730 = CASE WHEN @Hour = 17 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6347. @Hour_1800 = CASE WHEN @Hour = 18 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6348. @Hour_1830 = CASE WHEN @Hour = 18 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6349. @Hour_1900 = CASE WHEN @Hour = 19 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6350. @Hour_1930 = CASE WHEN @Hour = 19 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6351. @Hour_2000 = CASE WHEN @Hour = 20 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6352. @Hour_2030 = CASE WHEN @Hour = 20 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6353. @Hour_2100 = CASE WHEN @Hour = 21 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6354. @Hour_2130 = CASE WHEN @Hour = 21 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6355. @Hour_2200 = CASE WHEN @Hour = 22 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6356. @Hour_2230 = CASE WHEN @Hour = 22 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6357. @Hour_2300 = CASE WHEN @Hour = 23 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6358. @Hour_2330 = CASE WHEN @Hour = 23 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END
  6359. --统计
  6360. UPDATE
  6361. [OnlineStatMin]
  6362. SET
  6363. Hour_0000 = Hour_0000 + @Hour_0000, Hour_0030 = Hour_0030 + @Hour_0030,
  6364. Hour_0100 = Hour_0100 + @Hour_0100, Hour_0130 = Hour_0130 + @Hour_0130,
  6365. Hour_0200 = Hour_0200 + @Hour_0200, Hour_0230 = Hour_0230 + @Hour_0230,
  6366. Hour_0300 = Hour_0300 + @Hour_0300, Hour_0330 = Hour_0330 + @Hour_0330,
  6367. Hour_0400 = Hour_0400 + @Hour_0400, Hour_0430 = Hour_0430 + @Hour_0430,
  6368. Hour_0500 = Hour_0500 + @Hour_0500, Hour_0530 = Hour_0530 + @Hour_0530,
  6369. Hour_0600 = Hour_0600 + @Hour_0600, Hour_0630 = Hour_0630 + @Hour_0630,
  6370. Hour_0700 = Hour_0700 + @Hour_0700, Hour_0730 = Hour_0730 + @Hour_0730,
  6371. Hour_0800 = Hour_0800 + @Hour_0800, Hour_0830 = Hour_0830 + @Hour_0830,
  6372. Hour_0900 = Hour_0900 + @Hour_0900, Hour_0930 = Hour_0930 + @Hour_0930,
  6373. Hour_1000 = Hour_1000 + @Hour_1000, Hour_1030 = Hour_1030 + @Hour_1030,
  6374. Hour_1100 = Hour_1100 + @Hour_1100, Hour_1130 = Hour_1130 + @Hour_1130,
  6375. Hour_1200 = Hour_1200 + @Hour_1200, Hour_1230 = Hour_1230 + @Hour_1230,
  6376. Hour_1300 = Hour_1300 + @Hour_1300, Hour_1330 = Hour_1330 + @Hour_1330,
  6377. Hour_1400 = Hour_1400 + @Hour_1400, Hour_1430 = Hour_1430 + @Hour_1430,
  6378. Hour_1500 = Hour_1500 + @Hour_1500, Hour_1530 = Hour_1530 + @Hour_1530,
  6379. Hour_1600 = Hour_1600 + @Hour_1600, Hour_1630 = Hour_1630 + @Hour_1630,
  6380. Hour_1700 = Hour_1700 + @Hour_1700, Hour_1730 = Hour_1730 + @Hour_1730,
  6381. Hour_1800 = Hour_1800 + @Hour_1800, Hour_1830 = Hour_1830 + @Hour_1830,
  6382. Hour_1900 = Hour_1900 + @Hour_1900, Hour_1930 = Hour_1930 + @Hour_1930,
  6383. Hour_2000 = Hour_2000 + @Hour_2000, Hour_2030 = Hour_2030 + @Hour_2030,
  6384. Hour_2100 = Hour_2100 + @Hour_2100, Hour_2130 = Hour_2130 + @Hour_2130,
  6385. Hour_2200 = Hour_2200 + @Hour_2200, Hour_2230 = Hour_2230 + @Hour_2230,
  6386. Hour_2300 = Hour_2300 + @Hour_2300, Hour_2330 = Hour_2330 + @Hour_2330
  6387. WHERE
  6388. DateFlag = @DateFlag AND GameID = @GameID
  6389. --今天还没有
  6390. IF(@@ROWCOUNT = 0)
  6391. BEGIN
  6392. INSERT INTO [OnlineStatMin]
  6393. (
  6394. DateFlag, GameID,
  6395. Hour_0000, Hour_0030, Hour_0100, Hour_0130, Hour_0200, Hour_0230,
  6396. Hour_0300, Hour_0330, Hour_0400, Hour_0430, Hour_0500, Hour_0530,
  6397. Hour_0600, Hour_0630, Hour_0700, Hour_0730, Hour_0800, Hour_0830,
  6398. Hour_0900, Hour_0930, Hour_1000, Hour_1030, Hour_1100, Hour_1130,
  6399. Hour_1200, Hour_1230, Hour_1300, Hour_1330, Hour_1400, Hour_1430,
  6400. Hour_1500, Hour_1530, Hour_1600, Hour_1630, Hour_1700, Hour_1730,
  6401. Hour_1800, Hour_1830, Hour_1900, Hour_1930, Hour_2000, Hour_2030,
  6402. Hour_2100, Hour_2130, Hour_2200, Hour_2230, Hour_2300, Hour_2330
  6403. )
  6404. VALUES
  6405. (
  6406. @DateFlag, @GameID,
  6407. @Hour_0000, @Hour_0030, @Hour_0100, @Hour_0130, @Hour_0200, @Hour_0230,
  6408. @Hour_0300, @Hour_0330, @Hour_0400, @Hour_0430, @Hour_0500, @Hour_0530,
  6409. @Hour_0600, @Hour_0630, @Hour_0700, @Hour_0730, @Hour_0800, @Hour_0830,
  6410. @Hour_0900, @Hour_0930, @Hour_1000, @Hour_1030, @Hour_1100, @Hour_1130,
  6411. @Hour_1200, @Hour_1230, @Hour_1300, @Hour_1330, @Hour_1400, @Hour_1430,
  6412. @Hour_1500, @Hour_1530, @Hour_1600, @Hour_1630, @Hour_1700, @Hour_1730,
  6413. @Hour_1800, @Hour_1830, @Hour_1900, @Hour_1930, @Hour_2000, @Hour_2030,
  6414. @Hour_2100, @Hour_2130, @Hour_2200, @Hour_2230, @Hour_2300, @Hour_2330
  6415. )
  6416. END
  6417. END
  6418. END
  6419. GO
  6420. /****** Object: StoredProcedure [dbo].[Game_OnlineUserChip_Stat] Script Date: 2024/1/12 11:01:14 ******/
  6421. SET ANSI_NULLS ON
  6422. GO
  6423. SET QUOTED_IDENTIFIER ON
  6424. GO
  6425. -- EXEC [Game_OnlineUserChip_Stat]
  6426. -- ==============================================
  6427. -- Author: wolf
  6428. -- Create Date: 2014-10-08
  6429. -- Mendor: wolf
  6430. -- Alter Date: 2016-08-16
  6431. -- Description: 同时在线人数统计
  6432. -- ==============================================
  6433. CREATE PROCEDURE [dbo].[Game_OnlineUserChip_Stat]
  6434. @CurrTime DATETIME --时间
  6435. AS
  6436. SET NOCOUNT ON
  6437. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  6438. SET XACT_ABORT ON
  6439. BEGIN
  6440. DECLARE @Rid INT --标识
  6441. DECLARE @OneRid INT --当前标识
  6442. DECLARE @GameID INT --游戏ID
  6443. DECLARE @OnlineUserCount INT --在线用户数
  6444. DECLARE @DateFlag SMALLDATETIME --日期标识
  6445. DECLARE @Hour INT --小时
  6446. DECLARE @Min INT --分钟
  6447. DECLARE @Hour_0000 INT -- 00:00
  6448. DECLARE @Hour_0030 INT -- 00:30
  6449. DECLARE @Hour_0100 INT -- 01:00
  6450. DECLARE @Hour_0130 INT -- 01:30
  6451. DECLARE @Hour_0200 INT -- 02:00
  6452. DECLARE @Hour_0230 INT -- 02:30
  6453. DECLARE @Hour_0300 INT -- 03:00
  6454. DECLARE @Hour_0330 INT -- 03:30
  6455. DECLARE @Hour_0400 INT -- 04:00
  6456. DECLARE @Hour_0430 INT -- 04:30
  6457. DECLARE @Hour_0500 INT -- 05:00
  6458. DECLARE @Hour_0530 INT -- 05:30
  6459. DECLARE @Hour_0600 INT -- 06:00
  6460. DECLARE @Hour_0630 INT -- 06:30
  6461. DECLARE @Hour_0700 INT -- 07:00
  6462. DECLARE @Hour_0730 INT -- 07:30
  6463. DECLARE @Hour_0800 INT -- 08:00
  6464. DECLARE @Hour_0830 INT -- 08:30
  6465. DECLARE @Hour_0900 INT -- 09:00
  6466. DECLARE @Hour_0930 INT -- 09:30
  6467. DECLARE @Hour_1000 INT -- 10:00
  6468. DECLARE @Hour_1030 INT -- 10:30
  6469. DECLARE @Hour_1100 INT -- 11:00
  6470. DECLARE @Hour_1130 INT -- 11:30
  6471. DECLARE @Hour_1200 INT -- 12:00
  6472. DECLARE @Hour_1230 INT -- 12:30
  6473. DECLARE @Hour_1300 INT -- 13:00
  6474. DECLARE @Hour_1330 INT -- 13:30
  6475. DECLARE @Hour_1400 INT -- 14:00
  6476. DECLARE @Hour_1430 INT -- 14:30
  6477. DECLARE @Hour_1500 INT -- 15:00
  6478. DECLARE @Hour_1530 INT -- 15:30
  6479. DECLARE @Hour_1600 INT -- 16:00
  6480. DECLARE @Hour_1630 INT -- 16:30
  6481. DECLARE @Hour_1700 INT -- 17:00
  6482. DECLARE @Hour_1730 INT -- 17:30
  6483. DECLARE @Hour_1800 INT -- 18:00
  6484. DECLARE @Hour_1830 INT -- 18:30
  6485. DECLARE @Hour_1900 INT -- 19:00
  6486. DECLARE @Hour_1930 INT -- 19:30
  6487. DECLARE @Hour_2000 INT -- 20:00
  6488. DECLARE @Hour_2030 INT -- 20:30
  6489. DECLARE @Hour_2100 INT -- 21:00
  6490. DECLARE @Hour_2130 INT -- 21:30
  6491. DECLARE @Hour_2200 INT -- 22:00
  6492. DECLARE @Hour_2230 INT -- 22:30
  6493. DECLARE @Hour_2300 INT -- 23:00
  6494. DECLARE @Hour_2330 INT -- 23:30
  6495. DECLARE @tmptable TABLE(
  6496. Rid INT IDENTITY, --自增
  6497. GameID INT NOT NULL, --游戏ID
  6498. OnlineUserCount INT NOT NULL --在线人数
  6499. )
  6500. SET @Hour = DATEPART(HOUR, @CurrTime)
  6501. SET @Min = DATEPART(MINUTE, @CurrTime)
  6502. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  6503. --初始化
  6504. INSERT INTO @tmptable
  6505. (
  6506. GameID, OnlineUserCount
  6507. )
  6508. SELECT
  6509. GameID, COUNT(UserID)
  6510. FROM
  6511. [t_onlineuser]
  6512. WHERE
  6513. IsChip = 1
  6514. GROUP BY
  6515. GameID
  6516. SET @Rid = 0
  6517. --遍历
  6518. WHILE(1=1)
  6519. BEGIN
  6520. SET @OneRid = @Rid
  6521. SET @Rid = NULL
  6522. SET @GameID = NULL
  6523. SET @OnlineUserCount = NULL
  6524. SELECT TOP 1
  6525. @Rid = Rid, @GameID = GameID, @OnlineUserCount = OnlineUserCount
  6526. FROM
  6527. @tmptable
  6528. WHERE
  6529. Rid > @OneRid
  6530. ORDER BY
  6531. Rid ASC
  6532. IF(@Rid IS NULL OR @GameID IS NULL OR @OnlineUserCount IS NULL)
  6533. BREAK
  6534. --分时段
  6535. SELECT
  6536. @Hour_0000 = CASE WHEN @Hour = 0 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6537. @Hour_0030 = CASE WHEN @Hour = 0 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6538. @Hour_0100 = CASE WHEN @Hour = 1 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6539. @Hour_0130 = CASE WHEN @Hour = 1 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6540. @Hour_0200 = CASE WHEN @Hour = 2 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6541. @Hour_0230 = CASE WHEN @Hour = 2 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6542. @Hour_0300 = CASE WHEN @Hour = 3 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6543. @Hour_0330 = CASE WHEN @Hour = 3 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6544. @Hour_0400 = CASE WHEN @Hour = 4 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6545. @Hour_0430 = CASE WHEN @Hour = 4 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6546. @Hour_0500 = CASE WHEN @Hour = 5 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6547. @Hour_0530 = CASE WHEN @Hour = 5 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6548. @Hour_0600 = CASE WHEN @Hour = 6 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6549. @Hour_0630 = CASE WHEN @Hour = 6 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6550. @Hour_0700 = CASE WHEN @Hour = 7 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6551. @Hour_0730 = CASE WHEN @Hour = 7 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6552. @Hour_0800 = CASE WHEN @Hour = 8 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6553. @Hour_0830 = CASE WHEN @Hour = 8 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6554. @Hour_0900 = CASE WHEN @Hour = 9 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6555. @Hour_0930 = CASE WHEN @Hour = 9 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6556. @Hour_1000 = CASE WHEN @Hour = 10 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6557. @Hour_1030 = CASE WHEN @Hour = 10 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6558. @Hour_1100 = CASE WHEN @Hour = 11 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6559. @Hour_1130 = CASE WHEN @Hour = 11 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6560. @Hour_1200 = CASE WHEN @Hour = 12 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6561. @Hour_1230 = CASE WHEN @Hour = 12 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6562. @Hour_1300 = CASE WHEN @Hour = 13 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6563. @Hour_1330 = CASE WHEN @Hour = 13 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6564. @Hour_1400 = CASE WHEN @Hour = 14 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6565. @Hour_1430 = CASE WHEN @Hour = 14 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6566. @Hour_1500 = CASE WHEN @Hour = 15 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6567. @Hour_1530 = CASE WHEN @Hour = 15 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6568. @Hour_1600 = CASE WHEN @Hour = 16 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6569. @Hour_1630 = CASE WHEN @Hour = 16 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6570. @Hour_1700 = CASE WHEN @Hour = 17 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6571. @Hour_1730 = CASE WHEN @Hour = 17 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6572. @Hour_1800 = CASE WHEN @Hour = 18 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6573. @Hour_1830 = CASE WHEN @Hour = 18 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6574. @Hour_1900 = CASE WHEN @Hour = 19 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6575. @Hour_1930 = CASE WHEN @Hour = 19 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6576. @Hour_2000 = CASE WHEN @Hour = 20 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6577. @Hour_2030 = CASE WHEN @Hour = 20 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6578. @Hour_2100 = CASE WHEN @Hour = 21 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6579. @Hour_2130 = CASE WHEN @Hour = 21 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6580. @Hour_2200 = CASE WHEN @Hour = 22 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6581. @Hour_2230 = CASE WHEN @Hour = 22 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
  6582. @Hour_2300 = CASE WHEN @Hour = 23 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
  6583. @Hour_2330 = CASE WHEN @Hour = 23 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END
  6584. --统计
  6585. UPDATE
  6586. [OnlineStatMinChip]
  6587. SET
  6588. Hour_0000 = Hour_0000 + @Hour_0000, Hour_0030 = Hour_0030 + @Hour_0030,
  6589. Hour_0100 = Hour_0100 + @Hour_0100, Hour_0130 = Hour_0130 + @Hour_0130,
  6590. Hour_0200 = Hour_0200 + @Hour_0200, Hour_0230 = Hour_0230 + @Hour_0230,
  6591. Hour_0300 = Hour_0300 + @Hour_0300, Hour_0330 = Hour_0330 + @Hour_0330,
  6592. Hour_0400 = Hour_0400 + @Hour_0400, Hour_0430 = Hour_0430 + @Hour_0430,
  6593. Hour_0500 = Hour_0500 + @Hour_0500, Hour_0530 = Hour_0530 + @Hour_0530,
  6594. Hour_0600 = Hour_0600 + @Hour_0600, Hour_0630 = Hour_0630 + @Hour_0630,
  6595. Hour_0700 = Hour_0700 + @Hour_0700, Hour_0730 = Hour_0730 + @Hour_0730,
  6596. Hour_0800 = Hour_0800 + @Hour_0800, Hour_0830 = Hour_0830 + @Hour_0830,
  6597. Hour_0900 = Hour_0900 + @Hour_0900, Hour_0930 = Hour_0930 + @Hour_0930,
  6598. Hour_1000 = Hour_1000 + @Hour_1000, Hour_1030 = Hour_1030 + @Hour_1030,
  6599. Hour_1100 = Hour_1100 + @Hour_1100, Hour_1130 = Hour_1130 + @Hour_1130,
  6600. Hour_1200 = Hour_1200 + @Hour_1200, Hour_1230 = Hour_1230 + @Hour_1230,
  6601. Hour_1300 = Hour_1300 + @Hour_1300, Hour_1330 = Hour_1330 + @Hour_1330,
  6602. Hour_1400 = Hour_1400 + @Hour_1400, Hour_1430 = Hour_1430 + @Hour_1430,
  6603. Hour_1500 = Hour_1500 + @Hour_1500, Hour_1530 = Hour_1530 + @Hour_1530,
  6604. Hour_1600 = Hour_1600 + @Hour_1600, Hour_1630 = Hour_1630 + @Hour_1630,
  6605. Hour_1700 = Hour_1700 + @Hour_1700, Hour_1730 = Hour_1730 + @Hour_1730,
  6606. Hour_1800 = Hour_1800 + @Hour_1800, Hour_1830 = Hour_1830 + @Hour_1830,
  6607. Hour_1900 = Hour_1900 + @Hour_1900, Hour_1930 = Hour_1930 + @Hour_1930,
  6608. Hour_2000 = Hour_2000 + @Hour_2000, Hour_2030 = Hour_2030 + @Hour_2030,
  6609. Hour_2100 = Hour_2100 + @Hour_2100, Hour_2130 = Hour_2130 + @Hour_2130,
  6610. Hour_2200 = Hour_2200 + @Hour_2200, Hour_2230 = Hour_2230 + @Hour_2230,
  6611. Hour_2300 = Hour_2300 + @Hour_2300, Hour_2330 = Hour_2330 + @Hour_2330
  6612. WHERE
  6613. DateFlag = @DateFlag AND GameID = @GameID
  6614. --今天还没有
  6615. IF(@@ROWCOUNT = 0)
  6616. BEGIN
  6617. INSERT INTO [OnlineStatMinChip]
  6618. (
  6619. DateFlag, GameID,
  6620. Hour_0000, Hour_0030, Hour_0100, Hour_0130, Hour_0200, Hour_0230,
  6621. Hour_0300, Hour_0330, Hour_0400, Hour_0430, Hour_0500, Hour_0530,
  6622. Hour_0600, Hour_0630, Hour_0700, Hour_0730, Hour_0800, Hour_0830,
  6623. Hour_0900, Hour_0930, Hour_1000, Hour_1030, Hour_1100, Hour_1130,
  6624. Hour_1200, Hour_1230, Hour_1300, Hour_1330, Hour_1400, Hour_1430,
  6625. Hour_1500, Hour_1530, Hour_1600, Hour_1630, Hour_1700, Hour_1730,
  6626. Hour_1800, Hour_1830, Hour_1900, Hour_1930, Hour_2000, Hour_2030,
  6627. Hour_2100, Hour_2130, Hour_2200, Hour_2230, Hour_2300, Hour_2330
  6628. )
  6629. VALUES
  6630. (
  6631. @DateFlag, @GameID,
  6632. @Hour_0000, @Hour_0030, @Hour_0100, @Hour_0130, @Hour_0200, @Hour_0230,
  6633. @Hour_0300, @Hour_0330, @Hour_0400, @Hour_0430, @Hour_0500, @Hour_0530,
  6634. @Hour_0600, @Hour_0630, @Hour_0700, @Hour_0730, @Hour_0800, @Hour_0830,
  6635. @Hour_0900, @Hour_0930, @Hour_1000, @Hour_1030, @Hour_1100, @Hour_1130,
  6636. @Hour_1200, @Hour_1230, @Hour_1300, @Hour_1330, @Hour_1400, @Hour_1430,
  6637. @Hour_1500, @Hour_1530, @Hour_1600, @Hour_1630, @Hour_1700, @Hour_1730,
  6638. @Hour_1800, @Hour_1830, @Hour_1900, @Hour_1930, @Hour_2000, @Hour_2030,
  6639. @Hour_2100, @Hour_2130, @Hour_2200, @Hour_2230, @Hour_2300, @Hour_2330
  6640. )
  6641. END
  6642. END
  6643. END
  6644. GO
  6645. /****** Object: StoredProcedure [dbo].[Game_Pay_Trigger] Script Date: 2024/1/12 11:01:14 ******/
  6646. SET ANSI_NULLS ON
  6647. GO
  6648. SET QUOTED_IDENTIFIER ON
  6649. GO
  6650. -- EXEC [Game_Pay_Trigger]
  6651. -- ==============================================
  6652. -- Author: wolf
  6653. -- Create Date: 2014-01-21
  6654. -- Mendor: wolf
  6655. -- Alter Date: 2016-11-07
  6656. -- Description: 充值触发事件
  6657. -- ==============================================
  6658. CREATE PROCEDURE [dbo].[Game_Pay_Trigger]
  6659. @UserID INT, --用户ID
  6660. @ProductID VARCHAR(32), --产品ID
  6661. @Price DECIMAL(18, 2), --价格
  6662. @IPAddress VARCHAR(16) --IP地址
  6663. AS
  6664. SET NOCOUNT ON
  6665. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  6666. SET XACT_ABORT ON
  6667. BEGIN
  6668. DECLARE @DateFlag SMALLDATETIME --日期标志
  6669. DECLARE @PayMoney DECIMAL(18, 2) --充值总额
  6670. DECLARE @CurrTime DATETIME --系统当前时间
  6671. SET @CurrTime = GETDATE()
  6672. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  6673. --充值额度
  6674. UPDATE [AllUser] SET PayMoney = PayMoney + @Price, @PayMoney = PayMoney WHERE UserID = @UserID
  6675. --测试账号
  6676. IF(@UserID IN (29465429, 20943465, 39344488, 15346563, 43953178, 93958855, 26301071, 57401563, 73203631, 45810851, 83181000, 87291356, 90234321, 6953582, 72466568, 3960708, 27512942, 26379928))
  6677. RETURN
  6678. --首充
  6679. IF(@PayMoney = 0)
  6680. BEGIN
  6681. --充值(首充))触发代理收益
  6682. EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = 0, @Tax = @Price, @IPAddress = @IPAddress, @TriggerType = 3
  6683. END
  6684. --统计当天充值额度
  6685. UPDATE [UserPayLog] SET RMBMoney = RMBMoney + @Price WHERE DateFlag = @DateFlag AND UserID = @UserID
  6686. --今天还没有统计
  6687. IF(@@ROWCOUNT = 0)
  6688. BEGIN
  6689. INSERT INTO [UserPayLog](UserID, RMBMoney, DateFlag) VALUES(@UserID, @Price, @DateFlag)
  6690. END
  6691. --触发代理收益
  6692. EXEC [WS_UserTeacher_AddProfit] @StudentID = @UserID, @Price = @Price
  6693. --用戶日常统计
  6694. --更新
  6695. UPDATE [UserDailyStat] SET PayMoney = PayMoney + @Price WHERE DateFlag = @DateFlag AND UserID = @UserID
  6696. IF(@@ROWCOUNT = 0)
  6697. BEGIN
  6698. INSERT INTO [UserDailyStat]
  6699. (
  6700. DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  6701. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  6702. )
  6703. VALUES
  6704. (
  6705. @DateFlag, @UserID, 0, 0, 0, '2021-01-01', '2021-01-01',
  6706. 0, @Price, 0, 0, 0
  6707. )
  6708. END
  6709. RETURN
  6710. END
  6711. GO
  6712. /****** Object: StoredProcedure [dbo].[Game_PayStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  6713. SET ANSI_NULLS ON
  6714. GO
  6715. SET QUOTED_IDENTIFIER ON
  6716. GO
  6717. -- EXEC [Game_PayStat_Stat]
  6718. -- ==============================================
  6719. -- Author: wolf
  6720. -- Create Date: 2016-11-17
  6721. -- Mendor: wolf
  6722. -- Alter Date: 2016-11-28
  6723. -- Description: 充值统计(每10分钟执行,供作业调用)
  6724. -- ==============================================
  6725. CREATE PROCEDURE [dbo].[Game_PayStat_Stat]
  6726. AS
  6727. SET NOCOUNT ON
  6728. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  6729. SET XACT_ABORT ON
  6730. BEGIN
  6731. DECLARE @CurrTime DATETIME --系统当前时间
  6732. DECLARE @BeginTime DATETIME --开始时间
  6733. DECLARE @EndTime DATETIME --截止时间
  6734. --创建临时表
  6735. DECLARE @tmptable TABLE(
  6736. UserID INT NOT NULL, --用户ID
  6737. Price DECIMAL(18, 2) NOT NULL --交易金额
  6738. )
  6739. SET @CurrTime = GETDATE()
  6740. --零点零分,特殊处理
  6741. IF(DATEPART(HOUR, @CurrTime) = 0 AND DATEPART(MINUTE, @CurrTime) <= 5)
  6742. BEGIN
  6743. SET @BeginTime = CONVERT(CHAR(10), @CurrTime - 1, 120)
  6744. SET @EndTime = CONVERT(CHAR(10), @CurrTime, 120)
  6745. END
  6746. --正常处理
  6747. ELSE
  6748. BEGIN
  6749. SET @BeginTime = CONVERT(CHAR(10), @CurrTime, 120)
  6750. SET @EndTime = @CurrTime
  6751. END
  6752. INSERT INTO @tmptable(
  6753. Price, UserID
  6754. )
  6755. SELECT
  6756. Price, UserID
  6757. FROM
  6758. [VerifySuccessLog]
  6759. WHERE
  6760. Crdate >= @BeginTime AND Crdate < @EndTime AND IsSandBox = 0
  6761. UNION ALL
  6762. SELECT
  6763. Price, UserID
  6764. FROM
  6765. [GoogleSuccessLog]
  6766. WHERE
  6767. Crdate >= @BeginTime AND Crdate < @EndTime
  6768. UNION ALL
  6769. SELECT
  6770. Price, UserID
  6771. FROM
  6772. [CroPay]
  6773. WHERE
  6774. Crdate >= @BeginTime AND Crdate < @EndTime
  6775. UNION ALL
  6776. SELECT
  6777. Price, UserID
  6778. FROM
  6779. [DingpeiPay]
  6780. WHERE
  6781. Crdate >= @BeginTime AND Crdate < @EndTime
  6782. UNION ALL
  6783. SELECT
  6784. Price, UserID
  6785. FROM
  6786. [CrushPay]
  6787. WHERE
  6788. Crdate >= @BeginTime AND Crdate < @EndTime
  6789. UNION ALL
  6790. SELECT
  6791. Price, UserID
  6792. FROM
  6793. [PayerMaxPay]
  6794. WHERE
  6795. Crdate >= @BeginTime AND Crdate < @EndTime
  6796. UNION ALL
  6797. SELECT
  6798. Price, UserID
  6799. FROM
  6800. [OPay]
  6801. WHERE
  6802. Crdate >= @BeginTime AND Crdate < @EndTime
  6803. UNION ALL
  6804. SELECT
  6805. Price, UserID
  6806. FROM
  6807. [huaweiPay]
  6808. WHERE
  6809. Crdate >= @BeginTime AND Crdate < @EndTime
  6810. UNION ALL
  6811. SELECT
  6812. Price, UserID
  6813. FROM
  6814. [ManualPay]
  6815. WHERE
  6816. Crdate >= @BeginTime AND Crdate < @EndTime
  6817. --添加到统计表
  6818. INSERT INTO [PayStat]
  6819. (
  6820. DateFlag, RMBMoney, UserCount
  6821. )
  6822. SELECT
  6823. @CurrTime, ISNULL(SUM(Price), 0), COUNT(DISTINCT UserID)
  6824. FROM
  6825. @tmptable
  6826. RETURN
  6827. END
  6828. GO
  6829. /****** Object: StoredProcedure [dbo].[Game_Rand_GetRnd] Script Date: 2024/1/12 11:01:14 ******/
  6830. SET ANSI_NULLS ON
  6831. GO
  6832. SET QUOTED_IDENTIFIER ON
  6833. GO
  6834. -- DECLARE @Rnd INT
  6835. -- EXEC [Game_Rand_GetRnd]
  6836. -- @Min = 1,
  6837. -- @Max = 10000,
  6838. -- @Rnd = @Rnd OUTPUT
  6839. -- SELECT @Rnd AS Rnd
  6840. -- ==============================================
  6841. -- Author: wolf
  6842. -- Create Date: 2013-07-30
  6843. -- Mendor: wolf
  6844. -- Alter Date: 2013-07-30
  6845. -- Description: 获取随机数
  6846. -- ==============================================
  6847. CREATE PROCEDURE [dbo].[Game_Rand_GetRnd]
  6848. @Min INT, --最小值
  6849. @Max INT, --最大值
  6850. @Rnd INT OUTPUT --随机数
  6851. AS
  6852. SET NOCOUNT ON
  6853. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  6854. SET XACT_ABORT ON
  6855. BEGIN
  6856. SET @Rnd = (@Min + (@Max - @Min + 1) * Rand(CHECKSUM(NEWID())))
  6857. RETURN
  6858. END
  6859. GO
  6860. /****** Object: StoredProcedure [dbo].[Game_Rank_Award] Script Date: 2024/1/12 11:01:14 ******/
  6861. SET ANSI_NULLS ON
  6862. GO
  6863. SET QUOTED_IDENTIFIER ON
  6864. GO
  6865. -- EXEC [Game_Rank_Award]
  6866. -- ==============================================
  6867. -- Author: wolf
  6868. -- Create Date: 2014-01-21
  6869. -- Mendor: wolf
  6870. -- Alter Date: 2016-11-07
  6871. -- Description: 排行榜奖励
  6872. -- ==============================================
  6873. CREATE PROCEDURE [dbo].[Game_Rank_Award]
  6874. AS
  6875. SET NOCOUNT ON
  6876. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  6877. SET XACT_ABORT ON
  6878. BEGIN
  6879. DECLARE @Rank INT --排名
  6880. DECLARE @OneRank INT --当前排名
  6881. DECLARE @UserID INT --用户ID
  6882. DECLARE @Content NVARCHAR(256) --内容
  6883. DECLARE @Tools VARCHAR(256) --道具
  6884. DECLARE @Crdate DATETIME --时间
  6885. DECLARE @SysMsgID INT
  6886. IF( DATEPART(WEEKDAY, GETDATE()) - 1 != 1 OR DATEPART(HOUR, GETDATE()) != 0 OR DATEPART(MINUTE, GETDATE()) >= 2)
  6887. RETURN
  6888. SET @Rank = 0
  6889. WHILE(1=1)
  6890. BEGIN
  6891. SET @OneRank = @Rank
  6892. SET @Rank = NULL
  6893. SET @UserID = NULL
  6894. SELECT TOP 1 @Rank = Rank, @UserID = UserID FROM [WinRank] WHERE Rank > @OneRank ORDER BY Rank ASC
  6895. IF(@Rank IS NULL)
  6896. BREAK
  6897. SELECT @Tools = Tools FROM [RankAward] WHERE RankType = 1 AND Rank = @Rank
  6898. IF(@@ROWCOUNT = 0)
  6899. CONTINUE
  6900. SET @Content = N'亲爱的用户,您上周总盈利金币数额进入排行榜第' + LTRIM(STR(@Rank)) + '名,获得了以下奖励,请注意查收附件。'
  6901. SET @Crdate = GETDATE()
  6902. --发送邮件
  6903. EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = N'排行榜奖励', @Content = @Content, @Status = 0,
  6904. @SourceName = '盈利榜', @Crdate = @Crdate, @Tools = @Tools, @SysMsgID = @SysMsgID OUTPUT
  6905. END
  6906. END
  6907. GO
  6908. /****** Object: StoredProcedure [dbo].[Game_Rank_Sort] Script Date: 2024/1/12 11:01:14 ******/
  6909. SET ANSI_NULLS ON
  6910. GO
  6911. SET QUOTED_IDENTIFIER ON
  6912. GO
  6913. -- EXEC [Game_Rank_Sort]
  6914. -- ==============================================
  6915. -- Author: wolf
  6916. -- Create Date: 2014-01-21
  6917. -- Mendor: wolf
  6918. -- Alter Date: 2016-11-07
  6919. -- Description: 排行榜
  6920. -- ==============================================
  6921. CREATE PROCEDURE [dbo].[Game_Rank_Sort]
  6922. @CurrTime DATETIME --系统当前时间(方便调试用)
  6923. AS
  6924. SET NOCOUNT ON
  6925. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  6926. SET XACT_ABORT ON
  6927. BEGIN
  6928. DECLARE @TimeStamp INT --时间戳
  6929. DECLARE @DateFlag SMALLDATETIME --日期标识
  6930. DECLARE @WeekFlag SMALLDATETIME --周开始
  6931. DECLARE @MonthFlag SMALLDATETIME --月开始
  6932. DECLARE @Rid INT --标识
  6933. DECLARE @OneRid INT --当前标识
  6934. DECLARE @UserID INT --用户ID
  6935. DECLARE @RankType INT --榜单类型
  6936. DECLARE @RankTypeName NVARCHAR(32) --榜单类型名称
  6937. DECLARE @Rank INT --排名
  6938. DECLARE @Content NVARCHAR(256) --内容
  6939. DECLARE @Tools VARCHAR(256) --道具
  6940. DECLARE @Crdate DATETIME --时间
  6941. DECLARE @SysMsgID INT
  6942. DECLARE @Rnd INT
  6943. DECLARE @RobotID INT --机器人ID
  6944. DECLARE @tmptable TABLE(
  6945. UserID INT NOT NULL, --用户ID
  6946. Amount BIGINT NOT NULL --赢得金币数
  6947. )
  6948. DECLARE @tmpHistory TABLE(
  6949. Rid INT IDENTITY NOT NULL, --标识
  6950. RankType INT NOT NULL, --榜单类型
  6951. Rank INT NOT NULL, --排名
  6952. UserID INT NOT NULL, --用户ID
  6953. Amount BIGINT NOT NULL, --赢得金币数
  6954. Crdate DATETIME NOT NULL, --时间
  6955. IsGift TINYINT NOT NULL --是否领取
  6956. )
  6957. SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
  6958. IF(DATEPART(MINUTE, @CurrTime) < 3)
  6959. BEGIN
  6960. SET @CurrTime = DATEADD(MINUTE, -3, @CurrTime)
  6961. END
  6962. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  6963. SET @MonthFlag = CONVERT(CHAR(8), @CurrTime, 120) + '01'
  6964. --本周日
  6965. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@CurrTime + @@DATEFIRST - 1) + 7, @CurrTime))
  6966. --本周日还没到,取上周日日期
  6967. IF(@WeekFlag > @DateFlag)
  6968. BEGIN
  6969. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@CurrTime + @@DATEFIRST - 1) - 0, @CurrTime))
  6970. END
  6971. --先去发放奖励
  6972. --EXEC [Game_Rank_Award]
  6973. --凌晨(00:10)处理
  6974. IF(DATEPART(HOUR, @CurrTime) = 0 AND DATEPART(MINUTE, @CurrTime) BETWEEN 5 AND 15)
  6975. BEGIN
  6976. --历史记录
  6977. --1=财富榜 2=每日赢金榜 8=魅力日榜 11=语聊房赠送礼物日榜 14=语聊房接收礼物日榜
  6978. --17=语聊房房间消耗钻石日榜 20=好友房赢局数日榜
  6979. INSERT INTO @tmpHistory
  6980. (
  6981. RankType, Rank, UserID, Amount, Crdate, IsGift
  6982. )
  6983. SELECT
  6984. RankType, Rank, UserID, Amount, Crdate, IsGift
  6985. FROM
  6986. [AllRank]
  6987. WHERE
  6988. RankType IN (1, 2, 8, 11, 14, 17, 20)
  6989. --清理上周榜 TODO 测试通过后删除
  6990. DELETE FROM [AllRank] WHERE RankType = 7
  6991. --6=语聊房本周榜 7=语聊房上周榜
  6992. INSERT INTO [AllRank]
  6993. (
  6994. RankType, Rank, UserID, Amount, Crdate, IsGift
  6995. )
  6996. SELECT
  6997. 7, Rank, UserID, Amount, Crdate, IsGift
  6998. FROM
  6999. [AllRank]
  7000. WHERE
  7001. RankType = 6
  7002. --周榜
  7003. IF(@DateFlag = @WeekFlag)
  7004. BEGIN
  7005. --清理上周榜
  7006. -- DELETE FROM [AllRank] WHERE RankType = 7
  7007. -- --6=语聊房本周榜 7=语聊房上周榜
  7008. -- INSERT INTO [AllRank]
  7009. -- (
  7010. -- RankType, Rank, UserID, Amount, Crdate, IsGift
  7011. -- )
  7012. -- SELECT
  7013. -- 7, Rank, UserID, Amount, Crdate, IsGift
  7014. -- FROM
  7015. -- [AllRank]
  7016. -- WHERE
  7017. -- RankType = 6
  7018. --历史记录
  7019. --3=每周赢金榜 7=语聊房上周榜 9=魅力周榜 12=语聊房赠送礼物周榜
  7020. --15=语聊房接收礼物周榜 18=语聊房房间消耗钻石周榜 21=好友房赢局数周榜
  7021. INSERT INTO @tmpHistory
  7022. (
  7023. RankType, Rank, UserID, Amount, Crdate, IsGift
  7024. )
  7025. SELECT
  7026. RankType, Rank, UserID, Amount, Crdate, IsGift
  7027. FROM
  7028. [AllRank]
  7029. WHERE
  7030. RankType IN (3, 7, 9, 12, 15, 18, 21)
  7031. END
  7032. --月榜
  7033. IF(@DateFlag = @MonthFlag)
  7034. BEGIN
  7035. --历史记录
  7036. --4=每月赢金榜 10=魅力月榜 13=语聊房赠送礼物月榜 16=语聊房接收礼物月榜
  7037. --19=语聊房房间消耗钻石月榜
  7038. INSERT INTO @tmpHistory
  7039. (
  7040. RankType, Rank, UserID, Amount, Crdate, IsGift
  7041. )
  7042. SELECT
  7043. RankType, Rank, UserID, Amount, Crdate, IsGift
  7044. FROM
  7045. [AllRank]
  7046. WHERE
  7047. RankType IN (4, 10, 13, 16, 19)
  7048. END
  7049. --记录到排行榜历史
  7050. INSERT INTO [RankHistory]
  7051. (
  7052. RankType, Rank, UserID, Amount, Crdate, IsGift
  7053. )
  7054. SELECT
  7055. RankType, Rank, UserID, Amount, Crdate, IsGift
  7056. FROM
  7057. @tmpHistory
  7058. SET @Rid = 0
  7059. --发放奖励
  7060. WHILE(1=1)
  7061. BEGIN
  7062. SET @OneRid = @Rid
  7063. SET @Rid = NULL
  7064. SET @RankType = NULL
  7065. SET @Rank = NULL
  7066. SET @UserID = NULL
  7067. SET @RankTypeName = NULL
  7068. SELECT TOP 1
  7069. @Rid = Rid, @RankType = RankType, @Rank = Rank, @UserID = UserID
  7070. FROM
  7071. @tmpHistory
  7072. WHERE
  7073. Rid > @OneRid
  7074. ORDER BY
  7075. Rid ASC
  7076. IF(@Rid IS NULL)
  7077. BREAK
  7078. SELECT
  7079. @RankTypeName = RankTypeName, @Tools = Tools
  7080. FROM
  7081. [RankAward]
  7082. WHERE
  7083. RankType = @RankType AND Rank = @Rank
  7084. IF(@@ROWCOUNT = 0)
  7085. CONTINUE
  7086. --SET @Content = N'亲爱的用户,您进入' + @RankTypeName + '排行榜第' + LTRIM(STR(@Rank)) + '名,获得了以下奖励,请注意查收附件。'
  7087. SET @Content = N'عزيزي المستخدم،لقد حصلت على المرتبة##0في تصنيف##1، وقد حصلت على الجوائز التالية، يرجى التحقق من المرفقات.'
  7088. SET @Content = REPLACE(@Content, '##0', @RankTypeName)
  7089. SET @Content = REPLACE(@Content, '##1', LTRIM(STR(@Rank)))
  7090. --发送邮件
  7091. EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = N'مكافآت المتصدرين', @Content = @Content, @Status = 0,
  7092. @SourceName = @RankTypeName, @Crdate = @TimeStamp, @Tools = @Tools, @SysMsgID = @SysMsgID OUTPUT
  7093. END
  7094. RETURN
  7095. END
  7096. --先清理数据(以下榜单先不删除:7=语聊房上周榜)
  7097. DELETE FROM [AllRank] WHERE RankType != 7
  7098. --1=财富榜
  7099. INSERT INTO [AllRank]
  7100. (
  7101. RankType, Rank, UserID, Amount, Crdate, IsGift
  7102. )
  7103. SELECT TOP 50
  7104. 1, ROW_NUMBER() OVER(ORDER BY Amount DESC) AS Rank, UserID, Amount, @CurrTime, 1
  7105. FROM
  7106. [Money]
  7107. --2=每日赚金榜
  7108. INSERT INTO @tmptable(UserID, Amount)
  7109. SELECT TOP 50
  7110. UserID, SUM(WinAmount)
  7111. FROM
  7112. [DailyBetStat]
  7113. WHERE
  7114. DateFlag >= @DateFlag AND WinAmount > 0
  7115. GROUP BY
  7116. UserID
  7117. ORDER BY
  7118. SUM(WinAmount) DESC
  7119. --不满50名,补充机器人
  7120. IF(@@ROWCOUNT < 50)
  7121. BEGIN
  7122. --随机1名机器人
  7123. SELECT TOP 1 @RobotID = UserID FROM [MachineUser] ORDER BY NEWID()
  7124. EXEC [Game_Rand_GetRnd] @Min = 5000, @Max = 20000, @Rnd = @Rnd OUTPUT
  7125. UPDATE @tmptable SET Amount = Amount + @Rnd WHERE UserID = @RobotID
  7126. IF(@@ROWCOUNT = 0)
  7127. BEGIN
  7128. INSERT INTO @tmptable(UserID, Amount) VALUES(@RobotID, @Rnd)
  7129. END
  7130. --统计每日流水
  7131. UPDATE
  7132. [DailyBetStat]
  7133. SET
  7134. WinAmount = WinAmount + @Rnd
  7135. WHERE
  7136. DateFlag = @DateFlag AND UserID = @RobotID AND GameID = 37 AND ServerName = 'baloot1'
  7137. --当天无流水
  7138. IF(@@ROWCOUNT = 0)
  7139. BEGIN
  7140. INSERT INTO [DailyBetStat]
  7141. (
  7142. DateFlag, UserID, GameID, ServerName, BetAmount, ResultAmount, WinAmount,
  7143. MoneySum, TaxAmount, TotalCount, WinCount, PlaySeconds
  7144. )
  7145. VALUES
  7146. (
  7147. @DateFlag, @RobotID, 37, 'baloot1', 0, 0, @Rnd,
  7148. 0, 0, 0, 0, 0
  7149. )
  7150. END
  7151. END
  7152. INSERT INTO [AllRank]
  7153. (
  7154. RankType, Rank, UserID, Amount, Crdate, IsGift
  7155. )
  7156. SELECT TOP 50
  7157. 2, ROW_NUMBER() OVER(ORDER BY Amount DESC) AS Rank, UserID, Amount, @DateFlag, 1
  7158. FROM
  7159. @tmptable
  7160. --3=每周赚金榜
  7161. INSERT INTO [AllRank]
  7162. (
  7163. RankType, Rank, UserID, Amount, Crdate, IsGift
  7164. )
  7165. SELECT TOP 50
  7166. 3, ROW_NUMBER() OVER(ORDER BY SUM(WinAmount) DESC) AS Rank, UserID, SUM(WinAmount), @WeekFlag, 1
  7167. FROM
  7168. [DailyBetStat]
  7169. WHERE
  7170. DateFlag >= @WeekFlag AND WinAmount > 0
  7171. GROUP BY
  7172. UserID
  7173. --4=每月赚金榜
  7174. INSERT INTO [AllRank]
  7175. (
  7176. RankType, Rank, UserID, Amount, Crdate, IsGift
  7177. )
  7178. SELECT TOP 50
  7179. 4, ROW_NUMBER() OVER(ORDER BY SUM(WinAmount) DESC) AS Rank, UserID, SUM(WinAmount), @MonthFlag, 1
  7180. FROM
  7181. [DailyBetStat]
  7182. WHERE
  7183. DateFlag >= @MonthFlag AND WinAmount > 0
  7184. GROUP BY
  7185. UserID
  7186. --5=徽章榜
  7187. INSERT INTO [AllRank]
  7188. (
  7189. RankType, Rank, UserID, Amount, Crdate, IsGift
  7190. )
  7191. SELECT TOP 50
  7192. 5, ROW_NUMBER() OVER(ORDER BY SUM(Points) DESC) AS Rank, UserID, SUM(Points), @CurrTime, 1
  7193. FROM
  7194. [UserBadge]
  7195. WHERE
  7196. Points > 0
  7197. GROUP BY
  7198. UserID
  7199. --6=语聊房本周榜
  7200. DELETE FROM [AllRank] WHERE RankType = 6
  7201. INSERT INTO [AllRank]
  7202. (
  7203. RankType, Rank, UserID, Amount, Crdate, IsGift
  7204. )
  7205. SELECT TOP 50
  7206. 6, ROW_NUMBER() OVER(ORDER BY SUM(Exps) DESC) AS Rank, RoomID, SUM(Exps), @DateFlag, 1
  7207. FROM
  7208. [AudioRoomExpLog]
  7209. WHERE
  7210. DateFlag >= @DateFlag AND Exps > 0
  7211. GROUP BY
  7212. RoomID
  7213. --8=魅力日榜
  7214. INSERT INTO [AllRank]
  7215. (
  7216. RankType, Rank, UserID, Amount, Crdate, IsGift
  7217. )
  7218. SELECT TOP 50
  7219. 8, ROW_NUMBER() OVER(ORDER BY SUM(Charm) DESC) AS Rank, UserID, SUM(Charm), @DateFlag, 1
  7220. FROM
  7221. [UserCharmHistory]
  7222. WHERE
  7223. DateFlag >= @DateFlag AND Charm > 0
  7224. GROUP BY
  7225. UserID
  7226. --9=魅力周榜
  7227. INSERT INTO [AllRank]
  7228. (
  7229. RankType, Rank, UserID, Amount, Crdate, IsGift
  7230. )
  7231. SELECT TOP 50
  7232. 9, ROW_NUMBER() OVER(ORDER BY SUM(Charm) DESC) AS Rank, UserID, SUM(Charm), @WeekFlag, 1
  7233. FROM
  7234. [UserCharmHistory]
  7235. WHERE
  7236. DateFlag >= @WeekFlag AND Charm > 0
  7237. GROUP BY
  7238. UserID
  7239. --10=魅力月榜
  7240. INSERT INTO [AllRank]
  7241. (
  7242. RankType, Rank, UserID, Amount, Crdate, IsGift
  7243. )
  7244. SELECT TOP 50
  7245. 10, ROW_NUMBER() OVER(ORDER BY SUM(Charm) DESC) AS Rank, UserID, SUM(Charm), @MonthFlag, 1
  7246. FROM
  7247. [UserCharmHistory]
  7248. WHERE
  7249. DateFlag >= @MonthFlag AND Charm > 0
  7250. GROUP BY
  7251. UserID
  7252. --11=语聊房赠送礼物日榜
  7253. INSERT INTO [AllRank]
  7254. (
  7255. RankType, Rank, UserID, Amount, Crdate, IsGift
  7256. )
  7257. SELECT TOP 50
  7258. 11, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Sender, SUM(DiamondAmount), @DateFlag, 1
  7259. FROM
  7260. [AudioRoomGiftHistory]
  7261. WHERE
  7262. Crdate >= @DateFlag
  7263. GROUP BY
  7264. Sender
  7265. --12=语聊房赠送礼物周榜
  7266. INSERT INTO [AllRank]
  7267. (
  7268. RankType, Rank, UserID, Amount, Crdate, IsGift
  7269. )
  7270. SELECT TOP 50
  7271. 12, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Sender, SUM(DiamondAmount), @WeekFlag, 1
  7272. FROM
  7273. [AudioRoomGiftHistory]
  7274. WHERE
  7275. Crdate >= @WeekFlag
  7276. GROUP BY
  7277. Sender
  7278. --13=语聊房赠送礼物月榜
  7279. INSERT INTO [AllRank]
  7280. (
  7281. RankType, Rank, UserID, Amount, Crdate, IsGift
  7282. )
  7283. SELECT TOP 50
  7284. 13, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Sender, SUM(DiamondAmount), @MonthFlag, 1
  7285. FROM
  7286. [AudioRoomGiftHistory]
  7287. WHERE
  7288. Crdate >= @MonthFlag
  7289. GROUP BY
  7290. Sender
  7291. --14=语聊房接收礼物日榜
  7292. INSERT INTO [AllRank]
  7293. (
  7294. RankType, Rank, UserID, Amount, Crdate, IsGift
  7295. )
  7296. SELECT TOP 50
  7297. 14, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Receiver, SUM(DiamondAmount), @DateFlag, 1
  7298. FROM
  7299. [AudioRoomGiftHistory]
  7300. WHERE
  7301. Crdate >= @DateFlag
  7302. GROUP BY
  7303. Receiver
  7304. --15=语聊房接收礼物周榜
  7305. INSERT INTO [AllRank]
  7306. (
  7307. RankType, Rank, UserID, Amount, Crdate, IsGift
  7308. )
  7309. SELECT TOP 50
  7310. 15, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Receiver, SUM(DiamondAmount), @WeekFlag, 1
  7311. FROM
  7312. [AudioRoomGiftHistory]
  7313. WHERE
  7314. Crdate >= @WeekFlag
  7315. GROUP BY
  7316. Receiver
  7317. --16=语聊房接收礼物月榜
  7318. INSERT INTO [AllRank]
  7319. (
  7320. RankType, Rank, UserID, Amount, Crdate, IsGift
  7321. )
  7322. SELECT TOP 50
  7323. 16, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Receiver, SUM(DiamondAmount), @MonthFlag, 1
  7324. FROM
  7325. [AudioRoomGiftHistory]
  7326. WHERE
  7327. Crdate >= @MonthFlag
  7328. GROUP BY
  7329. Receiver
  7330. --17=语聊房房间消耗钻石日榜
  7331. INSERT INTO [AllRank]
  7332. (
  7333. RankType, Rank, UserID, Amount, Crdate, IsGift
  7334. )
  7335. SELECT TOP 50
  7336. 17, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, RoomID, SUM(DiamondAmount), @DateFlag, 1
  7337. FROM
  7338. [AudioRoomGiftHistory]
  7339. WHERE
  7340. Crdate >= @DateFlag
  7341. GROUP BY
  7342. RoomID
  7343. --18=语聊房房间消耗钻石周榜
  7344. INSERT INTO [AllRank]
  7345. (
  7346. RankType, Rank, UserID, Amount, Crdate, IsGift
  7347. )
  7348. SELECT TOP 50
  7349. 18, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, RoomID, SUM(DiamondAmount), @WeekFlag, 1
  7350. FROM
  7351. [AudioRoomGiftHistory]
  7352. WHERE
  7353. Crdate >= @WeekFlag
  7354. GROUP BY
  7355. RoomID
  7356. --19=语聊房房间消耗钻石月榜
  7357. INSERT INTO [AllRank]
  7358. (
  7359. RankType, Rank, UserID, Amount, Crdate, IsGift
  7360. )
  7361. SELECT TOP 50
  7362. 19, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, RoomID, SUM(DiamondAmount), @MonthFlag, 1
  7363. FROM
  7364. [AudioRoomGiftHistory]
  7365. WHERE
  7366. Crdate >= @MonthFlag
  7367. GROUP BY
  7368. RoomID
  7369. --20=好友房赢局数日榜
  7370. INSERT INTO [AllRank]
  7371. (
  7372. RankType, Rank, UserID, Amount, Crdate, IsGift
  7373. )
  7374. SELECT TOP 50
  7375. 20, ROW_NUMBER() OVER(ORDER BY SUM(WinCount) DESC) AS Rank, UserID, SUM(WinCount), @DateFlag, 1
  7376. FROM
  7377. [DailyBetStat]
  7378. WHERE
  7379. DateFlag >= @DateFlag AND WinCount > 0 AND ServerName = 'PrivateRoom'
  7380. GROUP BY
  7381. UserID
  7382. ORDER BY
  7383. SUM(WinCount) DESC
  7384. --21=好友房赢局数周榜
  7385. INSERT INTO [AllRank]
  7386. (
  7387. RankType, Rank, UserID, Amount, Crdate, IsGift
  7388. )
  7389. SELECT TOP 50
  7390. 21, ROW_NUMBER() OVER(ORDER BY SUM(WinCount) DESC) AS Rank, UserID, SUM(WinCount), @WeekFlag, 1
  7391. FROM
  7392. [DailyBetStat]
  7393. WHERE
  7394. DateFlag >= @WeekFlag AND WinCount > 0 AND ServerName = 'PrivateRoom'
  7395. GROUP BY
  7396. UserID
  7397. ORDER BY
  7398. SUM(WinCount) DESC
  7399. RETURN
  7400. END
  7401. GO
  7402. /****** Object: StoredProcedure [dbo].[Game_RegStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  7403. SET ANSI_NULLS ON
  7404. GO
  7405. SET QUOTED_IDENTIFIER ON
  7406. GO
  7407. -- EXEC [Game_RegStat_Stat]
  7408. -- ==============================================
  7409. -- Author: wolf
  7410. -- Create Date: 2017-01-04
  7411. -- Mendor: wolf
  7412. -- Alter Date: 2017-01-04
  7413. -- Description: 注册统计(每10分钟执行,供作业调用)
  7414. -- ==============================================
  7415. CREATE PROCEDURE [dbo].[Game_RegStat_Stat]
  7416. AS
  7417. SET NOCOUNT ON
  7418. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  7419. SET XACT_ABORT ON
  7420. BEGIN
  7421. DECLARE @CurrTime DATETIME --系统当前时间
  7422. DECLARE @BeginTime DATETIME --开始时间
  7423. DECLARE @EndTime DATETIME --截止时间
  7424. DECLARE @TotalCount INT --注册总人数
  7425. SET @CurrTime = GETDATE()
  7426. --零点零分,特殊处理
  7427. IF(DATEPART(HOUR, @CurrTime) = 0 AND DATEPART(MINUTE, @CurrTime) <= 5)
  7428. BEGIN
  7429. SET @BeginTime = CONVERT(CHAR(10), @CurrTime - 1, 120)
  7430. SET @EndTime = CONVERT(CHAR(10), @CurrTime, 120)
  7431. END
  7432. --正常处理
  7433. ELSE
  7434. BEGIN
  7435. SET @BeginTime = CONVERT(CHAR(10), @CurrTime, 120)
  7436. SET @EndTime = @CurrTime
  7437. END
  7438. --注册总人数
  7439. SELECT
  7440. @TotalCount = COUNT(UserID)
  7441. FROM
  7442. [AllUser]
  7443. WHERE
  7444. RegTime < @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  7445. --添加到统计表
  7446. INSERT INTO [RegStat]
  7447. (
  7448. DateFlag, UserCount, TotalCount
  7449. )
  7450. SELECT
  7451. CONVERT(CHAR(16), @CurrTime, 120), COUNT(UserID), @TotalCount
  7452. FROM
  7453. [AllUser]
  7454. WHERE
  7455. RegTime >= @BeginTime AND RegTime < @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  7456. RETURN
  7457. END
  7458. GO
  7459. /****** Object: StoredProcedure [dbo].[Game_RetentionStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  7460. SET ANSI_NULLS ON
  7461. GO
  7462. SET QUOTED_IDENTIFIER ON
  7463. GO
  7464. -- EXEC [Game_RetentionStat_Stat]
  7465. -- =============================================
  7466. -- Author: wolf
  7467. -- Create Date: 2016-10-21
  7468. -- Mendor: wolf
  7469. -- Alter Date: 2016-10-21
  7470. -- Description: 留存统计
  7471. -- =============================================
  7472. CREATE PROCEDURE [dbo].[Game_RetentionStat_Stat]
  7473. AS
  7474. SET NOCOUNT ON
  7475. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  7476. SET XACT_ABORT ON
  7477. BEGIN
  7478. DECLARE @DateFlag SMALLDATETIME --日期标识
  7479. DECLARE @StatFlag SMALLDATETIME --统计日期标识
  7480. DECLARE @Item VARCHAR(256) --事项
  7481. DECLARE @LiveUsers_1 INT --次日留存
  7482. DECLARE @LiveUsers_3 INT --3日留存
  7483. DECLARE @LiveUsers_5 INT --5日留存
  7484. DECLARE @LiveUsers_7 INT --7日留存
  7485. DECLARE @LiveUsers_15 INT --15日留存
  7486. DECLARE @LiveUsers_30 INT --30日留存
  7487. DECLARE @Rid INT --标识
  7488. DECLARE @OneRid INT --当前标识
  7489. DECLARE @Days INT --天数
  7490. --表变量
  7491. DECLARE @tmptable TABLE(
  7492. UserID INT NOT NULL, --用户ID
  7493. PayItem VARCHAR(32) NOT NULL, --是否付费
  7494. UTMItem VARCHAR(32) NOT NULL --流量渠道
  7495. )
  7496. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  7497. SET @DateFlag = @DateFlag - 1
  7498. --初始化表变量
  7499. INSERT INTO @tmptable
  7500. (
  7501. UserID, PayItem, UTMItem
  7502. )
  7503. SELECT
  7504. UserID, CASE WHEN PayMoney > 0 THEN '付费用户' ELSE '' END, ''
  7505. FROM
  7506. [UserDailyStat]
  7507. WHERE
  7508. DateFlag = @DateFlag
  7509. --获取流量渠道
  7510. UPDATE
  7511. t
  7512. SET
  7513. t.UTMItem =
  7514. CASE
  7515. WHEN u.Source = N'apps.facebook.com' THEN 'Facebook 用户'
  7516. WHEN u.Source = N'google-play' THEN 'google-play 用户'
  7517. WHEN u.Source = N'GoogleAd' THEN 'GoogleAd 用户'
  7518. ELSE ''
  7519. END
  7520. FROM
  7521. @tmptable t INNER JOIN [UTM] u ON t.UserID = u.UserID
  7522. --生成全体用户留存数据
  7523. INSERT INTO [RetentionStat]
  7524. (
  7525. DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  7526. )
  7527. SELECT
  7528. @DateFlag, '全体用户', COUNT(UserID), 0, 0, 0, 0, 0, 0
  7529. FROM
  7530. @tmptable
  7531. --生成付费用户留存数据
  7532. INSERT INTO [RetentionStat]
  7533. (
  7534. DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  7535. )
  7536. SELECT
  7537. @DateFlag, PayItem, COUNT(UserID), 0, 0, 0, 0, 0, 0
  7538. FROM
  7539. @tmptable
  7540. WHERE
  7541. PayItem = '付费用户'
  7542. GROUP BY
  7543. PayItem
  7544. --生成登录用户留存数据
  7545. INSERT INTO [RetentionStat]
  7546. (
  7547. DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  7548. )
  7549. SELECT
  7550. @DateFlag, UTMItem, COUNT(UserID), 0, 0, 0, 0, 0, 0
  7551. FROM
  7552. @tmptable
  7553. WHERE
  7554. UTMItem IN ('Facebook 用户', 'google-play 用户', 'GoogleAd 用户')
  7555. GROUP BY
  7556. UTMItem
  7557. SET @Rid = 0
  7558. WHILE(1=1)
  7559. BEGIN
  7560. SET @OneRid = @Rid
  7561. SET @Rid = NULL
  7562. SET @StatFlag = NULL
  7563. SET @Item = NULL
  7564. SET @LiveUsers_1 = NULL
  7565. SET @LiveUsers_3 = NULL
  7566. SET @LiveUsers_5 = NULL
  7567. SET @LiveUsers_7 = NULL
  7568. SET @LiveUsers_15 = NULL
  7569. SET @LiveUsers_30 = NULL
  7570. SELECT TOP 1
  7571. @Rid = Rid, @StatFlag = DateFlag, @Item = Item
  7572. FROM
  7573. [RetentionStat]
  7574. WHERE
  7575. DateFlag >= @DateFlag - 30 AND Rid > @OneRid
  7576. ORDER BY
  7577. Rid ASC
  7578. IF(@Rid IS NULL)
  7579. BREAK
  7580. --计算天数
  7581. SET @Days = DATEDIFF(DAY, @StatFlag, @DateFlag) + 1
  7582. --全体用户
  7583. IF(@Item = '全体用户')
  7584. BEGIN
  7585. --次日
  7586. IF(@Days = 2)
  7587. BEGIN
  7588. --次日留存
  7589. SELECT
  7590. @LiveUsers_1 = COUNT(u.UserID)
  7591. FROM
  7592. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7593. WHERE
  7594. u.DateFlag = @StatFlag
  7595. END
  7596. --3日留存
  7597. ELSE IF(@Days = 3)
  7598. BEGIN
  7599. --3日留存
  7600. SELECT
  7601. @LiveUsers_3 = COUNT(u.UserID)
  7602. FROM
  7603. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7604. WHERE
  7605. u.DateFlag = @StatFlag
  7606. END
  7607. --5日留存
  7608. ELSE IF(@Days = 5)
  7609. BEGIN
  7610. --5日留存
  7611. SELECT
  7612. @LiveUsers_5 = COUNT(u.UserID)
  7613. FROM
  7614. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7615. WHERE
  7616. u.DateFlag = @StatFlag
  7617. END
  7618. --7日留存
  7619. ELSE IF(@Days = 7)
  7620. BEGIN
  7621. --7日留存
  7622. SELECT
  7623. @LiveUsers_7 = COUNT(u.UserID)
  7624. FROM
  7625. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7626. WHERE
  7627. u.DateFlag = @StatFlag
  7628. END
  7629. --15日留存
  7630. ELSE IF(@Days = 15)
  7631. BEGIN
  7632. --15日留存
  7633. SELECT
  7634. @LiveUsers_15 = COUNT(u.UserID)
  7635. FROM
  7636. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7637. WHERE
  7638. u.DateFlag = @StatFlag
  7639. END
  7640. --30日留存
  7641. ELSE IF(@Days = 30)
  7642. BEGIN
  7643. --30日留存
  7644. SELECT
  7645. @LiveUsers_30 = COUNT(u.UserID)
  7646. FROM
  7647. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7648. WHERE
  7649. u.DateFlag = @StatFlag
  7650. END
  7651. END
  7652. --其他事项
  7653. ELSE
  7654. BEGIN
  7655. --次日
  7656. IF(@Days = 2)
  7657. BEGIN
  7658. --次日留存
  7659. SELECT
  7660. @LiveUsers_1 = SUM(
  7661. CASE
  7662. WHEN t.PayItem = @Item THEN 1
  7663. WHEN t.UTMItem = @Item THEN 1
  7664. ELSE 0
  7665. END
  7666. )
  7667. FROM
  7668. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7669. WHERE
  7670. u.DateFlag = @StatFlag
  7671. END
  7672. --3日留存
  7673. ELSE IF(@Days = 3)
  7674. BEGIN
  7675. --3日留存
  7676. SELECT
  7677. @LiveUsers_3 = SUM(
  7678. CASE
  7679. WHEN t.PayItem = @Item THEN 1
  7680. WHEN t.UTMItem = @Item THEN 1
  7681. ELSE 0
  7682. END
  7683. )
  7684. FROM
  7685. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7686. WHERE
  7687. u.DateFlag = @StatFlag
  7688. END
  7689. --5日留存
  7690. ELSE IF(@Days = 5)
  7691. BEGIN
  7692. --5日留存
  7693. SELECT
  7694. @LiveUsers_5 = SUM(
  7695. CASE
  7696. WHEN t.PayItem = @Item THEN 1
  7697. WHEN t.UTMItem = @Item THEN 1
  7698. ELSE 0
  7699. END
  7700. )
  7701. FROM
  7702. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7703. WHERE
  7704. u.DateFlag = @StatFlag
  7705. END
  7706. --7日留存
  7707. ELSE IF(@Days = 7)
  7708. BEGIN
  7709. --7日留存
  7710. SELECT
  7711. @LiveUsers_7 = SUM(
  7712. CASE
  7713. WHEN t.PayItem = @Item THEN 1
  7714. WHEN t.UTMItem = @Item THEN 1
  7715. ELSE 0
  7716. END
  7717. )
  7718. FROM
  7719. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7720. WHERE
  7721. u.DateFlag = @StatFlag
  7722. END
  7723. --15日留存
  7724. ELSE IF(@Days = 15)
  7725. BEGIN
  7726. --15日留存
  7727. SELECT
  7728. @LiveUsers_15 = SUM(
  7729. CASE
  7730. WHEN t.PayItem = @Item THEN 1
  7731. WHEN t.UTMItem = @Item THEN 1
  7732. ELSE 0
  7733. END
  7734. )
  7735. FROM
  7736. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7737. WHERE
  7738. u.DateFlag = @StatFlag
  7739. END
  7740. --30日留存
  7741. ELSE IF(@Days = 30)
  7742. BEGIN
  7743. --30日留存
  7744. SELECT
  7745. @LiveUsers_30 = SUM(
  7746. CASE
  7747. WHEN t.PayItem = @Item THEN 1
  7748. WHEN t.UTMItem = @Item THEN 1
  7749. ELSE 0
  7750. END
  7751. )
  7752. FROM
  7753. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  7754. WHERE
  7755. u.DateFlag = @StatFlag
  7756. END
  7757. END
  7758. SET @LiveUsers_1 = ISNULL(@LiveUsers_1, 0)
  7759. SET @LiveUsers_3 = ISNULL(@LiveUsers_3, 0)
  7760. SET @LiveUsers_5 = ISNULL(@LiveUsers_5, 0)
  7761. SET @LiveUsers_7 = ISNULL(@LiveUsers_7, 0)
  7762. SET @LiveUsers_15 = ISNULL(@LiveUsers_15, 0)
  7763. SET @LiveUsers_30 = ISNULL(@LiveUsers_30, 0)
  7764. /*
  7765. PRINT '@Rid=' + LTRIM(STR(@Rid)) + ',@DateFlag=' + CONVERT(VARCHAR(16), @StatFlag, 120) + ',@Item=' + @Item + ',@Days=' + LTRIM(STR(@Days)) +
  7766. ',@LiveUsers_1=' + LTRIM(STR(@LiveUsers_1)) + ',@LiveUsers_3=' + LTRIM(STR(@LiveUsers_3)) + ',@LiveUsers_5=' + LTRIM(STR(@LiveUsers_5)) +
  7767. ',@LiveUsers_7=' + LTRIM(STR(@LiveUsers_7)) + ',@LiveUsers_15=' + LTRIM(STR(@LiveUsers_15)) + ',@LiveUsers_30=' + LTRIM(STR(@LiveUsers_30))
  7768. */
  7769. --更新统计
  7770. UPDATE
  7771. [RetentionStat]
  7772. SET
  7773. LiveUsers_1 = CASE WHEN @LiveUsers_1 > 0 THEN @LiveUsers_1 ELSE LiveUsers_1 END,
  7774. LiveUsers_3 = CASE WHEN @LiveUsers_3 > 0 THEN @LiveUsers_3 ELSE LiveUsers_3 END,
  7775. LiveUsers_5 = CASE WHEN @LiveUsers_5 > 0 THEN @LiveUsers_5 ELSE LiveUsers_5 END,
  7776. LiveUsers_7 = CASE WHEN @LiveUsers_7 > 0 THEN @LiveUsers_7 ELSE LiveUsers_7 END,
  7777. LiveUsers_15 = CASE WHEN @LiveUsers_15 > 0 THEN @LiveUsers_15 ELSE LiveUsers_15 END,
  7778. LiveUsers_30 = CASE WHEN @LiveUsers_30 > 0 THEN @LiveUsers_30 ELSE LiveUsers_30 END
  7779. WHERE
  7780. Rid = @Rid
  7781. END
  7782. RETURN
  7783. END
  7784. GO
  7785. /****** Object: StoredProcedure [dbo].[Game_Score_Cal] Script Date: 2024/1/12 11:01:14 ******/
  7786. SET ANSI_NULLS ON
  7787. GO
  7788. SET QUOTED_IDENTIFIER ON
  7789. GO
  7790. -- EXEC [Game_Score_Cal]
  7791. -- ==============================================
  7792. -- Author: wolf
  7793. -- Create Date: 2014-10-08
  7794. -- Mendor: wolf
  7795. -- Alter Date: 2016-08-16
  7796. -- Description: 游戏积分计算
  7797. -- ==============================================
  7798. CREATE PROCEDURE [dbo].[Game_Score_Cal]
  7799. @UserID INT, --用户ID
  7800. @GameID INT, --游戏ID
  7801. @ServerName NVARCHAR(32), --服务器名称
  7802. @BetAmount BIGINT --下注金额
  7803. AS
  7804. SET NOCOUNT ON
  7805. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  7806. SET XACT_ABORT ON
  7807. BEGIN
  7808. DECLARE @DateFlag SMALLDATETIME --日期标识
  7809. DECLARE @Score BIGINT --积分
  7810. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  7811. --房间名称
  7812. IF(@GameID IN (86, 70, 11, 12, 13))
  7813. BEGIN
  7814. SELECT
  7815. @Score = Score
  7816. FROM
  7817. [ScoreRankConfig]
  7818. WHERE
  7819. GameID = @GameID AND RoomName = @ServerName
  7820. END
  7821. --投注额
  7822. ELSE
  7823. BEGIN
  7824. --获取下注额区间
  7825. SELECT TOP 1
  7826. @Score = Score
  7827. FROM
  7828. [ScoreRankConfig]
  7829. WHERE
  7830. GameID = @GameID AND RoomName >= ABS(@BetAmount)
  7831. ORDER BY
  7832. RoomName ASC
  7833. END
  7834. --无效积分
  7835. IF(@Score IS NULL OR @Score <= 0)
  7836. RETURN
  7837. --更新用户积分
  7838. UPDATE
  7839. [UserScore]
  7840. SET
  7841. Score = Score + @Score
  7842. WHERE
  7843. DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID
  7844. IF(@@ROWCOUNT = 0)
  7845. BEGIN
  7846. INSERT INTO [UserScore]
  7847. (
  7848. DateFlag, UserID, GameID, Score
  7849. )
  7850. VALUES
  7851. (
  7852. @DateFlag, @UserID, @GameID, @Score
  7853. )
  7854. END
  7855. RETURN
  7856. END
  7857. GO
  7858. /****** Object: StoredProcedure [dbo].[Game_SettleVideo_Trigger] Script Date: 2024/1/12 11:01:14 ******/
  7859. SET ANSI_NULLS ON
  7860. GO
  7861. SET QUOTED_IDENTIFIER ON
  7862. GO
  7863. -- EXEC [Game_SettleVideo_Trigger]
  7864. -- ==============================================
  7865. -- Author: wolf
  7866. -- Create Date: 2014-08-29
  7867. -- Mendor: wolf
  7868. -- Alter Date: 2015-08-10
  7869. -- Description: 游戏返还视频触发
  7870. -- ==============================================
  7871. CREATE PROCEDURE [dbo].[Game_SettleVideo_Trigger]
  7872. @UserID INT, --用户ID
  7873. @GameID INT, --游戏ID
  7874. @PreAmount BIGINT, --操作前金额
  7875. @Balance BIGINT, --余额
  7876. @Type INT --下注或结算信息(保留)
  7877. AS
  7878. SET NOCOUNT ON
  7879. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  7880. SET XACT_ABORT ON
  7881. BEGIN
  7882. DECLARE @SettleID INT --结算ID
  7883. DECLARE @MaxTimes TINYINT --最大返还次数
  7884. DECLARE @MaxAmount BIGINT --最大返还金币
  7885. DECLARE @SettleRate SMALLINT --返还比率
  7886. DECLARE @CarryAmount BIGINT --携带金币
  7887. DECLARE @ResultAmount BIGINT --输赢金币
  7888. DECLARE @Crdate DATETIME --时间
  7889. --查询最近1次
  7890. SELECT TOP 1
  7891. @SettleID = SettleID, @CarryAmount = CarryAmount, @Crdate = Crdate
  7892. FROM
  7893. [UserGameSettleVideo]
  7894. WHERE
  7895. Crdate IN ('2021-01-01', '2021-01-02') AND UserID = @UserID AND GameID = @GameID
  7896. ORDER BY
  7897. SettleID DESC
  7898. --第1次记录下注, 1101=remi 特殊处理,没有结算
  7899. IF(@SettleID IS NULL AND @Type % 100 = 1)
  7900. BEGIN
  7901. INSERT INTO [UserGameSettleVideo]
  7902. (
  7903. UserID, GameID, CarryAmount, StillAmount, ResultAmount, MaxTimes, SettleTimes, MaxAmount, SettleAmount, Crdate
  7904. )
  7905. VALUES
  7906. (
  7907. @UserID, @GameID, @PreAmount, 0, 0, 0, 0, 0, 0, CASE WHEN @Type IN (1101) THEN '2021-01-02' ELSE '2021-01-01' END
  7908. )
  7909. RETURN
  7910. END
  7911. --没有数据
  7912. IF(@SettleID IS NULL)
  7913. RETURN
  7914. --游戏结算(龙虎特殊处理)、球球、多米诺
  7915. IF((@Type % 100 = 2 AND @Type NOT IN (8802, 7002, 8602)) OR @Type IN (8803, 8813, 8823, 7000, 8600))
  7916. BEGIN
  7917. --更新
  7918. UPDATE [UserGameSettleVideo] SET Crdate = '2021-01-02' WHERE SettleID = @SettleID
  7919. RETURN
  7920. END
  7921. --退出游戏
  7922. IF(@Type % 100 = 99)
  7923. BEGIN
  7924. --输赢金币
  7925. SET @ResultAmount = @CarryAmount - @Balance
  7926. --还没有结算,就退出房间视为无效
  7927. IF(@Crdate != '2021-01-02')
  7928. BEGIN
  7929. UPDATE
  7930. [UserGameSettleVideo]
  7931. SET
  7932. StillAmount = @Balance, ResultAmount = -@ResultAmount, Crdate = GETDATE()
  7933. WHERE
  7934. SettleID = @SettleID
  7935. --删除
  7936. DELETE FROM [UserGameSettleVideo] WHERE SettleID = @SettleID
  7937. RETURN
  7938. END
  7939. SET @MaxTimes = 0
  7940. SET @MaxAmount = 0
  7941. --输,才有返还信息
  7942. IF(@ResultAmount > 0)
  7943. BEGIN
  7944. --获取返还信息
  7945. SELECT TOP 1
  7946. @MaxTimes = MaxTimes, @MaxAmount = @ResultAmount * (MaxRate / 100.00)
  7947. FROM
  7948. [GameSettleVideo]
  7949. WHERE
  7950. GameID IN (0, @GameID) AND LoseAmount >= @ResultAmount
  7951. ORDER BY
  7952. GameID DESC, LoseAmount ASC
  7953. --更新
  7954. UPDATE
  7955. [UserGameSettleVideo]
  7956. SET
  7957. StillAmount = @Balance, ResultAmount = -@ResultAmount,
  7958. MaxTimes = @MaxTimes, MaxAmount = @MaxAmount, Crdate = GETDATE()
  7959. WHERE
  7960. SettleID = @SettleID
  7961. END
  7962. --赢,需要清理
  7963. ELSE
  7964. BEGIN
  7965. --删除
  7966. DELETE FROM [UserGameSettleVideo] WHERE SettleID = @SettleID
  7967. END
  7968. END
  7969. RETURN
  7970. END
  7971. GO
  7972. /****** Object: StoredProcedure [dbo].[Game_Slot_Trigger] Script Date: 2024/1/12 11:01:14 ******/
  7973. SET ANSI_NULLS ON
  7974. GO
  7975. SET QUOTED_IDENTIFIER ON
  7976. GO
  7977. -- EXEC [Game_Slot_Trigger]
  7978. -- ==============================================
  7979. -- Author: wolf
  7980. -- Create Date: 2014-10-08
  7981. -- Mendor: wolf
  7982. -- Alter Date: 2016-08-16
  7983. -- Description: Slot游戏统计
  7984. -- ==============================================
  7985. CREATE PROCEDURE [dbo].[Game_Slot_Trigger]
  7986. @UserID INT, --用户ID
  7987. @GameID INT, --游戏ID
  7988. @BetAmount BIGINT, --投注额
  7989. @ResultAmount BIGINT, --返还额
  7990. @WinAmount BIGINT, --输赢额
  7991. @Tax BIGINT, --台费
  7992. @InvestAmount BIGINT --下注额 取余操作 3=游戏免费 4=广告免费
  7993. AS
  7994. SET NOCOUNT ON
  7995. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  7996. SET XACT_ABORT ON
  7997. BEGIN
  7998. DECLARE @DateFlag SMALLDATETIME --日期标识
  7999. DECLARE @Msg NVARCHAR(4000) --操作描述
  8000. SET @DateFlag = CONVERT(CHAR(11), GETDATE(), 120) + LTRIM(STR(DATEPART(HOUR, GETDATE()))) + ':00'
  8001. --非免费类型
  8002. IF(@InvestAmount = 0)
  8003. BEGIN
  8004. --获取下注额区间
  8005. SELECT TOP 1
  8006. @InvestAmount = InvestAmount
  8007. FROM
  8008. [SlotStatConfig]
  8009. WHERE
  8010. GameID = @GameID AND InvestAmount >= ABS(@BetAmount)
  8011. ORDER BY
  8012. InvestAmount ASC
  8013. --没有配置数据
  8014. IF(@@ROWCOUNT = 0)
  8015. BEGIN
  8016. SET @Msg = N'Slot Stat 缺少系统配置, @UserID=' + LTRIM(STR(@UserID)) + ',@GameID=' + LTRIM(STR(@GameID)) +
  8017. ',@BetAmount=' + CAST(@BetAmount AS VARCHAR(32)) + ',@ResultAmount=' + CAST(@ResultAmount AS VARCHAR(32)) +
  8018. ',@WinAmount=' + CAST(@WinAmount AS VARCHAR(32)) + ',@Tax=' + CAST(@Tax AS VARCHAR(32))
  8019. --添加日志
  8020. EXEC [Game_Log_Add] @OpUserID = '-1', @OpUserName = 'System', @Msg = @Msg, @IPAddress = '127.0.0.1'
  8021. RETURN
  8022. END
  8023. END
  8024. --更新数据
  8025. UPDATE
  8026. [SlotStat]
  8027. SET
  8028. BetAmount = BetAmount + @BetAmount, BetTimes = BetTimes + 1, ResultAmount = ResultAmount + @ResultAmount,
  8029. WinAmount = WinAmount + @WinAmount, WinTimes = WinTimes + CASE WHEN @WinAmount > 0 THEN 1 ELSE 0 END,
  8030. Tax = Tax + @Tax,
  8031. MaxResultAmount = CASE
  8032. WHEN @ResultAmount > MaxResultAmount THEN @ResultAmount
  8033. ELSE MaxResultAmount
  8034. END
  8035. WHERE
  8036. DateFlag = @DateFlag AND GameID = @GameID AND InvestAmount = @InvestAmount
  8037. --添加数据
  8038. IF(@@ROWCOUNT = 0)
  8039. BEGIN
  8040. INSERT INTO [SlotStat]
  8041. (
  8042. DateFlag, GameID, InvestAmount, BetAmount, BetTimes,
  8043. ResultAmount, WinTimes, WinAmount, Tax, MaxResultAmount
  8044. )
  8045. VALUES
  8046. (
  8047. @DateFlag, @GameID, @InvestAmount, @BetAmount, 1,
  8048. @ResultAmount, CASE WHEN @WinAmount > 0 THEN 1 ELSE 0 END, @WinAmount, @Tax, @ResultAmount
  8049. )
  8050. END
  8051. RETURN
  8052. END
  8053. GO
  8054. /****** Object: StoredProcedure [dbo].[Game_SlotChip_Trigger] Script Date: 2024/1/12 11:01:14 ******/
  8055. SET ANSI_NULLS ON
  8056. GO
  8057. SET QUOTED_IDENTIFIER ON
  8058. GO
  8059. -- EXEC [Game_SlotChip_Trigger]
  8060. -- ==============================================
  8061. -- Author: wolf
  8062. -- Create Date: 2014-10-08
  8063. -- Mendor: wolf
  8064. -- Alter Date: 2016-08-16
  8065. -- Description: Slot游戏统计
  8066. -- ==============================================
  8067. CREATE PROCEDURE [dbo].[Game_SlotChip_Trigger]
  8068. @UserID INT, --用户ID
  8069. @GameID INT, --游戏ID
  8070. @BetAmount BIGINT, --投注额
  8071. @ResultAmount BIGINT, --返还额
  8072. @WinAmount BIGINT, --输赢额
  8073. @Tax BIGINT, --台费
  8074. @InvestAmount BIGINT --下注额 取余操作 3=游戏免费 4=广告免费
  8075. AS
  8076. SET NOCOUNT ON
  8077. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  8078. SET XACT_ABORT ON
  8079. BEGIN
  8080. DECLARE @DateFlag SMALLDATETIME --日期标识
  8081. DECLARE @Msg NVARCHAR(4000) --操作描述
  8082. SET @DateFlag = CONVERT(CHAR(11), GETDATE(), 120) + LTRIM(STR(DATEPART(HOUR, GETDATE()))) + ':00'
  8083. --非免费类型
  8084. IF(@InvestAmount = 0)
  8085. BEGIN
  8086. --获取下注额区间
  8087. SELECT TOP 1
  8088. @InvestAmount = InvestAmount
  8089. FROM
  8090. [SlotStatConfig]
  8091. WHERE
  8092. GameID = @GameID AND InvestAmount >= ABS(@BetAmount)
  8093. ORDER BY
  8094. InvestAmount ASC
  8095. --没有配置数据
  8096. IF(@@ROWCOUNT = 0)
  8097. BEGIN
  8098. SET @Msg = N'Slot Chip Stat 缺少系统配置, @UserID=' + LTRIM(STR(@UserID)) + ',@GameID=' + LTRIM(STR(@GameID)) +
  8099. ',@BetAmount=' + CAST(@BetAmount AS VARCHAR(32)) + ',@ResultAmount=' + CAST(@ResultAmount AS VARCHAR(32)) +
  8100. ',@WinAmount=' + CAST(@WinAmount AS VARCHAR(32)) + ',@Tax=' + CAST(@Tax AS VARCHAR(32))
  8101. --添加日志
  8102. EXEC [Game_Log_Add] @OpUserID = '-1', @OpUserName = 'system', @Msg = @Msg, @IPAddress = '127.0.0.1'
  8103. RETURN
  8104. END
  8105. END
  8106. --更新数据
  8107. UPDATE
  8108. [SlotChipStat]
  8109. SET
  8110. BetAmount = BetAmount + @BetAmount, BetTimes = BetTimes + 1, ResultAmount = ResultAmount + @ResultAmount,
  8111. WinAmount = WinAmount + @WinAmount, WinTimes = WinTimes + CASE WHEN @WinAmount > 0 THEN 1 ELSE 0 END,
  8112. Tax = Tax + @Tax,
  8113. MaxResultAmount = CASE
  8114. WHEN @ResultAmount > MaxResultAmount THEN @ResultAmount
  8115. ELSE MaxResultAmount
  8116. END
  8117. WHERE
  8118. DateFlag = @DateFlag AND GameID = @GameID AND InvestAmount = @InvestAmount
  8119. --添加数据
  8120. IF(@@ROWCOUNT = 0)
  8121. BEGIN
  8122. INSERT INTO [SlotChipStat]
  8123. (
  8124. DateFlag, GameID, InvestAmount, BetAmount, BetTimes,
  8125. ResultAmount, WinTimes, WinAmount, Tax, MaxResultAmount
  8126. )
  8127. VALUES
  8128. (
  8129. @DateFlag, @GameID, @InvestAmount, @BetAmount, 1,
  8130. @ResultAmount, CASE WHEN @WinAmount > 0 THEN 1 ELSE 0 END, @WinAmount, @Tax, @ResultAmount
  8131. )
  8132. END
  8133. RETURN
  8134. END
  8135. GO
  8136. /****** Object: StoredProcedure [dbo].[Game_SNGMatchReport_Stat] Script Date: 2024/1/12 11:01:14 ******/
  8137. SET ANSI_NULLS ON
  8138. GO
  8139. SET QUOTED_IDENTIFIER ON
  8140. GO
  8141. -- EXEC [Game_SNGMatchReport_Stat]
  8142. -- ==============================================
  8143. -- Author: wolf
  8144. -- Create Date: 2014-01-21
  8145. -- Mendor: wolf
  8146. -- Alter Date: 2016-11-07
  8147. -- Description: 挑战赛统计
  8148. -- ==============================================
  8149. CREATE PROCEDURE [dbo].[Game_SNGMatchReport_Stat]
  8150. @CurrTime DATETIME --系统当前时间
  8151. AS
  8152. SET NOCOUNT ON
  8153. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  8154. SET XACT_ABORT ON
  8155. BEGIN
  8156. DECLARE @DateFlag SMALLDATETIME --日期标识
  8157. DECLARE @BeginTime DATETIME --开始时间
  8158. DECLARE @EndTime DATETIME --截止时间
  8159. DECLARE @Times INT --报名次数
  8160. DECLARE @Users INT --报名人数(去重)
  8161. DECLARE @Rid INT --标识
  8162. DECLARE @OneRid INT --当前标识
  8163. DECLARE @Amount BIGINT --金额
  8164. DECLARE @TotalAmount BIGINT --总金额
  8165. DECLARE @SignTotalAmount BIGINT --报名费总额
  8166. DECLARE @AwardTotalAmount BIGINT --奖金总额
  8167. DECLARE @ReturnTotalAmount BIGINT --退还总额
  8168. DECLARE @Count INT --计算器
  8169. DECLARE @tmptable TABLE(
  8170. UserID INT NOT NULL, --用户ID
  8171. Amount BIGINT NOT NULL, --金币
  8172. LogType INT NOT NULL --日志类型
  8173. )
  8174. DECLARE @tmpSignUp TABLE(
  8175. Rid INT IDENTITY, --标识
  8176. Amount BIGINT NOT NULL, --金币
  8177. TotalAmount BIGINT NOT NULL, --总金额
  8178. Users INT NOT NULL, --用户数
  8179. Times INT NOT NULL --次数
  8180. )
  8181. SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
  8182. SET @BeginTime = @DateFlag
  8183. SET @EndTime = CONVERT(CHAR(11), @DateFlag, 120) + '23:59:59'
  8184. --65=挑战赛报名 66=挑战赛退赛 67=挑战赛奖金
  8185. INSERT INTO @tmptable
  8186. (
  8187. UserID, Amount, LogType
  8188. )
  8189. SELECT
  8190. UserID, ModifyAmount, LogType
  8191. FROM
  8192. [MoneyLog_bak]
  8193. WHERE
  8194. Crdate BETWEEN @BeginTime AND @EndTime AND LogType IN (65, 66, 67)
  8195. IF(@@ROWCOUNT = 0)
  8196. RETURN
  8197. --65=挑战赛报名 66=挑战赛退赛 67=挑战赛奖金
  8198. SELECT
  8199. @SignTotalAmount = SUM(CASE WHEN LogType = 65 THEN Amount ELSE 0 END),
  8200. @ReturnTotalAmount = SUM(CASE WHEN LogType = 66 THEN Amount ELSE 0 END),
  8201. @AwardTotalAmount = SUM(CASE WHEN LogType = 67 THEN Amount ELSE 0 END)
  8202. FROM
  8203. @tmptable
  8204. --登录用户数及去重
  8205. SELECT
  8206. @Times = COUNT(UserID), @Users = COUNT(DISTINCT UserID)
  8207. FROM
  8208. @tmptable
  8209. INSERT INTO [SNGMatchReport]
  8210. (
  8211. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  8212. )
  8213. SELECT @DateFlag, N'报名次数', @Times, 1, 1, @CurrTime
  8214. UNION ALL
  8215. SELECT @DateFlag, N'报名人数(去重)', @Users, 1, 2, @CurrTime
  8216. SET @SignTotalAmount = ISNULL(@SignTotalAmount, 0)
  8217. SET @AwardTotalAmount = ISNULL(@AwardTotalAmount, 0)
  8218. SET @ReturnTotalAmount = ISNULL(@ReturnTotalAmount, 0)
  8219. INSERT INTO [SNGMatchReport]
  8220. (
  8221. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  8222. )
  8223. SELECT @DateFlag, N'挑战赛报名', @SignTotalAmount, 2, 1, @CurrTime
  8224. UNION ALL
  8225. SELECT @DateFlag, N'挑战赛退赛', @ReturnTotalAmount, 2, 2, @CurrTime
  8226. UNION ALL
  8227. SELECT @DateFlag, N'挑战赛有效报名', @SignTotalAmount + @ReturnTotalAmount, 2, 3, @CurrTime
  8228. UNION ALL
  8229. SELECT @DateFlag, N'挑战赛奖金', @AwardTotalAmount, 2, 4, @CurrTime
  8230. UNION ALL
  8231. SELECT @DateFlag, N'挑战赛收益', @SignTotalAmount + @ReturnTotalAmount + @AwardTotalAmount, 2, 5, @CurrTime
  8232. --统计各项
  8233. INSERT INTO @tmpSignUp(Amount, TotalAmount, Times, Users)
  8234. SELECT
  8235. Amount, SUM(Amount), COUNT(UserID), COUNT(DISTINCT UserID)
  8236. FROM
  8237. @tmptable
  8238. WHERE
  8239. LogType = 65
  8240. GROUP BY
  8241. Amount
  8242. ORDER BY
  8243. SUM(Amount) ASC
  8244. SET @Rid = 0
  8245. SET @Count = 11
  8246. WHILE(1=1)
  8247. BEGIN
  8248. SET @OneRid = @Rid
  8249. SET @Rid = NULL
  8250. SET @Amount = NULL
  8251. SET @TotalAmount = NULL
  8252. SET @Times = NULL
  8253. SET @Users = NULL
  8254. SELECT TOP 1
  8255. @Rid = Rid, @Amount = Amount, @TotalAmount = TotalAmount, @Times = Times, @Users = Users
  8256. FROM
  8257. @tmpSignUp
  8258. WHERE
  8259. Rid > @OneRid
  8260. ORDER BY
  8261. Rid ASC
  8262. IF(@@ROWCOUNT = 0)
  8263. BREAK
  8264. INSERT INTO [SNGMatchReport]
  8265. (
  8266. DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
  8267. )
  8268. SELECT @DateFlag, CAST(ABS(@Amount) AS VARCHAR(32)) + N'累计报名费', @TotalAmount, @Count, 1, @CurrTime
  8269. UNION ALL
  8270. SELECT @DateFlag, CAST(ABS(@Amount) AS VARCHAR(32)) + N'报名次数', @Times, @Count, 2, @CurrTime
  8271. UNION ALL
  8272. SELECT @DateFlag, CAST(ABS(@Amount) AS VARCHAR(32)) + N'报名人数(去重)', @Users, @Count, 3, @CurrTime
  8273. SET @Count = @Count + 1
  8274. END
  8275. RETURN
  8276. END
  8277. GO
  8278. /****** Object: StoredProcedure [dbo].[Game_TimePeriod_Stat] Script Date: 2024/1/12 11:01:14 ******/
  8279. SET ANSI_NULLS ON
  8280. GO
  8281. SET QUOTED_IDENTIFIER ON
  8282. GO
  8283. -- EXEC [Game_TimePeriod_Stat]
  8284. -- ==============================================
  8285. -- Author: wolf
  8286. -- Create Date: 2014-01-21
  8287. -- Mendor: wolf
  8288. -- Alter Date: 2016-11-07
  8289. -- Description: 时段统计
  8290. -- ==============================================
  8291. CREATE PROCEDURE [dbo].[Game_TimePeriod_Stat]
  8292. AS
  8293. SET NOCOUNT ON
  8294. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  8295. SET XACT_ABORT ON
  8296. BEGIN
  8297. DECLARE @DateFlag SMALLDATETIME --日期标识
  8298. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  8299. --移动数据
  8300. INSERT INTO [t_onlinetimeHistory]
  8301. (
  8302. UserID, TodaySeconds, LoginTime
  8303. )
  8304. SELECT
  8305. UserID, TodaySeconds, LoginTime
  8306. FROM
  8307. [t_onlinetime]
  8308. WHERE
  8309. LoginTime BETWEEN @DateFlag - 1 AND @DateFlag
  8310. RETURN
  8311. END
  8312. GO
  8313. /****** Object: StoredProcedure [dbo].[Game_Translate_Get] Script Date: 2024/1/12 11:01:14 ******/
  8314. SET ANSI_NULLS ON
  8315. GO
  8316. SET QUOTED_IDENTIFIER ON
  8317. GO
  8318. -- EXEC [Game_Translate_Get]
  8319. -- ==============================================
  8320. -- Author: wolf
  8321. -- Create Date: 2015-03-13
  8322. -- Mendor: wolf
  8323. -- Alter Date: 2017-02-16
  8324. -- Description: 获取译文
  8325. -- ==============================================
  8326. CREATE PROCEDURE [dbo].[Game_Translate_Get]
  8327. @Source NVARCHAR(4000), --原文
  8328. @Target NVARCHAR(4000) OUTPUT --译文
  8329. AS
  8330. SET NOCOUNT ON
  8331. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  8332. SET XACT_ABORT ON
  8333. BEGIN
  8334. DECLARE @Msg NVARCHAR(4000) --操作描述
  8335. SET @Target = ''
  8336. --获取译文
  8337. SELECT @Target = Target FROM [TranslateText] WHERE Source = @Source
  8338. IF(@@ROWCOUNT = 0)
  8339. BEGIN
  8340. SET @Msg = N'获取翻译失败,原文=' + @Source
  8341. --添加日志
  8342. EXEC [Game_Log_Add] @OpUserID = '-1', @OpUserName = 'system', @Msg = @Msg, @IPAddress = '127.0.0.1'
  8343. END
  8344. RETURN
  8345. END
  8346. GO
  8347. /****** Object: StoredProcedure [dbo].[Game_UserAgent_IncrCommission] Script Date: 2024/1/12 11:01:14 ******/
  8348. SET ANSI_NULLS ON
  8349. GO
  8350. SET QUOTED_IDENTIFIER ON
  8351. GO
  8352. -- EXEC [Game_UserAgent_IncrCommission]
  8353. -- ==============================================
  8354. -- Author: wolf
  8355. -- Create Date: 2014-01-21
  8356. -- Mendor: wolf
  8357. -- Alter Date: 2016-11-07
  8358. -- Description: 代理--增加佣金接口
  8359. -- ==============================================
  8360. CREATE PROCEDURE [dbo].[Game_UserAgent_IncrCommission]
  8361. @UserID INT, --用户ID
  8362. @GameID INT, --游戏ID
  8363. @FromUserID INT, --源用户ID
  8364. @Tax BIGINT, --台费
  8365. @Commission BIGINT, --佣金
  8366. @Direct TINYINT, --属级
  8367. @Memo NVARCHAR(128), --备注
  8368. @IPAddress VARCHAR(16) --IP地址
  8369. AS
  8370. SET NOCOUNT ON
  8371. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  8372. SET XACT_ABORT ON
  8373. BEGIN
  8374. DECLARE @CurrTime DATETIME --时间
  8375. DECLARE @DateFlag SMALLDATETIME --日期标志
  8376. DECLARE @LogType INT --日志类型
  8377. DECLARE @RetCode TINYINT --操作结果
  8378. DECLARE @Balance BIGINT --余额
  8379. DECLARE @Remark VARCHAR(128)
  8380. DECLARE @PreCommission BIGINT --佣金
  8381. DECLARE @Members INT --有效会员
  8382. DECLARE @Profit BIGINT
  8383. SET @Balance = 0
  8384. SET @CurrTime = GETDATE()
  8385. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  8386. IF(@Tax IS NULL OR @Tax < 0 OR @Commission IS NULL OR @Commission <= 0 OR @UserID <= 0)
  8387. RETURN
  8388. --增加佣金
  8389. UPDATE
  8390. [UserAgent]
  8391. SET
  8392. Commission = Commission + @Commission, @Balance = Commission + @Commission
  8393. WHERE
  8394. UserID = @UserID
  8395. --佣金日志
  8396. INSERT INTO [CommissionLog]
  8397. (
  8398. UserID, GameID, FromUserID, Tax, WantCommission,
  8399. StillCommission, Direct, Memo, Crdate
  8400. )
  8401. VALUES
  8402. (
  8403. @UserID, @GameID, @FromUserID, @Tax, @Commission,
  8404. @Balance, @Direct, @Memo, @CurrTime
  8405. )
  8406. --更新佣金统计
  8407. UPDATE
  8408. [CommissionStat]
  8409. SET
  8410. Commission = Commission + @Commission
  8411. WHERE
  8412. DateFlag = @DateFlag AND UserID = @UserID AND FromUserID = @FromUserID AND GameID = @GameID AND Direct = @Direct
  8413. IF(@@ROWCOUNT = 0)
  8414. BEGIN
  8415. INSERT INTO [CommissionStat]
  8416. (
  8417. DateFlag, UserID, GameID, FromUserID, Commission, Direct
  8418. )
  8419. VALUES
  8420. (
  8421. @DateFlag, @UserID, @GameID, @FromUserID, @Commission, @Direct
  8422. )
  8423. END
  8424. --贡献收益
  8425. UPDATE
  8426. [AgentMember]
  8427. SET
  8428. Commission = Commission + @Commission, @PreCommission = Commission
  8429. WHERE
  8430. UserID = @FromUserID
  8431. --有效会员触发
  8432. IF(@PreCommission = 0 AND @Commission > 0)
  8433. BEGIN
  8434. --有效会员数
  8435. SELECT @Members = COUNT(UserID) FROM [AgentMember] WHERE HigherUserID = @UserID AND Commission > 0
  8436. --奖励
  8437. SELECT @Profit = Profit FROM [AgentBindAward] WHERE Members = @Members
  8438. --有收益
  8439. IF(@Profit > 0)
  8440. BEGIN
  8441. --增加佣金
  8442. UPDATE
  8443. [UserAgent]
  8444. SET
  8445. Commission = Commission + @Profit, @Balance = Commission + @Profit
  8446. WHERE
  8447. UserID = @UserID
  8448. --佣金日志
  8449. INSERT INTO [CommissionLog]
  8450. (
  8451. UserID, GameID, FromUserID, Tax, WantCommission,
  8452. StillCommission, Direct, Memo, Crdate
  8453. )
  8454. VALUES
  8455. (
  8456. @UserID, @GameID, @UserID, 0, @Profit,
  8457. @Balance, 5, N'有效会员数' + LTRIM(STR(@Members)) + '位奖励', @CurrTime
  8458. )
  8459. --更新佣金统计
  8460. UPDATE
  8461. [CommissionStat]
  8462. SET
  8463. Commission = Commission + @Profit
  8464. WHERE
  8465. DateFlag = @DateFlag AND UserID = @UserID AND FromUserID = @UserID AND GameID = @GameID AND Direct = 5
  8466. IF(@@ROWCOUNT = 0)
  8467. BEGIN
  8468. INSERT INTO [CommissionStat]
  8469. (
  8470. DateFlag, UserID, GameID, FromUserID, Commission, Direct
  8471. )
  8472. VALUES
  8473. (
  8474. @DateFlag, @UserID, @GameID, @UserID, @Profit, 5
  8475. )
  8476. END
  8477. END
  8478. END
  8479. RETURN
  8480. END
  8481. GO
  8482. /****** Object: StoredProcedure [dbo].[Game_UserAgent_Trigger] Script Date: 2024/1/12 11:01:14 ******/
  8483. SET ANSI_NULLS ON
  8484. GO
  8485. SET QUOTED_IDENTIFIER ON
  8486. GO
  8487. -- EXEC [Game_UserAgent_Trigger]
  8488. -- ==============================================
  8489. -- Author: wolf
  8490. -- Create Date: 2014-01-21
  8491. -- Mendor: wolf
  8492. -- Alter Date: 2016-11-07
  8493. -- Description: 代理触发(收益)
  8494. -- ==============================================
  8495. CREATE PROCEDURE [dbo].[Game_UserAgent_Trigger]
  8496. @UserID INT, --用户ID
  8497. @GameID INT, --游戏ID
  8498. @Tax BIGINT, --台费
  8499. @TriggerType INT, --触发类型(1=流水 2=台费 3=充值(首充))
  8500. @IPAddress VARCHAR(16) --IP地址
  8501. AS
  8502. SET NOCOUNT ON
  8503. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  8504. SET XACT_ABORT ON
  8505. BEGIN
  8506. DECLARE @Commission BIGINT --操作金额
  8507. DECLARE @IsOpen TINYINT --是否开启
  8508. DECLARE @HigherUserID INT --上级用户ID
  8509. DECLARE @Enabled TINYINT --是否启用
  8510. DECLARE @BetOneDirect SMALLINT --流水1级代理返佣(以万为基数)
  8511. DECLARE @BetTwoDirect SMALLINT --流水2级代理返佣(以万为基数)
  8512. DECLARE @TaxOneDirect SMALLINT --服务费1级代理返佣(以万为基数)
  8513. DECLARE @TaxTwoDirect SMALLINT --服务费2级代理返佣(以万为基数)
  8514. DECLARE @PayOneDirect SMALLINT --充值1级代理返佣(以万为基数)
  8515. DECLARE @PayTwoDirect SMALLINT --充值2级代理返佣(以万为基数)
  8516. DECLARE @OneDirect SMALLINT --1级代理返佣(以万为基数)
  8517. DECLARE @TwoDirect SMALLINT --2级代理返佣(以万为基数)
  8518. DECLARE @SuperUserID INT --上级代理用户ID
  8519. DECLARE @Memo NVARCHAR(128) --备注
  8520. SET @OneDirect = 0
  8521. SET @TwoDirect = 0
  8522. --代理配置
  8523. SELECT
  8524. @IsOpen = IsOpen,
  8525. @BetOneDirect = BetOneDirect, @BetTwoDirect = BetTwoDirect,
  8526. @TaxOneDirect = TaxOneDirect, @TaxTwoDirect = TaxTwoDirect,
  8527. @PayOneDirect = PayOneDirect, @PayTwoDirect = PayTwoDirect
  8528. FROM
  8529. [AgentConfig]
  8530. WHERE
  8531. ConfigID = 1
  8532. IF(@IsOpen IS NULL OR @IsOpen != 1)
  8533. RETURN
  8534. --1=流水
  8535. IF(@TriggerType = 1)
  8536. BEGIN
  8537. SET @OneDirect = @BetOneDirect
  8538. SET @TwoDirect = @BetTwoDirect
  8539. --取正值
  8540. IF(@Tax < 0)
  8541. BEGIN
  8542. SET @Tax = -@Tax
  8543. END
  8544. END
  8545. --2=台费
  8546. ELSE IF(@TriggerType = 2)
  8547. BEGIN
  8548. SET @OneDirect = @TaxOneDirect
  8549. SET @TwoDirect = @TaxTwoDirect
  8550. END
  8551. --3=充值(首充)
  8552. ELSE IF(@TriggerType = 3)
  8553. BEGIN
  8554. SET @OneDirect = @PayOneDirect
  8555. SET @TwoDirect = @PayTwoDirect
  8556. END
  8557. --没有开启
  8558. IF(@OneDirect IS NULL OR @OneDirect <= 0)
  8559. RETURN
  8560. --会员上级代理
  8561. SELECT @HigherUserID = HigherUserID FROM [AgentMember] WHERE UserID = @UserID
  8562. IF(@@ROWCOUNT = 0)
  8563. RETURN
  8564. --获取上级代理等级
  8565. SELECT @Enabled = Enabled FROM [UserAgent] WHERE UserID = @HigherUserID
  8566. --------------------父级代理-------------------------------------------------
  8567. --1级代理
  8568. IF(@Enabled = 1)
  8569. BEGIN
  8570. --是否启用
  8571. IF(@OneDirect NOT BETWEEN 1 AND 10000)
  8572. RETURN
  8573. --计算收益
  8574. SET @Commission = @Tax * (@OneDirect / 10000.00)
  8575. IF(@Commission IS NULL OR @Commission <= 0)
  8576. RETURN
  8577. SET @Memo = N'Tier 1 Commission(' + CAST(CAST(@OneDirect / 100.00 AS DECIMAL(10, 2)) AS VARCHAR(8)) + '%),Direct deduction'
  8578. --增加佣金
  8579. EXEC [Game_UserAgent_IncrCommission] @UserID = @HigherUserID, @GameID = @GameID, @FromUserID = @UserID, @Tax = @Tax,
  8580. @Commission = @Commission, @Direct = 1, @Memo = @Memo, @IPAddress = @IPAddress
  8581. --继续获取上一级
  8582. SELECT @SuperUserID = HigherUserID FROM [AgentMember] WHERE UserID = @HigherUserID
  8583. IF(@@ROWCOUNT = 0)
  8584. RETURN
  8585. --获取上级代理等级
  8586. SELECT @Enabled = Enabled FROM [UserAgent] WHERE UserID = @SuperUserID
  8587. END
  8588. --------------------爷级代理-------------------------------------------------
  8589. --2级代理
  8590. IF(@Enabled = 1)
  8591. BEGIN
  8592. --是否启用
  8593. IF(@TwoDirect NOT BETWEEN 1 AND 10000)
  8594. RETURN
  8595. --非直属提成金额
  8596. SET @Commission = @Tax * (@TwoDirect / 10000.00)
  8597. IF(@Commission IS NULL OR @Commission <= 0)
  8598. RETURN
  8599. SET @Memo = N'Tier 2 Commission(' + CAST(CAST(@TwoDirect / 100.00 AS DECIMAL(10, 2)) AS VARCHAR(8)) + '%),Non direct deduction'
  8600. --增加佣金
  8601. EXEC [Game_UserAgent_IncrCommission] @UserID = @SuperUserID, @GameID = @GameID, @FromUserID = @UserID, @Tax = @Tax,
  8602. @Commission = @Commission, @Direct = 2, @Memo = @Memo, @IPAddress = @IPAddress
  8603. END
  8604. RETURN
  8605. END
  8606. GO
  8607. /****** Object: StoredProcedure [dbo].[Game_UserBehavior_Stat] Script Date: 2024/1/12 11:01:14 ******/
  8608. SET ANSI_NULLS ON
  8609. GO
  8610. SET QUOTED_IDENTIFIER ON
  8611. GO
  8612. -- EXEC [Game_UserBehavior_Stat]
  8613. -- ==============================================
  8614. -- Author: wolf
  8615. -- Create Date: 2015-02-06
  8616. -- Mendor: wolf
  8617. -- Alter Date: 2016-09-11
  8618. -- Description: 用户行为统计分析
  8619. -- ==============================================
  8620. CREATE PROCEDURE [dbo].[Game_UserBehavior_Stat]
  8621. @UserID INT, --用户ID
  8622. @BeginTime DATETIME, --开始时间
  8623. @EndTime DATETIME --截止时间
  8624. AS
  8625. SET NOCOUNT ON
  8626. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  8627. SET XACT_ABORT ON
  8628. BEGIN
  8629. DECLARE @SourceName NVARCHAR(32)
  8630. DECLARE @Remark NVARCHAR(128) --备注
  8631. DECLARE @Crdate DATETIME --时间
  8632. DECLARE @CurrAmount BIGINT --操作前金额
  8633. DECLARE @ModifyAmount BIGINT --操作金额
  8634. DECLARE @StillAmount BIGINT --余额
  8635. DECLARE @Status TINYINT --状态(0=begin 1=end)
  8636. DECLARE @GameCount INT --局数
  8637. DECLARE @Rid INT
  8638. DECLARE @LogID INT
  8639. DECLARE @OneLogID INT
  8640. DECLARE @tmptable TABLE(
  8641. LogID INT NOT NULL, --标识
  8642. SourceName NVARCHAR(32) NOT NULL,
  8643. CurrAmount BIGINT NOT NULL,
  8644. ModifyAmount BIGINT NOT NULL,
  8645. Remark NVARCHAR(128) NOT NULL,
  8646. Crdate DATETIME NOT NULL,
  8647. StillAmount BIGINT NOT NULL
  8648. )
  8649. SET @LogID = 0
  8650. INSERT INTO @tmptable
  8651. (
  8652. LogID, SourceName, CurrAmount, ModifyAmount, Remark, Crdate, StillAmount
  8653. )
  8654. SELECT
  8655. LogID, SourceName, CurrentAmount, ModifyAmount, Remark, Crdate, StillAmount
  8656. FROM
  8657. [ChipLog_bak]
  8658. WHERE
  8659. Crdate >= @BeginTime AND Crdate < @EndTime AND UserID = @UserID
  8660. ORDER BY
  8661. LogID ASC
  8662. --遍历元宝区域
  8663. WHILE(1=1)
  8664. BEGIN
  8665. SET @OneLogID = @LogID
  8666. SET @LogID = NULL
  8667. SET @SourceName = NULL
  8668. SET @Remark = NULL
  8669. SET @CurrAmount = NULL
  8670. SET @ModifyAmount = NULL
  8671. SET @Crdate = NULL
  8672. SET @StillAmount = NULL
  8673. SET @Status = NULL
  8674. SET @Rid = NULL
  8675. SELECT TOP 1
  8676. @LogID = LogID, @SourceName = SourceName, @CurrAmount = CurrAmount, @ModifyAmount = ModifyAmount,
  8677. @Remark = Remark, @Crdate = Crdate, @StillAmount = StillAmount
  8678. FROM
  8679. @tmptable
  8680. WHERE
  8681. LogID > @OneLogID
  8682. ORDER BY
  8683. LogID ASC
  8684. IF(@@ROWCOUNT = 0)
  8685. BREAK
  8686. --充值
  8687. IF(CHARINDEX(N'商城购买', @Remark, 0) > 0)
  8688. BEGIN
  8689. --PRINT '元宝商城购买,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '')
  8690. INSERT INTO [UserBehavior]
  8691. (
  8692. UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
  8693. )
  8694. VALUES
  8695. (
  8696. @UserID, N'元宝商城', @Crdate, @ModifyAmount, @Crdate, 0, @StillAmount, 0, 0, 4
  8697. )
  8698. END
  8699. --赠送
  8700. ELSE IF(CHARINDEX(N'Safe transfer', @Remark, 0) > 0)
  8701. BEGIN
  8702. --PRINT '玩家赠送,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '')
  8703. INSERT INTO [UserBehavior]
  8704. (
  8705. UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
  8706. )
  8707. VALUES
  8708. (
  8709. @UserID, N'元宝赠送', @Crdate, @ModifyAmount, @Crdate, 0, @StillAmount, 0, 0, 4
  8710. )
  8711. END
  8712. --游戏下注
  8713. ELSE IF(CHARINDEX(N'结算', @Remark, 0) > 0)
  8714. BEGIN
  8715. --获取最近1条
  8716. SELECT TOP 1
  8717. @Rid = Rid, @Status = Status, @GameCount = GameCount
  8718. FROM
  8719. [UserBehavior]
  8720. WHERE
  8721. UserID = @UserID AND Status IN (3, 4)
  8722. ORDER BY
  8723. Rid DESC
  8724. IF(@Status = 3)
  8725. BEGIN
  8726. --PRINT '元宝游戏下注,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0))) + ', 局数=' + LTRIM(STR(ISNULL(@GameCount, 0) + 1))
  8727. --局数+1
  8728. UPDATE [UserBehavior] SET GameCount = GameCount + 1, EndTime = @Crdate WHERE Rid = @Rid
  8729. CONTINUE
  8730. END
  8731. --PRINT '元宝游戏下注,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0))) + ', 生成新记录, 局数=1'
  8732. INSERT INTO [UserBehavior]
  8733. (
  8734. UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
  8735. )
  8736. VALUES
  8737. (
  8738. @UserID, @SourceName + N' 元宝场', @Crdate, @CurrAmount, @Crdate, 0, @CurrAmount, 0, 1, 3
  8739. )
  8740. END
  8741. --退出房间
  8742. ELSE IF(CHARINDEX(N'退出房间', @Remark, 0) > 0)
  8743. BEGIN
  8744. --获取最近1条
  8745. SELECT TOP 1
  8746. @Rid = Rid, @Status = Status
  8747. FROM
  8748. [UserBehavior]
  8749. WHERE
  8750. UserID = @UserID AND Status IN (3, 4)
  8751. ORDER BY
  8752. Rid DESC
  8753. IF(@Status = 4)
  8754. BEGIN
  8755. --PRINT '元宝结算(异常),SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0)))
  8756. CONTINUE
  8757. END
  8758. --PRINT '元宝结算,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0)))
  8759. UPDATE
  8760. [UserBehavior]
  8761. SET
  8762. EndTime = @Crdate, StaySeconds = DATEDIFF(SECOND, ActTime, @Crdate), StillAmount= @StillAmount,
  8763. WinAmount = @StillAmount - Amount, Status = 4
  8764. WHERE
  8765. Rid = @Rid
  8766. END
  8767. END
  8768. DELETE FROM @tmptable
  8769. SET @LogID = 0
  8770. INSERT INTO @tmptable
  8771. (
  8772. LogID, SourceName, CurrAmount, ModifyAmount, Remark, Crdate, StillAmount
  8773. )
  8774. SELECT
  8775. LogID, SourceName, CurrentAmount, ModifyAmount, Remark, Crdate, StillAmount
  8776. FROM
  8777. [MoneyLog_bak]
  8778. WHERE
  8779. Crdate >= @BeginTime AND Crdate < @EndTime AND UserID = @UserID
  8780. ORDER BY
  8781. LogID ASC
  8782. --遍历休闲区域
  8783. WHILE(1=1)
  8784. BEGIN
  8785. SET @OneLogID = @LogID
  8786. SET @LogID = NULL
  8787. SET @SourceName = NULL
  8788. SET @Remark = NULL
  8789. SET @CurrAmount = NULL
  8790. SET @ModifyAmount = NULL
  8791. SET @Rid = NULL
  8792. SET @Crdate = NULL
  8793. SET @StillAmount = NULL
  8794. SET @Status = NULL
  8795. SELECT TOP 1
  8796. @LogID = LogID, @SourceName = SourceName, @CurrAmount = CurrAmount, @ModifyAmount = ModifyAmount,
  8797. @Remark = Remark, @Crdate = Crdate, @StillAmount = StillAmount
  8798. FROM
  8799. @tmptable
  8800. WHERE
  8801. LogID > @OneLogID
  8802. ORDER BY
  8803. LogID ASC
  8804. IF(@@ROWCOUNT = 0)
  8805. BREAK
  8806. --充值
  8807. IF(CHARINDEX(N'商城购买', @Remark, 0) > 0)
  8808. BEGIN
  8809. --PRINT '休闲商城购买,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '')
  8810. INSERT INTO [UserBehavior]
  8811. (
  8812. UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
  8813. )
  8814. VALUES
  8815. (
  8816. @UserID, N'休闲商城', @Crdate, @ModifyAmount, @Crdate, 0, @StillAmount, 0, 0, 2
  8817. )
  8818. END
  8819. --游戏下注
  8820. ELSE IF(CHARINDEX(N'结算', @Remark, 0) > 0)
  8821. BEGIN
  8822. --获取最近1条
  8823. SELECT TOP 1
  8824. @Rid = Rid, @Status = Status, @GameCount = GameCount
  8825. FROM
  8826. [UserBehavior]
  8827. WHERE
  8828. UserID = @UserID AND Status IN (1, 2)
  8829. ORDER BY
  8830. Rid DESC
  8831. IF(@Status = 1)
  8832. BEGIN
  8833. --PRINT '休闲游戏下注,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0))) + ', 局数=' + LTRIM(STR(ISNULL(@GameCount, 0) + 1))
  8834. --局数+1
  8835. UPDATE [UserBehavior] SET GameCount = GameCount + 1, EndTime = @Crdate WHERE Rid = @Rid
  8836. CONTINUE
  8837. END
  8838. --PRINT '休闲游戏下注,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0))) + ', 生成新记录, 局数=1'
  8839. INSERT INTO [UserBehavior]
  8840. (
  8841. UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
  8842. )
  8843. VALUES
  8844. (
  8845. @UserID, @SourceName + N' 休闲场', @Crdate, @CurrAmount, @Crdate, 0, @CurrAmount, 0, 1, 1
  8846. )
  8847. END
  8848. --退出房间
  8849. ELSE IF(CHARINDEX(N'退出房间', @Remark, 0) > 0)
  8850. BEGIN
  8851. --获取最近1条
  8852. SELECT TOP 1
  8853. @Rid = Rid, @Status = Status
  8854. FROM
  8855. [UserBehavior]
  8856. WHERE
  8857. UserID = @UserID AND Status IN (1, 2)
  8858. ORDER BY
  8859. Rid DESC
  8860. IF(@Status = 2)
  8861. BEGIN
  8862. --PRINT '休闲结算(异常),SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0)))
  8863. CONTINUE
  8864. END
  8865. --PRINT '休闲结算,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0)))
  8866. UPDATE
  8867. [UserBehavior]
  8868. SET
  8869. EndTime = @Crdate, StaySeconds = DATEDIFF(SECOND, ActTime, @Crdate), StillAmount= @StillAmount,
  8870. WinAmount = @StillAmount - Amount, Status = 2
  8871. WHERE
  8872. Rid = @Rid
  8873. END
  8874. END
  8875. END
  8876. GO
  8877. /****** Object: StoredProcedure [dbo].[Game_UserDot_Stat] Script Date: 2024/1/12 11:01:14 ******/
  8878. SET ANSI_NULLS ON
  8879. GO
  8880. SET QUOTED_IDENTIFIER ON
  8881. GO
  8882. -- EXEC [Manage_UserDot_Stat]
  8883. -- ==============================================
  8884. -- Author: wolf
  8885. -- Create Date: 2014-01-21
  8886. -- Mendor: wolf
  8887. -- Alter Date: 2016-11-07
  8888. -- Description: 打点统计
  8889. -- ==============================================
  8890. CREATE PROCEDURE [dbo].[Game_UserDot_Stat]
  8891. AS
  8892. SET NOCOUNT ON
  8893. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  8894. SET XACT_ABORT ON
  8895. BEGIN
  8896. DECLARE @CurrTime DATETIME --系统当前时间
  8897. DECLARE @DateFlag SMALLDATETIME --日期标识
  8898. --表变量
  8899. DECLARE @tmptable TABLE(
  8900. DateFlag SMALLDATETIME NOT NULL, --日期
  8901. Event VARCHAR(32) NOT NULL, --事件
  8902. LabelID VARCHAR(32) NOT NULL, --标签ID
  8903. UserID VARCHAR(16) NOT NULL, --用户ID
  8904. Action TINYINT NOT NULL, --动作(1=点击 2=完成 3=领取)
  8905. Times INT NOT NULL --次数
  8906. )
  8907. --表变量
  8908. DECLARE @tmpStat TABLE(
  8909. Event VARCHAR(32) NOT NULL, --事件
  8910. LabelID VARCHAR(32) NOT NULL, --标签ID
  8911. Days INT NOT NULL, --天数(0=当天 7=过去7天 30=过去30天)
  8912. ClickTimes INT NOT NULL, --点击次数
  8913. ClickUserCount INT NOT NULL, --点击人数
  8914. CompleteUserCount INT NOT NULL --完成人数
  8915. )
  8916. SET @CurrTime = GETDATE()
  8917. SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
  8918. --拉出最近30天数据(任务排除)
  8919. INSERT INTO @tmptable
  8920. (
  8921. DateFlag, Event, LabelID, UserID, Action, Times
  8922. )
  8923. SELECT
  8924. d.DateFlag, d.Event, '', d.UserID, d.Action, d.Times
  8925. FROM
  8926. [UserDotHistory] d
  8927. WHERE
  8928. d.DateFlag BETWEEN @DateFlag - 30 AND @DateFlag AND d.Scene != '任务'
  8929. --统计当天数据
  8930. INSERT INTO @tmpStat
  8931. (
  8932. Event, LabelID, Days,
  8933. ClickTimes, ClickUserCount, CompleteUserCount
  8934. )
  8935. SELECT
  8936. Event, LabelID, 0,
  8937. ISNULL(SUM(CASE WHEN Action = 1 THEN Times ELSE 0 END), 0),
  8938. ISNULL(SUM(CASE WHEN Action = 1 THEN 1 ELSE 0 END), 0),
  8939. ISNULL(SUM(CASE WHEN Action = 2 THEN 1 ELSE 0 END), 0)
  8940. FROM
  8941. @tmptable
  8942. WHERE
  8943. DateFlag = @DateFlag
  8944. GROUP BY
  8945. Event, LabelID
  8946. --统计7天数据
  8947. INSERT INTO @tmpStat
  8948. (
  8949. Event, LabelID, Days,
  8950. ClickTimes, ClickUserCount, CompleteUserCount
  8951. )
  8952. SELECT
  8953. Event, LabelID, 7,
  8954. ISNULL(SUM(CASE WHEN Action = 1 THEN Times ELSE 0 END), 0),
  8955. ISNULL(SUM(CASE WHEN Action = 1 THEN 1 ELSE 0 END), 0),
  8956. ISNULL(SUM(CASE WHEN Action = 2 THEN 1 ELSE 0 END), 0)
  8957. FROM
  8958. @tmptable
  8959. WHERE
  8960. DateFlag >= @DateFlag - 7
  8961. GROUP BY
  8962. Event, LabelID
  8963. --统计30天数据
  8964. INSERT INTO @tmpStat
  8965. (
  8966. Event, LabelID, Days,
  8967. ClickTimes, ClickUserCount, CompleteUserCount
  8968. )
  8969. SELECT
  8970. Event, LabelID, 30,
  8971. ISNULL(SUM(CASE WHEN Action = 1 THEN Times ELSE 0 END), 0),
  8972. ISNULL(SUM(CASE WHEN Action = 1 THEN 1 ELSE 0 END), 0),
  8973. ISNULL(SUM(CASE WHEN Action = 2 THEN 1 ELSE 0 END), 0)
  8974. FROM
  8975. @tmptable
  8976. GROUP BY
  8977. Event, LabelID
  8978. --保存统计数据
  8979. INSERT INTO [UserDotStat]
  8980. (
  8981. DateFlag, Event, LabelID, Days, ClickTimes, ClickUserCount, CompleteUserCount
  8982. )
  8983. SELECT
  8984. @DateFlag, Event, LabelID, Days, ClickTimes, ClickUserCount, CompleteUserCount
  8985. FROM
  8986. @tmpStat
  8987. RETURN
  8988. END
  8989. GO
  8990. /****** Object: StoredProcedure [dbo].[Game_UserLoginLog_Stat] Script Date: 2024/1/12 11:01:14 ******/
  8991. SET ANSI_NULLS ON
  8992. GO
  8993. SET QUOTED_IDENTIFIER ON
  8994. GO
  8995. -- EXEC [Game_UserLoginLog_Stat]
  8996. -- ==============================================
  8997. -- Author: wolf
  8998. -- Create Date: 2014-10-17
  8999. -- Mendor: wolf
  9000. -- Alter Date: 2014-10-77
  9001. -- Description: 登陆统计
  9002. -- ==============================================
  9003. CREATE PROCEDURE [dbo].[Game_UserLoginLog_Stat]
  9004. AS
  9005. SET NOCOUNT ON
  9006. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  9007. SET XACT_ABORT ON
  9008. BEGIN
  9009. DECLARE @DateFlag SMALLDATETIME --日期标志
  9010. DECLARE @BeginTime DATETIME --开始时间
  9011. DECLARE @EndTime DATETIME --截止时间
  9012. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  9013. SET @DateFlag = @DateFlag - 1
  9014. SET @BeginTime = @DateFlag
  9015. SET @EndTime = CONVERT(CHAR(11), @DateFlag, 120) + '23:59:59'
  9016. --判断是否已生成
  9017. IF EXISTS(SELECT DateFlag FROM [LoginStat] WHERE DateFlag = @DateFlag)
  9018. RETURN
  9019. --统计登陆
  9020. INSERT INTO [LoginStat]
  9021. (
  9022. DateFlag, PartnerID, LoginCount
  9023. )
  9024. SELECT
  9025. CONVERT(CHAR(10), Crdate, 120), PartnerID, COUNT(DISTINCT(UserID))
  9026. FROM
  9027. [UserLoginLog_bak]
  9028. WHERE
  9029. Crdate BETWEEN @BeginTime AND @EndTime
  9030. GROUP BY
  9031. CONVERT(CHAR(10), Crdate, 120), PartnerID
  9032. --判断是否已生成
  9033. IF EXISTS(SELECT DateFlag FROM [ChipLoginStat] WHERE DateFlag = @DateFlag)
  9034. RETURN
  9035. --元宝大厅登录用户数
  9036. INSERT INTO [ChipLoginStat]
  9037. (
  9038. DateFlag, LoginCount
  9039. )
  9040. SELECT
  9041. DateFlag, COUNT(DISTINCT UserID)
  9042. FROM
  9043. [ChipStat]
  9044. WHERE
  9045. DateFlag = @DateFlag AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
  9046. GROUP BY
  9047. DateFlag
  9048. RETURN
  9049. END
  9050. GO
  9051. /****** Object: StoredProcedure [dbo].[Game_VideoStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
  9052. SET ANSI_NULLS ON
  9053. GO
  9054. SET QUOTED_IDENTIFIER ON
  9055. GO
  9056. -- EXEC [Game_VideoStat_Stat]
  9057. -- ==============================================
  9058. -- Author: wolf
  9059. -- Create Date: 2014-10-08
  9060. -- Mendor: wolf
  9061. -- Alter Date: 2016-08-16
  9062. -- Description: 视频统计(每10分钟)
  9063. -- ==============================================
  9064. CREATE PROCEDURE [dbo].[Game_VideoStat_Stat]
  9065. @CurrTime DATETIME --时间
  9066. AS
  9067. SET NOCOUNT ON
  9068. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  9069. SET XACT_ABORT ON
  9070. BEGIN
  9071. DECLARE @DateFlag SMALLDATETIME --日期标识
  9072. DECLARE @Hour INT --小时
  9073. DECLARE @Min INT --分钟
  9074. DECLARE @PlayCount INT --播放数
  9075. DECLARE @Hour_0000 INT -- 00:00
  9076. DECLARE @Hour_0030 INT -- 00:30
  9077. DECLARE @Hour_0100 INT -- 01:00
  9078. DECLARE @Hour_0130 INT -- 01:30
  9079. DECLARE @Hour_0200 INT -- 02:00
  9080. DECLARE @Hour_0230 INT -- 02:30
  9081. DECLARE @Hour_0300 INT -- 03:00
  9082. DECLARE @Hour_0330 INT -- 03:30
  9083. DECLARE @Hour_0400 INT -- 04:00
  9084. DECLARE @Hour_0430 INT -- 04:30
  9085. DECLARE @Hour_0500 INT -- 05:00
  9086. DECLARE @Hour_0530 INT -- 05:30
  9087. DECLARE @Hour_0600 INT -- 06:00
  9088. DECLARE @Hour_0630 INT -- 06:30
  9089. DECLARE @Hour_0700 INT -- 07:00
  9090. DECLARE @Hour_0730 INT -- 07:30
  9091. DECLARE @Hour_0800 INT -- 08:00
  9092. DECLARE @Hour_0830 INT -- 08:30
  9093. DECLARE @Hour_0900 INT -- 09:00
  9094. DECLARE @Hour_0930 INT -- 09:30
  9095. DECLARE @Hour_1000 INT -- 10:00
  9096. DECLARE @Hour_1030 INT -- 10:30
  9097. DECLARE @Hour_1100 INT -- 11:00
  9098. DECLARE @Hour_1130 INT -- 11:30
  9099. DECLARE @Hour_1200 INT -- 12:00
  9100. DECLARE @Hour_1230 INT -- 12:30
  9101. DECLARE @Hour_1300 INT -- 13:00
  9102. DECLARE @Hour_1330 INT -- 13:30
  9103. DECLARE @Hour_1400 INT -- 14:00
  9104. DECLARE @Hour_1430 INT -- 14:30
  9105. DECLARE @Hour_1500 INT -- 15:00
  9106. DECLARE @Hour_1530 INT -- 15:30
  9107. DECLARE @Hour_1600 INT -- 16:00
  9108. DECLARE @Hour_1630 INT -- 16:30
  9109. DECLARE @Hour_1700 INT -- 17:00
  9110. DECLARE @Hour_1730 INT -- 17:30
  9111. DECLARE @Hour_1800 INT -- 18:00
  9112. DECLARE @Hour_1830 INT -- 18:30
  9113. DECLARE @Hour_1900 INT -- 19:00
  9114. DECLARE @Hour_1930 INT -- 19:30
  9115. DECLARE @Hour_2000 INT -- 20:00
  9116. DECLARE @Hour_2030 INT -- 20:30
  9117. DECLARE @Hour_2100 INT -- 21:00
  9118. DECLARE @Hour_2130 INT -- 21:30
  9119. DECLARE @Hour_2200 INT -- 22:00
  9120. DECLARE @Hour_2230 INT -- 22:30
  9121. DECLARE @Hour_2300 INT -- 23:00
  9122. DECLARE @Hour_2330 INT -- 23:30
  9123. DECLARE @Rid INT --标识
  9124. DECLARE @OneRid INT --当前标识
  9125. DECLARE @PartnerID INT --渠道ID
  9126. DECLARE @tmptable TABLE(
  9127. Rid INT IDENTITY NOT NULL, --标识
  9128. PartnerID INT NOT NULL, --渠道ID
  9129. PlayCount INT NOT NULL --播放次数
  9130. )
  9131. --统计播放次数
  9132. INSERT INTO @tmptable(PartnerID, PlayCount)
  9133. SELECT
  9134. u.PartnerID, COUNT(v.Rid)
  9135. FROM
  9136. [UserVideoLogHistory] v INNER JOIN [AllUser] u ON v.UserID = u.UserID
  9137. WHERE
  9138. v.Crdate >= DATEADD(MINUTE, -30, @CurrTime) AND v.Status = 1
  9139. GROUP BY
  9140. u.PartnerID
  9141. SET @Hour = DATEPART(HOUR, @CurrTime)
  9142. SET @Min = DATEPART(MINUTE, @CurrTime)
  9143. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  9144. SET @Rid = 0
  9145. WHILE(1=1)
  9146. BEGIN
  9147. SET @OneRid = @Rid
  9148. SET @Rid = NULL
  9149. SELECT TOP 1
  9150. @Rid = Rid, @PartnerID = PartnerID, @PlayCount = PlayCount
  9151. FROM
  9152. @tmptable
  9153. WHERE
  9154. Rid > @OneRid
  9155. ORDER BY
  9156. Rid ASC
  9157. IF(@@ROWCOUNT = 0)
  9158. BREAK
  9159. --分时段
  9160. SELECT
  9161. @Hour_0000 = CASE WHEN @Hour = 0 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9162. @Hour_0030 = CASE WHEN @Hour = 0 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9163. @Hour_0100 = CASE WHEN @Hour = 1 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9164. @Hour_0130 = CASE WHEN @Hour = 1 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9165. @Hour_0200 = CASE WHEN @Hour = 2 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9166. @Hour_0230 = CASE WHEN @Hour = 2 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9167. @Hour_0300 = CASE WHEN @Hour = 3 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9168. @Hour_0330 = CASE WHEN @Hour = 3 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9169. @Hour_0400 = CASE WHEN @Hour = 4 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9170. @Hour_0430 = CASE WHEN @Hour = 4 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9171. @Hour_0500 = CASE WHEN @Hour = 5 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9172. @Hour_0530 = CASE WHEN @Hour = 5 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9173. @Hour_0600 = CASE WHEN @Hour = 6 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9174. @Hour_0630 = CASE WHEN @Hour = 6 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9175. @Hour_0700 = CASE WHEN @Hour = 7 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9176. @Hour_0730 = CASE WHEN @Hour = 7 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9177. @Hour_0800 = CASE WHEN @Hour = 8 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9178. @Hour_0830 = CASE WHEN @Hour = 8 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9179. @Hour_0900 = CASE WHEN @Hour = 9 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9180. @Hour_0930 = CASE WHEN @Hour = 9 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9181. @Hour_1000 = CASE WHEN @Hour = 10 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9182. @Hour_1030 = CASE WHEN @Hour = 10 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9183. @Hour_1100 = CASE WHEN @Hour = 11 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9184. @Hour_1130 = CASE WHEN @Hour = 11 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9185. @Hour_1200 = CASE WHEN @Hour = 12 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9186. @Hour_1230 = CASE WHEN @Hour = 12 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9187. @Hour_1300 = CASE WHEN @Hour = 13 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9188. @Hour_1330 = CASE WHEN @Hour = 13 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9189. @Hour_1400 = CASE WHEN @Hour = 14 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9190. @Hour_1430 = CASE WHEN @Hour = 14 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9191. @Hour_1500 = CASE WHEN @Hour = 15 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9192. @Hour_1530 = CASE WHEN @Hour = 15 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9193. @Hour_1600 = CASE WHEN @Hour = 16 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9194. @Hour_1630 = CASE WHEN @Hour = 16 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9195. @Hour_1700 = CASE WHEN @Hour = 17 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9196. @Hour_1730 = CASE WHEN @Hour = 17 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9197. @Hour_1800 = CASE WHEN @Hour = 18 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9198. @Hour_1830 = CASE WHEN @Hour = 18 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9199. @Hour_1900 = CASE WHEN @Hour = 19 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9200. @Hour_1930 = CASE WHEN @Hour = 19 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9201. @Hour_2000 = CASE WHEN @Hour = 20 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9202. @Hour_2030 = CASE WHEN @Hour = 20 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9203. @Hour_2100 = CASE WHEN @Hour = 21 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9204. @Hour_2130 = CASE WHEN @Hour = 21 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9205. @Hour_2200 = CASE WHEN @Hour = 22 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9206. @Hour_2230 = CASE WHEN @Hour = 22 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
  9207. @Hour_2300 = CASE WHEN @Hour = 23 AND @Min < 30 THEN @PlayCount ELSE 0 END,
  9208. @Hour_2330 = CASE WHEN @Hour = 23 AND @Min >= 30 THEN @PlayCount ELSE 0 END
  9209. --统计
  9210. UPDATE
  9211. [VideoStatMin]
  9212. SET
  9213. Hour_0000 = Hour_0000 + @Hour_0000, Hour_0030 = Hour_0030 + @Hour_0030,
  9214. Hour_0100 = Hour_0100 + @Hour_0100, Hour_0130 = Hour_0130 + @Hour_0130,
  9215. Hour_0200 = Hour_0200 + @Hour_0200, Hour_0230 = Hour_0230 + @Hour_0230,
  9216. Hour_0300 = Hour_0300 + @Hour_0300, Hour_0330 = Hour_0330 + @Hour_0330,
  9217. Hour_0400 = Hour_0400 + @Hour_0400, Hour_0430 = Hour_0430 + @Hour_0430,
  9218. Hour_0500 = Hour_0500 + @Hour_0500, Hour_0530 = Hour_0530 + @Hour_0530,
  9219. Hour_0600 = Hour_0600 + @Hour_0600, Hour_0630 = Hour_0630 + @Hour_0630,
  9220. Hour_0700 = Hour_0700 + @Hour_0700, Hour_0730 = Hour_0730 + @Hour_0730,
  9221. Hour_0800 = Hour_0800 + @Hour_0800, Hour_0830 = Hour_0830 + @Hour_0830,
  9222. Hour_0900 = Hour_0900 + @Hour_0900, Hour_0930 = Hour_0930 + @Hour_0930,
  9223. Hour_1000 = Hour_1000 + @Hour_1000, Hour_1030 = Hour_1030 + @Hour_1030,
  9224. Hour_1100 = Hour_1100 + @Hour_1100, Hour_1130 = Hour_1130 + @Hour_1130,
  9225. Hour_1200 = Hour_1200 + @Hour_1200, Hour_1230 = Hour_1230 + @Hour_1230,
  9226. Hour_1300 = Hour_1300 + @Hour_1300, Hour_1330 = Hour_1330 + @Hour_1330,
  9227. Hour_1400 = Hour_1400 + @Hour_1400, Hour_1430 = Hour_1430 + @Hour_1430,
  9228. Hour_1500 = Hour_1500 + @Hour_1500, Hour_1530 = Hour_1530 + @Hour_1530,
  9229. Hour_1600 = Hour_1600 + @Hour_1600, Hour_1630 = Hour_1630 + @Hour_1630,
  9230. Hour_1700 = Hour_1700 + @Hour_1700, Hour_1730 = Hour_1730 + @Hour_1730,
  9231. Hour_1800 = Hour_1800 + @Hour_1800, Hour_1830 = Hour_1830 + @Hour_1830,
  9232. Hour_1900 = Hour_1900 + @Hour_1900, Hour_1930 = Hour_1930 + @Hour_1930,
  9233. Hour_2000 = Hour_2000 + @Hour_2000, Hour_2030 = Hour_2030 + @Hour_2030,
  9234. Hour_2100 = Hour_2100 + @Hour_2100, Hour_2130 = Hour_2130 + @Hour_2130,
  9235. Hour_2200 = Hour_2200 + @Hour_2200, Hour_2230 = Hour_2230 + @Hour_2230,
  9236. Hour_2300 = Hour_2300 + @Hour_2300, Hour_2330 = Hour_2330 + @Hour_2330
  9237. WHERE
  9238. DateFlag = @DateFlag AND PartnerID = @PartnerID
  9239. --今天还没有
  9240. IF(@@ROWCOUNT = 0)
  9241. BEGIN
  9242. INSERT INTO [VideoStatMin]
  9243. (
  9244. DateFlag, PartnerID,
  9245. Hour_0000, Hour_0030, Hour_0100, Hour_0130, Hour_0200, Hour_0230,
  9246. Hour_0300, Hour_0330, Hour_0400, Hour_0430, Hour_0500, Hour_0530,
  9247. Hour_0600, Hour_0630, Hour_0700, Hour_0730, Hour_0800, Hour_0830,
  9248. Hour_0900, Hour_0930, Hour_1000, Hour_1030, Hour_1100, Hour_1130,
  9249. Hour_1200, Hour_1230, Hour_1300, Hour_1330, Hour_1400, Hour_1430,
  9250. Hour_1500, Hour_1530, Hour_1600, Hour_1630, Hour_1700, Hour_1730,
  9251. Hour_1800, Hour_1830, Hour_1900, Hour_1930, Hour_2000, Hour_2030,
  9252. Hour_2100, Hour_2130, Hour_2200, Hour_2230, Hour_2300, Hour_2330
  9253. )
  9254. VALUES
  9255. (
  9256. @DateFlag, @PartnerID,
  9257. @Hour_0000, @Hour_0030, @Hour_0100, @Hour_0130, @Hour_0200, @Hour_0230,
  9258. @Hour_0300, @Hour_0330, @Hour_0400, @Hour_0430, @Hour_0500, @Hour_0530,
  9259. @Hour_0600, @Hour_0630, @Hour_0700, @Hour_0730, @Hour_0800, @Hour_0830,
  9260. @Hour_0900, @Hour_0930, @Hour_1000, @Hour_1030, @Hour_1100, @Hour_1130,
  9261. @Hour_1200, @Hour_1230, @Hour_1300, @Hour_1330, @Hour_1400, @Hour_1430,
  9262. @Hour_1500, @Hour_1530, @Hour_1600, @Hour_1630, @Hour_1700, @Hour_1730,
  9263. @Hour_1800, @Hour_1830, @Hour_1900, @Hour_1930, @Hour_2000, @Hour_2030,
  9264. @Hour_2100, @Hour_2130, @Hour_2200, @Hour_2230, @Hour_2300, @Hour_2330
  9265. )
  9266. END
  9267. END
  9268. RETURN
  9269. END
  9270. GO
  9271. /****** Object: StoredProcedure [dbo].[Game_VideoUser_Stat] Script Date: 2024/1/12 11:01:14 ******/
  9272. SET ANSI_NULLS ON
  9273. GO
  9274. SET QUOTED_IDENTIFIER ON
  9275. GO
  9276. -- EXEC [Game_VideoUser_Stat]
  9277. -- ==============================================
  9278. -- Author: wolf
  9279. -- Create Date: 2014-10-08
  9280. -- Mendor: wolf
  9281. -- Alter Date: 2016-08-16
  9282. -- Description: 视频用户统计(每10分钟)
  9283. -- ==============================================
  9284. CREATE PROCEDURE [dbo].[Game_VideoUser_Stat]
  9285. @CurrTime DATETIME --时间
  9286. AS
  9287. SET NOCOUNT ON
  9288. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  9289. SET XACT_ABORT ON
  9290. BEGIN
  9291. DECLARE @DateFlag SMALLDATETIME --日期标识
  9292. DECLARE @Hour INT --小时
  9293. DECLARE @Min INT --分钟
  9294. DECLARE @PlayUsers INT --用户数
  9295. DECLARE @Hour_0000 INT -- 00:00
  9296. DECLARE @Hour_0030 INT -- 00:30
  9297. DECLARE @Hour_0100 INT -- 01:00
  9298. DECLARE @Hour_0130 INT -- 01:30
  9299. DECLARE @Hour_0200 INT -- 02:00
  9300. DECLARE @Hour_0230 INT -- 02:30
  9301. DECLARE @Hour_0300 INT -- 03:00
  9302. DECLARE @Hour_0330 INT -- 03:30
  9303. DECLARE @Hour_0400 INT -- 04:00
  9304. DECLARE @Hour_0430 INT -- 04:30
  9305. DECLARE @Hour_0500 INT -- 05:00
  9306. DECLARE @Hour_0530 INT -- 05:30
  9307. DECLARE @Hour_0600 INT -- 06:00
  9308. DECLARE @Hour_0630 INT -- 06:30
  9309. DECLARE @Hour_0700 INT -- 07:00
  9310. DECLARE @Hour_0730 INT -- 07:30
  9311. DECLARE @Hour_0800 INT -- 08:00
  9312. DECLARE @Hour_0830 INT -- 08:30
  9313. DECLARE @Hour_0900 INT -- 09:00
  9314. DECLARE @Hour_0930 INT -- 09:30
  9315. DECLARE @Hour_1000 INT -- 10:00
  9316. DECLARE @Hour_1030 INT -- 10:30
  9317. DECLARE @Hour_1100 INT -- 11:00
  9318. DECLARE @Hour_1130 INT -- 11:30
  9319. DECLARE @Hour_1200 INT -- 12:00
  9320. DECLARE @Hour_1230 INT -- 12:30
  9321. DECLARE @Hour_1300 INT -- 13:00
  9322. DECLARE @Hour_1330 INT -- 13:30
  9323. DECLARE @Hour_1400 INT -- 14:00
  9324. DECLARE @Hour_1430 INT -- 14:30
  9325. DECLARE @Hour_1500 INT -- 15:00
  9326. DECLARE @Hour_1530 INT -- 15:30
  9327. DECLARE @Hour_1600 INT -- 16:00
  9328. DECLARE @Hour_1630 INT -- 16:30
  9329. DECLARE @Hour_1700 INT -- 17:00
  9330. DECLARE @Hour_1730 INT -- 17:30
  9331. DECLARE @Hour_1800 INT -- 18:00
  9332. DECLARE @Hour_1830 INT -- 18:30
  9333. DECLARE @Hour_1900 INT -- 19:00
  9334. DECLARE @Hour_1930 INT -- 19:30
  9335. DECLARE @Hour_2000 INT -- 20:00
  9336. DECLARE @Hour_2030 INT -- 20:30
  9337. DECLARE @Hour_2100 INT -- 21:00
  9338. DECLARE @Hour_2130 INT -- 21:30
  9339. DECLARE @Hour_2200 INT -- 22:00
  9340. DECLARE @Hour_2230 INT -- 22:30
  9341. DECLARE @Hour_2300 INT -- 23:00
  9342. DECLARE @Hour_2330 INT -- 23:30
  9343. --统计视频播放用户数
  9344. SELECT
  9345. @PlayUsers = COUNT(DISTINCT UserID)
  9346. FROM
  9347. [UserVideoLogHistory]
  9348. WHERE
  9349. Crdate >= DATEADD(MINUTE, -30, @CurrTime) AND Status = 1
  9350. SET @Hour = DATEPART(HOUR, @CurrTime)
  9351. SET @Min = DATEPART(MINUTE, @CurrTime)
  9352. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  9353. --分时段
  9354. SELECT
  9355. @Hour_0000 = CASE WHEN @Hour = 0 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9356. @Hour_0030 = CASE WHEN @Hour = 0 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9357. @Hour_0100 = CASE WHEN @Hour = 1 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9358. @Hour_0130 = CASE WHEN @Hour = 1 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9359. @Hour_0200 = CASE WHEN @Hour = 2 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9360. @Hour_0230 = CASE WHEN @Hour = 2 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9361. @Hour_0300 = CASE WHEN @Hour = 3 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9362. @Hour_0330 = CASE WHEN @Hour = 3 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9363. @Hour_0400 = CASE WHEN @Hour = 4 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9364. @Hour_0430 = CASE WHEN @Hour = 4 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9365. @Hour_0500 = CASE WHEN @Hour = 5 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9366. @Hour_0530 = CASE WHEN @Hour = 5 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9367. @Hour_0600 = CASE WHEN @Hour = 6 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9368. @Hour_0630 = CASE WHEN @Hour = 6 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9369. @Hour_0700 = CASE WHEN @Hour = 7 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9370. @Hour_0730 = CASE WHEN @Hour = 7 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9371. @Hour_0800 = CASE WHEN @Hour = 8 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9372. @Hour_0830 = CASE WHEN @Hour = 8 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9373. @Hour_0900 = CASE WHEN @Hour = 9 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9374. @Hour_0930 = CASE WHEN @Hour = 9 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9375. @Hour_1000 = CASE WHEN @Hour = 10 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9376. @Hour_1030 = CASE WHEN @Hour = 10 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9377. @Hour_1100 = CASE WHEN @Hour = 11 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9378. @Hour_1130 = CASE WHEN @Hour = 11 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9379. @Hour_1200 = CASE WHEN @Hour = 12 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9380. @Hour_1230 = CASE WHEN @Hour = 12 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9381. @Hour_1300 = CASE WHEN @Hour = 13 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9382. @Hour_1330 = CASE WHEN @Hour = 13 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9383. @Hour_1400 = CASE WHEN @Hour = 14 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9384. @Hour_1430 = CASE WHEN @Hour = 14 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9385. @Hour_1500 = CASE WHEN @Hour = 15 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9386. @Hour_1530 = CASE WHEN @Hour = 15 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9387. @Hour_1600 = CASE WHEN @Hour = 16 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9388. @Hour_1630 = CASE WHEN @Hour = 16 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9389. @Hour_1700 = CASE WHEN @Hour = 17 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9390. @Hour_1730 = CASE WHEN @Hour = 17 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9391. @Hour_1800 = CASE WHEN @Hour = 18 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9392. @Hour_1830 = CASE WHEN @Hour = 18 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9393. @Hour_1900 = CASE WHEN @Hour = 19 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9394. @Hour_1930 = CASE WHEN @Hour = 19 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9395. @Hour_2000 = CASE WHEN @Hour = 20 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9396. @Hour_2030 = CASE WHEN @Hour = 20 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9397. @Hour_2100 = CASE WHEN @Hour = 21 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9398. @Hour_2130 = CASE WHEN @Hour = 21 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9399. @Hour_2200 = CASE WHEN @Hour = 22 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9400. @Hour_2230 = CASE WHEN @Hour = 22 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
  9401. @Hour_2300 = CASE WHEN @Hour = 23 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
  9402. @Hour_2330 = CASE WHEN @Hour = 23 AND @Min >= 30 THEN @PlayUsers ELSE 0 END
  9403. --统计
  9404. UPDATE
  9405. [VideoUserStatMin]
  9406. SET
  9407. Hour_0000 = Hour_0000 + @Hour_0000, Hour_0030 = Hour_0030 + @Hour_0030,
  9408. Hour_0100 = Hour_0100 + @Hour_0100, Hour_0130 = Hour_0130 + @Hour_0130,
  9409. Hour_0200 = Hour_0200 + @Hour_0200, Hour_0230 = Hour_0230 + @Hour_0230,
  9410. Hour_0300 = Hour_0300 + @Hour_0300, Hour_0330 = Hour_0330 + @Hour_0330,
  9411. Hour_0400 = Hour_0400 + @Hour_0400, Hour_0430 = Hour_0430 + @Hour_0430,
  9412. Hour_0500 = Hour_0500 + @Hour_0500, Hour_0530 = Hour_0530 + @Hour_0530,
  9413. Hour_0600 = Hour_0600 + @Hour_0600, Hour_0630 = Hour_0630 + @Hour_0630,
  9414. Hour_0700 = Hour_0700 + @Hour_0700, Hour_0730 = Hour_0730 + @Hour_0730,
  9415. Hour_0800 = Hour_0800 + @Hour_0800, Hour_0830 = Hour_0830 + @Hour_0830,
  9416. Hour_0900 = Hour_0900 + @Hour_0900, Hour_0930 = Hour_0930 + @Hour_0930,
  9417. Hour_1000 = Hour_1000 + @Hour_1000, Hour_1030 = Hour_1030 + @Hour_1030,
  9418. Hour_1100 = Hour_1100 + @Hour_1100, Hour_1130 = Hour_1130 + @Hour_1130,
  9419. Hour_1200 = Hour_1200 + @Hour_1200, Hour_1230 = Hour_1230 + @Hour_1230,
  9420. Hour_1300 = Hour_1300 + @Hour_1300, Hour_1330 = Hour_1330 + @Hour_1330,
  9421. Hour_1400 = Hour_1400 + @Hour_1400, Hour_1430 = Hour_1430 + @Hour_1430,
  9422. Hour_1500 = Hour_1500 + @Hour_1500, Hour_1530 = Hour_1530 + @Hour_1530,
  9423. Hour_1600 = Hour_1600 + @Hour_1600, Hour_1630 = Hour_1630 + @Hour_1630,
  9424. Hour_1700 = Hour_1700 + @Hour_1700, Hour_1730 = Hour_1730 + @Hour_1730,
  9425. Hour_1800 = Hour_1800 + @Hour_1800, Hour_1830 = Hour_1830 + @Hour_1830,
  9426. Hour_1900 = Hour_1900 + @Hour_1900, Hour_1930 = Hour_1930 + @Hour_1930,
  9427. Hour_2000 = Hour_2000 + @Hour_2000, Hour_2030 = Hour_2030 + @Hour_2030,
  9428. Hour_2100 = Hour_2100 + @Hour_2100, Hour_2130 = Hour_2130 + @Hour_2130,
  9429. Hour_2200 = Hour_2200 + @Hour_2200, Hour_2230 = Hour_2230 + @Hour_2230,
  9430. Hour_2300 = Hour_2300 + @Hour_2300, Hour_2330 = Hour_2330 + @Hour_2330
  9431. WHERE
  9432. DateFlag = @DateFlag
  9433. --今天还没有
  9434. IF(@@ROWCOUNT = 0)
  9435. BEGIN
  9436. INSERT INTO [VideoUserStatMin]
  9437. (
  9438. DateFlag, Hour_0000, Hour_0030, Hour_0100, Hour_0130, Hour_0200, Hour_0230,
  9439. Hour_0300, Hour_0330, Hour_0400, Hour_0430, Hour_0500, Hour_0530,
  9440. Hour_0600, Hour_0630, Hour_0700, Hour_0730, Hour_0800, Hour_0830,
  9441. Hour_0900, Hour_0930, Hour_1000, Hour_1030, Hour_1100, Hour_1130,
  9442. Hour_1200, Hour_1230, Hour_1300, Hour_1330, Hour_1400, Hour_1430,
  9443. Hour_1500, Hour_1530, Hour_1600, Hour_1630, Hour_1700, Hour_1730,
  9444. Hour_1800, Hour_1830, Hour_1900, Hour_1930, Hour_2000, Hour_2030,
  9445. Hour_2100, Hour_2130, Hour_2200, Hour_2230, Hour_2300, Hour_2330
  9446. )
  9447. VALUES
  9448. (
  9449. @DateFlag, @Hour_0000, @Hour_0030, @Hour_0100, @Hour_0130, @Hour_0200, @Hour_0230,
  9450. @Hour_0300, @Hour_0330, @Hour_0400, @Hour_0430, @Hour_0500, @Hour_0530,
  9451. @Hour_0600, @Hour_0630, @Hour_0700, @Hour_0730, @Hour_0800, @Hour_0830,
  9452. @Hour_0900, @Hour_0930, @Hour_1000, @Hour_1030, @Hour_1100, @Hour_1130,
  9453. @Hour_1200, @Hour_1230, @Hour_1300, @Hour_1330, @Hour_1400, @Hour_1430,
  9454. @Hour_1500, @Hour_1530, @Hour_1600, @Hour_1630, @Hour_1700, @Hour_1730,
  9455. @Hour_1800, @Hour_1830, @Hour_1900, @Hour_1930, @Hour_2000, @Hour_2030,
  9456. @Hour_2100, @Hour_2130, @Hour_2200, @Hour_2230, @Hour_2300, @Hour_2330
  9457. )
  9458. END
  9459. RETURN
  9460. END
  9461. GO
  9462. /****** Object: StoredProcedure [dbo].[H5_AllUser_Register] Script Date: 2024/1/12 11:01:14 ******/
  9463. SET ANSI_NULLS ON
  9464. GO
  9465. SET QUOTED_IDENTIFIER ON
  9466. GO
  9467. -- EXEC [H5_AllUser_Register]
  9468. -- @IMei = '',
  9469. -- @NickName = '',
  9470. -- @PartnerID = 500,
  9471. -- @Version = 0,
  9472. -- @IPAddress = ''
  9473. -- ==============================================
  9474. -- Author: wolf
  9475. -- Create Date: 2015-03-13
  9476. -- Mendor: wolf
  9477. -- Alter Date: 2017-02-16
  9478. -- Description: IMei号登陆
  9479. -- ==============================================
  9480. CREATE PROCEDURE [dbo].[H5_AllUser_Register]
  9481. @IMei VARCHAR(64), --IMei
  9482. @NickName NVARCHAR(32), --昵称
  9483. @Sex TINYINT, --性别 0=默认(无) 1=男 2=女
  9484. @FaceID SMALLINT, --头像ID
  9485. @FaceUrl VARCHAR(1024), --头像地址
  9486. @PartnerID INT, --渠道
  9487. @Version INT, --版本
  9488. @IPAddress VARCHAR(16) --IP地址
  9489. AS
  9490. SET NOCOUNT ON
  9491. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  9492. SET XACT_ABORT ON
  9493. BEGIN
  9494. DECLARE @CurrTime DATETIME --System当前时间
  9495. DECLARE @Count SMALLINT --计数器
  9496. DECLARE @RetCode INT --返回值
  9497. DECLARE @Rnd INT --随机数
  9498. DECLARE @UserID INT --用户ID
  9499. DECLARE @NewNickName NVARCHAR(32) --新昵称
  9500. DECLARE @EPassword VARCHAR(32) --MD5密文
  9501. DECLARE @Msg NVARCHAR(256) --消息
  9502. DECLARE @ErrMsg NVARCHAR(4000)
  9503. DECLARE @SendAmount BIGINT --赠送
  9504. DECLARE @ForbidTime DATETIME --封号时间
  9505. DECLARE @DateFlag DATETIME --日期标识
  9506. DECLARE @SysMsgID INT --系统消息ID
  9507. DECLARE @TimeStamp INT
  9508. DECLARE @Tools VARCHAR(32)
  9509. DECLARE @Title NVARCHAR(32)
  9510. DECLARE @BindFacebook INT --绑定赠送
  9511. SET @CurrTime = GETDATE()
  9512. SET @UserID = 0
  9513. SET @RetCode = 0
  9514. SET @ForbidTime = '2021-01-01'
  9515. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  9516. SET @SysMsgID = 0
  9517. SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
  9518. SET @NewNickName = ''
  9519. --不是facebook账号
  9520. IF(@IMei IS NULL OR (LEFT(@IMei, 3) != 'fb.' AND LEFT(@IMei, 3) != 'gg.'))
  9521. BEGIN
  9522. --操作成功
  9523. SET @RetCode = 13
  9524. SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
  9525. RETURN
  9526. END
  9527. --获取用户信息
  9528. SELECT TOP 1
  9529. @UserID = UserID, @NewNickName = NickName
  9530. FROM
  9531. [AllUser]
  9532. WHERE
  9533. IMei = @IMei
  9534. ORDER BY
  9535. PayMoney DESC, RegTime DESC
  9536. IF(@UserID = 0)
  9537. BEGIN
  9538. SELECT TOP 1
  9539. @UserID = UserID, @NewNickName = NickName
  9540. FROM
  9541. [AllUser]
  9542. WHERE
  9543. deviceid = @IMei
  9544. ORDER BY
  9545. PayMoney DESC, RegTime DESC
  9546. END
  9547. --当前有用户信息,直接返回
  9548. IF(@UserID > 0)
  9549. BEGIN
  9550. --封杀时间
  9551. SELECT @ForbidTime = EndTime FROM [ForbidUser] WHERE UserID = @UserID AND EndTime > @CurrTime
  9552. --判断账号是否被封杀
  9553. IF(@ForbidTime > @CurrTime)
  9554. BEGIN
  9555. SET @RetCode = -12
  9556. SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
  9557. RETURN
  9558. END
  9559. --操作结果
  9560. SET @RetCode = 1
  9561. SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
  9562. RETURN
  9563. END
  9564. --在5分钟内限制同一个ip段只能注册2个用户,超过了则不让注册,提示:“当前网络繁忙,请稍后尝试”
  9565. IF((SELECT COUNT(RegTime) FROM [AllUser] WHERE RegTime >= DATEADD(MINUTE, -5, @CurrTime) AND RegIP = @IPAddress) >= 5)
  9566. BEGIN
  9567. SET @RetCode = 13
  9568. SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
  9569. RETURN
  9570. END
  9571. SET @Count = 0
  9572. --遍历100次
  9573. WHILE(@Count < 100)
  9574. BEGIN
  9575. --计数器+1
  9576. SET @Count = @Count + 1
  9577. --生成随机数
  9578. EXEC [Game_Rand_GetRnd] @Min = 1000000, @Max = 99999999, @Rnd = @Rnd OUTPUT
  9579. --判断是否存在
  9580. IF NOT EXISTS(SELECT UserID FROM [UserIdentity] WHERE UserID = @Rnd)
  9581. BEGIN
  9582. --添加
  9583. INSERT INTO [UserIdentity](UserID, IMei) VALUES(@Rnd, @IMei)
  9584. --用户ID
  9585. SET @UserID = @Rnd
  9586. BREAK
  9587. END
  9588. SET @ErrMsg = N'H5注册游客生成帐号异常,UserID重复!关联的信息:@IMei=' + @IMei + ',@NickName=' + @NickName + ',@PartnerID=' + LTRIM(STR(@PartnerID)) +
  9589. ',@Version=' + LTRIM(STR(@Version)) + ',@Count=' + LTRIM(STR(@Count))
  9590. --添加日志
  9591. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = @IPAddress, @Msg = @ErrMsg, @Type = 2
  9592. END
  9593. --生成随机数
  9594. EXEC [Game_Rand_GetRnd] @Min = 100000, @Max = 999999, @Rnd = @Rnd OUTPUT
  9595. --生成MD5密码
  9596. SET @EPassword = dbo.fn_MD5(@Rnd)
  9597. --昵称为空的情况
  9598. IF(LEN(@NickName) <= 0)
  9599. BEGIN
  9600. SET @NickName = 'Guest' + LTRIM(STR(@UserID))
  9601. END
  9602. --新昵称(过滤特殊字符: ', <, >)
  9603. SET @NickName = Replace(Replace(Replace(@NickName, '<', ''), '''', ''),'>','')
  9604. --生成用户信息
  9605. INSERT INTO [AllUser]
  9606. (
  9607. UserID, NickName, PartnerID, IMei, EPassword, RegTime, RegIP,
  9608. LoginTime, IPAddress, PayMoney, deviceid, RegPartnerID, UserWords,
  9609. DeviceName, Version
  9610. )
  9611. VALUES
  9612. (
  9613. @UserID, @NickName, @PartnerID, @IMei, @EPassword, @CurrTime, @IPAddress,
  9614. @CurrTime, @IPAddress, 0, '', @PartnerID, '', '', @Version
  9615. )
  9616. --头像
  9617. INSERT INTO [UserFace](UserID, FaceID, FaceUrl, Sex) VALUES(@UserID, @FaceID, @FaceUrl, @Sex)
  9618. --新昵称
  9619. SET @NewNickName = @NickName
  9620. --赠送数量
  9621. SELECT @SendAmount = RegGoldSend FROM [PlatformConfig] WHERE ConfigID = 1
  9622. IF(@SendAmount > 0)
  9623. BEGIN
  9624. --加金豆
  9625. EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = 'Register', @GameID = 0, @WantedAmount = @SendAmount,
  9626. @LogType = 5, @Remark = 'Visitor registration', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
  9627. END
  9628. --Facebook 账号注册赠送
  9629. IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.')
  9630. BEGIN
  9631. SELECT @BindFacebook = BindFacebook FROM [PlatformConfig] WHERE ConfigID = 1
  9632. IF(@BindFacebook > 0)
  9633. BEGIN
  9634. EXEC [Game_Translate_Get] @Source = N'绑定账号奖励', @Target = @Title OUTPUT
  9635. EXEC [Game_Translate_Get] @Source = N'恭喜您获得绑定账号奖励,请及时查收附件', @Target = @Msg OUTPUT
  9636. --道具
  9637. SET @Tools = '[{"ItemId":1,"Count":' + LTRIM(STR(@BindFacebook)) + '}]'
  9638. --发送邮件
  9639. EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = @Title, @Content = @Msg, @Status = 0,
  9640. @SourceName = 'Facebook Register', @Crdate = @TimeStamp, @Tools = @Tools, @SysMsgID = @SysMsgID OUTPUT
  9641. END
  9642. END
  9643. --生成新手登录任务
  9644. INSERT INTO [NewUserGift]
  9645. (
  9646. UserID, DayIndex, Status, DateFlag
  9647. )
  9648. SELECT
  9649. @UserID, DayIndex, 0, @DateFlag + (DayIndex - 1)
  9650. FROM
  9651. [NewGiftConfig]
  9652. ORDER BY
  9653. DayIndex ASC
  9654. --操作成功
  9655. SET @RetCode = 1
  9656. SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
  9657. RETURN
  9658. END
  9659. GO
  9660. /****** Object: StoredProcedure [dbo].[Job_Hour] Script Date: 2024/1/12 11:01:14 ******/
  9661. SET ANSI_NULLS ON
  9662. GO
  9663. SET QUOTED_IDENTIFIER ON
  9664. GO
  9665. -- EXEC [Job_Hour]
  9666. -- ==============================================
  9667. -- Author: wolf
  9668. -- Create Date: 2014-07-18
  9669. -- Mendor: wolf
  9670. -- Alter Date: 2017-01-05
  9671. -- Description: 每小时作业
  9672. -- ==============================================
  9673. CREATE PROCEDURE [dbo].[Job_Hour]
  9674. AS
  9675. SET NOCOUNT ON
  9676. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  9677. SET XACT_ABORT ON
  9678. BEGIN
  9679. DECLARE @CurrTime DATETIME --系统当前时间
  9680. DECLARE @BeginTime DATETIME
  9681. DECLARE @EndTime DATETIME
  9682. DECLARE @Rid INT --标识
  9683. DECLARE @OneRid INT
  9684. DECLARE @UserID INT
  9685. DECLARE @DateFlag SMALLDATETIME
  9686. DECLARE @MaxLogID INT --日志ID
  9687. DECLARE @tmptable TABLE(
  9688. Rid INT IDENTITY,
  9689. UserID INT NOT NULL
  9690. )
  9691. SET @CurrTime = GETDATE()
  9692. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  9693. SET @BeginTime = DATEADD(HOUR, -1, @CurrTime)
  9694. SET @EndTime = @CurrTime
  9695. --在线统计(元宝大厅)
  9696. EXEC [Game_OnlineStatChip_Stat]
  9697. --在线统计
  9698. EXEC [Game_OnlineStat_Stat]
  9699. --初始化表变量
  9700. INSERT INTO @tmptable(
  9701. UserID
  9702. )
  9703. SELECT
  9704. DISTINCT UserID
  9705. FROM
  9706. [t_onlinelog]
  9707. WHERE
  9708. Crdate >= @BeginTime AND Crdate < @EndTime
  9709. SET @Rid = 0
  9710. WHILE(1=1)
  9711. BEGIN
  9712. SET @OneRid = @Rid
  9713. SET @Rid = NULL
  9714. SET @UserID = NULL
  9715. SELECT TOP 1
  9716. @Rid = Rid, @UserID = UserID
  9717. FROM
  9718. @tmptable
  9719. WHERE
  9720. Rid > @OneRid
  9721. ORDER BY
  9722. Rid ASC
  9723. IF(@UserID IS NULL)
  9724. BREAK
  9725. IF(@UserID <= 0)
  9726. CONTINUE
  9727. --游戏行为统计
  9728. EXEC [Game_UserBehavior_Stat] @UserID = @UserID, @BeginTime = @BeginTime, @EndTime = @EndTime
  9729. END
  9730. --凌晨0点
  9731. IF(DATEPART(HOUR, @CurrTime) = 0)
  9732. BEGIN
  9733. --打点数据
  9734. SET @MaxLogID = (SELECT MAX(Rid) FROM [UserDot] WHERE DateFlag < @DateFlag)
  9735. IF(@MaxLogID > 0)
  9736. BEGIN
  9737. --打点数据
  9738. INSERT INTO [UserDotHistory]
  9739. (
  9740. UserID, DateFlag, Scene, Event, Action, Times
  9741. )
  9742. SELECT
  9743. UserID, DateFlag, Scene, Event, Action, Times
  9744. FROM
  9745. [UserDot]
  9746. WHERE
  9747. Rid <= @MaxLogID
  9748. --清除
  9749. DELETE FROM [UserDot] WHERE Rid <= @MaxLogID
  9750. END
  9751. --打点统计
  9752. EXEC [Game_UserDot_Stat]
  9753. --发行统计
  9754. EXEC [Game_Issue_Stat]
  9755. --时段统计
  9756. EXEC [Game_TimePeriod_Stat]
  9757. --推广渠道分析
  9758. EXEC [Game_NewUserStat_Stat] @CurrTime = @CurrTime
  9759. --留存统计
  9760. EXEC [Game_LiveStat_Stat] @CurrTime = @CurrTime
  9761. --登陆统计
  9762. EXEC [Game_UserLoginLog_Stat]
  9763. --日常统计
  9764. EXEC [Game_DailyStat_Stat]
  9765. --游戏日常统计
  9766. EXEC [Game_GameDailyStat_Stat]
  9767. --游戏日报统计
  9768. EXEC [Game_DailyReport_Stat] @CurrTime = @CurrTime
  9769. --挑战赛统计
  9770. EXEC [Game_SNGMatchReport_Stat] @CurrTime = @CurrTime
  9771. --游戏报表
  9772. EXEC [Game_GameReport_Stat] @CurrTime = @CurrTime
  9773. --标签留存统计
  9774. EXEC [Game_LabelLiveStat_Stat]
  9775. --留存统计(分类)
  9776. EXEC [Game_RetentionStat_Stat]
  9777. END
  9778. --凌晨3点
  9779. IF(DATEPART(HOUR, @CurrTime) = 3)
  9780. BEGIN
  9781. --玩牌统计
  9782. EXEC [Game_CardStat_Stat]
  9783. --游戏中途退出统计
  9784. EXEC [Game_MidwayStat_Stat]
  9785. END
  9786. RETURN
  9787. END
  9788. GO
  9789. /****** Object: StoredProcedure [dbo].[Job_Minute] Script Date: 2024/1/12 11:01:14 ******/
  9790. SET ANSI_NULLS ON
  9791. GO
  9792. SET QUOTED_IDENTIFIER ON
  9793. GO
  9794. -- EXEC [Job_Minute]
  9795. -- ==============================================
  9796. -- Author: wolf
  9797. -- Create Date: 2014-07-18
  9798. -- Mendor: wolf
  9799. -- Alter Date: 2017-01-05
  9800. -- Description: 每分钟作业
  9801. -- ==============================================
  9802. CREATE PROCEDURE [dbo].[Job_Minute]
  9803. AS
  9804. SET NOCOUNT ON
  9805. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  9806. SET XACT_ABORT ON
  9807. BEGIN
  9808. DECLARE @CurrTime DATETIME --系统当前时间
  9809. DECLARE @DateFlag SMALLDATETIME --系统当前时间
  9810. DECLARE @Min INT --分钟
  9811. DECLARE @Hour INT --小时
  9812. DECLARE @MaxLogID INT --日志ID
  9813. DECLARE @MonthFlag SMALLDATETIME --月标志
  9814. DECLARE @LastMonthFlag SMALLDATETIME --月标志
  9815. DECLARE @MaxBattleRID INT --战绩日志ID
  9816. DECLARE @MaxRecordID INT --分数集日志ID
  9817. DECLARE @MaxTime DATETIME --时间
  9818. SET @CurrTime = GETDATE()
  9819. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  9820. SET @Min = DATEPART(MINUTE, @CurrTime)
  9821. SET @Hour = DATEPART(HOUR, @CurrTime)
  9822. --游戏记录ID
  9823. SET @MaxTime = (SELECT MAX(BetTime) FROM [BetInfo])
  9824. IF(@MaxTime IS NOT NULL)
  9825. BEGIN
  9826. INSERT INTO [BetInfoHistory]
  9827. (
  9828. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
  9829. Tax, StillAmount, Status
  9830. )
  9831. SELECT
  9832. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
  9833. Tax, StillAmount, Status
  9834. FROM
  9835. [BetInfo]
  9836. WHERE
  9837. BetTime <= @MaxTime
  9838. --清理游戏记录
  9839. DELETE FROM [BetInfo] WHERE BetTime <= @MaxTime
  9840. END
  9841. --游戏记录ID
  9842. SET @MaxTime = (SELECT MAX(BetTime) FROM [ChipBetInfo])
  9843. IF(@MaxTime IS NOT NULL)
  9844. BEGIN
  9845. INSERT INTO [ChipBetInfoHistory]
  9846. (
  9847. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
  9848. Tax, StillAmount, Status
  9849. )
  9850. SELECT
  9851. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
  9852. Tax, StillAmount, Status
  9853. FROM
  9854. [ChipBetInfo]
  9855. WHERE
  9856. BetTime <= @MaxTime
  9857. --清理游戏记录
  9858. DELETE FROM [ChipBetInfo] WHERE BetTime <= @MaxTime
  9859. END
  9860. --每2分钟
  9861. IF(@Min % 2 = 0)
  9862. BEGIN
  9863. --最大记录时间
  9864. SET @MaxTime = (SELECT MAX(ResultTime) FROM [Bet] WHERE Status >= 2)
  9865. IF(@MaxTime IS NOT NULL)
  9866. BEGIN
  9867. INSERT INTO [BetInfo]
  9868. (
  9869. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
  9870. Tax, StillAmount, Status
  9871. )
  9872. SELECT
  9873. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
  9874. Tax, StillAmount, Status
  9875. FROM
  9876. [Bet]
  9877. WHERE
  9878. BetTime <= @MaxTime AND Status >= 2
  9879. --清理游戏记录
  9880. DELETE FROM [Bet] WHERE BetTime <= @MaxTime AND Status >= 2
  9881. END
  9882. --最大记录时间
  9883. SET @MaxTime = (SELECT MAX(ResultTime) FROM [ChipBet] WHERE Status >= 2)
  9884. IF(@MaxTime IS NOT NULL)
  9885. BEGIN
  9886. INSERT INTO [ChipBetInfo]
  9887. (
  9888. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
  9889. Tax, StillAmount, Status
  9890. )
  9891. SELECT
  9892. RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
  9893. Tax, StillAmount, Status
  9894. FROM
  9895. [ChipBet]
  9896. WHERE
  9897. BetTime <= @MaxTime AND Status >= 2
  9898. --清理游戏记录
  9899. DELETE FROM [ChipBet] WHERE BetTime <= @MaxTime AND Status >= 2
  9900. END
  9901. --登陆日志
  9902. SET @MaxLogID = (SELECT MAX(LogID) FROM [UserLoginLog])
  9903. IF(@MaxLogID > 0)
  9904. BEGIN
  9905. --登陆日志
  9906. INSERT INTO [UserLoginLog_bak]
  9907. (
  9908. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  9909. )
  9910. SELECT
  9911. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  9912. FROM
  9913. [UserLoginLog]
  9914. WHERE
  9915. LogID <= @MaxLogID
  9916. --清除日志
  9917. DELETE FROM [UserLoginLog] WHERE LogID <= @MaxLogID
  9918. END
  9919. END
  9920. --每10分钟左右
  9921. IF(@Min % 10 = 0)
  9922. BEGIN
  9923. --富豪排行榜
  9924. --EXEC [Game_Rank_SortTotalAmount]
  9925. --排行榜
  9926. EXEC [Game_Rank_Sort] @CurrTime = @CurrTime
  9927. --清除机器人锁
  9928. DELETE FROM MachineUserLock
  9929. --充值统计
  9930. EXEC [Game_PayStat_Stat]
  9931. --注册统计
  9932. EXEC [Game_RegStat_Stat]
  9933. --游戏记录
  9934. SET @MaxLogID = (SELECT MAX(Rid) FROM [GameData])
  9935. IF(@MaxLogID > 0)
  9936. BEGIN
  9937. INSERT INTO [GameDataHistory]
  9938. (
  9939. Rid, UserID, GameID, RoomName, RoomData, Crdate
  9940. )
  9941. SELECT
  9942. Rid, UserID, GameID, RoomName, RoomData, Crdate
  9943. FROM
  9944. [GameData]
  9945. WHERE
  9946. Rid <= @MaxLogID
  9947. --清除
  9948. DELETE FROM [GameData] WHERE Rid <= @MaxLogID
  9949. END
  9950. --足迹
  9951. SELECT @MaxLogID = (SELECT MAX(Rid) FROM [UserTrack])
  9952. IF(@MaxLogID > 0)
  9953. BEGIN
  9954. INSERT INTO [UserTrackHistory]
  9955. (
  9956. Rid, UserID, Level_1, Level_2, Level_3, Crdate
  9957. )
  9958. SELECT
  9959. Rid, UserID, Level_1, Level_2, Level_3, Crdate
  9960. FROM
  9961. [UserTrack]
  9962. WHERE
  9963. Rid <= @MaxLogID
  9964. --清除
  9965. DELETE FROM [UserTrack] WHERE Rid <= @MaxLogID
  9966. END
  9967. --视频广告记录
  9968. SELECT @MaxLogID = (SELECT MAX(Rid) FROM [UserVideoLog] WHERE Crdate < @CurrTime)
  9969. IF(@MaxLogID > 0)
  9970. BEGIN
  9971. INSERT INTO [UserVideoLogHistory]
  9972. (
  9973. Rid, VideoName, UserID, ModuleName, Status, Amount, Crdate
  9974. )
  9975. SELECT
  9976. Rid, VideoName, UserID, ModuleName, Status, Amount, Crdate
  9977. FROM
  9978. [UserVideoLog]
  9979. WHERE
  9980. Rid <= @MaxLogID
  9981. --清除
  9982. DELETE FROM [UserVideoLog] WHERE Rid <= @MaxLogID
  9983. END
  9984. --金币日志ID
  9985. SET @MaxLogID = (SELECT MAX(LogID) FROM [MoneyLog])
  9986. IF(@MaxLogID > 0)
  9987. BEGIN
  9988. --游戏金币流量统计
  9989. --EXEC [Game_MoneyFlow_Stat] @MoneyLogID = @MaxLogID
  9990. INSERT INTO [MoneyLog_bak]
  9991. (
  9992. LogID, SourceName, GameID, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  9993. TaxAmount, Remark, IPAddress, Crdate, LogType
  9994. )
  9995. SELECT
  9996. LogID, SourceName, GameID, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  9997. TaxAmount, Remark, IPAddress, Crdate, LogType
  9998. FROM
  9999. [MoneyLog]
  10000. WHERE
  10001. LogID <= @MaxLogID
  10002. --清除日志
  10003. DELETE FROM [MoneyLog] WHERE LogID <= @MaxLogID
  10004. END
  10005. --佣金日志
  10006. SET @MaxLogID = (SELECT MAX(Rid) FROM [CommissionLog])
  10007. IF(@MaxLogID > 0)
  10008. BEGIN
  10009. INSERT INTO [CommissionLogHistory]
  10010. (
  10011. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  10012. StillCommission, Direct, Memo, Crdate
  10013. )
  10014. SELECT
  10015. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  10016. StillCommission, Direct, Memo, Crdate
  10017. FROM
  10018. [CommissionLog]
  10019. WHERE
  10020. Rid <= @MaxLogID
  10021. --清除日志
  10022. DELETE FROM [CommissionLog] WHERE Rid <= @MaxLogID
  10023. END
  10024. --金币日志ID
  10025. SET @MaxLogID = (SELECT MAX(LogID) FROM [ChipLog])
  10026. IF(@MaxLogID > 0)
  10027. BEGIN
  10028. INSERT INTO [ChipLog_bak]
  10029. (
  10030. LogID, SourceName, GameID, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  10031. TaxAmount, Remark, IPAddress, Crdate, LogType
  10032. )
  10033. SELECT
  10034. LogID, SourceName, GameID, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  10035. TaxAmount, Remark, IPAddress, Crdate, LogType
  10036. FROM
  10037. [ChipLog]
  10038. WHERE
  10039. LogID <= @MaxLogID
  10040. --清除日志
  10041. DELETE FROM [ChipLog] WHERE LogID <= @MaxLogID
  10042. END
  10043. END
  10044. --每30分钟执行一次
  10045. IF(@Min IN (0, 30))
  10046. BEGIN
  10047. --每隔30分钟统计金币总量
  10048. EXEC [Game_MoneyStat_Total]
  10049. --每隔30分钟统计筹码总量
  10050. EXEC [Game_ChipStat_Total]
  10051. --每小时清理在线
  10052. DELETE FROM [t_OnlineUser] WHERE LoginTime <= DATEADD(MINUTE, -30, @CurrTime)
  10053. --在线统计(元宝大厅)
  10054. EXEC [Game_OnlineUserChip_Stat] @CurrTime = @CurrTime
  10055. --同时在线统计
  10056. EXEC [Game_OnlineUser_Stat] @CurrTime = @CurrTime
  10057. --视频用户统计
  10058. EXEC [Game_VideoUser_Stat] @CurrTime = @CurrTime
  10059. END
  10060. --整点作业
  10061. IF(@Min = 0)
  10062. BEGIN
  10063. --凌晨0点作业
  10064. IF(@Hour = 0)
  10065. BEGIN
  10066. --红包券统计
  10067. EXEC [Game_CouponTask_Stat]
  10068. --移动数据
  10069. INSERT INTO [ChipSendLogHistory]
  10070. (
  10071. Rid, DateFlag, UserID, Amount
  10072. )
  10073. SELECT
  10074. Rid, DateFlag, UserID, Amount
  10075. FROM
  10076. [ChipSendLog]
  10077. WHERE
  10078. DateFlag < @DateFlag AND IsShow = 1
  10079. --清理数据
  10080. DELETE FROM [ChipSendLog] WHERE DateFlag < @DateFlag AND IsShow = 1
  10081. END
  10082. --每天8点
  10083. IF(@Hour = 8)
  10084. BEGIN
  10085. --用户视频统计
  10086. SET @MaxLogID = (SELECT MAX(Rid) FROM [UserVideoStat] WHERE DateFlag < @DateFlag)
  10087. IF(@MaxLogID > 0)
  10088. BEGIN
  10089. --用户视频统计
  10090. INSERT INTO [UserVideoStatHistory]
  10091. (
  10092. Rid, DateFlag, UserID, PartnerID, VideoName, ModuleName, ReqTimes, PlayTimes, UnPlayTimes, Amount
  10093. )
  10094. SELECT
  10095. Rid, DateFlag, UserID, PartnerID, VideoName, ModuleName, ReqTimes, PlayTimes, UnPlayTimes, Amount
  10096. FROM
  10097. [UserVideoStat]
  10098. WHERE
  10099. Rid <= @MaxLogID
  10100. --清除日志
  10101. DELETE FROM [UserVideoStat] WHERE Rid <= @MaxLogID
  10102. END
  10103. --游戏轨迹统计
  10104. SET @MaxLogID = (SELECT MAX(Rid) FROM [UserTrackStat] WHERE DateFlag < @DateFlag)
  10105. IF(@MaxLogID > 0)
  10106. BEGIN
  10107. INSERT INTO [UserTrackStatHistory]
  10108. (
  10109. Rid, DateFlag, UserID, Level_1, Level_2, Level_3, Times
  10110. )
  10111. SELECT
  10112. Rid, DateFlag, UserID, Level_1, Level_2, Level_3, Times
  10113. FROM
  10114. [UserTrackStat]
  10115. WHERE
  10116. Rid <= @MaxLogID
  10117. --清除日志
  10118. DELETE FROM [UserTrackStat] WHERE Rid <= @MaxLogID
  10119. END
  10120. --每月8号清理日志
  10121. IF(DATEPART(DAY, @CurrTime) = 8)
  10122. BEGIN
  10123. --计算月标志
  10124. SET @MonthFlag = CONVERT(CHAR(8), @CurrTime, 120) + '01'
  10125. --金币日志
  10126. DELETE FROM [MoneyLog_bak] WHERE Crdate < @MonthFlag
  10127. --游戏记录
  10128. DELETE FROM [BetInfoHistory] WHERE BetTime < @MonthFlag
  10129. --清除登陆日志
  10130. DELETE FROM [UserLoginLog_bak] WHERE Crdate < @MonthFlag
  10131. --前一个月
  10132. SET @LastMonthFlag = DATEADD(MONTH, -1, @MonthFlag)
  10133. --系统消息
  10134. DELETE FROM [SysMessage] WHERE Crdate <= @LastMonthFlag
  10135. END
  10136. --清理过期在线日志
  10137. DELETE FROM [t_onlinelog] WHERE Crdate < @DateFlag - 1
  10138. END
  10139. END
  10140. --最耗时的统计放最后
  10141. IF(@Min IN (0, 30))
  10142. BEGIN
  10143. --视频统计
  10144. EXEC [Game_VideoStat_Stat] @CurrTime = @CurrTime
  10145. END
  10146. RETURN
  10147. END
  10148. GO
  10149. /****** Object: StoredProcedure [dbo].[Manage_AdminRole_GetList] Script Date: 2024/1/12 11:01:14 ******/
  10150. SET ANSI_NULLS ON
  10151. GO
  10152. SET QUOTED_IDENTIFIER ON
  10153. GO
  10154. -- EXEC [Manage_AdminRole_GetList]
  10155. -- ==============================================
  10156. -- Author: wolf
  10157. -- Create Date: 2013-07-09
  10158. -- Mendor: wolf
  10159. -- Alter Date: 2013-07-09
  10160. -- Description: 获取系统角色列表
  10161. -- ==============================================
  10162. CREATE PROCEDURE [dbo].[Manage_AdminRole_GetList]
  10163. AS
  10164. SET NOCOUNT ON
  10165. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10166. SET XACT_ABORT ON
  10167. BEGIN
  10168. --返回信息:角色ID(AdminRoleID)(int)、角色名称(AdminRoleName)(varchar(32))
  10169. SELECT
  10170. RoleID, RoleName
  10171. FROM
  10172. [Role]
  10173. ORDER BY
  10174. RoleID ASC
  10175. RETURN
  10176. END
  10177. GO
  10178. /****** Object: StoredProcedure [dbo].[Manage_AdminRole_GetListByAdmin] Script Date: 2024/1/12 11:01:14 ******/
  10179. SET ANSI_NULLS ON
  10180. GO
  10181. SET QUOTED_IDENTIFIER ON
  10182. GO
  10183. -- EXEC [Manage_AdminRole_GetListByAdmin]
  10184. -- ==============================================
  10185. -- Author: wolf
  10186. -- Create Date: 2013-07-10
  10187. -- Mendor: wolf
  10188. -- Alter Date: 2013-07-10
  10189. -- Description: 获取用户角色列表
  10190. -- ==============================================
  10191. CREATE PROCEDURE [dbo].[Manage_AdminRole_GetListByAdmin]
  10192. @AdminUserID INT --管理用户ID
  10193. AS
  10194. SET NOCOUNT ON
  10195. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10196. SET XACT_ABORT ON
  10197. BEGIN
  10198. --返回信息:角色ID(AdminRoleID)(int)、角色名称(AdminRoleName)(varchar(32))、管理员ID(AdminUserID)(int)
  10199. SELECT
  10200. r.RoleID, r.RoleName, ISNULL(ru.AdminUserID, 0) AS AdminUserID
  10201. FROM
  10202. [Role] r LEFT JOIN [RoleUser] ru ON r.RoleID = ru.RoleID AND ru.AdminUserID = @AdminUserID
  10203. RETURN
  10204. END
  10205. GO
  10206. /****** Object: StoredProcedure [dbo].[Manage_AdminRole_GetPageList] Script Date: 2024/1/12 11:01:14 ******/
  10207. SET ANSI_NULLS ON
  10208. GO
  10209. SET QUOTED_IDENTIFIER ON
  10210. GO
  10211. -- DECLARE @AdminRoleName VARCHAR(32)
  10212. -- EXEC [Manage_AdminRole_GetPageList]
  10213. -- @AdminRoleID = 0,
  10214. -- @AdminRoleName = @AdminRoleName OUTPUT
  10215. -- SELECT @AdminRoleName AS AdminRoleName
  10216. -- ==============================================
  10217. -- Author: wolf
  10218. -- Create Date: 2013-07-09
  10219. -- Mendor: wolf
  10220. -- Alter Date: 2013-07-10
  10221. -- Description: 获取角色页面列表
  10222. -- ==============================================
  10223. CREATE PROCEDURE [dbo].[Manage_AdminRole_GetPageList]
  10224. @AdminRoleID INT, --角色ID
  10225. @AdminRoleName NVARCHAR(32) OUTPUT --角色名称
  10226. AS
  10227. SET NOCOUNT ON
  10228. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10229. SET XACT_ABORT ON
  10230. BEGIN
  10231. --角色名称
  10232. SET @AdminRoleName = (SELECT RoleName FROM [Role] WHERE RoleID = @AdminRoleID)
  10233. --返回信息:角色ID(AdminRoleID)(int)、管理页ID(AdminPageID)(int)、管理页名称(PageName)(varchar(32))
  10234. SELECT
  10235. ISNULL(arp.RoleID, 0) AS AdminRoleID, ap.AdminPageID, ap.PageName
  10236. FROM
  10237. [AdminPage] ap LEFT JOIN [RolePage] arp ON ap.AdminPageID = arp.PageID AND arp.RoleID = @AdminRoleID
  10238. ORDER BY
  10239. ap.AdminPageID ASC
  10240. RETURN
  10241. END
  10242. GO
  10243. /****** Object: StoredProcedure [dbo].[Manage_AdminRole_SetPage] Script Date: 2024/1/12 11:01:14 ******/
  10244. SET ANSI_NULLS ON
  10245. GO
  10246. SET QUOTED_IDENTIFIER ON
  10247. GO
  10248. -- EXEC [Manage_AdminRole_SetPage]
  10249. -- @OpUserID = 10001,
  10250. -- @OpUserName = '',
  10251. -- @AdminRoleID = 1,
  10252. -- @AdminPageIDs = '1,2,3,',
  10253. -- @IPAddress = '192.168.0.1'
  10254. -- ==============================================
  10255. -- Author: wolf
  10256. -- Create Date: 2013-07-10
  10257. -- Mendor: wolf
  10258. -- Alter Date: 2015-12-14
  10259. -- Description: 后台管理--设置页面
  10260. -- ==============================================
  10261. CREATE PROCEDURE [dbo].[Manage_AdminRole_SetPage]
  10262. @OpUserID INT, --操作员ID
  10263. @OpUserName VARCHAR(32), --操作员名称
  10264. @AdminRoleID INT, --管理角色ID
  10265. @AdminPageIDs VARCHAR(MAX), --页面ID集(格式如:1,2,3,)
  10266. @IPAddress VARCHAR(15) --IP地址
  10267. AS
  10268. SET NOCOUNT ON
  10269. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10270. SET XACT_ABORT ON
  10271. BEGIN
  10272. DECLARE @StartIndex INT --起始索引
  10273. DECLARE @EndIndex INT --截止索引
  10274. DECLARE @AdminPageID INT --管理页面ID
  10275. DECLARE @PageList NVARCHAR(4000) --页列表
  10276. DECLARE @Msg NVARCHAR(4000) --操作描述
  10277. DECLARE @AdminRoleName NVARCHAR(32) --管理角色名称
  10278. --申请表变量
  10279. DECLARE @tmptable TABLE(
  10280. PageID INT NOT NULL,
  10281. PageName NVARCHAR(32) NOT NULL
  10282. )
  10283. SET @StartIndex = 0
  10284. SET @EndIndex = 0
  10285. WHILE(1=1)
  10286. BEGIN
  10287. --截止索引
  10288. SET @EndIndex = CHARINDEX(',', @AdminPageIDs, @StartIndex)
  10289. IF(@EndIndex <= 0)
  10290. BREAK
  10291. --管理页面ID
  10292. SET @AdminPageID = CAST(SUBSTRING(@AdminPageIDs, @StartIndex, @EndIndex - @StartIndex) AS INT)
  10293. --初始化表变量
  10294. INSERT INTO @tmptable(PageID, PageName) VALUES(@AdminPageID, '')
  10295. --起始索引
  10296. SET @StartIndex = @EndIndex + 1
  10297. END
  10298. --删除当前管理角色的所有页面
  10299. DELETE FROM [RolePage] WHERE RoleID = @AdminRoleID
  10300. --添加新权限
  10301. INSERT INTO [RolePage]
  10302. (
  10303. RoleID, PageID
  10304. )
  10305. SELECT
  10306. @AdminRoleID, PageID
  10307. FROM
  10308. @tmptable
  10309. --页面名称
  10310. UPDATE t SET t.PageName = ap.PageName FROM @tmptable t INNER JOIN [AdminPage] ap on t.PageID = ap.AdminPageID
  10311. --管理角色名称
  10312. SET @AdminRoleName = (SELECT RoleName FROM [Role] WHERE RoleID = @AdminRoleID)
  10313. SET @Msg = 'Give role to(' + @AdminRoleName + ')Setting permissions'
  10314. --有页面
  10315. IF(@StartIndex > 0)
  10316. BEGIN
  10317. SET @Msg = @Msg + ' Current permissions:'
  10318. SET @PageList = ''
  10319. --页面名称
  10320. SELECT @PageList = @PageList + ',' + PageName FROM @tmptable
  10321. SET @Msg = @Msg + STUFF(@PageList, 1, 1, '')
  10322. END
  10323. ELSE
  10324. BEGIN
  10325. SET @Msg = @Msg + ' all permissions removed'
  10326. END
  10327. --添加日志
  10328. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
  10329. @IPAddress = @IPAddress, @Msg = @Msg
  10330. RETURN
  10331. END
  10332. GO
  10333. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_Add] Script Date: 2024/1/12 11:01:14 ******/
  10334. SET ANSI_NULLS ON
  10335. GO
  10336. SET QUOTED_IDENTIFIER ON
  10337. GO
  10338. -- DECLARE @RetCode TINYINT
  10339. -- EXEC [Manage_AdminUser_Add]
  10340. -- @OpUserID = 0,
  10341. -- @OpUserName = '',
  10342. -- @AdminUserName = '',
  10343. -- @LoginPassword = '',
  10344. -- @RetCode = @RetCode OUTPUT
  10345. -- SELECT @RetCode AS RetCode
  10346. -- =============================================
  10347. -- Author: wolf
  10348. -- Create Date: 2012-05-21
  10349. -- Mendor: wolf
  10350. -- Alter Date: 2012-05-29
  10351. -- Description: 游戏后台--添加管理用户
  10352. -- =============================================
  10353. CREATE PROCEDURE [dbo].[Manage_AdminUser_Add]
  10354. @OpUserID INT, --操作员ID
  10355. @OpUserName VARCHAR(32), --操作员名称
  10356. @AdminUserName VARCHAR(32), --管理员用户名
  10357. @LoginPassword VARCHAR(32), --登录密码(MD5加密)
  10358. @IPAddress VARCHAR(16), --IP地址
  10359. @RetCode TINYINT OUTPUT --操作结果
  10360. --1:操作成功
  10361. --数据库:11:用户名已经存在
  10362. AS
  10363. SET NOCOUNT ON
  10364. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10365. SET XACT_ABORT ON
  10366. BEGIN
  10367. DECLARE @CurrTime DATETIME --系统当前时间
  10368. DECLARE @Msg VARCHAR(1024) --操作描述
  10369. SET @RetCode = 1
  10370. SET @CurrTime = GETDATE()
  10371. --判断用户是否存在
  10372. IF EXISTS(SELECT AdminUserName FROM [AdminUser] WHERE AdminUserName = @AdminUserName)
  10373. BEGIN
  10374. SET @RetCode = 11
  10375. SET @Msg = 'Add management account(' + @AdminUserName + ')failed because the account alreday exists'
  10376. --添加日志
  10377. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  10378. RETURN
  10379. END
  10380. --添加用户
  10381. INSERT INTO [AdminUser]
  10382. (
  10383. AdminUserName, LoginPassword, FailureTimes, UpdateTime, Crdate, Memo, IPAddress
  10384. )
  10385. VALUES
  10386. (
  10387. @AdminUserName, @LoginPassword, 0, @CurrTime, @CurrTime, '', @IPAddress
  10388. )
  10389. SET @Msg = 'Successfully add management account(' + @AdminUserName + '),Account number ID(' + LTRIM(STR(@@IDENTITY)) + ')'
  10390. --添加日志
  10391. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  10392. RETURN
  10393. END
  10394. GO
  10395. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_Del] Script Date: 2024/1/12 11:01:14 ******/
  10396. SET ANSI_NULLS ON
  10397. GO
  10398. SET QUOTED_IDENTIFIER ON
  10399. GO
  10400. -- DECLARE @RetCode TINYINT
  10401. -- EXEC [Manage_AdminUser_Del]
  10402. -- @OpUserID = 0,
  10403. -- @OpUserName = '',
  10404. -- @AdminUserName = '',
  10405. -- @IPAddress = '',
  10406. -- @RetCode = @RetCode OUTPUT
  10407. -- SELECT @RetCode AS RetCode
  10408. -- =============================================
  10409. -- Author: wolf
  10410. -- Create Date: 2012-05-21
  10411. -- Mendor: wolf
  10412. -- Alter Date: 2012-05-24
  10413. -- Description: 后台管理,删除后台管理用户
  10414. -- =============================================
  10415. CREATE PROCEDURE [dbo].[Manage_AdminUser_Del]
  10416. @OpUserID INT, --操作用户ID
  10417. @OpUserName VARCHAR(32), --操作用户名
  10418. @AdminUserName VARCHAR(32), --管理用户名
  10419. @IPAddress VARCHAR(15), --IP地址
  10420. @RetCode TINYINT OUTPUT --操作结果
  10421. --1:操作成功
  10422. --数据库:11:操作失败
  10423. AS
  10424. SET NOCOUNT ON
  10425. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10426. SET XACT_ABORT ON
  10427. BEGIN
  10428. DECLARE @AdminUserID INT --后台用户ID
  10429. SET @RetCode = 1
  10430. --后台用户ID
  10431. SELECT @AdminUserID = AdminUserID FROM [AdminUser] WHERE AdminUserName = @AdminUserName
  10432. --1001属于系统管理员,不能删除
  10433. IF(@AdminUserID IS NULL OR @AdminUserID = 10001)
  10434. BEGIN
  10435. SET @RetCode = 11
  10436. RETURN
  10437. END
  10438. --删除管理用户
  10439. DELETE FROM [AdminUser] WHERE AdminUserName = @AdminUserName
  10440. --删除角色用户
  10441. DELETE FROM [RoleUser] WHERE AdminUserID = @AdminUserID
  10442. DECLARE @Msg VARCHAR(1024)
  10443. SET @Msg = 'Delete administrator(' + @AdminUserName + ')'
  10444. --添加日志
  10445. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
  10446. @IPAddress = @IPAddress, @Msg = @Msg
  10447. RETURN
  10448. END
  10449. GO
  10450. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  10451. SET ANSI_NULLS ON
  10452. GO
  10453. SET QUOTED_IDENTIFIER ON
  10454. GO
  10455. -- EXEC [Manage_AdminUser_GetInfo]
  10456. -- @AdminUserID = 1
  10457. -- =============================================
  10458. -- Author: wolf
  10459. -- Create Date: 2013-06-18
  10460. -- Mendor: wolf
  10461. -- Alter Date: 2015-09-17
  10462. -- Description: 后台管理--获取管理用户信息
  10463. -- =============================================
  10464. CREATE PROCEDURE [dbo].[Manage_AdminUser_GetInfo]
  10465. @AdminUserID INT --管理ID
  10466. AS
  10467. SET NOCOUNT ON
  10468. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10469. SET XACT_ABORT ON
  10470. BEGIN
  10471. DECLARE @AdminUserName VARCHAR(32) --后台管理用户
  10472. DECLARE @IPAddress VARCHAR(16) --IP地址
  10473. DECLARE @FailureTimes TINYINT --失败次数
  10474. DECLARE @UpdateTime DATETIME --更新时间
  10475. DECLARE @Crdate DATETIME --创建时间
  10476. DECLARE @RoleNames NVARCHAR(256) --角色名称集
  10477. SET @RoleNames = ''
  10478. --后台管理用户相关信息
  10479. SELECT
  10480. @AdminUserName = AdminUserName, @IPAddress = IPAddress, @FailureTimes = FailureTimes,
  10481. @UpdateTime = UpdateTime, @Crdate = Crdate
  10482. FROM
  10483. [AdminUser]
  10484. WHERE
  10485. AdminUserID = @AdminUserID
  10486. --用户不存在
  10487. IF(@@ROWCOUNT = 0)
  10488. BEGIN
  10489. --返回信息:管理用户ID(AdminUserID)、IP地址(IPAddress)、失败次数(FailureTimes)、更新时间(UpdateTime)、
  10490. -- 创建时间(Crdate)、所属角色(RoleName)
  10491. SELECT @AdminUserID AS AdminUserID, @IPAddress AS IPAddress, @FailureTimes AS FailureTimes,
  10492. @UpdateTime AS UpdateTime, @Crdate AS Crdate, @RoleNames AS RoleNames
  10493. RETURN
  10494. END
  10495. --角色名称集
  10496. SELECT
  10497. @RoleNames = @RoleNames + RoleName + ','
  10498. FROM
  10499. [Role]
  10500. WHERE
  10501. RoleID IN (SELECT RoleID FROM [RoleUser] WHERE AdminUserID = @AdminUserID)
  10502. --返回信息:管理用户ID(AdminUserID)、IP地址(IPAddress)、失败次数(FailureTimes)、更新时间(UpdateTime)、
  10503. -- 创建时间(Crdate)、所属角色(RoleName)
  10504. SELECT @AdminUserID AS AdminUserID, @IPAddress AS IPAddress, @FailureTimes AS FailureTimes,
  10505. @UpdateTime AS UpdateTime, @Crdate AS Crdate, @RoleNames AS RoleNames
  10506. RETURN
  10507. END
  10508. GO
  10509. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
  10510. SET ANSI_NULLS ON
  10511. GO
  10512. SET QUOTED_IDENTIFIER ON
  10513. GO
  10514. -- EXEC [Manage_AdminUser_GetList]
  10515. -- =============================================
  10516. -- Author: wolf
  10517. -- Create Date: 2012-05-21
  10518. -- Mendor: wolf
  10519. -- Alter Date: 2012-05-29
  10520. -- Description: 后台管理--获取后台管理用户列表
  10521. -- =============================================
  10522. CREATE PROCEDURE [dbo].[Manage_AdminUser_GetList]
  10523. AS
  10524. SET NOCOUNT ON
  10525. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10526. SET XACT_ABORT ON
  10527. BEGIN
  10528. --返回信息:管理用户ID(AdminUserID)、管理用户名(AdminUserName)、IP地址(IPAddress)、是否绑定IP(IsFixIP)、
  10529. -- 失败次数(FailureTimes)、更新时间(UpdateTime)、备注(Memo)、创建时间(Crdate)
  10530. SELECT
  10531. AdminUserID, AdminUserName, IPAddress, FailureTimes,
  10532. CONVERT(VARCHAR(20), UpdateTime, 120) AS UpdateTime, Memo,
  10533. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
  10534. FROM
  10535. [AdminUser]
  10536. ORDER BY
  10537. AdminUserID DESC
  10538. RETURN
  10539. END
  10540. GO
  10541. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetLogList] Script Date: 2024/1/12 11:01:14 ******/
  10542. SET ANSI_NULLS ON
  10543. GO
  10544. SET QUOTED_IDENTIFIER ON
  10545. GO
  10546. -- DECLARE @RecordCount INT
  10547. -- EXEC [Manage_AdminUser_GetLogList]
  10548. -- @AdminUserID = 0,
  10549. -- @StartTime = '',
  10550. -- @EndTime = '',
  10551. -- @PageIndex = 1,
  10552. -- @PageSize = 10,
  10553. -- @RecordCount = @RecordCount OUTPUT
  10554. -- SELECT @RecordCount AS RecordCount
  10555. -- =============================================
  10556. -- Author: wolf
  10557. -- Create Date: 2012-05-24
  10558. -- Mendor: wolf
  10559. -- Alter Date: 2014-07-23
  10560. -- Description: 后台管理--操作日志
  10561. -- =============================================
  10562. CREATE PROCEDURE [dbo].[Manage_AdminUser_GetLogList]
  10563. @AdminUserID INT, --管理员ID
  10564. @StartTime DATETIME, --开始时间
  10565. @EndTime DATETIME, --截止时间
  10566. @PageIndex INT = 1, --页索引
  10567. @PageSize INT = 10, --页大小
  10568. @RecordCount INT OUTPUT --总记录数
  10569. AS
  10570. SET NOCOUNT ON
  10571. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10572. SET XACT_ABORT ON
  10573. BEGIN
  10574. DECLARE @StartRowIndex INT --起始索引
  10575. DECLARE @EndRowIndex INT --终止索引
  10576. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  10577. SET @EndRowIndex = @PageIndex * @PageSize
  10578. --创建临时表
  10579. CREATE TABLE #tmpLog
  10580. (
  10581. AdminLogID INT NOT NULL,
  10582. AdminUserID INT NOT NULL,
  10583. AdminUserName VARCHAR(32) NOT NULL,
  10584. IPAddress VARCHAR(15) NOT NULL,
  10585. Msg NVARCHAR(4000) NOT NULL,
  10586. Crdate DATETIME NOT NULL
  10587. )
  10588. --查询某个管理员日志
  10589. IF(@AdminUserID > 0)
  10590. BEGIN
  10591. INSERT INTO #tmpLog
  10592. (
  10593. AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
  10594. )
  10595. SELECT
  10596. AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
  10597. FROM
  10598. [AdminLog]
  10599. WHERE
  10600. AdminUserID = @AdminUserID AND Crdate BETWEEN @StartTime AND @EndTime
  10601. --总记录数
  10602. SET @RecordCount = @@ROWCOUNT
  10603. END
  10604. --查询所有管理员日志
  10605. ELSE
  10606. BEGIN
  10607. INSERT INTO #tmpLog
  10608. (
  10609. AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
  10610. )
  10611. SELECT
  10612. AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
  10613. FROM
  10614. [AdminLog]
  10615. WHERE
  10616. Crdate BETWEEN @StartTime AND @EndTime
  10617. --总记录数
  10618. SET @RecordCount = @@ROWCOUNT
  10619. END
  10620. ;WITH [List] AS
  10621. (
  10622. SELECT
  10623. ROW_NUMBER() OVER(ORDER BY AdminLogID DESC) AS RowNumber,
  10624. AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
  10625. FROM
  10626. #tmpLog
  10627. )
  10628. --返回信息:日志ID(AdminLogID)、管理员ID(AdminUserID)、管理员名称(AdminUserName)、
  10629. -- IP地址(IPAddress)、消息(Msg)、创建时间(Crdate)
  10630. SELECT
  10631. AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg,
  10632. CONVERT(CHAR(20), Crdate, 120) AS Crdate
  10633. FROM
  10634. [List]
  10635. WHERE
  10636. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  10637. ORDER BY
  10638. RowNumber ASC
  10639. --删除临时表
  10640. DROP TABLE #tmpLog
  10641. RETURN
  10642. END
  10643. GO
  10644. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetPageList] Script Date: 2024/1/12 11:01:14 ******/
  10645. SET ANSI_NULLS ON
  10646. GO
  10647. SET QUOTED_IDENTIFIER ON
  10648. GO
  10649. -- DECLARE @RetCode TINYINT
  10650. -- EXEC [Manage_AdminUser_GetPageList]
  10651. -- @AdminUserName = '',
  10652. -- @RetCode = @RetCode OUTPUT
  10653. -- SELECT @RetCode AS RetCode
  10654. -- =============================================
  10655. -- Author: wolf
  10656. -- Create Date: 2013-06-18
  10657. -- Mendor: wolf
  10658. -- Alter Date: 2016-11-24
  10659. -- Description: 后台管理--获取页面列表
  10660. -- =============================================
  10661. CREATE PROCEDURE [dbo].[Manage_AdminUser_GetPageList]
  10662. @AdminUserID INT, --后台用户ID
  10663. @RetCode TINYINT OUTPUT --操作结果
  10664. --1:操作成功
  10665. --数据库:11:第1次登录,需要修改密码
  10666. AS
  10667. SET NOCOUNT ON
  10668. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10669. SET XACT_ABORT ON
  10670. BEGIN
  10671. DECLARE @UpdateTime DATETIME --更新时间
  10672. DECLARE @Crdate DATETIME --创建时间
  10673. SET @RetCode = 1
  10674. --后台用户ID、更新时间、创建时间
  10675. SELECT
  10676. @UpdateTime = UpdateTime, @Crdate = Crdate
  10677. FROM
  10678. [AdminUser]
  10679. WHERE
  10680. AdminUserID = @AdminUserID
  10681. --判断是否已经修改密码
  10682. IF(@UpdateTime = @Crdate)
  10683. BEGIN
  10684. SET @RetCode = 11
  10685. RETURN
  10686. END
  10687. --返回信息:页面ID(AdminPageID)、页面名称(PageName)、页面路径(PageUrl)
  10688. SELECT DISTINCT
  10689. arp.PageID, ap.PageName AS PageName, ap.PageUrl, ap.IsMenu
  10690. FROM
  10691. [RoleUser] ru INNER JOIN [Role] r ON ru.RoleID = r.RoleID
  10692. INNER JOIN [RolePage] arp ON arp.RoleID = r.RoleID
  10693. INNER JOIN [AdminPage] ap ON ap.AdminPageID = arp.PageID
  10694. WHERE
  10695. ru.AdminUserID = @AdminUserID AND ap.IsMenu >= 1
  10696. ORDER BY
  10697. arp.PageID ASC
  10698. RETURN
  10699. END
  10700. GO
  10701. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetPassword] Script Date: 2024/1/12 11:01:14 ******/
  10702. SET ANSI_NULLS ON
  10703. GO
  10704. SET QUOTED_IDENTIFIER ON
  10705. GO
  10706. -- EXEC [Manage_AdminUser_GetPassword]
  10707. -- =============================================
  10708. -- Author: wolf
  10709. -- Create Date: 2012-05-21
  10710. -- Mendor: wolf
  10711. -- Alter Date: 2012-05-29
  10712. -- Description: 后台管理--获取后台登录密码
  10713. -- =============================================
  10714. CREATE PROCEDURE [dbo].[Manage_AdminUser_GetPassword]
  10715. @AdminUserName VARCHAR(32), --账号名称
  10716. @IPAddress VARCHAR(16), --IP地址
  10717. @AdminUserID INT OUTPUT, --后台账号ID
  10718. @LoginPassword VARCHAR(32) OUTPUT --登录密码(MD5加密)
  10719. AS
  10720. SET NOCOUNT ON
  10721. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10722. SET XACT_ABORT ON
  10723. BEGIN
  10724. DECLARE @Msg NVARCHAR(4000) --消息
  10725. DECLARE @UpdateTime DATETIME --更新时间
  10726. DECLARE @Crdate DATETIME --创建时间
  10727. SET @AdminUserID = 0
  10728. SET @LoginPassword = ''
  10729. SET @UpdateTime = GETDATE()
  10730. SET @Crdate = @UpdateTime
  10731. --获取登录密码
  10732. SELECT
  10733. @AdminUserID = AdminUserID, @LoginPassword = LoginPassword, @UpdateTime = UpdateTime,
  10734. @Crdate = Crdate
  10735. FROM
  10736. [AdminUser]
  10737. WHERE
  10738. AdminUserName = @AdminUserName
  10739. --账号不存在
  10740. IF(@@ROWCOUNT = 0)
  10741. BEGIN
  10742. SET @Msg = N'SSO单点登录失败,账号不存在'
  10743. --添加日志
  10744. EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
  10745. RETURN
  10746. END
  10747. --未修改过密码
  10748. IF(@UpdateTime = @Crdate)
  10749. BEGIN
  10750. SET @LoginPassword = ''
  10751. SET @Msg = N'SSO单点登录失败,需修改密码'
  10752. END
  10753. ELSE
  10754. BEGIN
  10755. SET @Msg = N'SSO单点登录成功,获取后台账号信息'
  10756. END
  10757. --添加日志
  10758. EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
  10759. RETURN
  10760. END
  10761. GO
  10762. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_Login] Script Date: 2024/1/12 11:01:14 ******/
  10763. SET ANSI_NULLS ON
  10764. GO
  10765. SET QUOTED_IDENTIFIER ON
  10766. GO
  10767. -- DECLARE @RetCode TINYINT
  10768. -- DECLARE @CurrAdminUserID INT
  10769. -- DECLARE @CurrAdminUserName VARCHAR(32)
  10770. -- EXEC [Manage_AdminUser_Login]
  10771. -- @AdminUserID = 0,
  10772. -- @AdminUserName = '',
  10773. -- @LoginPassword = '',
  10774. -- @IPAddress = '',
  10775. -- @CurrAdminUserID = @CurrAdminUserID OUTPUT,
  10776. -- @CurrAdminUserName = @CurrAdminUserName OUTPUT,
  10777. -- @RetCode = @RetCode OUTPUT
  10778. -- SELECT @CurrAdminUserID AS CurrAdminUserID, @CurrAdminUserName AS CurrAdminUserName,
  10779. -- @RetCode AS RetCode
  10780. -- =============================================
  10781. -- Author: wolf
  10782. -- Create Date: 2012-05-21
  10783. -- Mendor: wolf
  10784. -- Alter Date: 2016-10-03
  10785. -- Description: 后台管理--用户登录
  10786. -- =============================================
  10787. CREATE PROCEDURE [dbo].[Manage_AdminUser_Login]
  10788. @AdminUserID INT = 0, --管理用户ID
  10789. @AdminUserName VARCHAR(32) = '', --管理用户名
  10790. @LoginPassword VARCHAR(32), --登录密码(明文)
  10791. @IPAddress VARCHAR(15), --IP地址
  10792. @CurrAdminUserID INT OUTPUT, --当前用户ID
  10793. @CurrAdminUserName VARCHAR(32) OUTPUT, --当前用户名
  10794. @RetCode TINYINT OUTPUT --操作结果
  10795. --1:操作成功
  10796. --数据库:11:数据异常 12:用户不存在 13:绑定IP,请在固定IP上登录
  10797. -- 14:密码输入错误10次 15:密码错误,请重新输入 16:第1次登录,请修改密码
  10798. AS
  10799. SET NOCOUNT ON
  10800. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10801. SET XACT_ABORT ON
  10802. BEGIN
  10803. DECLARE @OldLoginPassword VARCHAR(32) --当前登录密码
  10804. DECLARE @OldIPAddress VARCHAR(32) --当前IP地址
  10805. DECLARE @FailureTimes TINYINT --登录失败次数
  10806. DECLARE @UpdateTime DATETIME --更新时间
  10807. DECLARE @Crdate DATETIME --创建时间
  10808. DECLARE @CurrTime DATETIME --系统当前时间
  10809. DECLARE @Msg VARCHAR(1024) --消息
  10810. SET @RetCode = 1
  10811. SET @CurrAdminUserID = 0
  10812. SET @CurrAdminUserName = ''
  10813. SET @CurrTime = GETDATE()
  10814. --判断是否异常
  10815. IF(@AdminUserID <= 0 AND LEN(@AdminUserName) <= 0)
  10816. BEGIN
  10817. SET @RetCode = 11
  10818. SET @Msg = 'Login failed, account data is abnormal'
  10819. --添加日志
  10820. EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
  10821. @OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
  10822. RETURN
  10823. END
  10824. --判断密码是否为NULL
  10825. IF(@AdminUserID IS NULL OR @AdminUserName IS NULL OR @LoginPassword IS NULL)
  10826. BEGIN
  10827. SET @RetCode = 11
  10828. SET @Msg = 'Login failed, data exception'
  10829. --添加日志
  10830. EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
  10831. @OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
  10832. RETURN
  10833. END
  10834. --当前管理用户信息
  10835. SELECT
  10836. @CurrAdminUserID = AdminUserID, @CurrAdminUserName = AdminUserName,
  10837. @OldLoginPassword = LoginPassword, @OldIPAddress = IPAddress,
  10838. @FailureTimes = FailureTimes, @UpdateTime = UpdateTime,
  10839. @Crdate = Crdate
  10840. FROM
  10841. [AdminUser]
  10842. WHERE
  10843. (AdminUserID = @AdminUserID) OR (AdminUserName = @AdminUserName)
  10844. --判断用户是否存在
  10845. IF(@CurrAdminUserID IS NULL OR @CurrAdminUserID = 0)
  10846. BEGIN
  10847. SET @RetCode = 12
  10848. SET @Msg = 'Login failed, user does not exist'
  10849. --添加日志
  10850. EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
  10851. @OpUserName = @AdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
  10852. RETURN
  10853. END
  10854. --判断是否过期
  10855. IF(@UpdateTime < CONVERT(CHAR(10), GETDATE(), 120))
  10856. BEGIN
  10857. SET @FailureTimes = 0
  10858. END
  10859. --判断密码是否输入错误10次
  10860. IF(@FailureTimes >= 10)
  10861. BEGIN
  10862. SET @RetCode = 14
  10863. SET @Msg = 'Login failed, The password entered has been wrong 10 times today'
  10864. --添加日志
  10865. EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
  10866. @OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
  10867. RETURN
  10868. END
  10869. --判断密码是否正确
  10870. IF(@OldLoginPassword != dbo.fn_md5(@LoginPassword))
  10871. BEGIN
  10872. SET @RetCode = 15
  10873. SET @Msg = 'Login failed, password input error'
  10874. --失败次数+1
  10875. UPDATE
  10876. [AdminUser]
  10877. SET
  10878. FailureTimes = CASE
  10879. WHEN UpdateTime >= CONVERT(CHAR(10), GETDATE(), 120) THEN FailureTimes + 1
  10880. ELSE 1
  10881. END,
  10882. UpdateTime = GETDATE()
  10883. WHERE
  10884. AdminUserName = @CurrAdminUserName
  10885. --添加日志
  10886. EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
  10887. @OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
  10888. RETURN
  10889. END
  10890. --判断是否是第1次登录,第1次登录,提示修改密码
  10891. IF(@UpdateTime = @Crdate)
  10892. BEGIN
  10893. SET @RetCode = 16
  10894. SET @Msg = 'Login successed, need to change password'
  10895. --添加日志
  10896. EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
  10897. @OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
  10898. END
  10899. --登录成功,更新登录信息
  10900. UPDATE
  10901. [AdminUser]
  10902. SET
  10903. IPAddress = @IPAddress, FailureTimes = 0,
  10904. UpdateTime = CASE WHEN @RetCode = 1 THEN @CurrTime ELSE UpdateTime END
  10905. WHERE
  10906. AdminUserName = @CurrAdminUserName
  10907. SET @Msg = 'Login successfully'
  10908. --添加日志
  10909. EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
  10910. @OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
  10911. RETURN
  10912. END
  10913. GO
  10914. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_UpdateMemo] Script Date: 2024/1/12 11:01:14 ******/
  10915. SET ANSI_NULLS ON
  10916. GO
  10917. SET QUOTED_IDENTIFIER ON
  10918. GO
  10919. -- EXEC [Manage_AdminUser_UpdateMemo]
  10920. -- @OpUserID = 10001,
  10921. -- @OpUserName = '',
  10922. -- @AdminUserName = '',
  10923. -- @Memo = '',
  10924. -- @IPAddress = ''
  10925. -- =============================================
  10926. -- Author: wolf
  10927. -- Create Date: 2012-05-29
  10928. -- Mendor: wolf
  10929. -- Alter Date: 2012-05-29
  10930. -- Description: 后台管理--添加备注
  10931. -- =============================================
  10932. CREATE PROCEDURE [dbo].[Manage_AdminUser_UpdateMemo]
  10933. @OpUserID INT, --操作员ID
  10934. @OpUserName VARCHAR(32), --操作员名称
  10935. @AdminUserName VARCHAR(32), --管理员用户名
  10936. @Memo NVARCHAR(128), --备注
  10937. @IPAddress VARCHAR(15) --IP地址
  10938. AS
  10939. SET NOCOUNT ON
  10940. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10941. SET XACT_ABORT ON
  10942. BEGIN
  10943. DECLARE @Msg NVARCHAR(4000) --操作描述
  10944. --更新备注
  10945. UPDATE [AdminUser] SET Memo = @Memo WHERE AdminUserName = @AdminUserName
  10946. IF(LEN(@Memo) > 0)
  10947. BEGIN
  10948. SET @Msg = N'Successfully modify management account(' + @AdminUserName + ')remarks, contents:' + @Memo
  10949. END
  10950. ELSE
  10951. BEGIN
  10952. SET @Msg = N'Successfully removed the management account(' + @AdminUserName + ')remarks, There are currently no comments'
  10953. END
  10954. --添加日志
  10955. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
  10956. @IPAddress = @IPAddress, @Msg = @Msg
  10957. RETURN
  10958. END
  10959. GO
  10960. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_UpdatePassword] Script Date: 2024/1/12 11:01:14 ******/
  10961. SET ANSI_NULLS ON
  10962. GO
  10963. SET QUOTED_IDENTIFIER ON
  10964. GO
  10965. -- EXEC [Manage_AdminUser_UpdatePassword]
  10966. -- =============================================
  10967. -- Author: wolf
  10968. -- Create Date: 2012-05-21
  10969. -- Mendor: wolf
  10970. -- Alter Date: 2012-05-24
  10971. -- Description: 后台管理--修改密码
  10972. -- =============================================
  10973. CREATE PROCEDURE [dbo].[Manage_AdminUser_UpdatePassword]
  10974. @AdminUserID INT, --管理用户名
  10975. @OldPassword VARCHAR(32), --旧密码(MD5加密)
  10976. @NewPassword VARCHAR(32), --新密码(MD5加密)
  10977. @IPAddress VARCHAR(16), --IP地址
  10978. @RetCode TINYINT OUTPUT --操作结果
  10979. --1:操作成功
  10980. --数据库:11:旧密码输入错误 12:新密码不能与旧密码相同
  10981. AS
  10982. SET NOCOUNT ON
  10983. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  10984. SET XACT_ABORT ON
  10985. BEGIN
  10986. DECLARE @AdminUserName VARCHAR(32) --管理员名称
  10987. DECLARE @LoginPassword VARCHAR(32) --登录密码
  10988. DECLARE @Msg VARCHAR(1024) --操作描述
  10989. SET @RetCode = 1
  10990. SET @AdminUserName = ''
  10991. --旧密码与新密码不能相同
  10992. IF(@OldPassword = @NewPassword)
  10993. BEGIN
  10994. SET @RetCode = 12
  10995. SET @Msg = 'Old pasword and new password cannot be the same'
  10996. --添加日志
  10997. EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName,
  10998. @IPAddress = @IPAddress, @Msg = @Msg
  10999. RETURN
  11000. END
  11001. --管理员ID、登录密码
  11002. SELECT
  11003. @AdminUserName = AdminUserName, @LoginPassword = LoginPassword
  11004. FROM
  11005. [AdminUser]
  11006. WHERE
  11007. AdminUserID = @AdminUserID
  11008. --判断密码是否正确
  11009. IF(@LoginPassword IS NULL OR @LoginPassword != @OldPassword)
  11010. BEGIN
  11011. SET @RetCode = 11
  11012. SET @Msg = 'Password modification failed'
  11013. --添加日志
  11014. EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName,
  11015. @IPAddress = @IPAddress, @Msg = @Msg
  11016. RETURN
  11017. END
  11018. --更改用户密码
  11019. UPDATE [AdminUser] SET LoginPassword = @NewPassword, UpdateTime = GETDATE() WHERE AdminUserID = @AdminUserID
  11020. SET @Msg = 'Password modification successfully'
  11021. --添加日志
  11022. EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName,
  11023. @IPAddress = @IPAddress, @Msg = @Msg
  11024. RETURN
  11025. END
  11026. GO
  11027. /****** Object: StoredProcedure [dbo].[Manage_AdminUser_VerifyPage] Script Date: 2024/1/12 11:01:14 ******/
  11028. SET ANSI_NULLS ON
  11029. GO
  11030. SET QUOTED_IDENTIFIER ON
  11031. GO
  11032. -- DECLARE @RetCode TINYINT
  11033. -- EXEC [Manage_AdminUser_VerifyPage]
  11034. -- @AdminUserID = 1001,
  11035. -- @AdminPageID = 1001,
  11036. -- @RetCode = @RetCode OUTPUT
  11037. -- SELECT @RetCode AS RetCode
  11038. -- =============================================
  11039. -- Author: wolf
  11040. -- Create Date: 2013-06-18
  11041. -- Mendor: wolf
  11042. -- Alter Date: 2013-07-10
  11043. -- Description: 后台管理--验证用户访问当前页权限
  11044. -- =============================================
  11045. CREATE PROCEDURE [dbo].[Manage_AdminUser_VerifyPage]
  11046. @AdminUserID INT, --管理用户ID
  11047. @AdminPageID INT, --管理页面ID
  11048. @RetCode TINYINT OUTPUT --操作结果
  11049. --1:操作成功
  11050. --数据库:11:没有访问权限
  11051. AS
  11052. SET NOCOUNT ON
  11053. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11054. SET XACT_ABORT ON
  11055. BEGIN
  11056. SET @RetCode = 1
  11057. --判断是否有记录
  11058. IF NOT EXISTS(SELECT RoleID FROM [RolePage] WHERE RoleID IN (SELECT RoleID FROM [RoleUser] WHERE AdminUserID = @AdminUserID) AND PageID = @AdminPageID)
  11059. BEGIN
  11060. SET @RetCode = 11
  11061. RETURN
  11062. END
  11063. RETURN
  11064. END
  11065. GO
  11066. /****** Object: StoredProcedure [dbo].[Manage_AgentConfig_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  11067. SET ANSI_NULLS ON
  11068. GO
  11069. SET QUOTED_IDENTIFIER ON
  11070. GO
  11071. -- EXEC [Manage_AgentConfig_GetInfo]
  11072. -- ==============================================
  11073. -- Author: wolf
  11074. -- Create Date: 2015-03-13
  11075. -- Mendor: wolf
  11076. -- Alter Date: 2017-02-16
  11077. -- Description: 获取代理配置信息
  11078. -- ==============================================
  11079. CREATE PROCEDURE [dbo].[Manage_AgentConfig_GetInfo]
  11080. AS
  11081. SET NOCOUNT ON
  11082. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11083. SET XACT_ABORT ON
  11084. BEGIN
  11085. SELECT
  11086. IsOpen, BindSend, BetOneDirect, BetTwoDirect, TaxOneDirect, TaxTwoDirect,
  11087. PayOneDirect, PayTwoDirect, AuditEnabled
  11088. FROM
  11089. [AgentConfig]
  11090. WHERE
  11091. ConfigID = 1
  11092. RETURN
  11093. END
  11094. GO
  11095. /****** Object: StoredProcedure [dbo].[Manage_AgentConfig_Update] Script Date: 2024/1/12 11:01:14 ******/
  11096. SET ANSI_NULLS ON
  11097. GO
  11098. SET QUOTED_IDENTIFIER ON
  11099. GO
  11100. -- EXEC [Manage_AgentConfig_Update]
  11101. -- ==============================================
  11102. -- Author: wolf
  11103. -- Create Date: 2015-03-13
  11104. -- Mendor: wolf
  11105. -- Alter Date: 2017-02-16
  11106. -- Description: 获取代理配置信息
  11107. -- ==============================================
  11108. CREATE PROCEDURE [dbo].[Manage_AgentConfig_Update]
  11109. @OpUserID INT, --操作员ID
  11110. @OpUserName VARCHAR(32), --操作员名称
  11111. @IsOpen INT, --是否开启
  11112. @BindSend INT, --绑码赠送
  11113. @BetOneDirect INT, --流水1级代理返佣(以万为基数)
  11114. @BetTwoDirect INT, --流水2级代理返佣(以万为基数)
  11115. @TaxOneDirect INT, --服务费1级代理返佣(以万为基数)
  11116. @TaxTwoDirect INT, --服务费2级代理返佣(以万为基数)
  11117. @PayOneDirect INT, --充值1级代理返佣(以万为基数)
  11118. @PayTwoDirect INT, --充值2级代理返佣(以万为基数)
  11119. @AuditEnabled INT, --审核是否启用
  11120. @IPAddress VARCHAR(16), --IP地址
  11121. @RetCode TINYINT OUTPUT --操作结果
  11122. AS
  11123. SET NOCOUNT ON
  11124. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11125. SET XACT_ABORT ON
  11126. BEGIN
  11127. DECLARE @Msg NVARCHAR(4000) --操作描述
  11128. SET @RetCode = 0
  11129. UPDATE
  11130. [AgentConfig]
  11131. SET
  11132. IsOpen = @IsOpen, BindSend = @BindSend,
  11133. BetOneDirect = @BetOneDirect, BetTwoDirect = @BetTwoDirect,
  11134. TaxOneDirect = @TaxOneDirect, TaxTwoDirect = @TaxTwoDirect,
  11135. PayOneDirect = @PayOneDirect, PayTwoDirect = @PayTwoDirect,
  11136. AuditEnabled = @AuditEnabled
  11137. WHERE
  11138. ConfigID = 1
  11139. SET @Msg = N'修改代理配置信息,IsOpen=' + LTRIM(STR(@IsOpen)) + ',BindSend=' + CAST(@BindSend AS VARCHAR(32)) +
  11140. ',BetOne=' + CAST(@BetOneDirect AS VARCHAR(32)) + ',BetTwo=' + CAST(@BetTwoDirect AS VARCHAR(32)) +
  11141. ',TaxOne=' + CAST(@TaxOneDirect AS VARCHAR(32)) + ',TaxTwo=' + CAST(@TaxTwoDirect AS VARCHAR(32)) +
  11142. ',PayOne=' + CAST(@PayOneDirect AS VARCHAR(32)) + ',PayTwo=' + CAST(@PayTwoDirect AS VARCHAR(32)) +
  11143. ',AuditEnabled=' + CAST(@AuditEnabled AS VARCHAR(32))
  11144. --添加日志
  11145. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  11146. SET @RetCode = 1
  11147. RETURN
  11148. END
  11149. GO
  11150. /****** Object: StoredProcedure [dbo].[Manage_AllGame_GetList] Script Date: 2024/1/12 11:01:14 ******/
  11151. SET ANSI_NULLS ON
  11152. GO
  11153. SET QUOTED_IDENTIFIER ON
  11154. GO
  11155. -- EXEC [Manage_AllGame_GetList]
  11156. -- @GameID = 0
  11157. -- ==============================================
  11158. -- Author: wolf
  11159. -- Create Date: 2015-09-07
  11160. -- Mendor: wolf
  11161. -- Alter Date: 2016-10-31
  11162. -- Description: 所有游戏
  11163. -- ==============================================
  11164. CREATE PROCEDURE [dbo].[Manage_AllGame_GetList]
  11165. @GameID INT --游戏ID
  11166. AS
  11167. SET NOCOUNT ON
  11168. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11169. SET XACT_ABORT ON
  11170. BEGIN
  11171. --某个游戏信息
  11172. IF(@GameID > 0)
  11173. BEGIN
  11174. --返回信息:游戏ID(GameID)(int)、中文名(ChineseName)(varchar(32))、英文名(EnglishName)(varchar(32))
  11175. SELECT
  11176. GameID, ChineseName, EnglishName, DisplaySort, Enabled, DBName,
  11177. CASE
  11178. WHEN Enabled IN (1, 2) THEN ChineseName
  11179. ELSE ChineseName + '(<font color="red">Unavailable</font>)'
  11180. END AS GameName, GameType, NeedLevel
  11181. FROM
  11182. [AllGame]
  11183. WHERE
  11184. GameID = @GameID
  11185. ORDER BY
  11186. DisplaySort ASC
  11187. RETURN
  11188. END
  11189. --返回信息:游戏ID(GameID)(int)、中文名(ChineseName)(varchar(32))、英文名(EnglishName)(varchar(32))
  11190. SELECT
  11191. GameID, ChineseName, EnglishName, DisplaySort, Enabled, DBName,
  11192. CASE
  11193. WHEN Enabled IN (1, 2) THEN ChineseName
  11194. ELSE ChineseName + '(<font color="red">Unavailable</font>)'
  11195. END AS GameName, GameType, NeedLevel
  11196. FROM
  11197. [AllGame]
  11198. ORDER BY
  11199. Enabled DESC, DisplaySort ASC
  11200. RETURN
  11201. END
  11202. GO
  11203. /****** Object: StoredProcedure [dbo].[Manage_AllGame_Update] Script Date: 2024/1/12 11:01:14 ******/
  11204. SET ANSI_NULLS ON
  11205. GO
  11206. SET QUOTED_IDENTIFIER ON
  11207. GO
  11208. -- EXEC [Manage_AllGame_Update]
  11209. -- ==============================================
  11210. -- Author: wolf
  11211. -- Create Date: 2015-09-07
  11212. -- Mendor: wolf
  11213. -- Alter Date: 2016-11-17
  11214. -- Description: 游戏信息修改
  11215. -- ==============================================
  11216. CREATE PROCEDURE [dbo].[Manage_AllGame_Update]
  11217. @OpUserID INT, --操作员ID
  11218. @OpUserName VARCHAR(32), --操作员
  11219. @GameID INT, --游戏ID
  11220. @IPAddress VARCHAR(16), --IP地址
  11221. @Enabled TINYINT, --是否启用
  11222. @DisplaySort INT, --显示顺序
  11223. @GameType TINYINT, --游戏类型 (0=无限制 1=金币游戏 2=元宝游戏)
  11224. @NeedLevel INT --所需等级
  11225. AS
  11226. SET NOCOUNT ON
  11227. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11228. SET XACT_ABORT ON
  11229. BEGIN
  11230. DECLARE @Msg NVARCHAR(4000) --操作描述
  11231. DECLARE @EnglishName VARCHAR(32) --英文名
  11232. --修改当前游戏版本号
  11233. UPDATE
  11234. [AllGame]
  11235. SET
  11236. @EnglishName = EnglishName, DisplaySort = @DisplaySort, Enabled = @Enabled, GameType = @GameType, NeedLevel = @NeedLevel
  11237. WHERE
  11238. GameID = @GameID
  11239. SET @Msg = N'Modify game version information, @GameID=' + LTRIM(STR(@GameID)) + ',@EnglishName=' + @EnglishName +
  11240. ',@Enabled=' + LTRIM(STR(@Enabled)) + ',@DisplaySort=' + LTRIM(STR(@DisplaySort)) + ',@GameType=' + LTRIM(STR(@GameType)) +
  11241. ',@NeedLevel=' + LTRIM(STR(@NeedLevel))
  11242. --添加日志
  11243. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  11244. RETURN
  11245. END
  11246. GO
  11247. /****** Object: StoredProcedure [dbo].[Manage_AllUser_BindFacebook] Script Date: 2024/1/12 11:01:14 ******/
  11248. SET ANSI_NULLS ON
  11249. GO
  11250. SET QUOTED_IDENTIFIER ON
  11251. GO
  11252. -- EXEC [Manage_AllUser_BindFacebook]
  11253. -- ==============================================
  11254. -- Author: wolf
  11255. -- Create Date: 2015-03-13
  11256. -- Mendor: wolf
  11257. -- Alter Date: 2017-02-16
  11258. -- Description: 后台绑定facebook账号(多个账号)
  11259. -- ==============================================
  11260. CREATE PROCEDURE [dbo].[Manage_AllUser_BindFacebook]
  11261. @OpUserID INT, --操作员ID
  11262. @OpUserName VARCHAR(32), --操作员名称
  11263. @UserID_1 INT, --账号ID1
  11264. @UserID_2 INT, --账号ID2
  11265. @IPAddress VARCHAR(16), --IP地址
  11266. @RetCode TINYINT OUTPUT-- 操作结果
  11267. AS
  11268. SET NOCOUNT ON
  11269. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11270. SET XACT_ABORT ON
  11271. BEGIN
  11272. DECLARE @IMei_1 VARCHAR(64) --IMei
  11273. DECLARE @Facebook_1_ID VARCHAR(64) --facebook
  11274. DECLARE @RegTime_1 DATETIME --注册时间
  11275. DECLARE @IMei_2 VARCHAR(64) --IMei
  11276. DECLARE @Facebook_2_ID VARCHAR(64) --facebook
  11277. DECLARE @RegTime_2 DATETIME --注册时间
  11278. DECLARE @UserID INT --账号ID
  11279. DECLARE @IMei VARCHAR(64) --IMei
  11280. DECLARE @Amount BIGINT --金币数
  11281. DECLARE @Msg NVARCHAR(4000) --消息
  11282. SET @RetCode = 0
  11283. --账号信息
  11284. SELECT
  11285. @IMei_1 = CASE WHEN UserID = @UserID_1 THEN IMei ELSE @IMei_1 END,
  11286. @Facebook_1_ID = CASE
  11287. WHEN UserID = @UserID_1 AND LEFT(IMei, 3) IN ('fb.', 'gg.') THEN IMei
  11288. WHEN UserID = @UserID_1 AND LEFT(deviceid, 3) IN ('fb.', 'gg.') THEN deviceid
  11289. ELSE @Facebook_1_ID
  11290. END,
  11291. @RegTime_1 = CASE WHEN UserID =@UserID_1 THEN RegTime ELSE @RegTime_1 END,
  11292. @IMei_2 = CASE WHEN UserID = @UserID_2 THEN IMei ELSE @IMei_2 END,
  11293. @Facebook_2_ID = CASE
  11294. WHEN UserID = @UserID_2 AND LEFT(IMei, 3) IN ('fb.', 'gg.') THEN IMei
  11295. WHEN UserID = @UserID_2 AND LEFT(deviceid, 3) IN ('fb.', 'gg.') THEN deviceid
  11296. ELSE @Facebook_2_ID
  11297. END,
  11298. @RegTime_2 = CASE WHEN UserID =@UserID_2 THEN RegTime ELSE @RegTime_2 END
  11299. FROM
  11300. [AllUser]
  11301. WHERE
  11302. UserID IN (@UserID_1, @UserID_2)
  11303. --没有2个账号
  11304. IF(@@ROWCOUNT != 2)
  11305. BEGIN
  11306. SET @RetCode = 11
  11307. RETURN
  11308. END
  11309. --判断是否已经绑定
  11310. IF EXISTS(SELECT UserID FROM [UserBindFacebook] WHERE Facebook_1_ID = @Facebook_1_ID OR Facebook_2_ID = @Facebook_1_ID)
  11311. BEGIN
  11312. SET @RetCode = 12
  11313. RETURN
  11314. END
  11315. --判断是否已经绑定
  11316. IF EXISTS(SELECT UserID FROM [UserBindFacebook] WHERE Facebook_1_ID = @Facebook_2_ID OR Facebook_2_ID = @Facebook_2_ID)
  11317. BEGIN
  11318. SET @RetCode = 13
  11319. RETURN
  11320. END
  11321. --新账号
  11322. SET @UserID = @UserID_1
  11323. SET @IMei = @IMei_1
  11324. --账号信息无效
  11325. IF(@UserID IS NULL OR @UserID <= 0)
  11326. BEGIN
  11327. SET @RetCode = 11
  11328. RETURN
  11329. END
  11330. --关联多个facebook账号信息
  11331. INSERT INTO [UserBindFacebook]
  11332. (
  11333. UserID, IMei, Facebook_1_ID, Facebook_2_ID
  11334. )
  11335. VALUES
  11336. (
  11337. @UserID, @IMei, @Facebook_1_ID, @Facebook_2_ID
  11338. )
  11339. --加金币
  11340. SELECT @Amount = Amount FROM [Money] WHERE UserID = @UserID_2
  11341. IF(@Amount > 0)
  11342. BEGIN
  11343. --清理
  11344. UPDATE [Money] SET Amount = 0 WHERE UserID = @UserID_2
  11345. --补给旧账号
  11346. UPDATE [Money] SET Amount = Amount + @Amount WHERE UserID = @UserID_1
  11347. IF(@@ROWCOUNT = 0)
  11348. BEGIN
  11349. INSERT INTO [Money]
  11350. (
  11351. UserID, Amount, Bank, RegisterTime, RefreshTime
  11352. )
  11353. VALUES
  11354. (
  11355. @UserID, @Amount, 0, GETDATE(), GETDATE()
  11356. )
  11357. END
  11358. END
  11359. SET @Msg = N'关联多个facebook账号!关联的信息:@UserID_1=' + LTRIM(STR(@UserID_1)) + ',@UserID_2=' + LTRIM(STR(@UserID_2)) + ',@Amount=' + CAST(@Amount AS VARCHAR(32))
  11360. --添加日志
  11361. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
  11362. --操作结果
  11363. SET @RetCode = 1
  11364. RETURN
  11365. END
  11366. GO
  11367. /****** Object: StoredProcedure [dbo].[Manage_AllUser_ChangeLevel] Script Date: 2024/1/12 11:01:14 ******/
  11368. SET ANSI_NULLS ON
  11369. GO
  11370. SET QUOTED_IDENTIFIER ON
  11371. GO
  11372. -- EXEC [Manage_AllUser_ChangeLevel]
  11373. -- ==============================================
  11374. -- Author: wolf
  11375. -- Create Date: 2015-03-16
  11376. -- Mendor: wolf
  11377. -- Alter Date: 2016-04-11
  11378. -- Description: 修改用户等级
  11379. -- ==============================================
  11380. CREATE PROCEDURE [dbo].[Manage_AllUser_ChangeLevel]
  11381. @OpUserID INT, --操作员ID
  11382. @OpUserName VARCHAR(32), --操作员名称
  11383. @UserID INT, --用户ID
  11384. @Lv INT, --等级
  11385. @IPAddress VARCHAR(16) --IP地址
  11386. AS
  11387. SET NOCOUNT ON
  11388. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11389. SET XACT_ABORT ON
  11390. BEGIN
  11391. DECLARE @OldLv INT --等级
  11392. DECLARE @OldExp INT --经验
  11393. DECLARE @Msg NVARCHAR(4000) --消息
  11394. DECLARE @RetCode TINYINT
  11395. SET @RetCode = 0
  11396. SELECT @OldLv = Lv, @OldExp = Exp FROM [UserLevel] WHERE UserID = @UserID
  11397. IF(@@ROWCOUNT = 0)
  11398. BEGIN
  11399. SET @RetCode = 11
  11400. SELECT @RetCode AS RetCode
  11401. RETURN
  11402. END
  11403. --更新等级
  11404. UPDATE [UserLevel] SET Lv = @Lv WHERE UserID = @UserID
  11405. IF(@@ROWCOUNT = 0)
  11406. BEGIN
  11407. SET @RetCode = 12
  11408. SELECT @RetCode AS RetCode
  11409. RETURN
  11410. END
  11411. SET @Msg = N'后台修改等级,@UserID=' + LTRIM(STR(@UserID)) + ',@OldLv=' + LTRIM(STR(@OldLv)) + ',@OldExp=' + LTRIM(STR(@OldExp))
  11412. --添加后台操作日志
  11413. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @IPAddress = @IPAddress, @Msg = @Msg, @Type = 1
  11414. SET @RetCode = 1
  11415. SELECT @RetCode AS RetCode
  11416. RETURN
  11417. END
  11418. GO
  11419. /****** Object: StoredProcedure [dbo].[Manage_AllUser_ChangeNickName] Script Date: 2024/1/12 11:01:14 ******/
  11420. SET ANSI_NULLS ON
  11421. GO
  11422. SET QUOTED_IDENTIFIER ON
  11423. GO
  11424. -- DECLARE @RetCode TINYINT
  11425. -- EXEC [Manage_AllUser_ChangeNickName]
  11426. -- @UserID = 100,
  11427. -- @NickName = '',
  11428. -- @RetCode = @RetCode OUTPUT
  11429. -- SELECT @RetCode AS RetCode
  11430. -- ==============================================
  11431. -- Author: wolf
  11432. -- Create Date: 2015-03-16
  11433. -- Mendor: wolf
  11434. -- Alter Date: 2016-04-11
  11435. -- Description: 修改用户昵称
  11436. -- ==============================================
  11437. CREATE PROCEDURE [dbo].[Manage_AllUser_ChangeNickName]
  11438. @OpUserID INT, --操作员ID
  11439. @OpUserName VARCHAR(32), --操作员名称
  11440. @UserID INT, --用户ID
  11441. @NickName NVARCHAR(32), --昵称
  11442. @IPAddress VARCHAR(16) --IP地址
  11443. AS
  11444. SET NOCOUNT ON
  11445. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11446. SET XACT_ABORT ON
  11447. BEGIN
  11448. DECLARE @OldNickName NVARCHAR(32) --旧昵称
  11449. DECLARE @Msg NVARCHAR(4000) --消息
  11450. DECLARE @RetCode TINYINT
  11451. SET @RetCode = 0
  11452. SELECT @OldNickName = NickName FROM [AllUser] WHERE UserID = @UserID
  11453. IF(LEN(@NickName) <= 0)
  11454. BEGIN
  11455. SET @RetCode = 11
  11456. SELECT @RetCode AS RetCode
  11457. RETURN
  11458. END
  11459. --更新昵称
  11460. UPDATE [AllUser] SET NickName = @NickName, @OldNickName = NickName WHERE UserID = @UserID
  11461. IF(@@ROWCOUNT = 0)
  11462. BEGIN
  11463. SET @RetCode = 12
  11464. SELECT @RetCode AS RetCode
  11465. RETURN
  11466. END
  11467. --修改昵称日志
  11468. INSERT INTO [ChangedNickNameLog]
  11469. (
  11470. UserID, OldNickName, NewNickName, Crdate
  11471. )
  11472. VALUES
  11473. (
  11474. @UserID, @OldNickName, @NickName, GETDATE()
  11475. )
  11476. SET @Msg = N'后台修改昵称,@UserID=' + LTRIM(STR(@UserID)) + ',@NickName=' + @NickName + ',@OldNickName=' + @OldNickName
  11477. --添加后台操作日志
  11478. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @IPAddress = @IPAddress, @Msg = @Msg, @Type = 1
  11479. SET @RetCode = 1
  11480. SELECT @RetCode AS RetCode
  11481. RETURN
  11482. END
  11483. GO
  11484. /****** Object: StoredProcedure [dbo].[Manage_AllUser_ConvertReport] Script Date: 2024/1/12 11:01:14 ******/
  11485. SET ANSI_NULLS ON
  11486. GO
  11487. SET QUOTED_IDENTIFIER ON
  11488. GO
  11489. -- EXEC [Manage_AllUser_ConvertReport]
  11490. -- ==============================================
  11491. -- Author: wolf
  11492. -- Create Date: 2014-12-29
  11493. -- Mendor: wolf
  11494. -- Alter Date: 2015-06-01
  11495. -- Description: 用户转化报表
  11496. -- ==============================================
  11497. CREATE PROCEDURE [dbo].[Manage_AllUser_ConvertReport]
  11498. @DateFlag DATETIME, --日期
  11499. @IsReg TINYINT --是否含注册用户
  11500. AS
  11501. SET NOCOUNT ON
  11502. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11503. SET XACT_ABORT ON
  11504. BEGIN
  11505. DECLARE @LoginUsers INT --登录用户数
  11506. DECLARE @PlayUsers INT --游戏用户数
  11507. DECLARE @VideoReqUsers INT --广告请求用户数
  11508. DECLARE @VideoPlayUsers INT --广告播放用户数
  11509. DECLARE @PayUsers INT --付费用户数
  11510. DECLARE @BeginTime DATETIME --开始时间
  11511. DECLARE @EndTime DATETIME --截止时间
  11512. DECLARE @tmptable TABLE(
  11513. UserID INT NOT NULL --用户ID
  11514. )
  11515. SET @BeginTime = CONVERT(CHAR(10), @DateFlag, 120)
  11516. SET @EndTime = CONVERT(CHAR(11), @DateFlag, 120) + '23:59:59'
  11517. --机器人
  11518. INSERT INTO @tmptable(UserID)
  11519. SELECT UserID FROM [MachineUser]
  11520. --不含注册用户
  11521. IF(@IsReg != 1)
  11522. BEGIN
  11523. INSERT INTO @tmptable(UserID)
  11524. SELECT UserID FROM [AllUser] WHERE RegTime BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  11525. END
  11526. --1、登录用户数
  11527. --2、游戏用户数
  11528. SELECT
  11529. @LoginUsers = COUNT(DISTINCT UserID),
  11530. @PlayUsers = COUNT(DISTINCT(CASE WHEN PlaySeconds > 0 THEN UserID ELSE 0 END))
  11531. FROM
  11532. [UserDailyStat]
  11533. WHERE
  11534. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
  11535. --2、游戏用户数
  11536. /*
  11537. SELECT
  11538. @PlayUsers = COUNT(DISTINCT UserID)
  11539. FROM
  11540. [DailyBetStat]
  11541. WHERE
  11542. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
  11543. */
  11544. --3、广告请求用户数、广告播放用户数
  11545. SELECT
  11546. @VideoReqUsers = COUNT(DISTINCT (CASE WHEN ReqTimes > 0 THEN UserID ELSE 0 END)),
  11547. @VideoPlayUsers = COUNT(DISTINCT (CASE WHEN PlayTimes > 0 THEN UserID ELSE 0 END))
  11548. FROM
  11549. (
  11550. SELECT
  11551. UserID, ReqTimes, PlayTimes
  11552. FROM
  11553. [UserVideoStat]
  11554. WHERE
  11555. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
  11556. UNION
  11557. SELECT
  11558. UserID, ReqTimes, PlayTimes
  11559. FROM
  11560. [UserVideoStatHistory]
  11561. WHERE
  11562. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
  11563. ) t
  11564. --4、付费用户数
  11565. SELECT
  11566. @PayUsers = COUNT(DISTINCT UserID)
  11567. FROM
  11568. [UserPayLog]
  11569. WHERE
  11570. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
  11571. --返回信息
  11572. SELECT
  11573. ISNULL(@LoginUsers, 0) AS LoginUsers, ISNULL(@PlayUsers, 0) AS PlayUsers,
  11574. ISNULL(@VideoReqUsers, 0) AS VideoReqUsers, ISNULL(@PayUsers , 0) AS PayUsers,
  11575. ISNULL(@VideoPlayUsers, 0) AS VideoPlayUsers
  11576. RETURN
  11577. END
  11578. GO
  11579. /****** Object: StoredProcedure [dbo].[Manage_AllUser_Del] Script Date: 2024/1/12 11:01:14 ******/
  11580. SET ANSI_NULLS ON
  11581. GO
  11582. SET QUOTED_IDENTIFIER ON
  11583. GO
  11584. -- EXEC [Manage_AllUser_Del]
  11585. -- ==============================================
  11586. -- Author: wolf
  11587. -- Create Date: 2014-06-11
  11588. -- Mendor: wolf
  11589. -- Alter Date: 2014-12-29
  11590. -- Description: 删除账号
  11591. -- ==============================================
  11592. CREATE PROCEDURE [dbo].[Manage_AllUser_Del]
  11593. @OpUserID INT, --操作员ID
  11594. @OpUserName VARCHAR(32), --操作员名称
  11595. @UserID INT, --用户ID
  11596. @IPAddress VARCHAR(16), --IP地址
  11597. @RetCode TINYINT OUTPUT --操作结果
  11598. AS
  11599. SET NOCOUNT ON
  11600. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11601. SET XACT_ABORT ON
  11602. BEGIN
  11603. DECLARE @Msg NVARCHAR(4000) --消息
  11604. DECLARE @IsTest TINYINT --是否测试账号
  11605. DECLARE @NickName NVARCHAR(32) --昵称
  11606. DECLARE @IMei VARCHAR(64) --IMei
  11607. SET @RetCode = 0
  11608. SET @IsTest = 0
  11609. --判断是否测试账号
  11610. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  11611. BEGIN
  11612. SET @IsTest = 1
  11613. END
  11614. --划分到测试账号里去,可以排除数据统计
  11615. ELSE
  11616. BEGIN
  11617. UPDATE [UserIdentity] SET IMei = LTRIM(STR(UserID)), @IMei = IMei WHERE UserID = @UserID
  11618. UPDATE [AllUser] SET IMei = LTRIM(STR(UserID)), @NickName = NickName WHERE UserID = @UserID
  11619. END
  11620. --添加日志
  11621. SET @Msg = N'Del User, UserID=' + LTRIM(STR(@UserID)) + ',@NickName=' + @NickName + ',@IsTest=' + LTRIM(STR(@IsTest)) + ',IMei=' + @IMei
  11622. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  11623. --操作成功
  11624. SET @RetCode = 1
  11625. RETURN
  11626. END
  11627. GO
  11628. /****** Object: StoredProcedure [dbo].[Manage_AllUser_ExportChipStat] Script Date: 2024/1/12 11:01:14 ******/
  11629. SET ANSI_NULLS ON
  11630. GO
  11631. SET QUOTED_IDENTIFIER ON
  11632. GO
  11633. -- EXEC [Manage_AllUser_ExportChipStat]
  11634. -- =============================================
  11635. -- Author: wolf
  11636. -- Create Date: 2014-12-04
  11637. -- Mendor: wolf
  11638. -- Alter Date: 2016-09-21
  11639. -- Description: 后台管理--导出筹码变化
  11640. -- =============================================
  11641. CREATE PROCEDURE [dbo].[Manage_AllUser_ExportChipStat]
  11642. @BeginTime DATETIME, --开始时间
  11643. @EndTime DATETIME --截止时间
  11644. AS
  11645. SET NOCOUNT ON
  11646. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11647. SET XACT_ABORT ON
  11648. BEGIN
  11649. --申请表变量
  11650. DECLARE @tmptable TABLE(
  11651. UserID INT NOT NULL, --用户ID
  11652. NickName NVARCHAR(32) NOT NULL, --昵称
  11653. PartnerID INT NOT NULL, --渠道ID
  11654. PartnerName NVARCHAR(32) NOT NULL, --渠道名称
  11655. InvestAmount BIGINT NOT NULL, --投注金额
  11656. WinAmount BIGINT NOT NULL --赢金额
  11657. )
  11658. --初始化表变量
  11659. INSERT INTO @tmptable(
  11660. UserID, NickName, PartnerID, PartnerName, InvestAmount, WinAmount
  11661. )
  11662. SELECT
  11663. UserID, '', 0, '', 0, ISNULL(SUM(MoneySum), 0)
  11664. FROM
  11665. [ChipStat]
  11666. WHERE
  11667. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID > 0 AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
  11668. GROUP BY
  11669. UserID
  11670. --获取渠道ID
  11671. UPDATE
  11672. t
  11673. SET
  11674. t.NickName = u.NickName, t.PartnerID = u.PartnerID, t.PartnerName = u.PartnerID
  11675. FROM
  11676. @tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
  11677. --获取渠道名称
  11678. UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
  11679. --返回信息
  11680. SELECT
  11681. UserID, NickName, PartnerName, InvestAmount, WinAmount
  11682. FROM
  11683. @tmptable
  11684. RETURN
  11685. END
  11686. GO
  11687. /****** Object: StoredProcedure [dbo].[Manage_AllUser_ExportMoneyStat] Script Date: 2024/1/12 11:01:14 ******/
  11688. SET ANSI_NULLS ON
  11689. GO
  11690. SET QUOTED_IDENTIFIER ON
  11691. GO
  11692. -- EXEC [Manage_AllUser_ExportMoneyStat]
  11693. -- =============================================
  11694. -- Author: wolf
  11695. -- Create Date: 2014-12-04
  11696. -- Mendor: wolf
  11697. -- Alter Date: 2016-09-21
  11698. -- Description: 后台管理--导出金币变化
  11699. -- =============================================
  11700. CREATE PROCEDURE [dbo].[Manage_AllUser_ExportMoneyStat]
  11701. @BeginTime DATETIME, --开始时间
  11702. @EndTime DATETIME --截止时间
  11703. AS
  11704. SET NOCOUNT ON
  11705. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11706. SET XACT_ABORT ON
  11707. BEGIN
  11708. --申请表变量
  11709. DECLARE @tmptable TABLE(
  11710. UserID INT NOT NULL, --用户ID
  11711. NickName NVARCHAR(32) NOT NULL, --昵称
  11712. PartnerID INT NOT NULL, --渠道ID
  11713. PartnerName NVARCHAR(32) NOT NULL, --渠道名称
  11714. InvestAmount BIGINT NOT NULL, --投注金额
  11715. WinAmount BIGINT NOT NULL --赢金额
  11716. )
  11717. --初始化表变量
  11718. INSERT INTO @tmptable(
  11719. UserID, NickName, PartnerID, PartnerName, InvestAmount, WinAmount
  11720. )
  11721. SELECT
  11722. UserID, '', 0, '', 0, ISNULL(SUM(MoneySum), 0)
  11723. FROM
  11724. [MoneyStat]
  11725. WHERE
  11726. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID > 0 AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
  11727. GROUP BY
  11728. UserID
  11729. --获取渠道ID
  11730. UPDATE
  11731. t
  11732. SET
  11733. t.NickName = u.NickName, t.PartnerID = u.PartnerID, t.PartnerName = u.PartnerID
  11734. FROM
  11735. @tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
  11736. --获取渠道名称
  11737. UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
  11738. --返回信息
  11739. SELECT
  11740. UserID, NickName, PartnerName, InvestAmount, WinAmount
  11741. FROM
  11742. @tmptable
  11743. RETURN
  11744. END
  11745. GO
  11746. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetBankInfo] Script Date: 2024/1/12 11:01:14 ******/
  11747. SET ANSI_NULLS ON
  11748. GO
  11749. SET QUOTED_IDENTIFIER ON
  11750. GO
  11751. -- EXEC [Manage_AllUser_GetBankInfo]
  11752. -- ==============================================
  11753. -- Author: wolf
  11754. -- Create Date: 2016-07-11
  11755. -- Mendor: wolf
  11756. -- Alter Date: 2017-02-23
  11757. -- Description: 获取银行账号信息
  11758. -- ==============================================
  11759. CREATE PROCEDURE [dbo].[Manage_AllUser_GetBankInfo]
  11760. @UserID INT
  11761. AS
  11762. SET NOCOUNT ON
  11763. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11764. SET XACT_ABORT ON
  11765. BEGIN
  11766. --返回
  11767. SELECT
  11768. RealName, BankName, BankCode, BankCard, Mobile,
  11769. CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  11770. FROM
  11771. [UserBankInfo]
  11772. WHERE
  11773. UserID = @UserID
  11774. ORDER BY
  11775. Rid DESC
  11776. END
  11777. GO
  11778. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetChipStatDetail] Script Date: 2024/1/12 11:01:14 ******/
  11779. SET ANSI_NULLS ON
  11780. GO
  11781. SET QUOTED_IDENTIFIER ON
  11782. GO
  11783. -- EXEC [Manage_AllUser_GetChipStatDetail]
  11784. -- @UserID = 1,
  11785. -- @StartTime = '',
  11786. -- @EndTime = ''
  11787. -- ==============================================
  11788. -- Author: wolf
  11789. -- Create Date: 2014-09-02
  11790. -- Mendor: wolf
  11791. -- Alter Date: 2016-09-05
  11792. -- Description: 后台管理--用户货币变化详情
  11793. -- ==============================================
  11794. CREATE PROCEDURE [dbo].[Manage_AllUser_GetChipStatDetail]
  11795. @UserID INT, --用户ID
  11796. @StartTime DATETIME, --开始时间
  11797. @EndTime DATETIME, --截止时间
  11798. @IsGameWin TINYINT --是否输赢
  11799. AS
  11800. SET NOCOUNT ON
  11801. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11802. SET XACT_ABORT ON
  11803. BEGIN
  11804. DECLARE @NickName NVARCHAR(32) --昵称
  11805. --昵称
  11806. SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
  11807. --输赢标识
  11808. IF(@IsGameWin = 1)
  11809. BEGIN
  11810. --返回信息
  11811. SELECT
  11812. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, mlt.ChineseName,
  11813. mlt.LogTypeName, ms.MoneySum, @UserID AS UserID, @NickName AS NickName
  11814. FROM
  11815. [ChipStat] ms INNER JOIN [MoneyLogType] mlt ON ms.LogType = mlt.LogType AND mlt.IsGameWin = 1
  11816. WHERE
  11817. ms.DateFlag BETWEEN @StartTime AND @EndTime AND ms.UserID = @UserID
  11818. ORDER BY
  11819. ms.DateFlag DESC, mlt.GameID DESC, ABS(ms.MoneySum) DESC
  11820. RETURN
  11821. END
  11822. --返回信息
  11823. SELECT
  11824. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, mlt.ChineseName,
  11825. mlt.LogTypeName, ms.MoneySum, @UserID AS UserID, @NickName AS NickName
  11826. FROM
  11827. [ChipStat] ms INNER JOIN [MoneyLogType] mlt ON ms.LogType = mlt.LogType
  11828. WHERE
  11829. ms.DateFlag BETWEEN @StartTime AND @EndTime AND ms.UserID = @UserID
  11830. ORDER BY
  11831. ms.DateFlag DESC, mlt.GameID DESC, ABS(ms.MoneySum) DESC
  11832. RETURN
  11833. END
  11834. GO
  11835. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetChipStatList] Script Date: 2024/1/12 11:01:14 ******/
  11836. SET ANSI_NULLS ON
  11837. GO
  11838. SET QUOTED_IDENTIFIER ON
  11839. GO
  11840. -- EXEC [Manage_AllUser_GetChipStatList]
  11841. -- ==============================================
  11842. -- Author: wolf
  11843. -- Create Date: 2014-09-02
  11844. -- Mendor: wolf
  11845. -- Alter Date: 2016-09-05
  11846. -- Description: 后台管理--货币变化
  11847. -- ==============================================
  11848. CREATE PROCEDURE [dbo].[Manage_AllUser_GetChipStatList]
  11849. @UserID INT, --用户ID
  11850. @IsGameWin TINYINT, --是否输赢
  11851. @BeginTime DATETIME, --起始时间
  11852. @EndTime DATETIME, --截止时间
  11853. @PageIndex INT = 1, --页索引
  11854. @PageSize INT = 10, --页大小
  11855. @RecordCount INT OUTPUT, --记录数
  11856. @TotalAmount BIGINT OUTPUT --总计
  11857. AS
  11858. SET NOCOUNT ON
  11859. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11860. SET XACT_ABORT ON
  11861. BEGIN
  11862. DECLARE @StartRowIndex INT --起始行索引
  11863. DECLARE @EndRowIndex INT --截止行索引
  11864. --创建临时表
  11865. DECLARE @tmptable TABLE(
  11866. UserID INT NOT NULL, --用户ID
  11867. MoneySum BIGINT NOT NULL --总额
  11868. )
  11869. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  11870. SET @EndRowIndex = @PageIndex * @PageSize
  11871. SET @TotalAmount = 0
  11872. --某个用户
  11873. IF(@UserID > 0)
  11874. BEGIN
  11875. IF(@IsGameWin = 1)
  11876. BEGIN
  11877. INSERT INTO @tmptable(UserID, MoneySum)
  11878. SELECT
  11879. @UserID, ISNULL(SUM(MoneySum), 0)
  11880. FROM
  11881. [ChipStat]
  11882. WHERE
  11883. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
  11884. END
  11885. ELSE
  11886. BEGIN
  11887. INSERT INTO @tmptable(UserID, MoneySum)
  11888. SELECT
  11889. @UserID, ISNULL(SUM(MoneySum), 0)
  11890. FROM
  11891. [ChipStat]
  11892. WHERE
  11893. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND LogType IN (SELECT LogType FROM [MoneyLogType])
  11894. END
  11895. END
  11896. --所有用户
  11897. ELSE
  11898. BEGIN
  11899. IF(@IsGameWin = 1)
  11900. BEGIN
  11901. INSERT INTO @tmptable(UserID, MoneySum)
  11902. SELECT
  11903. UserID, ISNULL(SUM(MoneySum), 0)
  11904. FROM
  11905. [ChipStat]
  11906. WHERE
  11907. DateFlag BETWEEN @BeginTime AND @EndTime AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1) AND UserID > 0
  11908. GROUP BY
  11909. UserID
  11910. END
  11911. ELSE
  11912. BEGIN
  11913. INSERT INTO @tmptable(UserID, MoneySum)
  11914. SELECT
  11915. UserID, ISNULL(SUM(MoneySum), 0)
  11916. FROM
  11917. [ChipStat]
  11918. WHERE
  11919. DateFlag BETWEEN @BeginTime AND @EndTime AND LogType IN (SELECT LogType FROM [MoneyLogType]) AND UserID > 0
  11920. GROUP BY
  11921. UserID
  11922. END
  11923. END
  11924. --总记录数
  11925. SET @RecordCount = @@ROWCOUNT
  11926. --总计
  11927. SET @TotalAmount = ISNULL((SELECT SUM(MoneySum) FROM @tmptable WHERE UserID > 100), 0)
  11928. ;WITH [List] AS
  11929. (
  11930. SELECT
  11931. ROW_NUMBER() OVER(ORDER BY ABS(MoneySum) DESC) AS RowNumber,
  11932. UserID, MoneySum
  11933. FROM
  11934. @tmptable
  11935. )
  11936. --返回信息:用户ID(UserID)(int)、昵称(NickName)(varchar(32))、总量(MoneySum)
  11937. SELECT
  11938. l.RowNumber, l.UserID, u.NickName, l.MoneySum
  11939. FROM
  11940. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  11941. WHERE
  11942. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  11943. ORDER BY
  11944. l.RowNumber ASC
  11945. RETURN
  11946. END
  11947. GO
  11948. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  11949. SET ANSI_NULLS ON
  11950. GO
  11951. SET QUOTED_IDENTIFIER ON
  11952. GO
  11953. -- EXEC [Manage_AllUser_GetInfo]
  11954. -- =============================================
  11955. -- Author: wolf
  11956. -- Create Date: 2016-10-21
  11957. -- Mendor: wolf
  11958. -- Alter Date: 2016-10-21
  11959. -- Description: 后台用户信息
  11960. -- =============================================
  11961. CREATE PROCEDURE [dbo].[Manage_AllUser_GetInfo]
  11962. @UserID INT --用户ID
  11963. AS
  11964. SET NOCOUNT ON
  11965. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  11966. SET XACT_ABORT ON
  11967. BEGIN
  11968. DECLARE @NickName NVARCHAR(32) --昵称
  11969. DECLARE @RegPartnerID INT --注册渠道ID
  11970. DECLARE @PartnerName NVARCHAR(32) --渠道名称
  11971. DECLARE @Amount BIGINT --金币
  11972. DECLARE @Bank BIGINT --保险柜
  11973. DECLARE @VipLevel INT --VIP等级
  11974. DECLARE @PayMoney DECIMAL(18, 2) --累计充值
  11975. DECLARE @RegTime DATETIME --注册时间
  11976. DECLARE @RegIP VARCHAR(16) --注册IP
  11977. DECLARE @IMei VARCHAR(64) --IMei
  11978. DECLARE @LoginTime DATETIME --登录时间
  11979. DECLARE @LoginIP VARCHAR(16) --登录IP
  11980. DECLARE @FaceUrl VARCHAR(1024) --头像地址
  11981. DECLARE @MonthExpire DATETIME --月卡过期时间
  11982. DECLARE @UserWords NVARCHAR(256) --个性签名
  11983. DECLARE @Tel VARCHAR(32) --手机号
  11984. DECLARE @deviceid VARCHAR(64)
  11985. DECLARE @ChipAmount BIGINT --筹码金额
  11986. DECLARE @ChipBank BIGINT --筹码保险柜
  11987. DECLARE @Lv TINYINT --等级
  11988. DECLARE @Exp INT --经验
  11989. DECLARE @TotalSeconds INT --总在线时长
  11990. DECLARE @TodaySeconds INT --今天在线时长
  11991. DECLARE @HigherUserID INT --代理用户ID
  11992. DECLARE @HigherNickName NVARCHAR(32) --代理名称
  11993. DECLARE @Source NVARCHAR(128) --广告系列来源。用来标识搜索引擎、简报名称或其他来源。示例: utm_source=google
  11994. DECLARE @Medium NVARCHAR(128) ----广告系列媒介。用来标识媒介,比如电子邮件或每次点击费用。示例:utm_medium=cpc
  11995. DECLARE @DeviceName VARCHAR(32) --设备型号
  11996. SET @NickName = ''
  11997. SET @PartnerName = ''
  11998. SET @Amount = 0
  11999. SET @Bank = 0
  12000. SET @VipLevel = 0
  12001. SET @FaceUrl = ''
  12002. SET @MonthExpire = '2021-01-01'
  12003. SET @UserWords = ''
  12004. SET @Tel = ''
  12005. SET @deviceid = ''
  12006. SET @ChipAmount = 0
  12007. SET @ChipBank = 0
  12008. SET @Lv = 0
  12009. SET @Exp = 0
  12010. SET @TotalSeconds = 0
  12011. SET @TodaySeconds = 0
  12012. SET @HigherUserID = 0
  12013. SET @HigherNickName = ''
  12014. SET @Source = ''
  12015. SET @Medium = ''
  12016. SET @DeviceName = ''
  12017. --获取基本信息
  12018. SELECT
  12019. @NickName = NickName, @RegPartnerID = RegPartnerID,
  12020. @PayMoney = PayMoney, @RegTime = RegTime, @RegIP = RegIP,
  12021. @IMei = IMei, @LoginTime = LoginTime, @LoginIP = IPAddress,
  12022. @UserWords = UserWords, @deviceid = deviceid, @DeviceName = DeviceName
  12023. FROM
  12024. [AllUser]
  12025. WHERE
  12026. UserID = @UserID
  12027. IF(@@ROWCOUNT = 0)
  12028. RETURN
  12029. SET @PartnerName = LTRIM(STR(@RegPartnerID))
  12030. --获取渠道名称
  12031. SELECT @PartnerName = PartnerName FROM [Partner] WHERE PartnerID = @RegPartnerID
  12032. --金币
  12033. EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
  12034. --筹码
  12035. EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
  12036. --Vip级别
  12037. SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
  12038. --头像URL
  12039. SELECT @FaceUrl = FaceUrl FROM [UserFace] WHERE UserID = @UserID
  12040. --月卡
  12041. SELECT @MonthExpire = MonthExpire FROM [UserMonthlyCard] WHERE UserID = @UserID
  12042. --手机号
  12043. SELECT @Tel = Tel FROM [UserTel] WHERE UserID = @UserID
  12044. SELECT @Lv = Lv, @Exp = Exp FROM [UserLevel] WHERE UserID = @UserID
  12045. --在线时长
  12046. SELECT @TotalSeconds = TotalSeconds, @TodaySeconds = TodaySeconds FROM [t_onlinetime] WHERE UserID = @UserID
  12047. --代理信息
  12048. SELECT @HigherUserID = HigherUserID FROM [AgentMember] WHERE UserID = @UserID
  12049. IF(@HigherUserID > 0)
  12050. BEGIN
  12051. SELECT @HigherNickName = NickName FROM [AllUser] WHERE UserID = @HigherUserID
  12052. END
  12053. --流量渠道追踪
  12054. SELECT @Source = Source, @Medium = Medium FROM [UTM] WHERE UserID = @UserID
  12055. --返回信息
  12056. SELECT
  12057. @NickName AS NickName, @PartnerName AS PartnerName, @Amount AS Amount,
  12058. @VipLevel AS VipLevel, @PayMoney AS PayMoney, CONVERT(CHAR(20), @RegTime, 120) AS RegTime,
  12059. @RegIP AS RegIP, @IMei AS IMei, CONVERT(CHAR(20), @LoginTime, 120) AS LoginTime,
  12060. @LoginIP AS LoginIP, @FaceUrl AS FaceUrl, CONVERT(CHAR(10), @MonthExpire, 120) AS MonthExpire,
  12061. @UserWords AS UserWords, @Tel AS Tel, @deviceid AS deviceid, @ChipAmount AS ChipAmount, @ChipBank AS ChipBank,
  12062. @Lv AS Lv, @Exp AS [Exp], @TotalSeconds AS TotalSeconds, @TodaySeconds AS TodaySeconds,
  12063. @HigherUserID AS HigherUserID, @HigherNickName AS HigherNickName, @Source AS Source, @Medium AS Medium,
  12064. @DeviceName AS DeviceName
  12065. RETURN
  12066. END
  12067. GO
  12068. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
  12069. SET ANSI_NULLS ON
  12070. GO
  12071. SET QUOTED_IDENTIFIER ON
  12072. GO
  12073. -- EXEC [Manage_AllUser_GetList]
  12074. -- =============================================
  12075. -- Author: wolf
  12076. -- Create Date: 2016-10-21
  12077. -- Mendor: wolf
  12078. -- Alter Date: 2016-10-21
  12079. -- Description: 后台用户列表
  12080. -- =============================================
  12081. CREATE PROCEDURE [dbo].[Manage_AllUser_GetList]
  12082. @PartnerID INT, --渠道ID
  12083. @UserID INT, --用户ID
  12084. @NickName NVARCHAR(32), --昵称
  12085. @PageIndex INT, --页索引
  12086. @PageSize INT, --页大小
  12087. @RecordCount INT OUTPUT --总记录数
  12088. AS
  12089. SET NOCOUNT ON -- 节约反馈资源
  12090. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  12091. SET XACT_ABORT ON
  12092. BEGIN
  12093. DECLARE @StartRowIndex INT --起始行索引
  12094. DECLARE @EndRowIndex INT --截止行索引
  12095. DECLARE @tmpUser TABLE(
  12096. PartnerID INT NOT NULL, --渠道ID
  12097. UserID INT NOT NULL, --用户ID
  12098. NickName NVARCHAR(32) NOT NULL, --昵称
  12099. LoginTime DATETIME NOT NULL, --登录时间
  12100. PayMoney DECIMAL(18, 2) NOT NULL, --累计充值
  12101. RegTime DATETIME NOT NULL, --注册时间
  12102. RegIP VARCHAR(16) NOT NULL --注册IP
  12103. )
  12104. --创建临时表
  12105. DECLARE @tmptable TABLE(
  12106. PartnerID INT NOT NULL, --渠道ID
  12107. PartnerName NVARCHAR(32) NOT NULL, --渠道名称
  12108. UserID INT NOT NULL, --用户ID
  12109. NickName NVARCHAR(32) NOT NULL, --昵称
  12110. Amount BIGINT NOT NULL, --金币
  12111. VipLevel INT NOT NULL, --VIP等级
  12112. LoginTime DATETIME NOT NULL, --登陆时间
  12113. PayMoney DECIMAL(18, 2) NOT NULL, --累计充值
  12114. RegTime DATETIME NOT NULL, --注册时间
  12115. RegIP VARCHAR(16) NOT NULL --注册IP
  12116. )
  12117. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  12118. SET @EndRowIndex = @PageIndex * @PageSize
  12119. --渠道
  12120. IF(@PartnerID > 0)
  12121. BEGIN
  12122. INSERT INTO @tmpUser(PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP)
  12123. SELECT
  12124. RegPartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP
  12125. FROM
  12126. [AllUser]
  12127. WHERE
  12128. RegPartnerID = @PartnerID AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  12129. --记录数
  12130. SET @RecordCount = @@ROWCOUNT
  12131. END
  12132. --查询某个账号信息
  12133. ELSE IF(LEN(@NickName) > 0 OR @UserID > 0)
  12134. BEGIN
  12135. --查询昵称
  12136. IF(LEN(@NickName) > 0)
  12137. BEGIN
  12138. INSERT INTO @tmpUser(PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP)
  12139. SELECT
  12140. RegPartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP
  12141. FROM
  12142. [AllUser]
  12143. WHERE
  12144. NickName LIKE '%' + @NickName + '%'
  12145. --记录数
  12146. SET @RecordCount = @@ROWCOUNT
  12147. END
  12148. --查询某个ID
  12149. IF(@UserID > 0)
  12150. BEGIN
  12151. --账号不存在
  12152. IF NOT EXISTS(SELECT UserID FROM @tmpUser WHERE UserID = @UserID)
  12153. BEGIN
  12154. INSERT INTO @tmpUser(PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP)
  12155. SELECT RegPartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP FROM [AllUser] WHERE UserID = @UserID
  12156. --记录数
  12157. SET @RecordCount = @RecordCount + @@ROWCOUNT
  12158. END
  12159. END
  12160. END
  12161. --其他
  12162. ELSE
  12163. BEGIN
  12164. INSERT INTO @tmpUser(PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP)
  12165. SELECT TOP 1000
  12166. RegPartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP
  12167. FROM
  12168. [AllUser]
  12169. WHERE
  12170. UserID NOT IN (SELECT UserID FROM [MachineUser])
  12171. ORDER BY
  12172. LoginTime DESC
  12173. --记录数
  12174. SET @RecordCount = @@ROWCOUNT
  12175. END
  12176. ;WITH [List] AS
  12177. (
  12178. SELECT
  12179. ROW_NUMBER() OVER(ORDER BY RegTime DESC) AS RowNumber,
  12180. PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP
  12181. FROM
  12182. @tmpUser
  12183. )
  12184. --获取当前页用户信息
  12185. INSERT INTO @tmptable
  12186. (
  12187. PartnerID, PartnerName, UserID, NickName, Amount, VipLevel, LoginTime, PayMoney, RegTime, RegIP
  12188. )
  12189. SELECT
  12190. PartnerID, '', UserID, NickName, 0, 0, LoginTime, PayMoney, RegTime, RegIP
  12191. FROM
  12192. [List]
  12193. WHERE
  12194. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  12195. ORDER BY
  12196. RowNumber ASC
  12197. --获取渠道名称
  12198. UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
  12199. --获取金豆信息
  12200. UPDATE t SET t.Amount = m.Amount FROM @tmptable t INNER JOIN [Money] m ON t.UserID = m.UserID
  12201. --获取vip
  12202. UPDATE t SET t.VipLevel = v.VipLevel FROM @tmptable t INNER JOIN [UserVip] v ON t.UserID = v.UserID
  12203. --返回信息:
  12204. SELECT
  12205. CASE WHEN PartnerName = '' THEN LTRIM(STR(PartnerID)) ELSE PartnerName END AS PartnerName,
  12206. UserID, NickName, Amount, VipLevel, CONVERT(CHAR(23), LoginTime, 120) AS LoginTime, PayMoney,
  12207. CONVERT(VARCHAR(23), RegTime, 120) AS RegTime, RegIP
  12208. FROM
  12209. @tmptable
  12210. ORDER BY
  12211. RegTime DESC
  12212. RETURN
  12213. END
  12214. GO
  12215. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetMoneyStatDetail] Script Date: 2024/1/12 11:01:14 ******/
  12216. SET ANSI_NULLS ON
  12217. GO
  12218. SET QUOTED_IDENTIFIER ON
  12219. GO
  12220. -- EXEC [Manage_AllUser_GetMoneyStatDetail]
  12221. -- @UserID = 1,
  12222. -- @StartTime = '',
  12223. -- @EndTime = ''
  12224. -- ==============================================
  12225. -- Author: wolf
  12226. -- Create Date: 2014-09-02
  12227. -- Mendor: wolf
  12228. -- Alter Date: 2016-09-05
  12229. -- Description: 后台管理--用户货币变化详情
  12230. -- ==============================================
  12231. CREATE PROCEDURE [dbo].[Manage_AllUser_GetMoneyStatDetail]
  12232. @UserID INT, --用户ID
  12233. @StartTime DATETIME, --开始时间
  12234. @EndTime DATETIME, --截止时间
  12235. @IsGameWin TINYINT --是否输赢
  12236. AS
  12237. SET NOCOUNT ON
  12238. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  12239. SET XACT_ABORT ON
  12240. BEGIN
  12241. DECLARE @NickName NVARCHAR(32) --昵称
  12242. --昵称
  12243. SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
  12244. --输赢标识
  12245. IF(@IsGameWin = 1)
  12246. BEGIN
  12247. --返回信息
  12248. SELECT
  12249. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, mlt.ChineseName,
  12250. mlt.LogTypeName, ms.MoneySum, @UserID AS UserID, @NickName AS NickName
  12251. FROM
  12252. [MoneyStat] ms INNER JOIN [MoneyLogType] mlt ON ms.LogType = mlt.LogType AND mlt.IsGameWin = 1
  12253. WHERE
  12254. ms.DateFlag BETWEEN @StartTime AND @EndTime AND ms.UserID = @UserID
  12255. ORDER BY
  12256. ms.DateFlag DESC, mlt.GameID DESC, ABS(ms.MoneySum) DESC
  12257. RETURN
  12258. END
  12259. --返回信息
  12260. SELECT
  12261. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, mlt.ChineseName,
  12262. mlt.LogTypeName, ms.MoneySum, @UserID AS UserID, @NickName AS NickName
  12263. FROM
  12264. [MoneyStat] ms INNER JOIN [MoneyLogType] mlt ON ms.LogType = mlt.LogType
  12265. WHERE
  12266. ms.DateFlag BETWEEN @StartTime AND @EndTime AND ms.UserID = @UserID
  12267. ORDER BY
  12268. ms.DateFlag DESC, mlt.GameID DESC, ABS(ms.MoneySum) DESC
  12269. RETURN
  12270. END
  12271. GO
  12272. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetMoneyStatList] Script Date: 2024/1/12 11:01:14 ******/
  12273. SET ANSI_NULLS ON
  12274. GO
  12275. SET QUOTED_IDENTIFIER ON
  12276. GO
  12277. -- DECLARE @RecordCount INT
  12278. -- EXEC [Manage_AllUser_GetMoneyStatList]
  12279. -- @UserID = 1,
  12280. -- @PageIndex = 1,
  12281. -- @PageSize = 10,
  12282. -- @RecordCount = @RecordCount OUTPUT
  12283. -- SELECT @RecordCount AS RecordCount
  12284. -- ==============================================
  12285. -- Author: wolf
  12286. -- Create Date: 2014-09-02
  12287. -- Mendor: wolf
  12288. -- Alter Date: 2016-09-05
  12289. -- Description: 后台管理--货币变化
  12290. -- ==============================================
  12291. CREATE PROCEDURE [dbo].[Manage_AllUser_GetMoneyStatList]
  12292. @UserID INT, --用户ID
  12293. @IsGameWin TINYINT, --是否输赢
  12294. @BeginTime DATETIME, --起始时间
  12295. @EndTime DATETIME, --截止时间
  12296. @PageIndex INT = 1, --页索引
  12297. @PageSize INT = 10, --页大小
  12298. @RecordCount INT OUTPUT, --记录数
  12299. @TotalAmount BIGINT OUTPUT --总计
  12300. AS
  12301. SET NOCOUNT ON
  12302. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  12303. SET XACT_ABORT ON
  12304. BEGIN
  12305. DECLARE @StartRowIndex INT --起始行索引
  12306. DECLARE @EndRowIndex INT --截止行索引
  12307. --创建临时表
  12308. DECLARE @tmptable TABLE(
  12309. UserID INT NOT NULL, --用户ID
  12310. MoneySum BIGINT NOT NULL --总额
  12311. )
  12312. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  12313. SET @EndRowIndex = @PageIndex * @PageSize
  12314. SET @TotalAmount = 0
  12315. --某个用户
  12316. IF(@UserID > 0)
  12317. BEGIN
  12318. IF(@IsGameWin = 1)
  12319. BEGIN
  12320. INSERT INTO @tmptable(UserID, MoneySum)
  12321. SELECT
  12322. @UserID, ISNULL(SUM(MoneySum), 0)
  12323. FROM
  12324. [MoneyStat]
  12325. WHERE
  12326. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
  12327. END
  12328. ELSE
  12329. BEGIN
  12330. INSERT INTO @tmptable(UserID, MoneySum)
  12331. SELECT
  12332. @UserID, ISNULL(SUM(MoneySum), 0)
  12333. FROM
  12334. [MoneyStat]
  12335. WHERE
  12336. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND LogType IN (SELECT LogType FROM [MoneyLogType])
  12337. END
  12338. END
  12339. --所有用户
  12340. ELSE
  12341. BEGIN
  12342. IF(@IsGameWin = 1)
  12343. BEGIN
  12344. INSERT INTO @tmptable(UserID, MoneySum)
  12345. SELECT
  12346. UserID, ISNULL(SUM(MoneySum), 0)
  12347. FROM
  12348. [MoneyStat]
  12349. WHERE
  12350. DateFlag BETWEEN @BeginTime AND @EndTime AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1) AND UserID > 0
  12351. GROUP BY
  12352. UserID
  12353. END
  12354. ELSE
  12355. BEGIN
  12356. INSERT INTO @tmptable(UserID, MoneySum)
  12357. SELECT
  12358. UserID, ISNULL(SUM(MoneySum), 0)
  12359. FROM
  12360. [MoneyStat]
  12361. WHERE
  12362. DateFlag BETWEEN @BeginTime AND @EndTime AND LogType IN (SELECT LogType FROM [MoneyLogType]) AND UserID > 0
  12363. GROUP BY
  12364. UserID
  12365. END
  12366. END
  12367. --总记录数
  12368. SET @RecordCount = @@ROWCOUNT
  12369. --总计
  12370. SET @TotalAmount = ISNULL((SELECT SUM(MoneySum) FROM @tmptable WHERE UserID > 100), 0)
  12371. ;WITH [List] AS
  12372. (
  12373. SELECT
  12374. ROW_NUMBER() OVER(ORDER BY ABS(MoneySum) DESC) AS RowNumber,
  12375. UserID, MoneySum
  12376. FROM
  12377. @tmptable
  12378. )
  12379. --返回信息:用户ID(UserID)(int)、昵称(NickName)(varchar(32))、总量(MoneySum)
  12380. SELECT
  12381. l.RowNumber, l.UserID, u.NickName, l.MoneySum
  12382. FROM
  12383. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  12384. WHERE
  12385. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  12386. ORDER BY
  12387. l.RowNumber ASC
  12388. RETURN
  12389. END
  12390. GO
  12391. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetNewUserStat] Script Date: 2024/1/12 11:01:14 ******/
  12392. SET ANSI_NULLS ON
  12393. GO
  12394. SET QUOTED_IDENTIFIER ON
  12395. GO
  12396. -- EXEC [Manage_AllUser_GetNewUserStat]
  12397. -- ==============================================
  12398. -- Author: wolf
  12399. -- Create Date: 2014-12-29
  12400. -- Mendor: wolf
  12401. -- Alter Date: 2015-06-01
  12402. -- Description: 获取新注册用户统计信息
  12403. -- ==============================================
  12404. CREATE PROCEDURE [dbo].[Manage_AllUser_GetNewUserStat]
  12405. @Source NVARCHAR(128), --广告系列来源。用来标识搜索引擎、简报名称或其他来源。示例: utm_source=google
  12406. @BeginTime DATETIME, --起始时间
  12407. @EndTime DATETIME, --截止时间
  12408. @PageIndex INT, --页索引
  12409. @PageSize INT, --页大小
  12410. @RecordCount INT OUTPUT --记录数
  12411. AS
  12412. SET NOCOUNT ON
  12413. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  12414. SET XACT_ABORT ON
  12415. BEGIN
  12416. DECLARE @StartRowIndex INT --起始行索引
  12417. DECLARE @EndRowIndex INT --截止行索引
  12418. DECLARE @tmptable TABLE(
  12419. Rid INT NOT NULL, --标识
  12420. DateFlag SMALLDATETIME NOT NULL, --日期标识
  12421. Source NVARCHAR(256) NOT NULL, --UTM源
  12422. RegCount INT NOT NULL, --注册人数
  12423. LiveUsers_2 INT NOT NULL, --次日留存
  12424. PayUsers_1 INT NOT NULL, --第1天充值人数
  12425. PayMoney_1 DECIMAL(18, 2) NOT NULL, --第1天充值金额
  12426. PayMoney_2 DECIMAL(18, 2) NOT NULL, --第2天充值金额
  12427. PayMoney_3 DECIMAL(18, 2) NOT NULL, --第3天充值金额
  12428. PayMoney_7 DECIMAL(18, 2) NOT NULL, --第7天充值金额
  12429. PayMoney_14 DECIMAL(18, 2) NOT NULL, --第14天充值金额
  12430. PayMoney_30 DECIMAL(18, 2) NOT NULL --第30天充值金额
  12431. )
  12432. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  12433. SET @EndRowIndex = @PageIndex * @PageSize
  12434. IF(@Source = 'All Source v2')
  12435. BEGIN
  12436. INSERT INTO @tmptable
  12437. (
  12438. Rid, DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
  12439. PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
  12440. )
  12441. SELECT
  12442. Rid, DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
  12443. PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
  12444. FROM
  12445. [NewUserStat]
  12446. WHERE
  12447. DateFlag BETWEEN @BeginTime AND @EndTime
  12448. END
  12449. ELSE
  12450. BEGIN
  12451. INSERT INTO @tmptable
  12452. (
  12453. Rid, DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
  12454. PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
  12455. )
  12456. SELECT
  12457. Rid, DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
  12458. PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
  12459. FROM
  12460. [NewUserStat]
  12461. WHERE
  12462. DateFlag BETWEEN @BeginTime AND @EndTime AND Source = @Source
  12463. END
  12464. --记录数
  12465. SET @RecordCount = @@ROWCOUNT
  12466. ;WITH [List] AS
  12467. (
  12468. SELECT
  12469. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, RegCount DESC, Rid DESC) AS RowNumber,
  12470. DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
  12471. PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
  12472. FROM
  12473. @tmptable
  12474. )
  12475. SELECT
  12476. CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
  12477. PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
  12478. FROM
  12479. [List]
  12480. WHERE
  12481. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  12482. ORDER BY
  12483. RowNumber ASC
  12484. RETURN
  12485. END
  12486. GO
  12487. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetRegLogList] Script Date: 2024/1/12 11:01:14 ******/
  12488. SET ANSI_NULLS ON
  12489. GO
  12490. SET QUOTED_IDENTIFIER ON
  12491. GO
  12492. -- EXEC [Manage_AllUser_GetRegLogList]
  12493. -- @PartnerID = 1,
  12494. -- @BeginTime = '',
  12495. -- @EndTime = '',
  12496. -- @RecordCount = @RecordCount OUTPUT
  12497. -- SELECT @RecordCount AS RecordCount
  12498. -- ==============================================
  12499. -- Author: wolf
  12500. -- Create Date: 2014-06-11
  12501. -- Mendor: wolf
  12502. -- Alter Date: 2014-12-29
  12503. -- Description: 注册日志
  12504. -- ==============================================
  12505. CREATE PROCEDURE [dbo].[Manage_AllUser_GetRegLogList]
  12506. @PartnerIDs VARCHAR(256), --合作商ID
  12507. @SourceIDs VARCHAR(32), --注册来源
  12508. @Lv TINYINT, --等级
  12509. @Exp INT, --经验
  12510. @BeginTime DATETIME, --开始时间
  12511. @EndTime DATETIME, --结束时间
  12512. @PageIndex INT, --页索引
  12513. @PageSize INT, --页大小
  12514. @RecordCount INT OUTPUT --总记录数
  12515. AS
  12516. SET NOCOUNT ON
  12517. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  12518. SET XACT_ABORT ON
  12519. BEGIN
  12520. DECLARE @StartRowIndex INT --起始行索引
  12521. DECLARE @EndRowIndex INT --截止行索引
  12522. DECLARE @PartnerID INT --渠道ID
  12523. DECLARE @StartIndex INT --起始
  12524. DECLARE @EndIndex INT --截止
  12525. DECLARE @SourceId INT
  12526. DECLARE @tmPartner TABLE(
  12527. PartnerID INT NOT NULL --渠道ID
  12528. )
  12529. DECLARE @tmpSource TABLE(
  12530. SourceId INT NOT NULL
  12531. )
  12532. --表变量
  12533. DECLARE @tmptable TABLE(
  12534. PartnerID INT NOT NULL, --合作商ID
  12535. UserID INT NOT NULL, --用户ID
  12536. NickName NVARCHAR(32) NOT NULL, --昵称
  12537. IMei VARCHAR(64) NOT NULL, --IMei
  12538. RegIP VARCHAR(16) NOT NULL, --注册IP
  12539. RegTime DATETIME NOT NULL, --注册时间
  12540. LoginTime DATETIME NOT NULL, --登录时间
  12541. deviceid VARCHAR(64) NOT NULL, --设备号
  12542. SourceId VARCHAR(32) NOT NULL, --注册源
  12543. Lv INT NOT NULL, --等级
  12544. Exp INT NOT NULL, --经验值
  12545. GuideStep INT NOT NULL, --新手指引
  12546. UTMSource NVARCHAR(1024) NOT NULL, --流量渠道
  12547. Amount BIGINT NOT NULL, --金币
  12548. DeviceName VARCHAR(32) NOT NULL, --设备名称
  12549. PayMoney DECIMAL(18, 2) NOT NULL --累计充值
  12550. )
  12551. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  12552. SET @EndRowIndex = @PageIndex * @PageSize
  12553. SET @StartIndex = 0
  12554. SET @EndIndex = 0
  12555. WHILE(1=1)
  12556. BEGIN
  12557. SET @EndIndex = CHARINDEX(',', @PartnerIDs, @StartIndex)
  12558. IF(@EndIndex <= 0)
  12559. BREAK
  12560. SET @PartnerID = CAST(SUBSTRING(@PartnerIDs, @StartIndex, @EndIndex - @StartIndex) AS INT)
  12561. INSERT INTO @tmPartner(PartnerID) VALUES(@PartnerID)
  12562. SET @StartIndex = @EndIndex + 1
  12563. END
  12564. SET @StartIndex = 0
  12565. SET @EndIndex = 0
  12566. WHILE(1=1)
  12567. BEGIN
  12568. SET @EndIndex = CHARINDEX(',', @SourceIDs, @StartIndex)
  12569. IF(@EndIndex <= 0)
  12570. BREAK
  12571. SET @SourceId = CAST(SUBSTRING(@SourceIDs, @StartIndex, @EndIndex - @StartIndex) AS INT)
  12572. INSERT INTO @tmpSource(SourceId) VALUES(@SourceId)
  12573. SET @StartIndex = @EndIndex + 1
  12574. END
  12575. --初始化数据
  12576. INSERT INTO @tmptable
  12577. (
  12578. PartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid,
  12579. SourceId, Lv, Exp, GuideStep, UTMSource, LoginTime, Amount, DeviceName, PayMoney
  12580. )
  12581. SELECT
  12582. RegPartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid,
  12583. CASE
  12584. WHEN LEFT(IMei, 3) = 'fb.' THEN 2
  12585. WHEN LEFT(IMei, 3) = 'gg.' THEN 3
  12586. ELSE 1
  12587. END, 1, 0, 0, '', u.LoginTime, 0, u.DeviceName, u.PayMoney
  12588. FROM
  12589. [AllUser] u INNER JOIN @tmPartner t ON u.RegPartnerID = t.PartnerID
  12590. WHERE
  12591. RegTime BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  12592. --获取等级、经验
  12593. UPDATE t SET t.Lv = v.Lv, t.Exp = v.Exp FROM @tmptable t INNER JOIN [UserLevel] v ON t.UserID = v.UserID
  12594. --删除不合条件的数据
  12595. DELETE FROM @tmptable WHERE Lv < @Lv
  12596. DELETE FROM @tmptable WHERE Exp < @Exp
  12597. DELETE FROM @tmptable WHERE SourceId NOT IN (SELECT SourceId FROM @tmpSource)
  12598. --获取新手指引
  12599. UPDATE t SET t.GuideStep = ut.Status FROM @tmptable t INNER JOIN [UserTask] ut ON t.UserID = ut.UserID AND ut.TaskID = 20014
  12600. --获取流量渠道
  12601. UPDATE t SET t.UTMSource = u.Source FROM @tmptable t INNER JOIN [UTM] u ON t.UserID = u.UserID
  12602. --获取金豆信息
  12603. UPDATE t SET t.Amount = m.Amount FROM @tmptable t INNER JOIN [Money] m ON t.UserID = m.UserID
  12604. --总记录数
  12605. SELECT @RecordCount = COUNT(*) FROM @tmptable
  12606. ;WITH [List] AS
  12607. (
  12608. SELECT
  12609. ROW_NUMBER() OVER(ORDER BY RegTime DESC) AS RowNumber,
  12610. PartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid, Lv, Exp, GuideStep, UTMSource, LoginTime, Amount, DeviceName, PayMoney
  12611. FROM
  12612. @tmptable
  12613. )
  12614. --返回信息:合作商名称(PartnerName)(varchar(32))、用户ID(UserID)(int)、昵称(NickName)(varchar(32))、
  12615. -- IMei(IMei)(varchar(32))、注册IP(RegIP)(varchar(20))
  12616. SELECT
  12617. l.RowNumber, ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.UserID, l.NickName,
  12618. l.IMei, l.RegIP, CONVERT(CHAR(20), l.RegTime, 120) AS RegTime, l.deviceid, l.Lv, l.Exp, l.GuideStep,
  12619. l.UTMSource, CONVERT(CHAR(20), l.LoginTime, 120) AS LoginTime, l.Amount, l.DeviceName, l.PayMoney
  12620. FROM
  12621. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  12622. WHERE
  12623. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  12624. ORDER BY
  12625. l.RowNumber ASC
  12626. RETURN
  12627. END
  12628. GO
  12629. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetRegLogList_V2] Script Date: 2024/1/12 11:01:14 ******/
  12630. SET ANSI_NULLS ON
  12631. GO
  12632. SET QUOTED_IDENTIFIER ON
  12633. GO
  12634. -- EXEC [Manage_AllUser_GetRegLogList_V2]
  12635. -- @PartnerID = 1,
  12636. -- @BeginTime = '',
  12637. -- @EndTime = '',
  12638. -- @RecordCount = @RecordCount OUTPUT
  12639. -- SELECT @RecordCount AS RecordCount
  12640. -- ==============================================
  12641. -- Author: wolf
  12642. -- Create Date: 2014-06-11
  12643. -- Mendor: wolf
  12644. -- Alter Date: 2014-12-29
  12645. -- Description: 流量渠道注册日志
  12646. -- ==============================================
  12647. CREATE PROCEDURE [dbo].[Manage_AllUser_GetRegLogList_V2]
  12648. @UTMSources VARCHAR(1024), --合作商ID
  12649. @Lv TINYINT, --等级
  12650. @Exp INT, --经验
  12651. @BeginTime DATETIME, --开始时间
  12652. @EndTime DATETIME, --结束时间
  12653. @PageIndex INT, --页索引
  12654. @PageSize INT, --页大小
  12655. @RecordCount INT OUTPUT --总记录数
  12656. AS
  12657. SET NOCOUNT ON
  12658. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  12659. SET XACT_ABORT ON
  12660. BEGIN
  12661. DECLARE @StartRowIndex INT --起始行索引
  12662. DECLARE @EndRowIndex INT --截止行索引
  12663. DECLARE @SourceName VARCHAR(32) --源名称
  12664. DECLARE @StartIndex INT --起始
  12665. DECLARE @EndIndex INT --截止
  12666. DECLARE @tmpSource TABLE(
  12667. SourceName VARCHAR(32) NOT NULL
  12668. )
  12669. --表变量
  12670. DECLARE @tmptable TABLE(
  12671. PartnerID INT NOT NULL, --合作商ID
  12672. UserID INT NOT NULL, --用户ID
  12673. NickName NVARCHAR(32) NOT NULL, --昵称
  12674. IMei VARCHAR(64) NOT NULL, --IMei
  12675. RegIP VARCHAR(16) NOT NULL, --注册IP
  12676. RegTime DATETIME NOT NULL, --注册时间
  12677. deviceid VARCHAR(64) NOT NULL, --设备号
  12678. Lv INT NOT NULL, --等级
  12679. Exp INT NOT NULL, --经验值
  12680. GuideStep INT NOT NULL, --新手指引
  12681. UTMSource NVARCHAR(1024) NOT NULL, --流量渠道
  12682. PayMoney DECIMAL(18, 2) NOT NULL, --累计充值
  12683. DeviceName VARCHAR(32) NOT NULL, --设备名称
  12684. LoginTime DATETIME NOT NULL, --登录时间
  12685. Amount BIGINT NOT NULL, --金币
  12686. Version INT NOT NULL --版本号
  12687. )
  12688. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  12689. SET @EndRowIndex = @PageIndex * @PageSize
  12690. SET @StartIndex = 0
  12691. SET @EndIndex = 0
  12692. WHILE(1=1)
  12693. BEGIN
  12694. SET @EndIndex = CHARINDEX(',', @UTMSources, @StartIndex)
  12695. IF(@EndIndex <= 0)
  12696. BREAK
  12697. SET @SourceName = CAST(SUBSTRING(@UTMSources, @StartIndex, @EndIndex - @StartIndex) AS VARCHAR(32))
  12698. INSERT INTO @tmpSource(SourceName) VALUES(@SourceName)
  12699. SET @StartIndex = @EndIndex + 1
  12700. END
  12701. --初始化数据
  12702. INSERT INTO @tmptable
  12703. (
  12704. PartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid,
  12705. Lv, Exp, GuideStep, UTMSource, DeviceName, PayMoney, LoginTime, Amount, Version
  12706. )
  12707. SELECT
  12708. RegPartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid,
  12709. 1, 0, 0, 'unknown', DeviceName, PayMoney, LoginTime, 0, Version
  12710. FROM
  12711. [AllUser]
  12712. WHERE
  12713. RegTime BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  12714. --获取流量渠道
  12715. UPDATE t SET t.UTMSource = u.Source FROM @tmptable t INNER JOIN [UTM] u ON t.UserID = u.UserID AND u.Source != ''
  12716. --获取等级、经验
  12717. UPDATE t SET t.Lv = v.Lv, t.Exp = v.Exp FROM @tmptable t INNER JOIN [UserLevel] v ON t.UserID = v.UserID
  12718. --获取金豆信息
  12719. UPDATE t SET t.Amount = m.Amount FROM @tmptable t INNER JOIN [Money] m ON t.UserID = m.UserID
  12720. --删除不合条件的数据
  12721. DELETE FROM @tmptable WHERE Lv < @Lv
  12722. DELETE FROM @tmptable WHERE Exp < @Exp
  12723. DELETE FROM @tmptable WHERE UTMSource NOT IN (SELECT SourceName FROM @tmpSource)
  12724. --获取新手指引
  12725. UPDATE t SET t.GuideStep = ut.Status FROM @tmptable t INNER JOIN [UserTask] ut ON t.UserID = ut.UserID AND ut.TaskID = 20014
  12726. --总记录数
  12727. SELECT @RecordCount = COUNT(*) FROM @tmptable
  12728. ;WITH [List] AS
  12729. (
  12730. SELECT
  12731. ROW_NUMBER() OVER(ORDER BY RegTime DESC) AS RowNumber,
  12732. PartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid, Lv, Exp, GuideStep, UTMSource,
  12733. DeviceName, PayMoney, LoginTime, Amount, Version
  12734. FROM
  12735. @tmptable
  12736. )
  12737. --返回信息:合作商名称(PartnerName)(varchar(32))、用户ID(UserID)(int)、昵称(NickName)(varchar(32))、
  12738. -- IMei(IMei)(varchar(32))、注册IP(RegIP)(varchar(20))
  12739. SELECT
  12740. l.RowNumber, ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.UserID, l.NickName,
  12741. l.IMei, l.RegIP, CONVERT(CHAR(20), l.RegTime, 120) AS RegTime, l.deviceid, l.Lv, l.Exp, l.GuideStep, l.UTMSource,
  12742. l.DeviceName, l.PayMoney, CONVERT(CHAR(20), l.LoginTime, 120) AS LoginTime, l.Amount, l.Version
  12743. FROM
  12744. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  12745. WHERE
  12746. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  12747. ORDER BY
  12748. l.RowNumber ASC
  12749. RETURN
  12750. END
  12751. GO
  12752. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetSimpleInfo] Script Date: 2024/1/12 11:01:14 ******/
  12753. SET ANSI_NULLS ON
  12754. GO
  12755. SET QUOTED_IDENTIFIER ON
  12756. GO
  12757. -- EXEC [Manage_AllUser_GetSimpleInfo]
  12758. -- =============================================
  12759. -- Author: wolf
  12760. -- Create Date: 2016-10-21
  12761. -- Mendor: wolf
  12762. -- Alter Date: 2016-10-21
  12763. -- Description: 后台用户简单信息
  12764. -- =============================================
  12765. CREATE PROCEDURE [dbo].[Manage_AllUser_GetSimpleInfo]
  12766. @UserID INT, --用户ID
  12767. @NickName NVARCHAR(32) --昵称
  12768. AS
  12769. SET NOCOUNT ON -- 节约反馈资源
  12770. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  12771. SET XACT_ABORT ON
  12772. BEGIN
  12773. DECLARE @NewUserID INT --用户ID
  12774. DECLARE @NewNickName NVARCHAR(32) --昵称
  12775. DECLARE @Amount BIGINT --金额
  12776. DECLARE @Bank BIGINT --保险柜
  12777. DECLARE @ChipAmount BIGINT --筹码金额
  12778. DECLARE @ChipBank BIGINT --筹码保险柜
  12779. SET @NewUserID = 0
  12780. SET @NewNickName = ''
  12781. SET @Amount = 0
  12782. SET @Bank = 0
  12783. SET @ChipAmount = 0
  12784. SET @ChipBank = 0
  12785. --查询某个账号
  12786. IF(@UserID > 0)
  12787. BEGIN
  12788. SELECT @NewUserID = UserID, @NewNickName = NickName FROM [AllUser] WHERE UserID = @UserID
  12789. END
  12790. --查询昵称
  12791. ELSE
  12792. BEGIN
  12793. SELECT @NewUserID = UserID, @NewNickName = NickName FROM [AllUser] WHERE NickName = @NickName
  12794. END
  12795. --有账号信息,查询金币信息
  12796. IF(@NewUserID > 0)
  12797. BEGIN
  12798. --金币
  12799. EXEC [p_if_getmoney] @userid = @NewUserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
  12800. --筹码
  12801. EXEC [Game_Chip_GetInfo] @UserID = @NewUserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
  12802. END
  12803. --返回信息
  12804. SELECT
  12805. @NewUserID AS UserID, @NewNickName AS NickName, @Amount AS Amount, @Bank AS Bank,
  12806. @ChipAmount AS ChipAmount, @ChipBank AS ChipBank
  12807. RETURN
  12808. END
  12809. GO
  12810. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetTags] Script Date: 2024/1/12 11:01:14 ******/
  12811. SET ANSI_NULLS ON
  12812. GO
  12813. SET QUOTED_IDENTIFIER ON
  12814. GO
  12815. -- EXEC [Manage_AllUser_GetTags]
  12816. -- ==============================================
  12817. -- Author: wolf
  12818. -- Create Date: 2014-07-18
  12819. -- Mendor: wolf
  12820. -- Alter Date: 2017-01-05
  12821. -- Description: 获取用户标签信息
  12822. -- ==============================================
  12823. CREATE PROCEDURE [dbo].[Manage_AllUser_GetTags]
  12824. AS
  12825. SET NOCOUNT ON
  12826. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  12827. SET XACT_ABORT ON
  12828. BEGIN
  12829. DECLARE @DateFlag SMALLDATETIME
  12830. DECLARE @RowCount INT --记录数
  12831. DECLARE @tmptable TABLE(
  12832. UserID INT NOT NULL, --用户ID
  12833. NickName NVARCHAR(32) NOT NULL, --昵称
  12834. VipLevel INT NOT NULL, --VIP等级
  12835. PayMoney DECIMAL(18, 2) NOT NULL, --充值累计
  12836. LastPayTime DATETIME NOT NULL --最近支付时间
  12837. )
  12838. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  12839. --初始化
  12840. INSERT INTO @tmptable
  12841. (
  12842. UserID, NickName, VipLevel, PayMoney, LastPayTime
  12843. )
  12844. SELECT
  12845. UserID, '', 0, SUM(RMBMoney), MAX(DateFlag)
  12846. FROM
  12847. [UserPayLog]
  12848. GROUP BY
  12849. UserID
  12850. SET @RowCount = @@ROWCOUNT
  12851. --初始化
  12852. INSERT INTO @tmptable
  12853. (
  12854. UserID, NickName, VipLevel, PayMoney, LastPayTime
  12855. )
  12856. SELECT
  12857. UserID, '', 0, SUM(Price), MAX(Crdate)
  12858. FROM
  12859. [KayaPay]
  12860. GROUP BY
  12861. UserID
  12862. SET @RowCount = @RowCount + @@ROWCOUNT
  12863. --初始化
  12864. INSERT INTO @tmptable
  12865. (
  12866. UserID, NickName, VipLevel, PayMoney, LastPayTime
  12867. )
  12868. SELECT
  12869. UserID, '', 0, SUM(Price), MAX(Crdate)
  12870. FROM
  12871. [FlashPay]
  12872. GROUP BY
  12873. UserID
  12874. SET @RowCount = @RowCount + @@ROWCOUNT
  12875. --初始化
  12876. INSERT INTO @tmptable
  12877. (
  12878. UserID, NickName, VipLevel, PayMoney, LastPayTime
  12879. )
  12880. SELECT
  12881. UserID, '', 0, SUM(Price), MAX(Crdate)
  12882. FROM
  12883. [DingpeiPay]
  12884. GROUP BY
  12885. UserID
  12886. SET @RowCount = @RowCount + @@ROWCOUNT
  12887. --有记录
  12888. IF(@RowCount > 0)
  12889. BEGIN
  12890. --获取VIP等级
  12891. UPDATE t SET t.VipLevel = v.VipLevel FROM @tmptable t INNER JOIN [UserVIP] v ON t.UserID = v.UserID
  12892. --昵称
  12893. UPDATE t SET t.NickName = u.NickName FROM @tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
  12894. END
  12895. --返回信息
  12896. SELECT
  12897. UserID, VipLevel, PayMoney,
  12898. CASE
  12899. WHEN @DateFlag - 7 <= LastPayTime THEN 3 --只要玩家最近一周时间内进行充值后,玩家昵称、id显示为红色
  12900. WHEN @DateFlag - 30 <= LastPayTime THEN 2 --只要玩家最近一个月时间内有充值,玩家昵称、id显示为橙色
  12901. ELSE 1 --只要玩家有充值则玩家昵称、id显示为黄色
  12902. END AS ColorValue, NickName
  12903. FROM
  12904. @tmptable
  12905. ORDER BY
  12906. ColorValue DESC
  12907. RETURN
  12908. END
  12909. GO
  12910. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetTrack] Script Date: 2024/1/12 11:01:14 ******/
  12911. SET ANSI_NULLS ON
  12912. GO
  12913. SET QUOTED_IDENTIFIER ON
  12914. GO
  12915. -- EXEC [Manage_AllUser_GetTrack]
  12916. -- ==============================================
  12917. -- Author: wolf
  12918. -- Create Date: 2014-12-29
  12919. -- Mendor: wolf
  12920. -- Alter Date: 2015-06-01
  12921. -- Description: 用户足迹
  12922. -- ==============================================
  12923. CREATE PROCEDURE [dbo].[Manage_AllUser_GetTrack]
  12924. @UserID INT, --用户ID
  12925. @BeginTime DATETIME, --开始时间
  12926. @EndTime DATETIME, --截止时间
  12927. @PageIndex INT, --页索引
  12928. @PageSize INT, --页大小
  12929. @RecordCount INT OUTPUT --记录数
  12930. AS
  12931. SET NOCOUNT ON
  12932. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  12933. SET XACT_ABORT ON
  12934. BEGIN
  12935. DECLARE @StartRowIndex INT --起始行索引
  12936. DECLARE @EndRowIndex INT --截止行索引
  12937. --表变量
  12938. DECLARE @tmptable TABLE(
  12939. Level_1 NVARCHAR(32) NOT NULL, --1级类目
  12940. Level_2 NVARCHAR(32) NOT NULL, --2级类目
  12941. Level_3 NVARCHAR(32) NOT NULL, --3级类目
  12942. Crdate DATETIME NOT NULL --时间
  12943. )
  12944. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  12945. SET @EndRowIndex = @PageIndex * @PageSize
  12946. --初始化数据
  12947. INSERT INTO @tmptable(
  12948. Level_1, Level_2, Level_3, Crdate
  12949. )
  12950. SELECT
  12951. Level_1, Level_2, Level_3, Crdate
  12952. FROM
  12953. [UserTrack]
  12954. WHERE
  12955. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  12956. UNION ALL
  12957. SELECT
  12958. Level_1, Level_2, Level_3, Crdate
  12959. FROM
  12960. [UserTrackHistory]
  12961. WHERE
  12962. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  12963. --记录数
  12964. SET @RecordCount = @@ROWCOUNT
  12965. ;WITH [List] AS
  12966. (
  12967. SELECT
  12968. ROW_NUMBER() OVER(ORDER BY Crdate ASC) AS RowNumber,
  12969. Level_1, Level_2, Level_3, Crdate
  12970. FROM
  12971. @tmptable
  12972. )
  12973. --返回信息
  12974. SELECT
  12975. RowNumber, CONVERT(CHAR(23), Crdate, 121) AS Crdate, Level_1, Level_2, Level_3
  12976. FROM
  12977. [List]
  12978. WHERE
  12979. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  12980. ORDER BY
  12981. RowNumber ASC
  12982. RETURN
  12983. END
  12984. GO
  12985. /****** Object: StoredProcedure [dbo].[Manage_AllUser_GetUserID] Script Date: 2024/1/12 11:01:14 ******/
  12986. SET ANSI_NULLS ON
  12987. GO
  12988. SET QUOTED_IDENTIFIER ON
  12989. GO
  12990. -- EXEC [Manage_AllUser_GetUserID]
  12991. -- ==============================================
  12992. -- Author: wolf
  12993. -- Create Date: 2016-07-21
  12994. -- Mendor: wolf
  12995. -- Alter Date: 2016-11-07
  12996. -- Description: 获取用户ID(根据昵称)
  12997. -- ==============================================
  12998. CREATE PROCEDURE [dbo].[Manage_AllUser_GetUserID]
  12999. @UserID INT, --用户ID
  13000. @NickName NVARCHAR(32), --昵称
  13001. @NewUserID INT OUTPUT --用户ID
  13002. AS
  13003. SET NOCOUNT ON
  13004. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13005. SET XACT_ABORT ON
  13006. BEGIN
  13007. SET @NewUserID = 0
  13008. --根据昵称查询
  13009. IF(LEN(@NickName) > 0)
  13010. BEGIN
  13011. SELECT @NewUserID = UserID FROM [AllUser] WHERE NickName = @NickName
  13012. END
  13013. --其他
  13014. ELSE IF(@UserID > 0)
  13015. BEGIN
  13016. SELECT @NewUserID = UserID FROM [AllUser] WHERE UserID = @UserID
  13017. END
  13018. RETURN
  13019. END
  13020. GO
  13021. /****** Object: StoredProcedure [dbo].[Manage_Announce_Del] Script Date: 2024/1/12 11:01:14 ******/
  13022. SET ANSI_NULLS ON
  13023. GO
  13024. SET QUOTED_IDENTIFIER ON
  13025. GO
  13026. -- EXEC [Manage_Announce_Del]
  13027. -- ==============================================
  13028. -- Author: wolf
  13029. -- Create Date: 2014-06-11
  13030. -- Mendor: wolf
  13031. -- Alter Date: 2014-12-29
  13032. -- Description: 删除公告
  13033. -- ==============================================
  13034. CREATE PROCEDURE [dbo].[Manage_Announce_Del]
  13035. @OpUserID INT, --操作员ID
  13036. @OpUserName VARCHAR(32), --操作员名称
  13037. @Rid INT, --标识
  13038. @IPAddress VARCHAR(16) --IP地址
  13039. AS
  13040. SET NOCOUNT ON
  13041. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13042. SET XACT_ABORT ON
  13043. BEGIN
  13044. DECLARE @Msg NVARCHAR(4000) --操作描述
  13045. --删除公告
  13046. DELETE FROM [Announce] WHERE Rid = @Rid
  13047. SET @Msg = N'删除系统公告,Rid=' + LTRIM(STR(@Rid))
  13048. --添加日志
  13049. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
  13050. @IPAddress = @IPAddress, @Msg = @Msg
  13051. END
  13052. GO
  13053. /****** Object: StoredProcedure [dbo].[Manage_Announce_GetList] Script Date: 2024/1/12 11:01:14 ******/
  13054. SET ANSI_NULLS ON
  13055. GO
  13056. SET QUOTED_IDENTIFIER ON
  13057. GO
  13058. -- EXEC [Manage_Announce_GetList]
  13059. -- ==============================================
  13060. -- Author: wolf
  13061. -- Create Date: 2014-06-11
  13062. -- Mendor: wolf
  13063. -- Alter Date: 2014-12-29
  13064. -- Description: 公告列表
  13065. -- ==============================================
  13066. CREATE PROCEDURE [dbo].[Manage_Announce_GetList]
  13067. @Rid INT --标识
  13068. AS
  13069. SET NOCOUNT ON
  13070. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13071. SET XACT_ABORT ON
  13072. BEGIN
  13073. IF(@Rid > 0)
  13074. BEGIN
  13075. SELECT
  13076. Rid, Title_En, Content_En, Title_Eg, Content_Eg,
  13077. Priority, Version, CONVERT(VARCHAR(20), BeginTime, 120) AS BeginTime,
  13078. CONVERT(VARCHAR(20), EndTime, 120) AS EndTime, Enabled,
  13079. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
  13080. FROM
  13081. [Announce]
  13082. WHERE
  13083. Rid = @Rid
  13084. RETURN
  13085. END
  13086. SELECT
  13087. Rid, Title_En, Content_En, Title_Eg, Content_Eg,
  13088. Priority, Version, CONVERT(VARCHAR(20), BeginTime, 120) AS BeginTime,
  13089. CONVERT(VARCHAR(20), EndTime, 120) AS EndTime, Enabled,
  13090. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
  13091. FROM
  13092. [Announce]
  13093. ORDER BY
  13094. Rid DESC
  13095. RETURN
  13096. END
  13097. GO
  13098. /****** Object: StoredProcedure [dbo].[Manage_Announce_Send] Script Date: 2024/1/12 11:01:14 ******/
  13099. SET ANSI_NULLS ON
  13100. GO
  13101. SET QUOTED_IDENTIFIER ON
  13102. GO
  13103. -- EXEC [Manage_Announce_Send]
  13104. -- ==============================================
  13105. -- Author: wolf
  13106. -- Create Date: 2014-06-11
  13107. -- Mendor: wolf
  13108. -- Alter Date: 2014-12-29
  13109. -- Description: 发布公告
  13110. -- ==============================================
  13111. CREATE PROCEDURE [dbo].[Manage_Announce_Send]
  13112. @OpUserID INT, --操作员ID
  13113. @OpUserName VARCHAR(32), --操作员名称
  13114. @Title_En NVARCHAR(32), --英文标题
  13115. @Content_En NVARCHAR(4000), --英文内容
  13116. @Title_Eg NVARCHAR(32), --埃及标题
  13117. @Content_Eg NVARCHAR(4000), --埃及内容
  13118. @Priority TINYINT, --优先级,5个等级,5优先级最高,1优先级最低
  13119. @Version INT, --版本号
  13120. @BeginTime DATETIME, --开始时间
  13121. @EndTime DATETIME, --截止时间
  13122. @Enabled TINYINT, --是否启用
  13123. @IPAddress VARCHAR(16) --IP地址
  13124. AS
  13125. SET NOCOUNT ON
  13126. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13127. SET XACT_ABORT ON
  13128. BEGIN
  13129. DECLARE @Msg NVARCHAR(4000) --操作描述
  13130. DECLARE @Rid INT
  13131. --初始化
  13132. INSERT INTO [Announce]
  13133. (
  13134. Title_En, Content_En, Title_Eg, Content_Eg, Priority, Version,
  13135. BeginTime, EndTime, Enabled, Crdate
  13136. )
  13137. VALUES
  13138. (
  13139. @Title_En, @Content_En, @Title_Eg, @Content_Eg, @Priority, @Version,
  13140. @BeginTime, @EndTime, @Enabled, GETDATE()
  13141. )
  13142. SET @Rid = SCOPE_IDENTITY()
  13143. SET @Msg = N'发布系统公告,Title=' + @Title_En + '(' + @Title_Eg + '),Rid=' + LTRIM(STR(@Rid))
  13144. --添加日志
  13145. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
  13146. @IPAddress = @IPAddress, @Msg = @Msg
  13147. RETURN
  13148. END
  13149. GO
  13150. /****** Object: StoredProcedure [dbo].[Manage_Announce_Update] Script Date: 2024/1/12 11:01:14 ******/
  13151. SET ANSI_NULLS ON
  13152. GO
  13153. SET QUOTED_IDENTIFIER ON
  13154. GO
  13155. -- EXEC [Manage_Announce_Update]
  13156. -- ==============================================
  13157. -- Author: wolf
  13158. -- Create Date: 2014-06-11
  13159. -- Mendor: wolf
  13160. -- Alter Date: 2014-12-29
  13161. -- Description: 修改公告
  13162. -- ==============================================
  13163. CREATE PROCEDURE [dbo].[Manage_Announce_Update]
  13164. @OpUserID INT, --操作员ID
  13165. @OpUserName VARCHAR(32), --操作员名称
  13166. @Rid INT, --标识
  13167. @Title_En NVARCHAR(32), --英文标题
  13168. @Content_En NVARCHAR(4000), --英文内容
  13169. @Title_Eg NVARCHAR(32), --埃及标题
  13170. @Content_Eg NVARCHAR(4000), --埃及内容
  13171. @Priority TINYINT, --优先级,5个等级,5优先级最高,1优先级最低
  13172. @Version INT, --版本号
  13173. @BeginTime DATETIME, --开始时间
  13174. @EndTime DATETIME, --截止时间
  13175. @Enabled TINYINT, --是否启用
  13176. @IPAddress VARCHAR(16) --IP地址
  13177. AS
  13178. SET NOCOUNT ON
  13179. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13180. SET XACT_ABORT ON
  13181. BEGIN
  13182. DECLARE @Msg NVARCHAR(4000) --操作描述
  13183. --修改
  13184. UPDATE
  13185. [Announce]
  13186. SET
  13187. Title_En = @Title_En, Content_En = @Content_En,
  13188. Title_Eg = @Title_Eg, Content_Eg = @Content_Eg,
  13189. Priority = @Priority, Version = @Version,
  13190. BeginTime = @BeginTime, EndTime = @EndTime, Enabled = @Enabled
  13191. WHERE
  13192. Rid = @Rid
  13193. SET @Rid = SCOPE_IDENTITY()
  13194. SET @Msg = N'修改系统公告,Title=' + @Title_En + '(' + @Title_Eg + '),Rid=' + LTRIM(STR(@Rid))
  13195. --添加日志
  13196. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
  13197. @IPAddress = @IPAddress, @Msg = @Msg
  13198. RETURN
  13199. END
  13200. GO
  13201. /****** Object: StoredProcedure [dbo].[Manage_Apple_GetErrorList] Script Date: 2024/1/12 11:01:14 ******/
  13202. SET ANSI_NULLS ON
  13203. GO
  13204. SET QUOTED_IDENTIFIER ON
  13205. GO
  13206. -- DECLARE @RecordCount INT
  13207. -- EXEC [Manage_Apple_GetErrorList]
  13208. -- @PartnerID = 10001,
  13209. -- @UserID = 1,
  13210. -- @BeginTime = '',
  13211. -- @EndTime = '',
  13212. -- @PageIndex = 1,
  13213. -- @PageSize = 10,
  13214. -- @RecordCount = @RecordCount OUTPUT
  13215. -- SELECT @RecordCount AS RecordCount
  13216. -- ==============================================
  13217. -- Author: wolf
  13218. -- Create Date: 2014-07-23
  13219. -- Mendor: wolf
  13220. -- Alter Date: 2015-09-16
  13221. -- Description: 苹果--充值错误列表
  13222. -- ==============================================
  13223. CREATE PROCEDURE [dbo].[Manage_Apple_GetErrorList]
  13224. @UserID INT, --用户ID
  13225. @BeginTime DATETIME, --开始时间
  13226. @EndTime DATETIME, --截止时间
  13227. @PageIndex INT, --页索引
  13228. @PageSize INT, --页大小
  13229. @RecordCount INT OUTPUT --记录数
  13230. AS
  13231. SET NOCOUNT ON
  13232. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13233. SET XACT_ABORT ON
  13234. BEGIN
  13235. DECLARE @StartRowIndex INT --起始行索引
  13236. DECLARE @EndRowIndex INT --截止行索引
  13237. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  13238. SET @EndRowIndex = @PageIndex * @PageSize
  13239. --创建临时表
  13240. DECLARE @tmptable TABLE(
  13241. PartnerID INT NOT NULL, --合作商ID
  13242. UserID INT NOT NULL, --用户ID
  13243. ErrorMsg VARCHAR(1024) NOT NULL, --错误消息
  13244. Crdate DATETIME NOT NULL, --创建时间
  13245. NickName NVARCHAR(32) NOT NULL, --昵称
  13246. IPAddress VARCHAR(16) NOT NULL --IP地址
  13247. )
  13248. --用户查询
  13249. IF(@UserID > 0)
  13250. BEGIN
  13251. INSERT INTO @tmptable
  13252. (
  13253. PartnerID, UserID, ErrorMsg, Crdate, NickName, IPAddress
  13254. )
  13255. SELECT
  13256. url.PartnerID, ael.UserID, ael.ErrorMsg, ael.Crdate, url.NickName, ael.IPAddress
  13257. FROM
  13258. [VerifyErrorLog] ael INNER JOIN [AllUser] url ON ael.UserID = url.UserID
  13259. WHERE
  13260. ael.UserID = @UserID AND ael.Crdate BETWEEN @BeginTime AND @EndTime
  13261. ORDER BY
  13262. ael.Crdate DESC
  13263. --总记录数
  13264. SET @RecordCount = @@ROWCOUNT
  13265. END
  13266. --时间段内所有记录
  13267. ELSE
  13268. BEGIN
  13269. INSERT INTO @tmptable
  13270. (
  13271. PartnerID, UserID, ErrorMsg, Crdate, NickName, IPAddress
  13272. )
  13273. SELECT
  13274. url.PartnerID, ael.UserID, ael.ErrorMsg, ael.Crdate, url.NickName, ael.IPAddress
  13275. FROM
  13276. [VerifyErrorLog] ael INNER JOIN [AllUser] url ON ael.UserID = url.UserID
  13277. WHERE
  13278. ael.Crdate BETWEEN @BeginTime AND @EndTime
  13279. ORDER BY
  13280. ael.Crdate DESC
  13281. --总记录数
  13282. SET @RecordCount = @@ROWCOUNT
  13283. END
  13284. ;WITH [List] AS
  13285. (
  13286. SELECT
  13287. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  13288. PartnerID, UserID, ErrorMsg, Crdate, NickName, IPAddress
  13289. FROM
  13290. @tmptable
  13291. )
  13292. --返回信息:用户ID(UserID)(int)、用户名称(NickName)(varchar(32))、错误消息(ErrorMsg)(int)、
  13293. -- 创建时间(Crdate)(varchar(16))、合作商名称(PartnerName)(varchar)
  13294. SELECT
  13295. l.UserID, l.NickName, l.ErrorMsg, CONVERT(CHAR(16), l.Crdate, 120) AS Crdate,
  13296. ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.IPAddress
  13297. FROM
  13298. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  13299. WHERE
  13300. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  13301. ORDER BY
  13302. l.RowNumber ASC
  13303. RETURN
  13304. END
  13305. GO
  13306. /****** Object: StoredProcedure [dbo].[Manage_Apple_GetLogList] Script Date: 2024/1/12 11:01:14 ******/
  13307. SET ANSI_NULLS ON
  13308. GO
  13309. SET QUOTED_IDENTIFIER ON
  13310. GO
  13311. -- DECLARE @RecordCount INT
  13312. -- EXEC [Manage_Apple_GetLogList]
  13313. -- @UserID = 1,
  13314. -- @BeginTime = '',
  13315. -- @EndTime = '',
  13316. -- @PageIndex = 1,
  13317. -- @PageSize = 10,
  13318. -- @RecordCount = @RecordCount OUTPUT
  13319. -- SELECT @RecordCount AS RecordCount
  13320. -- ==============================================
  13321. -- Author: wolf
  13322. -- Create Date: 2014-07-23
  13323. -- Mendor: wolf
  13324. -- Alter Date: 2015-09-16
  13325. -- Description: 苹果--充值日志列表
  13326. -- ==============================================
  13327. CREATE PROCEDURE [dbo].[Manage_Apple_GetLogList]
  13328. @UserID INT, --用户ID
  13329. @BeginTime DATETIME, --开始时间
  13330. @EndTime DATETIME, --截止时间
  13331. @PageIndex INT, --页索引
  13332. @PageSize INT, --页大小
  13333. @RecordCount INT OUTPUT --记录数
  13334. AS
  13335. SET NOCOUNT ON
  13336. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13337. SET XACT_ABORT ON
  13338. BEGIN
  13339. DECLARE @StartRowIndex INT --起始行索引
  13340. DECLARE @EndRowIndex INT --截止行索引
  13341. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  13342. SET @EndRowIndex = @PageIndex * @PageSize
  13343. --创建临时表
  13344. DECLARE @tmptable TABLE(
  13345. PartnerID INT NOT NULL, --合作商ID
  13346. UserID INT NOT NULL, --用户ID
  13347. ReceiptBuffer VARCHAR(4096) NOT NULL, --内容
  13348. Crdate DATETIME NOT NULL, --创建时间
  13349. NickName NVARCHAR(32) NOT NULL, --昵称
  13350. IPAddress VARCHAR(16) NOT NULL --IP地址
  13351. )
  13352. --用户查询
  13353. IF(@UserID > 0)
  13354. BEGIN
  13355. INSERT INTO @tmptable
  13356. (
  13357. PartnerID, UserID, ReceiptBuffer, Crdate, NickName, IPAddress
  13358. )
  13359. SELECT
  13360. url.PartnerID, p.UserID, p.ReceiptBuffer, p.Crdate, url.NickName, p.IPAddress
  13361. FROM
  13362. [VerifyLog] p INNER JOIN [AllUser] url ON p.UserID = url.UserID
  13363. WHERE
  13364. p.UserID = @UserID AND p.Crdate BETWEEN @BeginTime AND @EndTime
  13365. ORDER BY
  13366. p.Crdate DESC
  13367. --总记录数
  13368. SET @RecordCount = @@ROWCOUNT
  13369. END
  13370. --时间段内所有记录
  13371. ELSE
  13372. BEGIN
  13373. INSERT INTO @tmptable
  13374. (
  13375. PartnerID, UserID, ReceiptBuffer, Crdate, NickName, IPAddress
  13376. )
  13377. SELECT
  13378. url.PartnerID, p.UserID, p.ReceiptBuffer, p.Crdate, url.NickName, p.IPAddress
  13379. FROM
  13380. [VerifyLog] p INNER JOIN [AllUser] url ON p.UserID = url.UserID
  13381. WHERE
  13382. p.Crdate BETWEEN @BeginTime AND @EndTime
  13383. ORDER BY
  13384. p.Crdate DESC
  13385. --总记录数
  13386. SET @RecordCount = @@ROWCOUNT
  13387. END
  13388. ;WITH [List] AS
  13389. (
  13390. SELECT
  13391. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  13392. PartnerID, UserID, ReceiptBuffer, Crdate, NickName, IPAddress
  13393. FROM
  13394. @tmptable
  13395. )
  13396. --返回信息:用户ID(UserID)(int)、用户名称(NickName)(varchar(32))、内容(ReceiptBuffer)(int)、创建时间(Crdate)(varchar(16))
  13397. SELECT
  13398. l.UserID, l.NickName, ReceiptBuffer, CONVERT(CHAR(16), l.Crdate, 120) AS Crdate,
  13399. ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.IPAddress
  13400. FROM
  13401. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  13402. WHERE
  13403. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  13404. ORDER BY
  13405. l.RowNumber ASC
  13406. RETURN
  13407. END
  13408. GO
  13409. /****** Object: StoredProcedure [dbo].[Manage_AudioRoom_BlackIdentity] Script Date: 2024/1/12 11:01:14 ******/
  13410. SET ANSI_NULLS ON
  13411. GO
  13412. SET QUOTED_IDENTIFIER ON
  13413. GO
  13414. -- EXEC [Manage_AudioRoom_BlackIdentity]
  13415. -- @RoomID = 1
  13416. -- @BlackType = 2
  13417. -- @BeginTime = '2023-05-01 00:00:00'
  13418. -- @EndTime = '2023-06-30 23:59:59'
  13419. -- @PageIndex = 1
  13420. -- @PageSize = 50
  13421. -- @RecordCount = 0
  13422. -- ==============================================
  13423. -- Author: wolf
  13424. -- Create Date: 2023-06-28
  13425. -- Mendor: wolf
  13426. -- Alter Date: 2023-06-28
  13427. -- Description: 获取语聊房的黑名单列表(含用户身份)
  13428. -- ==============================================
  13429. CREATE PROCEDURE [dbo].[Manage_AudioRoom_BlackIdentity]
  13430. @RoomID INT, -- 房间ID
  13431. @BlackType INT, -- 黑名单的类型(1:房间,2:麦位)
  13432. @BeginTime DATETIME, -- 开始时间
  13433. @EndTime DATETIME, -- 结束时间
  13434. @PageIndex INT, -- 页索引
  13435. @PageSize INT, -- 页大小
  13436. @RecordCount INT OUTPUT -- 记录数
  13437. AS
  13438. SET NOCOUNT ON
  13439. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13440. SET XACT_ABORT ON
  13441. BEGIN
  13442. DECLARE @StartRowIndex INT -- 起始行索引
  13443. DECLARE @EndRowIndex INT -- 截止行索引
  13444. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  13445. SET @EndRowIndex = @PageIndex * @PageSize
  13446. -- 创建临时表变量
  13447. DECLARE @tmptable TABLE(
  13448. RoomID INT NOT NULL, -- 房间ID
  13449. UserID INT NOT NULL, -- 用户ID
  13450. ExpireTime DATETIME NOT NULL -- 过期时间戳
  13451. )
  13452. INSERT INTO @tmptable
  13453. (
  13454. RoomID, UserID, ExpireTime
  13455. )
  13456. SELECT
  13457. RoomID, UserID, ExpireTime
  13458. FROM
  13459. [AudioRoomBlack]
  13460. WHERE
  13461. -- ExpireTime BETWEEN @BeginTime AND @EndTime AND
  13462. RoomID = CASE
  13463. WHEN @RoomID > 0 THEN @RoomID
  13464. ELSE RoomID
  13465. END
  13466. AND BlackType = CASE
  13467. WHEN @BlackType > 0 THEN @BlackType
  13468. ELSE BlackType
  13469. END
  13470. -- 记录数
  13471. SET @RecordCount = @@ROWCOUNT
  13472. ;WITH [List] AS
  13473. (
  13474. SELECT
  13475. ROW_NUMBER() OVER(ORDER BY ExpireTime ASC) AS RowNumber,
  13476. RoomID, UserID, ExpireTime
  13477. FROM
  13478. @tmptable
  13479. )
  13480. -- 返回信息
  13481. SELECT
  13482. l.UserID, u.NickName, r.RoleID, r.Level, [dbo].fn_TimeToStamp(l.ExpireTime) AS ExpireTime,
  13483. CONVERT(CHAR(20), r.Crdate, 120) AS Crdate
  13484. FROM
  13485. [List] AS l
  13486. INNER JOIN [UserAudioRoom] AS r ON l.UserID = r.UserID AND l.RoomID = r.RoomID
  13487. INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
  13488. WHERE
  13489. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  13490. ORDER BY
  13491. l.RowNumber ASC
  13492. RETURN
  13493. END
  13494. GO
  13495. /****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetAllRoom] Script Date: 2024/1/12 11:01:14 ******/
  13496. SET ANSI_NULLS ON
  13497. GO
  13498. SET QUOTED_IDENTIFIER ON
  13499. GO
  13500. -- EXEC [Manage_AudioRoom_GetAllRoom]
  13501. -- @RoomID = 1,
  13502. -- @RoomName = '',
  13503. -- @BeginTime = '2023-06-21 00:00:00',
  13504. -- @EndTime = '2023-06-21 23:59:59',
  13505. -- @PageIndex = 1,
  13506. -- @PageSize = 10,
  13507. -- @SortName = 'Level',
  13508. -- @SortType = 'ASC',
  13509. -- @RecordCount = @RecordCount OUTPUT
  13510. -- ==============================================
  13511. -- Author: wolf
  13512. -- Create Date: 2023-06-26
  13513. -- Mendor: wolf
  13514. -- Alter Date: 2023-06-26
  13515. -- Description: 获取语音房的所有房间
  13516. -- ==============================================
  13517. CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetAllRoom]
  13518. @RoomID INT, -- 房间ID
  13519. @RoomName NVARCHAR(32), -- 房间名称
  13520. @BeginTime DATETIME, -- 开始时间
  13521. @EndTime DATETIME, -- 结束时间
  13522. @PageIndex INT, -- 页索引
  13523. @PageSize INT, -- 页大小
  13524. @SortName VARCHAR(16), -- 排序名称
  13525. @SortType CHAR(4), -- 排序类型
  13526. @RecordCount INT OUTPUT --记录数
  13527. AS
  13528. SET NOCOUNT ON
  13529. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13530. SET XACT_ABORT ON
  13531. BEGIN
  13532. DECLARE @StartRowIndex INT -- 起始行索引
  13533. DECLARE @EndRowIndex INT -- 截止行索引
  13534. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  13535. SET @EndRowIndex = @PageIndex * @PageSize
  13536. DECLARE @tmptable TABLE(
  13537. RoomID INT NOT NULL, -- 房间ID
  13538. RoomName NVARCHAR(32) NOT NULL, -- 房间名称
  13539. UserID INT NOT NULL, -- 用户ID
  13540. Level INT NOT NULL, -- 等级
  13541. Exps INT NOT NULL, -- 经验
  13542. MemberCount INT NOT NULL, -- 会员数
  13543. Crdate DATETIME NOT NULL, -- 创建时间
  13544. CollectDiamond INT NOT NULL, -- 钻石收益
  13545. DiamondAmount INT NOT NULL, -- 钻石消耗数量
  13546. CollectGold INT NOT NULL, -- 金币收益
  13547. GoldAmount INT NOT NULL -- 金币消耗数量
  13548. )
  13549. -- 创建一个表变量来存储收益总和
  13550. DECLARE @IncomeTotals TABLE (
  13551. UserID INT NOT NULL, -- 用户ID
  13552. TotalCollectDiamond INT NOT NULL, -- 钻石收益总和
  13553. TotalCollectGold INT NOT NULL -- 金币收益总和
  13554. )
  13555. INSERT INTO @tmptable
  13556. (
  13557. RoomID, RoomName, UserID, [Level], Exps, MemberCount, Crdate, CollectDiamond, DiamondAmount, CollectGold, GoldAmount
  13558. )
  13559. SELECT
  13560. RoomID, RoomName, UserID, [Level], Exps, MemberCount, Crdate, 0, 0, 0, 0
  13561. FROM
  13562. [AudioRoom]
  13563. WHERE
  13564. -- Crdate BETWEEN @BeginTime AND @EndTime AND
  13565. RoomID = CASE -- 查询某个房间ID
  13566. WHEN @RoomID > 0 THEN @RoomID
  13567. ELSE RoomID
  13568. END
  13569. AND RoomName = CASE -- 查询某个房间名称
  13570. WHEN @RoomName != '' THEN @RoomName
  13571. ELSE RoomName
  13572. END
  13573. -- 记录数
  13574. SET @RecordCount = @@ROWCOUNT
  13575. -- 计算收益总和并插入到表变量中
  13576. INSERT INTO @IncomeTotals
  13577. (
  13578. UserID, TotalCollectDiamond, TotalCollectGold
  13579. )
  13580. SELECT
  13581. UserID,
  13582. SUM(CASE WHEN ItemType = 2 THEN TotalProfit ELSE 0 END) AS TotalCollectDiamond,
  13583. SUM(CASE WHEN ItemType = 1 THEN TotalProfit ELSE 0 END) AS TotalCollectGold
  13584. FROM
  13585. [UserIncome]
  13586. GROUP BY
  13587. UserID
  13588. -- 更新 @tmptable 表中的 CollectDiamond 和 CollectGold 字段
  13589. UPDATE t
  13590. SET t.CollectDiamond = COALESCE(it.TotalCollectDiamond, 0),
  13591. t.CollectGold = COALESCE(it.TotalCollectGold, 0)
  13592. FROM
  13593. @tmptable AS t
  13594. INNER JOIN @IncomeTotals AS it ON t.RoomID = it.UserID
  13595. -- 钻石、金币消耗总和
  13596. UPDATE t
  13597. SET t.DiamondAmount = COALESCE(agh.TotalDiamondAmount, 0),
  13598. t.GoldAmount = COALESCE(agh.TotalGoldAmount, 0)
  13599. FROM
  13600. @tmptable AS t
  13601. INNER JOIN (
  13602. SELECT
  13603. RoomID,
  13604. SUM(DiamondAmount) AS TotalDiamondAmount,
  13605. SUM(GoldAmount) AS TotalGoldAmount
  13606. FROM
  13607. [AudioRoomGiftHistory]
  13608. GROUP BY
  13609. RoomID
  13610. ) AS agh ON t.RoomID = agh.RoomID;
  13611. ;WITH [List] AS
  13612. (
  13613. SELECT
  13614. ROW_NUMBER() OVER(ORDER BY
  13615. CASE WHEN @SortName = 'Level' AND @SortType = 'ASC' THEN Level END ASC, -- 房间等级
  13616. CASE WHEN @SortName = 'Level' AND @SortType = 'DESC' THEN Level END DESC,
  13617. CASE WHEN @SortName = 'Level' AND @SortType = 'ASC' THEN Exps END ASC, -- 经验值
  13618. CASE WHEN @SortName = 'Level' AND @SortType = 'DESC' THEN Exps END DESC,
  13619. CASE WHEN @SortName = 'MemberCount' AND @SortType = 'ASC' THEN MemberCount END ASC, -- 成员数量
  13620. CASE WHEN @SortName = 'MemberCount' AND @SortType = 'DESC' THEN MemberCount END DESC,
  13621. CASE WHEN @SortName = 'CollectDiamond' AND @SortType = 'ASC' THEN CollectDiamond END ASC, -- 钻石收益
  13622. CASE WHEN @SortName = 'CollectDiamond' AND @SortType = 'DESC' THEN CollectDiamond END DESC,
  13623. CASE WHEN @SortName = 'DiamondAmount' AND @SortType = 'ASC' THEN DiamondAmount END ASC, -- 钻石消耗数量
  13624. CASE WHEN @SortName = 'DiamondAmount' AND @SortType = 'DESC' THEN DiamondAmount END DESC,
  13625. CASE WHEN @SortName = 'CollectGold' AND @SortType = 'ASC' THEN CollectGold END ASC, -- 金币收益
  13626. CASE WHEN @SortName = 'CollectGold' AND @SortType = 'DESC' THEN CollectGold END DESC,
  13627. CASE WHEN @SortName = 'GoldAmount' AND @SortType = 'ASC' THEN GoldAmount END ASC, -- 金币消耗数量
  13628. CASE WHEN @SortName = 'GoldAmount' AND @SortType = 'DESC' THEN GoldAmount END DESC,
  13629. Crdate DESC
  13630. ) AS RowNumber,
  13631. RoomID, RoomName, UserID, Level, Exps, MemberCount, Crdate, CollectDiamond, DiamondAmount, CollectGold, GoldAmount
  13632. FROM
  13633. @tmptable
  13634. )
  13635. -- 返回信息
  13636. SELECT
  13637. l.RoomID, l.RoomName, l.UserID, u.NickName, l.Level, l.Exps, l.MemberCount, l.CollectDiamond,
  13638. l.DiamondAmount, l.CollectGold, l.GoldAmount, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  13639. FROM
  13640. [List] AS l
  13641. INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
  13642. WHERE
  13643. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  13644. ORDER BY
  13645. l.RowNumber ASC
  13646. RETURN
  13647. END
  13648. GO
  13649. /****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetAllRoomExpend] Script Date: 2024/1/12 11:01:14 ******/
  13650. SET ANSI_NULLS ON
  13651. GO
  13652. SET QUOTED_IDENTIFIER ON
  13653. GO
  13654. -- EXEC [Manage_AudioRoom_GetAllRoomExpend]
  13655. -- ==============================================
  13656. -- Author: wolf
  13657. -- Create Date: 2023-06-30
  13658. -- Mendor: wolf
  13659. -- Alter Date: 2023-06-30
  13660. -- Description: 获取全部房间的消耗情况
  13661. -- ==============================================
  13662. CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetAllRoomExpend]
  13663. AS
  13664. SET NOCOUNT ON
  13665. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13666. SET XACT_ABORT ON
  13667. BEGIN
  13668. DECLARE @tmptable TABLE(
  13669. RoomID INT NOT NULL, -- 房间ID
  13670. CollectDiamond INT NOT NULL, -- 钻石收益
  13671. DiamondAmount INT NOT NULL, -- 钻石消耗数量
  13672. CollectGold INT NOT NULL, -- 金币收益
  13673. GoldAmount INT NOT NULL -- 金币消耗数量
  13674. )
  13675. -- 创建一个表变量来存储收益总和
  13676. DECLARE @IncomeTotals TABLE (
  13677. UserID INT NOT NULL, -- 用户ID
  13678. TotalCollectDiamond INT NOT NULL, -- 钻石收益总和
  13679. TotalCollectGold INT NOT NULL -- 金币收益总和
  13680. )
  13681. INSERT INTO @tmptable
  13682. (
  13683. RoomID, CollectDiamond, DiamondAmount, CollectGold, GoldAmount
  13684. )
  13685. SELECT
  13686. RoomID, 0, 0, 0, 0
  13687. FROM
  13688. [AudioRoom]
  13689. -- 计算收益总和并插入到表变量中
  13690. INSERT INTO @IncomeTotals
  13691. (
  13692. UserID, TotalCollectDiamond, TotalCollectGold
  13693. )
  13694. SELECT
  13695. UserID,
  13696. SUM(CASE WHEN ItemType = 2 THEN TotalProfit ELSE 0 END) AS TotalCollectDiamond,
  13697. SUM(CASE WHEN ItemType = 1 THEN TotalProfit ELSE 0 END) AS TotalCollectGold
  13698. FROM
  13699. [UserIncome]
  13700. GROUP BY
  13701. UserID
  13702. -- 更新 @tmptable 表中的 CollectDiamond 和 CollectGold 字段
  13703. UPDATE t
  13704. SET t.CollectDiamond = COALESCE(it.TotalCollectDiamond, 0),
  13705. t.CollectGold = COALESCE(it.TotalCollectGold, 0)
  13706. FROM
  13707. @tmptable AS t
  13708. INNER JOIN @IncomeTotals AS it ON t.RoomID = it.UserID
  13709. -- 钻石、金币消耗总和
  13710. UPDATE t
  13711. SET t.DiamondAmount = COALESCE(agh.TotalDiamondAmount, 0),
  13712. t.GoldAmount = COALESCE(agh.TotalGoldAmount, 0)
  13713. FROM
  13714. @tmptable AS t
  13715. INNER JOIN (
  13716. SELECT
  13717. RoomID,
  13718. SUM(DiamondAmount) AS TotalDiamondAmount,
  13719. SUM(GoldAmount) AS TotalGoldAmount
  13720. FROM
  13721. [AudioRoomGiftHistory]
  13722. GROUP BY
  13723. RoomID
  13724. ) AS agh ON t.RoomID = agh.RoomID;
  13725. -- 返回信息
  13726. SELECT
  13727. RoomID, CollectDiamond, DiamondAmount, CollectGold, GoldAmount
  13728. FROM
  13729. @tmptable
  13730. RETURN
  13731. END
  13732. GO
  13733. /****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetExtraInfo] Script Date: 2024/1/12 11:01:14 ******/
  13734. SET ANSI_NULLS ON
  13735. GO
  13736. SET QUOTED_IDENTIFIER ON
  13737. GO
  13738. -- EXEC [Manage_AudioRoom_GetExtraInfo]
  13739. -- @RoomId = 1
  13740. -- ==============================================
  13741. -- Author: wolf
  13742. -- Create Date: 2023-06-27
  13743. -- Mendor: wolf
  13744. -- Alter Date: 2023-06-27
  13745. -- Description: 获取语聊房的额外信息
  13746. -- ==============================================
  13747. CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetExtraInfo]
  13748. @RoomId INT --房间ID
  13749. AS
  13750. SET NOCOUNT ON
  13751. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  13752. SET XACT_ABORT ON
  13753. BEGIN
  13754. DECLARE @Rid INT -- 房间ID
  13755. DECLARE @RoomName NVARCHAR(32) -- 房间名称
  13756. DECLARE @RoomImg VARCHAR(256) -- 房间图片
  13757. DECLARE @Family NVARCHAR(32) -- 家族
  13758. DECLARE @Country NVARCHAR(32) -- 国家
  13759. DECLARE @Language NVARCHAR(32) -- 语言
  13760. DECLARE @JoinFee INT -- 入会费
  13761. DECLARE @Announce NVARCHAR(256) -- 公告内容
  13762. DECLARE @Tag NVARCHAR(32) -- 标签
  13763. DECLARE @MemberCount INT -- 会员数
  13764. DECLARE @Crdate DATETIME -- 创建日期
  13765. DECLARE @Level INT -- 等级
  13766. DECLARE @Exps INT -- 经验值
  13767. DECLARE @CollectDiamond INT -- 钻石收益
  13768. DECLARE @DiamondAmount INT -- 钻石消耗数量
  13769. DECLARE @CollectGold INT -- 金币收益
  13770. DECLARE @GoldAmount INT -- 金币消耗数量
  13771. DECLARE @MicInfo VARCHAR(1024) -- 麦位信息
  13772. -- 房间信息
  13773. SELECT
  13774. @Rid = RoomID, @RoomName = RoomName, @RoomImg = RoomImg, @Family = Family,
  13775. @Country = Country, @Language = [Language], @JoinFee = JoinFee, @Announce = Announce,
  13776. @Tag = Tag, @MemberCount = MemberCount, @Crdate = Crdate, @Level = [Level], @Exps = Exps
  13777. FROM
  13778. [AudioRoom]
  13779. WHERE
  13780. RoomID = @RoomId
  13781. IF(@@ROWCOUNT = 0)
  13782. RETURN
  13783. -- 钻石、金币收益
  13784. SELECT
  13785. @CollectDiamond = SUM(CASE WHEN ItemType = 2 THEN TotalProfit ELSE 0 END),
  13786. @CollectGold = SUM(CASE WHEN ItemType = 1 THEN TotalProfit ELSE 0 END)
  13787. FROM
  13788. [UserIncome]
  13789. WHERE
  13790. UserID = @RoomId
  13791. -- 钻石、金币消耗数量
  13792. SELECT
  13793. @DiamondAmount = SUM(DiamondAmount),
  13794. @GoldAmount = SUM(GoldAmount)
  13795. FROM
  13796. [AudioRoomGiftHistory]
  13797. WHERE
  13798. RoomID = @RoomId
  13799. -- 麦位信息
  13800. SELECT
  13801. @MicInfo = MicInfo
  13802. FROM
  13803. [AudioRoomMic]
  13804. WHERE
  13805. RoomID = @RoomId
  13806. -- 返回结果
  13807. SELECT
  13808. @Rid AS RoomId, @RoomName AS RoomName, @RoomImg AS RoomImg, @Family AS Family,
  13809. @Country AS Country, @Language AS [Language], @JoinFee AS JoinFee, @Announce AS Announce,
  13810. @Tag AS Tag, @MemberCount AS MemberCount, CONVERT(CHAR(20), @Crdate, 120) AS Crdate, @Level AS [Level],
  13811. @Exps AS Exps, ISNULL(@CollectDiamond, 0) AS CollectDiamond, ISNULL(@DiamondAmount, 0) AS DiamondAmount,
  13812. ISNULL(@CollectGold, 0) AS CollectGold, ISNULL(@GoldAmount, 0) AS GoldAmount, @MicInfo AS MicInfo
  13813. END
  13814. GO
  13815. /****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetRoomLogRecord] Script Date: 2024/1/12 11:01:14 ******/
  13816. SET ANSI_NULLS ON
  13817. GO
  13818. SET QUOTED_IDENTIFIER ON
  13819. GO
  13820. -- EXEC [Manage_AudioRoom_GetRoomLogRecord]
  13821. -- @RoomID = 1,
  13822. -- @BeginTime = '2023-06-21 00:00:00',
  13823. -- @EndTime = '2023-06-21 23:59:59',
  13824. -- @PageIndex = 1,
  13825. -- @PageSize = 10,
  13826. -- @RecordCount = @RecordCount OUTPUT
  13827. -- ==============================================
  13828. -- Author: wolf
  13829. -- Create Date: 2023-07-04
  13830. -- Mendor: wolf
  13831. -- Alter Date: 2023-07-04
  13832. -- Description: 获取房内操作记录
  13833. -- ==============================================
  13834. CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetRoomLogRecord]
  13835. @RoomID INT, -- 房间ID
  13836. @BeginTime DATETIME, -- 开始时间
  13837. @EndTime DATETIME, -- 结束时间
  13838. @PageIndex INT, -- 页索引
  13839. @PageSize INT, -- 页大小
  13840. @RecordCount INT OUTPUT --记录数
  13841. AS
  13842. SET NOCOUNT ON
  13843. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13844. SET XACT_ABORT ON
  13845. BEGIN
  13846. DECLARE @StartRowIndex INT -- 起始行索引
  13847. DECLARE @EndRowIndex INT -- 截止行索引
  13848. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  13849. SET @EndRowIndex = @PageIndex * @PageSize
  13850. DECLARE @tmptable TABLE(
  13851. Rid INT IDENTITY NOT NULL, -- 自增
  13852. RoomID INT NOT NULL, -- 房间ID
  13853. UserID INT NOT NULL, -- 用户ID
  13854. ToUserID INT NOT NULL, -- 对象用户ID
  13855. OperateType TINYINT NOT NULL, -- 操作类型(11=踢麦 21=禁麦 22=解麦 31=添加房间黑名单 32=移除房间黑名单)
  13856. Crdate DATETIME NOT NULL -- 创建时间
  13857. )
  13858. -- 指定某个房间
  13859. INSERT INTO @tmptable
  13860. (
  13861. RoomID, UserID, ToUserID, OperateType, Crdate
  13862. )
  13863. SELECT
  13864. RoomID, UserID, ToUserID, OperateType, Crdate
  13865. FROM
  13866. [AudioRoomOperateLog]
  13867. WHERE
  13868. Crdate BETWEEN @BeginTime AND @EndTime
  13869. AND RoomID = CASE
  13870. WHEN @RoomID > 0 THEN @RoomID
  13871. ELSE RoomID
  13872. END
  13873. -- 记录数
  13874. SET @RecordCount = @@ROWCOUNT
  13875. ;WITH [List] AS
  13876. (
  13877. SELECT
  13878. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  13879. RoomID, UserID, ToUserID, OperateType, Crdate
  13880. FROM
  13881. @tmptable
  13882. )
  13883. -- 返回信息
  13884. SELECT
  13885. RoomID, UserID, ToUserID, OperateType, CONVERT(CHAR(20), Crdate, 120) AS Crdate
  13886. FROM
  13887. [List]
  13888. WHERE
  13889. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  13890. ORDER BY
  13891. RowNumber ASC
  13892. RETURN
  13893. END
  13894. GO
  13895. /****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetRoomMember] Script Date: 2024/1/12 11:01:14 ******/
  13896. SET ANSI_NULLS ON
  13897. GO
  13898. SET QUOTED_IDENTIFIER ON
  13899. GO
  13900. -- EXEC [Manage_AudioRoom_GetRoomMember]
  13901. -- @RoomID = 1,
  13902. -- @BeginTime = '2023-06-21 00:00:00',
  13903. -- @EndTime = '2023-06-21 23:59:59',
  13904. -- @PageIndex = 1,
  13905. -- @PageSize = 10,
  13906. -- @RecordCount = @RecordCount OUTPUT
  13907. -- ==============================================
  13908. -- Author: wolf
  13909. -- Create Date: 2023-06-30
  13910. -- Mendor: wolf
  13911. -- Alter Date: 2023-06-30
  13912. -- Description: 获取语聊房的成员信息
  13913. -- ==============================================
  13914. CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetRoomMember]
  13915. @RoomID INT, -- 房间ID
  13916. @BeginTime DATETIME, -- 开始时间
  13917. @EndTime DATETIME, -- 结束时间
  13918. @PageIndex INT, -- 页索引
  13919. @PageSize INT, -- 页大小
  13920. @RecordCount INT OUTPUT --记录数
  13921. AS
  13922. SET NOCOUNT ON
  13923. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  13924. SET XACT_ABORT ON
  13925. BEGIN
  13926. DECLARE @StartRowIndex INT -- 起始行索引
  13927. DECLARE @EndRowIndex INT -- 截止行索引
  13928. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  13929. SET @EndRowIndex = @PageIndex * @PageSize
  13930. DECLARE @tmptable TABLE(
  13931. RoomID INT NOT NULL, -- 房间id
  13932. UserID INT NOT NULL, -- 用户id
  13933. RoleID TINYINT NOT NULL, -- 角色ID(0=关注 1=管理员 2=助理 3=成员)
  13934. Exps INT NOT NULL, -- 经验值
  13935. Level INT NOT NULL, -- 等级
  13936. Crdate DATETIME NOT NULL -- 创建日期
  13937. )
  13938. INSERT INTO @tmptable
  13939. (
  13940. RoomID, UserID, RoleID, Exps, Level, Crdate
  13941. )
  13942. SELECT
  13943. RoomID, UserID, RoleID, Exps, Level, Crdate
  13944. FROM
  13945. [UserAudioRoom]
  13946. WHERE
  13947. -- Crdate BETWEEN @BeginTime AND @EndTime AND
  13948. RoomID = CASE
  13949. WHEN @RoomID > 0 THEN @RoomID
  13950. ELSE RoomID
  13951. END
  13952. --记录数
  13953. SET @RecordCount = @@ROWCOUNT
  13954. ;WITH [List] AS
  13955. (
  13956. SELECT
  13957. ROW_NUMBER() OVER (ORDER BY
  13958. CASE
  13959. WHEN RoleID > 0 THEN RoleID
  13960. ELSE 99
  13961. END ASC,
  13962. Exps DESC, Level DESC, Crdate DESC
  13963. ) AS RowNumber,
  13964. RoomID, UserID, RoleID, Exps, Level, Crdate
  13965. FROM
  13966. @tmptable
  13967. )
  13968. --返回信息
  13969. SELECT
  13970. l.RoomID, l.UserID, u.NickName, l.RoleID, l.Exps, l.Level, CONVERT(VARCHAR(20), l.Crdate, 120) AS Crdate
  13971. FROM
  13972. [List] AS l INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
  13973. WHERE
  13974. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  13975. ORDER BY
  13976. l.RowNumber ASC
  13977. RETURN
  13978. END
  13979. GO
  13980. /****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetRoomMicLog] Script Date: 2024/1/12 11:01:14 ******/
  13981. SET ANSI_NULLS ON
  13982. GO
  13983. SET QUOTED_IDENTIFIER ON
  13984. GO
  13985. -- EXEC [Manage_AudioRoom_GetRoomMicLog]
  13986. -- @RoomId = 0 -- 房间ID
  13987. -- @RoomName = '' -- 房间昵称(暂不支持)
  13988. -- @UserId = 0 -- 用户ID
  13989. -- @NickName = '' -- 用户昵称(暂不支持)
  13990. -- @BeginTime = '' -- 开始时间
  13991. -- @EndTime = '' -- 结束时间
  13992. -- @PageIndex = 1 -- 页索引
  13993. -- @PageSize = 50 -- 页大小
  13994. -- @RecordCount = 0 -- 记录数
  13995. -- ==============================================
  13996. -- Author: wolf
  13997. -- Create Date: 2023-06-27
  13998. -- Mendor: wolf
  13999. -- Alter Date: 2023-06-27
  14000. -- Description: 获取房间上下麦日志
  14001. -- ==============================================
  14002. CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetRoomMicLog]
  14003. @RoomId INT, -- 房间ID
  14004. @RoomName NVARCHAR(32), -- 房间昵称
  14005. @UserId INT, -- 用户ID
  14006. @NickName NVARCHAR(32), -- 用户昵称
  14007. @BeginTime DATETIME, -- 开始时间
  14008. @EndTime DATETIME, -- 结束时间
  14009. @PageIndex INT, -- 页索引
  14010. @PageSize INT, -- 页大小
  14011. @RecordCount INT OUTPUT -- 记录数
  14012. AS
  14013. SET NOCOUNT ON
  14014. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  14015. SET XACT_ABORT ON
  14016. BEGIN
  14017. DECLARE @StartRowIndex INT -- 起始行索引
  14018. DECLARE @EndRowIndex INT -- 截止行索引
  14019. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  14020. SET @EndRowIndex = @PageIndex * @PageSize
  14021. DECLARE @tmptable TABLE(
  14022. RoomID INT NOT NULL, -- 房间ID
  14023. RoomName NVARCHAR(32) NOT NULL, -- 房间名称
  14024. UserID INT NOT NULL, -- 用户ID
  14025. NickName NVARCHAR(32) NOT NULL, -- 用户昵称
  14026. RoleID TINYINT NOT NULL, -- 用户身份 【角色ID】 (0=关注 1=管理员 2=助理 3=成员)
  14027. MicMode TINYINT NOT NULL, -- 麦位模式(上麦方式)
  14028. OnMicTime DATETIME NOT NULL, -- 上麦时间
  14029. OffMicTime DATETIME NOT NULL, -- 下麦时间
  14030. Seconds INT NOT NULL, -- 时长
  14031. OpUserID INT NOT NULL, -- 操作人ID
  14032. OpUserRoleID TINYINT NOT NULL -- 操作人身份 【角色ID】 (0=关注 1=管理员 2=助理 3=成员)
  14033. )
  14034. INSERT INTO @tmptable
  14035. (
  14036. RoomID, RoomName, UserID, NickName, RoleID, MicMode, OnMicTime, OffMicTime, Seconds, OpUserID, OpUserRoleID
  14037. )
  14038. SELECT
  14039. RoomID, '', UserID, '', RoleID, MicMode, OnMicTime, OffMicTime, Seconds, OpUserID, 0
  14040. FROM
  14041. [RoomMicLog]
  14042. WHERE
  14043. OffMicTime BETWEEN @BeginTime AND @EndTime
  14044. AND RoomID = CASE -- 查询某个房间ID
  14045. WHEN @RoomId > 0 THEN @RoomId
  14046. ELSE RoomID
  14047. END
  14048. AND UserID = CASE -- 查询某个用户ID
  14049. WHEN @UserId > 0 THEN @UserId
  14050. ELSE UserID
  14051. END
  14052. -- 记录数
  14053. SET @RecordCount = @@ROWCOUNT
  14054. -- 修改临时表变量的房间名称
  14055. UPDATE t SET t.RoomName = r.RoomName FROM @tmptable AS t INNER JOIN [AudioRoom] AS r ON t.RoomID = r.RoomID
  14056. -- 修改临时表变量的用户昵称
  14057. UPDATE t SET t.NickName = u.NickName FROM @tmptable AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
  14058. -- 修改临时表变量的操作人角色ID
  14059. UPDATE t SET t.OpUserRoleID = ua.RoleID FROM @tmptable AS t INNER JOIN [UserAudioRoom] AS ua ON t.RoomID = ua.RoomID AND t.OpUserID = ua.UserID
  14060. ;WITH [List] AS
  14061. (
  14062. SELECT
  14063. ROW_NUMBER() OVER(ORDER BY OffMicTime DESC) AS RowNumber,
  14064. RoomID, RoomName, UserID, NickName, RoleID, MicMode, OnMicTime, OffMicTime, Seconds, OpUserID, OpUserRoleID
  14065. FROM
  14066. @tmptable
  14067. )
  14068. -- 返回信息
  14069. SELECT
  14070. RoomID, RoomName, UserID, NickName, RoleID, MicMode,
  14071. CONVERT(CHAR(20), OnMicTime, 120) AS OnMicTime, CONVERT(CHAR(20), OffMicTime, 120) AS OffMicTime,
  14072. Seconds, OpUserID, OpUserRoleID
  14073. FROM
  14074. [List]
  14075. WHERE
  14076. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  14077. ORDER BY
  14078. RowNumber ASC
  14079. RETURN
  14080. END
  14081. GO
  14082. /****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetRoomTaskList] Script Date: 2024/1/12 11:01:14 ******/
  14083. SET ANSI_NULLS ON
  14084. GO
  14085. SET QUOTED_IDENTIFIER ON
  14086. GO
  14087. -- EXEC [Manage_AudioRoom_GetRoomTaskList]
  14088. -- @RoomID = 0
  14089. -- @BeginTime = '2023-08-10 00:00:00'
  14090. -- @EndTime = '2023-08-10 00:00:00'
  14091. -- @PageIndex = 0
  14092. -- @PageSize = 0
  14093. -- @RecordCount = 0
  14094. -- ==============================================
  14095. -- Author: wolf
  14096. -- Create Date: 2015-10-10
  14097. -- Mendor: wolf
  14098. -- Alter Date: 2015-10-10
  14099. -- Description: 获取房间的任务列表
  14100. -- ==============================================
  14101. CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetRoomTaskList]
  14102. @RoomID INT, --房间ID
  14103. @BeginTime DATETIME, -- 开始时间
  14104. @EndTime DATETIME, -- 结束时间
  14105. @PageIndex INT, -- 页索引
  14106. @PageSize INT, -- 页大小
  14107. @RecordCount INT OUTPUT --记录数
  14108. AS
  14109. SET NOCOUNT ON
  14110. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  14111. SET XACT_ABORT ON
  14112. BEGIN
  14113. DECLARE @StartRowIndex INT -- 起始行索引
  14114. DECLARE @EndRowIndex INT -- 截止行索引
  14115. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  14116. SET @EndRowIndex = @PageIndex * @PageSize
  14117. DECLARE @tmptable TABLE(
  14118. Rid INT IDENTITY NOT NULL, -- 自增
  14119. RoomID INT NOT NULL, -- 房间ID
  14120. TaskID INT NOT NULL, -- 任务ID
  14121. Schedule INT NOT NULL, -- 进度
  14122. CurrNum INT NOT NULL, -- 当前数值
  14123. UpdateTime DATETIME NOT NULL -- 更新时间
  14124. )
  14125. IF(@RoomID > 0)
  14126. BEGIN
  14127. -- 指定某个房间
  14128. INSERT INTO @tmptable
  14129. (
  14130. RoomID, TaskID, Schedule, CurrNum, UpdateTime
  14131. )
  14132. SELECT
  14133. RoomID, TaskID, Schedule, CurrNum, UpdateTime
  14134. FROM
  14135. [RoomTask]
  14136. WHERE
  14137. UpdateTime BETWEEN @BeginTime AND @EndTime AND RoomID = @RoomID
  14138. END
  14139. ELSE
  14140. BEGIN
  14141. -- 指定某个房间
  14142. INSERT INTO @tmptable
  14143. (
  14144. RoomID, TaskID, Schedule, CurrNum, UpdateTime
  14145. )
  14146. SELECT
  14147. RoomID, TaskID, Schedule, CurrNum, UpdateTime
  14148. FROM
  14149. [RoomTask]
  14150. WHERE
  14151. UpdateTime BETWEEN @BeginTime AND @EndTime
  14152. END
  14153. -- 记录数
  14154. SET @RecordCount = @@ROWCOUNT
  14155. ;WITH [List] AS
  14156. (
  14157. SELECT
  14158. ROW_NUMBER() OVER(ORDER BY UpdateTime DESC) AS RowNumber,
  14159. RoomID, TaskID, Schedule, CurrNum, UpdateTime
  14160. FROM
  14161. @tmptable
  14162. )
  14163. -- 返回信息
  14164. SELECT
  14165. RoomID, TaskID, Schedule, CurrNum, CONVERT(CHAR(20), UpdateTime, 120) AS UpdateTime
  14166. FROM
  14167. [List]
  14168. WHERE
  14169. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  14170. ORDER BY
  14171. RowNumber ASC
  14172. RETURN
  14173. END
  14174. GO
  14175. /****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetUserRoomTaskList] Script Date: 2024/1/12 11:01:14 ******/
  14176. SET ANSI_NULLS ON
  14177. GO
  14178. SET QUOTED_IDENTIFIER ON
  14179. GO
  14180. -- EXEC [Manage_AudioRoom_GetUserRoomTaskList]
  14181. -- @RoomID = 0
  14182. -- @UserID = 0
  14183. -- @PageIndex = 0
  14184. -- @PageSize = 0
  14185. -- @RecordCount = 0
  14186. -- ==============================================
  14187. -- Author: wolf
  14188. -- Create Date: 2015-10-10
  14189. -- Mendor: wolf
  14190. -- Alter Date: 2015-10-10
  14191. -- Description: 获取用户的房间任务
  14192. -- ==============================================
  14193. CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetUserRoomTaskList]
  14194. @RoomID INT, --房间ID
  14195. @UserID INT, --用户ID
  14196. @PageIndex INT, -- 页索引
  14197. @PageSize INT, -- 页大小
  14198. @RecordCount INT OUTPUT --记录数
  14199. AS
  14200. SET NOCOUNT ON
  14201. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  14202. SET XACT_ABORT ON
  14203. BEGIN
  14204. DECLARE @StartRowIndex INT -- 起始行索引
  14205. DECLARE @EndRowIndex INT -- 截止行索引
  14206. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  14207. SET @EndRowIndex = @PageIndex * @PageSize
  14208. DECLARE @tmptable TABLE(
  14209. UserID INT NOT NULL, --用户ID
  14210. RoomID INT NOT NULL, --房间ID
  14211. TaskID INT NOT NULL, --任务ID
  14212. Schedule INT NOT NULL, --进度
  14213. CurrNum INT NOT NULL, --当前数值
  14214. Status INT NOT NULL, --状态(0=进行中 1=完成)
  14215. UpdateTime DATETIME NOT NULL --更新时间
  14216. )
  14217. -- 返回结果集
  14218. INSERT INTO @tmptable
  14219. (
  14220. UserID, RoomID, TaskID, Schedule, CurrNum, Status, UpdateTime
  14221. )
  14222. SELECT
  14223. UserID, RoomID, TaskID, Schedule, CurrNum, Status, UpdateTime
  14224. FROM
  14225. [UserRoomTask]
  14226. WHERE
  14227. RoomID = CASE -- 指定查找某个房间的所有用户
  14228. WHEN @RoomID > 0 THEN @RoomID
  14229. ELSE RoomID
  14230. END
  14231. AND UserID = CASE -- 指定查找某个用户所在的房间
  14232. WHEN @UserID > 0 THEN @UserID
  14233. ELSE UserID
  14234. END
  14235. -- 记录数
  14236. SET @RecordCount = @@ROWCOUNT
  14237. ;WITH [List] AS
  14238. (
  14239. SELECT
  14240. ROW_NUMBER() OVER(ORDER BY UpdateTime DESC, Schedule DESC) AS RowNumber,
  14241. UserID, RoomID, TaskID, Schedule, CurrNum, Status, UpdateTime
  14242. FROM
  14243. @tmptable
  14244. )
  14245. -- 返回信息
  14246. SELECT
  14247. UserID, RoomID, TaskID, Schedule, CurrNum, Status, CONVERT(CHAR(20), UpdateTime, 120) AS UpdateTime
  14248. FROM
  14249. [List]
  14250. WHERE
  14251. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  14252. ORDER BY
  14253. RowNumber ASC
  14254. RETURN
  14255. END
  14256. GO
  14257. /****** Object: StoredProcedure [dbo].[Manage_CardStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  14258. SET ANSI_NULLS ON
  14259. GO
  14260. SET QUOTED_IDENTIFIER ON
  14261. GO
  14262. -- EXEC [Manage_CardStat_GetList]
  14263. -- ==============================================
  14264. -- Author: wolf
  14265. -- Create Date: 2014-06-11
  14266. -- Mendor: wolf
  14267. -- Alter Date: 2014-06-11
  14268. -- Description: 玩牌统计
  14269. -- ==============================================
  14270. CREATE PROCEDURE [dbo].[Manage_CardStat_GetList]
  14271. @GameID INT, --游戏ID
  14272. @TypeID INT, --类型ID
  14273. @BeginTime DATETIME, --开始时间
  14274. @EndTime DATETIME, --截止时间
  14275. @PageIndex INT, --页索引
  14276. @PageSize INT, --页大小
  14277. @RecordCount INT OUTPUT --记录数
  14278. AS
  14279. SET NOCOUNT ON
  14280. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  14281. SET XACT_ABORT ON
  14282. BEGIN
  14283. DECLARE @StartRowIndex INT --起始行索引
  14284. DECLARE @EndRowIndex INT --截止行索引
  14285. DECLARE @tmptable TABLE(
  14286. DateFlag SMALLDATETIME NOT NULL, --日期标志
  14287. GameID INT NOT NULL, --游戏ID
  14288. PlayUserCount INT NOT NULL, --游戏人数
  14289. SendAmount BIGINT NOT NULL, --发放
  14290. ConsumeAmount BIGINT NOT NULL, --消耗
  14291. BreakUserCount INT NOT NULL, --破产人数
  14292. BreakTimes INT NOT NULL, --破产次数
  14293. PlayCount INT NOT NULL, --游戏局数
  14294. PlaySeconds INT NOT NULL, --游戏时长
  14295. MidwayUserCount INT NOT NULL, --中途退出人数
  14296. MidwayTimes INT NOT NULL --中途退出次数
  14297. )
  14298. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  14299. SET @EndRowIndex = @PageIndex * @PageSize
  14300. --某个标签类型
  14301. IF(@TypeID > 0)
  14302. BEGIN
  14303. IF(@GameID > 0)
  14304. BEGIN
  14305. INSERT INTO @tmptable
  14306. (
  14307. DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
  14308. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
  14309. )
  14310. SELECT
  14311. DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
  14312. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, 0, 0
  14313. FROM
  14314. [GameCardStat]
  14315. WHERE
  14316. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = @TypeID
  14317. END
  14318. ELSE
  14319. BEGIN
  14320. INSERT INTO @tmptable
  14321. (
  14322. DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
  14323. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
  14324. )
  14325. SELECT
  14326. DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
  14327. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, 0, 0
  14328. FROM
  14329. [GameCardStat]
  14330. WHERE
  14331. DateFlag BETWEEN @BeginTime AND @EndTime AND TypeID = @TypeID
  14332. END
  14333. END
  14334. --所有类型
  14335. ELSE
  14336. BEGIN
  14337. IF(@GameID > 0)
  14338. BEGIN
  14339. INSERT INTO @tmptable
  14340. (
  14341. DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
  14342. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
  14343. )
  14344. SELECT
  14345. DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
  14346. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, 0, 0
  14347. FROM
  14348. [GameCardStat]
  14349. WHERE
  14350. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = 0
  14351. END
  14352. ELSE
  14353. BEGIN
  14354. INSERT INTO @tmptable
  14355. (
  14356. DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
  14357. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
  14358. )
  14359. SELECT
  14360. DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
  14361. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, 0, 0
  14362. FROM
  14363. [GameCardStat]
  14364. WHERE
  14365. DateFlag BETWEEN @BeginTime AND @EndTime AND TypeID = 0
  14366. END
  14367. END
  14368. --记录数
  14369. SET @RecordCount = @@ROWCOUNT
  14370. ;WITH [List] AS
  14371. (
  14372. SELECT
  14373. ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
  14374. DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
  14375. BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
  14376. FROM
  14377. @tmptable
  14378. )
  14379. --返回信息
  14380. SELECT
  14381. CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.GameID, g.EnglishName, l.PlayUserCount,
  14382. l.SendAmount, l.ConsumeAmount, l.BreakUserCount, l.BreakTimes,
  14383. l.PlayCount, l.PlaySeconds, l.MidwayUserCount, l.MidwayTimes
  14384. FROM
  14385. [List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
  14386. WHERE
  14387. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  14388. ORDER BY
  14389. l.RowNumber ASC
  14390. RETURN
  14391. END
  14392. GO
  14393. /****** Object: StoredProcedure [dbo].[Manage_Cash_GetTransferLog] Script Date: 2024/1/12 11:01:14 ******/
  14394. SET ANSI_NULLS ON
  14395. GO
  14396. SET QUOTED_IDENTIFIER ON
  14397. GO
  14398. -- EXEC [Manage_Cash_GetTransferLog]
  14399. -- =============================================
  14400. -- Author: wolf
  14401. -- Create Date: 2016-08-11
  14402. -- Mendor: wolf
  14403. -- Alter Date: 2016-08-24
  14404. -- Description: 赠送日志列表
  14405. -- =============================================
  14406. CREATE PROCEDURE [dbo].[Manage_Cash_GetTransferLog]
  14407. @UserID INT, --账号ID
  14408. @BeginTime DATETIME, --开始时间
  14409. @EndTime DATETIME, --结束时间
  14410. @PageIndex INT = 1, --页索引
  14411. @PageSize INT = 10, --页大小
  14412. @RecordCount INT OUTPUT, --总记录数
  14413. @OutTotalAmount BIGINT = 0 OUTPUT, --总转出
  14414. @InTotalAmount BIGINT = 0 OUTPUT, --总转入
  14415. @TotalTaxAmount BIGINT = 0 OUTPUT, --总台费
  14416. @AcceptUserID INT --接受账号ID
  14417. AS
  14418. SET NOCOUNT ON
  14419. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  14420. SET XACT_ABORT ON
  14421. BEGIN
  14422. DECLARE @StartRowIndex INT --起始行索引
  14423. DECLARE @EndRowIndex INT --截止行索引
  14424. --表变量
  14425. DECLARE @tmptable TABLE(
  14426. Rid INT NOT NULL, --标识
  14427. UserID INT NOT NULL, --用户ID
  14428. NickName NVARCHAR(32) NOT NULL, --昵称
  14429. CurrAmount BIGINT NOT NULL, --操作前
  14430. WantAmount BIGINT NOT NULL, --操作
  14431. StillAmount BIGINT NOT NULL, --剩余
  14432. Action INT NOT NULL, --1=转入 -1=转出
  14433. AcceptUserID INT NOT NULL, --接收方ID
  14434. AcceptNickName NVARCHAR(32) NOT NULL, --接收方昵称
  14435. AcceptCurrAmount BIGINT NOT NULL, --接收方操作前
  14436. AcceptWantAmount BIGINT NOT NULL, --接收方操作
  14437. AcceptStillAmount BIGINT NOT NULL, --接收方剩余
  14438. TaxAmount BIGINT NOT NULL, --台费
  14439. Memo NVARCHAR(256) NOT NULL, --备注
  14440. IPAddress VARCHAR(16) NOT NULL, --IP地址
  14441. Crdate DATETIME NOT NULL --时间
  14442. )
  14443. SET @RecordCount = 0
  14444. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  14445. SET @EndRowIndex = @PageIndex * @PageSize
  14446. SET @OutTotalAmount = 0
  14447. SET @InTotalAmount = 0
  14448. SET @TotalTaxAmount = 0
  14449. --查询某个用户
  14450. IF(@UserID > 0)
  14451. BEGIN
  14452. IF(@AcceptUserID > 0)
  14453. BEGIN
  14454. INSERT INTO @tmptable
  14455. (
  14456. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
  14457. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14458. TaxAmount, Memo, IPAddress, Crdate
  14459. )
  14460. SELECT
  14461. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
  14462. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14463. TaxAmount, Memo, IPAddress, Crdate
  14464. FROM
  14465. [TransferLog]
  14466. WHERE
  14467. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND AcceptUserID = @AcceptUserID
  14468. UNION ALL
  14469. SELECT
  14470. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, 1,
  14471. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14472. TaxAmount, Memo, IPAddress, Crdate
  14473. FROM
  14474. [TransferLog]
  14475. WHERE
  14476. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @AcceptUserID AND AcceptUserID = @UserID
  14477. --总记录数
  14478. SET @RecordCount = @@ROWCOUNT
  14479. END
  14480. ELSE
  14481. BEGIN
  14482. INSERT INTO @tmptable
  14483. (
  14484. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
  14485. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14486. TaxAmount, Memo, IPAddress, Crdate
  14487. )
  14488. SELECT
  14489. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
  14490. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14491. TaxAmount, Memo, IPAddress, Crdate
  14492. FROM
  14493. [TransferLog]
  14494. WHERE
  14495. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  14496. UNION ALL
  14497. SELECT
  14498. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, 1,
  14499. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14500. TaxAmount, Memo, IPAddress, Crdate
  14501. FROM
  14502. [TransferLog]
  14503. WHERE
  14504. Crdate BETWEEN @BeginTime AND @EndTime AND AcceptUserID = @UserID
  14505. --总记录数
  14506. SET @RecordCount = @@ROWCOUNT
  14507. END
  14508. --总转出
  14509. SELECT @OutTotalAmount = SUM(AcceptWantAmount) FROM @tmptable WHERE Action = -1
  14510. --总转入
  14511. SELECT @InTotalAmount = SUM(AcceptWantAmount) FROM @tmptable WHERE Action = 1
  14512. --总台费
  14513. SELECT @TotalTaxAmount = SUM(TaxAmount) FROM @tmptable
  14514. SET @OutTotalAmount = ISNULL(@OutTotalAmount, 0)
  14515. SET @InTotalAmount = ISNULL(@InTotalAmount, 0)
  14516. SET @TotalTaxAmount = ISNULL(@TotalTaxAmount, 0)
  14517. END
  14518. --查询时间段内该应用的所有数据
  14519. ELSE
  14520. BEGIN
  14521. INSERT INTO @tmptable
  14522. (
  14523. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
  14524. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14525. TaxAmount, Memo, IPAddress, Crdate
  14526. )
  14527. SELECT
  14528. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
  14529. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14530. TaxAmount, Memo, IPAddress, Crdate
  14531. FROM
  14532. [TransferLog]
  14533. WHERE
  14534. Crdate BETWEEN @BeginTime AND @EndTime
  14535. --总记录数
  14536. SET @RecordCount = @@ROWCOUNT
  14537. END
  14538. ;WITH [List] AS
  14539. (
  14540. SELECT
  14541. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  14542. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
  14543. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14544. TaxAmount, Memo, IPAddress, Crdate
  14545. FROM
  14546. @tmptable
  14547. )
  14548. --返回信息:标识(Rid)(int)、账号ID(UserID)(int)、昵称(NickName)(varchar(32))、当前钻石(CurrAmount)(int)、
  14549. -- 修改钻石(WantAmount)(int)、备注(Memo)(varchar(128))、IP地址(IPAddress)(varchar(16))、时间(Crdate)(varchar)
  14550. SELECT
  14551. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount,
  14552. CASE
  14553. WHEN Action = -1 THEN N'<span class="badge badge-success radius">赠送</span>'
  14554. WHEN Action = 1 THEN N'<span class="badge badge-warning radius">接收</span>'
  14555. ELSE ''
  14556. END AS Action,
  14557. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  14558. TaxAmount, Memo, IPAddress, CONVERT(CHAR(20), Crdate, 120) AS Crdate
  14559. FROM
  14560. [List]
  14561. WHERE
  14562. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  14563. ORDER BY
  14564. RowNumber ASC
  14565. RETURN
  14566. END
  14567. GO
  14568. /****** Object: StoredProcedure [dbo].[Manage_CasinoOnline_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  14569. SET ANSI_NULLS ON
  14570. GO
  14571. SET QUOTED_IDENTIFIER ON
  14572. GO
  14573. -- EXEC [Manage_CasinoOnline_GetInfo]
  14574. -- ==============================================
  14575. -- Author: wolf
  14576. -- Create Date: 2017-02-13
  14577. -- Mendor: wolf
  14578. -- Alter Date: 2017-02-13
  14579. -- Description: 后台管理--解锁金币场
  14580. -- ==============================================
  14581. CREATE PROCEDURE [dbo].[Manage_CasinoOnline_GetInfo]
  14582. @UserID INT, --用户ID
  14583. @NickName NVARCHAR(32) --昵称
  14584. AS
  14585. SET NOCOUNT ON
  14586. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  14587. SET XACT_ABORT ON
  14588. BEGIN
  14589. DECLARE @NewUserID INT --用户ID
  14590. DECLARE @NewNickName NVARCHAR(32) --昵称
  14591. DECLARE @LoginTime DATETIME --登陆时间
  14592. DECLARE @ServerName NVARCHAR(32) --服务器名称
  14593. SET @NewUserID = 0
  14594. SET @NewNickName = ''
  14595. SET @LoginTime = 0
  14596. SET @ServerName = ''
  14597. --用户ID
  14598. IF(@UserID > 0)
  14599. BEGIN
  14600. SELECT @NewUserID = UserID, @NewNickName = NickName FROM [AllUser] WHERE UserID = @UserID
  14601. END
  14602. --昵称
  14603. ELSE
  14604. BEGIN
  14605. SELECT @NewUserID = UserID, @NewNickName = NickName FROM [AllUser] WHERE NickName = @NickName
  14606. END
  14607. --金币锁信息
  14608. SELECT @LoginTime = LoginTime, @ServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
  14609. --返回信息
  14610. SELECT @NewUserID AS UserID, @ServerName AS NickName, @LoginTime AS LoginTime, @ServerName AS ServerName
  14611. RETURN
  14612. END
  14613. GO
  14614. /****** Object: StoredProcedure [dbo].[Manage_CasinoOnline_GetList] Script Date: 2024/1/12 11:01:14 ******/
  14615. SET ANSI_NULLS ON
  14616. GO
  14617. SET QUOTED_IDENTIFIER ON
  14618. GO
  14619. -- DECLARE @RecordCount INT
  14620. -- EXEC [Manage_CasinoOnline_GetList]
  14621. -- @UserID = 1,
  14622. -- @PageIndex = 1,
  14623. -- @PageSize = 10,
  14624. -- @RecordCount = @RecordCount OUTPUT
  14625. -- SELECT @RecordCount AS RecordCount
  14626. -- ==============================================
  14627. -- Author: wolf
  14628. -- Create Date: 2014-09-01
  14629. -- Mendor: wolf
  14630. -- Alter Date: 2016-10-10
  14631. -- Description: 后台管理--获取在线列表
  14632. -- ==============================================
  14633. CREATE PROCEDURE [dbo].[Manage_CasinoOnline_GetList]
  14634. @UserID INT, --用户ID
  14635. @GameID INT, --游戏ID
  14636. @PartnerID INT, --渠道ID
  14637. @IsChip SMALLINT, --是否元宝 (-1=所有 0=休闲 1=元宝)
  14638. @PageIndex INT = 1, --页索引
  14639. @PageSize INT = 10, --页大小
  14640. @RecordCount INT OUTPUT --记录数
  14641. AS
  14642. SET NOCOUNT ON
  14643. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  14644. SET XACT_ABORT ON
  14645. BEGIN
  14646. DECLARE @StartRowIndex INT --起始行索引
  14647. DECLARE @EndRowIndex INT --截止行索引
  14648. --表变量
  14649. DECLARE @tmptable TABLE(
  14650. UserID INT NOT NULL, --用户ID
  14651. LoginTime DATETIME NOT NULL, --登陆时间
  14652. ServerName NVARCHAR(64) NOT NULL, --服务器名称
  14653. PartnerID INT NOT NULL, --渠道ID
  14654. GameID INT NOT NULL, --游戏ID
  14655. NickName NVARCHAR(32) NOT NULL, --昵称
  14656. IPAddress VARCHAR(16) NOT NULL, --IP地址
  14657. IsChip TINYINT NOT NULL --是否元宝
  14658. )
  14659. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  14660. SET @EndRowIndex = @PageIndex * @PageSize
  14661. --用户ID
  14662. IF(@UserID > 0)
  14663. BEGIN
  14664. IF(@GameID >= 0)
  14665. BEGIN
  14666. INSERT INTO @tmptable
  14667. (
  14668. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14669. )
  14670. SELECT
  14671. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14672. FROM
  14673. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14674. WHERE
  14675. c.UserID = @UserID AND c.GameID = @GameID
  14676. END
  14677. ELSE
  14678. BEGIN
  14679. INSERT INTO @tmptable
  14680. (
  14681. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14682. )
  14683. SELECT
  14684. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14685. FROM
  14686. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14687. WHERE
  14688. c.UserID = @UserID
  14689. END
  14690. END
  14691. --某个渠道
  14692. ELSE IF(@PartnerID > 0)
  14693. BEGIN
  14694. IF(@GameID > 0)
  14695. BEGIN
  14696. IF(@IsChip != -1)
  14697. BEGIN
  14698. INSERT INTO @tmptable
  14699. (
  14700. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14701. )
  14702. SELECT
  14703. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14704. FROM
  14705. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14706. WHERE
  14707. u.PartnerID = @PartnerID AND c.GameID = @GameID AND c.IsChip = @IsChip
  14708. END
  14709. ELSE
  14710. BEGIN
  14711. INSERT INTO @tmptable
  14712. (
  14713. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14714. )
  14715. SELECT
  14716. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14717. FROM
  14718. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14719. WHERE
  14720. u.PartnerID = @PartnerID AND c.GameID = @GameID
  14721. END
  14722. END
  14723. ELSE
  14724. BEGIN
  14725. IF(@IsChip != -1)
  14726. BEGIN
  14727. INSERT INTO @tmptable
  14728. (
  14729. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14730. )
  14731. SELECT
  14732. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14733. FROM
  14734. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14735. WHERE
  14736. u.PartnerID = @PartnerID AND c.IsChip = @IsChip
  14737. END
  14738. ELSE
  14739. BEGIN
  14740. INSERT INTO @tmptable
  14741. (
  14742. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14743. )
  14744. SELECT
  14745. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14746. FROM
  14747. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14748. WHERE
  14749. u.PartnerID = @PartnerID
  14750. END
  14751. END
  14752. END
  14753. --某个游戏
  14754. ELSE IF(@GameID > 0)
  14755. BEGIN
  14756. IF(@PartnerID > 0)
  14757. BEGIN
  14758. IF(@IsChip != -1)
  14759. BEGIN
  14760. INSERT INTO @tmptable
  14761. (
  14762. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14763. )
  14764. SELECT
  14765. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14766. FROM
  14767. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14768. WHERE
  14769. c.GameID = @GameID AND u.PartnerID = @PartnerID AND c.IsChip = @IsChip
  14770. END
  14771. ELSE
  14772. BEGIN
  14773. INSERT INTO @tmptable
  14774. (
  14775. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14776. )
  14777. SELECT
  14778. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14779. FROM
  14780. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14781. WHERE
  14782. c.GameID = @GameID AND u.PartnerID = @PartnerID
  14783. END
  14784. END
  14785. ELSE
  14786. BEGIN
  14787. IF(@IsChip != -1)
  14788. BEGIN
  14789. INSERT INTO @tmptable
  14790. (
  14791. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14792. )
  14793. SELECT
  14794. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14795. FROM
  14796. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14797. WHERE
  14798. c.GameID = @GameID AND c.IsChip = @IsChip
  14799. END
  14800. ELSE
  14801. BEGIN
  14802. INSERT INTO @tmptable
  14803. (
  14804. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14805. )
  14806. SELECT
  14807. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14808. FROM
  14809. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14810. WHERE
  14811. c.GameID = @GameID
  14812. END
  14813. END
  14814. END
  14815. --所有用户
  14816. ELSE
  14817. BEGIN
  14818. IF(@IsChip != -1)
  14819. BEGIN
  14820. INSERT INTO @tmptable
  14821. (
  14822. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14823. )
  14824. SELECT
  14825. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14826. FROM
  14827. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID AND c.IsChip = @IsChip
  14828. END
  14829. ELSE
  14830. BEGIN
  14831. INSERT INTO @tmptable
  14832. (
  14833. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14834. )
  14835. SELECT
  14836. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
  14837. FROM
  14838. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14839. END
  14840. END
  14841. --总记录数
  14842. SET @RecordCount = @@ROWCOUNT
  14843. ;WITH [List] AS
  14844. (
  14845. SELECT
  14846. ROW_NUMBER() OVER(ORDER BY LoginTime DESC) AS RowNumber,
  14847. UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
  14848. FROM
  14849. @tmptable
  14850. )
  14851. --返回信息:用户ID(UserID)(int)、昵称(NickName)(varchar(32))、登陆时间(LoginTime)(varchar(16))、服务器名称(ServerName)(varchar(32))
  14852. SELECT
  14853. l.UserID, l.NickName, CONVERT(CHAR(23), l.LoginTime, 121) AS LoginTime,
  14854. CASE
  14855. WHEN l.ServerName = '' THEN N'游戏大厅'
  14856. ELSE l.ServerName
  14857. END AS ServerName,
  14858. l.IPAddress, ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName,
  14859. CASE
  14860. WHEN l.GameID > 0 THEN N'<font color="#9400D3">游戏中</font>'
  14861. WHEN CHARINDEX(N'练习场', l.ServerName) > 0 THEN N'练习场'
  14862. ELSE N'<font color="#C0C0C0">空闲</font>'
  14863. END AS GameType, ISNULL(g.ChineseName, N'游戏大厅') AS ChineseName, l.IsChip
  14864. FROM
  14865. [List] l LEFT JOIN [AllGame] g ON l.GameID = g.GameID
  14866. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  14867. WHERE
  14868. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  14869. ORDER BY
  14870. l.RowNumber ASC
  14871. RETURN
  14872. END
  14873. GO
  14874. /****** Object: StoredProcedure [dbo].[Manage_CasinoOnline_GetListByGame] Script Date: 2024/1/12 11:01:14 ******/
  14875. SET ANSI_NULLS ON
  14876. GO
  14877. SET QUOTED_IDENTIFIER ON
  14878. GO
  14879. -- DECLARE @RecordCount INT
  14880. -- EXEC [Manage_CasinoOnline_GetListByGame]
  14881. -- @UserID = 1,
  14882. -- @PageIndex = 1,
  14883. -- @PageSize = 10,
  14884. -- @RecordCount = @RecordCount OUTPUT
  14885. -- SELECT @RecordCount AS RecordCount
  14886. -- ==============================================
  14887. -- Author: wolf
  14888. -- Create Date: 2014-09-01
  14889. -- Mendor: wolf
  14890. -- Alter Date: 2016-10-31
  14891. -- Description: 后台管理--获取在线列表
  14892. -- ==============================================
  14893. CREATE PROCEDURE [dbo].[Manage_CasinoOnline_GetListByGame]
  14894. @UserID INT, --用户ID
  14895. @DBName VARCHAR(32), --数据库名称
  14896. @PartnerID INT, --渠道ID
  14897. @PageIndex INT = 1, --页索引
  14898. @PageSize INT = 10, --页大小
  14899. @RecordCount INT OUTPUT --记录数
  14900. AS
  14901. SET NOCOUNT ON
  14902. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  14903. SET XACT_ABORT ON
  14904. BEGIN
  14905. DECLARE @StartRowIndex INT --起始行索引
  14906. DECLARE @EndRowIndex INT --截止行索引
  14907. DECLARE @GameID INT --游戏ID
  14908. --创建临时表
  14909. CREATE TABLE #tmptable(
  14910. UserID INT NOT NULL, --用户ID
  14911. LoginTime DATETIME NOT NULL, --登陆时间
  14912. ServerName NVARCHAR(64) NOT NULL, --服务器名称
  14913. PartnerID INT NOT NULL, --渠道ID
  14914. NickName NVARCHAR(32) NOT NULL, --昵称
  14915. IPAddress VARCHAR(16) NOT NULL, --IP地址
  14916. IsChip TINYINT NOT NULL --是否元宝
  14917. )
  14918. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  14919. SET @EndRowIndex = @PageIndex * @PageSize
  14920. --游戏ID
  14921. SELECT @GameID = GameID FROM [AllGame] WHERE DBName = @DBName
  14922. --用户ID
  14923. IF(@UserID > 0)
  14924. BEGIN
  14925. IF(@GameID > 0)
  14926. BEGIN
  14927. INSERT INTO #tmptable
  14928. (
  14929. UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
  14930. )
  14931. SELECT
  14932. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
  14933. FROM
  14934. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14935. WHERE
  14936. c.UserID = @UserID AND c.GameID = @GameID
  14937. END
  14938. ELSE
  14939. BEGIN
  14940. INSERT INTO #tmptable
  14941. (
  14942. UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
  14943. )
  14944. SELECT
  14945. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
  14946. FROM
  14947. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14948. WHERE
  14949. c.UserID = @UserID
  14950. END
  14951. END
  14952. --某个渠道
  14953. ELSE IF(@PartnerID > 0)
  14954. BEGIN
  14955. INSERT INTO #tmptable
  14956. (
  14957. UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
  14958. )
  14959. SELECT
  14960. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
  14961. FROM
  14962. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14963. WHERE
  14964. u.PartnerID = @PartnerID
  14965. END
  14966. --所有用户
  14967. ELSE
  14968. BEGIN
  14969. IF(@GameID > 0)
  14970. BEGIN
  14971. INSERT INTO #tmptable
  14972. (
  14973. UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
  14974. )
  14975. SELECT
  14976. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
  14977. FROM
  14978. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14979. WHERE
  14980. c.GameID = @GameID
  14981. END
  14982. ELSE
  14983. BEGIN
  14984. INSERT INTO #tmptable
  14985. (
  14986. UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
  14987. )
  14988. SELECT
  14989. c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
  14990. FROM
  14991. [t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
  14992. END
  14993. END
  14994. --总记录数
  14995. SET @RecordCount = @@ROWCOUNT
  14996. ;WITH [List] AS
  14997. (
  14998. SELECT
  14999. ROW_NUMBER() OVER(ORDER BY LoginTime DESC) AS RowNumber,
  15000. UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
  15001. FROM
  15002. #tmptable
  15003. )
  15004. --返回信息:用户ID(UserID)(int)、昵称(NickName)(varchar(32))、登陆时间(LoginTime)(varchar(16))、服务器名称(ServerName)(varchar(32))
  15005. SELECT
  15006. l.UserID, l.NickName, l.LoginTime AS LoginTime, l.ServerName, l.IPAddress,
  15007. ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.IsChip
  15008. FROM
  15009. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  15010. WHERE
  15011. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  15012. ORDER BY
  15013. l.RowNumber ASC
  15014. --清除临时表
  15015. DROP TABLE #tmptable
  15016. RETURN
  15017. END
  15018. GO
  15019. /****** Object: StoredProcedure [dbo].[Manage_CasinoOnline_Unlock] Script Date: 2024/1/12 11:01:14 ******/
  15020. SET ANSI_NULLS ON
  15021. GO
  15022. SET QUOTED_IDENTIFIER ON
  15023. GO
  15024. -- EXEC [Manage_CasinoOnline_Unlock]
  15025. -- @OpUserID = 1,
  15026. -- @OpUserName = '',
  15027. -- @UserID = 1,
  15028. -- @Memo = '',
  15029. -- @Days = 1,
  15030. -- @IPAddress = ''
  15031. -- ==============================================
  15032. -- Author: wolf
  15033. -- Create Date: 2017-02-13
  15034. -- Mendor: wolf
  15035. -- Alter Date: 2017-02-13
  15036. -- Description: 后台管理--解锁金币场
  15037. -- ==============================================
  15038. CREATE PROCEDURE [dbo].[Manage_CasinoOnline_Unlock]
  15039. @OpUserID INT, --操作员ID
  15040. @OpUserName VARCHAR(32), --操作员名称
  15041. @UserID INT, --用户ID
  15042. @IPAddress VARCHAR(16), --IP地址
  15043. @RetCode TINYINT OUTPUT --操作结果
  15044. AS
  15045. SET NOCOUNT ON
  15046. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  15047. SET XACT_ABORT ON
  15048. BEGIN
  15049. DECLARE @LoginTime DATETIME --登录时间
  15050. DECLARE @ServerName NVARCHAR(64) --服务器名称
  15051. DECLARE @GameID INT --游戏ID
  15052. DECLARE @Msg NVARCHAR(4000) --消息
  15053. SET @Retcode = 0
  15054. --获取金币锁信息
  15055. SELECT @LoginTime = LoginTime, @ServerName = ServerName, @GameID = GameID FROM [CasinoOnline] WHERE UserID = @UserID
  15056. IF(@@ROWCOUNT = 0)
  15057. BEGIN
  15058. SET @RetCode = 11
  15059. RETURN
  15060. END
  15061. --解锁
  15062. DELETE FROM [CasinoOnline] WHERE UserID = @UserID
  15063. --消息
  15064. SET @Msg = N'Backstage gold field unlocking, Related information:@UserID=' + LTRIM(STR(@UserID)) + ',@ServerName=' + @ServerName +
  15065. ',@LoginTime=' + CONVERT(CHAR(16), @LoginTime, 120) + ',@GameID=' + LTRIM(STR(@GameID))
  15066. --添加日志
  15067. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  15068. SET @RetCode = 1
  15069. RETURN
  15070. END
  15071. GO
  15072. /****** Object: StoredProcedure [dbo].[Manage_Chip_DelCoin] Script Date: 2024/1/12 11:01:14 ******/
  15073. SET ANSI_NULLS ON
  15074. GO
  15075. SET QUOTED_IDENTIFIER ON
  15076. GO
  15077. /*
  15078. WEB通用调用加金币接口
  15079. */
  15080. CREATE PROCEDURE [dbo].[Manage_Chip_DelCoin]
  15081. @UserID INT,
  15082. @SourceName VARCHAR(32), --Web应用名称
  15083. @Reason VARCHAR(128),
  15084. @WantAmount BIGINT,
  15085. @WantBank BIGINT,
  15086. @IPAddress VARCHAR(16),
  15087. @OpUserID INT,
  15088. @OpUserName VARCHAR(32),
  15089. @RetCode TINYINT OUTPUT,
  15090. @ErrorMsg NVARCHAR(128) OUTPUT
  15091. AS
  15092. SET NOCOUNT ON
  15093. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  15094. SET XACT_ABORT ON
  15095. BEGIN
  15096. DECLARE @intCurrentAmount BIGINT
  15097. DECLARE @chvDBServerName NVARCHAR(64)
  15098. DECLARE @chvRemark VARCHAR(128)
  15099. DECLARE @LogType INT
  15100. DECLARE @Msg NVARCHAR(4000)
  15101. SET @intCurrentAmount = 0
  15102. SET @Reason = '(' + LTRIM(STR(@OpUserID)) + ',' + @OpUserName + '),' + @Reason
  15103. SET @RetCode = 0
  15104. SET @ErrorMsg = ''
  15105. SET @LogType = 7
  15106. IF(@SourceName IS NULL OR @SourceName = '')
  15107. BEGIN
  15108. SET @SourceName = ''
  15109. SET @chvRemark = 'Web application name is empty (deduction) ' + @Reason
  15110. INSERT INTO [ChipLog]
  15111. (
  15112. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15113. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15114. )
  15115. VALUES
  15116. (
  15117. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  15118. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15119. )
  15120. SET @RetCode = 11
  15121. SET @ErrorMsg = N'WEB应用名称为空(扣金)'
  15122. RETURN
  15123. END
  15124. IF(@UserID IS NULL OR @UserID <= 0)
  15125. BEGIN
  15126. SET @UserID = 1
  15127. SET @chvRemark = 'Web deduction - safe: incorrect user ID ' + @Reason
  15128. INSERT INTO [ChipLog]
  15129. (
  15130. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15131. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15132. )
  15133. VALUES
  15134. (
  15135. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  15136. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15137. )
  15138. SET @RetCode = 12
  15139. SET @ErrorMsg = N'WEB扣金:用户ID不正确'
  15140. RETURN
  15141. END
  15142. IF(@WantAmount < 0)
  15143. BEGIN
  15144. SET @chvRemark = 'Web deduction: incorrect amount of deduction ' + @Reason
  15145. INSERT INTO [ChipLog]
  15146. (
  15147. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15148. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15149. )
  15150. VALUES
  15151. (
  15152. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  15153. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15154. )
  15155. SET @RetCode = 13
  15156. SET @ErrorMsg = N'WEB扣金:扣金数量不正确'
  15157. RETURN
  15158. END
  15159. --添加日志
  15160. SET @Msg = N'Admin Reduce Coin, @UserID=' + LTRIM(STR(@UserID)) + ',@WantAmount=' + CAST(@WantAmount AS VARCHAR(32)) + ',@Reason=' + @Reason
  15161. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  15162. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  15163. BEGIN TRAN
  15164. --扣除现金
  15165. IF(@WantAmount > 0)
  15166. BEGIN
  15167. SET @chvDBServerName = (SELECT ServerName FROM [CasinoOnline] WHERE UserID = @UserID )
  15168. IF(@chvDBServerName IS NOT NULL)
  15169. BEGIN
  15170. ROLLBACK TRAN
  15171. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  15172. SET @chvRemark = 'Web deduction: users have locks ' + @Reason
  15173. INSERT INTO [ChipLog]
  15174. (
  15175. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15176. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15177. )
  15178. VALUES
  15179. (
  15180. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  15181. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15182. )
  15183. SET @RetCode = 15
  15184. SET @ErrorMsg = N'当前您在服务器:' + @chvDBServerName + '中,请退出'
  15185. RETURN
  15186. END
  15187. -----------------检查用户现金-------------------------------
  15188. SELECT @intCurrentAmount = [Amount] FROM [Chip] WHERE [UserID] = @UserID
  15189. IF(@intCurrentAmount < @WantAmount)
  15190. BEGIN
  15191. ROLLBACK TRAN
  15192. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  15193. SET @chvRemark = 'Web deduction: user cash is not enough ' + @Reason
  15194. INSERT INTO [ChipLog]
  15195. (
  15196. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15197. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15198. )
  15199. VALUES
  15200. (
  15201. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  15202. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15203. )
  15204. SET @RetCode = 16
  15205. SET @ErrorMsg = N'对不起,您的现金量不足不可以进行这次操作'
  15206. RETURN
  15207. END
  15208. UPDATE [Chip] SET Amount = Amount - @WantAmount WHERE UserID = @UserID
  15209. END
  15210. COMMIT TRAN
  15211. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  15212. --------------写Log和统计----------------
  15213. IF(@WantAmount > 0)
  15214. BEGIN
  15215. SET @chvRemark = 'Successful gold coin deduction ' + @Reason
  15216. INSERT INTO [ChipLog]
  15217. (
  15218. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15219. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15220. )
  15221. VALUES
  15222. (
  15223. @SourceName, 0, 'CASH', @UserID, @intCurrentAmount, -@WantAmount,
  15224. @intCurrentAmount - @WantAmount, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15225. )
  15226. END
  15227. --统计
  15228. SET @WantAmount = -@WantAmount
  15229. EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @WantAmount, @TaxSum = 0, @LogType = @LogType
  15230. SET @RetCode = 1
  15231. SET @ErrorMsg = N'扣金币成功'
  15232. RETURN
  15233. END
  15234. GO
  15235. /****** Object: StoredProcedure [dbo].[Manage_Chip_GetCashLog] Script Date: 2024/1/12 11:01:14 ******/
  15236. SET ANSI_NULLS ON
  15237. GO
  15238. SET QUOTED_IDENTIFIER ON
  15239. GO
  15240. -- EXEC [Manage_Chip_GetCashLog]
  15241. -- =============================================
  15242. -- Author: wolf
  15243. -- Create Date: 2014-04-23
  15244. -- Mendor: wolf
  15245. -- Alter Date: 2015-10-12
  15246. -- Description: 后台管理--筹码日志列表
  15247. -- =============================================
  15248. CREATE PROCEDURE [dbo].[Manage_Chip_GetCashLog]
  15249. @UserID INT, --账号ID
  15250. @PartnerID INT, --渠道ID
  15251. @SourceName NVARCHAR(32), --应用名称
  15252. @BeginTime DATETIME, --开始时间
  15253. @EndTime DATETIME, --结束时间
  15254. @PageIndex INT = 1, --页索引
  15255. @PageSize INT = 10, --页大小
  15256. @RecordCount INT OUTPUT --总记录数
  15257. AS
  15258. SET NOCOUNT ON
  15259. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  15260. SET XACT_ABORT ON
  15261. BEGIN
  15262. DECLARE @StartRowIndex INT --起始行索引
  15263. DECLARE @EndRowIndex INT --截止行索引
  15264. --申请表变量
  15265. DECLARE @tmptable TABLE(
  15266. LogID INT NOT NULL, --标识
  15267. SourceName NVARCHAR(32) NOT NULL, --应用
  15268. MoneyType VARCHAR(8) NOT NULL, --货币类型
  15269. UserID INT NOT NULL, --用户ID
  15270. CurrentAmount BIGINT NOT NULL, --当前数量
  15271. ModifyAmount BIGINT NOT NULL, --修改数量
  15272. StillAmount BIGINT NOT NULL, --剩余数量
  15273. Remark VARCHAR(128) NOT NULL, --备注
  15274. IPAddress VARCHAR(16) NOT NULL, --IP地址
  15275. Crdate DATETIME NOT NULL, --时间
  15276. TaxAmount BIGINT NOT NULL --台费
  15277. )
  15278. SET @RecordCount = 0
  15279. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  15280. SET @EndRowIndex = @PageIndex * @PageSize
  15281. --应用
  15282. IF(LEN(@SourceName) > 0)
  15283. BEGIN
  15284. --查询应用下的某个账号
  15285. IF(@UserID > 0)
  15286. BEGIN
  15287. INSERT INTO @tmptable
  15288. (
  15289. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15290. Remark, IPAddress, Crdate, TaxAmount
  15291. )
  15292. SELECT TOP 10000
  15293. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15294. Remark, IPAddress, Crdate, TaxAmount
  15295. FROM
  15296. [ChipLog]
  15297. WHERE
  15298. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND SourceName = @SourceName
  15299. ORDER BY
  15300. LogID DESC
  15301. --总记录数
  15302. SET @RecordCount = @@ROWCOUNT
  15303. IF(@RecordCount < 10000)
  15304. BEGIN
  15305. INSERT INTO @tmptable
  15306. (
  15307. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15308. Remark, IPAddress, Crdate, TaxAmount
  15309. )
  15310. SELECT TOP (10000 - @RecordCount)
  15311. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15312. Remark, IPAddress, Crdate, TaxAmount
  15313. FROM
  15314. [ChipLog_bak]
  15315. WHERE
  15316. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND SourceName = @SourceName
  15317. ORDER BY
  15318. LogID DESC
  15319. --总记录数
  15320. SET @RecordCount = @RecordCount + @@ROWCOUNT
  15321. END
  15322. END
  15323. --查询应用下的所有账号
  15324. ELSE
  15325. BEGIN
  15326. INSERT INTO @tmptable
  15327. (
  15328. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15329. Remark, IPAddress, Crdate, TaxAmount
  15330. )
  15331. SELECT TOP 10000
  15332. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15333. Remark, IPAddress, Crdate, TaxAmount
  15334. FROM
  15335. [ChipLog]
  15336. WHERE
  15337. Crdate BETWEEN @BeginTime AND @EndTime AND SourceName = @SourceName
  15338. ORDER BY
  15339. LogID DESC
  15340. --总记录数
  15341. SET @RecordCount = @@ROWCOUNT
  15342. IF(@RecordCount < 10000)
  15343. BEGIN
  15344. INSERT INTO @tmptable
  15345. (
  15346. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15347. Remark, IPAddress, Crdate, TaxAmount
  15348. )
  15349. SELECT TOP (10000 - @RecordCount)
  15350. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15351. Remark, IPAddress, Crdate, TaxAmount
  15352. FROM
  15353. [ChipLog_bak]
  15354. WHERE
  15355. Crdate BETWEEN @BeginTime AND @EndTime AND SourceName = @SourceName
  15356. ORDER BY
  15357. LogID DESC
  15358. --总记录数
  15359. SET @RecordCount = @RecordCount + @@ROWCOUNT
  15360. END
  15361. END
  15362. END
  15363. --查询用户的某个应用
  15364. ELSE IF(@UserID > 0)
  15365. BEGIN
  15366. INSERT INTO @tmptable
  15367. (
  15368. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15369. Remark, IPAddress, Crdate, TaxAmount
  15370. )
  15371. SELECT TOP 10000
  15372. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15373. Remark, IPAddress, Crdate, TaxAmount
  15374. FROM
  15375. [ChipLog]
  15376. WHERE
  15377. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  15378. ORDER BY
  15379. LogID DESC
  15380. --总记录数
  15381. SET @RecordCount = @@ROWCOUNT
  15382. IF(@RecordCount < 10000)
  15383. BEGIN
  15384. INSERT INTO @tmptable
  15385. (
  15386. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15387. Remark, IPAddress, Crdate, TaxAmount
  15388. )
  15389. SELECT TOP (10000 - @RecordCount)
  15390. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15391. Remark, IPAddress, Crdate, TaxAmount
  15392. FROM
  15393. [ChipLog_bak]
  15394. WHERE
  15395. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  15396. ORDER BY
  15397. LogID DESC
  15398. --总记录数
  15399. SET @RecordCount = @RecordCount + @@ROWCOUNT
  15400. END
  15401. END
  15402. --查询某个渠道
  15403. ELSE IF(@PartnerID > 0)
  15404. BEGIN
  15405. INSERT INTO @tmptable
  15406. (
  15407. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15408. Remark, IPAddress, Crdate, TaxAmount
  15409. )
  15410. SELECT TOP 10000
  15411. l.LogID, l.SourceName, l.MoneyType, l.UserID, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
  15412. l.Remark, l.IPAddress, l.Crdate, l.TaxAmount
  15413. FROM
  15414. [ChipLog] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  15415. WHERE
  15416. l.Crdate BETWEEN @BeginTime AND @EndTime AND u.PartnerID = @PartnerID
  15417. ORDER BY
  15418. l.LogID DESC
  15419. --总记录数
  15420. SET @RecordCount = @@ROWCOUNT
  15421. IF(@RecordCount < 10000)
  15422. BEGIN
  15423. INSERT INTO @tmptable
  15424. (
  15425. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15426. Remark, IPAddress, Crdate, TaxAmount
  15427. )
  15428. SELECT TOP (10000 - @RecordCount)
  15429. l.LogID, l.SourceName, l.MoneyType, l.UserID, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
  15430. l.Remark, l.IPAddress, l.Crdate, l.TaxAmount
  15431. FROM
  15432. [ChipLog_bak] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  15433. WHERE
  15434. l.Crdate BETWEEN @BeginTime AND @EndTime AND u.PartnerID = @PartnerID
  15435. ORDER BY
  15436. l.LogID DESC
  15437. --总记录数
  15438. SET @RecordCount = @RecordCount + @@ROWCOUNT
  15439. END
  15440. END
  15441. --查询所有应用
  15442. ELSE
  15443. BEGIN
  15444. INSERT INTO @tmptable
  15445. (
  15446. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15447. Remark, IPAddress, Crdate, TaxAmount
  15448. )
  15449. SELECT TOP 10000
  15450. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15451. Remark, IPAddress, Crdate, TaxAmount
  15452. FROM
  15453. [ChipLog]
  15454. WHERE
  15455. Crdate BETWEEN @BeginTime AND @EndTime AND UserID > 100
  15456. ORDER BY
  15457. LogID DESC
  15458. --总记录数
  15459. SET @RecordCount = @@ROWCOUNT
  15460. IF(@RecordCount < 10000)
  15461. BEGIN
  15462. INSERT INTO @tmptable
  15463. (
  15464. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15465. Remark, IPAddress, Crdate, TaxAmount
  15466. )
  15467. SELECT TOP (10000 - @RecordCount)
  15468. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15469. Remark, IPAddress, Crdate, TaxAmount
  15470. FROM
  15471. [ChipLog_bak]
  15472. WHERE
  15473. Crdate BETWEEN @BeginTime AND @EndTime AND UserID > 100
  15474. ORDER BY
  15475. LogID DESC
  15476. --总记录数
  15477. SET @RecordCount = @RecordCount + @@ROWCOUNT
  15478. END
  15479. END
  15480. ;WITH [List] AS
  15481. (
  15482. SELECT
  15483. ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
  15484. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  15485. Remark, IPAddress, Crdate, TaxAmount
  15486. FROM
  15487. @tmptable
  15488. )
  15489. --返回信息
  15490. SELECT
  15491. l.LogID, l.SourceName, l.MoneyType, l.UserID, u.NickName, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
  15492. l.Remark, l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
  15493. ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName, l.TaxAmount
  15494. FROM
  15495. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  15496. LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
  15497. WHERE
  15498. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  15499. ORDER BY
  15500. l.RowNumber ASC
  15501. RETURN
  15502. END
  15503. GO
  15504. /****** Object: StoredProcedure [dbo].[Manage_Chip_GetTop] Script Date: 2024/1/12 11:01:14 ******/
  15505. SET ANSI_NULLS ON
  15506. GO
  15507. SET QUOTED_IDENTIFIER ON
  15508. GO
  15509. -- EXEC [Manage_Chip_GetTop]
  15510. -- ==============================================
  15511. -- Author: wolf
  15512. -- Create Date: 2014-09-04
  15513. -- Mendor: wolf
  15514. -- Alter Date: 2015-11-06
  15515. -- Description: 筹码排行
  15516. -- ==============================================
  15517. CREATE PROCEDURE [dbo].[Manage_Chip_GetTop]
  15518. @PartnerID INT, --渠道ID
  15519. @PageIndex INT, --页索引
  15520. @PageSize INT, --页大小
  15521. @RecordCount INT OUTPUT --总记录数
  15522. AS
  15523. SET NOCOUNT ON
  15524. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  15525. SET XACT_ABORT ON
  15526. BEGIN
  15527. DECLARE @StartRowIndex INT --起始行索引
  15528. DECLARE @EndRowIndex INT --截止行索引
  15529. DECLARE @tmptable TABLE(
  15530. Rank INT NOT NULL, --名次
  15531. PartnerID INT NOT NULL, --渠道ID
  15532. PartnerName NVARCHAR(32) NOT NULL, --渠道名称
  15533. UserID INT NOT NULL, --用户ID
  15534. NickName NVARCHAR(32) NOT NULL, --昵称
  15535. Amount BIGINT NOT NULL, --金币数量
  15536. Bank BIGINT NOT NULL, --保险柜
  15537. PayMoney DECIMAL(18, 2) NOT NULL --充值金额
  15538. )
  15539. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  15540. SET @EndRowIndex = @PageIndex * @PageSize
  15541. --记录数
  15542. SET @RecordCount = (SELECT COUNT(UserID) FROM [Chip] WHERE UserID NOT IN (SELECT UserID FROM [MachineUser]) AND UserID > 0)
  15543. ;WITH [List] AS
  15544. (
  15545. SELECT
  15546. ROW_NUMBER() OVER(ORDER BY Amount + Bank DESC) AS RowNumber,
  15547. UserID, Amount, Bank
  15548. FROM
  15549. [Chip]
  15550. WHERE
  15551. UserID NOT IN (SELECT UserID FROM [MachineUser]) AND UserID > 0
  15552. )
  15553. --获取变量
  15554. INSERT INTO @tmptable
  15555. (
  15556. Rank, PartnerID, PartnerName, UserID, NickName, Amount, Bank, PayMoney
  15557. )
  15558. SELECT
  15559. RowNumber, 0, '', UserID, '', Amount, Bank, 0
  15560. FROM
  15561. [List]
  15562. WHERE
  15563. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  15564. ORDER BY
  15565. RowNumber ASC
  15566. --获取用户信息
  15567. UPDATE
  15568. t
  15569. SET
  15570. t.NickName = u.NickName, t.PartnerID = u.PartnerID, t.PayMoney = u.PayMoney
  15571. FROM
  15572. @tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
  15573. --获取渠道名称
  15574. UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
  15575. --返回信息
  15576. SELECT
  15577. Rank, CASE WHEN PartnerName = '' THEN LTRIM(STR(PartnerID)) ELSE PartnerName END AS PartnerName,
  15578. UserID, NickName, Amount, Bank, PayMoney
  15579. FROM
  15580. @tmptable
  15581. ORDER BY
  15582. Rank ASC
  15583. RETURN
  15584. END
  15585. GO
  15586. /****** Object: StoredProcedure [dbo].[Manage_Chip_GetTransferLog] Script Date: 2024/1/12 11:01:14 ******/
  15587. SET ANSI_NULLS ON
  15588. GO
  15589. SET QUOTED_IDENTIFIER ON
  15590. GO
  15591. -- EXEC [Manage_Chip_GetTransferLog]
  15592. -- =============================================
  15593. -- Author: wolf
  15594. -- Create Date: 2016-08-11
  15595. -- Mendor: wolf
  15596. -- Alter Date: 2016-08-24
  15597. -- Description: 赠送日志列表
  15598. -- =============================================
  15599. CREATE PROCEDURE [dbo].[Manage_Chip_GetTransferLog]
  15600. @UserID INT, --账号ID
  15601. @BeginTime DATETIME, --开始时间
  15602. @EndTime DATETIME, --结束时间
  15603. @PageIndex INT = 1, --页索引
  15604. @PageSize INT = 10, --页大小
  15605. @RecordCount INT OUTPUT, --总记录数
  15606. @OutTotalAmount BIGINT = 0 OUTPUT, --总转出
  15607. @InTotalAmount BIGINT = 0 OUTPUT, --总转入
  15608. @TotalTaxAmount BIGINT = 0 OUTPUT, --总台费
  15609. @AcceptUserID INT --接受账号ID
  15610. AS
  15611. SET NOCOUNT ON
  15612. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  15613. SET XACT_ABORT ON
  15614. BEGIN
  15615. DECLARE @StartRowIndex INT --起始行索引
  15616. DECLARE @EndRowIndex INT --截止行索引
  15617. --表变量
  15618. DECLARE @tmptable TABLE(
  15619. Rid INT NOT NULL, --标识
  15620. UserID INT NOT NULL, --用户ID
  15621. NickName NVARCHAR(32) NOT NULL, --昵称
  15622. CurrAmount BIGINT NOT NULL, --操作前
  15623. WantAmount BIGINT NOT NULL, --操作
  15624. StillAmount BIGINT NOT NULL, --剩余
  15625. Action INT NOT NULL, --1=转入 -1=转出
  15626. AcceptUserID INT NOT NULL, --接收方ID
  15627. AcceptNickName NVARCHAR(32) NOT NULL, --接收方昵称
  15628. AcceptCurrAmount BIGINT NOT NULL, --接收方操作前
  15629. AcceptWantAmount BIGINT NOT NULL, --接收方操作
  15630. AcceptStillAmount BIGINT NOT NULL, --接收方剩余
  15631. TaxAmount BIGINT NOT NULL, --台费
  15632. Memo NVARCHAR(256) NOT NULL, --备注
  15633. IPAddress VARCHAR(16) NOT NULL, --IP地址
  15634. Crdate DATETIME NOT NULL --时间
  15635. )
  15636. SET @RecordCount = 0
  15637. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  15638. SET @EndRowIndex = @PageIndex * @PageSize
  15639. SET @OutTotalAmount = 0
  15640. SET @InTotalAmount = 0
  15641. SET @TotalTaxAmount = 0
  15642. --查询某个用户
  15643. IF(@UserID > 0)
  15644. BEGIN
  15645. IF(@AcceptUserID > 0)
  15646. BEGIN
  15647. INSERT INTO @tmptable
  15648. (
  15649. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
  15650. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15651. TaxAmount, Memo, IPAddress, Crdate
  15652. )
  15653. SELECT
  15654. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
  15655. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15656. TaxAmount, Memo, IPAddress, Crdate
  15657. FROM
  15658. [ChipTransferLog]
  15659. WHERE
  15660. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND AcceptUserID = @AcceptUserID
  15661. UNION ALL
  15662. SELECT
  15663. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, 1,
  15664. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15665. TaxAmount, Memo, IPAddress, Crdate
  15666. FROM
  15667. [ChipTransferLog]
  15668. WHERE
  15669. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @AcceptUserID AND AcceptUserID = @UserID
  15670. --总记录数
  15671. SET @RecordCount = @@ROWCOUNT
  15672. END
  15673. ELSE
  15674. BEGIN
  15675. INSERT INTO @tmptable
  15676. (
  15677. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
  15678. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15679. TaxAmount, Memo, IPAddress, Crdate
  15680. )
  15681. SELECT
  15682. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
  15683. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15684. TaxAmount, Memo, IPAddress, Crdate
  15685. FROM
  15686. [ChipTransferLog]
  15687. WHERE
  15688. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  15689. UNION ALL
  15690. SELECT
  15691. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, 1,
  15692. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15693. TaxAmount, Memo, IPAddress, Crdate
  15694. FROM
  15695. [ChipTransferLog]
  15696. WHERE
  15697. Crdate BETWEEN @BeginTime AND @EndTime AND AcceptUserID = @UserID
  15698. --总记录数
  15699. SET @RecordCount = @@ROWCOUNT
  15700. END
  15701. --总转出
  15702. SELECT @OutTotalAmount = SUM(AcceptWantAmount) FROM @tmptable WHERE Action = -1
  15703. --总转入
  15704. SELECT @InTotalAmount = SUM(AcceptWantAmount) FROM @tmptable WHERE Action = 1
  15705. --总台费
  15706. SELECT @TotalTaxAmount = SUM(TaxAmount) FROM @tmptable
  15707. SET @OutTotalAmount = ISNULL(@OutTotalAmount, 0)
  15708. SET @InTotalAmount = ISNULL(@InTotalAmount, 0)
  15709. SET @TotalTaxAmount = ISNULL(@TotalTaxAmount, 0)
  15710. END
  15711. --查询时间段内该应用的所有数据
  15712. ELSE
  15713. BEGIN
  15714. INSERT INTO @tmptable
  15715. (
  15716. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
  15717. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15718. TaxAmount, Memo, IPAddress, Crdate
  15719. )
  15720. SELECT
  15721. LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
  15722. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15723. TaxAmount, Memo, IPAddress, Crdate
  15724. FROM
  15725. [ChipTransferLog]
  15726. WHERE
  15727. Crdate BETWEEN @BeginTime AND @EndTime
  15728. --总记录数
  15729. SET @RecordCount = @@ROWCOUNT
  15730. END
  15731. ;WITH [List] AS
  15732. (
  15733. SELECT
  15734. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  15735. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
  15736. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15737. TaxAmount, Memo, IPAddress, Crdate
  15738. FROM
  15739. @tmptable
  15740. )
  15741. --返回信息:标识(Rid)(int)、账号ID(UserID)(int)、昵称(NickName)(varchar(32))、当前钻石(CurrAmount)(int)、
  15742. -- 修改钻石(WantAmount)(int)、备注(Memo)(varchar(128))、IP地址(IPAddress)(varchar(16))、时间(Crdate)(varchar)
  15743. SELECT
  15744. Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount,
  15745. CASE
  15746. WHEN Action = -1 THEN '<span class="badge badge-success radius">赠送</span>'
  15747. WHEN Action = 1 THEN '<span class="badge badge-warning radius">接收</span>'
  15748. ELSE ''
  15749. END AS Action,
  15750. AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
  15751. TaxAmount, Memo, IPAddress, CONVERT(CHAR(20), Crdate, 120) AS Crdate
  15752. FROM
  15753. [List]
  15754. WHERE
  15755. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  15756. ORDER BY
  15757. RowNumber ASC
  15758. RETURN
  15759. END
  15760. GO
  15761. /****** Object: StoredProcedure [dbo].[Manage_Chip_SendCoin] Script Date: 2024/1/12 11:01:14 ******/
  15762. SET ANSI_NULLS ON
  15763. GO
  15764. SET QUOTED_IDENTIFIER ON
  15765. GO
  15766. /*
  15767. WEB通用调用加金币接口
  15768. */
  15769. CREATE PROCEDURE [dbo].[Manage_Chip_SendCoin]
  15770. @UserID INT,
  15771. @SourceName NVARCHAR(32), --Web应用名称 BuyKey (U币购买门票)
  15772. @Reason NVARCHAR(128),
  15773. @WantAmount BIGINT,
  15774. @IPAddress VARCHAR(16),
  15775. @OpUserID INT,
  15776. @OpUserName VARCHAR(32),
  15777. @RetCode TINYINT OUTPUT,
  15778. @ErrorMsg NVARCHAR(64) OUTPUT --错误描述
  15779. AS
  15780. SET NOCOUNT ON
  15781. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  15782. SET XACT_ABORT ON
  15783. BEGIN
  15784. DECLARE @intCurrentAmount BIGINT
  15785. DECLARE @chvRemark NVARCHAR(128)
  15786. DECLARE @LogType INT
  15787. DECLARE @MaxAmount BIGINT --最大额度
  15788. DECLARE @SendAmount BIGINT --发送金额
  15789. DECLARE @Msg NVARCHAR(4000)
  15790. DECLARE @RoleID INT --角色ID
  15791. SET @intCurrentAmount = 0
  15792. SET @Reason = '(' + LTRIM(STR(@OpUserID)) + ',' + @OpUserName + '),' + @Reason
  15793. SET @RetCode = 0
  15794. SET @ErrorMsg = ''
  15795. SET @LogType = 5
  15796. SET @MaxAmount = 1000000
  15797. SET @RoleID = 0
  15798. IF(@SourceName IS NULL OR @SourceName = '')
  15799. BEGIN
  15800. SET @SourceName = ''
  15801. SET @chvRemark = N'Web application name is empty,' + @Reason
  15802. INSERT INTO [ChipLog]
  15803. (
  15804. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15805. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15806. )
  15807. VALUES
  15808. (
  15809. @SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
  15810. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15811. )
  15812. SET @RetCode = 11
  15813. SET @ErrorMsg = N'Web application name is empty'
  15814. RETURN
  15815. END
  15816. IF(@UserID IS NULL OR @UserID <=0)
  15817. BEGIN
  15818. SET @UserID = 1
  15819. SET @chvRemark = N'Incorrect user ID ' + @Reason
  15820. INSERT INTO [ChipLog]
  15821. (
  15822. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15823. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15824. )
  15825. VALUES
  15826. (
  15827. @SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
  15828. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15829. )
  15830. SET @RetCode = 12
  15831. SET @ErrorMsg = N'Incorrect user ID'
  15832. END
  15833. IF(@WantAmount < 0)
  15834. BEGIN
  15835. SET @chvRemark = N'Incorrect amount of money delivered ' + @Reason
  15836. INSERT INTO [ChipLog]
  15837. (
  15838. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15839. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15840. )
  15841. VALUES
  15842. (
  15843. @SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
  15844. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15845. )
  15846. SET @RetCode = 13
  15847. SET @ErrorMsg = N'送金数量不正确'
  15848. RETURN
  15849. END
  15850. --角色ID
  15851. SELECT TOP 1 @RoleID = RoleID FROM [RoleUser] WHERE AdminUserID = @OpUserID ORDER BY RoleID ASC
  15852. --管理员角色
  15853. IF(@RoleID = 1)
  15854. BEGIN
  15855. SET @MaxAmount = 999999999999999
  15856. --测试账号
  15857. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  15858. BEGIN
  15859. SET @MaxAmount = 999999999999999
  15860. END
  15861. END
  15862. --发送总额
  15863. SELECT @SendAmount = ISNULL(SUM(WantAmount), 0) FROM [AdminSendCoin] WHERE Crdate >= CONVERT(CHAR(10), GETDATE(), 120)
  15864. --赠送超出今天限额
  15865. IF(@SendAmount + @WantAmount > @MaxAmount)
  15866. BEGIN
  15867. SET @RetCode = 15
  15868. SET @ErrorMsg = N'The increase exceeds the limit'
  15869. RETURN
  15870. END
  15871. --加入今天赠送日志
  15872. INSERT INTO [AdminSendCoin]
  15873. (
  15874. OpUserID, OpUserName, UserID, WantAmount, Crdate
  15875. )
  15876. VALUES
  15877. (
  15878. @OpUserID, @OpUserName, @UserID, @WantAmount, GETDATE()
  15879. )
  15880. --添加日志
  15881. SET @Msg = N'Admin Send Coin, @UserID=' + LTRIM(STR(@UserID)) + ',@WantAmount=' + CAST(@WantAmount AS VARCHAR(32)) + ',@Reason=' + @Reason
  15882. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  15883. SELECT @intCurrentAmount = [Amount] FROM [Chip] WHERE [UserID] = @UserID
  15884. -------------加金币、保险柜------------------------
  15885. UPDATE [Chip] SET [Amount] = [Amount] + @WantAmount WHERE [UserID] = @UserID
  15886. IF(@@RowCount = 0)
  15887. BEGIN
  15888. INSERT INTO [Chip](UserID, Amount, Bank) VALUES(@UserID, @WantAmount, 0)
  15889. END
  15890. --------------写Log和统计----------------
  15891. IF(@WantAmount > 0)
  15892. BEGIN
  15893. SET @chvRemark = N'Gold coin delivered successfully ' + @Reason
  15894. INSERT INTO [ChipLog]
  15895. (
  15896. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  15897. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  15898. )
  15899. VALUES
  15900. (
  15901. @SourceName, 0, 'CASH', @UserID, @intCurrentAmount, @WantAmount,
  15902. @intCurrentAmount + @WantAmount, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  15903. )
  15904. END
  15905. --统计
  15906. EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @WantAmount, @TaxSum = 0, @LogType = @LogType
  15907. SET @RetCode = 1
  15908. SET @ErrorMsg = N'送金币成功'
  15909. RETURN
  15910. END
  15911. GO
  15912. /****** Object: StoredProcedure [dbo].[Manage_ChipScoreRank_GetList] Script Date: 2024/1/12 11:01:14 ******/
  15913. SET ANSI_NULLS ON
  15914. GO
  15915. SET QUOTED_IDENTIFIER ON
  15916. GO
  15917. -- EXEC [Manage_ChipScoreRank_GetList]
  15918. -- ==============================================
  15919. -- Author: wolf
  15920. -- Create Date: 2016-07-11
  15921. -- Mendor: wolf
  15922. -- Alter Date: 2017-02-23
  15923. -- Description: 元宝积分榜
  15924. -- ==============================================
  15925. CREATE PROCEDURE [dbo].[Manage_ChipScoreRank_GetList]
  15926. @RankType TINYINT --榜单类型
  15927. AS
  15928. SET NOCOUNT ON
  15929. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  15930. SET XACT_ABORT ON
  15931. BEGIN
  15932. --表变量
  15933. DECLARE @tmptable TABLE(
  15934. DateFlag SMALLDATETIME NOT NULL, --日期
  15935. Rank INT NOT NULL, --排名
  15936. UserID INT NOT NULL, --用户ID
  15937. Amount BIGINT NOT NULL, --积分
  15938. Crdate DATETIME NOT NULL --时间
  15939. )
  15940. --总榜
  15941. IF(@RankType = 1)
  15942. BEGIN
  15943. ;WITH [List] AS
  15944. (
  15945. SELECT
  15946. ROW_NUMBER() OVER(ORDER BY SUM(Amount) DESC) AS RowNumber,
  15947. UserID, SUM(Amount) AS Score
  15948. FROM
  15949. [ChipScoreRank]
  15950. GROUP BY
  15951. UserID
  15952. )
  15953. INSERT INTO @tmptable
  15954. (
  15955. DateFlag, Rank, UserID, Amount, Crdate
  15956. )
  15957. SELECT
  15958. '2022-05-01', RowNumber, UserID, Score, GETDATE()
  15959. FROM
  15960. [List]
  15961. WHERE
  15962. RowNumber <= 50
  15963. END
  15964. --每天榜
  15965. ELSE
  15966. BEGIN
  15967. INSERT INTO @tmptable
  15968. (
  15969. DateFlag, Rank, UserID, Amount, Crdate
  15970. )
  15971. SELECT
  15972. DateFlag, Rank, UserID, Amount, Crdate
  15973. FROM
  15974. [ChipScoreRank]
  15975. ;WITH [List] AS
  15976. (
  15977. SELECT
  15978. ROW_NUMBER() OVER(ORDER BY Score DESC) AS RowNumber,
  15979. UserID, Score
  15980. FROM
  15981. [UserChipScore]
  15982. WHERE
  15983. DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  15984. )
  15985. --生成排行
  15986. INSERT INTO @tmptable
  15987. (
  15988. DateFlag, Rank, UserID, Amount, Crdate
  15989. )
  15990. SELECT
  15991. CONVERT(CHAR(16), GETDATE(), 120), RowNumber, UserID, Score, CONVERT(CHAR(16), GETDATE(), 120)
  15992. FROM
  15993. [List]
  15994. WHERE
  15995. RowNumber <= 50
  15996. END
  15997. --返回信息
  15998. SELECT
  15999. CONVERT(VARCHAR(16), t.DateFlag, 120) AS DateFlag, t.Rank, t.UserID, u.NickName, t.Amount,
  16000. CONVERT(VARCHAR(16), t.Crdate, 120) AS Crdate
  16001. FROM
  16002. @tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
  16003. ORDER BY
  16004. t.DateFlag DESC, t.Rank ASC
  16005. RETURN
  16006. END
  16007. GO
  16008. /****** Object: StoredProcedure [dbo].[Manage_ChipStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  16009. SET ANSI_NULLS ON
  16010. GO
  16011. SET QUOTED_IDENTIFIER ON
  16012. GO
  16013. -- EXEC [Manage_ChipStat_GetList]
  16014. -- ==============================================
  16015. -- Author: wolf
  16016. -- Create Date: 2014-09-09
  16017. -- Mendor: wolf
  16018. -- Alter Date: 2014-12-22
  16019. -- Description: 筹码统计
  16020. -- ==============================================
  16021. CREATE PROCEDURE [dbo].[Manage_ChipStat_GetList]
  16022. @BeginTime DATETIME, --开始时间
  16023. @EndTime DATETIME, --截止时间
  16024. @Send BIGINT OUTPUT, --总发行
  16025. @Consume BIGINT OUTPUT, --总消耗
  16026. @GameSend BIGINT OUTPUT, --游戏发行
  16027. @GameConsume BIGINT OUTPUT, --游戏消耗
  16028. @GameDiff BIGINT OUTPUT, --游戏差额
  16029. @Cash BIGINT OUTPUT, --金币总额
  16030. @Bank BIGINT OUTPUT, --保险柜总额
  16031. @YesterdayAmount BIGINT OUTPUT, --前日总额
  16032. @CurrAmount BIGINT OUTPUT --当前总额
  16033. AS
  16034. SET NOCOUNT ON
  16035. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16036. SET XACT_ABORT ON
  16037. BEGIN
  16038. DECLARE @Yesterday SMALLDATETIME --前日日期
  16039. DECLARE @Today SMALLDATETIME --当前日期
  16040. --表变量
  16041. DECLARE @tmptable TABLE(
  16042. LogType INT NOT NULL, --日志类型
  16043. LogTypeName NVARCHAR(32) NOT NULL, --日志类型名称
  16044. GameID INT NOT NULL, --游戏ID
  16045. Amount BIGINT NOT NULL, --金额
  16046. SendAmount BIGINT NOT NULL, --发行
  16047. DelAmount BIGINT NOT NULL, --消耗
  16048. DiffAmount BIGINT NOT NULL --游戏总额
  16049. )
  16050. --申请表变量
  16051. DECLARE @tmpSum TABLE(
  16052. GameID INT NOT NULL, --游戏ID
  16053. SendAmount BIGINT NOT NULL, --发行
  16054. DelAmount BIGINT NOT NULL, --消耗
  16055. DiffAmount BIGINT NOT NULL --游戏总额
  16056. )
  16057. SET @Yesterday = CONVERT(CHAR(10), @BeginTime, 120)
  16058. SET @Today = CONVERT(CHAR(10), @EndTime + 1, 120)
  16059. --金币统计
  16060. INSERT INTO @tmptable
  16061. (
  16062. LogType, LogTypeName, GameID, Amount, SendAmount, DelAmount, DiffAmount
  16063. )
  16064. SELECT
  16065. LogType, '', 0, SUM(MoneySum), 0, 0, 0
  16066. FROM
  16067. [ChipStat]
  16068. WHERE
  16069. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  16070. GROUP BY
  16071. LogType
  16072. --获取类型名称、游戏ID
  16073. UPDATE
  16074. t
  16075. SET
  16076. t.LogTypeName = m.LogTypeName, t.GameID = m.GameID
  16077. FROM
  16078. @tmptable t INNER JOIN [MoneyLogType] m ON t.LogType = m.LogType
  16079. --统计
  16080. SELECT
  16081. @Send = ISNULL(SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END), 0), --总发行
  16082. @Consume = ISNULL(SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END), 0), --总消耗
  16083. @GameSend = ISNULL(SUM(CASE WHEN GameID > 0 AND Amount > 0 THEN Amount ELSE 0 END), 0), --游戏发行
  16084. @GameConsume = ISNULL(SUM(CASE WHEN GameID > 0 AND Amount < 0 THEN Amount ELSE 0 END), 0), --游戏消耗
  16085. @GameDiff = ISNULL(SUM(CASE WHEN GameID > 0 THEN Amount ELSE 0 END), 0) --游戏差额
  16086. FROM
  16087. @tmptable
  16088. --按游戏统计总额
  16089. INSERT INTO @tmpSum
  16090. (
  16091. GameID, SendAmount, DelAmount, DiffAmount
  16092. )
  16093. SELECT
  16094. GameID, ISNULL(SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END), 0),
  16095. ISNULL(SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END), 0), ISNULL(SUM(Amount), 0)
  16096. FROM
  16097. @tmptable
  16098. GROUP BY
  16099. GameID
  16100. --金币统计
  16101. INSERT INTO @tmptable
  16102. (
  16103. LogType, LogTypeName, GameID, Amount, SendAmount, DelAmount, DiffAmount
  16104. )
  16105. SELECT
  16106. (LogType / 100) * 100 + 24, N'游戏消耗', LogType / 100, SUM(-TaxSum), 0, 0, 0
  16107. FROM
  16108. [ChipStat]
  16109. WHERE
  16110. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser]) AND TaxSum > 0
  16111. GROUP BY
  16112. LogType / 100
  16113. --获取游戏总计
  16114. UPDATE
  16115. l
  16116. SET
  16117. l.SendAmount = s.SendAmount, l.DelAmount = s.DelAmount, l.DiffAmount = s.DiffAmount
  16118. FROM
  16119. @tmptable l INNER JOIN @tmpSum s ON l.GameID = s.GameID
  16120. --今天数据,实时统计
  16121. IF(@EndTime >= CONVERT(CHAR(10), GETDATE(), 120))
  16122. BEGIN
  16123. --金币总额、存款总额
  16124. SELECT @Cash = ISNULL(SUM(Amount), 0), @Bank = ISNULL(SUM(Bank), 0) FROM [Chip] WHERE UserID NOT IN (SELECT UserID FROM [MachineUser])
  16125. END
  16126. --历史数据,取存量统计数据
  16127. ELSE
  16128. BEGIN
  16129. --金币总额
  16130. SELECT
  16131. @Cash = TotalAmount, @Bank = TotalBank
  16132. FROM
  16133. [ChipStatTotal]
  16134. WHERE
  16135. Crdate = @Today
  16136. END
  16137. --当前总存量
  16138. SET @CurrAmount = @Cash + @Bank
  16139. --前日总存量
  16140. SELECT @YesterdayAmount = TotalAmount + TotalBank FROM [ChipStatTotal] WHERE Crdate = @Yesterday
  16141. --返回信息
  16142. SELECT
  16143. t.LogType, t.LogTypeName, t.GameID, t.Amount,
  16144. CASE WHEN t.GameID = 0 THEN N'游戏大厅' ELSE ISNULL(g.ChineseName, ISNULL(t.GameID, 0)) END AS ChineseName,
  16145. t.SendAmount, t.DelAmount, t.DiffAmount
  16146. FROM
  16147. @tmptable t LEFT JOIN [AllGame] g ON t.GameID = g.GameID
  16148. ORDER BY
  16149. t.GameID ASC, t.Amount DESC, t.LogType ASC
  16150. RETURN
  16151. END
  16152. GO
  16153. /****** Object: StoredProcedure [dbo].[Manage_ChipStatTotal_GetList] Script Date: 2024/1/12 11:01:14 ******/
  16154. SET ANSI_NULLS ON
  16155. GO
  16156. SET QUOTED_IDENTIFIER ON
  16157. GO
  16158. -- DECLARE @RecordCount INT
  16159. -- EXEC [Manage_ChipStatTotal_GetList]
  16160. -- @BeginTime = '',
  16161. -- @EndTime = '',
  16162. -- @PageIndex = 1,
  16163. -- @PageSize = 10,
  16164. -- @RecordCount = @RecordCount OUTPUT
  16165. -- SELECT @RecordCount AS RecordCount
  16166. -- ==============================================
  16167. -- Author: wolf
  16168. -- Create Date: 2014-09-04
  16169. -- Mendor: wolf
  16170. -- Alter Date: 2015-11-06
  16171. -- Description: 获取游戏库存量
  16172. -- ==============================================
  16173. CREATE PROCEDURE [dbo].[Manage_ChipStatTotal_GetList]
  16174. @BeginTime DATETIME, --起始时间
  16175. @EndTime DATETIME, --截止时间
  16176. @PageIndex INT, --页索引
  16177. @PageSize INT, --页大小
  16178. @RecordCount INT OUTPUT --总记录数
  16179. AS
  16180. SET NOCOUNT ON
  16181. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16182. SET XACT_ABORT ON
  16183. BEGIN
  16184. DECLARE @StartRowIndex INT --起始行索引
  16185. DECLARE @EndRowIndex INT --截止行索引
  16186. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  16187. SET @EndRowIndex = @PageIndex * @PageSize
  16188. --总记录数
  16189. SELECT @RecordCount = (SELECT COUNT(Crdate) FROM [ChipStatTotal] WHERE Crdate BETWEEN @BeginTime AND @EndTime)
  16190. ;WITH [List] AS
  16191. (
  16192. SELECT
  16193. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  16194. Crdate, TotalAmount, TotalBank
  16195. FROM
  16196. [ChipStatTotal]
  16197. WHERE
  16198. Crdate BETWEEN @BeginTime AND @EndTime
  16199. )
  16200. --返回信息:
  16201. SELECT
  16202. RowNumber, CONVERT(CHAR(16), Crdate, 120) AS Crdate, TotalAmount, TotalBank
  16203. FROM
  16204. [List]
  16205. WHERE
  16206. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  16207. ORDER BY
  16208. RowNumber ASC
  16209. RETURN
  16210. END
  16211. GO
  16212. /****** Object: StoredProcedure [dbo].[Manage_ChipStatTotal_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
  16213. SET ANSI_NULLS ON
  16214. GO
  16215. SET QUOTED_IDENTIFIER ON
  16216. GO
  16217. -- DECLARE @RecordCount INT
  16218. -- EXEC [Manage_ChipStatTotal_GetListByDay]
  16219. -- @BeginTime = '',
  16220. -- @EndTime = '',
  16221. -- @PageIndex = 1,
  16222. -- @PageSize = 10,
  16223. -- @RecordCount = @RecordCount OUTPUT
  16224. -- SELECT @RecordCount AS RecordCount
  16225. -- ==============================================
  16226. -- Author: wolf
  16227. -- Create Date: 2014-09-04
  16228. -- Mendor: wolf
  16229. -- Alter Date: 2015-04-03
  16230. -- Description: 获取游戏库存量
  16231. -- ==============================================
  16232. CREATE PROCEDURE [dbo].[Manage_ChipStatTotal_GetListByDay]
  16233. @BeginTime DATETIME, --起始时间
  16234. @EndTime DATETIME, --截止时间
  16235. @PageIndex INT, --页索引
  16236. @PageSize INT, --页大小
  16237. @RecordCount INT OUTPUT --总记录数
  16238. AS
  16239. SET NOCOUNT ON
  16240. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16241. SET XACT_ABORT ON
  16242. BEGIN
  16243. DECLARE @StartRowIndex INT --起始行索引
  16244. DECLARE @EndRowIndex INT --截止行索引
  16245. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  16246. SET @EndRowIndex = @PageIndex * @PageSize
  16247. --申请表变量
  16248. DECLARE @tmptable TABLE(
  16249. Crdate SMALLDATETIME NOT NULL,
  16250. TotalAmount BIGINT NOT NULL, --当前总存量
  16251. TotalBank BIGINT NOT NULL --当前保险柜存量
  16252. )
  16253. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  16254. --初始化表变量
  16255. INSERT INTO @tmptable
  16256. (
  16257. Crdate, TotalAmount, TotalBank
  16258. )
  16259. SELECT
  16260. Crdate, TotalAmount, TotalBank
  16261. FROM
  16262. [ChipStatTotal]
  16263. WHERE
  16264. Crdate IN (SELECT MAX(Crdate) FROM [ChipStatTotal] WHERE Crdate BETWEEN @BeginTime AND @EndTime GROUP BY CONVERT(CHAR(10), Crdate, 120))
  16265. --总记录数
  16266. SELECT @RecordCount = @@ROWCOUNT
  16267. ;WITH [List] AS
  16268. (
  16269. SELECT
  16270. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  16271. Crdate, TotalAmount, TotalBank, (TotalAmount + TotalBank) AS Total
  16272. FROM
  16273. @tmptable
  16274. )
  16275. --返回信息:
  16276. SELECT
  16277. RowNumber, CONVERT(CHAR(10), Crdate, 120) AS Crdate, TotalAmount, TotalBank, Total
  16278. FROM
  16279. [List]
  16280. WHERE
  16281. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  16282. ORDER BY
  16283. RowNumber ASC
  16284. RETURN
  16285. END
  16286. GO
  16287. /****** Object: StoredProcedure [dbo].[Manage_ChipTaxStatTotal_GetList] Script Date: 2024/1/12 11:01:14 ******/
  16288. SET ANSI_NULLS ON
  16289. GO
  16290. SET QUOTED_IDENTIFIER ON
  16291. GO
  16292. -- EXEC [Manage_ChipTaxStatTotal_GetList]
  16293. -- ==============================================
  16294. -- Author: wolf
  16295. -- Create Date: 2014-09-04
  16296. -- Mendor: wolf
  16297. -- Alter Date: 2016-01-27
  16298. -- Description: 后台管理--获取游戏税收总计
  16299. -- ==============================================
  16300. CREATE PROCEDURE [dbo].[Manage_ChipTaxStatTotal_GetList]
  16301. @BeginTime DATETIME, --起始时间
  16302. @EndTime DATETIME, --截止时间
  16303. @TotalTaxAmount BIGINT OUTPUT --总税收
  16304. AS
  16305. SET NOCOUNT ON
  16306. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16307. SET XACT_ABORT ON
  16308. BEGIN
  16309. --申请表变量
  16310. DECLARE @tmptable TABLE(
  16311. ServerName NVARCHAR(32) NOT NULL, --服务器
  16312. TaxSum BIGINT NOT NULL --税收
  16313. )
  16314. SET @EndTime = @EndTime + ' 23:59:59'
  16315. SET @TotalTaxAmount = 0
  16316. --初始化表变量
  16317. INSERT INTO @tmptable(ServerName, TaxSum)
  16318. SELECT
  16319. ServerName, SUM(Tax)
  16320. FROM
  16321. [ChipTax]
  16322. WHERE
  16323. DateFlag BETWEEN @BeginTime AND @EndTime
  16324. GROUP BY
  16325. ServerName
  16326. --有税收才统计
  16327. IF(@@ROWCOUNT > 0)
  16328. BEGIN
  16329. SET @TotalTaxAmount = (SELECT SUM(TaxSum) FROM @tmptable)
  16330. END
  16331. --返回信息:服务器名称、税收(TaxSum)(bigint)
  16332. SELECT
  16333. ServerName, TaxSum
  16334. FROM
  16335. @tmptable
  16336. ORDER BY
  16337. TaxSum DESC
  16338. RETURN
  16339. END
  16340. GO
  16341. /****** Object: StoredProcedure [dbo].[Manage_CouponTask_GetRank] Script Date: 2024/1/12 11:01:14 ******/
  16342. SET ANSI_NULLS ON
  16343. GO
  16344. SET QUOTED_IDENTIFIER ON
  16345. GO
  16346. -- EXEC [Manage_CouponTask_GetRank]
  16347. -- ==============================================
  16348. -- Author: wolf
  16349. -- Create Date: 2014-12-29
  16350. -- Mendor: wolf
  16351. -- Alter Date: 2015-06-01
  16352. -- Description: 红包券排行榜
  16353. -- ==============================================
  16354. CREATE PROCEDURE [dbo].[Manage_CouponTask_GetRank]
  16355. @PageIndex INT, --页索引
  16356. @PageSize INT, --页大小
  16357. @RecordCount INT OUTPUT --记录数
  16358. AS
  16359. SET NOCOUNT ON
  16360. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16361. SET XACT_ABORT ON
  16362. BEGIN
  16363. DECLARE @StartRowIndex INT --起始行索引
  16364. DECLARE @EndRowIndex INT --截止行索引
  16365. --表变量
  16366. DECLARE @tmptable TABLE(
  16367. UserID INT NOT NULL, --用户ID
  16368. ItemCount INT NOT NULL --数量
  16369. )
  16370. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  16371. SET @EndRowIndex = @PageIndex * @PageSize
  16372. --排名
  16373. INSERT INTO @tmptable(UserID, ItemCount)
  16374. SELECT
  16375. UserID, SUM(ItemCount)
  16376. FROM
  16377. [UserItem]
  16378. WHERE
  16379. ItemID = 620100
  16380. GROUP BY
  16381. UserID
  16382. ORDER BY
  16383. SUM(ItemCount) DESC
  16384. --记录数
  16385. SET @RecordCount = @@ROWCOUNT
  16386. ;WITH [List] AS
  16387. (
  16388. SELECT
  16389. ROW_NUMBER() OVER(ORDER BY ItemCount DESC) AS RowNumber,
  16390. UserID, ItemCount
  16391. FROM
  16392. @tmptable
  16393. )
  16394. --返回信息
  16395. SELECT
  16396. l.RowNumber, l.UserID, u.NickName, l.ItemCount, u.PayMoney,
  16397. ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName
  16398. FROM
  16399. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  16400. LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
  16401. WHERE
  16402. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  16403. ORDER BY
  16404. l.RowNumber ASC
  16405. RETURN
  16406. END
  16407. GO
  16408. /****** Object: StoredProcedure [dbo].[Manage_CouponTask_GetStatByDay] Script Date: 2024/1/12 11:01:14 ******/
  16409. SET ANSI_NULLS ON
  16410. GO
  16411. SET QUOTED_IDENTIFIER ON
  16412. GO
  16413. -- EXEC [Manage_CouponTask_GetStatByDay]
  16414. -- ==============================================
  16415. -- Author: wolf
  16416. -- Create Date: 2014-12-29
  16417. -- Mendor: wolf
  16418. -- Alter Date: 2015-06-01
  16419. -- Description: 红包券统计(每天)
  16420. -- ==============================================
  16421. CREATE PROCEDURE [dbo].[Manage_CouponTask_GetStatByDay]
  16422. @DateFlag DATETIME --日期
  16423. AS
  16424. SET NOCOUNT ON
  16425. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16426. SET XACT_ABORT ON
  16427. BEGIN
  16428. --当天数据
  16429. IF(@DateFlag = CONVERT(CHAR(10), GETDATE(), 120))
  16430. BEGIN
  16431. SELECT
  16432. CONVERT(VARCHAR(10), @DateFlag, 120) AS DateFlag, ISNULL(SUM(CouponCount), 0) AS CouponCount,
  16433. COUNT(DISTINCT UserID) AS UserCount
  16434. FROM
  16435. [UserCouponStat]
  16436. WHERE
  16437. DateFlag >= @DateFlag AND DateFlag < @DateFlag + 1
  16438. RETURN
  16439. END
  16440. --返回信息
  16441. SELECT
  16442. CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, CouponCount, UserCount
  16443. FROM
  16444. [CouponStat]
  16445. WHERE
  16446. DateFlag = @DateFlag
  16447. RETURN
  16448. END
  16449. GO
  16450. /****** Object: StoredProcedure [dbo].[Manage_CouponTask_GetStatByHour] Script Date: 2024/1/12 11:01:14 ******/
  16451. SET ANSI_NULLS ON
  16452. GO
  16453. SET QUOTED_IDENTIFIER ON
  16454. GO
  16455. -- EXEC [Manage_CouponTask_GetStatByHour]
  16456. -- ==============================================
  16457. -- Author: wolf
  16458. -- Create Date: 2014-12-29
  16459. -- Mendor: wolf
  16460. -- Alter Date: 2015-06-01
  16461. -- Description: 红包券统计(每小时)
  16462. -- ==============================================
  16463. CREATE PROCEDURE [dbo].[Manage_CouponTask_GetStatByHour]
  16464. @DateFlag SMALLDATETIME --日期
  16465. AS
  16466. SET NOCOUNT ON
  16467. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16468. SET XACT_ABORT ON
  16469. BEGIN
  16470. SELECT
  16471. CONVERT(CHAR(11), DateFlag, 120) + LTRIM(STR(DATEPART(HOUR, DateFlag))) + ':00' AS DateFlag,
  16472. Remark, SUM(CouponCount) AS CouponCount, COUNT(DISTINCT(UserID)) AS UserCount
  16473. FROM
  16474. [UserCouponStat]
  16475. WHERE
  16476. DateFlag >= @DateFlag AND DateFlag < @DateFlag + 1
  16477. GROUP BY
  16478. CONVERT(CHAR(11), DateFlag, 120) + LTRIM(STR(DATEPART(HOUR, DateFlag))) + ':00', Remark
  16479. ORDER BY
  16480. CONVERT(CHAR(11), DateFlag, 120) + LTRIM(STR(DATEPART(HOUR, DateFlag))) + ':00' ASC
  16481. RETURN
  16482. END
  16483. GO
  16484. /****** Object: StoredProcedure [dbo].[Manage_CroOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
  16485. SET ANSI_NULLS ON
  16486. GO
  16487. SET QUOTED_IDENTIFIER ON
  16488. GO
  16489. -- EXEC [Manage_CroOrder_GetList]
  16490. -- ==============================================
  16491. -- Author: wolf
  16492. -- Create Date: 2016-07-21
  16493. -- Mendor: wolf
  16494. -- Alter Date: 2016-11-07
  16495. -- Description: CroPay--获取订单列表
  16496. -- ==============================================
  16497. CREATE PROCEDURE [dbo].[Manage_CroOrder_GetList]
  16498. @UserID INT, --用户ID
  16499. @BeginTime DATETIME, --开始时间
  16500. @EndTime DATETIME, --截止时间
  16501. @PageIndex INT, --页索引
  16502. @PageSize INT, --页大小
  16503. @RecordCount INT OUTPUT, --总记录数
  16504. @TotalRMBMoney INT OUTPUT, --成功充值数
  16505. @UserCount INT OUTPUT --下订单用户数
  16506. AS
  16507. SET NOCOUNT ON
  16508. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16509. SET XACT_ABORT ON
  16510. BEGIN
  16511. DECLARE @StartRowIndex INT --起始行索引
  16512. DECLARE @EndRowIndex INT --截止行索引
  16513. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  16514. SET @EndRowIndex = @PageIndex * @PageSize
  16515. --创建临时表
  16516. DECLARE @tmptable TABLE(
  16517. OrderID VARCHAR(32) NOT NULL, --订单号
  16518. TradeID VARCHAR(64) NOT NULL, --交易号
  16519. UserID INT NOT NULL, --用户ID
  16520. ProductID VARCHAR(32) NOT NULL, --产品ID
  16521. Price DECIMAL(18, 2) NOT NULL, --价格
  16522. GetStatus TINYINT NOT NULL, --状态
  16523. PartnerID INT NOT NULL, --渠道ID
  16524. IPAddress VARCHAR(16) NOT NULL, --IP地址
  16525. Crdate DATETIME NOT NULL --时间
  16526. )
  16527. --用户ID查询
  16528. IF(@UserID > 0)
  16529. BEGIN
  16530. INSERT INTO @tmptable
  16531. (
  16532. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16533. )
  16534. SELECT
  16535. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16536. FROM
  16537. [CroOrder]
  16538. WHERE
  16539. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  16540. ORDER BY
  16541. Crdate DESC
  16542. END
  16543. --所有订单
  16544. ELSE
  16545. BEGIN
  16546. INSERT INTO @tmptable
  16547. (
  16548. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16549. )
  16550. SELECT
  16551. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16552. FROM
  16553. [CroOrder]
  16554. WHERE
  16555. Crdate BETWEEN @BeginTime AND @EndTime
  16556. ORDER BY
  16557. Crdate DESC
  16558. END
  16559. --总记录数
  16560. SET @RecordCount = @@ROWCOUNT
  16561. --成功充值总额
  16562. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
  16563. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  16564. ;WITH [List] AS
  16565. (
  16566. SELECT
  16567. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  16568. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16569. FROM
  16570. @tmptable
  16571. )
  16572. --返回信息
  16573. SELECT
  16574. l.OrderID, l.TradeID, l.UserID, u.NickName, l.ProductID, l.Price, l.GetStatus,
  16575. ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
  16576. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  16577. FROM
  16578. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  16579. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  16580. WHERE
  16581. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  16582. ORDER BY
  16583. l.RowNumber ASC
  16584. RETURN
  16585. END
  16586. GO
  16587. /****** Object: StoredProcedure [dbo].[Manage_CrushOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
  16588. SET ANSI_NULLS ON
  16589. GO
  16590. SET QUOTED_IDENTIFIER ON
  16591. GO
  16592. -- EXEC [Manage_CrushOrder_GetList]
  16593. -- ==============================================
  16594. -- Author: wolf
  16595. -- Create Date: 2016-07-21
  16596. -- Mendor: wolf
  16597. -- Alter Date: 2022-11-07
  16598. -- Description: CrushPay--获取订单列表
  16599. -- ==============================================
  16600. CREATE PROCEDURE [dbo].[Manage_CrushOrder_GetList]
  16601. @UserID INT, --用户ID
  16602. @BeginTime DATETIME, --开始时间
  16603. @EndTime DATETIME, --截止时间
  16604. @PageIndex INT, --页索引
  16605. @PageSize INT, --页大小
  16606. @RecordCount INT OUTPUT, --总记录数
  16607. @TotalRMBMoney INT OUTPUT, --成功充值数
  16608. @UserCount INT OUTPUT --下订单用户数
  16609. AS
  16610. SET NOCOUNT ON
  16611. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16612. SET XACT_ABORT ON
  16613. BEGIN
  16614. DECLARE @StartRowIndex INT --起始行索引
  16615. DECLARE @EndRowIndex INT --截止行索引
  16616. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  16617. SET @EndRowIndex = @PageIndex * @PageSize
  16618. --创建临时表
  16619. DECLARE @tmptable TABLE(
  16620. OrderID VARCHAR(32) NOT NULL, --订单号
  16621. TradeID VARCHAR(64) NOT NULL, --交易号
  16622. UserID INT NOT NULL, --用户ID
  16623. ProductID VARCHAR(32) NOT NULL, --产品ID
  16624. Price DECIMAL(18, 2) NOT NULL, --价格
  16625. GetStatus TINYINT NOT NULL, --状态
  16626. PartnerID INT NOT NULL, --渠道ID
  16627. IPAddress VARCHAR(16) NOT NULL, --IP地址
  16628. Crdate DATETIME NOT NULL --时间
  16629. )
  16630. --用户ID查询
  16631. IF(@UserID > 0)
  16632. BEGIN
  16633. INSERT INTO @tmptable
  16634. (
  16635. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16636. )
  16637. SELECT
  16638. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16639. FROM
  16640. [CrushOrder]
  16641. WHERE
  16642. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  16643. ORDER BY
  16644. Crdate DESC
  16645. END
  16646. --所有订单
  16647. ELSE
  16648. BEGIN
  16649. INSERT INTO @tmptable
  16650. (
  16651. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16652. )
  16653. SELECT
  16654. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16655. FROM
  16656. [CrushOrder]
  16657. WHERE
  16658. Crdate BETWEEN @BeginTime AND @EndTime
  16659. ORDER BY
  16660. Crdate DESC
  16661. END
  16662. --总记录数
  16663. SET @RecordCount = @@ROWCOUNT
  16664. --成功充值总额
  16665. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
  16666. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  16667. ;WITH [List] AS
  16668. (
  16669. SELECT
  16670. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  16671. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  16672. FROM
  16673. @tmptable
  16674. )
  16675. --返回信息
  16676. SELECT
  16677. l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
  16678. ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
  16679. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  16680. FROM
  16681. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  16682. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  16683. WHERE
  16684. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  16685. ORDER BY
  16686. l.RowNumber ASC
  16687. RETURN
  16688. END
  16689. GO
  16690. /****** Object: StoredProcedure [dbo].[Manage_Currency_GetTop] Script Date: 2024/1/12 11:01:14 ******/
  16691. SET ANSI_NULLS ON
  16692. GO
  16693. SET QUOTED_IDENTIFIER ON
  16694. GO
  16695. -- EXEC [Manage_Currency_GetTop]
  16696. -- ==============================================
  16697. -- Author: wolf
  16698. -- Create Date: 2014-09-04
  16699. -- Mendor: wolf
  16700. -- Alter Date: 2015-11-06
  16701. -- Description: 货币排行
  16702. -- ==============================================
  16703. CREATE PROCEDURE [dbo].[Manage_Currency_GetTop]
  16704. @PartnerID INT, --渠道ID
  16705. @PageIndex INT, --页索引
  16706. @PageSize INT, --页大小
  16707. @RecordCount INT OUTPUT --总记录数
  16708. AS
  16709. SET NOCOUNT ON
  16710. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16711. SET XACT_ABORT ON
  16712. BEGIN
  16713. DECLARE @StartRowIndex INT --起始行索引
  16714. DECLARE @EndRowIndex INT --截止行索引
  16715. DECLARE @tmptable TABLE(
  16716. Rank INT NOT NULL, --名次
  16717. PartnerID INT NOT NULL, --渠道ID
  16718. PartnerName NVARCHAR(32) NOT NULL, --渠道名称
  16719. UserID INT NOT NULL, --用户ID
  16720. NickName NVARCHAR(32) NOT NULL, --昵称
  16721. Amount BIGINT NOT NULL, --金币数量
  16722. Bank BIGINT NOT NULL, --保险柜
  16723. PayMoney DECIMAL(18, 2) NOT NULL --充值金额
  16724. )
  16725. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  16726. SET @EndRowIndex = @PageIndex * @PageSize
  16727. --记录数
  16728. SET @RecordCount = (SELECT COUNT(UserID) FROM [Money] WHERE UserID NOT IN (SELECT UserID FROM [MachineUser]) AND UserID > 0)
  16729. ;WITH [List] AS
  16730. (
  16731. SELECT
  16732. ROW_NUMBER() OVER(ORDER BY Amount + Bank DESC) AS RowNumber,
  16733. UserID, Amount, Bank
  16734. FROM
  16735. [Money]
  16736. WHERE
  16737. UserID NOT IN (SELECT UserID FROM [MachineUser]) AND UserID > 0
  16738. )
  16739. --获取变量
  16740. INSERT INTO @tmptable
  16741. (
  16742. Rank, PartnerID, PartnerName, UserID, NickName, Amount, Bank, PayMoney
  16743. )
  16744. SELECT
  16745. RowNumber, 0, '', UserID, '', Amount, Bank, 0
  16746. FROM
  16747. [List]
  16748. WHERE
  16749. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  16750. ORDER BY
  16751. RowNumber ASC
  16752. --获取用户信息
  16753. UPDATE
  16754. t
  16755. SET
  16756. t.NickName = u.NickName, t.PartnerID = u.PartnerID, t.PayMoney = u.PayMoney
  16757. FROM
  16758. @tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
  16759. --获取渠道名称
  16760. UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
  16761. --返回信息
  16762. SELECT
  16763. Rank, CASE WHEN PartnerName = '' THEN LTRIM(STR(PartnerID)) ELSE PartnerName END AS PartnerName,
  16764. UserID, NickName, Amount, Bank, PayMoney
  16765. FROM
  16766. @tmptable
  16767. ORDER BY
  16768. Rank ASC
  16769. RETURN
  16770. END
  16771. GO
  16772. /****** Object: StoredProcedure [dbo].[Manage_DailyReport_Del] Script Date: 2024/1/12 11:01:14 ******/
  16773. SET ANSI_NULLS ON
  16774. GO
  16775. SET QUOTED_IDENTIFIER ON
  16776. GO
  16777. -- EXEC [Manage_DailyReport_Del]
  16778. -- ==============================================
  16779. -- Author: wolf
  16780. -- Create Date: 2014-12-29
  16781. -- Mendor: wolf
  16782. -- Alter Date: 2015-06-01
  16783. -- Description: 每日报表项删除
  16784. -- ==============================================
  16785. CREATE PROCEDURE [dbo].[Manage_DailyReport_Del]
  16786. @Rid INT --标识
  16787. AS
  16788. SET NOCOUNT ON
  16789. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16790. SET XACT_ABORT ON
  16791. BEGIN
  16792. DECLARE @RetCode TINYINT --操作结果
  16793. DECLARE @Crdate DATETIME --时间
  16794. SET @RetCode = 0
  16795. --信息
  16796. SELECT @Crdate = Crdate FROM [DailyReport] WHERE Rid = @Rid
  16797. IF(@@ROWCOUNT = 0)
  16798. BEGIN
  16799. SET @RetCode = 11
  16800. SELECT @RetCode AS RetCode
  16801. RETURN
  16802. END
  16803. --只能删除7天内数据
  16804. IF(@Crdate <= GETDATE() - 7)
  16805. BEGIN
  16806. SET @RetCode = 12
  16807. SELECT @RetCode AS RetCode
  16808. RETURN
  16809. END
  16810. --删除
  16811. DELETE FROM [DailyReport] WHERE Rid = @Rid
  16812. IF(@@ROWCOUNT = 0)
  16813. BEGIN
  16814. SET @RetCode = 11
  16815. SELECT @RetCode AS RetCode
  16816. RETURN
  16817. END
  16818. --返回信息
  16819. SET @RetCode = 1
  16820. SELECT @RetCode AS RetCode
  16821. RETURN
  16822. END
  16823. GO
  16824. /****** Object: StoredProcedure [dbo].[Manage_DailyReport_GetList] Script Date: 2024/1/12 11:01:14 ******/
  16825. SET ANSI_NULLS ON
  16826. GO
  16827. SET QUOTED_IDENTIFIER ON
  16828. GO
  16829. -- EXEC [Manage_DailyReport_GetList]
  16830. -- ==============================================
  16831. -- Author: wolf
  16832. -- Create Date: 2014-12-29
  16833. -- Mendor: wolf
  16834. -- Alter Date: 2015-06-01
  16835. -- Description: 每日报表列表
  16836. -- ==============================================
  16837. CREATE PROCEDURE [dbo].[Manage_DailyReport_GetList]
  16838. @BeginTime SMALLDATETIME, --开始时间
  16839. @EndTime SMALLDATETIME --截止时间
  16840. AS
  16841. SET NOCOUNT ON
  16842. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16843. SET XACT_ABORT ON
  16844. BEGIN
  16845. SELECT
  16846. Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
  16847. ItemType, ItemName, ItemValue, ItemTag
  16848. FROM
  16849. [DailyReport]
  16850. WHERE
  16851. DateFlag BETWEEN @BeginTime AND @EndTime
  16852. ORDER BY
  16853. DateFlag DESC, ItemType ASC, ItemTag ASC, Rid ASC
  16854. RETURN
  16855. END
  16856. GO
  16857. /****** Object: StoredProcedure [dbo].[Manage_DailyReport_GetListByMonth] Script Date: 2024/1/12 11:01:14 ******/
  16858. SET ANSI_NULLS ON
  16859. GO
  16860. SET QUOTED_IDENTIFIER ON
  16861. GO
  16862. -- EXEC [Manage_DailyReport_GetListByMonth]
  16863. -- ==============================================
  16864. -- Author: wolf
  16865. -- Create Date: 2014-12-29
  16866. -- Mendor: wolf
  16867. -- Alter Date: 2015-06-01
  16868. -- Description: 每日报表列表(月报)
  16869. -- ==============================================
  16870. CREATE PROCEDURE [dbo].[Manage_DailyReport_GetListByMonth]
  16871. AS
  16872. SET NOCOUNT ON
  16873. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16874. SET XACT_ABORT ON
  16875. BEGIN
  16876. SELECT
  16877. CONVERT(VARCHAR(7), DateFlag, 120) AS DateFlag,
  16878. ItemType, ItemName, SUM(ItemValue) AS ItemValue, ItemTag
  16879. FROM
  16880. [DailyReport]
  16881. GROUP BY
  16882. CONVERT(VARCHAR(7), DateFlag, 120), ItemType, ItemName, ItemTag
  16883. ORDER BY
  16884. DateFlag DESC, ItemType ASC, ItemTag ASC
  16885. RETURN
  16886. END
  16887. GO
  16888. /****** Object: StoredProcedure [dbo].[Manage_DailyReport_Insert] Script Date: 2024/1/12 11:01:14 ******/
  16889. SET ANSI_NULLS ON
  16890. GO
  16891. SET QUOTED_IDENTIFIER ON
  16892. GO
  16893. -- EXEC [Manage_DailyReport_Insert]
  16894. -- ==============================================
  16895. -- Author: wolf
  16896. -- Create Date: 2014-12-29
  16897. -- Mendor: wolf
  16898. -- Alter Date: 2015-06-01
  16899. -- Description: 每日报表项录入
  16900. -- ==============================================
  16901. CREATE PROCEDURE [dbo].[Manage_DailyReport_Insert]
  16902. @DateFlag SMALLDATETIME, --日期标识
  16903. @ItemType TINYINT, --类型(1=用户数据 2=充值提现 3=注册留存 4=金币收支)
  16904. @ItemName NVARCHAR(32), --项名称
  16905. @ItemValue DECIMAL(18, 2), --项值
  16906. @ItemTag SMALLINT --标签
  16907. AS
  16908. SET NOCOUNT ON
  16909. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16910. SET XACT_ABORT ON
  16911. BEGIN
  16912. INSERT INTO [DailyReport]
  16913. (
  16914. DateFlag, ItemType, ItemName, ItemValue, ItemTag, Crdate
  16915. )
  16916. VALUES
  16917. (
  16918. @DateFlag, @ItemType, @ItemName, @ItemValue, @ItemTag, GETDATE()
  16919. )
  16920. RETURN
  16921. END
  16922. GO
  16923. /****** Object: StoredProcedure [dbo].[Manage_DailyStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  16924. SET ANSI_NULLS ON
  16925. GO
  16926. SET QUOTED_IDENTIFIER ON
  16927. GO
  16928. -- EXEC [Manage_DailyStat_GetList]
  16929. -- ==============================================
  16930. -- Author: wolf
  16931. -- Create Date: 2014-09-09
  16932. -- Mendor: wolf
  16933. -- Alter Date: 2014-12-22
  16934. -- Description: 日常统计
  16935. -- ==============================================
  16936. CREATE PROCEDURE [dbo].[Manage_DailyStat_GetList]
  16937. @BeginTime DATETIME, --起始时间
  16938. @EndTime DATETIME, --截止时间
  16939. @PageIndex INT, --页索引
  16940. @PageSize INT, --页大小
  16941. @RecordCount INT OUTPUT --总记录数
  16942. AS
  16943. SET NOCOUNT ON
  16944. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16945. SET XACT_ABORT ON
  16946. BEGIN
  16947. DECLARE @StartRowIndex INT --行起始索引
  16948. DECLARE @EndRowIndex INT --截止行索引
  16949. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  16950. SET @EndRowIndex = @PageIndex * @PageSize
  16951. --表变量
  16952. DECLARE @tmptable TABLE(
  16953. DateFlag SMALLDATETIME NOT NULL, --日期标志
  16954. AvgOnlineCount INT NOT NULL, --平均在线
  16955. MaxOnlineCount INT NOT NULL, --最高在线
  16956. RegCount INT NOT NULL, --注册用户
  16957. LoginCount INT NOT NULL, --登陆用户
  16958. ActiveCount INT NOT NULL, --活跃用户(活跃用户是指参与过游戏的用户)
  16959. PayMoney DECIMAL(18, 2) NOT NULL, --充值
  16960. CosumeAmount BIGINT NOT NULL, --消耗货币(消耗货币是指昨日的货币总额变化数量)
  16961. PayUserCount INT NOT NULL, --付费人数
  16962. AvgPayMoney DECIMAL(18, 2) NOT NULL, --人均付费
  16963. LiveUsers_1 INT NOT NULL, --次日留存
  16964. LiveUsers_3 INT NOT NULL, --3日留存
  16965. LiveUsers_7 INT NOT NULL, --7日留存
  16966. ReturnUserCount INT NOT NULL, --回归用户(回归用户是指这天登录,但此前超过10天没有登录过的用户)
  16967. VideoPlayTimes INT NOT NULL, --视频广告播放次数
  16968. VideoSendAmount BIGINT NOT NULL --视频广告播放赠送金币
  16969. )
  16970. --初始化临时表
  16971. INSERT INTO @tmptable
  16972. (
  16973. DateFlag, AvgOnlineCount, MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney,
  16974. CosumeAmount, PayUserCount, AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
  16975. VideoPlayTimes, VideoSendAmount
  16976. )
  16977. SELECT
  16978. DateFlag, AvgOnlineCount, MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney,
  16979. CosumeAmount, PayUserCount, AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
  16980. VideoPlayTimes, VideoSendAmount
  16981. FROM
  16982. [DailyStat]
  16983. WHERE
  16984. DateFlag BETWEEN @BeginTime AND @EndTime
  16985. --总记录数
  16986. SET @RecordCount = @@ROWCOUNT
  16987. ;WITH [List] AS
  16988. (
  16989. SELECT
  16990. ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
  16991. DateFlag, AvgOnlineCount, MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney,
  16992. CosumeAmount, PayUserCount, AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
  16993. VideoPlayTimes, VideoSendAmount
  16994. FROM
  16995. @tmptable
  16996. )
  16997. --返回信息:
  16998. SELECT
  16999. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, AvgOnlineCount,
  17000. MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney, CosumeAmount, PayUserCount,
  17001. AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
  17002. VideoPlayTimes, VideoSendAmount
  17003. FROM
  17004. [List]
  17005. WHERE
  17006. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  17007. ORDER BY
  17008. RowNumber ASC
  17009. RETURN
  17010. END
  17011. GO
  17012. /****** Object: StoredProcedure [dbo].[Manage_DingpeiOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
  17013. SET ANSI_NULLS ON
  17014. GO
  17015. SET QUOTED_IDENTIFIER ON
  17016. GO
  17017. -- EXEC [Manage_DingpeiOrder_GetList]
  17018. -- ==============================================
  17019. -- Author: wolf
  17020. -- Create Date: 2016-07-21
  17021. -- Mendor: wolf
  17022. -- Alter Date: 2022-11-07
  17023. -- Description: DingpeiPay--获取订单列表
  17024. -- ==============================================
  17025. CREATE PROCEDURE [dbo].[Manage_DingpeiOrder_GetList]
  17026. @UserID INT, --用户ID
  17027. @BeginTime DATETIME, --开始时间
  17028. @EndTime DATETIME, --截止时间
  17029. @PageIndex INT, --页索引
  17030. @PageSize INT, --页大小
  17031. @RecordCount INT OUTPUT, --总记录数
  17032. @TotalRMBMoney INT OUTPUT, --成功充值数
  17033. @UserCount INT OUTPUT --下订单用户数
  17034. AS
  17035. SET NOCOUNT ON
  17036. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17037. SET XACT_ABORT ON
  17038. BEGIN
  17039. DECLARE @StartRowIndex INT --起始行索引
  17040. DECLARE @EndRowIndex INT --截止行索引
  17041. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  17042. SET @EndRowIndex = @PageIndex * @PageSize
  17043. --创建临时表
  17044. DECLARE @tmptable TABLE(
  17045. OrderID VARCHAR(32) NOT NULL, --订单号
  17046. TradeID VARCHAR(64) NOT NULL, --交易号
  17047. UserID INT NOT NULL, --用户ID
  17048. ProductID VARCHAR(32) NOT NULL, --产品ID
  17049. Price DECIMAL(18, 2) NOT NULL, --价格
  17050. GetStatus TINYINT NOT NULL, --状态
  17051. PartnerID INT NOT NULL, --渠道ID
  17052. IPAddress VARCHAR(16) NOT NULL, --IP地址
  17053. Crdate DATETIME NOT NULL --时间
  17054. )
  17055. --用户ID查询
  17056. IF(@UserID > 0)
  17057. BEGIN
  17058. INSERT INTO @tmptable
  17059. (
  17060. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17061. )
  17062. SELECT
  17063. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17064. FROM
  17065. [DingpeiOrder]
  17066. WHERE
  17067. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  17068. ORDER BY
  17069. Crdate DESC
  17070. END
  17071. --所有订单
  17072. ELSE
  17073. BEGIN
  17074. INSERT INTO @tmptable
  17075. (
  17076. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17077. )
  17078. SELECT
  17079. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17080. FROM
  17081. [DingpeiOrder]
  17082. WHERE
  17083. Crdate BETWEEN @BeginTime AND @EndTime
  17084. ORDER BY
  17085. Crdate DESC
  17086. END
  17087. --总记录数
  17088. SET @RecordCount = @@ROWCOUNT
  17089. --成功充值总额
  17090. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
  17091. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  17092. ;WITH [List] AS
  17093. (
  17094. SELECT
  17095. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  17096. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17097. FROM
  17098. @tmptable
  17099. )
  17100. --返回信息
  17101. SELECT
  17102. l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
  17103. ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
  17104. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  17105. FROM
  17106. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  17107. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  17108. WHERE
  17109. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  17110. ORDER BY
  17111. l.RowNumber ASC
  17112. RETURN
  17113. END
  17114. GO
  17115. /****** Object: StoredProcedure [dbo].[Manage_Exchange_GetCashList] Script Date: 2024/1/12 11:01:14 ******/
  17116. SET ANSI_NULLS ON
  17117. GO
  17118. SET QUOTED_IDENTIFIER ON
  17119. GO
  17120. -- EXEC [Manage_Exchange_GetCashList]
  17121. -- ==============================================
  17122. -- Author: wolf
  17123. -- Create Date: 2014-06-11
  17124. -- Mendor: wolf
  17125. -- Alter Date: 2014-12-29
  17126. -- Description: 兑换cash列表
  17127. -- ==============================================
  17128. CREATE PROCEDURE [dbo].[Manage_Exchange_GetCashList]
  17129. @UserID INT, --用户ID
  17130. @Memo VARCHAR(1024), --备注
  17131. @BeginTime DATETIME, --开始时间
  17132. @EndTime DATETIME, --截止时间
  17133. @PageIndex INT, --页索引
  17134. @PageSize INT, --页大小
  17135. @RecordCount INT OUTPUT, --记录数
  17136. @Status SMALLINT
  17137. AS
  17138. SET NOCOUNT ON
  17139. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17140. SET XACT_ABORT ON
  17141. BEGIN
  17142. DECLARE @StartRowIndex INT --起始行索引
  17143. DECLARE @EndRowIndex INT --截止行索引
  17144. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  17145. SET @EndRowIndex = @PageIndex * @PageSize
  17146. DECLARE @tmptable TABLE(
  17147. Id INT NOT NULL, --标识
  17148. UserID INT NOT NULL, --用户ID
  17149. ExchangeID INT NOT NULL, --兑换ID
  17150. Price DECIMAL(18, 2) NOT NULL, --价格
  17151. Items VARCHAR(128) NOT NULL, --物品
  17152. Remark NVARCHAR(1024) NOT NULL, --备注
  17153. Status TINYINT NOT NULL, --状态(0=待发货 1=已发货)
  17154. Crdate DATETIME NOT NULL, --时间
  17155. ExchangeType INT NOT NULL --兑换类型(1=奖券兑换金币 2=代理兑换元宝 3=代理兑换电话卡 4=代理兑换RP 5=金币提现)
  17156. )
  17157. --用户ID
  17158. IF(@UserID > 0)
  17159. BEGIN
  17160. IF(LEN(@Memo) > 0)
  17161. BEGIN
  17162. INSERT INTO @tmptable
  17163. (
  17164. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17165. )
  17166. SELECT
  17167. h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
  17168. FROM
  17169. [ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
  17170. WHERE
  17171. h.Crdate BETWEEN @BeginTime AND @EndTime AND h.UserID = @UserID AND e.Memo = @Memo AND e.Amount > 0
  17172. END
  17173. ELSE
  17174. BEGIN
  17175. INSERT INTO @tmptable
  17176. (
  17177. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17178. )
  17179. SELECT
  17180. h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
  17181. FROM
  17182. [ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
  17183. WHERE
  17184. h.Crdate BETWEEN @BeginTime AND @EndTime AND h.UserID = @UserID AND e.Amount > 0
  17185. END
  17186. END
  17187. --所有
  17188. ELSE
  17189. BEGIN
  17190. IF(LEN(@Memo) > 0)
  17191. BEGIN
  17192. IF(@Status = -1)
  17193. BEGIN
  17194. INSERT INTO @tmptable
  17195. (
  17196. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17197. )
  17198. SELECT
  17199. h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
  17200. FROM
  17201. [ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
  17202. WHERE
  17203. h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Memo = @Memo AND e.Amount > 0
  17204. END
  17205. ELSE
  17206. BEGIN
  17207. INSERT INTO @tmptable
  17208. (
  17209. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17210. )
  17211. SELECT
  17212. h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
  17213. FROM
  17214. [ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
  17215. WHERE
  17216. h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Memo = @Memo AND h.Status = @Status AND e.Amount > 0
  17217. END
  17218. END
  17219. ELSE
  17220. BEGIN
  17221. IF(@Status = -1)
  17222. BEGIN
  17223. INSERT INTO @tmptable
  17224. (
  17225. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17226. )
  17227. SELECT
  17228. h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
  17229. FROM
  17230. [ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
  17231. WHERE
  17232. h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Amount > 0
  17233. END
  17234. ELSE
  17235. BEGIN
  17236. INSERT INTO @tmptable
  17237. (
  17238. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17239. )
  17240. SELECT
  17241. h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
  17242. FROM
  17243. [ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
  17244. WHERE
  17245. h.Crdate BETWEEN @BeginTime AND @EndTime AND h.Status = @Status AND e.Amount > 0
  17246. END
  17247. END
  17248. END
  17249. --记录数
  17250. SET @RecordCount = @@ROWCOUNT
  17251. ;WITH [List] AS
  17252. (
  17253. SELECT
  17254. ROW_NUMBER() OVER(ORDER BY Id DESC) AS RowNumber,
  17255. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17256. FROM
  17257. @tmptable
  17258. )
  17259. --返回信息
  17260. SELECT
  17261. l.Id, l.UserID, u.NickName, l.ExchangeID, l.Price, l.Items, l.Remark, l.Status,
  17262. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.ExchangeType
  17263. FROM
  17264. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  17265. WHERE
  17266. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  17267. ORDER BY
  17268. RowNumber ASC
  17269. END
  17270. GO
  17271. /****** Object: StoredProcedure [dbo].[Manage_Exchange_GetHistoryList] Script Date: 2024/1/12 11:01:14 ******/
  17272. SET ANSI_NULLS ON
  17273. GO
  17274. SET QUOTED_IDENTIFIER ON
  17275. GO
  17276. -- EXEC [Manage_Exchange_GetHistoryList]
  17277. -- ==============================================
  17278. -- Author: wolf
  17279. -- Create Date: 2014-06-11
  17280. -- Mendor: wolf
  17281. -- Alter Date: 2014-12-29
  17282. -- Description: 兑换历史列表
  17283. -- ==============================================
  17284. CREATE PROCEDURE [dbo].[Manage_Exchange_GetHistoryList]
  17285. @Id INT, --标识
  17286. @UserID INT, --用户ID
  17287. @Memo VARCHAR(1024), --备注
  17288. @BeginTime DATETIME, --开始时间
  17289. @EndTime DATETIME, --截止时间
  17290. @PageIndex INT, --页索引
  17291. @PageSize INT, --页大小
  17292. @RecordCount INT OUTPUT, --记录数
  17293. @Status SMALLINT
  17294. AS
  17295. SET NOCOUNT ON
  17296. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17297. SET XACT_ABORT ON
  17298. BEGIN
  17299. DECLARE @StartRowIndex INT --起始行索引
  17300. DECLARE @EndRowIndex INT --截止行索引
  17301. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  17302. SET @EndRowIndex = @PageIndex * @PageSize
  17303. DECLARE @tmptable TABLE(
  17304. Id INT NOT NULL, --标识
  17305. UserID INT NOT NULL, --用户ID
  17306. ExchangeID INT NOT NULL, --兑换ID
  17307. Price DECIMAL(18, 2) NOT NULL, --价格
  17308. Items VARCHAR(128) NOT NULL, --物品
  17309. Remark NVARCHAR(1024) NOT NULL, --备注
  17310. Status TINYINT NOT NULL, --状态(0=待发货 1=已发货)
  17311. Crdate DATETIME NOT NULL, --时间
  17312. ExchangeType INT NOT NULL --兑换类型(1=奖券兑换金币 2=代理兑换元宝 3=代理兑换电话卡 4=代理兑换RP 5=金币提现)
  17313. )
  17314. --某个标识
  17315. IF(@Id > 0)
  17316. BEGIN
  17317. INSERT INTO @tmptable
  17318. (
  17319. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17320. )
  17321. SELECT
  17322. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17323. FROM
  17324. [ExchangeHistory]
  17325. WHERE
  17326. Id = @Id
  17327. END
  17328. --用户ID
  17329. ELSE IF(@UserID > 0)
  17330. BEGIN
  17331. IF(LEN(@Memo) > 0)
  17332. BEGIN
  17333. INSERT INTO @tmptable
  17334. (
  17335. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17336. )
  17337. SELECT
  17338. h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
  17339. FROM
  17340. [ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
  17341. WHERE
  17342. h.Crdate BETWEEN @BeginTime AND @EndTime AND h.UserID = @UserID AND e.Memo = @Memo
  17343. END
  17344. ELSE
  17345. BEGIN
  17346. INSERT INTO @tmptable
  17347. (
  17348. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17349. )
  17350. SELECT
  17351. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17352. FROM
  17353. [ExchangeHistory]
  17354. WHERE
  17355. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  17356. END
  17357. END
  17358. --所有
  17359. ELSE
  17360. BEGIN
  17361. IF(LEN(@Memo) > 0)
  17362. BEGIN
  17363. IF(@Status = -1)
  17364. BEGIN
  17365. INSERT INTO @tmptable
  17366. (
  17367. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17368. )
  17369. SELECT
  17370. h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
  17371. FROM
  17372. [ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
  17373. WHERE
  17374. h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Memo = @Memo
  17375. END
  17376. ELSE
  17377. BEGIN
  17378. INSERT INTO @tmptable
  17379. (
  17380. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17381. )
  17382. SELECT
  17383. h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
  17384. FROM
  17385. [ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
  17386. WHERE
  17387. h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Memo = @Memo AND h.Status = @Status
  17388. END
  17389. END
  17390. ELSE
  17391. BEGIN
  17392. IF(@Status = -1)
  17393. BEGIN
  17394. INSERT INTO @tmptable
  17395. (
  17396. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17397. )
  17398. SELECT
  17399. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17400. FROM
  17401. [ExchangeHistory]
  17402. WHERE
  17403. Crdate BETWEEN @BeginTime AND @EndTime
  17404. END
  17405. ELSE
  17406. BEGIN
  17407. INSERT INTO @tmptable
  17408. (
  17409. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17410. )
  17411. SELECT
  17412. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17413. FROM
  17414. [ExchangeHistory]
  17415. WHERE
  17416. Crdate BETWEEN @BeginTime AND @EndTime AND Status = @Status
  17417. END
  17418. END
  17419. END
  17420. --记录数
  17421. SET @RecordCount = @@ROWCOUNT
  17422. ;WITH [List] AS
  17423. (
  17424. SELECT
  17425. ROW_NUMBER() OVER(ORDER BY Id DESC) AS RowNumber,
  17426. Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
  17427. FROM
  17428. @tmptable
  17429. )
  17430. --返回信息
  17431. SELECT
  17432. l.Id, l.UserID, u.NickName, l.ExchangeID, l.Price, l.Items, l.Remark, l.Status,
  17433. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.ExchangeType
  17434. FROM
  17435. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  17436. WHERE
  17437. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  17438. ORDER BY
  17439. RowNumber ASC
  17440. END
  17441. GO
  17442. /****** Object: StoredProcedure [dbo].[Manage_Exchange_UpdateHistory] Script Date: 2024/1/12 11:01:14 ******/
  17443. SET ANSI_NULLS ON
  17444. GO
  17445. SET QUOTED_IDENTIFIER ON
  17446. GO
  17447. -- EXEC [Manage_Exchange_UpdateHistory]
  17448. -- ==============================================
  17449. -- Author: wolf
  17450. -- Create Date: 2014-06-11
  17451. -- Mendor: wolf
  17452. -- Alter Date: 2014-12-29
  17453. -- Description: 修改兑换历史
  17454. -- ==============================================
  17455. CREATE PROCEDURE [dbo].[Manage_Exchange_UpdateHistory]
  17456. @OpUserID INT, --操作员ID
  17457. @OpUserName VARCHAR(32), --操作员名称
  17458. @Id INT, --兑换历史标识
  17459. @Status TINYINT, --状态(0=待发货 1=已发货 2=拒绝)
  17460. @Remark NVARCHAR(1024), --备注
  17461. @IPAddress VARCHAR(16), --ip地址
  17462. @RetCode TINYINT OUTPUT, --操作结果
  17463. @NewRemark NVARCHAR(1024) OUTPUT --备注
  17464. AS
  17465. SET NOCOUNT ON
  17466. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17467. SET XACT_ABORT ON
  17468. BEGIN
  17469. DECLARE @Msg NVARCHAR(4000) --操作描述
  17470. SET @RetCode = 0
  17471. SET @NewRemark = ''
  17472. --修改兑换历史
  17473. UPDATE
  17474. [ExchangeHistory]
  17475. SET
  17476. Status = @Status,
  17477. Remark =CASE
  17478. WHEN LEN(@Remark) > 0 THEN CASE WHEN Remark = '.' THEN '||' + @Remark ELSE Remark + '||' + @Remark END
  17479. ELSE Remark
  17480. END,
  17481. @NewRemark = CASE
  17482. WHEN LEN(@Remark) > 0 THEN CASE WHEN Remark = '.' THEN '||' + @Remark ELSE Remark + '||' + @Remark END
  17483. ELSE Remark
  17484. END
  17485. WHERE
  17486. Id = @Id AND Status = 0
  17487. IF(@@ROWCOUNT = 0)
  17488. BEGIN
  17489. SET @RetCode = 11
  17490. RETURN
  17491. END
  17492. SET @Msg = N'修改兑换历史,@Id=' + LTRIM(STR(@Id)) + ',@Status=' + LTRIM(STR(@Status)) + ',Remark=' + @Remark
  17493. --添加日志
  17494. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
  17495. @IPAddress = @IPAddress, @Msg = @Msg
  17496. --操作成功
  17497. SET @RetCode = 1
  17498. RETURN
  17499. END
  17500. GO
  17501. /****** Object: StoredProcedure [dbo].[Manage_ExchangeCard_Gen] Script Date: 2024/1/12 11:01:14 ******/
  17502. SET ANSI_NULLS ON
  17503. GO
  17504. SET QUOTED_IDENTIFIER ON
  17505. GO
  17506. -- EXEC [Manage_ExchangeCard_Gen]
  17507. -- ==============================================
  17508. -- Author: wolf
  17509. -- Create Date: 2014-12-29
  17510. -- Mendor: wolf
  17511. -- Alter Date: 2015-06-01
  17512. -- Description: 兑换卡生成
  17513. -- ==============================================
  17514. CREATE PROCEDURE [dbo].[Manage_ExchangeCard_Gen]
  17515. @OpUserID INT, --操作员ID
  17516. @OpUserName VARCHAR(32), --操作员名称
  17517. @CardNo VARCHAR(32), --卡号
  17518. @PerDays INT, --每天(0=无限制 1=每1天)
  17519. @UseTimes BIGINT, --可使用次数
  17520. @OpenTime DATETIME, --开始时间
  17521. @ExpireTime DATETIME, --过期时间
  17522. @Items VARCHAR(128), --物品
  17523. @IPAddress VARCHAR(16) --IP地址
  17524. AS
  17525. SET NOCOUNT ON
  17526. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17527. SET XACT_ABORT ON
  17528. BEGIN
  17529. DECLARE @RetCode TINYINT --操作结果
  17530. DECLARE @Msg NVARCHAR(4000) --操作描述
  17531. SET @RetCode = 0
  17532. --自动生成码
  17533. IF(@CardNo = '')
  17534. BEGIN
  17535. SET @CardNo = 'E' + SUBSTRING(REPLACE(NEWID(), '-', ''), 1, 7)
  17536. END
  17537. --判断是否已经存在
  17538. IF EXISTS(SELECT CardNo FROM [ExchangeCard] WHERE CardNo = @CardNo)
  17539. BEGIN
  17540. PRINT N'兑换卡生成失败,卡号=' + @CardNo + N',已存在......!'
  17541. SET @RetCode = 11
  17542. SELECT @RetCode AS RetCode
  17543. RETURN
  17544. END
  17545. --生成兑换卡
  17546. INSERT INTO [ExchangeCard]
  17547. (
  17548. CardNo, PerDays, UseTimes, OpenTime, ExpireTime, Items, Crdate
  17549. )
  17550. VALUES
  17551. (
  17552. @CardNo, @PerDays, @UseTimes, @OpenTime, @ExpireTime, @Items, GETDATE()
  17553. )
  17554. --添加日志
  17555. SET @Msg = N'兑换卡生成成功,关联的信息:@CardNo=' + @CardNo + ',@PerDays=' + LTRIM(STR(@PerDays)) +
  17556. ',@UseTimes=' + CAST(@UseTimes AS VARCHAR(16)) + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
  17557. ',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@Items=' + @Items
  17558. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  17559. --操作结果
  17560. SET @RetCode = 1
  17561. SELECT @RetCode AS RetCode
  17562. RETURN
  17563. END
  17564. GO
  17565. /****** Object: StoredProcedure [dbo].[Manage_ExchangeCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
  17566. SET ANSI_NULLS ON
  17567. GO
  17568. SET QUOTED_IDENTIFIER ON
  17569. GO
  17570. -- EXEC [Manage_ExchangeCard_GetList]
  17571. -- ==============================================
  17572. -- Author: wolf
  17573. -- Create Date: 2014-12-29
  17574. -- Mendor: wolf
  17575. -- Alter Date: 2015-06-01
  17576. -- Description: 兑换卡列表
  17577. -- ==============================================
  17578. CREATE PROCEDURE [dbo].[Manage_ExchangeCard_GetList]
  17579. @CardNo VARCHAR(32) --卡号
  17580. AS
  17581. SET NOCOUNT ON
  17582. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17583. SET XACT_ABORT ON
  17584. BEGIN
  17585. --获取某卡号
  17586. IF(LEN(@CardNo) > 0)
  17587. BEGIN
  17588. SELECT
  17589. CardNo, PerDays, UseTimes, CONVERT(VARCHAR(20), OpenTime, 120) AS OpenTime,
  17590. CONVERT(VARCHAR(20), ExpireTime, 120) AS ExpireTime, Items,
  17591. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
  17592. FROM
  17593. [ExchangeCard]
  17594. WHERE
  17595. CardNo = @CardNo
  17596. RETURN
  17597. END
  17598. --兑换卡
  17599. SELECT
  17600. CardNo, PerDays, UseTimes, CONVERT(VARCHAR(20), OpenTime, 120) AS OpenTime,
  17601. CONVERT(VARCHAR(20), ExpireTime, 120) AS ExpireTime, Items,
  17602. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
  17603. FROM
  17604. [ExchangeCard]
  17605. ORDER BY
  17606. ExpireTime DESC, Crdate DESC
  17607. RETURN
  17608. END
  17609. GO
  17610. /****** Object: StoredProcedure [dbo].[Manage_ExchangeCard_GetLogList] Script Date: 2024/1/12 11:01:14 ******/
  17611. SET ANSI_NULLS ON
  17612. GO
  17613. SET QUOTED_IDENTIFIER ON
  17614. GO
  17615. -- EXEC [Manage_ExchangeCard_GetLogList]
  17616. -- ==============================================
  17617. -- Author: wolf
  17618. -- Create Date: 2014-12-29
  17619. -- Mendor: wolf
  17620. -- Alter Date: 2015-06-01
  17621. -- Description: 兑换卡日志
  17622. -- ==============================================
  17623. CREATE PROCEDURE [dbo].[Manage_ExchangeCard_GetLogList]
  17624. @CardNo VARCHAR(32), --卡号
  17625. @UserID INT, --用户ID
  17626. @BeginTime DATETIME, --开始时间
  17627. @EndTime DATETIME, --截止时间
  17628. @PageIndex INT, --页索引
  17629. @PageSize INT, --页大小
  17630. @RecordCount INT OUTPUT --总记录数
  17631. AS
  17632. SET NOCOUNT ON
  17633. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17634. SET XACT_ABORT ON
  17635. BEGIN
  17636. DECLARE @StartRowIndex INT --起始行索引
  17637. DECLARE @EndRowIndex INT --截止行索引
  17638. DECLARE @tmptable TABLE(
  17639. Rid INT NOT NULL, --标识
  17640. UserID INT NOT NULL, --用户ID
  17641. CardNo VARCHAR(32) NOT NULL, --卡号
  17642. Crdate DATETIME NOT NULL --时间
  17643. )
  17644. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  17645. SET @EndRowIndex = @PageIndex * @PageSize
  17646. SET @RecordCount = 0
  17647. IF(@UserID > 0)
  17648. BEGIN
  17649. INSERT INTO @tmptable
  17650. (
  17651. Rid, UserID, CardNo, Crdate
  17652. )
  17653. SELECT
  17654. Rid, UserID, CardNo, Crdate
  17655. FROM
  17656. [ExchangeCardLog]
  17657. WHERE
  17658. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  17659. END
  17660. ELSE IF(@CardNo != '')
  17661. BEGIN
  17662. INSERT INTO @tmptable
  17663. (
  17664. Rid, UserID, CardNo, Crdate
  17665. )
  17666. SELECT
  17667. Rid, UserID, CardNo, Crdate
  17668. FROM
  17669. [ExchangeCardLog]
  17670. WHERE
  17671. Crdate BETWEEN @BeginTime AND @EndTime AND CardNo = @CardNo
  17672. END
  17673. ELSE
  17674. BEGIN
  17675. INSERT INTO @tmptable
  17676. (
  17677. Rid, UserID, CardNo, Crdate
  17678. )
  17679. SELECT
  17680. Rid, UserID, CardNo, Crdate
  17681. FROM
  17682. [ExchangeCardLog]
  17683. WHERE
  17684. Crdate BETWEEN @BeginTime AND @EndTime
  17685. END
  17686. --记录数
  17687. SET @RecordCount = @@ROWCOUNT
  17688. ;WITH [List] AS
  17689. (
  17690. SELECT
  17691. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  17692. Rid, UserID, CardNo, Crdate
  17693. FROM
  17694. @tmptable
  17695. )
  17696. --返回信息
  17697. SELECT
  17698. l.Rid, l.UserID, u.NickName, l.CardNo, CONVERT(VARCHAR(20), l.Crdate, 120) AS Crdate
  17699. FROM
  17700. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  17701. WHERE
  17702. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  17703. ORDER BY
  17704. l.RowNumber ASC
  17705. RETURN
  17706. END
  17707. GO
  17708. /****** Object: StoredProcedure [dbo].[Manage_ExchangeCard_Update] Script Date: 2024/1/12 11:01:14 ******/
  17709. SET ANSI_NULLS ON
  17710. GO
  17711. SET QUOTED_IDENTIFIER ON
  17712. GO
  17713. -- EXEC [Manage_ExchangeCard_Update]
  17714. -- ==============================================
  17715. -- Author: wolf
  17716. -- Create Date: 2014-12-29
  17717. -- Mendor: wolf
  17718. -- Alter Date: 2015-06-01
  17719. -- Description: 兑换卡修改
  17720. -- ==============================================
  17721. CREATE PROCEDURE [dbo].[Manage_ExchangeCard_Update]
  17722. @OpUserID INT, --操作员ID
  17723. @OpUserName VARCHAR(32), --操作员名称
  17724. @CardNo VARCHAR(32), --卡号
  17725. @PerDays INT, --每天(0=无限制 1=每1天)
  17726. @UseTimes BIGINT, --可使用次数
  17727. @OpenTime DATETIME, --开始时间
  17728. @ExpireTime DATETIME, --过期时间
  17729. @Items VARCHAR(128), --物品
  17730. @IPAddress VARCHAR(16) --IP地址
  17731. AS
  17732. SET NOCOUNT ON
  17733. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17734. SET XACT_ABORT ON
  17735. BEGIN
  17736. DECLARE @RetCode TINYINT --操作结果
  17737. DECLARE @Msg NVARCHAR(4000) --操作描述
  17738. SET @RetCode = 0
  17739. UPDATE
  17740. [ExchangeCard]
  17741. SET
  17742. PerDays = @PerDays, UseTimes = @UseTimes, OpenTime = @OpenTime,
  17743. ExpireTime = @ExpireTime, Items = @Items
  17744. WHERE
  17745. CardNO = @CardNo
  17746. --修改失败
  17747. IF(@@ROWCOUNT = 0)
  17748. BEGIN
  17749. --添加日志
  17750. SET @Msg = N'兑换卡修改失败,关联的信息:@CardNo=' + @CardNo + ',@PerDays=' + LTRIM(STR(@PerDays)) +
  17751. ',@UseTimes=' + CAST(@UseTimes AS VARCHAR(16)) + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
  17752. ',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@Items=' + @Items
  17753. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  17754. --操作结果
  17755. SET @RetCode = 11
  17756. SELECT @RetCode AS RetCode
  17757. END
  17758. --添加日志
  17759. SET @Msg = N'兑换卡修改成功,关联的信息:@CardNo=' + @CardNo + ',@PerDays=' + LTRIM(STR(@PerDays)) +
  17760. ',@UseTimes=' + CAST(@UseTimes AS VARCHAR(16)) + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
  17761. ',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@Items=' + @Items
  17762. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  17763. --操作结果
  17764. SET @RetCode = 1
  17765. SELECT @RetCode AS RetCode
  17766. RETURN
  17767. END
  17768. GO
  17769. /****** Object: StoredProcedure [dbo].[Manage_Feedback_GetList] Script Date: 2024/1/12 11:01:14 ******/
  17770. SET ANSI_NULLS ON
  17771. GO
  17772. SET QUOTED_IDENTIFIER ON
  17773. GO
  17774. -- EXEC [Manage_Feedback_GetList]
  17775. -- ==============================================
  17776. -- Author: wolf
  17777. -- Create Date: 2014-06-17
  17778. -- Mendor: wolf
  17779. -- Alter Date: 2016-08-16
  17780. -- Description: 反馈列表
  17781. -- ==============================================
  17782. CREATE PROCEDURE [dbo].[Manage_Feedback_GetList]
  17783. @BeginTime DATETIME, --开始时间
  17784. @EndTime DATETIME, --截止时间
  17785. @PageIndex INT, --页索引
  17786. @PageSize INT, --页大小
  17787. @RecordCount INT OUTPUT --记录数
  17788. AS
  17789. SET NOCOUNT ON
  17790. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17791. SET XACT_ABORT ON
  17792. BEGIN
  17793. DECLARE @StartRowIndedx INT --起始行索引
  17794. DECLARE @EndRowIndex INT --截止行索引
  17795. DECLARE @tmptable TABLE(
  17796. Rid INT NOT NULL, --标识
  17797. EMail NVARCHAR(64) NOT NULL, --邮箱
  17798. Msg NVARCHAR(512) NOT NULL, --消息
  17799. ToUserID INT NOT NULL, --用户ID
  17800. Status TINYINT NOT NULL, --状态
  17801. OpUserID INT, --操作员ID
  17802. OpUserName VARCHAR(32), --操作员名称
  17803. IPAddress VARCHAR(16) NOT NULL, --IP地址
  17804. Crdate DATETIME NOT NULL --时间
  17805. )
  17806. SET @StartRowIndedx = (@PageIndex - 1) * @PageSize + 1
  17807. SET @EndRowIndex = @PageIndex * @PageSize
  17808. INSERT INTO @tmptable
  17809. (
  17810. Rid, EMail, Msg, ToUserID, Status, OpUserID, OpUserName, IPAddress, Crdate
  17811. )
  17812. SELECT
  17813. Rid, EMail, Msg, ToUserID, Status, OpUserID, OpUserName, IPAddress, Crdate
  17814. FROM
  17815. [Feedback]
  17816. WHERE
  17817. Crdate BETWEEN @BeginTime AND @EndTime AND Email NOT LIKE N'问卷调查%'
  17818. --记录数
  17819. SET @RecordCount = @@ROWCOUNT
  17820. ;WITH [List] AS
  17821. (
  17822. SELECT
  17823. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  17824. Rid, EMail, Msg, ToUserID, Status, OpUserID, OpUserName, IPAddress, Crdate
  17825. FROM
  17826. @tmptable
  17827. )
  17828. --返回信息
  17829. SELECT
  17830. l.Rid, l.EMail, l.Msg, l.Status, l.OpUserID, l.OpUserName, l.IPAddress,
  17831. CONVERT(CHAR(23), l.Crdate, 121) AS Crdate, l.ToUserID, ISNULL(u.NickName, '') AS ToNickName
  17832. FROM
  17833. [List] l LEFT JOIN [AllUser] u ON l.ToUserID = u.UserID
  17834. WHERE
  17835. l.RowNumber BETWEEN @StartRowIndedx AND @EndRowIndex
  17836. ORDER BY
  17837. l.RowNumber ASC
  17838. RETURN
  17839. END
  17840. GO
  17841. /****** Object: StoredProcedure [dbo].[Manage_Feedback_Update] Script Date: 2024/1/12 11:01:14 ******/
  17842. SET ANSI_NULLS ON
  17843. GO
  17844. SET QUOTED_IDENTIFIER ON
  17845. GO
  17846. -- EXEC [Manage_Feedback_Update]
  17847. -- ==============================================
  17848. -- Author: wolf
  17849. -- Create Date: 2014-06-17
  17850. -- Mendor: wolf
  17851. -- Alter Date: 2016-08-16
  17852. -- Description: 反馈修改
  17853. -- ==============================================
  17854. CREATE PROCEDURE [dbo].[Manage_Feedback_Update]
  17855. @OpUserID INT, --操作员ID
  17856. @OpUserName VARCHAR(32), --操作员名称
  17857. @Rid INT, --标识
  17858. @Status TINYINT --状态
  17859. AS
  17860. SET NOCOUNT ON
  17861. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17862. SET XACT_ABORT ON
  17863. BEGIN
  17864. DECLARE @RetCode TINYINT --操作结果
  17865. UPDATE
  17866. [Feedback]
  17867. SET
  17868. Status = @Status, OpUserID = @OpUserID, OpUserName = @OpUserName
  17869. WHERE
  17870. Rid = @Rid AND Status = 0
  17871. IF(@@ROWCOUNT = 0)
  17872. BEGIN
  17873. SET @RetCode = 11
  17874. SELECT @RetCode AS RetCode
  17875. RETURN
  17876. END
  17877. SET @RetCode = 1
  17878. SELECT @RetCode AS RetCode
  17879. RETURN
  17880. END
  17881. GO
  17882. /****** Object: StoredProcedure [dbo].[Manage_FlashOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
  17883. SET ANSI_NULLS ON
  17884. GO
  17885. SET QUOTED_IDENTIFIER ON
  17886. GO
  17887. -- EXEC [Manage_FlashOrder_GetList]
  17888. -- ==============================================
  17889. -- Author: wolf
  17890. -- Create Date: 2016-07-21
  17891. -- Mendor: wolf
  17892. -- Alter Date: 2022-11-07
  17893. -- Description: FlashPay--获取订单列表
  17894. -- ==============================================
  17895. CREATE PROCEDURE [dbo].[Manage_FlashOrder_GetList]
  17896. @UserID INT, --用户ID
  17897. @BeginTime DATETIME, --开始时间
  17898. @EndTime DATETIME, --截止时间
  17899. @PageIndex INT, --页索引
  17900. @PageSize INT, --页大小
  17901. @RecordCount INT OUTPUT, --总记录数
  17902. @TotalRMBMoney INT OUTPUT, --成功充值数
  17903. @UserCount INT OUTPUT --下订单用户数
  17904. AS
  17905. SET NOCOUNT ON
  17906. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  17907. SET XACT_ABORT ON
  17908. BEGIN
  17909. DECLARE @StartRowIndex INT --起始行索引
  17910. DECLARE @EndRowIndex INT --截止行索引
  17911. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  17912. SET @EndRowIndex = @PageIndex * @PageSize
  17913. --创建临时表
  17914. DECLARE @tmptable TABLE(
  17915. OrderID VARCHAR(32) NOT NULL, --订单号
  17916. TradeID VARCHAR(64) NOT NULL, --交易号
  17917. UserID INT NOT NULL, --用户ID
  17918. ProductID VARCHAR(32) NOT NULL, --产品ID
  17919. Price DECIMAL(18, 2) NOT NULL, --价格
  17920. GetStatus TINYINT NOT NULL, --状态
  17921. PartnerID INT NOT NULL, --渠道ID
  17922. IPAddress VARCHAR(16) NOT NULL, --IP地址
  17923. Crdate DATETIME NOT NULL --时间
  17924. )
  17925. --用户ID查询
  17926. IF(@UserID > 0)
  17927. BEGIN
  17928. INSERT INTO @tmptable
  17929. (
  17930. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17931. )
  17932. SELECT
  17933. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17934. FROM
  17935. [FlashOrder]
  17936. WHERE
  17937. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  17938. ORDER BY
  17939. Crdate DESC
  17940. END
  17941. --所有订单
  17942. ELSE
  17943. BEGIN
  17944. INSERT INTO @tmptable
  17945. (
  17946. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17947. )
  17948. SELECT
  17949. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17950. FROM
  17951. [FlashOrder]
  17952. WHERE
  17953. Crdate BETWEEN @BeginTime AND @EndTime
  17954. ORDER BY
  17955. Crdate DESC
  17956. END
  17957. --总记录数
  17958. SET @RecordCount = @@ROWCOUNT
  17959. --成功充值总额
  17960. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
  17961. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  17962. ;WITH [List] AS
  17963. (
  17964. SELECT
  17965. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  17966. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  17967. FROM
  17968. @tmptable
  17969. )
  17970. --返回信息
  17971. SELECT
  17972. l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
  17973. ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
  17974. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  17975. FROM
  17976. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  17977. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  17978. WHERE
  17979. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  17980. ORDER BY
  17981. l.RowNumber ASC
  17982. RETURN
  17983. END
  17984. GO
  17985. /****** Object: StoredProcedure [dbo].[Manage_FlashWithdraw_GetLog] Script Date: 2024/1/12 11:01:14 ******/
  17986. SET ANSI_NULLS ON
  17987. GO
  17988. SET QUOTED_IDENTIFIER ON
  17989. GO
  17990. -- EXEC [Manage_FlashWithdraw_GetLog]
  17991. -- ==============================================
  17992. -- Author: wolf
  17993. -- Create Date: 2014-09-09
  17994. -- Mendor: wolf
  17995. -- Alter Date: 2014-12-22
  17996. -- Description: 提现日志
  17997. -- ==============================================
  17998. CREATE PROCEDURE [dbo].[Manage_FlashWithdraw_GetLog]
  17999. @UserID INT, --用户ID
  18000. @BeginTime DATETIME, --起始时间
  18001. @EndTime DATETIME, --截止时间
  18002. @PageIndex INT, --页索引
  18003. @PageSize INT, --页大小
  18004. @RecordCount INT OUTPUT, --记录数
  18005. @TotalAmount BIGINT OUTPUT --提现总额
  18006. AS
  18007. SET NOCOUNT ON
  18008. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  18009. SET XACT_ABORT ON
  18010. BEGIN
  18011. DECLARE @StartRowIndex INT --起始行索引
  18012. DECLARE @EndRowIndex INT --截止行索引
  18013. --表变量
  18014. DECLARE @tmptable TABLE(
  18015. OrderID VARCHAR(32) PRIMARY KEY, --订单号
  18016. TradeID VARCHAR(64) NOT NULL, --交易号
  18017. UserID INT NOT NULL, --用户ID
  18018. Amount INT NOT NULL, --金额
  18019. RealAmount INT NOT NULL, --实际扣除金额
  18020. DfTransactionId VARCHAR(32) NOT NULL, --平台代付单号,32字符以内
  18021. GetStatus TINYINT NOT NULL, --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核) 11=拒绝
  18022. --251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
  18023. DfDesc VARCHAR(256) NOT NULL, --代付状态描述
  18024. Balance INT NOT NULL, --余额
  18025. NotifyTime DATETIME NOT NULL, --通知时间
  18026. Crdate DATETIME NOT NULL --时间
  18027. )
  18028. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  18029. SET @EndRowIndex = @PageIndex * @PageSize
  18030. SET @RecordCount = 0
  18031. --查询某个账号
  18032. IF(@UserID > 0)
  18033. BEGIN
  18034. --查询
  18035. INSERT INTO @tmptable
  18036. (
  18037. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
  18038. )
  18039. SELECT
  18040. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
  18041. FROM
  18042. [FlashWithdraw]
  18043. WHERE
  18044. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18045. --记录数
  18046. SET @RecordCount = @@ROWCOUNT
  18047. END
  18048. --查询所有
  18049. ELSE
  18050. BEGIN
  18051. --查询
  18052. INSERT INTO @tmptable
  18053. (
  18054. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
  18055. )
  18056. SELECT
  18057. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
  18058. FROM
  18059. [FlashWithdraw]
  18060. WHERE
  18061. Crdate BETWEEN @BeginTime AND @EndTime
  18062. --记录数
  18063. SET @RecordCount = @@ROWCOUNT
  18064. END
  18065. --统计总额
  18066. SELECT @TotalAmount = ISNULL(SUM(Amount), 0) FROM @tmptable WHERE GetStatus IN (3, 4)
  18067. ;WITH [List] AS
  18068. (
  18069. SELECT
  18070. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  18071. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId,
  18072. GetStatus, DfDesc, Balance, NotifyTime, Crdate
  18073. FROM
  18074. @tmptable
  18075. )
  18076. --返回信息
  18077. SELECT
  18078. l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.Amount, l.RealAmount, l.DfTransactionId,
  18079. l.GetStatus, l.DfDesc, l.Balance, CONVERT(CHAR(23), l.NotifyTime, 120) AS NotifyTime,
  18080. CONVERT(CHAR(23), l.Crdate, 120) AS Crdate
  18081. FROM
  18082. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  18083. WHERE
  18084. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  18085. ORDER BY
  18086. l.RowNumber ASC
  18087. RETURN
  18088. END
  18089. GO
  18090. /****** Object: StoredProcedure [dbo].[Manage_ForbidUser_Add] Script Date: 2024/1/12 11:01:14 ******/
  18091. SET ANSI_NULLS ON
  18092. GO
  18093. SET QUOTED_IDENTIFIER ON
  18094. GO
  18095. -- EXEC [Manage_ForbidUser_Add]
  18096. -- @OpUserID = 1,
  18097. -- @OpUserName = '',
  18098. -- @UserID = 1,
  18099. -- @Memo = '',
  18100. -- @Days = 1,
  18101. -- @IPAddress = ''
  18102. -- ==============================================
  18103. -- Author: wolf
  18104. -- Create Date: 2014-09-24
  18105. -- Mendor: wolf
  18106. -- Alter Date: 2016-04-11
  18107. -- Description: 后台管理--封杀玩家
  18108. -- ==============================================
  18109. CREATE PROCEDURE [dbo].[Manage_ForbidUser_Add]
  18110. @OpUserID INT, --操作员ID
  18111. @OpUserName VARCHAR(32), --操作员名称
  18112. @UserID INT, --用户ID
  18113. @Memo NVARCHAR(128), --备注
  18114. @Days INT, --封杀天数
  18115. @IPAddress VARCHAR(16), --IP地址
  18116. @GameIDs VARCHAR(128), --游戏ID集(以逗号分隔)
  18117. @RetCode TINYINT OUTPUT --操作结果 1 成功 2已经封杀
  18118. AS
  18119. SET NOCOUNT ON
  18120. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  18121. SET XACT_ABORT ON
  18122. BEGIN
  18123. DECLARE @CurrTime DATETIME --系统当前时间
  18124. DECLARE @Msg NVARCHAR(4000) --操作描述
  18125. SET @CurrTime = GETDATE()
  18126. SET @RetCode = 0
  18127. --判断是否已经封杀
  18128. IF EXISTS(SELECT UserID FROM [ForbidUser] WHERE UserID = @UserID)
  18129. BEGIN
  18130. SET @RetCode = 2
  18131. RETURN
  18132. END
  18133. --添加封杀
  18134. INSERT INTO [ForbidUser]
  18135. (
  18136. UserID, Memo, BeginTime, EndTime, GameIDs
  18137. )
  18138. VALUES
  18139. (
  18140. @UserID, @Memo, @CurrTime, @CurrTime + @Days, @GameIDs
  18141. )
  18142. --消息
  18143. SET @Msg = N'Prohibit account(' + LTRIM(STR(@UserID)) + '), Prohibit cause:' + @Memo +
  18144. ',Prohibit ' + LTRIM(STR(@Days)) + ' Days,GameIDs = ' + @GameIDs
  18145. --添加日志
  18146. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  18147. SET @RetCode = 1
  18148. RETURN
  18149. END
  18150. GO
  18151. /****** Object: StoredProcedure [dbo].[Manage_ForbidUser_Del] Script Date: 2024/1/12 11:01:14 ******/
  18152. SET ANSI_NULLS ON
  18153. GO
  18154. SET QUOTED_IDENTIFIER ON
  18155. GO
  18156. -- EXEC [Manage_ForbidUser_Del]
  18157. -- @OpUserID = 1,
  18158. -- @OpUserName = '',
  18159. -- @UserID = 1,
  18160. -- @Memo = '',
  18161. -- @IPAddress = ''
  18162. -- ==============================================
  18163. -- Author: wolf
  18164. -- Create Date: 2014-09-24
  18165. -- Mendor: wolf
  18166. -- Alter Date: 2016-04-08
  18167. -- Description: 后台管理--解除封杀
  18168. -- ==============================================
  18169. CREATE PROCEDURE [dbo].[Manage_ForbidUser_Del]
  18170. @OpUserID INT, --操作员ID
  18171. @OpUserName VARCHAR(32), --操作员名称
  18172. @UserID INT, --用户ID
  18173. @Memo VARCHAR(128), --备注
  18174. @IPAddress VARCHAR(16), --IP地址
  18175. @GameIDs VARCHAR(128) OUTPUT --游戏ID集
  18176. AS
  18177. SET NOCOUNT ON
  18178. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  18179. SET XACT_ABORT ON
  18180. BEGIN
  18181. DECLARE @Msg NVARCHAR(4000) --操作描述
  18182. SET @GameIDs = ''
  18183. --封杀账号信息
  18184. SELECT @GameIDs = GameIDs FROM [ForbidUser] WHERE UserID = @UserID
  18185. IF(@@ROWCOUNT = 0)
  18186. RETURN
  18187. --解除
  18188. DELETE FROM [ForbidUser] WHERE UserID = @UserID
  18189. --消息
  18190. SET @Msg = N'Release prohibit(' + LTRIM(STR(@UserID)) + '), Cause for release:' + @Memo
  18191. --添加日志
  18192. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  18193. RETURN
  18194. END
  18195. GO
  18196. /****** Object: StoredProcedure [dbo].[Manage_ForbidUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
  18197. SET ANSI_NULLS ON
  18198. GO
  18199. SET QUOTED_IDENTIFIER ON
  18200. GO
  18201. -- DECLARE @RecordCount INT
  18202. -- EXEC [Manage_EasouPay_GetList]
  18203. -- @UserID = 1,
  18204. -- @PageIndex = 1,
  18205. -- @PageSize = 10,
  18206. -- @RecordCount = @RecordCount OUTPUT
  18207. -- SELECT @RecordCount AS RecordCount
  18208. -- ==============================================
  18209. -- Author: wolf
  18210. -- Create Date: 2014-09-25
  18211. -- Mendor: wolf
  18212. -- Alter Date: 2015-09-07
  18213. -- Description: 后台管理--获取列表
  18214. -- ==============================================
  18215. CREATE PROCEDURE [dbo].[Manage_ForbidUser_GetList]
  18216. @UserID INT, --用户ID
  18217. @PageIndex INT, --页索引
  18218. @PageSize INT, --页大小
  18219. @RecordCount INT OUTPUT --总记录数
  18220. AS
  18221. SET NOCOUNT ON
  18222. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  18223. SET XACT_ABORT ON
  18224. BEGIN
  18225. DECLARE @CurrTime DATETIME --系统当前时间
  18226. DECLARE @StartRowIndex INT --起始行索引
  18227. DECLARE @EndRowIndex INT --截止行索引
  18228. --申请表变量
  18229. DECLARE @tmptable TABLE(
  18230. Rid INT NOT NULL IDENTITY(1, 1), --标识
  18231. UserID INT NOT NULL, --用户ID
  18232. Memo NVARCHAR(128) NOT NULL, --备注
  18233. BeginTime DATETIME NOT NULL, --开始时间
  18234. EndTime DATETIME NOT NULL, --结束时间
  18235. GameIDs VARCHAR(128) NOT NULL --游戏ID集
  18236. )
  18237. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  18238. SET @EndRowIndex = @PageIndex * @PageSize
  18239. SET @CurrTime = GETDATE()
  18240. --某个账号
  18241. IF(@UserID > 0)
  18242. BEGIN
  18243. --初始化表变量
  18244. INSERT INTO @tmptable
  18245. (
  18246. UserID, Memo, BeginTime, EndTime, GameIDs
  18247. )
  18248. SELECT TOP 500
  18249. UserID, Memo, BeginTime, EndTime, GameIDs
  18250. FROM
  18251. [ForbidUser]
  18252. WHERE
  18253. UserID = @UserID
  18254. ORDER BY
  18255. UserID DESC
  18256. END
  18257. --所有账号
  18258. ELSE
  18259. BEGIN
  18260. --初始化表变量
  18261. INSERT INTO @tmptable
  18262. (
  18263. UserID, Memo, BeginTime, EndTime, GameIDs
  18264. )
  18265. SELECT TOP 500
  18266. UserID, Memo, BeginTime, EndTime, GameIDs
  18267. FROM
  18268. [ForbidUser]
  18269. ORDER BY
  18270. UserID DESC
  18271. END
  18272. --总记录数
  18273. SET @RecordCount = @@ROWCOUNT
  18274. ;WITH [List] AS
  18275. (
  18276. SELECT
  18277. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  18278. Rid, UserID, Memo, BeginTime, EndTime, GameIDs
  18279. FROM
  18280. @tmptable
  18281. )
  18282. --返回信息:标识(Rid)(int)、用户ID(UserID)(int)、昵称(NickName)(varchar(32))、备注(Memo)(varchar(128))、
  18283. -- 开始时间(BeginTime)(varchar(16))、截止时间(EndTime)(varchar(16))
  18284. SELECT
  18285. l.Rid, l.UserID, u.NickName, l.Memo,
  18286. CONVERT(CHAR(20), l.BeginTime, 120) AS BeginTime,
  18287. CONVERT(CHAR(20), l.EndTime, 120) AS EndTime,
  18288. l.GameIDs
  18289. FROM
  18290. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  18291. WHERE
  18292. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  18293. ORDER BY
  18294. l.RowNumber ASC
  18295. RETURN
  18296. END
  18297. GO
  18298. /****** Object: StoredProcedure [dbo].[Manage_Game_GetBetDetail] Script Date: 2024/1/12 11:01:14 ******/
  18299. SET ANSI_NULLS ON
  18300. GO
  18301. SET QUOTED_IDENTIFIER ON
  18302. GO
  18303. -- EXEC [Manage_Game_GetBetDetail]
  18304. -- =============================================
  18305. -- Author: wolf
  18306. -- Create Date: 2014-04-23
  18307. -- Mendor: wolf
  18308. -- Alter Date: 2015-10-12
  18309. -- Description: 后台管理--投注详情
  18310. -- =============================================
  18311. CREATE PROCEDURE [dbo].[Manage_Game_GetBetDetail]
  18312. @UserID INT, --账号ID
  18313. @RecordID VARCHAR(32), --标识
  18314. @BeginTime DATETIME, --开始时间
  18315. @EndTime DATETIME --结束时间
  18316. AS
  18317. SET NOCOUNT ON
  18318. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  18319. SET XACT_ABORT ON
  18320. BEGIN
  18321. --申请表变量
  18322. DECLARE @tmptable TABLE(
  18323. RecordID VARCHAR(32) NOT NULL, --记录ID
  18324. ResultZone VARCHAR(1024) NOT NULL --结果描述
  18325. )
  18326. --查询某账号
  18327. IF(@UserID > 0)
  18328. BEGIN
  18329. INSERT INTO @tmptable
  18330. (
  18331. RecordID, ResultZone
  18332. )
  18333. SELECT
  18334. RecordID, ResultZone
  18335. FROM
  18336. [Bet]
  18337. WHERE
  18338. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18339. INSERT INTO @tmptable
  18340. (
  18341. RecordID, ResultZone
  18342. )
  18343. SELECT
  18344. RecordID, ResultZone
  18345. FROM
  18346. [BetInfo]
  18347. WHERE
  18348. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18349. INSERT INTO @tmptable
  18350. (
  18351. RecordID, ResultZone
  18352. )
  18353. SELECT
  18354. RecordID, ResultZone
  18355. FROM
  18356. [BetInfoHistory]
  18357. WHERE
  18358. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18359. END
  18360. --查询用户的所有应用
  18361. ELSE IF(LEN(@RecordID) > 0)
  18362. BEGIN
  18363. INSERT INTO @tmptable
  18364. (
  18365. RecordID, ResultZone
  18366. )
  18367. SELECT
  18368. RecordID, ResultZone
  18369. FROM
  18370. [Bet]
  18371. WHERE
  18372. RecordID = @RecordID
  18373. INSERT INTO @tmptable
  18374. (
  18375. RecordID, ResultZone
  18376. )
  18377. SELECT
  18378. RecordID, ResultZone
  18379. FROM
  18380. [BetInfo]
  18381. WHERE
  18382. RecordID = @RecordID
  18383. INSERT INTO @tmptable
  18384. (
  18385. RecordID, ResultZone
  18386. )
  18387. SELECT
  18388. RecordID, ResultZone
  18389. FROM
  18390. [BetInfoHistory]
  18391. WHERE
  18392. RecordID = @RecordID
  18393. END
  18394. --所有记录
  18395. ELSE
  18396. BEGIN
  18397. INSERT INTO @tmptable
  18398. (
  18399. RecordID, ResultZone
  18400. )
  18401. SELECT
  18402. RecordID, ResultZone
  18403. FROM
  18404. [Bet]
  18405. WHERE
  18406. BetTime BETWEEN @BeginTime AND @EndTime
  18407. INSERT INTO @tmptable
  18408. (
  18409. RecordID, ResultZone
  18410. )
  18411. SELECT
  18412. RecordID, ResultZone
  18413. FROM
  18414. [BetInfo]
  18415. WHERE
  18416. BetTime BETWEEN @BeginTime AND @EndTime
  18417. INSERT INTO @tmptable
  18418. (
  18419. RecordID, ResultZone
  18420. )
  18421. SELECT
  18422. RecordID, ResultZone
  18423. FROM
  18424. [BetInfoHistory]
  18425. WHERE
  18426. BetTime BETWEEN @BeginTime AND @EndTime
  18427. END
  18428. --返回信息
  18429. SELECT RecordID, ResultZone FROM @tmptable ORDER BY RecordID ASC
  18430. RETURN
  18431. END
  18432. GO
  18433. /****** Object: StoredProcedure [dbo].[Manage_Game_GetBetLog] Script Date: 2024/1/12 11:01:14 ******/
  18434. SET ANSI_NULLS ON
  18435. GO
  18436. SET QUOTED_IDENTIFIER ON
  18437. GO
  18438. -- EXEC [Manage_Game_GetBetLog]
  18439. -- =============================================
  18440. -- Author: wolf
  18441. -- Create Date: 2014-04-23
  18442. -- Mendor: wolf
  18443. -- Alter Date: 2015-10-12
  18444. -- Description: 后台管理--投注日志
  18445. -- =============================================
  18446. CREATE PROCEDURE [dbo].[Manage_Game_GetBetLog]
  18447. @UserID INT, --账号ID
  18448. @GameID INT, --游戏ID
  18449. @BeginTime DATETIME, --开始时间
  18450. @EndTime DATETIME, --结束时间
  18451. @PageIndex INT = 1, --页索引
  18452. @PageSize INT = 10, --页大小
  18453. @RecordCount INT OUTPUT, --总记录数
  18454. @WinAmount BIGINT OUTPUT --输赢
  18455. AS
  18456. SET NOCOUNT ON
  18457. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  18458. SET XACT_ABORT ON
  18459. BEGIN
  18460. DECLARE @StartRowIndex INT --起始行索引
  18461. DECLARE @EndRowIndex INT --截止行索引
  18462. --申请表变量
  18463. DECLARE @tmptable TABLE(
  18464. RecordID VARCHAR(32) NOT NULL, --标识
  18465. UserID INT NOT NULL, --用户ID
  18466. GameID INT NOT NULL, --游戏ID
  18467. BetAmount BIGINT NOT NULL, --下注金额
  18468. BetTime DATETIME NOT NULL, --下注时间
  18469. BetZone VARCHAR(128) NOT NULL, --下注区域
  18470. Odds DECIMAL(10, 2) NOT NULL, --赔率
  18471. ResultAmount BIGINT NOT NULL, --结算金额
  18472. ResultTime DATETIME NOT NULL, --结算时间
  18473. ResultZone VARCHAR(1024) NOT NULL, --结果描述
  18474. StillAmount BIGINT NOT NULL, --剩余金额
  18475. Status TINYINT NOT NULL, --状态 0=下注 1=结算
  18476. Tax BIGINT NOT NULL --台费
  18477. )
  18478. DECLARE @tmpRecord TABLE(
  18479. RecordID VARCHAR(32) NOT NULL
  18480. )
  18481. SET @RecordCount = 0
  18482. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  18483. SET @EndRowIndex = @PageIndex * @PageSize
  18484. SET @WinAmount = 0
  18485. --查询某账号某游戏
  18486. IF(@UserID > 0 AND @GameID >= 0)
  18487. BEGIN
  18488. INSERT INTO @tmptable
  18489. (
  18490. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18491. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18492. )
  18493. SELECT TOP 10000
  18494. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18495. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18496. FROM
  18497. [Bet]
  18498. WHERE
  18499. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
  18500. ORDER BY
  18501. RecordID DESC
  18502. --总记录数
  18503. SET @RecordCount = @@ROWCOUNT
  18504. IF(@RecordCount < 10000)
  18505. BEGIN
  18506. INSERT INTO @tmptable
  18507. (
  18508. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18509. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18510. )
  18511. SELECT TOP (10000 - @RecordCount)
  18512. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18513. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18514. FROM
  18515. [BetInfo]
  18516. WHERE
  18517. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
  18518. ORDER BY
  18519. RecordID DESC
  18520. --总记录数
  18521. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18522. IF(@RecordCount < 10000)
  18523. BEGIN
  18524. INSERT INTO @tmptable
  18525. (
  18526. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18527. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18528. )
  18529. SELECT TOP (10000 - @RecordCount)
  18530. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18531. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18532. FROM
  18533. [BetInfoHistory]
  18534. WHERE
  18535. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
  18536. ORDER BY
  18537. RecordID DESC
  18538. --总记录数
  18539. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18540. END
  18541. END
  18542. END
  18543. --查询用户的所有应用
  18544. ELSE IF(@UserID > 0)
  18545. BEGIN
  18546. INSERT INTO @tmptable
  18547. (
  18548. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18549. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18550. )
  18551. SELECT TOP 10000
  18552. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18553. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18554. FROM
  18555. [Bet]
  18556. WHERE
  18557. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18558. ORDER BY
  18559. RecordID DESC
  18560. --总记录数
  18561. SET @RecordCount = @@ROWCOUNT
  18562. IF(@RecordCount < 10000)
  18563. BEGIN
  18564. INSERT INTO @tmptable
  18565. (
  18566. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18567. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18568. )
  18569. SELECT TOP (10000 - @RecordCount)
  18570. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18571. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18572. FROM
  18573. [BetInfo]
  18574. WHERE
  18575. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18576. ORDER BY
  18577. RecordID DESC
  18578. --总记录数
  18579. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18580. IF(@RecordCount < 10000)
  18581. BEGIN
  18582. INSERT INTO @tmptable
  18583. (
  18584. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18585. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18586. )
  18587. SELECT TOP (10000 - @RecordCount)
  18588. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18589. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18590. FROM
  18591. [BetInfoHistory]
  18592. WHERE
  18593. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18594. ORDER BY
  18595. RecordID DESC
  18596. --总记录数
  18597. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18598. END
  18599. END
  18600. END
  18601. --查询用户的某个应用
  18602. ELSE IF(@GameID >= 0)
  18603. BEGIN
  18604. INSERT INTO @tmptable
  18605. (
  18606. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18607. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18608. )
  18609. SELECT TOP 10000
  18610. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18611. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18612. FROM
  18613. [Bet]
  18614. WHERE
  18615. BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  18616. ORDER BY
  18617. RecordID DESC
  18618. --总记录数
  18619. SET @RecordCount = @@ROWCOUNT
  18620. IF(@RecordCount < 10000)
  18621. BEGIN
  18622. INSERT INTO @tmptable
  18623. (
  18624. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18625. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18626. )
  18627. SELECT TOP (10000 - @RecordCount)
  18628. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18629. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18630. FROM
  18631. [BetInfo]
  18632. WHERE
  18633. BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  18634. ORDER BY
  18635. RecordID DESC
  18636. --总记录数
  18637. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18638. IF(@RecordCount < 10000)
  18639. BEGIN
  18640. INSERT INTO @tmptable
  18641. (
  18642. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18643. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18644. )
  18645. SELECT TOP (10000 - @RecordCount)
  18646. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18647. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18648. FROM
  18649. [BetInfoHistory]
  18650. WHERE
  18651. BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  18652. ORDER BY
  18653. RecordID DESC
  18654. --总记录数
  18655. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18656. END
  18657. END
  18658. END
  18659. --所有记录
  18660. ELSE
  18661. BEGIN
  18662. INSERT INTO @tmptable
  18663. (
  18664. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18665. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18666. )
  18667. SELECT TOP 10000
  18668. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18669. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18670. FROM
  18671. [Bet]
  18672. WHERE
  18673. BetTime BETWEEN @BeginTime AND @EndTime
  18674. ORDER BY
  18675. RecordID DESC
  18676. --总记录数
  18677. SET @RecordCount = @@ROWCOUNT
  18678. IF(@RecordCount < 10000)
  18679. BEGIN
  18680. INSERT INTO @tmptable
  18681. (
  18682. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18683. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18684. )
  18685. SELECT TOP (10000 - @RecordCount)
  18686. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18687. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18688. FROM
  18689. [BetInfo]
  18690. WHERE
  18691. BetTime BETWEEN @BeginTime AND @EndTime
  18692. ORDER BY
  18693. RecordID DESC
  18694. --总记录数
  18695. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18696. IF(@RecordCount < 10000)
  18697. BEGIN
  18698. INSERT INTO @tmptable
  18699. (
  18700. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18701. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18702. )
  18703. SELECT TOP (10000 - @RecordCount)
  18704. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18705. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18706. FROM
  18707. [BetInfoHistory]
  18708. WHERE
  18709. BetTime BETWEEN @BeginTime AND @EndTime
  18710. ORDER BY
  18711. RecordID DESC
  18712. --总记录数
  18713. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18714. END
  18715. END
  18716. END
  18717. --计算输赢
  18718. SELECT @WinAmount = ISNULL(SUM(ResultAmount - BetAmount), 0) FROM @tmptable
  18719. ;WITH [List] AS
  18720. (
  18721. SELECT
  18722. ROW_NUMBER() OVER(ORDER BY RecordID DESC) AS RowNumber,
  18723. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18724. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18725. FROM
  18726. @tmptable
  18727. )
  18728. --返回信息
  18729. SELECT
  18730. l.RecordID, l.UserID, u.NickName, g.EnglishName, l.BetAmount,
  18731. CONVERT(CHAR(16), l.BetTime, 120) AS BetTime, l.BetZone, l.Odds, l.ResultAmount,
  18732. CONVERT(CHAR(16), l.ResultTime, 120) AS ResultTime, l.ResultZone,
  18733. (l.ResultAmount - l.BetAmount) AS WinAmount, l.StillAmount, l.Status, l.Tax,
  18734. DATEDIFF(SECOND, l.BetTime, l.ResultTime) AS SubSeconds
  18735. FROM
  18736. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  18737. INNER JOIN [AllGame] g ON l.GameID = g.GameID
  18738. WHERE
  18739. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  18740. ORDER BY
  18741. l.RowNumber ASC
  18742. RETURN
  18743. END
  18744. GO
  18745. /****** Object: StoredProcedure [dbo].[Manage_Game_GetChipBetLog] Script Date: 2024/1/12 11:01:14 ******/
  18746. SET ANSI_NULLS ON
  18747. GO
  18748. SET QUOTED_IDENTIFIER ON
  18749. GO
  18750. -- EXEC [Manage_Game_GetChipBetLog]
  18751. -- =============================================
  18752. -- Author: wolf
  18753. -- Create Date: 2014-04-23
  18754. -- Mendor: wolf
  18755. -- Alter Date: 2015-10-12
  18756. -- Description: 后台管理--投注日志
  18757. -- =============================================
  18758. CREATE PROCEDURE [dbo].[Manage_Game_GetChipBetLog]
  18759. @UserID INT, --账号ID
  18760. @GameID INT, --游戏ID
  18761. @BeginTime DATETIME, --开始时间
  18762. @EndTime DATETIME, --结束时间
  18763. @PageIndex INT = 1, --页索引
  18764. @PageSize INT = 10, --页大小
  18765. @RecordCount INT OUTPUT, --总记录数
  18766. @WinAmount BIGINT OUTPUT --输赢
  18767. AS
  18768. SET NOCOUNT ON
  18769. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  18770. SET XACT_ABORT ON
  18771. BEGIN
  18772. DECLARE @StartRowIndex INT --起始行索引
  18773. DECLARE @EndRowIndex INT --截止行索引
  18774. --申请表变量
  18775. DECLARE @tmptable TABLE(
  18776. RecordID VARCHAR(32) NOT NULL, --标识
  18777. UserID INT NOT NULL, --用户ID
  18778. GameID INT NOT NULL, --游戏ID
  18779. BetAmount BIGINT NOT NULL, --下注金额
  18780. BetTime DATETIME NOT NULL, --下注时间
  18781. BetZone VARCHAR(128) NOT NULL, --下注区域
  18782. Odds DECIMAL(10, 2) NOT NULL, --赔率
  18783. ResultAmount BIGINT NOT NULL, --结算金额
  18784. ResultTime DATETIME NOT NULL, --结算时间
  18785. ResultZone VARCHAR(1024) NOT NULL, --结果描述
  18786. StillAmount BIGINT NOT NULL, --剩余金额
  18787. Status TINYINT NOT NULL, --状态 0=下注 1=结算
  18788. Tax BIGINT NOT NULL --台费
  18789. )
  18790. DECLARE @tmpRecord TABLE(
  18791. RecordID VARCHAR(32) NOT NULL
  18792. )
  18793. SET @RecordCount = 0
  18794. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  18795. SET @EndRowIndex = @PageIndex * @PageSize
  18796. SET @WinAmount = 0
  18797. --查询某账号某游戏
  18798. IF(@UserID > 0 AND @GameID >= 0)
  18799. BEGIN
  18800. INSERT INTO @tmptable
  18801. (
  18802. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18803. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18804. )
  18805. SELECT TOP 10000
  18806. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18807. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18808. FROM
  18809. [ChipBet]
  18810. WHERE
  18811. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
  18812. ORDER BY
  18813. RecordID DESC
  18814. --总记录数
  18815. SET @RecordCount = @@ROWCOUNT
  18816. IF(@RecordCount < 10000)
  18817. BEGIN
  18818. INSERT INTO @tmptable
  18819. (
  18820. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18821. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18822. )
  18823. SELECT TOP (10000 - @RecordCount)
  18824. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18825. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18826. FROM
  18827. [ChipBetInfo]
  18828. WHERE
  18829. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
  18830. ORDER BY
  18831. RecordID DESC
  18832. --总记录数
  18833. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18834. IF(@RecordCount < 10000)
  18835. BEGIN
  18836. INSERT INTO @tmptable
  18837. (
  18838. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18839. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18840. )
  18841. SELECT TOP (10000 - @RecordCount)
  18842. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18843. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18844. FROM
  18845. [ChipBetInfoHistory]
  18846. WHERE
  18847. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
  18848. ORDER BY
  18849. RecordID DESC
  18850. --总记录数
  18851. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18852. END
  18853. END
  18854. END
  18855. --查询用户的所有应用
  18856. ELSE IF(@UserID > 0)
  18857. BEGIN
  18858. INSERT INTO @tmptable
  18859. (
  18860. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18861. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18862. )
  18863. SELECT TOP 10000
  18864. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18865. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18866. FROM
  18867. [ChipBet]
  18868. WHERE
  18869. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18870. ORDER BY
  18871. RecordID DESC
  18872. --总记录数
  18873. SET @RecordCount = @@ROWCOUNT
  18874. IF(@RecordCount < 10000)
  18875. BEGIN
  18876. INSERT INTO @tmptable
  18877. (
  18878. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18879. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18880. )
  18881. SELECT TOP (10000 - @RecordCount)
  18882. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18883. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18884. FROM
  18885. [ChipBetInfo]
  18886. WHERE
  18887. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18888. ORDER BY
  18889. RecordID DESC
  18890. --总记录数
  18891. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18892. IF(@RecordCount < 10000)
  18893. BEGIN
  18894. INSERT INTO @tmptable
  18895. (
  18896. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18897. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18898. )
  18899. SELECT TOP (10000 - @RecordCount)
  18900. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18901. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18902. FROM
  18903. [ChipBetInfoHistory]
  18904. WHERE
  18905. BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  18906. ORDER BY
  18907. RecordID DESC
  18908. --总记录数
  18909. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18910. END
  18911. END
  18912. END
  18913. --查询用户的某个应用
  18914. ELSE IF(@GameID >= 0)
  18915. BEGIN
  18916. INSERT INTO @tmptable
  18917. (
  18918. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18919. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18920. )
  18921. SELECT TOP 10000
  18922. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18923. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18924. FROM
  18925. [ChipBet]
  18926. WHERE
  18927. BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  18928. ORDER BY
  18929. RecordID DESC
  18930. --总记录数
  18931. SET @RecordCount = @@ROWCOUNT
  18932. IF(@RecordCount < 10000)
  18933. BEGIN
  18934. INSERT INTO @tmptable
  18935. (
  18936. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18937. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18938. )
  18939. SELECT TOP (10000 - @RecordCount)
  18940. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18941. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18942. FROM
  18943. [ChipBetInfo]
  18944. WHERE
  18945. BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  18946. ORDER BY
  18947. RecordID DESC
  18948. --总记录数
  18949. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18950. IF(@RecordCount < 10000)
  18951. BEGIN
  18952. INSERT INTO @tmptable
  18953. (
  18954. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18955. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18956. )
  18957. SELECT TOP (10000 - @RecordCount)
  18958. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18959. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18960. FROM
  18961. [ChipBetInfoHistory]
  18962. WHERE
  18963. BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  18964. ORDER BY
  18965. RecordID DESC
  18966. --总记录数
  18967. SET @RecordCount = @RecordCount + @@ROWCOUNT
  18968. END
  18969. END
  18970. END
  18971. --所有记录
  18972. ELSE
  18973. BEGIN
  18974. INSERT INTO @tmptable
  18975. (
  18976. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18977. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18978. )
  18979. SELECT TOP 10000
  18980. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18981. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18982. FROM
  18983. [ChipBet]
  18984. WHERE
  18985. BetTime BETWEEN @BeginTime AND @EndTime
  18986. ORDER BY
  18987. RecordID DESC
  18988. --总记录数
  18989. SET @RecordCount = @@ROWCOUNT
  18990. IF(@RecordCount < 10000)
  18991. BEGIN
  18992. INSERT INTO @tmptable
  18993. (
  18994. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18995. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  18996. )
  18997. SELECT TOP (10000 - @RecordCount)
  18998. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  18999. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  19000. FROM
  19001. [ChipBetInfo]
  19002. WHERE
  19003. BetTime BETWEEN @BeginTime AND @EndTime
  19004. ORDER BY
  19005. RecordID DESC
  19006. --总记录数
  19007. SET @RecordCount = @RecordCount + @@ROWCOUNT
  19008. IF(@RecordCount < 10000)
  19009. BEGIN
  19010. INSERT INTO @tmptable
  19011. (
  19012. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  19013. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  19014. )
  19015. SELECT TOP (10000 - @RecordCount)
  19016. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  19017. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  19018. FROM
  19019. [ChipBetInfoHistory]
  19020. WHERE
  19021. BetTime BETWEEN @BeginTime AND @EndTime
  19022. ORDER BY
  19023. RecordID DESC
  19024. --总记录数
  19025. SET @RecordCount = @RecordCount + @@ROWCOUNT
  19026. END
  19027. END
  19028. END
  19029. --计算输赢
  19030. SELECT @WinAmount = ISNULL(SUM(ResultAmount - BetAmount), 0) FROM @tmptable
  19031. ;WITH [List] AS
  19032. (
  19033. SELECT
  19034. ROW_NUMBER() OVER(ORDER BY RecordID DESC) AS RowNumber,
  19035. RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
  19036. ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
  19037. FROM
  19038. @tmptable
  19039. )
  19040. --返回信息
  19041. SELECT
  19042. l.RecordID, l.UserID, u.NickName, g.ChineseName, l.BetAmount,
  19043. CONVERT(CHAR(16), l.BetTime, 120) AS BetTime, l.BetZone, l.Odds, l.ResultAmount,
  19044. CONVERT(CHAR(16), l.ResultTime, 120) AS ResultTime, l.ResultZone,
  19045. (l.ResultAmount - l.BetAmount) AS WinAmount, l.StillAmount, l.Status, l.Tax,
  19046. DATEDIFF(SECOND, l.BetTime, l.ResultTime) AS SubSeconds
  19047. FROM
  19048. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  19049. INNER JOIN [AllGame] g ON l.GameID = g.GameID
  19050. WHERE
  19051. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  19052. ORDER BY
  19053. l.RowNumber ASC
  19054. RETURN
  19055. END
  19056. GO
  19057. /****** Object: StoredProcedure [dbo].[Manage_GameDailyStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  19058. SET ANSI_NULLS ON
  19059. GO
  19060. SET QUOTED_IDENTIFIER ON
  19061. GO
  19062. -- EXEC [Manage_GameDailyStat_GetList]
  19063. -- ==============================================
  19064. -- Author: wolf
  19065. -- Create Date: 2014-06-11
  19066. -- Mendor: wolf
  19067. -- Alter Date: 2014-12-29
  19068. -- Description: 游戏日常统计列表
  19069. -- ==============================================
  19070. CREATE PROCEDURE [dbo].[Manage_GameDailyStat_GetList]
  19071. @BeginTime DATETIME, --开始时间
  19072. @EndTime DATETIME, --截止时间
  19073. @PageIndex INT, --页索引
  19074. @PageSize INT, --页大小
  19075. @RecordCount INT OUTPUT --记录数
  19076. AS
  19077. SET NOCOUNT ON
  19078. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19079. SET XACT_ABORT ON
  19080. BEGIN
  19081. DECLARE @StartRowIndex INT --起始行索引
  19082. DECLARE @EndRowIndex INT --截止行索引
  19083. DECLARE @tmptable TABLE(
  19084. DateFlag DATETIME NOT NULL, --时间
  19085. GameID INT NOT NULL, --游戏ID
  19086. ServerName NVARCHAR(32) NOT NULL, --服务器名称
  19087. AvgOnlineCount INT NOT NULL, --平均在线
  19088. MaxOnlineCount INT NOT NULL, --最高在线
  19089. ActiveCount INT NOT NULL, --活跃用户(指有消耗的用户数)
  19090. BetAmount BIGINT NOT NULL, --下注金额
  19091. ResultAmount BIGINT NOT NULL --结算金额
  19092. )
  19093. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  19094. SET @EndRowIndex = @PageIndex * @PageSize
  19095. INSERT INTO @tmptable
  19096. (
  19097. DateFlag, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
  19098. )
  19099. SELECT
  19100. DateFlag, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
  19101. FROM
  19102. [GameDailyStat]
  19103. WHERE
  19104. DateFlag BETWEEN @BeginTime AND @EndTime
  19105. SET @RecordCount = @@ROWCOUNT
  19106. ;WITH [List] AS
  19107. (
  19108. SELECT
  19109. ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
  19110. DateFlag, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
  19111. FROM
  19112. @tmptable
  19113. )
  19114. SELECT
  19115. CONVERT(CHAR(10), DateFlag, 120) AS DateFlg,
  19116. CASE
  19117. WHEN ServerName = 'EmperorCrab' THEN N'浅水滩'
  19118. WHEN ServerName = 'AlmightyOctopus' THEN N'深海寻宝'
  19119. WHEN ServerName = 'AncientCrocodile' THEN N'海底密藏'
  19120. WHEN ServerName = 'DarknessMonster' THEN N'深海沉船'
  19121. ELSE ''
  19122. END AS ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
  19123. FROM
  19124. [List]
  19125. WHERE
  19126. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  19127. ORDER BY
  19128. RowNumber ASC
  19129. RETURN
  19130. END
  19131. GO
  19132. /****** Object: StoredProcedure [dbo].[Manage_GameRecord_GetReport] Script Date: 2024/1/12 11:01:14 ******/
  19133. SET ANSI_NULLS ON
  19134. GO
  19135. SET QUOTED_IDENTIFIER ON
  19136. GO
  19137. -- EXEC [Manage_GameRecord_GetReport]
  19138. -- ==============================================
  19139. -- Author: wolf
  19140. -- Create Date: 2014-12-29
  19141. -- Mendor: wolf
  19142. -- Alter Date: 2015-06-01
  19143. -- Description: 游戏记录报表(局数、时长)
  19144. -- ==============================================
  19145. CREATE PROCEDURE [dbo].[Manage_GameRecord_GetReport]
  19146. @BeginTime DATETIME, --开始时间
  19147. @EndTime DATETIME, --截止时间
  19148. @GameID INT, --游戏ID
  19149. @PartnerID INT --渠道ID
  19150. AS
  19151. SET NOCOUNT ON
  19152. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19153. SET XACT_ABORT ON
  19154. BEGIN
  19155. DECLARE @tmptable TABLE(
  19156. DateFlag SMALLDATETIME NOT NULL, --日期标识
  19157. TotalCount INT NOT NULL, --总局数
  19158. WinCount INT NOT NULL, --赢局数
  19159. PlaySeconds INT NOT NULL, --游戏时长(秒)
  19160. Players INT NOT NULL, --游戏用户数
  19161. TaxAmount BIGINT NOT NULL --台费
  19162. )
  19163. --获取某款游戏
  19164. IF(@GameID > 0)
  19165. BEGIN
  19166. --某个渠道
  19167. IF(@PartnerID > 0)
  19168. BEGIN
  19169. INSERT INTO @tmptable
  19170. (
  19171. DateFlag, TotalCount, WinCount, PlaySeconds, Players, TaxAmount
  19172. )
  19173. SELECT
  19174. d.DateFlag, SUM(d.TotalCount), SUM(d.WinCount), SUM(d.PlaySeconds), COUNT(DISTINCT d.UserID), SUM(d.TaxAmount)
  19175. FROM
  19176. [DailyBetStat] d INNER JOIN [AllUser] u ON d.UserID = u.UserID AND u.PartnerID = @PartnerID
  19177. WHERE
  19178. d.DateFlag BETWEEN @BeginTime AND @EndTime AND d.GameID = @GameID AND d.UserID > 0
  19179. GROUP BY
  19180. d.DateFlag
  19181. END
  19182. --所有渠道
  19183. ELSE
  19184. BEGIN
  19185. INSERT INTO @tmptable
  19186. (
  19187. DateFlag, TotalCount, WinCount, PlaySeconds, Players, TaxAmount
  19188. )
  19189. SELECT
  19190. DateFlag, SUM(TotalCount), SUM(WinCount), SUM(PlaySeconds), COUNT(DISTINCT UserID), SUM(TaxAmount)
  19191. FROM
  19192. [DailyBetStat]
  19193. WHERE
  19194. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND UserID > 0
  19195. GROUP BY
  19196. DateFlag
  19197. END
  19198. END
  19199. --获取所有游戏
  19200. ELSE
  19201. BEGIN
  19202. IF(@PartnerID > 0)
  19203. BEGIN
  19204. INSERT INTO @tmptable
  19205. (
  19206. DateFlag, TotalCount, WinCount, PlaySeconds, Players, TaxAmount
  19207. )
  19208. SELECT
  19209. d.DateFlag, SUM(d.TotalCount), SUM(d.WinCount), SUM(d.PlaySeconds), COUNT(DISTINCT d.UserID), SUM(d.TaxAmount)
  19210. FROM
  19211. [DailyBetStat] d INNER JOIN [AllUser] u ON d.UserID = u.UserID AND u.PartnerID = @PartnerID
  19212. WHERE
  19213. d.DateFlag BETWEEN @BeginTime AND @EndTime AND d.UserID > 0
  19214. GROUP BY
  19215. d.DateFlag
  19216. END
  19217. ELSE
  19218. BEGIN
  19219. INSERT INTO @tmptable
  19220. (
  19221. DateFlag, TotalCount, WinCount, PlaySeconds, Players, TaxAmount
  19222. )
  19223. SELECT
  19224. DateFlag, SUM(TotalCount), SUM(WinCount), SUM(PlaySeconds), COUNT(DISTINCT UserID), SUM(TaxAmount)
  19225. FROM
  19226. [DailyBetStat]
  19227. WHERE
  19228. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID > 0
  19229. GROUP BY
  19230. DateFlag
  19231. END
  19232. END
  19233. --返回信息
  19234. SELECT
  19235. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, TotalCount, WinCount,
  19236. PlaySeconds, Players, TaxAmount
  19237. FROM
  19238. @tmptable
  19239. ORDER BY
  19240. DateFlag ASC
  19241. RETURN
  19242. END
  19243. GO
  19244. /****** Object: StoredProcedure [dbo].[Manage_GameRecord_ReportDetail] Script Date: 2024/1/12 11:01:14 ******/
  19245. SET ANSI_NULLS ON
  19246. GO
  19247. SET QUOTED_IDENTIFIER ON
  19248. GO
  19249. -- EXEC [Manage_GameRecord_ReportDetail]
  19250. -- ==============================================
  19251. -- Author: wolf
  19252. -- Create Date: 2014-12-29
  19253. -- Mendor: wolf
  19254. -- Alter Date: 2015-06-01
  19255. -- Description: 游戏记录详情报表
  19256. -- ==============================================
  19257. CREATE PROCEDURE [dbo].[Manage_GameRecord_ReportDetail]
  19258. @BeginTime DATETIME, --开始时间
  19259. @EndTime DATETIME --截止时间
  19260. AS
  19261. SET NOCOUNT ON
  19262. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19263. SET XACT_ABORT ON
  19264. BEGIN
  19265. DECLARE @tmptable TABLE(
  19266. GameID INT NOT NULL, --游戏ID
  19267. ServerName NVARCHAR(32) NOT NULL, --服务器名称
  19268. MoneySum BIGINT NOT NULL, --变化金币
  19269. TotalCount INT NOT NULL, --总局数
  19270. WinCount INT NOT NULL, --胜局数
  19271. PlaySeconds BIGINT NOT NULL, --游戏时长
  19272. Players INT NOT NULL --游戏玩家数
  19273. )
  19274. --初始化表变量
  19275. INSERT INTO @tmptable
  19276. (
  19277. GameID, ServerName, MoneySum, TotalCount, WinCount,
  19278. PlaySeconds, Players
  19279. )
  19280. SELECT
  19281. GameID, ServerName, SUM(MoneySum), SUM(TotalCount), SUM(WinCount),
  19282. SUM(PlaySeconds), COUNT(DISTINCT UserID)
  19283. FROM
  19284. [DailyBetStat]
  19285. WHERE
  19286. DateFlag BETWEEN @BeginTime AND @EndTime
  19287. GROUP BY
  19288. GameID, ServerName
  19289. --返回信息
  19290. SELECT
  19291. t.GameID, g.EnglishName, t.ServerName, t.MoneySum, t.TotalCount, t.WinCount,
  19292. t.PlaySeconds, t.Players
  19293. FROM
  19294. @tmptable t INNER JOIN [AllGame] g ON t.GameID = g.GameID
  19295. ORDER BY
  19296. t.GameID ASC, t.ServerName ASC
  19297. RETURN
  19298. END
  19299. GO
  19300. /****** Object: StoredProcedure [dbo].[Manage_GameReport_GetList] Script Date: 2024/1/12 11:01:14 ******/
  19301. SET ANSI_NULLS ON
  19302. GO
  19303. SET QUOTED_IDENTIFIER ON
  19304. GO
  19305. -- EXEC [Manage_GameReport_GetList]
  19306. -- ==============================================
  19307. -- Author: wolf
  19308. -- Create Date: 2014-01-21
  19309. -- Mendor: wolf
  19310. -- Alter Date: 2016-11-07
  19311. -- Description: 游戏报表统计
  19312. -- ==============================================
  19313. CREATE PROCEDURE [dbo].[Manage_GameReport_GetList]
  19314. @BeginTime DATETIME, --开始时间
  19315. @EndTime DATETIME --截止时间
  19316. AS
  19317. SET NOCOUNT ON
  19318. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19319. SET XACT_ABORT ON
  19320. BEGIN
  19321. SELECT
  19322. Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
  19323. ItemType, ItemName, ItemValue, ItemTag
  19324. FROM
  19325. [GameReport]
  19326. WHERE
  19327. DateFlag BETWEEN @BeginTime AND @EndTime
  19328. ORDER BY
  19329. DateFlag DESC, ItemType ASC, ItemTag ASC, Rid ASC
  19330. RETURN
  19331. END
  19332. GO
  19333. /****** Object: StoredProcedure [dbo].[Manage_GameRequest_Add] Script Date: 2024/1/12 11:01:14 ******/
  19334. SET ANSI_NULLS ON
  19335. GO
  19336. SET QUOTED_IDENTIFIER ON
  19337. GO
  19338. -- DECLARE @RetCode TINYINT
  19339. -- EXEC [Manage_GameRequest_Add]
  19340. -- @OpUserID = 1,
  19341. -- @OpUserName = '',
  19342. -- @PartnerID = 1,
  19343. -- @PartnerName = '',
  19344. -- @VersionCode = 1,
  19345. -- @GameName = '',
  19346. -- @IPAddress = '',
  19347. -- @RetCode = @RetCode OUTPUT
  19348. -- SELECT @RetCode AS RetCode
  19349. -- ==============================================
  19350. -- Author: wolf
  19351. -- Create Date: 2015-06-26
  19352. -- Mendor: wolf
  19353. -- Alter Date: 2015-06-26
  19354. -- Description: 添加游戏审核信息
  19355. -- ==============================================
  19356. CREATE PROCEDURE [dbo].[Manage_GameRequest_Add]
  19357. @OpUserID INT, --操作员ID
  19358. @OpUserName VARCHAR(32), --操作员名称
  19359. @PartnerID INT, --渠道ID
  19360. @PartnerName NVARCHAR(32), --渠道名称
  19361. @VersionCode INT, --版本号
  19362. @GameName VARCHAR(32), --游戏名称
  19363. @IPAddress VARCHAR(16), --IP地址
  19364. @RetCode TINYINT OUTPUT --操作结果
  19365. AS
  19366. SET NOCOUNT ON
  19367. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19368. SET XACT_ABORT ON
  19369. BEGIN
  19370. DECLARE @Msg NVARCHAR(4000) --操作描述
  19371. SET @RetCode = 0
  19372. --判断是否已经存在
  19373. IF EXISTS(SELECT PartnerID FROM [GameRequest] WHERE PartnerID = @PartnerID)
  19374. BEGIN
  19375. SET @RetCode = 11
  19376. RETURN
  19377. END
  19378. --添加审核信息
  19379. INSERT INTO [GameRequest]
  19380. (
  19381. PartnerID, VersionCode, GameName
  19382. )
  19383. VALUES
  19384. (
  19385. @PartnerID, @VersionCode, @GameName
  19386. )
  19387. SET @Msg = N'Add game review, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@PartnerName=' + @PartnerName + ',@VersionCode=' + LTRIM(STR(@VersionCode)) + ',@GameName=' + @GameName
  19388. --添加日志
  19389. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  19390. SET @RetCode = 1
  19391. RETURN
  19392. END
  19393. GO
  19394. /****** Object: StoredProcedure [dbo].[Manage_GameRequest_Del] Script Date: 2024/1/12 11:01:14 ******/
  19395. SET ANSI_NULLS ON
  19396. GO
  19397. SET QUOTED_IDENTIFIER ON
  19398. GO
  19399. -- DECLARE @RetCode TINYINT
  19400. -- EXEC [Manage_GameRequest_Del]
  19401. -- @OpUserID = 1,
  19402. -- @OpUserName = '',
  19403. -- @PartnerID = 1,
  19404. -- @IPAddress = '',
  19405. -- @RetCode = @RetCode OUTPUT
  19406. -- SELECT @RetCode AS RetCode
  19407. -- ==============================================
  19408. -- Author: wolf
  19409. -- Create Date: 2015-06-26
  19410. -- Mendor: wolf
  19411. -- Alter Date: 2015-06-26
  19412. -- Description: 删除游戏审核信息
  19413. -- ==============================================
  19414. CREATE PROCEDURE [dbo].[Manage_GameRequest_Del]
  19415. @OpUserID INT, --操作员ID
  19416. @OpUserName VARCHAR(32), --操作员名称
  19417. @PartnerID INT, --渠道ID
  19418. @IPAddress VARCHAR(16), --IP地址
  19419. @RetCode TINYINT OUTPUT --操作结果
  19420. AS
  19421. SET NOCOUNT ON
  19422. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19423. SET XACT_ABORT ON
  19424. BEGIN
  19425. DECLARE @Msg NVARCHAR(4000) --操作描述
  19426. DECLARE @PartnerName NVARCHAR(32) --渠道名称
  19427. DECLARE @VersionCode INT --版本
  19428. DECLARE @GameName VARCHAR(32) --游戏名称
  19429. SET @RetCode = 0
  19430. --获取审核信息
  19431. SELECT
  19432. @VersionCode = VersionCode, @GameName = GameName
  19433. FROM
  19434. [GameRequest]
  19435. WHERE
  19436. PartnerID = @PartnerID
  19437. --判断是否已经存在
  19438. IF(@@ROWCOUNT = 0)
  19439. BEGIN
  19440. SET @RetCode = 11
  19441. RETURN
  19442. END
  19443. --渠道名称
  19444. SELECT @PartnerName = PartnerName FROM [Partner] WHERE PartnerID = @PartnerID
  19445. --删除游戏审核
  19446. DELETE FROM [GameRequest] WHERE PartnerID = @PartnerID
  19447. SET @Msg = N'Delete Game Review, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@PartnerName=' + @PartnerName + ',@VersionCode=' + LTRIM(STR(@VersionCode)) + ',@GameName=' + @GameName
  19448. --添加日志
  19449. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  19450. SET @RetCode = 1
  19451. RETURN
  19452. END
  19453. GO
  19454. /****** Object: StoredProcedure [dbo].[Manage_GameRequest_GetList] Script Date: 2024/1/12 11:01:14 ******/
  19455. SET ANSI_NULLS ON
  19456. GO
  19457. SET QUOTED_IDENTIFIER ON
  19458. GO
  19459. -- EXEC [Manage_GameRequest_GetList]
  19460. -- ==============================================
  19461. -- Author: wolf
  19462. -- Create Date: 2015-06-26
  19463. -- Mendor: wolf
  19464. -- Alter Date: 2016-05-31
  19465. -- Description: 获取游戏审核列表
  19466. -- ==============================================
  19467. CREATE PROCEDURE [dbo].[Manage_GameRequest_GetList]
  19468. AS
  19469. SET NOCOUNT ON
  19470. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19471. SET XACT_ABORT ON
  19472. BEGIN
  19473. SELECT
  19474. r.PartnerID, p.PartnerName, r.VersionCode, r.GameName, ISNULL(g.ChineseName, r.GameName) AS ChineseName
  19475. FROM
  19476. [GameRequest] r INNER JOIN [Partner] p ON r.PartnerID = p.PartnerID
  19477. LEFT JOIN [AllGame] g ON r.GameName = g.EnglishName
  19478. ORDER BY
  19479. r.PartnerID ASC
  19480. RETURN
  19481. END
  19482. GO
  19483. /****** Object: StoredProcedure [dbo].[Manage_GiftCard_Deal] Script Date: 2024/1/12 11:01:14 ******/
  19484. SET ANSI_NULLS ON
  19485. GO
  19486. SET QUOTED_IDENTIFIER ON
  19487. GO
  19488. -- EXEC [Manage_GiftCard_Deal]
  19489. -- ==============================================
  19490. -- Author: wolf
  19491. -- Create Date: 2015-10-10
  19492. -- Mendor: wolf
  19493. -- Alter Date: 2015-10-10
  19494. -- Description: 礼品卡处理
  19495. -- ==============================================
  19496. CREATE PROCEDURE [dbo].[Manage_GiftCard_Deal]
  19497. @OpUserID INT, --操作员ID
  19498. @OpUserName VARCHAR(32), --操作员名称
  19499. @Rid INT, --标识
  19500. @OperateStatus TINYINT, --操作状态(0=待处理 1=已兑换 2=不予兑换)
  19501. @IPAddress VARCHAR(16) --IP地址
  19502. AS
  19503. SET NOCOUNT ON
  19504. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19505. SET XACT_ABORT ON
  19506. BEGIN
  19507. DECLARE @RetCode TINYINT --操作结果
  19508. DECLARE @Msg NVARCHAR(4000) --操作描述
  19509. DECLARE @UserID INT --用户ID
  19510. DECLARE @ItemID INT --道具ID
  19511. DECLARE @Key VARCHAR(16) --兑换码
  19512. SET @RetCode = 0
  19513. --修改
  19514. UPDATE
  19515. [GiftCard]
  19516. SET
  19517. OperateStatus = @OperateStatus, @UserID = UserID, @ItemID = ItemID, @Key = [Key]
  19518. WHERE
  19519. Rid = @Rid AND OperateStatus = 0
  19520. IF(@@ROWCOUNT = 0)
  19521. BEGIN
  19522. SET @RetCode = 11
  19523. SELECT @RetCode AS RetCode
  19524. RETURN
  19525. END
  19526. --添加日志
  19527. SET @Msg = N'礼品卡处理,关联的信息:@Rid=' + LTRIM(STR(@Rid)) + ',@UserID=' + LTRIM(STR(@UserID)) +
  19528. ',@ItemID=' + LTRIM(STR(@ItemID)) + ',@Key=' + @Key + ',@OperateStatus=' + LTRIM(STR(@OperateStatus))
  19529. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  19530. --返回信息
  19531. SET @RetCode = 1
  19532. SELECT @RetCode AS RetCode
  19533. END
  19534. GO
  19535. /****** Object: StoredProcedure [dbo].[Manage_GiftCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
  19536. SET ANSI_NULLS ON
  19537. GO
  19538. SET QUOTED_IDENTIFIER ON
  19539. GO
  19540. -- EXEC [Manage_GiftCard_GetList]
  19541. -- ==============================================
  19542. -- Author: wolf
  19543. -- Create Date: 2015-10-10
  19544. -- Mendor: wolf
  19545. -- Alter Date: 2015-10-10
  19546. -- Description: 获取礼品卡记录
  19547. -- ==============================================
  19548. CREATE PROCEDURE [dbo].[Manage_GiftCard_GetList]
  19549. @UserID INT, --用户ID
  19550. @OperateStatus INT, --状态
  19551. @BeginTime DATETIME, --开始时间
  19552. @EndTime DATETIME, --截止时间
  19553. @PageIndex INT, --页索引
  19554. @PageSize INT, --页大小
  19555. @RecordCount INT OUTPUT --记录数
  19556. AS
  19557. SET NOCOUNT ON
  19558. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19559. SET XACT_ABORT ON
  19560. BEGIN
  19561. DECLARE @StartRowIndex INT --起始行索引
  19562. DECLARE @EndRowIndex INT --截止行索引
  19563. DECLARE @tmptable TABLE(
  19564. Rid INT NOT NULL, --标识
  19565. UserID INT NOT NULL, --用户ID
  19566. ItemID INT NOT NULL, --道具ID
  19567. [Key] VARCHAR(16) NOT NULL, --兑换码
  19568. ActivateTime INT NOT NULL, --激活时间
  19569. OperateStatus TINYINT NOT NULL, --操作状态(0=待处理 1=已兑换 2=不予兑换)
  19570. Crdate DATETIME NOT NULL
  19571. )
  19572. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  19573. SET @EndRowIndex = @PageIndex * @PageSize
  19574. SET @RecordCount = 0
  19575. IF(@UserID > 0)
  19576. BEGIN
  19577. INSERT INTO @tmptable
  19578. (
  19579. Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
  19580. )
  19581. SELECT
  19582. Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
  19583. FROM
  19584. [GiftCard]
  19585. WHERE
  19586. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  19587. END
  19588. ELSE IF(@OperateStatus >= 0)
  19589. BEGIN
  19590. INSERT INTO @tmptable
  19591. (
  19592. Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
  19593. )
  19594. SELECT
  19595. Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
  19596. FROM
  19597. [GiftCard]
  19598. WHERE
  19599. Crdate BETWEEN @BeginTime AND @EndTime AND OperateStatus = @OperateStatus
  19600. END
  19601. ELSE
  19602. BEGIN
  19603. INSERT INTO @tmptable
  19604. (
  19605. Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
  19606. )
  19607. SELECT
  19608. Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
  19609. FROM
  19610. [GiftCard]
  19611. WHERE
  19612. Crdate BETWEEN @BeginTime AND @EndTime
  19613. END
  19614. --记录数
  19615. SET @RecordCount = @@ROWCOUNT
  19616. ;WITH [List] AS
  19617. (
  19618. SELECT
  19619. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  19620. Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
  19621. FROM
  19622. @tmptable
  19623. )
  19624. --返回信息
  19625. SELECT
  19626. l.Rid, l.UserID, u.NickName, l.ItemID, l.[Key], l.ActivateTime, l.OperateStatus,
  19627. CONVERT(CHAR(16), l.Crdate, 120) AS Crdate
  19628. FROM
  19629. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  19630. WHERE
  19631. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  19632. ORDER BY
  19633. l.RowNumber ASC
  19634. RETURN
  19635. END
  19636. GO
  19637. /****** Object: StoredProcedure [dbo].[Manage_GoogleOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
  19638. SET ANSI_NULLS ON
  19639. GO
  19640. SET QUOTED_IDENTIFIER ON
  19641. GO
  19642. -- EXEC [Manage_GooglePayOrder_GetList]
  19643. -- ==============================================
  19644. -- Author: wolf
  19645. -- Create Date: 2016-07-21
  19646. -- Mendor: wolf
  19647. -- Alter Date: 2016-11-07
  19648. -- Description: GooglePay--获取订单列表
  19649. -- ==============================================
  19650. CREATE PROCEDURE [dbo].[Manage_GoogleOrder_GetList]
  19651. @UserID INT, --用户ID
  19652. @BeginTime DATETIME, --开始时间
  19653. @EndTime DATETIME, --截止时间
  19654. @PageIndex INT, --页索引
  19655. @PageSize INT, --页大小
  19656. @RecordCount INT OUTPUT --总记录数
  19657. AS
  19658. SET NOCOUNT ON
  19659. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19660. SET XACT_ABORT ON
  19661. BEGIN
  19662. DECLARE @StartRowIndex INT --起始行索引
  19663. DECLARE @EndRowIndex INT --截止行索引
  19664. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  19665. SET @EndRowIndex = @PageIndex * @PageSize
  19666. --创建临时表
  19667. DECLARE @tmptable TABLE(
  19668. UserID INT NOT NULL, --用户ID
  19669. ProductID VARCHAR(32) NOT NULL, --产品ID
  19670. Price DECIMAL(18, 2) NOT NULL, --价格
  19671. PartnerID INT NOT NULL, --渠道ID
  19672. Token VARCHAR(256) NOT NULL, --token
  19673. IPAddress VARCHAR(16) NOT NULL, --IP地址
  19674. Crdate DATETIME NOT NULL --时间
  19675. )
  19676. --用户ID查询
  19677. IF(@UserID > 0)
  19678. BEGIN
  19679. INSERT INTO @tmptable
  19680. (
  19681. UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
  19682. )
  19683. SELECT
  19684. UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
  19685. FROM
  19686. [GoogleLog]
  19687. WHERE
  19688. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  19689. ORDER BY
  19690. Crdate DESC
  19691. END
  19692. --所有订单
  19693. ELSE
  19694. BEGIN
  19695. INSERT INTO @tmptable
  19696. (
  19697. UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
  19698. )
  19699. SELECT
  19700. UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
  19701. FROM
  19702. [GoogleLog]
  19703. WHERE
  19704. Crdate BETWEEN @BeginTime AND @EndTime
  19705. ORDER BY
  19706. Crdate DESC
  19707. END
  19708. --总记录数
  19709. SET @RecordCount = @@ROWCOUNT
  19710. ;WITH [List] AS
  19711. (
  19712. SELECT
  19713. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  19714. UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
  19715. FROM
  19716. @tmptable
  19717. )
  19718. --返回信息
  19719. SELECT
  19720. l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price,
  19721. ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.Token,
  19722. l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  19723. FROM
  19724. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  19725. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  19726. WHERE
  19727. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  19728. ORDER BY
  19729. l.RowNumber ASC
  19730. RETURN
  19731. END
  19732. GO
  19733. /****** Object: StoredProcedure [dbo].[Manage_Guess_AddMatch] Script Date: 2024/1/12 11:01:14 ******/
  19734. SET ANSI_NULLS ON
  19735. GO
  19736. SET QUOTED_IDENTIFIER ON
  19737. GO
  19738. -- EXEC [Manage_Guess_AddMatch]
  19739. -- ==============================================
  19740. -- Author: wolf
  19741. -- Create Date: 2023-06-28
  19742. -- Mendor: wolf
  19743. -- Alter Date: 2023-06-28
  19744. -- Description: 竞猜添加赛事
  19745. -- ==============================================
  19746. CREATE PROCEDURE [dbo].[Manage_Guess_AddMatch]
  19747. @Title NVARCHAR(32), --标题
  19748. @StartAt VARCHAR(32), --开始时间
  19749. @EndAt VARCHAR(32), --结束时间
  19750. @ShowStartAt VARCHAR(32), --展示开始时间
  19751. @ShowEndAt VARCHAR(32), --展示截止时间
  19752. @OpUserID INT, --操作员ID
  19753. @OpUserName VARCHAR(32), --操作员
  19754. @IPAddress VARCHAR(16) --IP地址
  19755. AS
  19756. SET NOCOUNT ON
  19757. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19758. SET XACT_ABORT ON
  19759. BEGIN
  19760. DECLARE @Msg NVARCHAR(4000) --操作描述
  19761. DECLARE @SerialNumber VARCHAR(32) --流水号
  19762. --表变量
  19763. DECLARE @tmptable TABLE(
  19764. SerialNumber UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  19765. Title NVARCHAR(32) --标题
  19766. )
  19767. --生成数据
  19768. INSERT INTO @tmptable(Title) VALUES(@Title)
  19769. --流水号
  19770. SELECT @SerialNumber = REPLACE(SerialNumber, '-', '') FROM @tmptable WHERE Title = @Title
  19771. --组装成有序的订单
  19772. SET @SerialNumber = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@SerialNumber, 1, 20)
  19773. --添加
  19774. INSERT INTO [Match]
  19775. (
  19776. SerialNumber, Title, Status, Result, StartAt, EndAt, ShowStartAt, ShowEndAt
  19777. )
  19778. VALUES
  19779. (
  19780. @SerialNumber, @Title, 0, '', @StartAt, @EndAt, @ShowStartAt, @ShowEndAt
  19781. )
  19782. SET @Msg = N'添加赛事信息, @SerialNumber=' + @SerialNumber + ',@Title=' + @Title + ',@StartAt=' + @StartAt + ',@EndAt=' + @EndAt +
  19783. ',@ShowStartAt=' + @ShowStartAt + ',@ShowEndAt=' + @ShowEndAt
  19784. --添加日志
  19785. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  19786. --返回信息
  19787. SELECT @SerialNumber AS SerialNumber
  19788. RETURN
  19789. END
  19790. GO
  19791. /****** Object: StoredProcedure [dbo].[Manage_Guess_AddMatchBet] Script Date: 2024/1/12 11:01:14 ******/
  19792. SET ANSI_NULLS ON
  19793. GO
  19794. SET QUOTED_IDENTIFIER ON
  19795. GO
  19796. -- EXEC [Manage_Guess_AddMatchBet]
  19797. -- ==============================================
  19798. -- Author: wolf
  19799. -- Create Date: 2023-06-28
  19800. -- Mendor: wolf
  19801. -- Alter Date: 2023-06-28
  19802. -- Description: 竞猜添加赛事投注
  19803. -- ==============================================
  19804. CREATE PROCEDURE [dbo].[Manage_Guess_AddMatchBet]
  19805. @SerialNumber VARCHAR(32), --流水号
  19806. @BetName NVARCHAR(32), --投注名称
  19807. @BetOdds DECIMAL(10, 2), --投注赔率
  19808. @OpUserID INT, --操作员ID
  19809. @OpUserName VARCHAR(32), --操作员
  19810. @IPAddress VARCHAR(16) --IP地址
  19811. AS
  19812. SET NOCOUNT ON
  19813. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19814. SET XACT_ABORT ON
  19815. BEGIN
  19816. DECLARE @Msg NVARCHAR(4000) --操作描述
  19817. DECLARE @RetCode TINYINT --操作结果
  19818. SET @RetCode = 0
  19819. --赛事不存在
  19820. IF NOT EXISTS(SELECT SerialNumber FROM [Match] WHERE SerialNumber = @SerialNumber)
  19821. BEGIN
  19822. SET @RetCode = 11
  19823. SELECT @RetCode AS RetCode
  19824. RETURN
  19825. END
  19826. --赛事投注项已存在
  19827. IF EXISTS(SELECT BetID FROM [MatchBet] WHERE SerialNumber = @SerialNumber AND BetName = @BetName)
  19828. BEGIN
  19829. SET @RetCode = 12
  19830. SELECT @RetCode AS RetCode
  19831. RETURN
  19832. END
  19833. --赛事球队
  19834. INSERT INTO [MatchBet]
  19835. (
  19836. SerialNumber, BetName, BetOdds, BetAmount, IsWin
  19837. )
  19838. VALUES
  19839. (
  19840. @SerialNumber, @BetName, @BetOdds, 0, 0
  19841. )
  19842. SET @Msg = N'添加赛事投注, @SerialNumber=' + @SerialNumber + ',@BetName=' + @BetName + ',@BetOdds=' + CAST(@BetOdds AS VARCHAR(32))
  19843. --添加日志
  19844. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  19845. --返回信息
  19846. SET @RetCode = 1
  19847. SELECT @RetCode AS RetCode
  19848. RETURN
  19849. END
  19850. GO
  19851. /****** Object: StoredProcedure [dbo].[Manage_Guess_AddMatchTeam] Script Date: 2024/1/12 11:01:14 ******/
  19852. SET ANSI_NULLS ON
  19853. GO
  19854. SET QUOTED_IDENTIFIER ON
  19855. GO
  19856. -- EXEC [Manage_Guess_AddMatchTeam]
  19857. -- ==============================================
  19858. -- Author: wolf
  19859. -- Create Date: 2023-06-28
  19860. -- Mendor: wolf
  19861. -- Alter Date: 2023-06-28
  19862. -- Description: 竞猜添加赛事球队
  19863. -- ==============================================
  19864. CREATE PROCEDURE [dbo].[Manage_Guess_AddMatchTeam]
  19865. @SerialNumber VARCHAR(32), --流水号
  19866. @TeamID INT, --球队ID
  19867. @OpUserID INT, --操作员ID
  19868. @OpUserName VARCHAR(32), --操作员
  19869. @IPAddress VARCHAR(16) --IP地址
  19870. AS
  19871. SET NOCOUNT ON
  19872. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19873. SET XACT_ABORT ON
  19874. BEGIN
  19875. DECLARE @Msg NVARCHAR(4000) --操作描述
  19876. DECLARE @RetCode TINYINT --操作结果
  19877. SET @RetCode = 0
  19878. --赛事不存在
  19879. IF NOT EXISTS(SELECT SerialNumber FROM [Match] WHERE SerialNumber = @SerialNumber)
  19880. BEGIN
  19881. SET @RetCode = 11
  19882. SELECT @RetCode AS RetCode
  19883. RETURN
  19884. END
  19885. --球队不存在
  19886. IF NOT EXISTS(SELECT Id FROM [Team] WHERE Id = @TeamID)
  19887. BEGIN
  19888. SET @RetCode = 12
  19889. SELECT @RetCode AS RetCode
  19890. RETURN
  19891. END
  19892. --赛事球队
  19893. INSERT INTO [MatchTeam](SerialNumber, TeamID) VALUES(@SerialNumber, @TeamID)
  19894. SET @Msg = N'添加赛事球队, @SerialNumber=' + @SerialNumber + ',@TeamID=' + LTRIM(STR(@TeamID))
  19895. --添加日志
  19896. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  19897. --返回信息
  19898. SET @RetCode = 1
  19899. SELECT @RetCode AS RetCode
  19900. RETURN
  19901. END
  19902. GO
  19903. /****** Object: StoredProcedure [dbo].[Manage_Guess_AddTeam] Script Date: 2024/1/12 11:01:14 ******/
  19904. SET ANSI_NULLS ON
  19905. GO
  19906. SET QUOTED_IDENTIFIER ON
  19907. GO
  19908. -- EXEC [Manage_Guess_AddTeam]
  19909. -- ==============================================
  19910. -- Author: wolf
  19911. -- Create Date: 2023-06-28
  19912. -- Mendor: wolf
  19913. -- Alter Date: 2023-06-28
  19914. -- Description: 竞猜球队添加
  19915. -- ==============================================
  19916. CREATE PROCEDURE [dbo].[Manage_Guess_AddTeam]
  19917. @Name NVARCHAR(32), --球队名称
  19918. @Icon VARCHAR(128), --球队图标
  19919. @ShortName NVARCHAR(32), --球队简称
  19920. @OpUserID INT, --操作员ID
  19921. @OpUserName VARCHAR(32), --操作员
  19922. @IPAddress VARCHAR(16) --IP地址
  19923. AS
  19924. SET NOCOUNT ON
  19925. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19926. SET XACT_ABORT ON
  19927. BEGIN
  19928. DECLARE @Msg NVARCHAR(4000) --操作描述
  19929. DECLARE @TeamID INT --球队ID
  19930. INSERT INTO [Team]
  19931. (
  19932. Name, Icon, ShortName
  19933. )
  19934. VALUES
  19935. (
  19936. @Name, @Icon, @ShortName
  19937. )
  19938. --球队ID
  19939. SET @TeamID = SCOPE_IDENTITY()
  19940. SET @Msg = N'添加球队信息, @Name=' + @Name + ',@Icon=' + @Icon + ',@ShortName=' + @ShortName + ',@TeamID=' + LTRIM(STR(@TeamID))
  19941. --添加日志
  19942. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  19943. --返回信息
  19944. SELECT @TeamID AS TeamID
  19945. RETURN
  19946. END
  19947. GO
  19948. /****** Object: StoredProcedure [dbo].[Manage_Guess_BetRecordAward] Script Date: 2024/1/12 11:01:14 ******/
  19949. SET ANSI_NULLS ON
  19950. GO
  19951. SET QUOTED_IDENTIFIER ON
  19952. GO
  19953. -- EXEC [Manage_Guess_BetRecordAward]
  19954. -- ==============================================
  19955. -- Author: wolf
  19956. -- Create Date: 2023-06-28
  19957. -- Mendor: wolf
  19958. -- Alter Date: 2023-06-28
  19959. -- Description: 赛事派奖
  19960. -- ==============================================
  19961. CREATE PROCEDURE [dbo].[Manage_Guess_BetRecordAward]
  19962. @Rid INT, --标识
  19963. @ResultAmount INT, --返奖金额
  19964. @OpUserID INT, --操作员ID
  19965. @OpUserName VARCHAR(32), --操作员
  19966. @IPAddress VARCHAR(16) --IP地址
  19967. AS
  19968. SET NOCOUNT ON
  19969. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  19970. SET XACT_ABORT ON
  19971. BEGIN
  19972. DECLARE @Msg NVARCHAR(4000) --操作描述
  19973. UPDATE
  19974. [BetRecord]
  19975. SET
  19976. ResultAmount = @ResultAmount
  19977. WHERE
  19978. Rid = @Rid
  19979. SET @Msg = N'赛事派奖, @Rid=' + LTRIM(STR(@Rid)) + ',@ResultAmount=' + @ResultAmount
  19980. --添加日志
  19981. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  19982. RETURN
  19983. END
  19984. GO
  19985. /****** Object: StoredProcedure [dbo].[Manage_Guess_SetMatchResult] Script Date: 2024/1/12 11:01:14 ******/
  19986. SET ANSI_NULLS ON
  19987. GO
  19988. SET QUOTED_IDENTIFIER ON
  19989. GO
  19990. -- EXEC [Manage_Guess_SetMatchResult]
  19991. -- ==============================================
  19992. -- Author: wolf
  19993. -- Create Date: 2023-06-28
  19994. -- Mendor: wolf
  19995. -- Alter Date: 2023-06-28
  19996. -- Description: 设置赛事结果
  19997. -- ==============================================
  19998. CREATE PROCEDURE [dbo].[Manage_Guess_SetMatchResult]
  19999. @SerialNumber VARCHAR(32), --流水号
  20000. @BetID INT, --投注ID
  20001. @Result NVARCHAR(32), --赛事结果
  20002. @OpUserID INT, --操作员ID
  20003. @OpUserName VARCHAR(32), --操作员
  20004. @IPAddress VARCHAR(16) --IP地址
  20005. AS
  20006. SET NOCOUNT ON
  20007. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20008. SET XACT_ABORT ON
  20009. BEGIN
  20010. DECLARE @Msg NVARCHAR(4000) --操作描述
  20011. --设置赛事结果
  20012. UPDATE [Match] SET Result = @Result WHERE SerialNumber = @SerialNumber
  20013. --设置投注选项
  20014. UPDATE
  20015. [MatchBet]
  20016. SET
  20017. IsWin = CASE
  20018. WHEN BetID = @BetID THEN 1
  20019. ELSE 0
  20020. END
  20021. WHERE
  20022. SerialNumber = @SerialNumber
  20023. SET @Msg = N'设置赛事结果, @SerialNumber=' + @SerialNumber + ',@BetID=' + LTRIM(STR(@BetID)) + ',@Result=' + @Result
  20024. --添加日志
  20025. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  20026. RETURN
  20027. END
  20028. GO
  20029. /****** Object: StoredProcedure [dbo].[Manage_Guess_UpdateMatch] Script Date: 2024/1/12 11:01:14 ******/
  20030. SET ANSI_NULLS ON
  20031. GO
  20032. SET QUOTED_IDENTIFIER ON
  20033. GO
  20034. -- EXEC [Manage_Guess_UpdateMatch]
  20035. -- ==============================================
  20036. -- Author: wolf
  20037. -- Create Date: 2023-06-28
  20038. -- Mendor: wolf
  20039. -- Alter Date: 2023-06-28
  20040. -- Description: 竞猜修改赛事
  20041. -- ==============================================
  20042. CREATE PROCEDURE [dbo].[Manage_Guess_UpdateMatch]
  20043. @SerialNumber VARCHAR(32), --流水号
  20044. @Title NVARCHAR(32), --标题
  20045. @StartAt VARCHAR(32), --开始时间
  20046. @EndAt VARCHAR(32), --结束时间
  20047. @ShowStartAt VARCHAR(32), --展示开始时间
  20048. @ShowEndAt VARCHAR(32), --展示截止时间
  20049. @OpUserID INT, --操作员ID
  20050. @OpUserName VARCHAR(32), --操作员
  20051. @IPAddress VARCHAR(16) --IP地址
  20052. AS
  20053. SET NOCOUNT ON
  20054. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20055. SET XACT_ABORT ON
  20056. BEGIN
  20057. DECLARE @Msg NVARCHAR(4000) --操作描述
  20058. DECLARE @RetCode TINYINT
  20059. SET @RetCode = 0
  20060. --修改
  20061. UPDATE
  20062. [Match]
  20063. SET
  20064. Title = @Title, StartAt = @StartAt, EndAt = @EndAt,
  20065. ShowStartAt = @ShowStartAt, ShowEndAt = @ShowEndAt
  20066. WHERE
  20067. SerialNumber = @SerialNumber
  20068. IF(@@ROWCOUNT = 0)
  20069. BEGIN
  20070. SET @RetCode = 11
  20071. SELECT @RetCode AS RetCode
  20072. RETURN
  20073. END
  20074. SET @Msg = N'修改赛事信息, @SerialNumber=' + @SerialNumber + ',@Title=' + @Title + ',@StartAt=' + @StartAt + ',@EndAt=' + @EndAt +
  20075. ',@ShowStartAt=' + @ShowStartAt + ',@ShowEndAt=' + @ShowEndAt
  20076. --添加日志
  20077. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  20078. SET @RetCode = 1
  20079. SELECT @RetCode AS RetCode
  20080. RETURN
  20081. END
  20082. GO
  20083. /****** Object: StoredProcedure [dbo].[Manage_Guess_UpdateMatchBet] Script Date: 2024/1/12 11:01:14 ******/
  20084. SET ANSI_NULLS ON
  20085. GO
  20086. SET QUOTED_IDENTIFIER ON
  20087. GO
  20088. -- EXEC [Manage_Guess_UpdateMatchBet]
  20089. -- ==============================================
  20090. -- Author: wolf
  20091. -- Create Date: 2023-06-28
  20092. -- Mendor: wolf
  20093. -- Alter Date: 2023-06-28
  20094. -- Description: 竞猜修改赛事投注
  20095. -- ==============================================
  20096. CREATE PROCEDURE [dbo].[Manage_Guess_UpdateMatchBet]
  20097. @BetID INT, --投注ID
  20098. @SerialNumber VARCHAR(32), --流水号
  20099. @BetName NVARCHAR(32), --投注名称
  20100. @BetOdds DECIMAL(10, 2), --投注赔率
  20101. @OpUserID INT, --操作员ID
  20102. @OpUserName VARCHAR(32), --操作员
  20103. @IPAddress VARCHAR(16) --IP地址
  20104. AS
  20105. SET NOCOUNT ON
  20106. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20107. SET XACT_ABORT ON
  20108. BEGIN
  20109. DECLARE @Msg NVARCHAR(4000) --操作描述
  20110. DECLARE @RetCode TINYINT --操作结果
  20111. SET @RetCode = 0
  20112. --赛事不存在
  20113. IF NOT EXISTS(SELECT SerialNumber FROM [Match] WHERE SerialNumber = @SerialNumber)
  20114. BEGIN
  20115. SET @RetCode = 11
  20116. SELECT @RetCode AS RetCode
  20117. RETURN
  20118. END
  20119. /*
  20120. --赛事投注项已存在
  20121. IF EXISTS(SELECT BetID FROM [MatchBet] WHERE BetName = @BetName)
  20122. BEGIN
  20123. SET @RetCode = 12
  20124. SELECT @RetCode AS RetCode
  20125. RETURN
  20126. END
  20127. */
  20128. --赛事球队
  20129. UPDATE
  20130. [MatchBet]
  20131. SET
  20132. SerialNumber = @SerialNumber, BetName = @BetName, BetOdds = @BetOdds
  20133. WHERE
  20134. BetID = @BetID
  20135. IF(@@ROWCOUNT = 0)
  20136. BEGIN
  20137. SET @RetCode = 13
  20138. SELECT @RetCode AS RetCode
  20139. RETURN
  20140. END
  20141. SET @Msg = N'修改赛事投注信息, @BetID=' + LTRIM(STR(@BetID)) + ',@SerialNumber=' + @SerialNumber + ',@BetName=' + @BetName + ',@BetOdds=' + CAST(@BetOdds AS VARCHAR(32))
  20142. --添加日志
  20143. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  20144. --返回信息
  20145. SET @RetCode = 1
  20146. SELECT @RetCode AS RetCode
  20147. RETURN
  20148. END
  20149. GO
  20150. /****** Object: StoredProcedure [dbo].[Manage_Guess_UpdateMatchTeam] Script Date: 2024/1/12 11:01:14 ******/
  20151. SET ANSI_NULLS ON
  20152. GO
  20153. SET QUOTED_IDENTIFIER ON
  20154. GO
  20155. -- EXEC [Manage_Guess_UpdateMatchTeam]
  20156. -- ==============================================
  20157. -- Author: wolf
  20158. -- Create Date: 2023-06-28
  20159. -- Mendor: wolf
  20160. -- Alter Date: 2023-06-28
  20161. -- Description: 竞猜修改赛事球队
  20162. -- ==============================================
  20163. CREATE PROCEDURE [dbo].[Manage_Guess_UpdateMatchTeam]
  20164. @Rid INT, --标识
  20165. @SerialNumber VARCHAR(32), --流水号
  20166. @TeamID INT, --球队ID
  20167. @OpUserID INT, --操作员ID
  20168. @OpUserName VARCHAR(32), --操作员
  20169. @IPAddress VARCHAR(16) --IP地址
  20170. AS
  20171. SET NOCOUNT ON
  20172. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20173. SET XACT_ABORT ON
  20174. BEGIN
  20175. DECLARE @Msg NVARCHAR(4000) --操作描述
  20176. DECLARE @RetCode TINYINT --操作结果
  20177. SET @RetCode = 0
  20178. --赛事不存在
  20179. IF NOT EXISTS(SELECT SerialNumber FROM [Match] WHERE SerialNumber = @SerialNumber)
  20180. BEGIN
  20181. SET @RetCode = 11
  20182. SELECT @RetCode AS RetCode
  20183. RETURN
  20184. END
  20185. --球队不存在
  20186. IF NOT EXISTS(SELECT Id FROM [Team] WHERE Id = @TeamID)
  20187. BEGIN
  20188. SET @RetCode = 12
  20189. SELECT @RetCode AS RetCode
  20190. RETURN
  20191. END
  20192. --赛事球队
  20193. UPDATE
  20194. [MatchTeam]
  20195. SET
  20196. SerialNumber = @SerialNumber, TeamID = @TeamID
  20197. WHERE
  20198. Rid = @Rid
  20199. IF(@@ROWCOUNT = 0)
  20200. BEGIN
  20201. SET @RetCode = 13
  20202. SELECT @RetCode AS RetCode
  20203. RETURN
  20204. END
  20205. SET @Msg = N'修改赛事球队信息, @Rid=' + LTRIM(STR(@Rid)) + ',@SerialNumber=' + @SerialNumber + ',@TeamID=' + LTRIM(STR(@TeamID))
  20206. --添加日志
  20207. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  20208. --返回信息
  20209. SET @RetCode = 1
  20210. SELECT @RetCode AS RetCode
  20211. RETURN
  20212. END
  20213. GO
  20214. /****** Object: StoredProcedure [dbo].[Manage_Guess_UpdateTeam] Script Date: 2024/1/12 11:01:14 ******/
  20215. SET ANSI_NULLS ON
  20216. GO
  20217. SET QUOTED_IDENTIFIER ON
  20218. GO
  20219. -- EXEC [Manage_Guess_UpdateTeam]
  20220. -- ==============================================
  20221. -- Author: wolf
  20222. -- Create Date: 2023-06-28
  20223. -- Mendor: wolf
  20224. -- Alter Date: 2023-06-28
  20225. -- Description: 竞猜球队修改
  20226. -- ==============================================
  20227. CREATE PROCEDURE [dbo].[Manage_Guess_UpdateTeam]
  20228. @Id INT, --球队ID
  20229. @Name NVARCHAR(32), --球队名称
  20230. @Icon VARCHAR(128), --球队图标
  20231. @ShortName NVARCHAR(32), --球队简称
  20232. @OpUserID INT, --操作员ID
  20233. @OpUserName VARCHAR(32), --操作员
  20234. @IPAddress VARCHAR(16) --IP地址
  20235. AS
  20236. SET NOCOUNT ON
  20237. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20238. SET XACT_ABORT ON
  20239. BEGIN
  20240. DECLARE @Msg NVARCHAR(4000) --操作描述
  20241. UPDATE
  20242. [Team]
  20243. SET
  20244. Name = @Name, Icon = @Icon, ShortName = @ShortName
  20245. WHERE
  20246. Id = @Id
  20247. SET @Msg = N'修改球队信息, @Id = ' + LTRIM(STR(@Id)) + ',@Name=' + @Name + ',@Icon=' + @Icon + ',@ShortName=' + @ShortName
  20248. --添加日志
  20249. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  20250. RETURN
  20251. END
  20252. GO
  20253. /****** Object: StoredProcedure [dbo].[Manage_HuaweiOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
  20254. SET ANSI_NULLS ON
  20255. GO
  20256. SET QUOTED_IDENTIFIER ON
  20257. GO
  20258. -- EXEC [Manage_HuaweiOrder_GetList]
  20259. -- ==============================================
  20260. -- Author: wolf
  20261. -- Create Date: 2016-07-21
  20262. -- Mendor: wolf
  20263. -- Alter Date: 2022-11-07
  20264. -- Description: 华为支付--获取订单列表
  20265. -- ==============================================
  20266. CREATE PROCEDURE [dbo].[Manage_HuaweiOrder_GetList]
  20267. @UserID INT, --用户ID
  20268. @BeginTime DATETIME, --开始时间
  20269. @EndTime DATETIME, --截止时间
  20270. @PageIndex INT, --页索引
  20271. @PageSize INT, --页大小
  20272. @RecordCount INT OUTPUT, --总记录数
  20273. @TotalRMBMoney INT OUTPUT, --成功充值数
  20274. @UserCount INT OUTPUT --下订单用户数
  20275. AS
  20276. SET NOCOUNT ON
  20277. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20278. SET XACT_ABORT ON
  20279. BEGIN
  20280. DECLARE @StartRowIndex INT --起始行索引
  20281. DECLARE @EndRowIndex INT --截止行索引
  20282. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  20283. SET @EndRowIndex = @PageIndex * @PageSize
  20284. --创建临时表
  20285. DECLARE @tmptable TABLE(
  20286. OrderID VARCHAR(32) NOT NULL, --订单号
  20287. TradeID VARCHAR(64) NOT NULL, --交易号
  20288. UserID INT NOT NULL, --用户ID
  20289. ProductID VARCHAR(32) NOT NULL, --产品ID
  20290. Price DECIMAL(18, 2) NOT NULL, --价格
  20291. GetStatus TINYINT NOT NULL, --状态
  20292. PartnerID INT NOT NULL, --渠道ID
  20293. IPAddress VARCHAR(16) NOT NULL, --IP地址
  20294. Crdate DATETIME NOT NULL --时间
  20295. )
  20296. --用户ID查询
  20297. IF(@UserID > 0)
  20298. BEGIN
  20299. INSERT INTO @tmptable
  20300. (
  20301. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20302. )
  20303. SELECT
  20304. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20305. FROM
  20306. [huaweiOrder]
  20307. WHERE
  20308. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  20309. ORDER BY
  20310. Crdate DESC
  20311. END
  20312. --所有订单
  20313. ELSE
  20314. BEGIN
  20315. INSERT INTO @tmptable
  20316. (
  20317. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20318. )
  20319. SELECT
  20320. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20321. FROM
  20322. [huaweiOrder]
  20323. WHERE
  20324. Crdate BETWEEN @BeginTime AND @EndTime
  20325. ORDER BY
  20326. Crdate DESC
  20327. END
  20328. --总记录数
  20329. SET @RecordCount = @@ROWCOUNT
  20330. --成功充值总额
  20331. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
  20332. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  20333. ;WITH [List] AS
  20334. (
  20335. SELECT
  20336. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  20337. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20338. FROM
  20339. @tmptable
  20340. )
  20341. --返回信息
  20342. SELECT
  20343. l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
  20344. ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
  20345. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  20346. FROM
  20347. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  20348. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  20349. WHERE
  20350. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  20351. ORDER BY
  20352. l.RowNumber ASC
  20353. RETURN
  20354. END
  20355. GO
  20356. /****** Object: StoredProcedure [dbo].[Manage_Issue_GetList] Script Date: 2024/1/12 11:01:14 ******/
  20357. SET ANSI_NULLS ON
  20358. GO
  20359. SET QUOTED_IDENTIFIER ON
  20360. GO
  20361. -- EXEC [Manage_Issue_GetList]
  20362. -- ==============================================
  20363. -- Author: wolf
  20364. -- Create Date: 2014-12-29
  20365. -- Mendor: wolf
  20366. -- Alter Date: 2015-06-01
  20367. -- Description: 发行统计列表
  20368. -- ==============================================
  20369. CREATE PROCEDURE [dbo].[Manage_Issue_GetList]
  20370. @BeginTime SMALLDATETIME, --开始时间
  20371. @EndTime SMALLDATETIME --截止时间
  20372. AS
  20373. SET NOCOUNT ON
  20374. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20375. SET XACT_ABORT ON
  20376. BEGIN
  20377. SELECT
  20378. Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
  20379. ItemType, ItemName, ItemValue
  20380. FROM
  20381. [IssueStat]
  20382. WHERE
  20383. DateFlag BETWEEN @BeginTime AND @EndTime
  20384. ORDER BY
  20385. DateFlag DESC, ItemType ASC, Rid ASC
  20386. RETURN
  20387. END
  20388. GO
  20389. /****** Object: StoredProcedure [dbo].[Manage_KayaOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
  20390. SET ANSI_NULLS ON
  20391. GO
  20392. SET QUOTED_IDENTIFIER ON
  20393. GO
  20394. -- EXEC [Manage_KayaOrder_GetList]
  20395. -- ==============================================
  20396. -- Author: wolf
  20397. -- Create Date: 2016-07-21
  20398. -- Mendor: wolf
  20399. -- Alter Date: 2022-11-07
  20400. -- Description: KayaPay--获取订单列表
  20401. -- ==============================================
  20402. CREATE PROCEDURE [dbo].[Manage_KayaOrder_GetList]
  20403. @UserID INT, --用户ID
  20404. @BeginTime DATETIME, --开始时间
  20405. @EndTime DATETIME, --截止时间
  20406. @PageIndex INT, --页索引
  20407. @PageSize INT, --页大小
  20408. @RecordCount INT OUTPUT, --总记录数
  20409. @TotalRMBMoney INT OUTPUT, --成功充值数
  20410. @UserCount INT OUTPUT --下订单用户数
  20411. AS
  20412. SET NOCOUNT ON
  20413. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20414. SET XACT_ABORT ON
  20415. BEGIN
  20416. DECLARE @StartRowIndex INT --起始行索引
  20417. DECLARE @EndRowIndex INT --截止行索引
  20418. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  20419. SET @EndRowIndex = @PageIndex * @PageSize
  20420. --创建临时表
  20421. DECLARE @tmptable TABLE(
  20422. OrderID VARCHAR(32) NOT NULL, --订单号
  20423. TradeID VARCHAR(64) NOT NULL, --交易号
  20424. UserID INT NOT NULL, --用户ID
  20425. ProductID VARCHAR(32) NOT NULL, --产品ID
  20426. Price DECIMAL(18, 2) NOT NULL, --价格
  20427. GetStatus TINYINT NOT NULL, --状态
  20428. PartnerID INT NOT NULL, --渠道ID
  20429. IPAddress VARCHAR(16) NOT NULL, --IP地址
  20430. Crdate DATETIME NOT NULL --时间
  20431. )
  20432. --用户ID查询
  20433. IF(@UserID > 0)
  20434. BEGIN
  20435. INSERT INTO @tmptable
  20436. (
  20437. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20438. )
  20439. SELECT
  20440. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20441. FROM
  20442. [KayaOrder]
  20443. WHERE
  20444. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  20445. ORDER BY
  20446. Crdate DESC
  20447. END
  20448. --所有订单
  20449. ELSE
  20450. BEGIN
  20451. INSERT INTO @tmptable
  20452. (
  20453. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20454. )
  20455. SELECT
  20456. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20457. FROM
  20458. [KayaOrder]
  20459. WHERE
  20460. Crdate BETWEEN @BeginTime AND @EndTime
  20461. ORDER BY
  20462. Crdate DESC
  20463. END
  20464. --总记录数
  20465. SET @RecordCount = @@ROWCOUNT
  20466. --成功充值总额
  20467. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
  20468. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  20469. ;WITH [List] AS
  20470. (
  20471. SELECT
  20472. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  20473. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  20474. FROM
  20475. @tmptable
  20476. )
  20477. --返回信息
  20478. SELECT
  20479. l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
  20480. ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
  20481. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  20482. FROM
  20483. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  20484. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  20485. WHERE
  20486. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  20487. ORDER BY
  20488. l.RowNumber ASC
  20489. RETURN
  20490. END
  20491. GO
  20492. /****** Object: StoredProcedure [dbo].[Manage_LabelLiveStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  20493. SET ANSI_NULLS ON
  20494. GO
  20495. SET QUOTED_IDENTIFIER ON
  20496. GO
  20497. -- DECLARE @RecordCount INT
  20498. -- EXEC [Manage_LabelLiveStat_GetList]
  20499. -- @LabelID = '',
  20500. -- @BeginTime = '',
  20501. -- @EndTime = '',
  20502. -- @PageIndex = 1,
  20503. -- @PageSize = 10,
  20504. -- @RecordCount = @RecordCount OUTPUT
  20505. -- SELECT @RecordCount AS RecordCount
  20506. -- ==============================================
  20507. -- Author: wolf
  20508. -- Create Date: 2014-06-11
  20509. -- Mendor: wolf
  20510. -- Alter Date: 2015-03-18
  20511. -- Description: 获取标签留存统计列表
  20512. -- ==============================================
  20513. CREATE PROCEDURE [dbo].[Manage_LabelLiveStat_GetList]
  20514. @LabelID VARCHAR(32), --标签ID
  20515. @BeginTime DATETIME, --起始时间
  20516. @EndTime DATETIME, --结束时间
  20517. @PageIndex INT, --页索引
  20518. @PageSize INT, --页大小
  20519. @RecordCount INT OUTPUT --总记录数
  20520. AS
  20521. SET NOCOUNT ON
  20522. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20523. SET XACT_ABORT ON
  20524. BEGIN
  20525. DECLARE @StartIndex INT --起始索引
  20526. DECLARE @EndIndex INT --截止索引
  20527. --创建临时表
  20528. DECLARE @tmptable TABLE(
  20529. DateFlag SMALLDATETIME NOT NULL, --日期标志
  20530. LabelID VARCHAR(32) NOT NULL, --标签ID
  20531. RegCount INT NOT NULL, --注册用户数
  20532. LiveUsers_1 INT NOT NULL, --次日留存
  20533. LiveUsers_3 INT NOT NULL, --3日留存
  20534. LiveUsers_5 INT NOT NULL, --5日留存
  20535. LiveUsers_7 INT NOT NULL, --7日留存
  20536. LiveUsers_15 INT NOT NULL, --15日留存
  20537. LiveUsers_30 INT NOT NULL --30日留存
  20538. )
  20539. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  20540. SET @EndIndex = @PageIndex * @PageSize
  20541. INSERT INTO @tmptable
  20542. (
  20543. DateFlag, LabelID, RegCount, LiveUsers_1, LiveUsers_3,
  20544. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20545. )
  20546. SELECT
  20547. DateFlag, LabelID, RegCount, LiveUsers_1, LiveUsers_3,
  20548. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20549. FROM
  20550. [LabelLiveStat]
  20551. WHERE
  20552. DateFlag BETWEEN @BeginTime AND @EndTime AND LabelID = @LabelID
  20553. --总记录数
  20554. SET @RecordCount = @@ROWCOUNT
  20555. ;WITH [List] AS
  20556. (
  20557. SELECT
  20558. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, RegCount DESC, LabelID ASC) AS RowNumber,
  20559. DateFlag, LabelID, RegCount, LiveUsers_1, LiveUsers_3,
  20560. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20561. FROM
  20562. @tmptable
  20563. )
  20564. --返回信息
  20565. SELECT
  20566. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, LabelID, RegCount,
  20567. LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20568. FROM
  20569. [List]
  20570. WHERE
  20571. RowNumber BETWEEN @StartIndex AND @EndIndex
  20572. ORDER BY
  20573. RowNumber ASC
  20574. RETURN
  20575. END
  20576. GO
  20577. /****** Object: StoredProcedure [dbo].[Manage_LiveStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  20578. SET ANSI_NULLS ON
  20579. GO
  20580. SET QUOTED_IDENTIFIER ON
  20581. GO
  20582. -- DECLARE @RecordCount INT
  20583. -- EXEC [Manage_LiveStat_GetList]
  20584. -- @PartnerID = 100001,
  20585. -- @BeginTime = '',
  20586. -- @EndTime = '',
  20587. -- @PageIndex = 1,
  20588. -- @PageSize = 10,
  20589. -- @RecordCount = @RecordCount OUTPUT
  20590. -- SELECT @RecordCount AS RecordCount
  20591. -- ==============================================
  20592. -- Author: wolf
  20593. -- Create Date: 2014-06-11
  20594. -- Mendor: wolf
  20595. -- Alter Date: 2015-03-18
  20596. -- Description: 获取留存统计列表
  20597. -- ==============================================
  20598. CREATE PROCEDURE [dbo].[Manage_LiveStat_GetList]
  20599. @PartnerID INT, --合作商ID
  20600. @BeginTime DATETIME, --起始时间
  20601. @EndTime DATETIME, --结束时间
  20602. @PageIndex INT, --页索引
  20603. @PageSize INT, --页大小
  20604. @RecordCount INT OUTPUT --总记录数
  20605. AS
  20606. SET NOCOUNT ON
  20607. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20608. SET XACT_ABORT ON
  20609. BEGIN
  20610. DECLARE @StartIndex INT --起始索引
  20611. DECLARE @EndIndex INT --截止索引
  20612. --创建临时表
  20613. DECLARE @tmptable TABLE(
  20614. DateFlag SMALLDATETIME NOT NULL, --日期标志
  20615. PartnerID INT NOT NULL, --合作商ID
  20616. RegCount INT NOT NULL, --注册用户数
  20617. LiveUsers_1 INT NOT NULL, --次日留存
  20618. LiveUsers_3 INT NOT NULL, --3日留存
  20619. LiveUsers_5 INT NOT NULL, --5日留存
  20620. LiveUsers_7 INT NOT NULL, --7日留存
  20621. LiveUsers_15 INT NOT NULL, --15日留存
  20622. LiveUsers_30 INT NOT NULL --30日留存
  20623. )
  20624. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  20625. SET @EndIndex = @PageIndex * @PageSize
  20626. --所有合作商
  20627. IF(@PartnerID = 0)
  20628. BEGIN
  20629. INSERT INTO @tmptable
  20630. (
  20631. DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
  20632. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20633. )
  20634. SELECT
  20635. DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
  20636. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20637. FROM
  20638. [LiveStat]
  20639. WHERE
  20640. DateFlag BETWEEN @BeginTime AND @EndTime
  20641. END
  20642. ELSE
  20643. BEGIN
  20644. INSERT INTO @tmptable
  20645. (
  20646. DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
  20647. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20648. )
  20649. SELECT
  20650. DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
  20651. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20652. FROM
  20653. [LiveStat]
  20654. WHERE
  20655. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  20656. END
  20657. --总记录数
  20658. SET @RecordCount = @@ROWCOUNT
  20659. ;WITH [List] AS
  20660. (
  20661. SELECT
  20662. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, RegCount DESC, PartnerID ASC) AS RowNumber,
  20663. DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
  20664. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20665. FROM
  20666. @tmptable
  20667. )
  20668. --返回信息
  20669. SELECT
  20670. CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag,
  20671. CASE
  20672. WHEN l.PartnerID = 1 THEN N'所有渠道'
  20673. ELSE ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID)))
  20674. END AS PartnerName,
  20675. RegCount, LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  20676. FROM
  20677. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  20678. WHERE
  20679. l.RowNumber BETWEEN @StartIndex AND @EndIndex
  20680. ORDER BY
  20681. l.RowNumber ASC
  20682. RETURN
  20683. END
  20684. GO
  20685. /****** Object: StoredProcedure [dbo].[Manage_LiveStat_GetListByPartner] Script Date: 2024/1/12 11:01:14 ******/
  20686. SET ANSI_NULLS ON
  20687. GO
  20688. SET QUOTED_IDENTIFIER ON
  20689. GO
  20690. -- DECLARE @RecordCount INT
  20691. -- EXEC [Manage_LiveStat_GetListByPartner]
  20692. -- @PartnerID = 100001,
  20693. -- @BeginTime = '',
  20694. -- @EndTime = '',
  20695. -- @PageIndex = 1,
  20696. -- @PageSize = 10,
  20697. -- @RecordCount = @RecordCount OUTPUT
  20698. -- SELECT @RecordCount AS RecordCount
  20699. -- ==============================================
  20700. -- Author: wolf
  20701. -- Create Date: 2014-10-27
  20702. -- Mendor: wolf
  20703. -- Alter Date: 2014-10-27
  20704. -- Description: 获取留存统计列表
  20705. -- ==============================================
  20706. CREATE PROCEDURE [dbo].[Manage_LiveStat_GetListByPartner]
  20707. @PartnerID INT, --合作商ID
  20708. @BeginTime DATETIME, --起始时间
  20709. @EndTime DATETIME, --结束时间
  20710. @PageIndex INT, --页索引
  20711. @PageSize INT, --页大小
  20712. @RecordCount INT OUTPUT --总记录数
  20713. AS
  20714. SET NOCOUNT ON
  20715. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20716. SET XACT_ABORT ON
  20717. BEGIN
  20718. DECLARE @StartIndex INT --起始索引
  20719. DECLARE @EndIndex INT --截止索引
  20720. --创建临时表
  20721. CREATE TABLE #tmptable(
  20722. DateFlag SMALLDATETIME NOT NULL, --日期标志
  20723. PartnerID INT NOT NULL, --合作商ID
  20724. CreateUsers_1 INT NOT NULL, --昨天创建用户数
  20725. LiveUsers_1 INT NOT NULL, --昨天创建,今天还登录的用户数
  20726. CreateUsers_3 INT NOT NULL, --3天前创建用户数
  20727. LiveUsers_3 INT NOT NULL, --3天前创建,今天还登录的用户数
  20728. CreateUsers_7 INT NOT NULL, --7天前创建创建用户数
  20729. LiveUsers_7 INT NOT NULL, --7天前创建,今天还登录的用户数
  20730. CreateUsers_15 INT NOT NULL, --15天前创建用户数
  20731. LiveUsers_15 INT NOT NULL, --15天前创建,今天还登录的用户数
  20732. CreateUsers_30 INT NOT NULL, --30天前创建用户数
  20733. LiveUsers_30 INT NOT NULL --30天前创建,今天还登录的用户数
  20734. )
  20735. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  20736. SET @EndIndex = @PageIndex * @PageSize
  20737. --某个合作商
  20738. IF(@PartnerID > 0)
  20739. BEGIN
  20740. INSERT INTO #tmptable
  20741. (
  20742. DateFlag, PartnerID, CreateUsers_1, LiveUsers_1,
  20743. CreateUsers_3, LiveUsers_3, CreateUsers_7, LiveUsers_7,
  20744. CreateUsers_15, LiveUsers_15, CreateUsers_30, LiveUsers_30
  20745. )
  20746. SELECT
  20747. DateFlag, PartnerID, CreateUsers_1, LiveUsers_1,
  20748. CreateUsers_3, LiveUsers_3, CreateUsers_7, LiveUsers_7,
  20749. CreateUsers_15, LiveUsers_15, CreateUsers_30, LiveUsers_30
  20750. FROM
  20751. [LiveStat]
  20752. WHERE
  20753. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  20754. --总记录数
  20755. SET @RecordCount = @@ROWCOUNT
  20756. END
  20757. ELSE
  20758. BEGIN
  20759. INSERT INTO #tmptable
  20760. (
  20761. DateFlag, PartnerID, CreateUsers_1, LiveUsers_1,
  20762. CreateUsers_3, LiveUsers_3, CreateUsers_7, LiveUsers_7,
  20763. CreateUsers_15, LiveUsers_15, CreateUsers_30, LiveUsers_30
  20764. )
  20765. SELECT
  20766. DateFlag, PartnerID, SUM(CreateUsers_1), SUM(LiveUsers_1),
  20767. SUM(CreateUsers_3), SUM(LiveUsers_3), SUM(CreateUsers_7), SUM(LiveUsers_7),
  20768. SUM(CreateUsers_15), SUM(LiveUsers_15), SUM(CreateUsers_30), SUM(LiveUsers_30)
  20769. FROM
  20770. [LiveStat]
  20771. WHERE
  20772. DateFlag BETWEEN @BeginTime AND @EndTime
  20773. GROUP BY
  20774. DateFlag, PartnerID
  20775. --总记录数
  20776. SET @RecordCount = @@ROWCOUNT
  20777. END
  20778. ;WITH [List] AS
  20779. (
  20780. SELECT
  20781. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, CreateUsers_1 DESC, LiveUsers_1 DESC) AS RowNumber,
  20782. DateFlag, PartnerID, CreateUsers_1, LiveUsers_1,
  20783. CreateUsers_3, LiveUsers_3, CreateUsers_7, LiveUsers_7,
  20784. CreateUsers_15, LiveUsers_15, CreateUsers_30, LiveUsers_30
  20785. FROM
  20786. #tmptable
  20787. )
  20788. --返回信息
  20789. SELECT
  20790. CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.CreateUsers_1, l.LiveUsers_1,
  20791. CAST(CAST(l.LiveUsers_1 * 100.00 / CASE WHEN l.CreateUsers_1 = 0 THEN 1 ELSE l.CreateUsers_1 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_1,
  20792. l.CreateUsers_3, l.LiveUsers_3, CAST(CAST(l.LiveUsers_3 * 100.00 / CASE WHEN l.CreateUsers_3 = 0 THEN 1 ELSE l.CreateUsers_3 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_3,
  20793. l.CreateUsers_7, l.LiveUsers_7, CAST(CAST(l.LiveUsers_7 * 100.00 / CASE WHEN l.CreateUsers_7 = 0 THEN 1 ELSE l.CreateUsers_7 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_7,
  20794. l.CreateUsers_15, l.LiveUsers_15, CAST(CAST(l.LiveUsers_15 * 100.00 / CASE WHEN l.CreateUsers_15 = 0 THEN 1 ELSE l.CreateUsers_15 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_15,
  20795. l.CreateUsers_30, l.LiveUsers_30, CAST(CAST(l.LiveUsers_30 * 100.00 / CASE WHEN l.CreateUsers_30 = 0 THEN 1 ELSE l.CreateUsers_30 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_30,
  20796. ISNULL(p.PartnerName, N'所有渠道') AS PartnerName
  20797. FROM
  20798. [List] l INNER JOIN [Partner] p ON l.PartnerID = p.PartnerID
  20799. WHERE
  20800. l.RowNumber BETWEEN @StartIndex AND @EndIndex
  20801. ORDER BY
  20802. l.RowNumber ASC
  20803. --删除临时表
  20804. DROP TABLE #tmptable
  20805. RETURN
  20806. END
  20807. GO
  20808. /****** Object: StoredProcedure [dbo].[Manage_MachineUser_Reg] Script Date: 2024/1/12 11:01:14 ******/
  20809. SET ANSI_NULLS ON
  20810. GO
  20811. SET QUOTED_IDENTIFIER ON
  20812. GO
  20813. -- EXEC [Manage_MachineUser_Reg]
  20814. -- ==============================================
  20815. -- Author: wolf
  20816. -- Create Date: 2015-03-13
  20817. -- Mendor: wolf
  20818. -- Alter Date: 2017-02-16
  20819. -- Description: 注册机器人
  20820. -- ==============================================
  20821. CREATE PROCEDURE [dbo].[Manage_MachineUser_Reg]
  20822. @NickName NVARCHAR(32), --昵称
  20823. @FaceUrl VARCHAR(1024), --头像地址
  20824. @Sex TINYINT --性别 0=默认(无) 1=男 2=女
  20825. AS
  20826. SET NOCOUNT ON
  20827. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20828. SET XACT_ABORT ON
  20829. BEGIN
  20830. DECLARE @IMei VARCHAR(64) --IMei
  20831. DECLARE @PartnerID INT --渠道ID
  20832. DECLARE @IPAddress VARCHAR(16)
  20833. DECLARE @CurrTime DATETIME --System当前时间
  20834. DECLARE @Count SMALLINT --计数器
  20835. DECLARE @RetCode INT --返回值
  20836. DECLARE @Rnd INT --随机数
  20837. DECLARE @UserID INT --用户ID
  20838. DECLARE @FaceID SMALLINT --脸谱ID(-1=玩家上传头像)
  20839. DECLARE @EPassword VARCHAR(32) --MD5密文
  20840. DECLARE @Msg NVARCHAR(4000) --消息
  20841. SET @CurrTime = GETDATE()
  20842. SET @PartnerID = 0
  20843. SET @IPAddress = '127.0.0.1'
  20844. SET @UserID = 0
  20845. SET @FaceID = 0
  20846. SET @RetCode = 0
  20847. SET @IMei = NEWID()
  20848. --用户信息
  20849. SELECT @UserID = UserID FROM [AllUser] WHERE NickName = @NickName AND RegIP = '127.0.0.1'
  20850. --用户id存在
  20851. IF(@UserID > 0)
  20852. BEGIN
  20853. --自定义头像路径为空信息
  20854. IF(LEN(@FaceUrl) = 0)
  20855. BEGIN
  20856. --1=男
  20857. IF(@Sex = 1)
  20858. BEGIN
  20859. --随机头像,男性头像 1-5=普通头像, 6-10=vip头像
  20860. EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 5, @Rnd = @FaceID OUTPUT
  20861. END
  20862. --2=女
  20863. ELSE IF(@Sex = 2)
  20864. BEGIN
  20865. --随机头像,女性头像 11-15=普通头像, 16-20=vip头像
  20866. EXEC [Game_Rand_GetRnd] @Min = 11, @Max = 15, @Rnd = @FaceID OUTPUT
  20867. END
  20868. END
  20869. --头像修改
  20870. UPDATE [UserFace] SET FaceID = @FaceID, FaceUrl = @FaceUrl WHERE UserID = @UserID
  20871. --操作成功
  20872. SET @RetCode = 1
  20873. SELECT @RetCode AS RetCode
  20874. RETURN
  20875. END
  20876. SET @Count = 0
  20877. --遍历100次
  20878. WHILE(@Count < 100)
  20879. BEGIN
  20880. --计数器+1
  20881. SET @Count = @Count + 1
  20882. --生成随机数
  20883. EXEC [Game_Rand_GetRnd] @Min = 1000000, @Max = 99999999, @Rnd = @Rnd OUTPUT
  20884. --判断是否存在
  20885. IF NOT EXISTS(SELECT UserID FROM [UserIdentity] WHERE UserID = @Rnd)
  20886. BEGIN
  20887. --添加
  20888. INSERT INTO [UserIdentity](UserID, IMei) VALUES(@Rnd, @IMei)
  20889. --用户ID
  20890. SET @UserID = @Rnd
  20891. BREAK
  20892. END
  20893. SET @Msg = N'注册机器人生成帐号异常,UserID重复!关联的信息:@IMei=' + @IMei + ',@NickName=' + @NickName +
  20894. ',@PartnerID=' + LTRIM(STR(@PartnerID)) + ',@Count=' + LTRIM(STR(@Count))
  20895. --添加日志
  20896. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
  20897. END
  20898. --生成MD5密码
  20899. SET @EPassword = dbo.fn_MD5('89020BB5-7F1D-499E-B9B4-40B79B3C3EBC')
  20900. --昵称为空的情况
  20901. IF(LEN(@NickName) <= 0)
  20902. BEGIN
  20903. SET @NickName = 'Guest' + LTRIM(STR(@UserID))
  20904. END
  20905. --新昵称(过滤特殊字符: ', <, >)
  20906. SET @NickName = Replace(Replace(Replace(@NickName, '<', ''), '''', ''),'>','')
  20907. --生成用户信息
  20908. INSERT INTO [AllUser]
  20909. (
  20910. UserID, NickName, PartnerID, IMei, EPassword, RegTime, RegIP,
  20911. LoginTime, IPAddress, PayMoney, deviceid, RegPartnerID, UserWords,
  20912. DeviceName, Version
  20913. )
  20914. VALUES
  20915. (
  20916. @UserID, @NickName, @PartnerID, @IMei, @EPassword, @CurrTime, @IPAddress,
  20917. @CurrTime, @IPAddress, 0, @IMei, @PartnerID, '',
  20918. '', 0
  20919. )
  20920. --性别为空,则随机
  20921. IF(@Sex IS NULL OR @Sex = 0)
  20922. BEGIN
  20923. --随机性别
  20924. EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 2, @Rnd = @Sex OUTPUT
  20925. --随机头像
  20926. IF(LEN(@FaceUrl) <= 0)
  20927. BEGIN
  20928. --1=男
  20929. IF(@Sex = 1)
  20930. BEGIN
  20931. --随机头像,男性头像1-4
  20932. EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 4, @Rnd = @FaceID OUTPUT
  20933. END
  20934. --2=女
  20935. ELSE IF(@Sex = 2)
  20936. BEGIN
  20937. --随机头像,女性头像5-8
  20938. EXEC [Game_Rand_GetRnd] @Min = 5, @Max = 8, @Rnd = @FaceID OUTPUT
  20939. END
  20940. END
  20941. END
  20942. --头像
  20943. INSERT INTO [UserFace](UserID, FaceID, FaceUrl, Sex) VALUES(@UserID, @FaceID, @FaceUrl, @Sex)
  20944. --机器人
  20945. INSERT INTO [MachineUser]
  20946. (
  20947. UserID, LoginName, Password, BatchID, WriteTime, Levels1, Levels2, Levels3
  20948. )
  20949. VALUES
  20950. (
  20951. @UserID, @NickName, @EPassword, 0, @CurrTime, 1, 2, 3
  20952. )
  20953. --操作成功
  20954. SET @RetCode = 1
  20955. SELECT @RetCode AS RetCode
  20956. RETURN
  20957. END
  20958. GO
  20959. /****** Object: StoredProcedure [dbo].[Manage_ManualPay_GetList] Script Date: 2024/1/12 11:01:14 ******/
  20960. SET ANSI_NULLS ON
  20961. GO
  20962. SET QUOTED_IDENTIFIER ON
  20963. GO
  20964. -- EXEC [Manage_ManualPay_GetList]
  20965. -- ==============================================
  20966. -- Author: wolf
  20967. -- Create Date: 2016-07-21
  20968. -- Mendor: wolf
  20969. -- Alter Date: 2016-11-07
  20970. -- Description: 手动充值列表
  20971. -- ==============================================
  20972. CREATE PROCEDURE [dbo].[Manage_ManualPay_GetList]
  20973. @UserID INT, --用户ID
  20974. @BeginTime DATETIME, --开始时间
  20975. @EndTime DATETIME, --截止时间
  20976. @PageIndex INT, --页索引
  20977. @PageSize INT, --页大小
  20978. @RecordCount INT OUTPUT, --总记录数
  20979. @TotalRMBMoney INT OUTPUT, --成功充值数
  20980. @UserCount INT OUTPUT --下订单用户数
  20981. AS
  20982. SET NOCOUNT ON
  20983. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  20984. SET XACT_ABORT ON
  20985. BEGIN
  20986. DECLARE @StartRowIndex INT --起始行索引
  20987. DECLARE @EndRowIndex INT --截止行索引
  20988. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  20989. SET @EndRowIndex = @PageIndex * @PageSize
  20990. --创建临时表
  20991. DECLARE @tmptable TABLE(
  20992. OrderID VARCHAR(32) NOT NULL, --订单号
  20993. UserID INT NOT NULL, --用户ID
  20994. ProductID VARCHAR(32) NOT NULL, --产品ID
  20995. Price DECIMAL(18, 2) NOT NULL, --价格
  20996. OpUserID INT NOT NULL, --操作员ID
  20997. OpUserName VARCHAR(32) NOT NULL, --操作员名称
  20998. Crdate DATETIME NOT NULL --时间
  20999. )
  21000. --用户ID查询
  21001. IF(@UserID > 0)
  21002. BEGIN
  21003. INSERT INTO @tmptable
  21004. (
  21005. OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
  21006. )
  21007. SELECT
  21008. OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
  21009. FROM
  21010. [ManualPay]
  21011. WHERE
  21012. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  21013. ORDER BY
  21014. Crdate DESC
  21015. END
  21016. --所有订单
  21017. ELSE
  21018. BEGIN
  21019. INSERT INTO @tmptable
  21020. (
  21021. OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
  21022. )
  21023. SELECT
  21024. OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
  21025. FROM
  21026. [ManualPay]
  21027. WHERE
  21028. Crdate BETWEEN @BeginTime AND @EndTime
  21029. ORDER BY
  21030. Crdate DESC
  21031. END
  21032. --总记录数
  21033. SET @RecordCount = @@ROWCOUNT
  21034. --成功充值总额
  21035. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable), 0)
  21036. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  21037. ;WITH [List] AS
  21038. (
  21039. SELECT
  21040. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  21041. OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
  21042. FROM
  21043. @tmptable
  21044. )
  21045. --返回信息
  21046. SELECT
  21047. l.OrderID, l.UserID, u.NickName, l.ProductID, l.Price, l.OpUserID, l.OpUserName,
  21048. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  21049. FROM
  21050. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  21051. WHERE
  21052. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  21053. ORDER BY
  21054. l.RowNumber ASC
  21055. RETURN
  21056. END
  21057. GO
  21058. /****** Object: StoredProcedure [dbo].[Manage_MatchCard_Gen] Script Date: 2024/1/12 11:01:14 ******/
  21059. SET ANSI_NULLS ON
  21060. GO
  21061. SET QUOTED_IDENTIFIER ON
  21062. GO
  21063. -- EXEC [Manage_MatchCard_Gen]
  21064. -- ==============================================
  21065. -- Author: wolf
  21066. -- Create Date: 2014-12-29
  21067. -- Mendor: wolf
  21068. -- Alter Date: 2015-06-01
  21069. -- Description: 比赛卡生成
  21070. -- ==============================================
  21071. CREATE PROCEDURE [dbo].[Manage_MatchCard_Gen]
  21072. @OpUserID INT, --操作员ID
  21073. @OpUserName VARCHAR(32), --操作员名称
  21074. @OpenTime DATETIME, --开始时间
  21075. @ExpireTime DATETIME, --过期时间
  21076. @TimeMemo NVARCHAR(1024), --时间描述
  21077. @SceneMemo NVARCHAR(2048), --场地描述
  21078. @IPAddress VARCHAR(16) --IP地址
  21079. AS
  21080. SET NOCOUNT ON
  21081. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21082. SET XACT_ABORT ON
  21083. BEGIN
  21084. DECLARE @CardNo VARCHAR(32) --卡号
  21085. DECLARE @Rnd INT --随机数
  21086. DECLARE @RetCode TINYINT --操作结果
  21087. DECLARE @Msg NVARCHAR(4000) --操作描述
  21088. SET @RetCode = 0
  21089. SET @CardNo = 0
  21090. WHILE(1=1)
  21091. BEGIN
  21092. --生成随机数
  21093. EXEC [Game_Rand_GetRnd] @Min = 100000, @Max = 999999, @Rnd = @Rnd OUTPUT
  21094. --判断是否已生成
  21095. IF EXISTS(SELECT CardNo FROM [MatchCard] WHERE CardNo = @Rnd)
  21096. BEGIN
  21097. CONTINUE
  21098. END
  21099. --卡号
  21100. SET @CardNo = 'M' + LTRIM(STR(@Rnd))
  21101. BREAK
  21102. END
  21103. --生成兑换卡
  21104. INSERT INTO [MatchCard]
  21105. (
  21106. CardNo, OpenTime, ExpireTime, TimeMemo, SceneMemo, UseTimes, Crdate
  21107. )
  21108. VALUES
  21109. (
  21110. @CardNo, @OpenTime, @ExpireTime, @TimeMemo, @SceneMemo, 0, GETDATE()
  21111. )
  21112. --添加日志
  21113. SET @Msg = N'比赛卡生成成功,关联的信息:@CardNo=' + @CardNo + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
  21114. ',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@TimeMemo=' + @TimeMemo + ',@SceneMemo=' + @SceneMemo
  21115. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  21116. --操作结果
  21117. SET @RetCode = 1
  21118. SELECT @RetCode AS RetCode
  21119. RETURN
  21120. END
  21121. GO
  21122. /****** Object: StoredProcedure [dbo].[Manage_MatchCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
  21123. SET ANSI_NULLS ON
  21124. GO
  21125. SET QUOTED_IDENTIFIER ON
  21126. GO
  21127. -- EXEC [Manage_MatchCard_GetList]
  21128. -- ==============================================
  21129. -- Author: wolf
  21130. -- Create Date: 2014-12-29
  21131. -- Mendor: wolf
  21132. -- Alter Date: 2015-06-01
  21133. -- Description: 比赛卡列表
  21134. -- ==============================================
  21135. CREATE PROCEDURE [dbo].[Manage_MatchCard_GetList]
  21136. @CardNo VARCHAR(32) --卡号
  21137. AS
  21138. SET NOCOUNT ON
  21139. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21140. SET XACT_ABORT ON
  21141. BEGIN
  21142. --获取某卡号
  21143. IF(LEN(@CardNo) > 0)
  21144. BEGIN
  21145. SELECT
  21146. CardNo, UseTimes, CONVERT(VARCHAR(20), OpenTime, 120) AS OpenTime,
  21147. CONVERT(VARCHAR(20), ExpireTime, 120) AS ExpireTime,
  21148. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate,
  21149. TimeMemo, SceneMemo
  21150. FROM
  21151. [MatchCard]
  21152. WHERE
  21153. CardNo = @CardNo
  21154. RETURN
  21155. END
  21156. --比赛卡
  21157. SELECT
  21158. CardNo, UseTimes, CONVERT(VARCHAR(20), OpenTime, 120) AS OpenTime,
  21159. CONVERT(VARCHAR(20), ExpireTime, 120) AS ExpireTime,
  21160. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate,
  21161. TimeMemo, SceneMemo
  21162. FROM
  21163. [MatchCard]
  21164. ORDER BY
  21165. ExpireTime DESC, Crdate DESC
  21166. RETURN
  21167. END
  21168. GO
  21169. /****** Object: StoredProcedure [dbo].[Manage_MatchCard_Update] Script Date: 2024/1/12 11:01:14 ******/
  21170. SET ANSI_NULLS ON
  21171. GO
  21172. SET QUOTED_IDENTIFIER ON
  21173. GO
  21174. -- EXEC [Manage_MatchCard_Update]
  21175. -- ==============================================
  21176. -- Author: wolf
  21177. -- Create Date: 2014-12-29
  21178. -- Mendor: wolf
  21179. -- Alter Date: 2015-06-01
  21180. -- Description: 比赛卡修改
  21181. -- ==============================================
  21182. CREATE PROCEDURE [dbo].[Manage_MatchCard_Update]
  21183. @OpUserID INT, --操作员ID
  21184. @OpUserName VARCHAR(32), --操作员名称
  21185. @CardNo VARCHAR(32), --卡号
  21186. @OpenTime DATETIME, --开始时间
  21187. @ExpireTime DATETIME, --过期时间
  21188. @TimeMemo NVARCHAR(1024), --时间描述
  21189. @SceneMemo NVARCHAR(2048), --场地描述
  21190. @IPAddress VARCHAR(16) --IP地址
  21191. AS
  21192. SET NOCOUNT ON
  21193. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21194. SET XACT_ABORT ON
  21195. BEGIN
  21196. DECLARE @RetCode TINYINT --操作结果
  21197. DECLARE @Msg NVARCHAR(4000) --操作描述
  21198. SET @RetCode = 0
  21199. UPDATE
  21200. [MatchCard]
  21201. SET
  21202. OpenTime = @OpenTime, ExpireTime = @ExpireTime,
  21203. TimeMemo = @TimeMemo, SceneMemo = @SceneMemo
  21204. WHERE
  21205. CardNO = @CardNo
  21206. --修改失败
  21207. IF(@@ROWCOUNT = 0)
  21208. BEGIN
  21209. --添加日志
  21210. SET @Msg = N'比赛卡修改失败,关联的信息:@CardNo=' + @CardNo + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
  21211. ',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@TimeMemo=' + @TimeMemo + ',@SceneMemo=' + @SceneMemo
  21212. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  21213. --操作结果
  21214. SET @RetCode = 11
  21215. SELECT @RetCode AS RetCode
  21216. END
  21217. --添加日志
  21218. SET @Msg = N'比赛卡修改成功,关联的信息:@CardNo=' + @CardNo + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
  21219. ',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@TimeMemo=' + @TimeMemo + ',@SceneMemo=' + @SceneMemo
  21220. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  21221. --操作结果
  21222. SET @RetCode = 1
  21223. SELECT @RetCode AS RetCode
  21224. RETURN
  21225. END
  21226. GO
  21227. /****** Object: StoredProcedure [dbo].[Manage_MatchData_GetJoinList] Script Date: 2024/1/12 11:01:14 ******/
  21228. SET ANSI_NULLS ON
  21229. GO
  21230. SET QUOTED_IDENTIFIER ON
  21231. GO
  21232. -- EXEC [Manage_MatchData_GetJoinList]
  21233. -- @SerialNumber = '0'
  21234. -- @UserID = 0
  21235. -- @IsAward = -1
  21236. -- @BeginTime = '2023-08-01 00:00:00'
  21237. -- @EndTime = '2023-08-31 23:59:59'
  21238. -- @PageIndex = 1
  21239. -- @PageSize = 50
  21240. -- @RecordCount = 0
  21241. -- ==============================================
  21242. -- Author: wolf
  21243. -- Create Date: 2023-08-18
  21244. -- Mendor: wolf
  21245. -- Alter Date: 2023-08-18
  21246. -- Description: 获取加入的名单
  21247. -- ==============================================
  21248. CREATE PROCEDURE [dbo].[Manage_MatchData_GetJoinList]
  21249. @SerialNumber VARCHAR(32), --比赛场次
  21250. @UserID INT, --用户ID
  21251. @IsAward INT, --是否获奖(-1=全部,0=否,1=是)
  21252. @BeginTime DATETIME, -- 开始时间
  21253. @EndTime DATETIME, -- 结束时间
  21254. @PageIndex INT, -- 页索引
  21255. @PageSize INT, -- 页大小
  21256. @RecordCount INT OUTPUT --记录数
  21257. AS
  21258. SET NOCOUNT ON
  21259. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21260. SET XACT_ABORT ON
  21261. BEGIN
  21262. DECLARE @StartRowIndex INT -- 起始行索引
  21263. DECLARE @EndRowIndex INT -- 截止行索引
  21264. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  21265. SET @EndRowIndex = @PageIndex * @PageSize
  21266. DECLARE @tmptable TABLE(
  21267. SerialNumber VARCHAR(32) NOT NULL, --比赛场次
  21268. GameID INT NOT NULL, --比赛ID
  21269. Rank INT NOT NULL, --排名
  21270. UserID INT NOT NULL, --用户ID
  21271. ItemID INT NOT NULL, --道具ID(报名道具)
  21272. ItemCount INT NOT NULL, --报名道具的数量
  21273. EnrollTime DATETIME NOT NULL, --报名时间
  21274. Score INT NOT NULL, --分数
  21275. Prize VARCHAR(128) NOT NULL, --奖品
  21276. RobotID INT NOT NULL --机器人ID
  21277. )
  21278. INSERT INTO @tmptable
  21279. (
  21280. SerialNumber, GameID, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, RobotID
  21281. )
  21282. SELECT
  21283. SerialNumber, GameID, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, 0
  21284. FROM
  21285. [MatchDataUserList]
  21286. WHERE
  21287. EnrollTime BETWEEN @BeginTime AND @EndTime
  21288. AND SerialNumber = CASE -- 指定赛事场次
  21289. WHEN @SerialNumber != '' THEN @SerialNumber
  21290. ELSE SerialNumber
  21291. END
  21292. AND UserID = CASE -- 指定用户ID
  21293. WHEN @UserID > 0 THEN @UserID
  21294. ELSE UserID
  21295. END
  21296. AND Prize = CASE -- 指定是否获奖
  21297. WHEN @IsAward = 0 THEN '' --没获奖
  21298. WHEN @IsAward = 1 THEN CASE --获奖
  21299. WHEN Prize != '' THEN Prize
  21300. ELSE '0'
  21301. END
  21302. ELSE Prize END --默认所有
  21303. -- 修改临时表变量机器人ID
  21304. UPDATE t SET t.RobotID = ISNULL(m.UserID, 0) FROM @tmptable AS t INNER JOIN [MachineUser] AS m ON t.UserID = m.UserID
  21305. -- 记录数,过滤掉机器人
  21306. SELECT @RecordCount = COUNT(*) FROM @tmptable WHERE RobotID = 0
  21307. ;WITH [List] AS
  21308. (
  21309. SELECT
  21310. ROW_NUMBER() OVER(ORDER BY
  21311. SerialNumber DESC,
  21312. CASE WHEN [Rank] <= 0 THEN 9999 ELSE [Rank] END ASC,
  21313. EnrollTime DESC) AS RowNumber,
  21314. SerialNumber, GameID, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, RobotID
  21315. FROM
  21316. @tmptable
  21317. WHERE
  21318. RobotID = 0
  21319. )
  21320. -- 返回信息
  21321. SELECT
  21322. l.SerialNumber, l.Rank, l.UserID, u.NickName, l.ItemID, l.ItemCount, g.ChineseName,
  21323. CONVERT(CHAR(20), l.EnrollTime, 120) AS EnrollTime, l.Score, l.Prize, l.RobotID
  21324. FROM
  21325. [List] AS l
  21326. INNER JOIN [AllGame] AS g ON l.GameID = g.GameID
  21327. INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
  21328. WHERE
  21329. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  21330. ORDER BY
  21331. l.RowNumber ASC
  21332. RETURN
  21333. END
  21334. GO
  21335. /****** Object: StoredProcedure [dbo].[Manage_MatchData_GetJoinTotalFee] Script Date: 2024/1/12 11:01:14 ******/
  21336. SET ANSI_NULLS ON
  21337. GO
  21338. SET QUOTED_IDENTIFIER ON
  21339. GO
  21340. -- EXEC [Manage_MatchData_GetJoinTotalFee]
  21341. -- @SerialNumber = 0
  21342. -- ==============================================
  21343. -- Author: wolf
  21344. -- Create Date: 2023-08-18
  21345. -- Mendor: wolf
  21346. -- Alter Date: 2023-08-18
  21347. -- Description: 获取加入的总费用
  21348. -- ==============================================
  21349. CREATE PROCEDURE [dbo].[Manage_MatchData_GetJoinTotalFee]
  21350. @SerialNumber VARCHAR(32) --比赛场次
  21351. AS
  21352. SET NOCOUNT ON
  21353. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21354. SET XACT_ABORT ON
  21355. BEGIN
  21356. -- 返回信息
  21357. SELECT
  21358. ItemID, SUM(ItemCount) AS ItemCount
  21359. FROM
  21360. [MatchDataUserList]
  21361. WHERE
  21362. SerialNumber = @SerialNumber
  21363. GROUP BY
  21364. ItemID
  21365. RETURN
  21366. END
  21367. GO
  21368. /****** Object: StoredProcedure [dbo].[Manage_MatchData_GetStatistics] Script Date: 2024/1/12 11:01:14 ******/
  21369. SET ANSI_NULLS ON
  21370. GO
  21371. SET QUOTED_IDENTIFIER ON
  21372. GO
  21373. -- EXEC [Manage_MatchData_GetStatistics]
  21374. -- @SerialNumber = '0'
  21375. -- @BeginTime = '2023-08-01 00:00:00'
  21376. -- @EndTime = '2023-08-31 23:59:59'
  21377. -- @PageIndex = 1
  21378. -- @PageSize = 50
  21379. -- @RecordCount = 0
  21380. -- ==============================================
  21381. -- Author: wolf
  21382. -- Create Date: 2023-08-18
  21383. -- Mendor: wolf
  21384. -- Alter Date: 2023-08-18
  21385. -- Description: 获取赛事数据统计
  21386. -- ==============================================
  21387. CREATE PROCEDURE [dbo].[Manage_MatchData_GetStatistics]
  21388. @SerialNumber VARCHAR(32), --比赛场次
  21389. @BeginTime DATETIME, -- 开始时间
  21390. @EndTime DATETIME, -- 结束时间
  21391. @PageIndex INT, -- 页索引
  21392. @PageSize INT, -- 页大小
  21393. @RecordCount INT OUTPUT --记录数
  21394. AS
  21395. SET NOCOUNT ON
  21396. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21397. SET XACT_ABORT ON
  21398. BEGIN
  21399. DECLARE @StartRowIndex INT -- 起始行索引
  21400. DECLARE @EndRowIndex INT -- 截止行索引
  21401. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  21402. SET @EndRowIndex = @PageIndex * @PageSize
  21403. DECLARE @tmptable TABLE(
  21404. SerialNumber VARCHAR(32) NOT NULL, --比赛场次
  21405. GameID INT NOT NULL, --游戏ID
  21406. EnrollFee VARCHAR(256) NOT NULL, --报名费(存在多种报名方式)[ItemId, Count]
  21407. MaxUserCount INT NOT NULL, --最多报名人数
  21408. TableUserCount INT NOT NULL, --每张桌子人数
  21409. JoinUserCount INT NOT NULL, --加入的用户数
  21410. StartTime DATETIME NOT NULL, --开始时间
  21411. EndTime DATETIME NOT NULL --结束时间
  21412. )
  21413. --临时表变量用户参与记录
  21414. DECLARE @participateTable TABLE(
  21415. SerialNumber VARCHAR(32) NOT NULL, --比赛场次
  21416. UserCount INT NOT NULL --用户数量
  21417. )
  21418. INSERT INTO @tmptable
  21419. (
  21420. SerialNumber, GameID, EnrollFee, MaxUserCount, TableUserCount, JoinUserCount, StartTime, EndTime
  21421. )
  21422. SELECT
  21423. SerialNumber, GameID, EnrollFee, MaxUserCount, TableUserCount, JoinUserCount, StartTime, EndTime
  21424. FROM
  21425. [MatchDataStatistics]
  21426. WHERE
  21427. StartTime BETWEEN @BeginTime AND @EndTime
  21428. AND SerialNumber = CASE -- 指定某个场次的赛事
  21429. WHEN @SerialNumber != '' THEN @SerialNumber
  21430. ELSE SerialNumber
  21431. END
  21432. -- 记录数
  21433. SET @RecordCount = @@ROWCOUNT
  21434. INSERT INTO @participateTable
  21435. (
  21436. SerialNumber, UserCount
  21437. )
  21438. SELECT
  21439. ms.SerialNumber, count(mul.UserID) AS UserCount
  21440. FROM
  21441. [MatchDataStatistics] AS ms
  21442. INNER JOIN [MatchDataUserList] AS mul ON ms.SerialNumber = mul.SerialNumber
  21443. LEFT JOIN [MachineUser] AS mu ON mul.UserID = mu.UserID
  21444. where
  21445. mu.UserID IS NULL
  21446. GROUP BY
  21447. ms.SerialNumber
  21448. ;WITH [List] AS
  21449. (
  21450. SELECT
  21451. ROW_NUMBER() OVER(ORDER BY StartTime DESC) AS RowNumber,
  21452. SerialNumber, GameID, EnrollFee, MaxUserCount, TableUserCount, JoinUserCount, StartTime, EndTime
  21453. FROM
  21454. @tmptable
  21455. )
  21456. -- 返回信息
  21457. SELECT
  21458. l.SerialNumber, ChineseName, EnrollFee, pt.UserCount, TableUserCount, pt.UserCount,
  21459. CONVERT(CHAR(20), StartTime, 120) AS StartTime, CONVERT(CHAR(20), EndTime, 120) AS EndTime
  21460. FROM
  21461. [List] AS l INNER JOIN [AllGame] AS g ON l.GameID = g.GameID
  21462. INNER JOIN @participateTable AS pt ON l.SerialNumber = pt.SerialNumber
  21463. WHERE
  21464. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  21465. ORDER BY
  21466. RowNumber ASC
  21467. RETURN
  21468. END
  21469. GO
  21470. /****** Object: StoredProcedure [dbo].[Manage_MatchData_GetTypeList] Script Date: 2024/1/12 11:01:14 ******/
  21471. SET ANSI_NULLS ON
  21472. GO
  21473. SET QUOTED_IDENTIFIER ON
  21474. GO
  21475. -- EXEC [Manage_MatchData_GetTypeList]
  21476. -- @SerialNumber = '0'
  21477. -- ==============================================
  21478. -- Author: wolf
  21479. -- Create Date: 2023-08-18
  21480. -- Mendor: wolf
  21481. -- Alter Date: 2023-08-18
  21482. -- Description: 获取类型的名单
  21483. -- ==============================================
  21484. CREATE PROCEDURE [dbo].[Manage_MatchData_GetTypeList]
  21485. @SerialNumber VARCHAR(32) --比赛场次
  21486. AS
  21487. SET NOCOUNT ON
  21488. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21489. SET XACT_ABORT ON
  21490. BEGIN
  21491. DECLARE @tmptable TABLE(
  21492. SerialNumber VARCHAR(32) NOT NULL, --比赛场次
  21493. Rank INT NOT NULL, --排名
  21494. UserID INT NOT NULL, --用户ID
  21495. ItemID INT NOT NULL, --道具ID(报名道具)
  21496. ItemCount INT NOT NULL, --报名道具的数量
  21497. EnrollTime DATETIME NOT NULL, --报名时间
  21498. Score INT NOT NULL, --分数
  21499. Prize VARCHAR(128) NOT NULL, --奖品
  21500. RobotID INT NOT NULL --机器人ID
  21501. )
  21502. -- 查询某个场次的赛事
  21503. INSERT INTO @tmptable
  21504. (
  21505. SerialNumber, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, RobotID
  21506. )
  21507. SELECT
  21508. SerialNumber, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, 0
  21509. FROM
  21510. [MatchDataUserList]
  21511. WHERE
  21512. SerialNumber = @SerialNumber
  21513. -- 修改临时表变量机器人ID
  21514. UPDATE t SET t.RobotID = ISNULL(m.UserID, 0) FROM @tmptable AS t INNER JOIN [MachineUser] AS m ON t.UserID = m.UserID
  21515. ;WITH [List] AS
  21516. (
  21517. SELECT
  21518. ROW_NUMBER() OVER(ORDER BY
  21519. CASE WHEN [Rank] <= 0 THEN 9999 ELSE [Rank] END ASC,
  21520. EnrollTime DESC) AS RowNumber,
  21521. SerialNumber, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, RobotID
  21522. FROM
  21523. @tmptable
  21524. )
  21525. -- 返回信息
  21526. SELECT
  21527. l.SerialNumber, l.Rank, l.UserID, u.NickName, l.ItemID, l.ItemCount,
  21528. CONVERT(CHAR(20), l.EnrollTime, 120) AS EnrollTime, l.Score, l.Prize, l.RobotID
  21529. FROM
  21530. [List] AS l INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
  21531. ORDER BY
  21532. l.RowNumber ASC
  21533. RETURN
  21534. END
  21535. GO
  21536. /****** Object: StoredProcedure [dbo].[Manage_MidwayStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  21537. SET ANSI_NULLS ON
  21538. GO
  21539. SET QUOTED_IDENTIFIER ON
  21540. GO
  21541. -- EXEC [Manage_MidwayStat_GetList]
  21542. -- ==============================================
  21543. -- Author: wolf
  21544. -- Create Date: 2014-06-11
  21545. -- Mendor: wolf
  21546. -- Alter Date: 2014-06-11
  21547. -- Description: 中途退出统计
  21548. -- ==============================================
  21549. CREATE PROCEDURE [dbo].[Manage_MidwayStat_GetList]
  21550. @GameID INT, --游戏ID
  21551. @TypeID INT, --类型ID
  21552. @BeginTime DATETIME, --开始时间
  21553. @EndTime DATETIME, --截止时间
  21554. @PageIndex INT, --页索引
  21555. @PageSize INT, --页大小
  21556. @RecordCount INT OUTPUT --记录数
  21557. AS
  21558. SET NOCOUNT ON
  21559. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21560. SET XACT_ABORT ON
  21561. BEGIN
  21562. DECLARE @StartRowIndex INT --起始行索引
  21563. DECLARE @EndRowIndex INT --截止行索引
  21564. DECLARE @tmptable TABLE(
  21565. DateFlag SMALLDATETIME NOT NULL, --日期标识
  21566. GameID INT NOT NULL, --游戏ID
  21567. SourceName NVARCHAR(32) NOT NULL, --服务器名称
  21568. PlayUserCount INT NOT NULL, --游戏人数
  21569. PlayCount INT NOT NULL, --游戏局数
  21570. MidwayUserCount INT NOT NULL, --中途退出人数
  21571. MidwayTimes INT NOT NULL --中途退出次数
  21572. )
  21573. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  21574. SET @EndRowIndex = @PageIndex * @PageSize
  21575. IF(@TypeID > 0)
  21576. BEGIN
  21577. IF(@GameID > 0)
  21578. BEGIN
  21579. INSERT INTO @tmptable
  21580. (
  21581. DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
  21582. MidwayUserCount, MidwayTimes
  21583. )
  21584. SELECT
  21585. DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
  21586. MidwayUserCount, MidwayTimes
  21587. FROM
  21588. [GameMidwayStat]
  21589. WHERE
  21590. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = @TypeID
  21591. END
  21592. ELSE
  21593. BEGIN
  21594. INSERT INTO @tmptable
  21595. (
  21596. DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
  21597. MidwayUserCount, MidwayTimes
  21598. )
  21599. SELECT
  21600. DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
  21601. MidwayUserCount, MidwayTimes
  21602. FROM
  21603. [GameMidwayStat]
  21604. WHERE
  21605. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = @TypeID
  21606. END
  21607. END
  21608. ELSE
  21609. BEGIN
  21610. IF(@GameID > 0)
  21611. BEGIN
  21612. INSERT INTO @tmptable
  21613. (
  21614. DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
  21615. MidwayUserCount, MidwayTimes
  21616. )
  21617. SELECT
  21618. DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
  21619. MidwayUserCount, MidwayTimes
  21620. FROM
  21621. [GameMidwayStat]
  21622. WHERE
  21623. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = 0
  21624. END
  21625. ELSE
  21626. BEGIN
  21627. INSERT INTO @tmptable
  21628. (
  21629. DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
  21630. MidwayUserCount, MidwayTimes
  21631. )
  21632. SELECT
  21633. DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
  21634. MidwayUserCount, MidwayTimes
  21635. FROM
  21636. [GameMidwayStat]
  21637. WHERE
  21638. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = 0
  21639. END
  21640. END
  21641. --记录数
  21642. SET @RecordCount = @@ROWCOUNT
  21643. ;WITH [List] AS
  21644. (
  21645. SELECT
  21646. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, GameID ASC) AS RowNumber,
  21647. DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
  21648. MidwayUserCount, MidwayTimes
  21649. FROM
  21650. @tmptable
  21651. )
  21652. --返回信息
  21653. SELECT
  21654. CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.GameID, g.EnglishName,
  21655. l.SourceName, l.PlayUserCount, l.PlayCount,
  21656. l.MidwayUserCount, l.MidwayTimes
  21657. FROM
  21658. [List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
  21659. WHERE
  21660. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  21661. ORDER BY
  21662. l.RowNumber ASC
  21663. RETURN
  21664. END
  21665. GO
  21666. /****** Object: StoredProcedure [dbo].[Manage_Money_GetCashLog] Script Date: 2024/1/12 11:01:14 ******/
  21667. SET ANSI_NULLS ON
  21668. GO
  21669. SET QUOTED_IDENTIFIER ON
  21670. GO
  21671. -- EXEC [Manage_Money_GetCashLog]
  21672. -- =============================================
  21673. -- Author: wolf
  21674. -- Create Date: 2014-04-23
  21675. -- Mendor: wolf
  21676. -- Alter Date: 2015-10-12
  21677. -- Description: 后台管理--金币日志列表
  21678. -- =============================================
  21679. CREATE PROCEDURE [dbo].[Manage_Money_GetCashLog]
  21680. @UserID INT, --账号ID
  21681. @PartnerID INT, --渠道ID
  21682. @SourceName NVARCHAR(32), --应用名称
  21683. @BeginTime DATETIME, --开始时间
  21684. @EndTime DATETIME, --结束时间
  21685. @PageIndex INT = 1, --页索引
  21686. @PageSize INT = 10, --页大小
  21687. @RecordCount INT OUTPUT --总记录数
  21688. AS
  21689. SET NOCOUNT ON
  21690. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21691. SET XACT_ABORT ON
  21692. BEGIN
  21693. DECLARE @StartRowIndex INT --起始行索引
  21694. DECLARE @EndRowIndex INT --截止行索引
  21695. --申请表变量
  21696. DECLARE @tmptable TABLE(
  21697. LogID INT NOT NULL, --标识
  21698. SourceName NVARCHAR(32) NOT NULL, --应用
  21699. MoneyType VARCHAR(8) NOT NULL, --货币类型
  21700. UserID INT NOT NULL, --用户ID
  21701. CurrentAmount BIGINT NOT NULL, --当前数量
  21702. ModifyAmount BIGINT NOT NULL, --修改数量
  21703. StillAmount BIGINT NOT NULL, --剩余数量
  21704. Remark NVARCHAR(128) NOT NULL, --备注
  21705. IPAddress VARCHAR(16) NOT NULL, --IP地址
  21706. Crdate DATETIME NOT NULL, --时间
  21707. TaxAmount BIGINT NOT NULL --台费
  21708. )
  21709. SET @RecordCount = 0
  21710. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  21711. SET @EndRowIndex = @PageIndex * @PageSize
  21712. --应用
  21713. IF(LEN(@SourceName) > 0)
  21714. BEGIN
  21715. --查询应用下的某个账号
  21716. IF(@UserID > 0)
  21717. BEGIN
  21718. INSERT INTO @tmptable
  21719. (
  21720. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21721. Remark, IPAddress, Crdate, TaxAmount
  21722. )
  21723. SELECT TOP 10000
  21724. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21725. Remark, IPAddress, Crdate, TaxAmount
  21726. FROM
  21727. [MoneyLog]
  21728. WHERE
  21729. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND SourceName = @SourceName
  21730. ORDER BY
  21731. LogID DESC
  21732. --总记录数
  21733. SET @RecordCount = @@ROWCOUNT
  21734. IF(@RecordCount < 10000)
  21735. BEGIN
  21736. INSERT INTO @tmptable
  21737. (
  21738. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21739. Remark, IPAddress, Crdate, TaxAmount
  21740. )
  21741. SELECT TOP (10000 - @RecordCount)
  21742. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21743. Remark, IPAddress, Crdate, TaxAmount
  21744. FROM
  21745. [MoneyLog_bak]
  21746. WHERE
  21747. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND SourceName = @SourceName
  21748. ORDER BY
  21749. LogID DESC
  21750. --总记录数
  21751. SET @RecordCount = @RecordCount + @@ROWCOUNT
  21752. END
  21753. END
  21754. --查询应用下的所有账号
  21755. ELSE
  21756. BEGIN
  21757. INSERT INTO @tmptable
  21758. (
  21759. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21760. Remark, IPAddress, Crdate, TaxAmount
  21761. )
  21762. SELECT TOP 10000
  21763. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21764. Remark, IPAddress, Crdate, TaxAmount
  21765. FROM
  21766. [MoneyLog]
  21767. WHERE
  21768. Crdate BETWEEN @BeginTime AND @EndTime AND SourceName = @SourceName
  21769. ORDER BY
  21770. LogID DESC
  21771. --总记录数
  21772. SET @RecordCount = @@ROWCOUNT
  21773. IF(@RecordCount < 10000)
  21774. BEGIN
  21775. INSERT INTO @tmptable
  21776. (
  21777. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21778. Remark, IPAddress, Crdate, TaxAmount
  21779. )
  21780. SELECT TOP (10000 - @RecordCount)
  21781. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21782. Remark, IPAddress, Crdate, TaxAmount
  21783. FROM
  21784. [MoneyLog_bak]
  21785. WHERE
  21786. Crdate BETWEEN @BeginTime AND @EndTime AND SourceName = @SourceName
  21787. ORDER BY
  21788. LogID DESC
  21789. --总记录数
  21790. SET @RecordCount = @RecordCount + @@ROWCOUNT
  21791. END
  21792. END
  21793. END
  21794. --查询用户的某个应用
  21795. ELSE IF(@UserID > 0)
  21796. BEGIN
  21797. INSERT INTO @tmptable
  21798. (
  21799. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21800. Remark, IPAddress, Crdate, TaxAmount
  21801. )
  21802. SELECT TOP 10000
  21803. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21804. Remark, IPAddress, Crdate, TaxAmount
  21805. FROM
  21806. [MoneyLog]
  21807. WHERE
  21808. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  21809. ORDER BY
  21810. LogID DESC
  21811. --总记录数
  21812. SET @RecordCount = @@ROWCOUNT
  21813. IF(@RecordCount < 10000)
  21814. BEGIN
  21815. INSERT INTO @tmptable
  21816. (
  21817. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21818. Remark, IPAddress, Crdate, TaxAmount
  21819. )
  21820. SELECT TOP (10000 - @RecordCount)
  21821. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21822. Remark, IPAddress, Crdate, TaxAmount
  21823. FROM
  21824. [MoneyLog_bak]
  21825. WHERE
  21826. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  21827. ORDER BY
  21828. LogID DESC
  21829. --总记录数
  21830. SET @RecordCount = @RecordCount + @@ROWCOUNT
  21831. END
  21832. END
  21833. --查询某个渠道
  21834. ELSE IF(@PartnerID > 0)
  21835. BEGIN
  21836. INSERT INTO @tmptable
  21837. (
  21838. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21839. Remark, IPAddress, Crdate, TaxAmount
  21840. )
  21841. SELECT TOP 10000
  21842. l.LogID, l.SourceName, l.MoneyType, l.UserID, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
  21843. l.Remark, l.IPAddress, l.Crdate, l.TaxAmount
  21844. FROM
  21845. [MoneyLog] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  21846. WHERE
  21847. l.Crdate BETWEEN @BeginTime AND @EndTime AND u.PartnerID = @PartnerID
  21848. ORDER BY
  21849. l.LogID DESC
  21850. --总记录数
  21851. SET @RecordCount = @@ROWCOUNT
  21852. IF(@RecordCount < 10000)
  21853. BEGIN
  21854. INSERT INTO @tmptable
  21855. (
  21856. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21857. Remark, IPAddress, Crdate, TaxAmount
  21858. )
  21859. SELECT TOP (10000 - @RecordCount)
  21860. l.LogID, l.SourceName, l.MoneyType, l.UserID, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
  21861. l.Remark, l.IPAddress, l.Crdate, l.TaxAmount
  21862. FROM
  21863. [MoneyLog_bak] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  21864. WHERE
  21865. l.Crdate BETWEEN @BeginTime AND @EndTime AND u.PartnerID = @PartnerID
  21866. ORDER BY
  21867. l.LogID DESC
  21868. --总记录数
  21869. SET @RecordCount = @RecordCount + @@ROWCOUNT
  21870. END
  21871. END
  21872. --查询所有应用
  21873. ELSE
  21874. BEGIN
  21875. INSERT INTO @tmptable
  21876. (
  21877. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21878. Remark, IPAddress, Crdate, TaxAmount
  21879. )
  21880. SELECT TOP 10000
  21881. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21882. Remark, IPAddress, Crdate, TaxAmount
  21883. FROM
  21884. [MoneyLog]
  21885. WHERE
  21886. Crdate BETWEEN @BeginTime AND @EndTime AND UserID > 100
  21887. ORDER BY
  21888. LogID DESC
  21889. --总记录数
  21890. SET @RecordCount = @@ROWCOUNT
  21891. IF(@RecordCount < 10000)
  21892. BEGIN
  21893. INSERT INTO @tmptable
  21894. (
  21895. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21896. Remark, IPAddress, Crdate, TaxAmount
  21897. )
  21898. SELECT TOP (10000 - @RecordCount)
  21899. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21900. Remark, IPAddress, Crdate, TaxAmount
  21901. FROM
  21902. [MoneyLog_bak]
  21903. WHERE
  21904. Crdate BETWEEN @BeginTime AND @EndTime AND UserID > 100
  21905. ORDER BY
  21906. LogID DESC
  21907. --总记录数
  21908. SET @RecordCount = @RecordCount + @@ROWCOUNT
  21909. END
  21910. END
  21911. ;WITH [List] AS
  21912. (
  21913. SELECT
  21914. ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
  21915. LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
  21916. Remark, IPAddress, Crdate, TaxAmount
  21917. FROM
  21918. @tmptable
  21919. )
  21920. --返回信息
  21921. SELECT
  21922. l.LogID, l.SourceName, l.MoneyType, l.UserID, u.NickName, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
  21923. l.Remark, l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
  21924. ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName, l.TaxAmount
  21925. FROM
  21926. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  21927. LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
  21928. WHERE
  21929. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  21930. ORDER BY
  21931. l.RowNumber ASC
  21932. RETURN
  21933. END
  21934. GO
  21935. /****** Object: StoredProcedure [dbo].[Manage_MoneyFlow_GetList] Script Date: 2024/1/12 11:01:14 ******/
  21936. SET ANSI_NULLS ON
  21937. GO
  21938. SET QUOTED_IDENTIFIER ON
  21939. GO
  21940. -- EXEC [Manage_MoneyFlow_GetList]
  21941. -- ==============================================
  21942. -- Author: wolf
  21943. -- Create Date: 2013-08-27
  21944. -- Mendor: wolf
  21945. -- Alter Date: 2015-09-08
  21946. -- Description: 金币流量(游戏)
  21947. -- ==============================================
  21948. CREATE PROCEDURE [dbo].[Manage_MoneyFlow_GetList]
  21949. @GameID INT, --游戏ID
  21950. @BeginTime DATETIME, --开始时间
  21951. @EndTime DATETIME, --截止时间
  21952. @PageIndex INT, --页索引
  21953. @PageSize INT, --页大小
  21954. @RecordCount INT OUTPUT --记录数
  21955. AS
  21956. SET NOCOUNT ON
  21957. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  21958. SET XACT_ABORT ON
  21959. BEGIN
  21960. DECLARE @StartRowIndex INT --起始行索引
  21961. DECLARE @EndRowIndex INT --截止行索引
  21962. DECLARE @tmptable TABLE(
  21963. DateFlag SMALLDATETIME NOT NULL, --时间标识
  21964. GameID INT NOT NULL, --游戏ID
  21965. Amount BIGINT NOT NULL, --金币
  21966. Tax BIGINT NOT NULL --台费
  21967. )
  21968. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  21969. SET @EndRowIndex = @PageIndex * @PageSize
  21970. --某个游戏
  21971. IF(@GameID > 0)
  21972. BEGIN
  21973. INSERT INTO @tmptable
  21974. (
  21975. DateFlag, GameID, Amount, Tax
  21976. )
  21977. SELECT
  21978. DateFlag, GameID, Amount, Tax
  21979. FROM
  21980. [MoneyFlow]
  21981. WHERE
  21982. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  21983. END
  21984. --所有游戏
  21985. ELSE
  21986. BEGIN
  21987. INSERT INTO @tmptable
  21988. (
  21989. DateFlag, GameID, Amount, Tax
  21990. )
  21991. SELECT
  21992. DateFlag, GameID, Amount, Tax
  21993. FROM
  21994. [MoneyFlow]
  21995. WHERE
  21996. DateFlag BETWEEN @BeginTime AND @EndTime
  21997. END
  21998. --记录数
  21999. SET @RecordCount = @@ROWCOUNT
  22000. ;WITH [List] AS
  22001. (
  22002. SELECT
  22003. ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
  22004. DateFlag, GameID, Amount, Tax
  22005. FROM
  22006. @tmptable
  22007. )
  22008. --返回信息
  22009. SELECT
  22010. CONVERT(CHAR(16), l.DateFlag, 120) AS DateFlag, g.ChineseName, l.Amount, l.Tax
  22011. FROM
  22012. [List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
  22013. WHERE
  22014. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  22015. ORDER BY
  22016. l.RowNumber ASC
  22017. RETURN
  22018. END
  22019. GO
  22020. /****** Object: StoredProcedure [dbo].[Manage_MoneyStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  22021. SET ANSI_NULLS ON
  22022. GO
  22023. SET QUOTED_IDENTIFIER ON
  22024. GO
  22025. -- EXEC [Manage_MoneyStat_GetList]
  22026. -- ==============================================
  22027. -- Author: wolf
  22028. -- Create Date: 2014-09-09
  22029. -- Mendor: wolf
  22030. -- Alter Date: 2014-12-22
  22031. -- Description: 金币统计
  22032. -- ==============================================
  22033. CREATE PROCEDURE [dbo].[Manage_MoneyStat_GetList]
  22034. @BeginTime DATETIME, --开始时间
  22035. @EndTime DATETIME, --截止时间
  22036. @Send BIGINT OUTPUT, --总发行
  22037. @Consume BIGINT OUTPUT, --总消耗
  22038. @GameSend BIGINT OUTPUT, --游戏发行
  22039. @GameConsume BIGINT OUTPUT, --游戏消耗
  22040. @GameDiff BIGINT OUTPUT, --游戏差额
  22041. @Cash BIGINT OUTPUT, --金币总额
  22042. @Bank BIGINT OUTPUT, --保险柜总额
  22043. @YesterdayAmount BIGINT OUTPUT, --前日总额
  22044. @CurrAmount BIGINT OUTPUT --当前总额
  22045. AS
  22046. SET NOCOUNT ON
  22047. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  22048. SET XACT_ABORT ON
  22049. BEGIN
  22050. DECLARE @Yesterday SMALLDATETIME --前日日期
  22051. DECLARE @Today SMALLDATETIME --当前日期
  22052. --表变量
  22053. DECLARE @tmptable TABLE(
  22054. LogType INT NOT NULL, --日志类型
  22055. LogTypeName NVARCHAR(32) NOT NULL, --日志类型名称
  22056. GameID INT NOT NULL, --游戏ID
  22057. Amount BIGINT NOT NULL, --金额
  22058. SendAmount BIGINT NOT NULL, --发行
  22059. DelAmount BIGINT NOT NULL, --消耗
  22060. DiffAmount BIGINT NOT NULL --游戏总额
  22061. )
  22062. --申请表变量
  22063. DECLARE @tmpSum TABLE(
  22064. GameID INT NOT NULL, --游戏ID
  22065. SendAmount BIGINT NOT NULL, --发行
  22066. DelAmount BIGINT NOT NULL, --消耗
  22067. DiffAmount BIGINT NOT NULL --游戏总额
  22068. )
  22069. SET @Yesterday = CONVERT(CHAR(10), @BeginTime, 120)
  22070. SET @Today = CONVERT(CHAR(10), @EndTime + 1, 120)
  22071. --金币统计
  22072. INSERT INTO @tmptable
  22073. (
  22074. LogType, LogTypeName, GameID, Amount, SendAmount, DelAmount, DiffAmount
  22075. )
  22076. SELECT
  22077. LogType, '', 0, SUM(MoneySum), 0, 0, 0
  22078. FROM
  22079. [MoneyStat]
  22080. WHERE
  22081. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  22082. GROUP BY
  22083. LogType
  22084. --获取类型名称、游戏ID
  22085. UPDATE
  22086. t
  22087. SET
  22088. t.LogTypeName = m.LogTypeName, t.GameID = m.GameID
  22089. FROM
  22090. @tmptable t INNER JOIN [MoneyLogType] m ON t.LogType = m.LogType
  22091. --按游戏统计总额
  22092. INSERT INTO @tmpSum
  22093. (
  22094. GameID, SendAmount, DelAmount, DiffAmount
  22095. )
  22096. SELECT
  22097. GameID, ISNULL(SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END), 0),
  22098. ISNULL(SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END), 0), ISNULL(SUM(Amount), 0)
  22099. FROM
  22100. @tmptable
  22101. GROUP BY
  22102. GameID
  22103. --获取游戏总计
  22104. UPDATE
  22105. l
  22106. SET
  22107. l.SendAmount = s.SendAmount, l.DelAmount = s.DelAmount, l.DiffAmount = s.DiffAmount
  22108. FROM
  22109. @tmptable l INNER JOIN @tmpSum s ON l.GameID = s.GameID
  22110. --统计
  22111. SELECT
  22112. @Send = ISNULL(SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END), 0), --总发行
  22113. @Consume = ISNULL(SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END), 0), --总消耗
  22114. @GameSend = ISNULL(SUM(CASE WHEN GameID > 0 AND Amount > 0 THEN Amount ELSE 0 END), 0), --游戏发行
  22115. @GameConsume = ISNULL(SUM(CASE WHEN GameID > 0 AND Amount < 0 THEN Amount ELSE 0 END), 0), --游戏消耗
  22116. @GameDiff = ISNULL(SUM(CASE WHEN GameID > 0 THEN Amount ELSE 0 END), 0) --游戏差额
  22117. FROM
  22118. @tmptable
  22119. --今天数据,实时统计
  22120. IF(@EndTime >= CONVERT(CHAR(10), GETDATE(), 120))
  22121. BEGIN
  22122. --金币总额、存款总额
  22123. SELECT @Cash = ISNULL(SUM(Amount), 0), @Bank = ISNULL(SUM(Bank), 0) FROM [Money] WHERE UserID NOT IN (SELECT UserID FROM [MachineUser])
  22124. END
  22125. --历史数据,取存量统计数据
  22126. ELSE
  22127. BEGIN
  22128. --金币总额
  22129. SELECT
  22130. @Cash = TotalAmount, @Bank = TotalBank
  22131. FROM
  22132. [MoneyStatTotal]
  22133. WHERE
  22134. Crdate = @Today
  22135. END
  22136. --当前总存量
  22137. SET @CurrAmount = @Cash + @Bank
  22138. --前日总存量
  22139. SELECT @YesterdayAmount = TotalAmount + TotalBank FROM [MoneyStatTotal] WHERE Crdate = @Yesterday
  22140. --金币统计
  22141. INSERT INTO @tmptable
  22142. (
  22143. LogType, LogTypeName, GameID, Amount, SendAmount, DelAmount, DiffAmount
  22144. )
  22145. SELECT
  22146. (LogType / 100) * 100 + 24, N'游戏台费', LogType / 100, SUM(-TaxSum), 0, 0, 0
  22147. FROM
  22148. [MoneyStat]
  22149. WHERE
  22150. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser]) AND TaxSum > 0 AND LogType > 100
  22151. GROUP BY
  22152. LogType / 100
  22153. --返回信息
  22154. SELECT
  22155. t.LogType, t.LogTypeName, t.GameID, t.Amount,
  22156. CASE WHEN t.GameID = 0 THEN N'游戏大厅' ELSE ISNULL(g.EnglishName, ISNULL(t.GameID, 0)) END AS ChineseName,
  22157. t.SendAmount, t.DelAmount, t.DiffAmount
  22158. FROM
  22159. @tmptable t LEFT JOIN [AllGame] g ON t.GameID = g.GameID
  22160. ORDER BY
  22161. t.GameID ASC, t.Amount DESC, t.LogType ASC
  22162. RETURN
  22163. END
  22164. GO
  22165. /****** Object: StoredProcedure [dbo].[Manage_MoneyStatTotal_GetList] Script Date: 2024/1/12 11:01:14 ******/
  22166. SET ANSI_NULLS ON
  22167. GO
  22168. SET QUOTED_IDENTIFIER ON
  22169. GO
  22170. -- DECLARE @RecordCount INT
  22171. -- EXEC [Manage_MoneyStatTotal_GetList]
  22172. -- @BeginTime = '',
  22173. -- @EndTime = '',
  22174. -- @PageIndex = 1,
  22175. -- @PageSize = 10,
  22176. -- @RecordCount = @RecordCount OUTPUT
  22177. -- SELECT @RecordCount AS RecordCount
  22178. -- ==============================================
  22179. -- Author: wolf
  22180. -- Create Date: 2014-09-04
  22181. -- Mendor: wolf
  22182. -- Alter Date: 2015-11-06
  22183. -- Description: 获取游戏库存量
  22184. -- ==============================================
  22185. CREATE PROCEDURE [dbo].[Manage_MoneyStatTotal_GetList]
  22186. @BeginTime DATETIME, --起始时间
  22187. @EndTime DATETIME, --截止时间
  22188. @PageIndex INT, --页索引
  22189. @PageSize INT, --页大小
  22190. @RecordCount INT OUTPUT --总记录数
  22191. AS
  22192. SET NOCOUNT ON
  22193. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  22194. SET XACT_ABORT ON
  22195. BEGIN
  22196. DECLARE @StartRowIndex INT --起始行索引
  22197. DECLARE @EndRowIndex INT --截止行索引
  22198. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  22199. SET @EndRowIndex = @PageIndex * @PageSize
  22200. --总记录数
  22201. SELECT @RecordCount = (SELECT COUNT(Crdate) FROM [MoneyStatTotal] WHERE Crdate BETWEEN @BeginTime AND @EndTime)
  22202. ;WITH [List] AS
  22203. (
  22204. SELECT
  22205. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  22206. Crdate, TotalAmount, TotalBank
  22207. FROM
  22208. [MoneyStatTotal]
  22209. WHERE
  22210. Crdate BETWEEN @BeginTime AND @EndTime
  22211. )
  22212. --返回信息:
  22213. SELECT
  22214. RowNumber, CONVERT(CHAR(16), Crdate, 120) AS Crdate, TotalAmount, TotalBank
  22215. FROM
  22216. [List]
  22217. WHERE
  22218. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  22219. ORDER BY
  22220. RowNumber ASC
  22221. RETURN
  22222. END
  22223. GO
  22224. /****** Object: StoredProcedure [dbo].[Manage_MoneyStatTotal_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
  22225. SET ANSI_NULLS ON
  22226. GO
  22227. SET QUOTED_IDENTIFIER ON
  22228. GO
  22229. -- DECLARE @RecordCount INT
  22230. -- EXEC [Manage_MoneyStatTotal_GetListByDay]
  22231. -- @BeginTime = '',
  22232. -- @EndTime = '',
  22233. -- @PageIndex = 1,
  22234. -- @PageSize = 10,
  22235. -- @RecordCount = @RecordCount OUTPUT
  22236. -- SELECT @RecordCount AS RecordCount
  22237. -- ==============================================
  22238. -- Author: wolf
  22239. -- Create Date: 2014-09-04
  22240. -- Mendor: wolf
  22241. -- Alter Date: 2015-04-03
  22242. -- Description: 获取游戏库存量
  22243. -- ==============================================
  22244. CREATE PROCEDURE [dbo].[Manage_MoneyStatTotal_GetListByDay]
  22245. @BeginTime DATETIME, --起始时间
  22246. @EndTime DATETIME, --截止时间
  22247. @PageIndex INT, --页索引
  22248. @PageSize INT, --页大小
  22249. @RecordCount INT OUTPUT --总记录数
  22250. AS
  22251. SET NOCOUNT ON
  22252. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  22253. SET XACT_ABORT ON
  22254. BEGIN
  22255. DECLARE @StartRowIndex INT --起始行索引
  22256. DECLARE @EndRowIndex INT --截止行索引
  22257. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  22258. SET @EndRowIndex = @PageIndex * @PageSize
  22259. --申请表变量
  22260. DECLARE @tmptable TABLE(
  22261. Crdate SMALLDATETIME NOT NULL,
  22262. TotalAmount BIGINT NOT NULL, --当前总存量
  22263. TotalBank BIGINT NOT NULL --当前保险柜存量
  22264. )
  22265. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  22266. --初始化表变量
  22267. INSERT INTO @tmptable
  22268. (
  22269. Crdate, TotalAmount, TotalBank
  22270. )
  22271. SELECT
  22272. Crdate, TotalAmount, TotalBank
  22273. FROM
  22274. [MoneyStatTotal]
  22275. WHERE
  22276. Crdate IN (SELECT MAX(Crdate) FROM [MoneyStatTotal] WHERE Crdate BETWEEN @BeginTime AND @EndTime GROUP BY CONVERT(CHAR(10), Crdate, 120))
  22277. --总记录数
  22278. SELECT @RecordCount = @@ROWCOUNT
  22279. ;WITH [List] AS
  22280. (
  22281. SELECT
  22282. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  22283. Crdate, TotalAmount, TotalBank, (TotalAmount + TotalBank) AS Total
  22284. FROM
  22285. @tmptable
  22286. )
  22287. --返回信息:
  22288. SELECT
  22289. RowNumber, CONVERT(CHAR(10), Crdate, 120) AS Crdate, TotalAmount, TotalBank, Total
  22290. FROM
  22291. [List]
  22292. WHERE
  22293. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  22294. ORDER BY
  22295. RowNumber ASC
  22296. RETURN
  22297. END
  22298. GO
  22299. /****** Object: StoredProcedure [dbo].[Manage_MyMatch_GetList] Script Date: 2024/1/12 11:01:14 ******/
  22300. SET ANSI_NULLS ON
  22301. GO
  22302. SET QUOTED_IDENTIFIER ON
  22303. GO
  22304. -- EXEC [Manage_MyMatch_GetList]
  22305. -- ==============================================
  22306. -- Author: wolf
  22307. -- Create Date: 2015-10-10
  22308. -- Mendor: wolf
  22309. -- Alter Date: 2015-10-10
  22310. -- Description: 用户比赛列表
  22311. -- ==============================================
  22312. CREATE PROCEDURE [dbo].[Manage_MyMatch_GetList]
  22313. @UserID INT, --用户ID
  22314. @BeginTime DATETIME, --开始时间
  22315. @EndTime DATETIME, --截止时间
  22316. @PageIndex INT, --页索引
  22317. @PageSize INT, --页大小
  22318. @RecordCount INT OUTPUT --记录数
  22319. AS
  22320. SET NOCOUNT ON
  22321. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  22322. SET XACT_ABORT ON
  22323. BEGIN
  22324. DECLARE @StartRowIndex INT --起始行索引
  22325. DECLARE @EndRowIndex INT --截止行索引
  22326. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  22327. SET @EndRowIndex = @PageIndex * @PageSize
  22328. DECLARE @tmpTable TABLE(
  22329. Rid INT NOT NULL, --标识
  22330. UserID INT NOT NULL, --用户ID
  22331. MatchName NVARCHAR(32) NOT NULL, --比赛名称
  22332. Rank INT NOT NULL, --名次
  22333. Items VARCHAR(128) NOT NULL, --道具
  22334. Status SMALLINT NOT NULL, --状态(0=没有奖励 1=可领取 2=等待发放 3=已领取)
  22335. Crdate VARCHAR(16) NOT NULL -- 时间
  22336. )
  22337. IF(@UserID > 0)
  22338. BEGIN
  22339. INSERT INTO @tmpTable
  22340. (
  22341. Rid, UserID, MatchName, Rank, Items, Status, Crdate
  22342. )
  22343. SELECT
  22344. Rid, UserID, MatchName, Rank, Items, Status, Crdate
  22345. FROM
  22346. [MyMatch]
  22347. WHERE
  22348. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  22349. END
  22350. ELSE
  22351. BEGIN
  22352. INSERT INTO @tmpTable
  22353. (
  22354. Rid, UserID, MatchName, Rank, Items, Status, Crdate
  22355. )
  22356. SELECT
  22357. Rid, UserID, MatchName, Rank, Items, Status, Crdate
  22358. FROM
  22359. [MyMatch]
  22360. WHERE
  22361. Crdate BETWEEN @BeginTime AND @EndTime
  22362. END
  22363. SET @RecordCount = @@ROWCOUNT
  22364. ;WITH [List] AS
  22365. (
  22366. SELECT
  22367. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  22368. Rid, UserID, MatchName, Rank, Items, Status, Crdate
  22369. FROM
  22370. @tmpTable
  22371. )
  22372. --返回信息
  22373. SELECT
  22374. l.Rid, l.UserID, u.NickName, l.MatchName, l.Rank, l.Items, l.Status,
  22375. CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate
  22376. FROM
  22377. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  22378. WHERE
  22379. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  22380. ORDER BY
  22381. l.RowNumber ASC
  22382. RETURN
  22383. END
  22384. GO
  22385. /****** Object: StoredProcedure [dbo].[Manage_NewUser_ConvertReport] Script Date: 2024/1/12 11:01:14 ******/
  22386. SET ANSI_NULLS ON
  22387. GO
  22388. SET QUOTED_IDENTIFIER ON
  22389. GO
  22390. -- EXEC [Manage_NewUser_ConvertReport]
  22391. -- ==============================================
  22392. -- Author: wolf
  22393. -- Create Date: 2014-12-29
  22394. -- Mendor: wolf
  22395. -- Alter Date: 2015-06-01
  22396. -- Description: 注册用户转化报表
  22397. -- ==============================================
  22398. CREATE PROCEDURE [dbo].[Manage_NewUser_ConvertReport]
  22399. @BeginTime DATETIME, --开始时间
  22400. @EndTime DATETIME --截止时间
  22401. AS
  22402. SET NOCOUNT ON
  22403. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  22404. SET XACT_ABORT ON
  22405. BEGIN
  22406. DECLARE @RegUsers INT --注册用户数
  22407. DECLARE @LoginUsers INT --登录用户数
  22408. DECLARE @PlayUsers INT --游戏用户数
  22409. DECLARE @VideoReqUsers INT --广告请求用户数
  22410. DECLARE @VideoPlayUsers INT --广告播放用户数
  22411. DECLARE @PayUsers INT --付费用户数
  22412. DECLARE @RegBeginTime DATETIME --注册开始时间
  22413. DECLARE @RegEndTime DATETIME --注册截止时间
  22414. DECLARE @ActiveBeginTime DATETIME --活跃开始时间
  22415. DECLARE @ActiveEndTime DATETIME --活跃截止时间
  22416. DECLARE @tmptable TABLE(
  22417. UserID INT NOT NULL --用户ID
  22418. )
  22419. SET @RegBeginTime = CONVERT(CHAR(10), @BeginTime, 120)
  22420. SET @RegEndTime = CONVERT(CHAR(11), @BeginTime, 120) + '23:59:59'
  22421. SET @ActiveBeginTime = CONVERT(CHAR(10), @EndTime, 120)
  22422. SET @ActiveEndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  22423. INSERT INTO @tmptable(UserID)
  22424. SELECT UserID FROM [AllUser] WHERE RegTime BETWEEN @RegBeginTime AND @RegEndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  22425. --1、注册用户数
  22426. SET @RegUsers = @@ROWCOUNT
  22427. IF(@RegUsers <= 0)
  22428. RETURN
  22429. --2、登录用户数
  22430. --3、游戏用户数
  22431. SELECT
  22432. @LoginUsers = COUNT(DISTINCT u.UserID),
  22433. @PlayUsers = COUNT(DISTINCT(CASE WHEN u.PlaySeconds > 0 THEN u.UserID ELSE 0 END))
  22434. FROM
  22435. [UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  22436. WHERE
  22437. u.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
  22438. /*
  22439. SELECT
  22440. @PlayUsers = COUNT(DISTINCT d.UserID)
  22441. FROM
  22442. [DailyBetStat] d INNER JOIN @tmptable t ON d.UserID = t.UserID
  22443. WHERE
  22444. d.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
  22445. */
  22446. --4、广告请求用户数、广告播放用户数
  22447. SELECT
  22448. @VideoReqUsers = COUNT(DISTINCT (CASE WHEN ReqTimes > 0 THEN UserID ELSE 0 END)),
  22449. @VideoPlayUsers = COUNT(DISTINCT (CASE WHEN PlayTimes > 0 THEN UserID ELSE 0 END))
  22450. FROM
  22451. (
  22452. SELECT
  22453. u.UserID, u.ReqTimes, u.PlayTimes
  22454. FROM
  22455. [UserVideoStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  22456. WHERE
  22457. u.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
  22458. UNION
  22459. SELECT
  22460. u.UserID, u.ReqTimes, u.PlayTimes
  22461. FROM
  22462. [UserVideoStatHistory] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  22463. WHERE
  22464. u.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
  22465. ) t
  22466. --5、付费用户数
  22467. SELECT
  22468. @PayUsers = COUNT(DISTINCT u.UserID)
  22469. FROM
  22470. [UserPayLog] u INNER JOIN @tmptable t ON u.UserID = t.UserID
  22471. WHERE
  22472. u.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
  22473. --返回信息
  22474. SELECT
  22475. ISNULL(@RegUsers, 0) AS RegUsers, ISNULL(@LoginUsers, 0) AS LoginUsers,
  22476. ISNULL(@PlayUsers, 0) AS PlayUsers, ISNULL(@VideoReqUsers, 0) AS VideoReqUsers,
  22477. ISNULL(@PayUsers , 0) AS PayUsers, ISNULL(@VideoPlayUsers, 0) AS VideoPlayUsers
  22478. RETURN
  22479. END
  22480. GO
  22481. /****** Object: StoredProcedure [dbo].[Manage_OnlineStat_GetHourList] Script Date: 2024/1/12 11:01:14 ******/
  22482. SET ANSI_NULLS ON
  22483. GO
  22484. SET QUOTED_IDENTIFIER ON
  22485. GO
  22486. -- EXEC [Manage_OnlineStat_GetHourList]
  22487. -- =============================================
  22488. -- Author: wolf
  22489. -- Create Date: 2016-09-23
  22490. -- Mendor: wolf
  22491. -- Alter Date: 2016-09-23
  22492. -- Description: 后台管理--在线统计(小时)
  22493. -- =============================================
  22494. CREATE PROCEDURE [dbo].[Manage_OnlineStat_GetHourList]
  22495. @GameID INT, --游戏ID
  22496. @StartTime DATETIME, --开始时间
  22497. @EndTime DATETIME --截止时间
  22498. AS
  22499. SET NOCOUNT ON
  22500. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  22501. SET XACT_ABORT ON
  22502. BEGIN
  22503. --在线统计(小时)
  22504. DECLARE @tmpStat TABLE(
  22505. GameID INT NOT NULL, --游戏ID
  22506. Hour_0 INT NOT NULL, -- 0点
  22507. Hour_1 INT NOT NULL, -- 1点
  22508. Hour_2 INT NOT NULL, -- 2点
  22509. Hour_3 INT NOT NULL, -- 3点
  22510. Hour_4 INT NOT NULL, -- 4点
  22511. Hour_5 INT NOT NULL, -- 5点
  22512. Hour_6 INT NOT NULL, -- 6点
  22513. Hour_7 INT NOT NULL, -- 7点
  22514. Hour_8 INT NOT NULL, -- 8点
  22515. Hour_9 INT NOT NULL, -- 9点
  22516. Hour_10 INT NOT NULL, -- 10点
  22517. Hour_11 INT NOT NULL, -- 11点
  22518. Hour_12 INT NOT NULL, -- 12点
  22519. Hour_13 INT NOT NULL, -- 13点
  22520. Hour_14 INT NOT NULL, -- 14点
  22521. Hour_15 INT NOT NULL, -- 15点
  22522. Hour_16 INT NOT NULL, -- 16点
  22523. Hour_17 INT NOT NULL, -- 17点
  22524. Hour_18 INT NOT NULL, -- 18点
  22525. Hour_19 INT NOT NULL, -- 19点
  22526. Hour_20 INT NOT NULL, -- 20点
  22527. Hour_21 INT NOT NULL, -- 21点
  22528. Hour_22 INT NOT NULL, -- 22点
  22529. Hour_23 INT NOT NULL -- 23点
  22530. )
  22531. --查询某个游戏
  22532. IF(@GameID > 0)
  22533. BEGIN
  22534. --统计在线
  22535. INSERT INTO @tmpStat
  22536. (
  22537. GameID, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  22538. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  22539. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  22540. )
  22541. SELECT
  22542. GameID, SUM(Hour_0) AS Hour_0, SUM(Hour_1) AS Hour_1, SUM(Hour_2) AS Hour_2, SUM(Hour_3) AS Hour_3,
  22543. SUM(Hour_4) AS Hour_4, SUM(Hour_5) AS Hour_5, SUM(Hour_6) AS Hour_6, SUM(Hour_7) AS Hour_7, SUM(Hour_8) AS Hour_8,
  22544. SUM(Hour_9) AS Hour_9, SUM(Hour_10) AS Hour_10, SUM(Hour_11) AS Hour_11, SUM(Hour_12) AS Hour_12, SUM(Hour_13) AS Hour_13,
  22545. SUM(Hour_14) AS Hour_14, SUM(Hour_15) AS Hour_15, SUM(Hour_16) AS Hour_16, SUM(Hour_17) AS Hour_17, SUM(Hour_18) AS Hour_18,
  22546. SUM(Hour_19) AS Hour_19, SUM(Hour_20) AS Hour_20, SUM(Hour_21) AS Hour_21, SUM(Hour_22) AS Hour_22, SUM(Hour_23) AS Hour_23
  22547. FROM
  22548. [OnlineStatHour]
  22549. WHERE
  22550. DateFlag BETWEEN @StartTime AND @EndTime AND GameID = @GameID
  22551. GROUP BY
  22552. GameID
  22553. --返回信息
  22554. SELECT
  22555. g.EnglishName, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  22556. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  22557. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  22558. FROM
  22559. @tmpStat t INNER JOIN [AllGame] g ON t.GameID = g.GameID
  22560. RETURN
  22561. END
  22562. --统计在线
  22563. INSERT INTO @tmpStat
  22564. (
  22565. GameID, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  22566. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  22567. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  22568. )
  22569. SELECT
  22570. GameID, SUM(Hour_0) AS Hour_0, SUM(Hour_1) AS Hour_1, SUM(Hour_2) AS Hour_2, SUM(Hour_3) AS Hour_3,
  22571. SUM(Hour_4) AS Hour_4, SUM(Hour_5) AS Hour_5, SUM(Hour_6) AS Hour_6, SUM(Hour_7) AS Hour_7, SUM(Hour_8) AS Hour_8,
  22572. SUM(Hour_9) AS Hour_9, SUM(Hour_10) AS Hour_10, SUM(Hour_11) AS Hour_11, SUM(Hour_12) AS Hour_12, SUM(Hour_13) AS Hour_13,
  22573. SUM(Hour_14) AS Hour_14, SUM(Hour_15) AS Hour_15, SUM(Hour_16) AS Hour_16, SUM(Hour_17) AS Hour_17, SUM(Hour_18) AS Hour_18,
  22574. SUM(Hour_19) AS Hour_19, SUM(Hour_20) AS Hour_20, SUM(Hour_21) AS Hour_21, SUM(Hour_22) AS Hour_22, SUM(Hour_23) AS Hour_23
  22575. FROM
  22576. [OnlineStatHour]
  22577. WHERE
  22578. DateFlag BETWEEN @StartTime AND @EndTime
  22579. GROUP BY
  22580. GameID
  22581. --返回信息
  22582. SELECT
  22583. g.EnglishName, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  22584. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  22585. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  22586. FROM
  22587. @tmpStat t INNER JOIN [AllGame] g ON t.GameID = g.GameID
  22588. ORDER BY
  22589. Hour_0 + Hour_1 + Hour_2 + Hour_3 + Hour_4 + Hour_5 + Hour_6 + Hour_7 + Hour_8 + Hour_9 + Hour_10 +
  22590. Hour_11 + Hour_12 + Hour_13 + Hour_14 + Hour_15 + Hour_16 + Hour_17 + Hour_18 + Hour_19 + Hour_20 +
  22591. Hour_21 + Hour_22 + Hour_23
  22592. DESC
  22593. RETURN
  22594. END
  22595. GO
  22596. /****** Object: StoredProcedure [dbo].[Manage_OnlineStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  22597. SET ANSI_NULLS ON
  22598. GO
  22599. SET QUOTED_IDENTIFIER ON
  22600. GO
  22601. -- DECLARE @RecordCount INT
  22602. -- DECLARE @MaxCount INT
  22603. -- DECLARE @MinCount INT
  22604. -- DECLARE @AvgCount INT
  22605. -- EXEC [Manage_OnlineStat_GetList]
  22606. -- @PartnerID = 10001,
  22607. -- @BeginTime = '',
  22608. -- @EndTime = '',
  22609. -- @PageIndex = 1,
  22610. -- @PageSize = 10,
  22611. -- @RecordCount = @RecordCount OUTPUT,
  22612. -- @MaxCount = @MaxCount OUTPUT,
  22613. -- @MinCount = @MinCount OUTPUT,
  22614. -- @AvgCount = @AvgCount OUTPUT
  22615. -- SELECT @RecordCount AS RecordCount, @MaxCount AS MaxCount, @MinCount AS MinCount, @AvgCount AS AvgCount
  22616. -- ==============================================
  22617. -- Author: wolf
  22618. -- Create Date: 2014-10-08
  22619. -- Mendor: wolf
  22620. -- Alter Date: 2016-11-02
  22621. -- Description: 在线人数统计列表
  22622. -- ==============================================
  22623. CREATE PROCEDURE [dbo].[Manage_OnlineStat_GetList]
  22624. @PartnerID INT, --合作商ID
  22625. @BeginTime DATETIME, --开始时间
  22626. @EndTime DATETIME, --结束时间
  22627. @PageIndex INT, --页索引
  22628. @PageSize INT, --页大小
  22629. @RecordCount INT OUTPUT, --总记录数
  22630. @MaxCount INT OUTPUT, --最高数
  22631. @MinCount INT OUTPUT, --最低数
  22632. @AvgCount INT OUTPUT --平均数
  22633. AS
  22634. SET NOCOUNT ON
  22635. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  22636. SET XACT_ABORT ON
  22637. BEGIN
  22638. DECLARE @StartIndex INT --起始索引
  22639. DECLARE @EndIndex INT --截止索引
  22640. --创建临时表
  22641. CREATE TABLE #tmptable(
  22642. DateFlag SMALLDATETIME NOT NULL, --日期标志
  22643. OnlineUserCount INT NOT NULL, --在线人数
  22644. PartnerID INT NOT NULL, --合作商ID
  22645. LastOnlineUserCount INT NOT NULL --昨天在线人数
  22646. )
  22647. --创建临时表
  22648. CREATE TABLE #tmpLast(
  22649. DateFlag SMALLDATETIME NOT NULL, --日期标志
  22650. OnlineUserCount INT NOT NULL, --在线人数
  22651. PartnerID INT NOT NULL --合作商ID
  22652. )
  22653. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  22654. SET @EndIndex = @PageIndex * @PageSize
  22655. SET @RecordCount = 0
  22656. SET @MaxCount = 0
  22657. SET @MinCount = 0
  22658. SET @AvgCount = 0
  22659. --某个合作商
  22660. IF(@PartnerID > 0)
  22661. BEGIN
  22662. --初始化临时表
  22663. INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, LastOnlineUserCount)
  22664. SELECT TOP 1000
  22665. DateFlag, OnlineUserCount, PartnerID, 0
  22666. FROM
  22667. [OnlineStat]
  22668. WHERE
  22669. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  22670. --总记录数
  22671. SET @RecordCount = @@ROWCOUNT
  22672. --初始化临时表
  22673. INSERT INTO #tmpLast(DateFlag, OnlineUserCount, PartnerID)
  22674. SELECT TOP 1000
  22675. DateFlag + 1, OnlineUserCount, PartnerID
  22676. FROM
  22677. [OnlineStat]
  22678. WHERE
  22679. DateFlag BETWEEN @BeginTime - 1 AND @EndTime - 1 AND PartnerID = @PartnerID
  22680. END
  22681. ELSE
  22682. BEGIN
  22683. --初始化临时表
  22684. INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, LastOnlineUserCount)
  22685. SELECT TOP 1000
  22686. DateFlag, SUM(OnlineUserCount), 0, 0
  22687. FROM
  22688. [OnlineStat]
  22689. WHERE
  22690. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
  22691. GROUP BY
  22692. DateFlag
  22693. --总记录数
  22694. SET @RecordCount = @@ROWCOUNT
  22695. --初始化临时表
  22696. INSERT INTO #tmpLast(DateFlag, OnlineUserCount, PartnerID)
  22697. SELECT TOP 1000
  22698. DateFlag + 1, SUM(OnlineUserCount), 0
  22699. FROM
  22700. [OnlineStat]
  22701. WHERE
  22702. DateFlag BETWEEN @BeginTime - 1 AND @EndTime - 1 AND PartnerID = -1
  22703. GROUP BY
  22704. DateFlag
  22705. END
  22706. --计算最高人数、最低人数、平均人数
  22707. SELECT
  22708. @MaxCount = MAX(OnlineUserCount), @MinCount = MIN(OnlineUserCount), @AvgCount = AVG(OnlineUserCount)
  22709. FROM
  22710. #tmptable
  22711. --获取昨天的人数统计
  22712. UPDATE
  22713. t
  22714. SET
  22715. t.LastOnlineUserCount = l.OnlineUserCount
  22716. FROM
  22717. #tmptable t INNER JOIN #tmpLast l ON t.DateFlag = l.DateFlag AND t.PartnerID = l.PartnerID
  22718. ;WITH [List] AS
  22719. (
  22720. SELECT
  22721. ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
  22722. DateFlag, OnlineUserCount, PartnerID, LastOnlineUserCount
  22723. FROM
  22724. #tmptable
  22725. )
  22726. --返回信息:日期标志(DateFlag)(datetime)、在线人数(OnlineUserCount)(int)
  22727. SELECT
  22728. DateFlag, l.OnlineUserCount, ISNULL(p.PartnerName, 'All channels') AS PartnerName, LastOnlineUserCount
  22729. FROM
  22730. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  22731. WHERE
  22732. l.RowNumber BETWEEN @StartIndex AND @EndIndex
  22733. ORDER BY
  22734. l.RowNumber
  22735. --删除临时表
  22736. DROP TABLE #tmptable
  22737. DROP TABLE #tmpLast
  22738. RETURN
  22739. END
  22740. GO
  22741. /****** Object: StoredProcedure [dbo].[Manage_OnlineStat_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
  22742. SET ANSI_NULLS ON
  22743. GO
  22744. SET QUOTED_IDENTIFIER ON
  22745. GO
  22746. -- DECLARE @RecordCount INT
  22747. -- DECLARE @MaxCount INT
  22748. -- DECLARE @MinCount INT
  22749. -- DECLARE @AvgCount INT
  22750. -- EXEC [Manage_OnlineStat_GetListByDay]
  22751. -- @PartnerID = 10001,
  22752. -- @BeginTime = '',
  22753. -- @EndTime = '',
  22754. -- @PageIndex = 1,
  22755. -- @PageSize = 10,
  22756. -- @RecordCount = @RecordCount OUTPUT,
  22757. -- @MaxCount = @MaxCount OUTPUT,
  22758. -- @MinCount = @MinCount OUTPUT,
  22759. -- @AvgCount = @AvgCount OUTPUT
  22760. -- SELECT @RecordCount AS RecordCount, @MaxCount AS MaxCount, @MinCount AS MinCount, @AvgCount AS AvgCount
  22761. -- ==============================================
  22762. -- Author: wolf
  22763. -- Create Date: 2014-12-29
  22764. -- Mendor: wolf
  22765. -- Alter Date: 2015-06-01
  22766. -- Description: 每天在线人数统计列表
  22767. -- ==============================================
  22768. CREATE PROCEDURE [dbo].[Manage_OnlineStat_GetListByDay]
  22769. @PartnerID INT, --合作商ID
  22770. @BeginTime DATETIME, --开始时间
  22771. @EndTime DATETIME, --结束时间
  22772. @PageIndex INT, --页索引
  22773. @PageSize INT, --页大小
  22774. @RecordCount INT OUTPUT, --总记录数
  22775. @MaxCount INT OUTPUT, --最高数
  22776. @MinCount INT OUTPUT, --最低数
  22777. @AvgCount INT OUTPUT --平均数
  22778. AS
  22779. SET NOCOUNT ON
  22780. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  22781. SET XACT_ABORT ON
  22782. BEGIN
  22783. DECLARE @StartIndex INT --起始索引
  22784. DECLARE @EndIndex INT --截止索引
  22785. --创建临时表
  22786. CREATE TABLE #tmptable(
  22787. DateFlag DATETIME NOT NULL, --日期标志
  22788. OnlineUserCount INT NOT NULL, --在线人数
  22789. PartnerID INT NOT NULL, --合作商ID
  22790. TimeFlag CHAR(5) NOT NULL --时间标志
  22791. )
  22792. CREATE TABLE #tmp(
  22793. DateFlag DATETIME NOT NULL, --日期标志
  22794. OnlineUserCount INT NOT NULL --在线标志
  22795. )
  22796. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  22797. SET @EndIndex = @PageIndex * @PageSize
  22798. SET @RecordCount = 0
  22799. SET @MaxCount = 0
  22800. SET @MinCount = 0
  22801. SET @AvgCount = 0
  22802. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59'
  22803. --某个合作商
  22804. IF(@PartnerID > 0)
  22805. BEGIN
  22806. --某个时间段的合作商在线人数加在一起
  22807. INSERT INTO #tmp(DateFlag, OnlineUserCount)
  22808. SELECT
  22809. DateFlag, OnlineUserCount
  22810. FROM
  22811. [OnlineStat]
  22812. WHERE
  22813. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  22814. --初始化临时表
  22815. INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, TimeFlag)
  22816. SELECT
  22817. CONVERT(CHAR(10), a.DateFlag, 120), MAX(a.OnlineUserCount), @PartnerID, MAX(a.TimeFlag)
  22818. FROM
  22819. (
  22820. SELECT
  22821. DateFlag, OnlineUserCount, CONVERT(CHAR(5), DateFlag, 108) AS TimeFlag
  22822. FROM
  22823. #tmp AS t
  22824. WHERE
  22825. OnlineUserCount = (SELECT MAX(OnlineUserCount) FROM #tmp WHERE CONVERT(CHAR(10), DateFlag, 120) = CONVERT(CHAR(10), t.DateFlag, 120))
  22826. ) AS a
  22827. GROUP BY
  22828. CONVERT(CHAR(10), a.DateFlag, 120)
  22829. --总记录数
  22830. SET @RecordCount = @@ROWCOUNT
  22831. END
  22832. ELSE
  22833. BEGIN
  22834. --某个时间段的合作商在线人数加在一起
  22835. INSERT INTO #tmp(DateFlag, OnlineUserCount)
  22836. SELECT
  22837. DateFlag, SUM(OnlineUserCount) AS OnlineUserCount
  22838. FROM
  22839. [OnlineStat]
  22840. WHERE
  22841. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
  22842. GROUP BY
  22843. DateFlag
  22844. --初始化临时表
  22845. INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, TimeFlag)
  22846. SELECT
  22847. CONVERT(CHAR(10), a.DateFlag, 120), MAX(a.OnlineUserCount), 0, MAX(a.TimeFlag)
  22848. FROM
  22849. (
  22850. SELECT
  22851. DateFlag, OnlineUserCount, CONVERT(CHAR(5), DateFlag, 108) AS TimeFlag
  22852. FROM
  22853. #tmp AS t
  22854. WHERE
  22855. OnlineUserCount = (SELECT MAX(OnlineUserCount) FROM #tmp WHERE CONVERT(CHAR(10), DateFlag, 120) = CONVERT(CHAR(10), t.DateFlag, 120))
  22856. ) AS a
  22857. GROUP BY
  22858. CONVERT(CHAR(10), a.DateFlag, 120)
  22859. --总记录数
  22860. SET @RecordCount = @@ROWCOUNT
  22861. END
  22862. --删除临时表
  22863. DROP TABLE #tmp
  22864. --计算最高人数、最低人数、平均人数
  22865. SELECT
  22866. @MaxCount = MAX(OnlineUserCount), @MinCount = MIN(OnlineUserCount), @AvgCount = AVG(OnlineUserCount)
  22867. FROM
  22868. #tmptable
  22869. SET @MaxCount = ISNULL(@MaxCount, 0)
  22870. SET @MinCount = ISNULL(@MinCount, 0)
  22871. SET @AvgCount = ISNULL(@AvgCount, 0)
  22872. ;WITH [List] AS
  22873. (
  22874. SELECT
  22875. ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
  22876. DateFlag, OnlineUserCount, PartnerID, TimeFlag
  22877. FROM
  22878. #tmptable
  22879. )
  22880. --返回信息:日期标志(DateFlag)(datetime)、在线人数(OnlineUserCount)(int)
  22881. SELECT
  22882. CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.OnlineUserCount,
  22883. ISNULL(p.PartnerName, N'所有渠道') AS PartnerName, l.TimeFlag
  22884. FROM
  22885. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  22886. WHERE
  22887. l.RowNumber BETWEEN @StartIndex AND @EndIndex
  22888. ORDER BY
  22889. l.RowNumber
  22890. --删除临时表
  22891. DROP TABLE #tmptable
  22892. RETURN
  22893. END
  22894. GO
  22895. /****** Object: StoredProcedure [dbo].[Manage_OnlineStat_GetReport] Script Date: 2024/1/12 11:01:14 ******/
  22896. SET ANSI_NULLS ON
  22897. GO
  22898. SET QUOTED_IDENTIFIER ON
  22899. GO
  22900. -- EXEC [Manage_OnlineStat_GetReport]
  22901. -- @BeginTime = '',
  22902. -- @EndTime = '',
  22903. -- ==============================================
  22904. -- Author: wolf
  22905. -- Create Date: 2014-12-29
  22906. -- Mendor: wolf
  22907. -- Alter Date: 2015-06-01
  22908. -- Description: 每天在线人数统计报表
  22909. -- ==============================================
  22910. CREATE PROCEDURE [dbo].[Manage_OnlineStat_GetReport]
  22911. @BeginTime DATETIME, --开始时间
  22912. @EndTime DATETIME --结束时间
  22913. AS
  22914. SET NOCOUNT ON
  22915. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  22916. SET XACT_ABORT ON
  22917. BEGIN
  22918. --表变量
  22919. DECLARE @tmptable TABLE(
  22920. DateFlag SMALLDATETIME NOT NULL, --日期标志
  22921. Hour_0 INT NOT NULL, --0点
  22922. Hour_1 INT NOT NULL, --1点
  22923. Hour_2 INT NOT NULL, --2点
  22924. Hour_3 INT NOT NULL, --3点
  22925. Hour_4 INT NOT NULL, --4点
  22926. Hour_5 INT NOT NULL, --5点
  22927. Hour_6 INT NOT NULL, --6点
  22928. Hour_7 INT NOT NULL, --7点
  22929. Hour_8 INT NOT NULL, --8点
  22930. Hour_9 INT NOT NULL, --9点
  22931. Hour_10 INT NOT NULL, --10点
  22932. Hour_11 INT NOT NULL, --11点
  22933. Hour_12 INT NOT NULL, --12点
  22934. Hour_13 INT NOT NULL, --13点
  22935. Hour_14 INT NOT NULL, --14点
  22936. Hour_15 INT NOT NULL, --15点
  22937. Hour_16 INT NOT NULL, --16点
  22938. Hour_17 INT NOT NULL, --17点
  22939. Hour_18 INT NOT NULL, --18点
  22940. Hour_19 INT NOT NULL, --19点
  22941. Hour_20 INT NOT NULL, --20点
  22942. Hour_21 INT NOT NULL, --21点
  22943. Hour_22 INT NOT NULL, --22点
  22944. Hour_23 INT NOT NULL --23点
  22945. )
  22946. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59'
  22947. --初始化表变量
  22948. INSERT INTO @tmptable
  22949. (
  22950. DateFlag, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8, Hour_9, Hour_10,
  22951. Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16, Hour_17, Hour_18, Hour_19, Hour_20, Hour_21,
  22952. Hour_22, Hour_23
  22953. )
  22954. SELECT
  22955. CONVERT(CHAR(10), DateFlag, 120),
  22956. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 0 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22957. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 1 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22958. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 2 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22959. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 3 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22960. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 4 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22961. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 5 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22962. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 6 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22963. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 7 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22964. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 8 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22965. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 9 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22966. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 10 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22967. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 11 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22968. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 12 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22969. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 13 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22970. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 14 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22971. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 15 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22972. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 16 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22973. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 17 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22974. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 18 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22975. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 19 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22976. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 20 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22977. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 21 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22978. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 22 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  22979. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 23 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0)
  22980. FROM
  22981. [OnlineStat]
  22982. WHERE
  22983. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
  22984. GROUP BY
  22985. CONVERT(CHAR(10), DateFlag, 120)
  22986. --返回信息
  22987. SELECT
  22988. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8, Hour_9, Hour_10, Hour_11,
  22989. Hour_12, Hour_13, Hour_14, Hour_15, Hour_16, Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  22990. FROM
  22991. @tmptable
  22992. ORDER BY
  22993. DateFlag ASC
  22994. RETURN
  22995. END
  22996. GO
  22997. /****** Object: StoredProcedure [dbo].[Manage_OnlineStatChip_GetHourList] Script Date: 2024/1/12 11:01:14 ******/
  22998. SET ANSI_NULLS ON
  22999. GO
  23000. SET QUOTED_IDENTIFIER ON
  23001. GO
  23002. -- EXEC [Manage_OnlineStatChip_GetHourList]
  23003. -- =============================================
  23004. -- Author: wolf
  23005. -- Create Date: 2016-09-23
  23006. -- Mendor: wolf
  23007. -- Alter Date: 2016-09-23
  23008. -- Description: 后台管理--在线统计(小时)
  23009. -- =============================================
  23010. CREATE PROCEDURE [dbo].[Manage_OnlineStatChip_GetHourList]
  23011. @GameID INT, --游戏ID
  23012. @StartTime DATETIME, --开始时间
  23013. @EndTime DATETIME --截止时间
  23014. AS
  23015. SET NOCOUNT ON
  23016. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23017. SET XACT_ABORT ON
  23018. BEGIN
  23019. --在线统计(小时)
  23020. DECLARE @tmpStat TABLE(
  23021. GameID INT NOT NULL, --游戏ID
  23022. Hour_0 INT NOT NULL, -- 0点
  23023. Hour_1 INT NOT NULL, -- 1点
  23024. Hour_2 INT NOT NULL, -- 2点
  23025. Hour_3 INT NOT NULL, -- 3点
  23026. Hour_4 INT NOT NULL, -- 4点
  23027. Hour_5 INT NOT NULL, -- 5点
  23028. Hour_6 INT NOT NULL, -- 6点
  23029. Hour_7 INT NOT NULL, -- 7点
  23030. Hour_8 INT NOT NULL, -- 8点
  23031. Hour_9 INT NOT NULL, -- 9点
  23032. Hour_10 INT NOT NULL, -- 10点
  23033. Hour_11 INT NOT NULL, -- 11点
  23034. Hour_12 INT NOT NULL, -- 12点
  23035. Hour_13 INT NOT NULL, -- 13点
  23036. Hour_14 INT NOT NULL, -- 14点
  23037. Hour_15 INT NOT NULL, -- 15点
  23038. Hour_16 INT NOT NULL, -- 16点
  23039. Hour_17 INT NOT NULL, -- 17点
  23040. Hour_18 INT NOT NULL, -- 18点
  23041. Hour_19 INT NOT NULL, -- 19点
  23042. Hour_20 INT NOT NULL, -- 20点
  23043. Hour_21 INT NOT NULL, -- 21点
  23044. Hour_22 INT NOT NULL, -- 22点
  23045. Hour_23 INT NOT NULL -- 23点
  23046. )
  23047. --查询某个游戏
  23048. IF(@GameID > 0)
  23049. BEGIN
  23050. --统计在线
  23051. INSERT INTO @tmpStat
  23052. (
  23053. GameID, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  23054. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  23055. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  23056. )
  23057. SELECT
  23058. GameID, SUM(Hour_0) AS Hour_0, SUM(Hour_1) AS Hour_1, SUM(Hour_2) AS Hour_2, SUM(Hour_3) AS Hour_3,
  23059. SUM(Hour_4) AS Hour_4, SUM(Hour_5) AS Hour_5, SUM(Hour_6) AS Hour_6, SUM(Hour_7) AS Hour_7, SUM(Hour_8) AS Hour_8,
  23060. SUM(Hour_9) AS Hour_9, SUM(Hour_10) AS Hour_10, SUM(Hour_11) AS Hour_11, SUM(Hour_12) AS Hour_12, SUM(Hour_13) AS Hour_13,
  23061. SUM(Hour_14) AS Hour_14, SUM(Hour_15) AS Hour_15, SUM(Hour_16) AS Hour_16, SUM(Hour_17) AS Hour_17, SUM(Hour_18) AS Hour_18,
  23062. SUM(Hour_19) AS Hour_19, SUM(Hour_20) AS Hour_20, SUM(Hour_21) AS Hour_21, SUM(Hour_22) AS Hour_22, SUM(Hour_23) AS Hour_23
  23063. FROM
  23064. [OnlineStatHourChip]
  23065. WHERE
  23066. DateFlag BETWEEN @StartTime AND @EndTime AND GameID = @GameID
  23067. GROUP BY
  23068. GameID
  23069. --返回信息
  23070. SELECT
  23071. g.ChineseName, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  23072. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  23073. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  23074. FROM
  23075. @tmpStat t INNER JOIN [AllGame] g ON t.GameID = g.GameID
  23076. RETURN
  23077. END
  23078. --统计在线
  23079. INSERT INTO @tmpStat
  23080. (
  23081. GameID, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  23082. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  23083. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  23084. )
  23085. SELECT
  23086. GameID, SUM(Hour_0) AS Hour_0, SUM(Hour_1) AS Hour_1, SUM(Hour_2) AS Hour_2, SUM(Hour_3) AS Hour_3,
  23087. SUM(Hour_4) AS Hour_4, SUM(Hour_5) AS Hour_5, SUM(Hour_6) AS Hour_6, SUM(Hour_7) AS Hour_7, SUM(Hour_8) AS Hour_8,
  23088. SUM(Hour_9) AS Hour_9, SUM(Hour_10) AS Hour_10, SUM(Hour_11) AS Hour_11, SUM(Hour_12) AS Hour_12, SUM(Hour_13) AS Hour_13,
  23089. SUM(Hour_14) AS Hour_14, SUM(Hour_15) AS Hour_15, SUM(Hour_16) AS Hour_16, SUM(Hour_17) AS Hour_17, SUM(Hour_18) AS Hour_18,
  23090. SUM(Hour_19) AS Hour_19, SUM(Hour_20) AS Hour_20, SUM(Hour_21) AS Hour_21, SUM(Hour_22) AS Hour_22, SUM(Hour_23) AS Hour_23
  23091. FROM
  23092. [OnlineStatHourChip]
  23093. WHERE
  23094. DateFlag BETWEEN @StartTime AND @EndTime
  23095. GROUP BY
  23096. GameID
  23097. --返回信息
  23098. SELECT
  23099. g.ChineseName, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
  23100. Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  23101. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  23102. FROM
  23103. @tmpStat t INNER JOIN [AllGame] g ON t.GameID = g.GameID
  23104. ORDER BY
  23105. Hour_0 + Hour_1 + Hour_2 + Hour_3 + Hour_4 + Hour_5 + Hour_6 + Hour_7 + Hour_8 + Hour_9 + Hour_10 +
  23106. Hour_11 + Hour_12 + Hour_13 + Hour_14 + Hour_15 + Hour_16 + Hour_17 + Hour_18 + Hour_19 + Hour_20 +
  23107. Hour_21 + Hour_22 + Hour_23
  23108. DESC
  23109. RETURN
  23110. END
  23111. GO
  23112. /****** Object: StoredProcedure [dbo].[Manage_OnlineStatChip_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
  23113. SET ANSI_NULLS ON
  23114. GO
  23115. SET QUOTED_IDENTIFIER ON
  23116. GO
  23117. -- DECLARE @RecordCount INT
  23118. -- DECLARE @MaxCount INT
  23119. -- DECLARE @MinCount INT
  23120. -- DECLARE @AvgCount INT
  23121. -- EXEC [Manage_OnlineStatChip_GetListByDay]
  23122. -- @PartnerID = 10001,
  23123. -- @BeginTime = '',
  23124. -- @EndTime = '',
  23125. -- @PageIndex = 1,
  23126. -- @PageSize = 10,
  23127. -- @RecordCount = @RecordCount OUTPUT,
  23128. -- @MaxCount = @MaxCount OUTPUT,
  23129. -- @MinCount = @MinCount OUTPUT,
  23130. -- @AvgCount = @AvgCount OUTPUT
  23131. -- SELECT @RecordCount AS RecordCount, @MaxCount AS MaxCount, @MinCount AS MinCount, @AvgCount AS AvgCount
  23132. -- ==============================================
  23133. -- Author: wolf
  23134. -- Create Date: 2014-12-29
  23135. -- Mendor: wolf
  23136. -- Alter Date: 2015-06-01
  23137. -- Description: 每天在线人数统计列表
  23138. -- ==============================================
  23139. CREATE PROCEDURE [dbo].[Manage_OnlineStatChip_GetListByDay]
  23140. @PartnerID INT, --合作商ID
  23141. @BeginTime DATETIME, --开始时间
  23142. @EndTime DATETIME, --结束时间
  23143. @PageIndex INT, --页索引
  23144. @PageSize INT, --页大小
  23145. @RecordCount INT OUTPUT, --总记录数
  23146. @MaxCount INT OUTPUT, --最高数
  23147. @MinCount INT OUTPUT, --最低数
  23148. @AvgCount INT OUTPUT --平均数
  23149. AS
  23150. SET NOCOUNT ON
  23151. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23152. SET XACT_ABORT ON
  23153. BEGIN
  23154. DECLARE @StartIndex INT --起始索引
  23155. DECLARE @EndIndex INT --截止索引
  23156. --创建临时表
  23157. CREATE TABLE #tmptable(
  23158. DateFlag DATETIME NOT NULL, --日期标志
  23159. OnlineUserCount INT NOT NULL, --在线人数
  23160. PartnerID INT NOT NULL, --合作商ID
  23161. TimeFlag CHAR(5) NOT NULL --时间标志
  23162. )
  23163. CREATE TABLE #tmp(
  23164. DateFlag DATETIME NOT NULL, --日期标志
  23165. OnlineUserCount INT NOT NULL --在线标志
  23166. )
  23167. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  23168. SET @EndIndex = @PageIndex * @PageSize
  23169. SET @RecordCount = 0
  23170. SET @MaxCount = 0
  23171. SET @MinCount = 0
  23172. SET @AvgCount = 0
  23173. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59'
  23174. --某个合作商
  23175. IF(@PartnerID > 0)
  23176. BEGIN
  23177. --某个时间段的合作商在线人数加在一起
  23178. INSERT INTO #tmp(DateFlag, OnlineUserCount)
  23179. SELECT
  23180. DateFlag, OnlineUserCount
  23181. FROM
  23182. [OnlineStatChip]
  23183. WHERE
  23184. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  23185. --初始化临时表
  23186. INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, TimeFlag)
  23187. SELECT
  23188. CONVERT(CHAR(10), a.DateFlag, 120), MAX(a.OnlineUserCount), @PartnerID, MAX(a.TimeFlag)
  23189. FROM
  23190. (
  23191. SELECT
  23192. DateFlag, OnlineUserCount, CONVERT(CHAR(5), DateFlag, 108) AS TimeFlag
  23193. FROM
  23194. #tmp AS t
  23195. WHERE
  23196. OnlineUserCount = (SELECT MAX(OnlineUserCount) FROM #tmp WHERE CONVERT(CHAR(10), DateFlag, 120) = CONVERT(CHAR(10), t.DateFlag, 120))
  23197. ) AS a
  23198. GROUP BY
  23199. CONVERT(CHAR(10), a.DateFlag, 120)
  23200. --总记录数
  23201. SET @RecordCount = @@ROWCOUNT
  23202. END
  23203. ELSE
  23204. BEGIN
  23205. --某个时间段的合作商在线人数加在一起
  23206. INSERT INTO #tmp(DateFlag, OnlineUserCount)
  23207. SELECT
  23208. DateFlag, SUM(OnlineUserCount) AS OnlineUserCount
  23209. FROM
  23210. [OnlineStatChip]
  23211. WHERE
  23212. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
  23213. GROUP BY
  23214. DateFlag
  23215. --初始化临时表
  23216. INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, TimeFlag)
  23217. SELECT
  23218. CONVERT(CHAR(10), a.DateFlag, 120), MAX(a.OnlineUserCount), 0, MAX(a.TimeFlag)
  23219. FROM
  23220. (
  23221. SELECT
  23222. DateFlag, OnlineUserCount, CONVERT(CHAR(5), DateFlag, 108) AS TimeFlag
  23223. FROM
  23224. #tmp AS t
  23225. WHERE
  23226. OnlineUserCount = (SELECT MAX(OnlineUserCount) FROM #tmp WHERE CONVERT(CHAR(10), DateFlag, 120) = CONVERT(CHAR(10), t.DateFlag, 120))
  23227. ) AS a
  23228. GROUP BY
  23229. CONVERT(CHAR(10), a.DateFlag, 120)
  23230. --总记录数
  23231. SET @RecordCount = @@ROWCOUNT
  23232. END
  23233. --删除临时表
  23234. DROP TABLE #tmp
  23235. --计算最高人数、最低人数、平均人数
  23236. SELECT
  23237. @MaxCount = MAX(OnlineUserCount), @MinCount = MIN(OnlineUserCount), @AvgCount = AVG(OnlineUserCount)
  23238. FROM
  23239. #tmptable
  23240. ;WITH [List] AS
  23241. (
  23242. SELECT
  23243. ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
  23244. DateFlag, OnlineUserCount, PartnerID, TimeFlag
  23245. FROM
  23246. #tmptable
  23247. )
  23248. --返回信息:日期标志(DateFlag)(datetime)、在线人数(OnlineUserCount)(int)
  23249. SELECT
  23250. CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.OnlineUserCount,
  23251. ISNULL(p.PartnerName, N'所有渠道') AS PartnerName, l.TimeFlag
  23252. FROM
  23253. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  23254. WHERE
  23255. l.RowNumber BETWEEN @StartIndex AND @EndIndex
  23256. ORDER BY
  23257. l.RowNumber
  23258. --删除临时表
  23259. DROP TABLE #tmptable
  23260. RETURN
  23261. END
  23262. GO
  23263. /****** Object: StoredProcedure [dbo].[Manage_OnlineStatChip_GetReport] Script Date: 2024/1/12 11:01:14 ******/
  23264. SET ANSI_NULLS ON
  23265. GO
  23266. SET QUOTED_IDENTIFIER ON
  23267. GO
  23268. -- EXEC [Manage_OnlineStatChip_GetReport]
  23269. -- @BeginTime = '',
  23270. -- @EndTime = '',
  23271. -- ==============================================
  23272. -- Author: wolf
  23273. -- Create Date: 2014-12-29
  23274. -- Mendor: wolf
  23275. -- Alter Date: 2015-06-01
  23276. -- Description: 每天在线人数统计报表
  23277. -- ==============================================
  23278. CREATE PROCEDURE [dbo].[Manage_OnlineStatChip_GetReport]
  23279. @BeginTime DATETIME, --开始时间
  23280. @EndTime DATETIME --结束时间
  23281. AS
  23282. SET NOCOUNT ON
  23283. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23284. SET XACT_ABORT ON
  23285. BEGIN
  23286. --表变量
  23287. DECLARE @tmptable TABLE(
  23288. DateFlag SMALLDATETIME NOT NULL, --日期标志
  23289. Hour_0 INT NOT NULL, --0点
  23290. Hour_1 INT NOT NULL, --1点
  23291. Hour_2 INT NOT NULL, --2点
  23292. Hour_3 INT NOT NULL, --3点
  23293. Hour_4 INT NOT NULL, --4点
  23294. Hour_5 INT NOT NULL, --5点
  23295. Hour_6 INT NOT NULL, --6点
  23296. Hour_7 INT NOT NULL, --7点
  23297. Hour_8 INT NOT NULL, --8点
  23298. Hour_9 INT NOT NULL, --9点
  23299. Hour_10 INT NOT NULL, --10点
  23300. Hour_11 INT NOT NULL, --11点
  23301. Hour_12 INT NOT NULL, --12点
  23302. Hour_13 INT NOT NULL, --13点
  23303. Hour_14 INT NOT NULL, --14点
  23304. Hour_15 INT NOT NULL, --15点
  23305. Hour_16 INT NOT NULL, --16点
  23306. Hour_17 INT NOT NULL, --17点
  23307. Hour_18 INT NOT NULL, --18点
  23308. Hour_19 INT NOT NULL, --19点
  23309. Hour_20 INT NOT NULL, --20点
  23310. Hour_21 INT NOT NULL, --21点
  23311. Hour_22 INT NOT NULL, --22点
  23312. Hour_23 INT NOT NULL --23点
  23313. )
  23314. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59'
  23315. --初始化表变量
  23316. INSERT INTO @tmptable
  23317. (
  23318. DateFlag, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8, Hour_9, Hour_10,
  23319. Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16, Hour_17, Hour_18, Hour_19, Hour_20, Hour_21,
  23320. Hour_22, Hour_23
  23321. )
  23322. SELECT
  23323. CONVERT(CHAR(10), DateFlag, 120),
  23324. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 0 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23325. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 1 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23326. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 2 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23327. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 3 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23328. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 4 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23329. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 5 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23330. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 6 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23331. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 7 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23332. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 8 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23333. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 9 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23334. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 10 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23335. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 11 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23336. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 12 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23337. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 13 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23338. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 14 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23339. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 15 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23340. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 16 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23341. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 17 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23342. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 18 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23343. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 19 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23344. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 20 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23345. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 21 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23346. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 22 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
  23347. ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 23 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0)
  23348. FROM
  23349. [OnlineStatChip]
  23350. WHERE
  23351. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
  23352. GROUP BY
  23353. CONVERT(CHAR(10), DateFlag, 120)
  23354. --返回信息
  23355. SELECT
  23356. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8, Hour_9, Hour_10, Hour_11,
  23357. Hour_12, Hour_13, Hour_14, Hour_15, Hour_16, Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  23358. FROM
  23359. @tmptable
  23360. ORDER BY
  23361. DateFlag ASC
  23362. RETURN
  23363. END
  23364. GO
  23365. /****** Object: StoredProcedure [dbo].[Manage_OnlineUser_GetReport] Script Date: 2024/1/12 11:01:14 ******/
  23366. SET ANSI_NULLS ON
  23367. GO
  23368. SET QUOTED_IDENTIFIER ON
  23369. GO
  23370. -- EXEC [Manage_OnlineUser_GetReport]
  23371. -- ==============================================
  23372. -- Author: wolf
  23373. -- Create Date: 2014-12-29
  23374. -- Mendor: wolf
  23375. -- Alter Date: 2015-06-01
  23376. -- Description: 同时在线人数统计报表
  23377. -- ==============================================
  23378. CREATE PROCEDURE [dbo].[Manage_OnlineUser_GetReport]
  23379. @BeginTime DATETIME, --开始时间
  23380. @EndTime DATETIME --结束时间
  23381. AS
  23382. SET NOCOUNT ON
  23383. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23384. SET XACT_ABORT ON
  23385. BEGIN
  23386. --返回信息
  23387. SELECT
  23388. CONVERT(CHAR(10), DateFlag, 120),
  23389. SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
  23390. SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
  23391. SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
  23392. SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
  23393. SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
  23394. SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
  23395. SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
  23396. SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
  23397. SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
  23398. SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
  23399. SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
  23400. SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
  23401. FROM
  23402. [OnlineStatMin]
  23403. WHERE
  23404. DateFlag BETWEEN @BeginTime AND @EndTime
  23405. GROUP BY
  23406. CONVERT(CHAR(10), DateFlag, 120)
  23407. RETURN
  23408. END
  23409. GO
  23410. /****** Object: StoredProcedure [dbo].[Manage_OnlineUserChip_GetReport] Script Date: 2024/1/12 11:01:14 ******/
  23411. SET ANSI_NULLS ON
  23412. GO
  23413. SET QUOTED_IDENTIFIER ON
  23414. GO
  23415. -- EXEC [Manage_OnlineUserChip_GetReport]
  23416. -- ==============================================
  23417. -- Author: wolf
  23418. -- Create Date: 2014-12-29
  23419. -- Mendor: wolf
  23420. -- Alter Date: 2015-06-01
  23421. -- Description: 同时在线人数统计报表
  23422. -- ==============================================
  23423. CREATE PROCEDURE [dbo].[Manage_OnlineUserChip_GetReport]
  23424. @BeginTime DATETIME, --开始时间
  23425. @EndTime DATETIME --结束时间
  23426. AS
  23427. SET NOCOUNT ON
  23428. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23429. SET XACT_ABORT ON
  23430. BEGIN
  23431. --返回信息
  23432. SELECT
  23433. CONVERT(CHAR(10), DateFlag, 120),
  23434. SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
  23435. SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
  23436. SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
  23437. SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
  23438. SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
  23439. SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
  23440. SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
  23441. SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
  23442. SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
  23443. SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
  23444. SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
  23445. SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
  23446. FROM
  23447. [OnlineStatMinChip]
  23448. WHERE
  23449. DateFlag BETWEEN @BeginTime AND @EndTime
  23450. GROUP BY
  23451. CONVERT(CHAR(10), DateFlag, 120)
  23452. RETURN
  23453. END
  23454. GO
  23455. /****** Object: StoredProcedure [dbo].[Manage_OOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
  23456. SET ANSI_NULLS ON
  23457. GO
  23458. SET QUOTED_IDENTIFIER ON
  23459. GO
  23460. -- EXEC [Manage_OOrder_GetList]
  23461. -- ==============================================
  23462. -- Author: wolf
  23463. -- Create Date: 2016-07-21
  23464. -- Mendor: wolf
  23465. -- Alter Date: 2022-11-07
  23466. -- Description: CrushPay--获取订单列表
  23467. -- ==============================================
  23468. CREATE PROCEDURE [dbo].[Manage_OOrder_GetList]
  23469. @UserID INT, --用户ID
  23470. @BeginTime DATETIME, --开始时间
  23471. @EndTime DATETIME, --截止时间
  23472. @PageIndex INT, --页索引
  23473. @PageSize INT, --页大小
  23474. @RecordCount INT OUTPUT, --总记录数
  23475. @TotalRMBMoney INT OUTPUT, --成功充值数
  23476. @UserCount INT OUTPUT --下订单用户数
  23477. AS
  23478. SET NOCOUNT ON
  23479. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23480. SET XACT_ABORT ON
  23481. BEGIN
  23482. DECLARE @StartRowIndex INT --起始行索引
  23483. DECLARE @EndRowIndex INT --截止行索引
  23484. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  23485. SET @EndRowIndex = @PageIndex * @PageSize
  23486. --创建临时表
  23487. DECLARE @tmptable TABLE(
  23488. OrderID VARCHAR(32) NOT NULL, --订单号
  23489. TradeID VARCHAR(64) NOT NULL, --交易号
  23490. UserID INT NOT NULL, --用户ID
  23491. ProductID VARCHAR(32) NOT NULL, --产品ID
  23492. Price DECIMAL(18, 2) NOT NULL, --价格
  23493. GetStatus TINYINT NOT NULL, --状态
  23494. PartnerID INT NOT NULL, --渠道ID
  23495. IPAddress VARCHAR(16) NOT NULL, --IP地址
  23496. Crdate DATETIME NOT NULL --时间
  23497. )
  23498. --用户ID查询
  23499. IF(@UserID > 0)
  23500. BEGIN
  23501. INSERT INTO @tmptable
  23502. (
  23503. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  23504. )
  23505. SELECT
  23506. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  23507. FROM
  23508. [OOrder]
  23509. WHERE
  23510. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  23511. ORDER BY
  23512. Crdate DESC
  23513. END
  23514. --所有订单
  23515. ELSE
  23516. BEGIN
  23517. INSERT INTO @tmptable
  23518. (
  23519. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  23520. )
  23521. SELECT
  23522. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  23523. FROM
  23524. [OOrder]
  23525. WHERE
  23526. Crdate BETWEEN @BeginTime AND @EndTime
  23527. ORDER BY
  23528. Crdate DESC
  23529. END
  23530. --总记录数
  23531. SET @RecordCount = @@ROWCOUNT
  23532. --成功充值总额
  23533. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
  23534. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  23535. ;WITH [List] AS
  23536. (
  23537. SELECT
  23538. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  23539. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  23540. FROM
  23541. @tmptable
  23542. )
  23543. --返回信息
  23544. SELECT
  23545. l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
  23546. ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
  23547. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  23548. FROM
  23549. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  23550. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  23551. WHERE
  23552. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  23553. ORDER BY
  23554. l.RowNumber ASC
  23555. RETURN
  23556. END
  23557. GO
  23558. /****** Object: StoredProcedure [dbo].[Manage_Partner_Add] Script Date: 2024/1/12 11:01:14 ******/
  23559. SET ANSI_NULLS ON
  23560. GO
  23561. SET QUOTED_IDENTIFIER ON
  23562. GO
  23563. -- DECLARE @RetCode TINYINT
  23564. -- EXEC [Manage_Partner_Add]
  23565. -- @OpUserID = 1,
  23566. -- @OpUserName = '',
  23567. -- @PartnerID = 1,
  23568. -- @PartnerName = '',
  23569. -- @PrePartnerID = 1,
  23570. -- @IPAddress = '',
  23571. -- @RetCode = @RetCode OUTPUT
  23572. -- SELECT @RetCode AS RetCode
  23573. -- ==============================================
  23574. -- Author: wolf
  23575. -- Create Date: 2015-06-26
  23576. -- Mendor: wolf
  23577. -- Alter Date: 2016-04-22
  23578. -- Description: 添加渠道
  23579. -- ==============================================
  23580. CREATE PROCEDURE [dbo].[Manage_Partner_Add]
  23581. @OpUserID INT, --操作员ID
  23582. @OpUserName VARCHAR(32), --操作员名称
  23583. @PartnerID INT, --渠道ID
  23584. @PartnerName NVARCHAR(32), --渠道名称
  23585. @PrePartnerID INT, --父渠道ID
  23586. @IPAddress VARCHAR(16), --IP地址
  23587. @EnglishName VARCHAR(32), --游戏英文名
  23588. @RetCode TINYINT OUTPUT --操作结果
  23589. AS
  23590. SET NOCOUNT ON
  23591. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23592. SET XACT_ABORT ON
  23593. BEGIN
  23594. DECLARE @Msg NVARCHAR(4000) --操作描述
  23595. SET @RetCode = 0
  23596. --判断是否存在
  23597. IF EXISTS(SELECT PartnerID FROM [Partner] WHERE PartnerID = @PartnerID)
  23598. BEGIN
  23599. SET @RetCode = 11
  23600. RETURN
  23601. END
  23602. --添加渠道
  23603. INSERT INTO [Partner]
  23604. (
  23605. PartnerID, PartnerName, PrePartnerID, EnglishName
  23606. )
  23607. VALUES
  23608. (
  23609. @PartnerID, @PartnerName, @PrePartnerID, @EnglishName
  23610. )
  23611. SET @Msg = N'Add channel successfully, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@PartnerName=' + @PartnerName + ',@PrePartnerID=' + LTRIM(STR(@PrePartnerID))
  23612. --添加日志
  23613. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  23614. SET @RetCode = 1
  23615. RETURN
  23616. END
  23617. GO
  23618. /****** Object: StoredProcedure [dbo].[Manage_Partner_Del] Script Date: 2024/1/12 11:01:14 ******/
  23619. SET ANSI_NULLS ON
  23620. GO
  23621. SET QUOTED_IDENTIFIER ON
  23622. GO
  23623. -- DECLARE @RetCode TINYINT
  23624. -- EXEC [Manage_Partner_Del]
  23625. -- @OpUserID = 1,
  23626. -- @OpUserName = '',
  23627. -- @PartnerID = 1,
  23628. -- @IPAddress = '',
  23629. -- @RetCode = @RetCode OUTPUT
  23630. -- SELECT @RetCode AS RetCode
  23631. -- ==============================================
  23632. -- Author: wolf
  23633. -- Create Date: 2015-06-26
  23634. -- Mendor: wolf
  23635. -- Alter Date: 2016-04-08
  23636. -- Description: 删除渠道
  23637. -- ==============================================
  23638. CREATE PROCEDURE [dbo].[Manage_Partner_Del]
  23639. @OpUserID INT, --操作员ID
  23640. @OpUserName VARCHAR(32), --操作员名称
  23641. @PartnerID INT, --渠道ID
  23642. @IPAddress VARCHAR(16), --IP地址
  23643. @RetCode TINYINT OUTPUT --操作结果
  23644. AS
  23645. SET NOCOUNT ON
  23646. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23647. SET XACT_ABORT ON
  23648. BEGIN
  23649. DECLARE @Msg NVARCHAR(4000) --操作描述
  23650. DECLARE @PartnerName NVARCHAR(32) --渠道名称
  23651. DECLARE @PrePartnerID INT --父渠道ID
  23652. SET @RetCode = 0
  23653. --渠道信息
  23654. SELECT @PartnerName = PartnerName, @PrePartnerID = PrePartnerID FROM [Partner] WHERE PartnerID = @PartnerID
  23655. --判断是否存在
  23656. IF(@@ROWCOUNT = 0)
  23657. BEGIN
  23658. SET @RetCode = 11
  23659. RETURN
  23660. END
  23661. --删除渠道
  23662. DELETE FROM [Partner] WHERE PartnerID = @PartnerID
  23663. SET @Msg = N'Delete channel succeeded, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@PartnerName=' + @PartnerName + ',@PrePartnerID=' + LTRIM(STR(@PrePartnerID))
  23664. --添加日志
  23665. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  23666. SET @RetCode = 1
  23667. RETURN
  23668. END
  23669. GO
  23670. /****** Object: StoredProcedure [dbo].[Manage_Partner_GetList] Script Date: 2024/1/12 11:01:14 ******/
  23671. SET ANSI_NULLS ON
  23672. GO
  23673. SET QUOTED_IDENTIFIER ON
  23674. GO
  23675. -- EXEC [Manage_Partner_GetList]
  23676. -- ==============================================
  23677. -- Author: wolf
  23678. -- Create Date: 2014-06-12
  23679. -- Mendor: wolf
  23680. -- Alter Date: 2016-04-22
  23681. -- Description: 合作商列表
  23682. -- ==============================================
  23683. CREATE PROCEDURE [dbo].[Manage_Partner_GetList]
  23684. AS
  23685. SET NOCOUNT ON
  23686. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23687. SET XACT_ABORT ON
  23688. BEGIN
  23689. --返回信息;合作商ID(PartnerID)(int)、合作商名称(PartnerName)(varchar(32))
  23690. SELECT PartnerID, PartnerName, PrePartnerID, EnglishName FROM [Partner] ORDER BY PartnerID ASC
  23691. RETURN
  23692. END
  23693. GO
  23694. /****** Object: StoredProcedure [dbo].[Manage_Pay_GetChannelList] Script Date: 2024/1/12 11:01:14 ******/
  23695. SET ANSI_NULLS ON
  23696. GO
  23697. SET QUOTED_IDENTIFIER ON
  23698. GO
  23699. -- DECLARE @RecordCount INT
  23700. -- DECLARE @TotalRMBMoney DECIMAL(10, 2)
  23701. -- DECLARE @UserCount INT
  23702. -- DECLARE @CurrRMBMoney DECIMAL(10, 2)
  23703. -- EXEC [Manage_Pay_GetChannelList]
  23704. -- @PartnerID = 1,
  23705. -- @BeginTime = '',
  23706. -- @EndTime = '',
  23707. -- @PageIndex = 1,
  23708. -- @PageSize = 10,
  23709. -- @RecordCount = @RecordCount OUTPUT,
  23710. -- @TotalRMBMoney = @TotalRMBMoney OUTPUT,
  23711. -- @UserCount = @UserCount OUTPUT,
  23712. -- @CurrRMBMoney = @CurrRMBMoney OUTPUT
  23713. -- SELECT @RecordCount AS RecordCount, @TotalRMBMoney AS TotalRMBMoney,
  23714. -- @UserCount AS UserCount, @CurrRMBMoney AS CurrRMBMoney
  23715. -- ==============================================
  23716. -- Author: wolf
  23717. -- Create Date: 2014-11-13
  23718. -- Mendor: wolf
  23719. -- Alter Date: 2016-08-05
  23720. -- Description: 游戏充值--获取各渠道充值列表
  23721. -- ==============================================
  23722. CREATE PROCEDURE [dbo].[Manage_Pay_GetChannelList]
  23723. @PartnerID INT, --合作商ID
  23724. @BeginTime DATETIME, --开始时间
  23725. @EndTime DATETIME, --截止时间
  23726. @PageIndex INT, --页索引
  23727. @PageSize INT, --页大小
  23728. @RecordCount INT OUTPUT, --总记录数
  23729. @TotalRMBMoney DECIMAL(18, 2) OUTPUT, --成功充值数
  23730. @UserCount INT OUTPUT, --充值用户数
  23731. @CurrRMBMoney DECIMAL(18, 2) OUTPUT --今天充值总额
  23732. AS
  23733. SET NOCOUNT ON
  23734. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23735. SET XACT_ABORT ON
  23736. BEGIN
  23737. DECLARE @StartRowIndex INT --起始行索引
  23738. DECLARE @EndRowIndex INT --截止行索引
  23739. --申请表变量
  23740. DECLARE @tmpPay TABLE(
  23741. PartnerID INT NOT NULL, --合作商ID
  23742. DateFlag VARCHAR(10) NOT NULL, --日期标志
  23743. TotalRMBMoney DECIMAL(18, 2) NOT NULL, --充值总额
  23744. TotalUserCount INT NOT NULL --充值用户数(除去重复的)
  23745. )
  23746. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  23747. SET @EndRowIndex = @PageIndex * @PageSize
  23748. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  23749. SET @UserCount = 0
  23750. SET @RecordCount = 0
  23751. SET @CurrRMBMoney = 0
  23752. --创建临时表
  23753. CREATE TABLE #tmptable(
  23754. PartnerID INT NOT NULL, --合作商ID
  23755. Crdate DATETIME NOT NULL, --充值时间
  23756. UserID INT NOT NULL, --用户ID
  23757. Price DECIMAL(18, 2) NOT NULL --交易金额
  23758. )
  23759. --根据渠道统计
  23760. IF(@PartnerID > 0)
  23761. BEGIN
  23762. INSERT INTO #tmptable
  23763. (
  23764. PartnerID, Crdate, UserID, Price
  23765. )
  23766. --AppStore
  23767. SELECT
  23768. PartnerID, Crdate, UserID, Price
  23769. FROM
  23770. [VerifySuccessLog]
  23771. WHERE
  23772. Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID AND IsSandBox = 0
  23773. UNION ALL
  23774. --GooglePay
  23775. SELECT
  23776. PartnerID, Crdate, UserID, Price
  23777. FROM
  23778. [GoogleSuccessLog]
  23779. WHERE
  23780. Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  23781. UNION ALL
  23782. --croPay
  23783. SELECT
  23784. PartnerID, Crdate, UserID, Price
  23785. FROM
  23786. [CroPay]
  23787. WHERE
  23788. Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  23789. UNION ALL
  23790. --DingpeiPay
  23791. SELECT
  23792. PartnerID, Crdate, UserID, Price
  23793. FROM
  23794. [DingpeiPay]
  23795. WHERE
  23796. Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  23797. UNION ALL
  23798. --CrushPay
  23799. SELECT
  23800. PartnerID, Crdate, UserID, Price
  23801. FROM
  23802. [CrushPay]
  23803. WHERE
  23804. Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  23805. UNION ALL
  23806. --PayerMaxPay
  23807. SELECT
  23808. PartnerID, Crdate, UserID, Price
  23809. FROM
  23810. [PayerMaxPay]
  23811. WHERE
  23812. Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  23813. UNION ALL
  23814. --OPay
  23815. SELECT
  23816. PartnerID, Crdate, UserID, Price
  23817. FROM
  23818. [OPay]
  23819. WHERE
  23820. Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  23821. UNION ALL
  23822. --huaweiPay
  23823. SELECT
  23824. PartnerID, Crdate, UserID, Price
  23825. FROM
  23826. [huaweiPay]
  23827. WHERE
  23828. Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  23829. END
  23830. --所有
  23831. ELSE
  23832. BEGIN
  23833. INSERT INTO #tmptable
  23834. (
  23835. PartnerID, Crdate, UserID, Price
  23836. )
  23837. --苹果充值
  23838. SELECT
  23839. PartnerID, Crdate, UserID, Price
  23840. FROM
  23841. [VerifySuccessLog]
  23842. WHERE
  23843. Crdate BETWEEN @BeginTime AND @EndTime AND IsSandBox = 0
  23844. UNION ALL
  23845. --GooglePay
  23846. SELECT
  23847. PartnerID, Crdate, UserID, Price
  23848. FROM
  23849. [GoogleSuccessLog]
  23850. WHERE
  23851. Crdate BETWEEN @BeginTime AND @EndTime
  23852. UNION ALL
  23853. --croPay
  23854. SELECT
  23855. PartnerID, Crdate, UserID, Price
  23856. FROM
  23857. [CroPay]
  23858. WHERE
  23859. Crdate BETWEEN @BeginTime AND @EndTime
  23860. UNION ALL
  23861. --DingpeiPay
  23862. SELECT
  23863. PartnerID, Crdate, UserID, Price
  23864. FROM
  23865. [DingpeiPay]
  23866. WHERE
  23867. Crdate BETWEEN @BeginTime AND @EndTime
  23868. UNION ALL
  23869. --CrushPay
  23870. SELECT
  23871. PartnerID, Crdate, UserID, Price
  23872. FROM
  23873. [CrushPay]
  23874. WHERE
  23875. Crdate BETWEEN @BeginTime AND @EndTime
  23876. UNION ALL
  23877. --PayerMaxPay
  23878. SELECT
  23879. PartnerID, Crdate, UserID, Price
  23880. FROM
  23881. [PayerMaxPay]
  23882. WHERE
  23883. Crdate BETWEEN @BeginTime AND @EndTime
  23884. UNION ALL
  23885. --OPay
  23886. SELECT
  23887. PartnerID, Crdate, UserID, Price
  23888. FROM
  23889. [OPay]
  23890. WHERE
  23891. Crdate BETWEEN @BeginTime AND @EndTime
  23892. UNION ALL
  23893. --ManualPay
  23894. SELECT
  23895. 0, Crdate, UserID, Price
  23896. FROM
  23897. [ManualPay]
  23898. WHERE
  23899. Crdate BETWEEN @BeginTime AND @EndTime
  23900. UNION ALL
  23901. --huawei
  23902. SELECT
  23903. PartnerID, Crdate, UserID, Price
  23904. FROM
  23905. [huaweiPay]
  23906. WHERE
  23907. Crdate BETWEEN @BeginTime AND @EndTime
  23908. END
  23909. --成功充值总额
  23910. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable), 0)
  23911. SET @TotalRMBMOney = CAST(@TotalRMBMOney / 1.00 AS DECIMAL(18, 2))
  23912. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM #tmptable), 0)
  23913. SET @CurrRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable WHERE Crdate >= CONVERT(CHAR(10), GETDATE(), 120)), 0)
  23914. SET @CurrRMBMoney = CAST(@CurrRMBMoney / 1.00 AS DECIMAL(18, 2))
  23915. --初始化表变量
  23916. INSERT INTO @tmpPay
  23917. (
  23918. PartnerID, DateFlag, TotalRMBMoney, TotalUserCount
  23919. )
  23920. SELECT
  23921. PartnerID, CONVERT(CHAR(10), Crdate, 120), SUM(Price), COUNT(DISTINCT UserID)
  23922. FROM
  23923. #tmptable
  23924. GROUP BY
  23925. PartnerID, CONVERT(CHAR(10), Crdate, 120)
  23926. --总记录数
  23927. SET @RecordCount = @@ROWCOUNT
  23928. ;WITH [List] AS
  23929. (
  23930. SELECT
  23931. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, TotalRMBMoney DESC) AS RowNumber,
  23932. PartnerID, DateFlag, TotalRMBMoney, TotalUserCount
  23933. FROM
  23934. @tmpPay
  23935. )
  23936. --返回信息:充值渠道名称(PayName)(varchar)、日期(DateFlag)(smalldatetime)、充值额度(RMBMoney)(decimal)、
  23937. -- 下订单用户数(UserCount)(int)、付费用户数(PayUserCount)(int)
  23938. SELECT
  23939. l.DateFlag, CAST(l.TotalRMBMoney / 1.00 AS DECIMAL(10, 2)) AS RMBMoney,
  23940. l.TotalUserCount AS PayUserCount, CAST(l.TotalRMBMoney / 1.00 / l.TotalUserCount AS DECIMAL(10, 2)) AS ARPU,
  23941. ISNULL(p.PartnerName, N'所有渠道') AS PartnerName
  23942. FROM
  23943. [List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  23944. WHERE
  23945. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  23946. ORDER BY
  23947. l.RowNumber ASC
  23948. --删除临时表
  23949. DROP TABLE #tmptable
  23950. RETURN
  23951. END
  23952. GO
  23953. /****** Object: StoredProcedure [dbo].[Manage_Pay_GetChipListByDay] Script Date: 2024/1/12 11:01:14 ******/
  23954. SET ANSI_NULLS ON
  23955. GO
  23956. SET QUOTED_IDENTIFIER ON
  23957. GO
  23958. -- DECLARE @RecordCount INT
  23959. -- EXEC [Manage_Pay_GetChipListByDay]
  23960. -- @BeginTime = '',
  23961. -- @EndTime = '',
  23962. -- @PageIndex = 1,
  23963. -- @PageSize = 10,
  23964. -- @RecordCount = @RecordCount OUTPUT
  23965. -- SELECT @RecordCount AS RecordCount
  23966. -- ==============================================
  23967. -- Author: wolf
  23968. -- Create Date: 2015-02-06
  23969. -- Mendor: wolf
  23970. -- Alter Date: 2016-09-11
  23971. -- Description: 游戏充值--日充值总额
  23972. -- ==============================================
  23973. CREATE PROCEDURE [dbo].[Manage_Pay_GetChipListByDay]
  23974. @BeginTime DATETIME, --开始时间
  23975. @EndTime DATETIME, --截止时间
  23976. @PageIndex INT, --页索引
  23977. @PageSize INT, --页大小
  23978. @RecordCount INT OUTPUT, --总记录数
  23979. @TotalRMBMoney BIGINT OUTPUT, --成功充值数
  23980. @UserCount INT OUTPUT, --充值用户数
  23981. @CurrRMBMoney BIGINT OUTPUT --今天充值总额
  23982. AS
  23983. SET NOCOUNT ON
  23984. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23985. SET XACT_ABORT ON
  23986. BEGIN
  23987. DECLARE @StartRowIndex INT --起始行索引
  23988. DECLARE @EndRowIndex INT --截止行索引
  23989. --申请表变量
  23990. DECLARE @tmpPay TABLE(
  23991. DateFlag SMALLDATETIME NOT NULL, --日期标志
  23992. TotalRMBMoney DECIMAL(18, 2) NOT NULL, --充值总额
  23993. TotalUserCount INT NOT NULL --充值用户数(除去重复的)
  23994. )
  23995. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  23996. SET @EndRowIndex = @PageIndex * @PageSize
  23997. SET @UserCount = 0
  23998. SET @RecordCount = 0
  23999. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  24000. --创建临时表
  24001. CREATE TABLE #tmptable(
  24002. Crdate SMALLDATETIME NOT NULL, --充值时间
  24003. UserID INT NOT NULL, --用户ID
  24004. Price DECIMAL(18, 2) NOT NULL --交易金额
  24005. )
  24006. --微信充值
  24007. INSERT INTO #tmptable
  24008. (
  24009. Crdate, UserID, Price
  24010. )
  24011. SELECT
  24012. g.Crdate, g.UserID, g.Price
  24013. FROM
  24014. [GoogleSuccessLog] g INNER JOIN [DiamondMall] d ON g.ProductID = d.ProductID AND d.ShopType = 2
  24015. WHERE
  24016. g.Crdate BETWEEN @BeginTime AND @EndTime
  24017. UNION ALL
  24018. SELECT
  24019. Crdate, UserID, Price
  24020. FROM
  24021. [Flashpay]
  24022. WHERE
  24023. Crdate BETWEEN @BeginTime AND @EndTime
  24024. UNION ALL
  24025. SELECT
  24026. Crdate, UserID, Price
  24027. FROM
  24028. [Kayapay]
  24029. WHERE
  24030. Crdate BETWEEN @BeginTime AND @EndTime
  24031. UNION ALL
  24032. SELECT
  24033. m.Crdate, m.UserID, m.Price
  24034. FROM
  24035. [ManualPay] m INNER JOIN [DiamondMall] d ON m.ProductID = d.ProductID AND d.ShopType = 2
  24036. WHERE
  24037. m.Crdate BETWEEN @BeginTime AND @EndTime
  24038. --成功充值总额
  24039. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable), 0)
  24040. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM #tmptable), 0)
  24041. SET @CurrRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable WHERE Crdate >= CONVERT(CHAR(10), @EndTime, 120)), 0)
  24042. --初始化表变量
  24043. INSERT INTO @tmpPay
  24044. (
  24045. DateFlag, TotalRMBMoney, TotalUserCount
  24046. )
  24047. SELECT
  24048. CONVERT(CHAR(10), Crdate, 120), SUM(Price), COUNT(DISTINCT UserID)
  24049. FROM
  24050. #tmptable
  24051. GROUP BY
  24052. CONVERT(CHAR(10), Crdate, 120)
  24053. --总记录数
  24054. SET @RecordCount = @@ROWCOUNT
  24055. ;WITH [List] AS
  24056. (
  24057. SELECT
  24058. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, TotalRMBMoney DESC) AS RowNumber,
  24059. DateFlag, TotalRMBMoney, TotalUserCount
  24060. FROM
  24061. @tmpPay
  24062. )
  24063. --返回信息:充值渠道名称(PayName)(varchar)、日期(DateFlag)(smalldatetime)、充值额度(RMBMoney)(decimal)、
  24064. -- 下订单用户数(UserCount)(int)、付费用户数(PayUserCount)(int)
  24065. SELECT
  24066. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, TotalRMBMoney AS RMBMoney,
  24067. TotalUserCount AS PayUserCount, CAST(TotalRMBMoney / 1.00 / TotalUserCount AS DECIMAL(10, 2)) AS ARPU
  24068. FROM
  24069. [List]
  24070. WHERE
  24071. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  24072. ORDER BY
  24073. RowNumber ASC
  24074. --删除临时表
  24075. DROP TABLE #tmptable
  24076. RETURN
  24077. END
  24078. GO
  24079. /****** Object: StoredProcedure [dbo].[Manage_Pay_GetChipLog] Script Date: 2024/1/12 11:01:14 ******/
  24080. SET ANSI_NULLS ON
  24081. GO
  24082. SET QUOTED_IDENTIFIER ON
  24083. GO
  24084. -- EXEC [Manage_Pay_GetChipLog]
  24085. -- ==============================================
  24086. -- Author: wolf
  24087. -- Create Date: 2014-09-09
  24088. -- Mendor: wolf
  24089. -- Alter Date: 2014-12-22
  24090. -- Description: google充值日志
  24091. -- ==============================================
  24092. CREATE PROCEDURE [dbo].[Manage_Pay_GetChipLog]
  24093. @PayID INT, --充值渠道ID
  24094. @UserID INT, --用户ID
  24095. @BeginTime DATETIME, --起始时间
  24096. @EndTime DATETIME, --截止时间
  24097. @PageIndex INT, --页索引
  24098. @PageSize INT, --页大小
  24099. @RecordCount INT OUTPUT, --记录数
  24100. @TotalAmount BIGINT OUTPUT --充值总额
  24101. AS
  24102. SET NOCOUNT ON
  24103. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  24104. SET XACT_ABORT ON
  24105. BEGIN
  24106. DECLARE @StartRowIndex INT --起始行索引
  24107. DECLARE @EndRowIndex INT --截止行索引
  24108. --表变量
  24109. DECLARE @tmptable TABLE(
  24110. OrderID VARCHAR(256) NOT NULL, --订单
  24111. PayChannel VARCHAR(16) NOT NULL, --充值渠道
  24112. UserID INT NOT NULL, --用户ID
  24113. ProductID VARCHAR(32) NOT NULL, --产品ID
  24114. Price DECIMAL(18, 2) NOT NULL, --充值金额
  24115. Crdate DATETIME NOT NULL, --时间
  24116. IPAddress VARCHAR(16) NOT NULL --IP地址
  24117. )
  24118. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  24119. SET @EndRowIndex = @PageIndex * @PageSize
  24120. SET @RecordCount = 0
  24121. --查询某个账号
  24122. IF(@UserID > 0)
  24123. BEGIN
  24124. INSERT INTO @tmptable
  24125. (
  24126. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24127. )
  24128. SELECT
  24129. g.Token, 'GooglePay', g.UserID, g.ProductID, g.Price, g.Crdate, g.IPAddress
  24130. FROM
  24131. [GoogleSuccessLog] g INNER JOIN [DiamondMall] d ON g.ProductID = d.ProductID AND d.ShopType = 2
  24132. WHERE
  24133. g.Crdate BETWEEN @BeginTime AND @EndTime AND g.UserID = @UserID
  24134. END
  24135. --查询所有
  24136. ELSE
  24137. BEGIN
  24138. INSERT INTO @tmptable
  24139. (
  24140. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24141. )
  24142. SELECT
  24143. g.Token, 'GooglePay', g.UserID, g.ProductID, g.Price, g.Crdate, g.IPAddress
  24144. FROM
  24145. [GoogleSuccessLog] g INNER JOIN [DiamondMall] d ON g.ProductID = d.ProductID AND d.ShopType = 2
  24146. WHERE
  24147. g.Crdate BETWEEN @BeginTime AND @EndTime
  24148. END
  24149. --记录数
  24150. SET @RecordCount = @@ROWCOUNT
  24151. --统计总额
  24152. SELECT @TotalAmount = ISNULL(SUM(Price), 0) FROM @tmptable
  24153. ;WITH [List] AS
  24154. (
  24155. SELECT
  24156. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  24157. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24158. FROM
  24159. @tmptable
  24160. )
  24161. --返回信息
  24162. SELECT
  24163. l.OrderID, l.PayChannel, l.UserID, u.NickName, l.ProductID, l.Price,
  24164. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.IPAddress
  24165. FROM
  24166. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  24167. WHERE
  24168. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  24169. ORDER BY
  24170. l.RowNumber ASC
  24171. RETURN
  24172. END
  24173. GO
  24174. /****** Object: StoredProcedure [dbo].[Manage_Pay_GetList] Script Date: 2024/1/12 11:01:14 ******/
  24175. SET ANSI_NULLS ON
  24176. GO
  24177. SET QUOTED_IDENTIFIER ON
  24178. GO
  24179. -- DECLARE @RecordCount INT
  24180. -- EXEC [Manage_Pay_GetList]
  24181. -- @BeginTime = '',
  24182. -- @EndTime = '',
  24183. -- @PageIndex = 1,
  24184. -- @PageSize = 10,
  24185. -- @RecordCount = @RecordCount OUTPUT
  24186. -- SELECT @RecordCount AS RecordCount
  24187. -- ==============================================
  24188. -- Author: wolf
  24189. -- Create Date: 2014-04-23
  24190. -- Mendor: wolf
  24191. -- Alter Date: 2016-09-11
  24192. -- Description: 游戏充值--获取各渠道充值列表
  24193. -- ==============================================
  24194. CREATE PROCEDURE [dbo].[Manage_Pay_GetList]
  24195. @PayID INT, --充值渠道ID
  24196. @BeginTime DATETIME, --开始时间
  24197. @EndTime DATETIME, --截止时间
  24198. @PageIndex INT, --页索引
  24199. @PageSize INT, --页大小
  24200. @RecordCount INT OUTPUT, --总记录数
  24201. @TotalRMBMoney DECIMAL(18, 2) OUTPUT, --成功充值数
  24202. @UserCount INT OUTPUT, --充值用户数
  24203. @CurrRMBMoney DECIMAL(18, 2) OUTPUT --今天充值总额
  24204. AS
  24205. SET NOCOUNT ON
  24206. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  24207. SET XACT_ABORT ON
  24208. BEGIN
  24209. DECLARE @StartRowIndex INT --起始行索引
  24210. DECLARE @EndRowIndex INT --截止行索引
  24211. --申请表变量
  24212. DECLARE @tmpPay TABLE(
  24213. PayID INT NOT NULL, --充值渠道ID
  24214. DateFlag SMALLDATETIME NOT NULL, --日期标志
  24215. TotalRMBMoney DECIMAL(18, 2) NOT NULL, --充值总额
  24216. TotalUserCount INT NOT NULL --充值用户数(除去重复的)
  24217. )
  24218. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  24219. SET @EndRowIndex = @PageIndex * @PageSize
  24220. SET @UserCount = 0
  24221. SET @RecordCount = 0
  24222. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  24223. --表变量
  24224. DECLARE @tmptable TABLE(
  24225. PayID INT NOT NULL, --充值渠道ID
  24226. Crdate DATETIME NOT NULL, --充值时间
  24227. UserID INT NOT NULL, --用户ID
  24228. Price DECIMAL(18, 2) NOT NULL --交易金额
  24229. )
  24230. --1=Google
  24231. IF(@PayID IN (0, 1))
  24232. BEGIN
  24233. INSERT INTO @tmptable(
  24234. PayID, Crdate, UserID, Price
  24235. )
  24236. SELECT
  24237. 1, Crdate, UserID, Price
  24238. FROM
  24239. [GoogleSuccessLog]
  24240. WHERE
  24241. Crdate BETWEEN @BeginTime AND @EndTime
  24242. END
  24243. --2=AppStore
  24244. IF(@PayID IN (0, 2))
  24245. BEGIN
  24246. INSERT INTO @tmptable
  24247. (
  24248. PayID, Crdate, UserID, Price
  24249. )
  24250. SELECT
  24251. 2, Crdate, UserID, Price
  24252. FROM
  24253. [VerifySuccessLog]
  24254. WHERE
  24255. Crdate BETWEEN @BeginTime AND @EndTime AND IsSandBox = 0
  24256. END
  24257. --3=CroPay
  24258. IF(@PayID IN (0, 3))
  24259. BEGIN
  24260. INSERT INTO @tmptable
  24261. (
  24262. PayID, Crdate, UserID, Price
  24263. )
  24264. SELECT
  24265. 3, Crdate, UserID, Price
  24266. FROM
  24267. [CroPay]
  24268. WHERE
  24269. Crdate BETWEEN @BeginTime AND @EndTime
  24270. END
  24271. --6=DingpeiPay
  24272. IF(@PayID IN (0, 6))
  24273. BEGIN
  24274. INSERT INTO @tmptable
  24275. (
  24276. PayID, Crdate, UserID, Price
  24277. )
  24278. SELECT
  24279. 6, Crdate, UserID, Price
  24280. FROM
  24281. [DingpeiPay]
  24282. WHERE
  24283. Crdate BETWEEN @BeginTime AND @EndTime
  24284. END
  24285. --7=CrushPay
  24286. IF(@PayID IN (0, 7))
  24287. BEGIN
  24288. INSERT INTO @tmptable
  24289. (
  24290. PayID, Crdate, UserID, Price
  24291. )
  24292. SELECT
  24293. 7, Crdate, UserID, Price
  24294. FROM
  24295. [CrushPay]
  24296. WHERE
  24297. Crdate BETWEEN @BeginTime AND @EndTime
  24298. END
  24299. --8=PayerMaxPay
  24300. IF(@PayID IN (0, 8))
  24301. BEGIN
  24302. INSERT INTO @tmptable
  24303. (
  24304. PayID, Crdate, UserID, Price
  24305. )
  24306. SELECT
  24307. 8, Crdate, UserID, Price
  24308. FROM
  24309. [PayerMaxPay]
  24310. WHERE
  24311. Crdate BETWEEN @BeginTime AND @EndTime
  24312. END
  24313. --9=OPay
  24314. IF(@PayID IN (0, 9))
  24315. BEGIN
  24316. INSERT INTO @tmptable
  24317. (
  24318. PayID, Crdate, UserID, Price
  24319. )
  24320. SELECT
  24321. 9, Crdate, UserID, Price
  24322. FROM
  24323. [OPay]
  24324. WHERE
  24325. Crdate BETWEEN @BeginTime AND @EndTime
  24326. END
  24327. --10=华为
  24328. IF(@PayID IN (0, 10))
  24329. BEGIN
  24330. INSERT INTO @tmptable
  24331. (
  24332. PayID, Crdate, UserID, Price
  24333. )
  24334. SELECT
  24335. 10, Crdate, UserID, Price
  24336. FROM
  24337. [huaweiPay]
  24338. WHERE
  24339. Crdate BETWEEN @BeginTime AND @EndTime
  24340. END
  24341. --99=手动补单
  24342. IF(@PayID IN (0, 99))
  24343. BEGIN
  24344. INSERT INTO @tmptable
  24345. (
  24346. PayID, Crdate, UserID, Price
  24347. )
  24348. SELECT
  24349. 99, Crdate, UserID, Price
  24350. FROM
  24351. [ManualPay]
  24352. WHERE
  24353. Crdate BETWEEN @BeginTime AND @EndTime
  24354. END
  24355. --成功充值总额
  24356. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable), 0)
  24357. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  24358. SET @CurrRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE Crdate >= CONVERT(CHAR(10), @EndTime, 120)), 0)
  24359. --初始化表变量
  24360. INSERT INTO @tmpPay
  24361. (
  24362. PayID, DateFlag, TotalRMBMoney, TotalUserCount
  24363. )
  24364. SELECT
  24365. PayID, CONVERT(CHAR(10), Crdate, 120), SUM(Price), COUNT(DISTINCT UserID)
  24366. FROM
  24367. @tmptable
  24368. GROUP BY
  24369. PayID, CONVERT(CHAR(10), Crdate, 120)
  24370. --总记录数
  24371. SET @RecordCount = @@ROWCOUNT
  24372. ;WITH [List] AS
  24373. (
  24374. SELECT
  24375. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, TotalRMBMoney DESC) AS RowNumber,
  24376. PayID, DateFlag, TotalRMBMoney, TotalUserCount
  24377. FROM
  24378. @tmpPay
  24379. )
  24380. --返回信息:充值渠道名称(PayName)(varchar)、日期(DateFlag)(smalldatetime)、充值额度(RMBMoney)(decimal)、
  24381. -- 下订单用户数(UserCount)(int)、付费用户数(PayUserCount)(int)
  24382. SELECT
  24383. CASE
  24384. WHEN PayID = 0 THEN N'所有渠道'
  24385. WHEN PayID = 1 THEN N'GooglePay'
  24386. WHEN PayID = 2 THEN N'AppStore'
  24387. WHEN PayID = 3 THEN N'CroPay'
  24388. WHEN PayID = 6 THEN N'Dingpei'
  24389. WHEN PayID = 7 THEN N'CrushPay'
  24390. WHEN PayID = 8 THEN N'PayerMaxPay'
  24391. WHEN PayID = 9 THEN N'OPay'
  24392. WHEN PayID = 10 THEN N'华为支付'
  24393. WHEN PayID = 99 THEN N'手动补单'
  24394. ELSE ''
  24395. END AS PayName, CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
  24396. TotalRMBMoney AS RMBMoney, TotalUserCount AS PayUserCount,
  24397. CAST(TotalRMBMoney / 1.00 / TotalUserCount AS DECIMAL(10, 2)) AS ARPU
  24398. FROM
  24399. [List]
  24400. WHERE
  24401. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  24402. ORDER BY
  24403. RowNumber ASC
  24404. RETURN
  24405. END
  24406. GO
  24407. /****** Object: StoredProcedure [dbo].[Manage_Pay_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
  24408. SET ANSI_NULLS ON
  24409. GO
  24410. SET QUOTED_IDENTIFIER ON
  24411. GO
  24412. -- DECLARE @RecordCount INT
  24413. -- EXEC [Manage_Pay_GetListByDay]
  24414. -- @BeginTime = '',
  24415. -- @EndTime = '',
  24416. -- @PageIndex = 1,
  24417. -- @PageSize = 10,
  24418. -- @RecordCount = @RecordCount OUTPUT
  24419. -- SELECT @RecordCount AS RecordCount
  24420. -- ==============================================
  24421. -- Author: wolf
  24422. -- Create Date: 2015-02-06
  24423. -- Mendor: wolf
  24424. -- Alter Date: 2016-09-11
  24425. -- Description: 游戏充值--日充值总额
  24426. -- ==============================================
  24427. CREATE PROCEDURE [dbo].[Manage_Pay_GetListByDay]
  24428. @BeginTime DATETIME, --开始时间
  24429. @EndTime DATETIME, --截止时间
  24430. @PageIndex INT, --页索引
  24431. @PageSize INT, --页大小
  24432. @RecordCount INT OUTPUT, --总记录数
  24433. @TotalRMBMoney DECIMAL(18, 2) OUTPUT, --成功充值数
  24434. @UserCount INT OUTPUT, --充值用户数
  24435. @CurrRMBMoney DECIMAL(18, 2) OUTPUT --今天充值总额
  24436. AS
  24437. SET NOCOUNT ON
  24438. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  24439. SET XACT_ABORT ON
  24440. BEGIN
  24441. DECLARE @StartRowIndex INT --起始行索引
  24442. DECLARE @EndRowIndex INT --截止行索引
  24443. --申请表变量
  24444. DECLARE @tmpPay TABLE(
  24445. DateFlag SMALLDATETIME NOT NULL, --日期标志
  24446. TotalRMBMoney DECIMAL(18, 2) NOT NULL, --充值总额
  24447. TotalUserCount INT NOT NULL --充值用户数(除去重复的)
  24448. )
  24449. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  24450. SET @EndRowIndex = @PageIndex * @PageSize
  24451. SET @UserCount = 0
  24452. SET @RecordCount = 0
  24453. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  24454. --创建临时表
  24455. CREATE TABLE #tmptable(
  24456. Crdate SMALLDATETIME NOT NULL, --充值时间
  24457. UserID INT NOT NULL, --用户ID
  24458. Price DECIMAL(18, 2) NOT NULL --交易金额
  24459. )
  24460. --微信充值
  24461. INSERT INTO #tmptable
  24462. (
  24463. Crdate, UserID, Price
  24464. )
  24465. SELECT
  24466. Crdate, UserID, Price
  24467. FROM
  24468. [VerifySuccessLog]
  24469. WHERE
  24470. Crdate BETWEEN @BeginTime AND @EndTime AND IsSandBox = 0
  24471. UNION ALL
  24472. SELECT
  24473. Crdate, UserID, Price
  24474. FROM
  24475. [GoogleSuccessLog]
  24476. WHERE
  24477. Crdate BETWEEN @BeginTime AND @EndTime
  24478. UNION ALL
  24479. SELECT
  24480. Crdate, UserID, Price
  24481. FROM
  24482. [CroPay]
  24483. WHERE
  24484. Crdate BETWEEN @BeginTime AND @EndTime
  24485. UNION ALL
  24486. SELECT
  24487. Crdate, UserID, Price
  24488. FROM
  24489. [DingpeiPay]
  24490. WHERE
  24491. Crdate BETWEEN @BeginTime AND @EndTime
  24492. UNION ALL
  24493. SELECT
  24494. Crdate, UserID, Price
  24495. FROM
  24496. [CrushPay]
  24497. WHERE
  24498. Crdate BETWEEN @BeginTime AND @EndTime
  24499. UNION ALL
  24500. SELECT
  24501. Crdate, UserID, Price
  24502. FROM
  24503. [PayerMaxPay]
  24504. WHERE
  24505. Crdate BETWEEN @BeginTime AND @EndTime
  24506. UNION ALL
  24507. SELECT
  24508. Crdate, UserID, Price
  24509. FROM
  24510. [OPay]
  24511. WHERE
  24512. Crdate BETWEEN @BeginTime AND @EndTime
  24513. UNION ALL
  24514. SELECT
  24515. Crdate, UserID, Price
  24516. FROM
  24517. [huaweiPay]
  24518. WHERE
  24519. Crdate BETWEEN @BeginTime AND @EndTime
  24520. UNION ALL
  24521. SELECT
  24522. Crdate, UserID, Price
  24523. FROM
  24524. [ManualPay]
  24525. WHERE
  24526. Crdate BETWEEN @BeginTime AND @EndTime
  24527. --成功充值总额
  24528. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable), 0)
  24529. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM #tmptable), 0)
  24530. SET @CurrRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable WHERE Crdate >= CONVERT(CHAR(10), @EndTime, 120)), 0)
  24531. --初始化表变量
  24532. INSERT INTO @tmpPay
  24533. (
  24534. DateFlag, TotalRMBMoney, TotalUserCount
  24535. )
  24536. SELECT
  24537. CONVERT(CHAR(10), Crdate, 120), SUM(Price), COUNT(DISTINCT UserID)
  24538. FROM
  24539. #tmptable
  24540. GROUP BY
  24541. CONVERT(CHAR(10), Crdate, 120)
  24542. --总记录数
  24543. SET @RecordCount = @@ROWCOUNT
  24544. ;WITH [List] AS
  24545. (
  24546. SELECT
  24547. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, TotalRMBMoney DESC) AS RowNumber,
  24548. DateFlag, TotalRMBMoney, TotalUserCount
  24549. FROM
  24550. @tmpPay
  24551. )
  24552. --返回信息:充值渠道名称(PayName)(varchar)、日期(DateFlag)(smalldatetime)、充值额度(RMBMoney)(decimal)、
  24553. -- 下订单用户数(UserCount)(int)、付费用户数(PayUserCount)(int)
  24554. SELECT
  24555. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, TotalRMBMoney AS RMBMoney,
  24556. TotalUserCount AS PayUserCount, CAST(TotalRMBMoney / 1.00 / TotalUserCount AS DECIMAL(10, 2)) AS ARPU
  24557. FROM
  24558. [List]
  24559. WHERE
  24560. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  24561. ORDER BY
  24562. RowNumber ASC
  24563. --删除临时表
  24564. DROP TABLE #tmptable
  24565. RETURN
  24566. END
  24567. GO
  24568. /****** Object: StoredProcedure [dbo].[Manage_Pay_GetLog] Script Date: 2024/1/12 11:01:14 ******/
  24569. SET ANSI_NULLS ON
  24570. GO
  24571. SET QUOTED_IDENTIFIER ON
  24572. GO
  24573. -- EXEC [Manage_Pay_GetLog]
  24574. -- ==============================================
  24575. -- Author: wolf
  24576. -- Create Date: 2014-09-09
  24577. -- Mendor: wolf
  24578. -- Alter Date: 2014-12-22
  24579. -- Description: 充值日志
  24580. -- ==============================================
  24581. CREATE PROCEDURE [dbo].[Manage_Pay_GetLog]
  24582. @PayID INT, --充值渠道ID
  24583. @UserID INT, --用户ID
  24584. @BeginTime DATETIME, --起始时间
  24585. @EndTime DATETIME, --截止时间
  24586. @PageIndex INT, --页索引
  24587. @PageSize INT, --页大小
  24588. @RecordCount INT OUTPUT, --记录数
  24589. @TotalAmount DECIMAL(18, 2) OUTPUT --充值总额
  24590. AS
  24591. SET NOCOUNT ON
  24592. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  24593. SET XACT_ABORT ON
  24594. BEGIN
  24595. DECLARE @StartRowIndex INT --起始行索引
  24596. DECLARE @EndRowIndex INT --截止行索引
  24597. --表变量
  24598. DECLARE @tmptable TABLE(
  24599. OrderID VARCHAR(256) NOT NULL, --订单
  24600. PayChannel NVARCHAR(32) NOT NULL, --充值渠道
  24601. UserID INT NOT NULL, --用户ID
  24602. ProductID VARCHAR(32) NOT NULL, --产品ID
  24603. Price DECIMAL(18, 2) NOT NULL, --充值金额
  24604. Crdate DATETIME NOT NULL, --时间
  24605. IPAddress VARCHAR(16) NOT NULL --IP地址
  24606. )
  24607. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  24608. SET @EndRowIndex = @PageIndex * @PageSize
  24609. SET @RecordCount = 0
  24610. --查询某个账号
  24611. IF(@UserID > 0)
  24612. BEGIN
  24613. --1=GooglePay
  24614. IF(@PayID IN (0, 1))
  24615. BEGIN
  24616. INSERT INTO @tmptable
  24617. (
  24618. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24619. )
  24620. SELECT
  24621. Token, N'GooglePay', UserID, ProductID, Price, Crdate, IPAddress
  24622. FROM
  24623. [GoogleSuccessLog]
  24624. WHERE
  24625. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  24626. --记录数
  24627. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24628. END
  24629. --2=AppStore
  24630. IF(@PayID IN (0, 2))
  24631. BEGIN
  24632. INSERT INTO @tmptable
  24633. (
  24634. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24635. )
  24636. SELECT
  24637. TransactionID, N'AppStore', UserID, ProductID, Price, Crdate, IPAddress
  24638. FROM
  24639. [VerifySuccessLog]
  24640. WHERE
  24641. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND IsSandBox = 0
  24642. --记录数
  24643. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24644. END
  24645. --3=CroPay
  24646. IF(@PayID IN (0, 3))
  24647. BEGIN
  24648. INSERT INTO @tmptable
  24649. (
  24650. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24651. )
  24652. SELECT
  24653. TradeID, N'CroPay', UserID, ProductID, Price, Crdate, IPAddress
  24654. FROM
  24655. [CroPay]
  24656. WHERE
  24657. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  24658. --记录数
  24659. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24660. END
  24661. --6=DingpeiPay
  24662. IF(@PayID IN (0, 6))
  24663. BEGIN
  24664. INSERT INTO @tmptable
  24665. (
  24666. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24667. )
  24668. SELECT
  24669. TradeID, N'DingpeiPay', UserID, ProductID, Price, Crdate, IPAddress
  24670. FROM
  24671. [DingpeiPay]
  24672. WHERE
  24673. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  24674. --记录数
  24675. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24676. END
  24677. --7=CrushPay
  24678. IF(@PayID IN (0, 7))
  24679. BEGIN
  24680. INSERT INTO @tmptable
  24681. (
  24682. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24683. )
  24684. SELECT
  24685. TradeID, N'CrushPay', UserID, ProductID, Price, Crdate, IPAddress
  24686. FROM
  24687. [CrushPay]
  24688. WHERE
  24689. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  24690. --记录数
  24691. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24692. END
  24693. --8=PayerMaxPay
  24694. IF(@PayID IN (0, 8))
  24695. BEGIN
  24696. INSERT INTO @tmptable
  24697. (
  24698. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24699. )
  24700. SELECT
  24701. TradeID, N'PayerMaxPay', UserID, ProductID, Price, Crdate, IPAddress
  24702. FROM
  24703. [PayerMaxPay]
  24704. WHERE
  24705. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  24706. --记录数
  24707. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24708. END
  24709. --9=OPay
  24710. IF(@PayID IN (0, 9))
  24711. BEGIN
  24712. INSERT INTO @tmptable
  24713. (
  24714. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24715. )
  24716. SELECT
  24717. TradeID, N'OPay', UserID, ProductID, Price, Crdate, IPAddress
  24718. FROM
  24719. [OPay]
  24720. WHERE
  24721. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  24722. --记录数
  24723. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24724. END
  24725. --10=华为
  24726. IF(@PayID IN (0, 10))
  24727. BEGIN
  24728. INSERT INTO @tmptable
  24729. (
  24730. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24731. )
  24732. SELECT
  24733. TradeID, N'华为支付', UserID, ProductID, Price, Crdate, IPAddress
  24734. FROM
  24735. [huaweiPay]
  24736. WHERE
  24737. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  24738. --记录数
  24739. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24740. END
  24741. --99=手动补单
  24742. IF(@PayID IN (0, 99))
  24743. BEGIN
  24744. INSERT INTO @tmptable
  24745. (
  24746. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24747. )
  24748. SELECT
  24749. OrderID, N'手动补单', UserID, ProductID, Price, Crdate, '127.0.0.1'
  24750. FROM
  24751. [ManualPay]
  24752. WHERE
  24753. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  24754. --记录数
  24755. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24756. END
  24757. END
  24758. --查询所有
  24759. ELSE
  24760. BEGIN
  24761. --1=GooglePay
  24762. IF(@PayID IN (0, 1))
  24763. BEGIN
  24764. INSERT INTO @tmptable
  24765. (
  24766. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24767. )
  24768. SELECT
  24769. Token, N'GooglePay', UserID, ProductID, Price, Crdate, IPAddress
  24770. FROM
  24771. [GoogleSuccessLog]
  24772. WHERE
  24773. Crdate BETWEEN @BeginTime AND @EndTime
  24774. --记录数
  24775. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24776. END
  24777. --2=AppStore
  24778. IF(@PayID IN (0, 2))
  24779. BEGIN
  24780. INSERT INTO @tmptable
  24781. (
  24782. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24783. )
  24784. SELECT
  24785. TransactionID, N'AppStore', UserID, ProductID, Price, Crdate, IPAddress
  24786. FROM
  24787. [VerifySuccessLog]
  24788. WHERE
  24789. Crdate BETWEEN @BeginTime AND @EndTime AND IsSandBox = 0
  24790. --记录数
  24791. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24792. END
  24793. --3=CroPay
  24794. IF(@PayID IN (0, 3))
  24795. BEGIN
  24796. INSERT INTO @tmptable
  24797. (
  24798. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24799. )
  24800. SELECT
  24801. TradeID, N'CroPay', UserID, ProductID, Price, Crdate, IPAddress
  24802. FROM
  24803. [CroPay]
  24804. WHERE
  24805. Crdate BETWEEN @BeginTime AND @EndTime
  24806. --记录数
  24807. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24808. END
  24809. --6=DingpeiPay
  24810. IF(@PayID IN (0, 6))
  24811. BEGIN
  24812. INSERT INTO @tmptable
  24813. (
  24814. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24815. )
  24816. SELECT
  24817. TradeID, N'DingpeiPay', UserID, ProductID, Price, Crdate, IPAddress
  24818. FROM
  24819. [DingpeiPay]
  24820. WHERE
  24821. Crdate BETWEEN @BeginTime AND @EndTime
  24822. --记录数
  24823. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24824. END
  24825. --7=CrushPay
  24826. IF(@PayID IN (0, 7))
  24827. BEGIN
  24828. INSERT INTO @tmptable
  24829. (
  24830. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24831. )
  24832. SELECT
  24833. TradeID, N'CrushPay', UserID, ProductID, Price, Crdate, IPAddress
  24834. FROM
  24835. [CrushPay]
  24836. WHERE
  24837. Crdate BETWEEN @BeginTime AND @EndTime
  24838. --记录数
  24839. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24840. END
  24841. --8=PayerMaxPay
  24842. IF(@PayID IN (0, 8))
  24843. BEGIN
  24844. INSERT INTO @tmptable
  24845. (
  24846. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24847. )
  24848. SELECT
  24849. TradeID, N'PayerMaxPay', UserID, ProductID, Price, Crdate, IPAddress
  24850. FROM
  24851. [PayerMaxPay]
  24852. WHERE
  24853. Crdate BETWEEN @BeginTime AND @EndTime
  24854. --记录数
  24855. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24856. END
  24857. --9=OPay
  24858. IF(@PayID IN (0, 9))
  24859. BEGIN
  24860. INSERT INTO @tmptable
  24861. (
  24862. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24863. )
  24864. SELECT
  24865. TradeID, N'OPay', UserID, ProductID, Price, Crdate, IPAddress
  24866. FROM
  24867. [OPay]
  24868. WHERE
  24869. Crdate BETWEEN @BeginTime AND @EndTime
  24870. --记录数
  24871. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24872. END
  24873. --10=华为支付
  24874. IF(@PayID IN (0, 10))
  24875. BEGIN
  24876. INSERT INTO @tmptable
  24877. (
  24878. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24879. )
  24880. SELECT
  24881. TradeID, N'华为支付', UserID, ProductID, Price, Crdate, IPAddress
  24882. FROM
  24883. [huaweiPay]
  24884. WHERE
  24885. Crdate BETWEEN @BeginTime AND @EndTime
  24886. --记录数
  24887. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24888. END
  24889. --99=手动补单
  24890. IF(@PayID IN (0, 99))
  24891. BEGIN
  24892. INSERT INTO @tmptable
  24893. (
  24894. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24895. )
  24896. SELECT
  24897. OrderID, N'手动补单', UserID, ProductID, Price, Crdate, '127.0.0.1'
  24898. FROM
  24899. [ManualPay]
  24900. WHERE
  24901. Crdate BETWEEN @BeginTime AND @EndTime
  24902. --记录数
  24903. SET @RecordCount = @@ROWCOUNT + @RecordCount
  24904. END
  24905. END
  24906. --统计总额
  24907. SELECT @TotalAmount = ISNULL(SUM(Price), 0) FROM @tmptable
  24908. ;WITH [List] AS
  24909. (
  24910. SELECT
  24911. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  24912. OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
  24913. FROM
  24914. @tmptable
  24915. )
  24916. --返回信息
  24917. SELECT
  24918. l.OrderID, l.PayChannel, l.UserID, u.NickName, l.ProductID, l.Price,
  24919. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.IPAddress
  24920. FROM
  24921. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  24922. WHERE
  24923. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  24924. ORDER BY
  24925. l.RowNumber ASC
  24926. RETURN
  24927. END
  24928. GO
  24929. /****** Object: StoredProcedure [dbo].[Manage_Pay_GetRank] Script Date: 2024/1/12 11:01:14 ******/
  24930. SET ANSI_NULLS ON
  24931. GO
  24932. SET QUOTED_IDENTIFIER ON
  24933. GO
  24934. -- EXEC [Manage_Pay_GetRank]
  24935. -- ==============================================
  24936. -- Author: wolf
  24937. -- Create Date: 2014-09-09
  24938. -- Mendor: wolf
  24939. -- Alter Date: 2014-12-22
  24940. -- Description: 充值排行
  24941. -- ==============================================
  24942. CREATE PROCEDURE [dbo].[Manage_Pay_GetRank]
  24943. @BeginTime DATETIME, --起始时间
  24944. @EndTime DATETIME, --截止时间
  24945. @PageIndex INT, --页索引
  24946. @PageSize INT, --页大小
  24947. @RecordCount INT OUTPUT --记录数
  24948. AS
  24949. SET NOCOUNT ON
  24950. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  24951. SET XACT_ABORT ON
  24952. BEGIN
  24953. DECLARE @StartRowIndex INT --起始行索引
  24954. DECLARE @EndRowIndex INT --截止行索引
  24955. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  24956. SET @EndRowIndex = @PageIndex * @PageSize
  24957. --表变量
  24958. DECLARE @tmptable TABLE(
  24959. UserID INT NOT NULL, --用户ID
  24960. TotalAmount DECIMAL(18, 2) NOT NULL --金额
  24961. )
  24962. --初始化表变量
  24963. INSERT INTO @tmptable(UserID, TotalAmount)
  24964. SELECT
  24965. UserID, SUM(RMBMoney)
  24966. FROM
  24967. [UserPayLog]
  24968. WHERE
  24969. DateFlag BETWEEN @BeginTime AND @EndTime
  24970. GROUP BY
  24971. UserID
  24972. --记录数
  24973. SET @RecordCount = @@ROWCOUNT
  24974. ;WITH [List] AS
  24975. (
  24976. SELECT
  24977. ROW_NUMBER() OVER(ORDER BY TotalAmount DESC) AS RowNumber,
  24978. UserID, TotalAmount
  24979. FROM
  24980. @tmptable
  24981. )
  24982. --返回信息
  24983. SELECT
  24984. t.RowNumber, t.UserID, u.NickName, t.TotalAmount
  24985. FROM
  24986. [List] t INNER JOIN [AllUser] u ON t.UserID = u.UserID
  24987. WHERE
  24988. t.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  24989. ORDER BY
  24990. t.RowNumber ASC
  24991. RETURN
  24992. END
  24993. GO
  24994. /****** Object: StoredProcedure [dbo].[Manage_Pay_GetUserList] Script Date: 2024/1/12 11:01:14 ******/
  24995. SET ANSI_NULLS ON
  24996. GO
  24997. SET QUOTED_IDENTIFIER ON
  24998. GO
  24999. -- EXEC [Manage_Pay_GetUserList]
  25000. -- =============================================
  25001. -- Author: wolf
  25002. -- Create Date: 2016-10-21
  25003. -- Mendor: wolf
  25004. -- Alter Date: 2016-10-21
  25005. -- Description: 后台用户充值列表
  25006. -- =============================================
  25007. CREATE PROCEDURE [dbo].[Manage_Pay_GetUserList]
  25008. @DateFlag SMALLDATETIME, --日期标识
  25009. @PageIndex INT, --页索引
  25010. @PageSize INT, --页大小
  25011. @RecordCount INT OUTPUT --记录数
  25012. AS
  25013. SET NOCOUNT ON
  25014. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25015. SET XACT_ABORT ON
  25016. BEGIN
  25017. DECLARE @StartRowIndex INT --起始行索引
  25018. DECLARE @EndRowIndex INT --截止行索引
  25019. --创建临时表
  25020. DECLARE @tmptable TABLE(
  25021. UserID INT NOT NULL, --用户ID
  25022. Amount BIGINT NOT NULL, --金币
  25023. VipLevel INT NOT NULL, --VIP等级
  25024. RMBMoney DECIMAL(18, 2) NOT NULL --充值金额
  25025. )
  25026. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  25027. SET @EndRowIndex = @PageIndex * @PageSize
  25028. --初始化表变量
  25029. INSERT INTO @tmptable
  25030. (
  25031. UserID, Amount, VipLevel, RMBMoney
  25032. )
  25033. SELECT
  25034. UserID, 0, 0, RMBMoney
  25035. FROM
  25036. [UserPayLog]
  25037. WHERE
  25038. DateFlag = @DateFlag
  25039. --记录数
  25040. SET @RecordCount = @@ROWCOUNT
  25041. --获取金豆信息
  25042. UPDATE t SET t.Amount = m.Amount FROM @tmptable t INNER JOIN [Money] m ON t.UserID = m.UserID
  25043. --获取vip
  25044. UPDATE t SET t.VipLevel = v.VipLevel FROM @tmptable t INNER JOIN [UserVip] v ON t.UserID = v.UserID
  25045. ;WITH [List] AS
  25046. (
  25047. SELECT
  25048. ROW_NUMBER() OVER(ORDER BY RMBMoney DESC) AS RowNumber,
  25049. UserID, Amount, VIPLevel, RMBMoney
  25050. FROM
  25051. @tmptable
  25052. )
  25053. --返回信息
  25054. SELECT
  25055. l.RowNumber, l.UserID, u.NickName, l.Amount, l.VIPLevel, l.RMBMoney, u.PayMoney,
  25056. CONVERT(CHAR(23), u.RegTime, 120) AS RegTime, u.RegIP,
  25057. CONVERT(CHAR(23), u.LoginTime, 120) AS LoginTime
  25058. FROM
  25059. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  25060. WHERE
  25061. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  25062. ORDER BY
  25063. l.RowNumber ASC
  25064. RETURN
  25065. END
  25066. GO
  25067. /****** Object: StoredProcedure [dbo].[Manage_PayerMaxOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
  25068. SET ANSI_NULLS ON
  25069. GO
  25070. SET QUOTED_IDENTIFIER ON
  25071. GO
  25072. -- EXEC [Manage_PayerMaxOrder_GetList]
  25073. -- ==============================================
  25074. -- Author: wolf
  25075. -- Create Date: 2016-07-21
  25076. -- Mendor: wolf
  25077. -- Alter Date: 2022-11-07
  25078. -- Description: PayerMaxPay--获取订单列表
  25079. -- ==============================================
  25080. CREATE PROCEDURE [dbo].[Manage_PayerMaxOrder_GetList]
  25081. @UserID INT, --用户ID
  25082. @BeginTime DATETIME, --开始时间
  25083. @EndTime DATETIME, --截止时间
  25084. @PageIndex INT, --页索引
  25085. @PageSize INT, --页大小
  25086. @RecordCount INT OUTPUT, --总记录数
  25087. @TotalRMBMoney INT OUTPUT, --成功充值数
  25088. @UserCount INT OUTPUT --下订单用户数
  25089. AS
  25090. SET NOCOUNT ON
  25091. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25092. SET XACT_ABORT ON
  25093. BEGIN
  25094. DECLARE @StartRowIndex INT --起始行索引
  25095. DECLARE @EndRowIndex INT --截止行索引
  25096. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  25097. SET @EndRowIndex = @PageIndex * @PageSize
  25098. --创建临时表
  25099. DECLARE @tmptable TABLE(
  25100. OrderID VARCHAR(32) NOT NULL, --订单号
  25101. TradeID VARCHAR(64) NOT NULL, --交易号
  25102. UserID INT NOT NULL, --用户ID
  25103. ProductID VARCHAR(32) NOT NULL, --产品ID
  25104. Price DECIMAL(18, 2) NOT NULL, --价格
  25105. GetStatus TINYINT NOT NULL, --状态
  25106. PartnerID INT NOT NULL, --渠道ID
  25107. IPAddress VARCHAR(16) NOT NULL, --IP地址
  25108. Crdate DATETIME NOT NULL --时间
  25109. )
  25110. --用户ID查询
  25111. IF(@UserID > 0)
  25112. BEGIN
  25113. INSERT INTO @tmptable
  25114. (
  25115. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  25116. )
  25117. SELECT
  25118. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  25119. FROM
  25120. [PayerMaxOrder]
  25121. WHERE
  25122. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  25123. ORDER BY
  25124. Crdate DESC
  25125. END
  25126. --所有订单
  25127. ELSE
  25128. BEGIN
  25129. INSERT INTO @tmptable
  25130. (
  25131. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  25132. )
  25133. SELECT
  25134. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  25135. FROM
  25136. [PayerMaxOrder]
  25137. WHERE
  25138. Crdate BETWEEN @BeginTime AND @EndTime
  25139. ORDER BY
  25140. Crdate DESC
  25141. END
  25142. --总记录数
  25143. SET @RecordCount = @@ROWCOUNT
  25144. --成功充值总额
  25145. SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
  25146. SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
  25147. ;WITH [List] AS
  25148. (
  25149. SELECT
  25150. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  25151. OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
  25152. FROM
  25153. @tmptable
  25154. )
  25155. --返回信息
  25156. SELECT
  25157. l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
  25158. ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
  25159. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  25160. FROM
  25161. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  25162. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  25163. WHERE
  25164. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  25165. ORDER BY
  25166. l.RowNumber ASC
  25167. RETURN
  25168. END
  25169. GO
  25170. /****** Object: StoredProcedure [dbo].[Manage_PayStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  25171. SET ANSI_NULLS ON
  25172. GO
  25173. SET QUOTED_IDENTIFIER ON
  25174. GO
  25175. -- DECLARE @RecordCount INT
  25176. -- EXEC [Manage_PayStat_GetList]
  25177. -- @BeginTime = '',
  25178. -- @EndTime = '',
  25179. -- @PageIndex = 1,
  25180. -- @PageSize = 10,
  25181. -- @RecordCount = @RecordCount OUTPUT
  25182. -- SELECT @RecordCount AS RecordCount
  25183. -- ==============================================
  25184. -- Author: wolf
  25185. -- Create Date: 2016-11-17
  25186. -- Mendor: wolf
  25187. -- Alter Date: 2016-11-17
  25188. -- Description: 充值统计列表
  25189. -- ==============================================
  25190. CREATE PROCEDURE [dbo].[Manage_PayStat_GetList]
  25191. @BeginTime DATETIME, --开始时间
  25192. @EndTime DATETIME, --结束时间
  25193. @PageIndex INT, --页索引
  25194. @PageSize INT, --页大小
  25195. @RecordCount INT OUTPUT --总记录数
  25196. AS
  25197. SET NOCOUNT ON
  25198. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25199. SET XACT_ABORT ON
  25200. BEGIN
  25201. DECLARE @StartIndex INT --起始索引
  25202. DECLARE @EndIndex INT --截止索引
  25203. --创建临时表
  25204. CREATE TABLE #tmptable(
  25205. DateFlag SMALLDATETIME NOT NULL, --日期标志
  25206. RMBMoney DECIMAL(18, 2) NOT NULL, --充值金额
  25207. UserCount INT NOT NULL, --充值用户数(除去重复的)
  25208. LastRMBMoney DECIMAL(18, 2) NOT NULL, --昨天充值金额
  25209. LastUserCount INT NOT NULL --昨天充值用户数(除去重复的)
  25210. )
  25211. --创建临时表
  25212. CREATE TABLE #tmpLast(
  25213. DateFlag SMALLDATETIME NOT NULL, --日期标志
  25214. RMBMoney DECIMAL(18, 2) NOT NULL, --充值金额
  25215. UserCount INT NOT NULL --充值用户数(除去重复的)
  25216. )
  25217. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  25218. SET @EndIndex = @PageIndex * @PageSize
  25219. SET @RecordCount = 0
  25220. --初始化临时表
  25221. INSERT INTO #tmptable(DateFlag, RMBMoney, UserCount, LastRMBMoney, LastUserCount)
  25222. SELECT
  25223. DateFlag, SUM(RMBMoney), SUM(UserCount), 0, 0
  25224. FROM
  25225. [PayStat]
  25226. WHERE
  25227. DateFlag BETWEEN @BeginTime AND @EndTime
  25228. GROUP BY
  25229. DateFlag
  25230. --总记录数
  25231. SET @RecordCount = @@ROWCOUNT
  25232. --初始化临时表
  25233. INSERT INTO #tmpLast(DateFlag, RMBMoney, UserCount)
  25234. SELECT
  25235. DateFlag, SUM(RMBMoney), SUM(UserCount)
  25236. FROM
  25237. [PayStat]
  25238. WHERE
  25239. DateFlag BETWEEN @BeginTime - 1 AND @EndTime - 1
  25240. GROUP BY
  25241. DateFlag
  25242. --获取昨天的充值统计
  25243. UPDATE
  25244. t
  25245. SET
  25246. t.LastRMBMoney = l.RMBMoney, t.LastUserCount = l.UserCount
  25247. FROM
  25248. #tmptable t INNER JOIN #tmpLast l ON t.DateFlag = l.DateFlag + 1
  25249. ;WITH [List] AS
  25250. (
  25251. SELECT
  25252. ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
  25253. DateFlag, RMBMoney, UserCount, LastRMBMoney, LastUserCount
  25254. FROM
  25255. #tmptable
  25256. )
  25257. --返回信息:日期标志(DateFlag)(datetime)
  25258. SELECT
  25259. CONVERT(CHAR(16), DateFlag, 120) AS DateFlag,
  25260. RMBMoney, UserCount, LastRMBMoney, LastUserCount
  25261. FROM
  25262. [List]
  25263. WHERE
  25264. RowNumber BETWEEN @StartIndex AND @EndIndex
  25265. ORDER BY
  25266. RowNumber
  25267. --删除临时表
  25268. DROP TABLE #tmptable
  25269. DROP TABLE #tmpLast
  25270. RETURN
  25271. END
  25272. GO
  25273. /****** Object: StoredProcedure [dbo].[Manage_PlatformConfig_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  25274. SET ANSI_NULLS ON
  25275. GO
  25276. SET QUOTED_IDENTIFIER ON
  25277. GO
  25278. -- EXEC [Manage_PlatformConfig_GetInfo]
  25279. -- ==============================================
  25280. -- Author: wolf
  25281. -- Create Date: 2015-03-13
  25282. -- Mendor: wolf
  25283. -- Alter Date: 2017-02-16
  25284. -- Description: 获取平台配置信息
  25285. -- ==============================================
  25286. CREATE PROCEDURE [dbo].[Manage_PlatformConfig_GetInfo]
  25287. AS
  25288. SET NOCOUNT ON
  25289. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25290. SET XACT_ABORT ON
  25291. BEGIN
  25292. SELECT
  25293. RegGoldSend, DailyTransferAmount, BindFacebook, BindMobile, UpgradeAPK, IsCouponTask
  25294. FROM
  25295. [PlatformConfig]
  25296. WHERE
  25297. ConfigID = 1
  25298. RETURN
  25299. END
  25300. GO
  25301. /****** Object: StoredProcedure [dbo].[Manage_PlatformConfig_Update] Script Date: 2024/1/12 11:01:14 ******/
  25302. SET ANSI_NULLS ON
  25303. GO
  25304. SET QUOTED_IDENTIFIER ON
  25305. GO
  25306. -- EXEC [Manage_PlatformConfig_Update]
  25307. -- ==============================================
  25308. -- Author: wolf
  25309. -- Create Date: 2015-03-13
  25310. -- Mendor: wolf
  25311. -- Alter Date: 2017-02-16
  25312. -- Description: 修改平台配置信息
  25313. -- ==============================================
  25314. CREATE PROCEDURE [dbo].[Manage_PlatformConfig_Update]
  25315. @OpUserID INT, --操作员ID
  25316. @OpUserName VARCHAR(32), --操作员名称
  25317. @RegGoldSend INT, --注册赠送金币
  25318. @DailyTransferAmount BIGINT, --日转账限额
  25319. @BindFacebook INT, --绑定Facebook
  25320. @BindMobile INT, --绑定手机号
  25321. @UpgradeAPK INT, --升级APK
  25322. @IPAddress VARCHAR(16), --IP地址
  25323. @RetCode TINYINT OUTPUT --操作结果
  25324. AS
  25325. SET NOCOUNT ON
  25326. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25327. SET XACT_ABORT ON
  25328. BEGIN
  25329. DECLARE @Msg NVARCHAR(4000) --操作描述
  25330. DECLARE @CurrRegGoldSend INT
  25331. SET @RetCode = 0
  25332. --更新
  25333. UPDATE
  25334. [PlatformConfig]
  25335. SET
  25336. RegGoldSend = @RegGoldSend, DailyTransferAmount = @DailyTransferAmount, BindFacebook = @BindFacebook,
  25337. BindMobile = @BindMobile, UpgradeAPK = @UpgradeAPK,
  25338. @CurrRegGoldSend = RegGoldSend
  25339. WHERE
  25340. ConfigID = 1
  25341. SET @Msg = N'修改平台配置信息,RegGoldSend=' + CAST(@RegGoldSend AS VARCHAR(32))
  25342. --添加日志
  25343. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  25344. SET @RetCode = 1
  25345. RETURN
  25346. END
  25347. GO
  25348. /****** Object: StoredProcedure [dbo].[Manage_PlatformInfo_GetList] Script Date: 2024/1/12 11:01:14 ******/
  25349. SET ANSI_NULLS ON
  25350. GO
  25351. SET QUOTED_IDENTIFIER ON
  25352. GO
  25353. -- EXEC [Manage_PlatformInfo_GetList]
  25354. -- @PartnerID = 0
  25355. -- ==============================================
  25356. -- Author: wolf
  25357. -- Create Date: 2015-09-07
  25358. -- Mendor: wolf
  25359. -- Alter Date: 2015-11-12
  25360. -- Description: 获取平台信息
  25361. -- ==============================================
  25362. CREATE PROCEDURE [dbo].[Manage_PlatformInfo_GetList]
  25363. @PartnerID INT --渠道
  25364. AS
  25365. SET NOCOUNT ON
  25366. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25367. SET XACT_ABORT ON
  25368. BEGIN
  25369. --获取某渠道信息
  25370. IF(@PartnerID >= 0)
  25371. BEGIN
  25372. --返回信息:渠道ID(PartnerID)(int)、版本(Version)(varchar(16))、下载(Download)(varchar(128))
  25373. SELECT
  25374. PartnerID, Version, Download, ApplePartnerID, ProductStart
  25375. FROM
  25376. [PlatformInfo]
  25377. WHERE
  25378. PartnerID = @PartnerID
  25379. RETURN
  25380. END
  25381. --返回信息:渠道ID(PartnerID)(int)、版本(Version)(varchar(16))、下载(Download)(varchar(128))
  25382. SELECT
  25383. PartnerID, Version, Download, ApplePartnerID, ProductStart
  25384. FROM
  25385. [PlatformInfo]
  25386. ORDER BY
  25387. PartnerID ASC
  25388. RETURN
  25389. END
  25390. GO
  25391. /****** Object: StoredProcedure [dbo].[Manage_PlatformInfo_Update] Script Date: 2024/1/12 11:01:14 ******/
  25392. SET ANSI_NULLS ON
  25393. GO
  25394. SET QUOTED_IDENTIFIER ON
  25395. GO
  25396. -- EXEC [Manage_PlatformInfo_Update]
  25397. -- @OpUserID = 1,
  25398. -- @OpUserName = '',
  25399. -- @PartnerID = 1,
  25400. -- @Version = '',
  25401. -- @IPAddress = ''
  25402. -- ==============================================
  25403. -- Author: wolf
  25404. -- Create Date: 2015-09-07
  25405. -- Mendor: wolf
  25406. -- Alter Date: 2015-09-07
  25407. -- Description: 平台信息修改
  25408. -- ==============================================
  25409. CREATE PROCEDURE [dbo].[Manage_PlatformInfo_Update]
  25410. @OpUserID INT, --操作员ID
  25411. @OpUserName VARCHAR(32), --操作员
  25412. @PartnerID INT, --渠道
  25413. @Version VARCHAR(16), --版本号
  25414. @IPAddress VARCHAR(16), --IP地址
  25415. @Download VARCHAR(128) --下载地址
  25416. AS
  25417. SET NOCOUNT ON
  25418. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25419. SET XACT_ABORT ON
  25420. BEGIN
  25421. DECLARE @Msg NVARCHAR(4000) --操作描述
  25422. --修改当前游戏版本号
  25423. UPDATE
  25424. [PlatformInfo]
  25425. SET
  25426. Version = @Version, Download = @Download
  25427. WHERE
  25428. PartnerID = @PartnerID
  25429. SET @Msg = N'Modify platform information, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@Version=' + @Version + ',@Download=' + @Download
  25430. --添加日志
  25431. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  25432. RETURN
  25433. END
  25434. GO
  25435. /****** Object: StoredProcedure [dbo].[Manage_PrivateRoom_GetChairHistory] Script Date: 2024/1/12 11:01:14 ******/
  25436. SET ANSI_NULLS ON
  25437. GO
  25438. SET QUOTED_IDENTIFIER ON
  25439. GO
  25440. -- EXEC [Manage_PrivateRoom_GetChairHistory]
  25441. -- ==============================================
  25442. -- Author: wolf
  25443. -- Create Date: 2014-12-29
  25444. -- Mendor: wolf
  25445. -- Alter Date: 2015-06-01
  25446. -- Description: 私人场椅子历史
  25447. -- ==============================================
  25448. CREATE PROCEDURE [dbo].[Manage_PrivateRoom_GetChairHistory]
  25449. @RoomID BIGINT --房间ID
  25450. AS
  25451. SET NOCOUNT ON
  25452. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25453. SET XACT_ABORT ON
  25454. BEGIN
  25455. SELECT
  25456. c.ChairNo, c.UserID, u.NickName, c.Fee, c.Tax, c.AwardAmount, c.Score
  25457. FROM
  25458. [ChairHistory] c LEFT JOIN [AllUser] u ON c.UserID = u.UserID
  25459. WHERE
  25460. c.RoomID = @RoomID
  25461. ORDER BY
  25462. c.ChairNo ASC
  25463. RETURN
  25464. END
  25465. GO
  25466. /****** Object: StoredProcedure [dbo].[Manage_PrivateRoom_GetHistoryList] Script Date: 2024/1/12 11:01:14 ******/
  25467. SET ANSI_NULLS ON
  25468. GO
  25469. SET QUOTED_IDENTIFIER ON
  25470. GO
  25471. -- EXEC [Manage_PrivateRoom_GetHistoryList]
  25472. -- ==============================================
  25473. -- Author: wolf
  25474. -- Create Date: 2014-12-29
  25475. -- Mendor: wolf
  25476. -- Alter Date: 2015-06-01
  25477. -- Description: 私人场历史
  25478. -- ==============================================
  25479. CREATE PROCEDURE [dbo].[Manage_PrivateRoom_GetHistoryList]
  25480. @UserID INT, --用户ID
  25481. @OwnerUserID INT, --创建者
  25482. @GameID INT, --游戏ID
  25483. @RoomNo VARCHAR(32), --房间号
  25484. @BeginTime DATETIME, --开始时间
  25485. @EndTime DATETIME, --截止时间
  25486. @PageIndex INT, --页索引
  25487. @PageSize INT, --页大小
  25488. @RecordCount INT OUTPUT --记录数
  25489. AS
  25490. SET NOCOUNT ON
  25491. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25492. SET XACT_ABORT ON
  25493. BEGIN
  25494. DECLARE @StartRowIndex INT --起始行索引
  25495. DECLARE @EndRowIndex INT --截止行索引
  25496. --变量用户
  25497. DECLARE @tmpRoom TABLE(
  25498. RoomID BIGINT NOT NULL --房间ID
  25499. )
  25500. --表变量
  25501. DECLARE @tmptable TABLE(
  25502. RoomID BIGINT NOT NULL, --标识
  25503. RoomNo VARCHAR(32) NOT NULL, --房间号
  25504. GameID INT NOT NULL, --游戏ID
  25505. OwnerUserID INT NOT NULL, --创建者
  25506. BeginTime DATETIME NOT NULL, --开始时间
  25507. EndTime DATETIME NOT NULL, --结束时间
  25508. TotalAwardAmount BIGINT NOT NULL, --奖金
  25509. TotalFee BIGINT NOT NULL, --总费用(报名)
  25510. TotalTax BIGINT NOT NULL, --总税收
  25511. ExtInfo VARCHAR(1024) NOT NULL, --扩展信息
  25512. Crdate DATETIME NOT NULL --创建时间
  25513. )
  25514. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  25515. SET @EndRowIndex = @PageIndex * @PageSize
  25516. --查询某个用户
  25517. IF(@UserID > 0)
  25518. BEGIN
  25519. INSERT INTO @tmpRoom(RoomID)
  25520. SELECT DISTINCT
  25521. RoomID
  25522. FROM
  25523. [ChairHistory]
  25524. WHERE
  25525. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  25526. INSERT INTO @tmptable
  25527. (
  25528. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25529. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25530. )
  25531. SELECT
  25532. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25533. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25534. FROM
  25535. [RoomHistory]
  25536. WHERE
  25537. Crdate BETWEEN @BeginTime AND @EndTime AND RoomID IN (SELECT RoomID FROM @tmpRoom)
  25538. END
  25539. --查询创建者
  25540. ELSE IF(@OwnerUserID > 0)
  25541. BEGIN
  25542. INSERT INTO @tmptable
  25543. (
  25544. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25545. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25546. )
  25547. SELECT
  25548. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25549. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25550. FROM
  25551. [RoomHistory]
  25552. WHERE
  25553. Crdate BETWEEN @BeginTime AND @EndTime AND OwnerUserID = @OwnerUserID
  25554. END
  25555. --查询某个游戏
  25556. ELSE IF(@GameID > 0)
  25557. BEGIN
  25558. INSERT INTO @tmptable
  25559. (
  25560. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25561. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25562. )
  25563. SELECT
  25564. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25565. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25566. FROM
  25567. [RoomHistory]
  25568. WHERE
  25569. Crdate BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  25570. END
  25571. --查询房间号
  25572. ELSE IF(@RoomNo != '')
  25573. BEGIN
  25574. INSERT INTO @tmptable
  25575. (
  25576. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25577. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25578. )
  25579. SELECT
  25580. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25581. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25582. FROM
  25583. [RoomHistory]
  25584. WHERE
  25585. Crdate BETWEEN @BeginTime AND @EndTime AND RoomNo = @RoomNo
  25586. END
  25587. ELSE
  25588. BEGIN
  25589. INSERT INTO @tmptable
  25590. (
  25591. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25592. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25593. )
  25594. SELECT
  25595. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25596. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25597. FROM
  25598. [RoomHistory]
  25599. WHERE
  25600. Crdate BETWEEN @BeginTime AND @EndTime
  25601. END
  25602. --记录数
  25603. SET @RecordCount = @@ROWCOUNT
  25604. ;WITH [List] AS
  25605. (
  25606. SELECT
  25607. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  25608. RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  25609. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  25610. FROM
  25611. @tmptable
  25612. )
  25613. --返回信息
  25614. SELECT
  25615. l.RoomID, l.RoomNo, l.GameID, g.EnglishName, l.OwnerUserID, ISNULL(u.NickName, N'比赛创建') AS OwnerNickName,
  25616. CONVERT(VARCHAR(20), l.BeginTime, 120) AS BeginTime, CONVERT(VARCHAR(20), l.EndTime, 120) AS EndTime,
  25617. l.TotalAwardAmount, l.TotalFee, l.TotalTax, l.ExtInfo, CONVERT(VARCHAR(20), l.Crdate, 120) AS Crdate,
  25618. DATEDIFF(SECOND, l.BeginTime, l.EndTime) AS PlaySeconds,
  25619. DATEDIFF(SECOND, l.Crdate, l.BeginTime) AS WaitSeconds
  25620. FROM
  25621. [List] l LEFT JOIN [AllUser] u ON l.OwnerUserID = u.UserID
  25622. INNER JOIN [AllGame] g ON l.GameID = g.GameID
  25623. WHERE
  25624. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  25625. ORDER BY
  25626. l.RowNumber ASC
  25627. RETURN
  25628. END
  25629. GO
  25630. /****** Object: StoredProcedure [dbo].[Manage_Rank_GetList] Script Date: 2024/1/12 11:01:14 ******/
  25631. SET ANSI_NULLS ON
  25632. GO
  25633. SET QUOTED_IDENTIFIER ON
  25634. GO
  25635. -- EXEC [Manage_Rank_GetList]
  25636. -- @UserID = 0
  25637. -- @NickName = '0'
  25638. -- @RankType = 1
  25639. -- @BeginTime = '2023-08-01 00:00:00'
  25640. -- @EndTime = '2023-08-31 23:59:59'
  25641. -- @PageIndex = 1
  25642. -- @PageSize = 50
  25643. -- @RecordCount = 0
  25644. -- ==============================================
  25645. -- Author: wolf
  25646. -- Create Date: 2023-08-18
  25647. -- Mendor: wolf
  25648. -- Alter Date: 2023-08-18
  25649. -- Description: 获取排行榜榜单列表
  25650. -- ==============================================
  25651. CREATE PROCEDURE [dbo].[Manage_Rank_GetList]
  25652. @UserID INT, -- 用户ID
  25653. @NickName NVARCHAR(32), -- 用户昵称
  25654. @RankType INT, -- 榜单类型
  25655. @BeginTime DATETIME, -- 开始时间
  25656. @EndTime DATETIME, -- 结束时间
  25657. @PageIndex INT, -- 页索引
  25658. @PageSize INT, -- 页大小
  25659. @RecordCount INT OUTPUT --记录数
  25660. AS
  25661. SET NOCOUNT ON
  25662. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25663. SET XACT_ABORT ON
  25664. BEGIN
  25665. DECLARE @StartRowIndex INT -- 起始行索引
  25666. DECLARE @EndRowIndex INT -- 截止行索引
  25667. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  25668. SET @EndRowIndex = @PageIndex * @PageSize
  25669. DECLARE @tmptable TABLE(
  25670. RankType INT NOT NULL, --榜单类型
  25671. Rank INT NOT NULL, --排名
  25672. UserID INT NOT NULL, --用户ID
  25673. Amount BIGINT NOT NULL, --赢得金币数
  25674. Crdate DATETIME NOT NULL, --时间
  25675. IsGift TINYINT NOT NULL, --是否领取
  25676. NickName NVARCHAR(32) NOT NULL --用户昵称
  25677. )
  25678. IF(@RankType = 1)
  25679. BEGIN
  25680. -- 财富榜
  25681. INSERT INTO @tmptable
  25682. (
  25683. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25684. )
  25685. SELECT
  25686. @RankType,
  25687. ROW_NUMBER() OVER(ORDER BY SUM(t.Amount) DESC, MAX(t.RefreshTime) ASC) AS Rank,
  25688. t.UserID, SUM(t.Amount), MAX(t.RefreshTime), 1, u.NickName
  25689. FROM
  25690. [Money] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
  25691. WHERE
  25692. t.RefreshTime BETWEEN @BeginTime AND @EndTime
  25693. AND t.UserID = CASE -- 指定某个用户ID
  25694. WHEN @UserID > 0 THEN @UserID
  25695. ELSE t.UserID
  25696. END
  25697. AND u.NickName = CASE -- 指定某个用户昵称
  25698. WHEN @NickName != '' then @NickName
  25699. ELSE u.NickName
  25700. END
  25701. GROUP BY
  25702. t.UserID, u.NickName
  25703. END
  25704. ELSE IF(@RankType IN (2, 3, 4))
  25705. BEGIN
  25706. -- 每日(周、月)赚金榜
  25707. INSERT INTO @tmptable
  25708. (
  25709. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25710. )
  25711. SELECT
  25712. @RankType,
  25713. ROW_NUMBER() OVER(ORDER BY SUM(t.WinAmount) DESC, MAX(t.DateFlag) ASC) AS Rank,
  25714. t.UserID, SUM(t.WinAmount), MAX(t.DateFlag), 1, u.NickName
  25715. FROM
  25716. [DailyBetStat] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
  25717. WHERE
  25718. t.DateFlag BETWEEN @BeginTime AND @EndTime
  25719. AND t.UserID = CASE -- 指定某个用户ID
  25720. WHEN @UserID > 0 THEN @UserID
  25721. ELSE t.UserID
  25722. END
  25723. AND u.NickName = CASE -- 指定某个用户昵称
  25724. WHEN @NickName != '' then @NickName
  25725. ELSE u.NickName
  25726. END
  25727. AND t.WinAmount > 0
  25728. GROUP BY
  25729. t.UserID, u.NickName
  25730. END
  25731. ELSE IF(@RankType = 5)
  25732. BEGIN
  25733. -- 徽章榜
  25734. INSERT INTO @tmptable
  25735. (
  25736. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25737. )
  25738. SELECT
  25739. @RankType,
  25740. ROW_NUMBER() OVER(ORDER BY SUM(t.Points) DESC, MAX(t.Crdate) ASC) AS Rank,
  25741. t.UserID, SUM(t.Points), MAX(t.Crdate), 1, u.NickName
  25742. FROM
  25743. [UserBadge] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
  25744. WHERE
  25745. t.Crdate BETWEEN @BeginTime AND @EndTime
  25746. AND t.UserID = CASE -- 指定某个用户ID
  25747. WHEN @UserID > 0 THEN @UserID
  25748. ELSE t.UserID
  25749. END
  25750. AND u.NickName = CASE -- 指定某个用户昵称
  25751. WHEN @NickName != '' then @NickName
  25752. ELSE u.NickName
  25753. END
  25754. AND t.Points > 0
  25755. GROUP BY
  25756. t.UserID, u.NickName
  25757. END
  25758. ELSE IF(@RankType IN (6, 7))
  25759. BEGIN
  25760. -- 语聊房上(本)周榜
  25761. INSERT INTO @tmptable
  25762. (
  25763. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25764. )
  25765. SELECT
  25766. @RankType,
  25767. ROW_NUMBER() OVER(ORDER BY SUM(t.Exps) DESC, MAX(t.DateFlag) ASC) AS Rank,
  25768. t.RoomID, SUM(t.Exps), MAX(t.DateFlag), 1, u.NickName
  25769. FROM
  25770. [AudioRoomExpLog] AS t INNER JOIN [AllUser] AS u ON t.RoomID = u.UserID
  25771. WHERE
  25772. t.DateFlag BETWEEN @BeginTime AND @EndTime
  25773. AND t.RoomID = CASE -- 指定某个用户ID
  25774. WHEN @UserID > 0 THEN @UserID
  25775. ELSE t.RoomID
  25776. END
  25777. AND u.NickName = CASE -- 指定某个用户昵称
  25778. WHEN @NickName != '' then @NickName
  25779. ELSE u.NickName
  25780. END
  25781. AND t.Exps > 0
  25782. GROUP BY
  25783. t.RoomID, u.NickName
  25784. END
  25785. ELSE IF(@RankType IN (8, 9, 10))
  25786. BEGIN
  25787. -- 魅力日(周、月)榜
  25788. INSERT INTO @tmptable
  25789. (
  25790. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25791. )
  25792. SELECT
  25793. @RankType,
  25794. ROW_NUMBER() OVER(ORDER BY SUM(t.Charm) DESC, MAX(t.DateFlag) ASC) AS Rank,
  25795. t.UserID, SUM(t.Charm), MAX(t.DateFlag), 1, u.NickName
  25796. FROM
  25797. [UserCharmHistory] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
  25798. WHERE
  25799. t.DateFlag BETWEEN @BeginTime AND @EndTime
  25800. AND t.UserID = CASE -- 指定某个用户ID
  25801. WHEN @UserID > 0 THEN @UserID
  25802. ELSE t.UserID
  25803. END
  25804. AND u.NickName = CASE -- 指定某个用户昵称
  25805. WHEN @NickName != '' then @NickName
  25806. ELSE u.NickName
  25807. END
  25808. AND t.Charm > 0
  25809. GROUP BY
  25810. t.UserID, u.NickName
  25811. END
  25812. ELSE IF(@RankType IN (11, 12, 13))
  25813. BEGIN
  25814. -- 语聊房赠送礼物日(周、月)榜
  25815. INSERT INTO @tmptable
  25816. (
  25817. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25818. )
  25819. SELECT
  25820. @RankType,
  25821. ROW_NUMBER() OVER(ORDER BY SUM(t.DiamondAmount) DESC, MAX(t.Crdate) ASC) AS Rank,
  25822. t.Sender, SUM(t.DiamondAmount), MAX(t.Crdate), 1, u.NickName
  25823. FROM
  25824. [AudioRoomGiftHistory] AS t INNER JOIN [AllUser] AS u ON t.Sender = u.UserID
  25825. WHERE
  25826. t.Crdate BETWEEN @BeginTime AND @EndTime
  25827. AND t.Sender = CASE -- 指定某个用户ID
  25828. WHEN @UserID > 0 THEN @UserID
  25829. ELSE t.Sender
  25830. END
  25831. AND u.NickName = CASE -- 指定某个用户昵称
  25832. WHEN @NickName != '' then @NickName
  25833. ELSE u.NickName
  25834. END
  25835. GROUP BY
  25836. t.Sender, u.NickName
  25837. END
  25838. ELSE IF(@RankType IN (14, 15, 16))
  25839. BEGIN
  25840. -- 语聊房接收礼物日(周、月)榜
  25841. INSERT INTO @tmptable
  25842. (
  25843. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25844. )
  25845. SELECT
  25846. @RankType,
  25847. ROW_NUMBER() OVER(ORDER BY SUM(t.DiamondAmount) DESC, MAX(t.Crdate) ASC) AS Rank,
  25848. t.Receiver, SUM(t.DiamondAmount), MAX(t.Crdate), 1, u.NickName
  25849. FROM
  25850. [AudioRoomGiftHistory] AS t INNER JOIN [AllUser] AS u ON t.Receiver = u.UserID
  25851. WHERE
  25852. t.Crdate BETWEEN @BeginTime AND @EndTime
  25853. AND t.Receiver = CASE -- 指定某个用户ID
  25854. WHEN @UserID > 0 THEN @UserID
  25855. ELSE t.Receiver
  25856. END
  25857. AND u.NickName = CASE -- 指定某个用户昵称
  25858. WHEN @NickName != '' then @NickName
  25859. ELSE u.NickName
  25860. END
  25861. GROUP BY
  25862. t.Receiver, u.NickName
  25863. END
  25864. ELSE IF(@RankType IN (17, 18, 19))
  25865. BEGIN
  25866. -- 语聊房房间消耗钻石日(周、月)榜
  25867. INSERT INTO @tmptable
  25868. (
  25869. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25870. )
  25871. SELECT
  25872. @RankType,
  25873. ROW_NUMBER() OVER(ORDER BY SUM(t.DiamondAmount) DESC, MAX(t.Crdate) ASC) AS Rank,
  25874. t.RoomID, SUM(t.DiamondAmount), MAX(t.Crdate), 1, u.NickName
  25875. FROM
  25876. [AudioRoomGiftHistory] AS t INNER JOIN [AllUser] AS u ON t.RoomID = u.UserID
  25877. WHERE
  25878. t.Crdate BETWEEN @BeginTime AND @EndTime
  25879. AND t.RoomID = CASE -- 指定某个用户ID
  25880. WHEN @UserID > 0 THEN @UserID
  25881. ELSE t.RoomID
  25882. END
  25883. AND u.NickName = CASE -- 指定某个用户昵称
  25884. WHEN @NickName != '' then @NickName
  25885. ELSE u.NickName
  25886. END
  25887. GROUP BY
  25888. t.RoomID, u.NickName
  25889. END
  25890. ELSE IF(@RankType IN (20, 21))
  25891. BEGIN
  25892. -- 好友房赢局数日(周)榜
  25893. INSERT INTO @tmptable
  25894. (
  25895. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25896. )
  25897. SELECT
  25898. @RankType,
  25899. ROW_NUMBER() OVER(ORDER BY SUM(t.WinCount) DESC, MAX(t.DateFlag) ASC) AS Rank,
  25900. t.UserID, SUM(t.WinCount), MAX(t.DateFlag), 1, u.NickName
  25901. FROM
  25902. [DailyBetStat] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
  25903. WHERE
  25904. t.DateFlag BETWEEN @BeginTime AND @EndTime
  25905. AND t.UserID = CASE -- 指定某个用户ID
  25906. WHEN @UserID > 0 THEN @UserID
  25907. ELSE t.UserID
  25908. END
  25909. AND u.NickName = CASE -- 指定某个用户昵称
  25910. WHEN @NickName != '' then @NickName
  25911. ELSE u.NickName
  25912. END
  25913. AND t.WinCount > 0
  25914. AND t.ServerName = 'PrivateRoom'
  25915. GROUP BY
  25916. t.UserID, u.NickName
  25917. END
  25918. ELSE
  25919. BEGIN
  25920. -- 所有排行榜
  25921. INSERT INTO @tmptable
  25922. (
  25923. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25924. )
  25925. SELECT
  25926. r.RankType, r.Rank, r.UserID, r.Amount, r.Crdate, r.IsGift, u.NickName
  25927. FROM
  25928. [AllRank] AS r INNER JOIN [AllUser] AS u ON r.UserID = u.UserID
  25929. WHERE
  25930. r.UserID = CASE -- 指定某个用户ID
  25931. WHEN @UserID > 0 THEN @UserID
  25932. ELSE r.UserID
  25933. END
  25934. AND u.NickName = CASE -- 指定某个用户昵称
  25935. WHEN @NickName != '' then @NickName
  25936. ELSE u.NickName
  25937. END
  25938. END
  25939. -- 记录数
  25940. SET @RecordCount = @@ROWCOUNT
  25941. ;WITH [List] AS
  25942. (
  25943. SELECT
  25944. ROW_NUMBER() OVER(ORDER BY RankType ASC, Rank ASC) AS RowNumber,
  25945. RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
  25946. FROM
  25947. @tmptable
  25948. )
  25949. -- 返回信息
  25950. SELECT
  25951. RankType, Rank, UserID, Amount, CONVERT(CHAR(20), Crdate, 120) AS Crdate, IsGift, NickName
  25952. FROM
  25953. [List]
  25954. WHERE
  25955. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  25956. ORDER BY
  25957. RowNumber ASC
  25958. RETURN
  25959. END
  25960. GO
  25961. /****** Object: StoredProcedure [dbo].[Manage_RechargeCard_Gen] Script Date: 2024/1/12 11:01:14 ******/
  25962. SET ANSI_NULLS ON
  25963. GO
  25964. SET QUOTED_IDENTIFIER ON
  25965. GO
  25966. -- EXEC [Manage_RechargeCard_Gen]
  25967. -- ==============================================
  25968. -- Author: wolf
  25969. -- Create Date: 2014-12-29
  25970. -- Mendor: wolf
  25971. -- Alter Date: 2015-06-01
  25972. -- Description: 充值卡生成
  25973. -- ==============================================
  25974. CREATE PROCEDURE [dbo].[Manage_RechargeCard_Gen]
  25975. @GoldAmount BIGINT, --金币
  25976. @CardNum INT --卡数量
  25977. AS
  25978. SET NOCOUNT ON
  25979. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  25980. SET XACT_ABORT ON
  25981. BEGIN
  25982. DECLARE @CardNo VARCHAR(32) --卡号
  25983. DECLARE @Count INT --计数器
  25984. SET @Count = 0
  25985. --遍历生成
  25986. WHILE(@Count <= @CardNum)
  25987. BEGIN
  25988. SET @CardNo = 'P' + SUBSTRING(REPLACE(NEWID(), '-', ''), 1, 7)
  25989. --判断是否已经存在
  25990. IF EXISTS(SELECT CardNo FROM [RechargeCard] WHERE CardNo = @CardNo)
  25991. BEGIN
  25992. PRINT N'计数器=' + LTRIM(STR(@Count)) + N',卡号=' + @CardNo + N',已存在......!'
  25993. CONTINUE
  25994. END
  25995. --计数器+1
  25996. SET @Count = @Count + 1
  25997. --生成数据
  25998. INSERT INTO [RechargeCard]
  25999. (
  26000. CardNo, GoldAmount, UserID, UseTime, Crdate
  26001. )
  26002. VALUES
  26003. (
  26004. @CardNo, @GoldAmount, 0, '2022-01-01', GETDATE()
  26005. )
  26006. PRINT N'计数器=' + LTRIM(STR(@Count)) + N',卡号=' + @CardNo + N',已成功生成!'
  26007. END
  26008. RETURN
  26009. END
  26010. GO
  26011. /****** Object: StoredProcedure [dbo].[Manage_RechargeCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
  26012. SET ANSI_NULLS ON
  26013. GO
  26014. SET QUOTED_IDENTIFIER ON
  26015. GO
  26016. -- EXEC [Manage_RechargeCard_GetList]
  26017. -- ==============================================
  26018. -- Author: wolf
  26019. -- Create Date: 2014-12-29
  26020. -- Mendor: wolf
  26021. -- Alter Date: 2015-06-01
  26022. -- Description: 充值卡列表
  26023. -- ==============================================
  26024. CREATE PROCEDURE [dbo].[Manage_RechargeCard_GetList]
  26025. @UserID INT, --用户ID
  26026. @Status SMALLINT, --状态 (-1=所有 0=未使用 1=使用)
  26027. @CardNo VARCHAR(32), --卡号
  26028. @PageIndex INT, --页索引
  26029. @PageSize INT, --页大小
  26030. @RecordCount INT OUTPUT, --记录数
  26031. @ErrorTimes INT OUTPUT, --错误次数
  26032. @Crdate VARCHAR(32) OUTPUT --时间
  26033. AS
  26034. SET NOCOUNT ON
  26035. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  26036. SET XACT_ABORT ON
  26037. BEGIN
  26038. DECLARE @StartIndex INT --起始索引
  26039. DECLARE @EndIndex INT --截止索引
  26040. DECLARE @tmptable TABLE(
  26041. CardNo VARCHAR(32) PRIMARY KEY, --卡号
  26042. GoldAmount BIGINT NOT NULL, --金币
  26043. UserID INT NOT NULL, --用户ID
  26044. UseTime DATETIME NOT NULL, --使用时间
  26045. Crdate DATETIME NOT NULL --时间
  26046. )
  26047. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  26048. SET @EndIndex = @PageIndex * @PageSize
  26049. SET @ErrorTimes = 0
  26050. SET @Crdate = '2022-01-01'
  26051. --查询某张卡号
  26052. IF(@CardNo != '')
  26053. BEGIN
  26054. INSERT INTO @tmptable
  26055. (
  26056. CardNo, GoldAmount, UserID, UseTime, Crdate
  26057. )
  26058. SELECT
  26059. CardNo, GoldAmount, UserID, UseTime, Crdate
  26060. FROM
  26061. [RechargeCard]
  26062. WHERE
  26063. CardNo = @CardNo
  26064. END
  26065. --查询某个用户
  26066. ELSE IF(@UserID > 0)
  26067. BEGIN
  26068. --充值卡记录
  26069. SELECT
  26070. @ErrorTimes = ErrorTimes, @Crdate = CONVERT(VARCHAR(20), Crdate, 120)
  26071. FROM
  26072. [RechargeCardLog]
  26073. WHERE
  26074. UserID = @UserID
  26075. INSERT INTO @tmptable
  26076. (
  26077. CardNo, GoldAmount, UserID, UseTime, Crdate
  26078. )
  26079. SELECT
  26080. CardNo, GoldAmount, UserID, UseTime, Crdate
  26081. FROM
  26082. [RechargeCard]
  26083. WHERE
  26084. UserID = @UserID
  26085. END
  26086. --查询未使用情况
  26087. ELSE IF(@Status = 0)
  26088. BEGIN
  26089. INSERT INTO @tmptable
  26090. (
  26091. CardNo, GoldAmount, UserID, UseTime, Crdate
  26092. )
  26093. SELECT
  26094. CardNo, GoldAmount, UserID, UseTime, Crdate
  26095. FROM
  26096. [RechargeCard]
  26097. WHERE
  26098. UserID = @Status
  26099. END
  26100. --查询使用情况
  26101. ELSE IF(@Status > 0)
  26102. BEGIN
  26103. INSERT INTO @tmptable
  26104. (
  26105. CardNo, GoldAmount, UserID, UseTime, Crdate
  26106. )
  26107. SELECT
  26108. CardNo, GoldAmount, UserID, UseTime, Crdate
  26109. FROM
  26110. [RechargeCard]
  26111. WHERE
  26112. UserID > 0
  26113. END
  26114. --查询所有
  26115. ELSE
  26116. BEGIN
  26117. INSERT INTO @tmptable
  26118. (
  26119. CardNo, GoldAmount, UserID, UseTime, Crdate
  26120. )
  26121. SELECT
  26122. CardNo, GoldAmount, UserID, UseTime, Crdate
  26123. FROM
  26124. [RechargeCard]
  26125. END
  26126. SET @RecordCount = @@ROWCOUNT
  26127. ;WITH [List] AS
  26128. (
  26129. SELECT
  26130. ROW_NUMBER() OVER(ORDER BY CardNo ASC) AS RowNumber,
  26131. CardNo, GoldAmount, UserID, UseTime, Crdate
  26132. FROM
  26133. @tmptable
  26134. )
  26135. --返回信息
  26136. SELECT
  26137. l.RowNumber, l.CardNo, l.GoldAmount, l.UserID, ISNULL(u.NickName, '') AS NickName,
  26138. CONVERT(VARCHAR(20), l.UseTime, 120) AS UseTime,
  26139. CONVERT(VARCHAR(20), l.Crdate, 120) AS Crdate
  26140. FROM
  26141. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  26142. WHERE
  26143. l.RowNumber BETWEEN @StartIndex AND @EndIndex
  26144. ORDER BY
  26145. l.RowNumber ASC
  26146. RETURN
  26147. END
  26148. GO
  26149. /****** Object: StoredProcedure [dbo].[Manage_RegStat_GetListByHour] Script Date: 2024/1/12 11:01:14 ******/
  26150. SET ANSI_NULLS ON
  26151. GO
  26152. SET QUOTED_IDENTIFIER ON
  26153. GO
  26154. -- EXEC [Manage_RegStat_GetListByHour]
  26155. -- ==============================================
  26156. -- Author: wolf
  26157. -- Create Date: 2017-01-04
  26158. -- Mendor: wolf
  26159. -- Alter Date: 2017-01-04
  26160. -- Description: 注册统计每小时
  26161. -- ==============================================
  26162. CREATE PROCEDURE [dbo].[Manage_RegStat_GetListByHour]
  26163. @BeginTime DATETIME, --开始时间
  26164. @EndTime DATETIME, --截止时间
  26165. @UserType TINYINT --用户类型(0=所有用户 1=游客 2=Facebook)
  26166. AS
  26167. SET NOCOUNT ON
  26168. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  26169. SET XACT_ABORT ON
  26170. BEGIN
  26171. DECLARE @tmptable TABLE(
  26172. DateFlag SMALLDATETIME NOT NULL, --日期标识
  26173. UserCount INT NOT NULL, --总人数
  26174. Hour_0 INT NOT NULL, --0点钟
  26175. Hour_1 INT NOT NULL, --1点钟
  26176. Hour_2 INT NOT NULL, --2点钟
  26177. Hour_3 INT NOT NULL, --3点钟
  26178. Hour_4 INT NOT NULL, --4点钟
  26179. Hour_5 INT NOT NULL, --5点钟
  26180. Hour_6 INT NOT NULL, --6点钟
  26181. Hour_7 INT NOT NULL, --7点钟
  26182. Hour_8 INT NOT NULL, --8点钟
  26183. Hour_9 INT NOT NULL, --9点钟
  26184. Hour_10 INT NOT NULL, --10点钟
  26185. Hour_11 INT NOT NULL, --11点钟
  26186. Hour_12 INT NOT NULL, --12点钟
  26187. Hour_13 INT NOT NULL, --13点钟
  26188. Hour_14 INT NOT NULL, --14点钟
  26189. Hour_15 INT NOT NULL, --15点钟
  26190. Hour_16 INT NOT NULL, --16点钟
  26191. Hour_17 INT NOT NULL, --17点钟
  26192. Hour_18 INT NOT NULL, --18点钟
  26193. Hour_19 INT NOT NULL, --19点钟
  26194. Hour_20 INT NOT NULL, --20点钟
  26195. Hour_21 INT NOT NULL, --21点钟
  26196. Hour_22 INT NOT NULL, --22点钟
  26197. Hour_23 INT NOT NULL --23点钟
  26198. )
  26199. --1=游客
  26200. IF(@UserType = 1)
  26201. BEGIN
  26202. INSERT INTO @tmptable
  26203. (
  26204. DateFlag, UserCount, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7,
  26205. Hour_8, Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  26206. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  26207. )
  26208. SELECT
  26209. CONVERT(CHAR(10), RegTime, 120), COUNT(UserID),
  26210. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 0 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 1 THEN 1 ELSE 0 END),
  26211. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 2 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 3 THEN 1 ELSE 0 END),
  26212. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 4 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 5 THEN 1 ELSE 0 END),
  26213. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 6 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 7 THEN 1 ELSE 0 END),
  26214. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 8 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 9 THEN 1 ELSE 0 END),
  26215. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 10 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 11 THEN 1 ELSE 0 END),
  26216. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 12 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 13 THEN 1 ELSE 0 END),
  26217. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 14 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 15 THEN 1 ELSE 0 END),
  26218. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 16 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 17 THEN 1 ELSE 0 END),
  26219. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 18 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 19 THEN 1 ELSE 0 END),
  26220. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 20 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 21 THEN 1 ELSE 0 END),
  26221. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 22 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 23 THEN 1 ELSE 0 END)
  26222. FROM
  26223. [AllUser]
  26224. WHERE
  26225. RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei NOT LIKE 'fb%' AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  26226. GROUP BY
  26227. CONVERT(CHAR(10), RegTime, 120)
  26228. END
  26229. --2=Facebook
  26230. ELSE IF(@UserType = 2)
  26231. BEGIN
  26232. INSERT INTO @tmptable
  26233. (
  26234. DateFlag, UserCount, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7,
  26235. Hour_8, Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  26236. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  26237. )
  26238. SELECT
  26239. CONVERT(CHAR(10), RegTime, 120), COUNT(UserID),
  26240. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 0 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 1 THEN 1 ELSE 0 END),
  26241. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 2 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 3 THEN 1 ELSE 0 END),
  26242. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 4 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 5 THEN 1 ELSE 0 END),
  26243. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 6 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 7 THEN 1 ELSE 0 END),
  26244. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 8 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 9 THEN 1 ELSE 0 END),
  26245. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 10 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 11 THEN 1 ELSE 0 END),
  26246. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 12 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 13 THEN 1 ELSE 0 END),
  26247. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 14 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 15 THEN 1 ELSE 0 END),
  26248. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 16 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 17 THEN 1 ELSE 0 END),
  26249. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 18 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 19 THEN 1 ELSE 0 END),
  26250. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 20 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 21 THEN 1 ELSE 0 END),
  26251. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 22 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 23 THEN 1 ELSE 0 END)
  26252. FROM
  26253. [AllUser]
  26254. WHERE
  26255. RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei LIKE 'fb%'
  26256. GROUP BY
  26257. CONVERT(CHAR(10), RegTime, 120)
  26258. END
  26259. ELSE
  26260. BEGIN
  26261. INSERT INTO @tmptable
  26262. (
  26263. DateFlag, UserCount, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7,
  26264. Hour_8, Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  26265. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  26266. )
  26267. SELECT
  26268. CONVERT(CHAR(10), RegTime, 120), COUNT(UserID),
  26269. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 0 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 1 THEN 1 ELSE 0 END),
  26270. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 2 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 3 THEN 1 ELSE 0 END),
  26271. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 4 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 5 THEN 1 ELSE 0 END),
  26272. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 6 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 7 THEN 1 ELSE 0 END),
  26273. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 8 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 9 THEN 1 ELSE 0 END),
  26274. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 10 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 11 THEN 1 ELSE 0 END),
  26275. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 12 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 13 THEN 1 ELSE 0 END),
  26276. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 14 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 15 THEN 1 ELSE 0 END),
  26277. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 16 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 17 THEN 1 ELSE 0 END),
  26278. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 18 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 19 THEN 1 ELSE 0 END),
  26279. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 20 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 21 THEN 1 ELSE 0 END),
  26280. SUM(CASE WHEN DATEPART(HOUR, RegTime) = 22 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 23 THEN 1 ELSE 0 END)
  26281. FROM
  26282. [AllUser]
  26283. WHERE
  26284. RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  26285. GROUP BY
  26286. CONVERT(CHAR(10), RegTime, 120)
  26287. END
  26288. --返回信息
  26289. SELECT
  26290. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, UserCount, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7,
  26291. Hour_8, Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
  26292. Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
  26293. FROM
  26294. @tmptable
  26295. ORDER BY
  26296. DateFlag ASC
  26297. END
  26298. GO
  26299. /****** Object: StoredProcedure [dbo].[Manage_RegStat_GetSourceList] Script Date: 2024/1/12 11:01:14 ******/
  26300. SET ANSI_NULLS ON
  26301. GO
  26302. SET QUOTED_IDENTIFIER ON
  26303. GO
  26304. -- EXEC [Manage_RegStat_GetSourceList]
  26305. -- ==============================================
  26306. -- Author: wolf
  26307. -- Create Date: 2017-01-04
  26308. -- Mendor: wolf
  26309. -- Alter Date: 2017-01-04
  26310. -- Description: 注册来源统计
  26311. -- ==============================================
  26312. CREATE PROCEDURE [dbo].[Manage_RegStat_GetSourceList]
  26313. @BeginTime DATETIME, --开始时间
  26314. @EndTime DATETIME --截止时间
  26315. AS
  26316. SET NOCOUNT ON
  26317. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  26318. SET XACT_ABORT ON
  26319. BEGIN
  26320. DECLARE @tmptable TABLE(
  26321. DateFlag SMALLDATETIME NOT NULL, --日期标识
  26322. SourceName NVARCHAR(32) NOT NULL, --源名名称
  26323. UserCount INT NOT NULL --用户数
  26324. )
  26325. --FaceBook
  26326. INSERT INTO @tmptable
  26327. (
  26328. DateFlag, SourceName, UserCount
  26329. )
  26330. SELECT
  26331. CONVERT(CHAR(10), RegTime, 120), N'Facebook', COUNT(UserID)
  26332. FROM
  26333. [AllUser]
  26334. WHERE
  26335. RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei LIKE 'fb%' AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  26336. GROUP BY
  26337. CONVERT(CHAR(10), RegTime, 120)
  26338. --Google
  26339. INSERT INTO @tmptable
  26340. (
  26341. DateFlag, SourceName, UserCount
  26342. )
  26343. SELECT
  26344. CONVERT(CHAR(10), RegTime, 120), N'Google', COUNT(UserID)
  26345. FROM
  26346. [AllUser]
  26347. WHERE
  26348. RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei LIKE 'gg%' AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  26349. GROUP BY
  26350. CONVERT(CHAR(10), RegTime, 120)
  26351. --游客
  26352. INSERT INTO @tmptable
  26353. (
  26354. DateFlag, SourceName, UserCount
  26355. )
  26356. SELECT
  26357. CONVERT(CHAR(10), RegTime, 120), N'游客', COUNT(UserID)
  26358. FROM
  26359. [AllUser]
  26360. WHERE
  26361. RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei NOT LIKE 'fb%' AND IMei NOT LIKE 'gg%' AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  26362. GROUP BY
  26363. CONVERT(CHAR(10), RegTime, 120)
  26364. --返回信息
  26365. SELECT
  26366. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, SourceName, UserCount
  26367. FROM
  26368. @tmptable
  26369. ORDER BY
  26370. DateFlag ASC, SourceName ASC
  26371. RETURN
  26372. END
  26373. GO
  26374. /****** Object: StoredProcedure [dbo].[Manage_RegStat_GetSubsistList] Script Date: 2024/1/12 11:01:14 ******/
  26375. SET ANSI_NULLS ON
  26376. GO
  26377. SET QUOTED_IDENTIFIER ON
  26378. GO
  26379. -- EXEC [Manage_RegStat_GetSubsistList]
  26380. -- ==============================================
  26381. -- Author: wolf
  26382. -- Create Date: 2014-06-11
  26383. -- Mendor: wolf
  26384. -- Alter Date: 2014-12-29
  26385. -- Description: 注册统计
  26386. -- ==============================================
  26387. CREATE PROCEDURE [dbo].[Manage_RegStat_GetSubsistList]
  26388. @PartnerID INT, --渠道ID
  26389. @BeginTime DATETIME, --开始时间
  26390. @EndTime DATETIME, --结束时间
  26391. @TotalRegCount INT OUTPUT --总注册人数
  26392. AS
  26393. SET NOCOUNT ON
  26394. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  26395. SET XACT_ABORT ON
  26396. BEGIN
  26397. DECLARE @DateFlag SMALLDATETIME --日期标识
  26398. DECLARE @TotalUserCount INT --总注册人数
  26399. --用户信息
  26400. DECLARE @tmpUser TABLE(
  26401. PartnerID INT NOT NULL, --渠道ID
  26402. UserID INT NOT NULL, --用户ID
  26403. RegTime SMALLDATETIME NOT NULL, --注册时间
  26404. PayMoney DECIMAL(18, 2) NOT NULL --充值
  26405. )
  26406. --表变量
  26407. DECLARE @tmptable TABLE(
  26408. DateFlag SMALLDATETIME NOT NULL, --日期标识
  26409. PartnerID INT NOT NULL, --渠道ID
  26410. RegUserCount INT NOT NULL, --注册用户数
  26411. TotalPayMoney DECIMAL(18, 2) NOT NULL, --充值总额
  26412. TotalUserCount INT NOT NULL --注册总人数
  26413. )
  26414. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  26415. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  26416. SET @TotalRegCount = 0
  26417. --查询用户
  26418. INSERT INTO @tmpUser
  26419. (
  26420. PartnerID, UserID, RegTime, PayMoney
  26421. )
  26422. SELECT
  26423. RegPartnerID, UserID, CONVERT(CHAR(10), RegTime, 120), 0
  26424. FROM
  26425. [AllUser]
  26426. WHERE
  26427. RegTime BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
  26428. --获取充值
  26429. UPDATE
  26430. @tmpUser
  26431. SET
  26432. t.PayMoney = p.RMBMoney
  26433. FROM
  26434. @tmpUser t INNER JOIN [UserPayLog] p ON t.UserID = p.UserID AND t.RegTime = p.DateFlag
  26435. --查询某个渠道
  26436. IF(@PartnerID > 0)
  26437. BEGIN
  26438. --初始化表变量
  26439. INSERT INTO @tmptable
  26440. (
  26441. PartnerID, DateFlag, RegUserCount, TotalPayMoney, TotalUserCount
  26442. )
  26443. SELECT
  26444. @PartnerID, RegTime, COUNT(UserID), SUM(PayMoney), 0
  26445. FROM
  26446. @tmpUser
  26447. WHERE
  26448. PartnerID = @PartnerID
  26449. GROUP BY
  26450. RegTime
  26451. END
  26452. ELSE
  26453. BEGIN
  26454. --初始化表变量
  26455. INSERT INTO @tmptable
  26456. (
  26457. PartnerID, DateFlag, RegUserCount, TotalPayMoney, TotalUserCount
  26458. )
  26459. SELECT
  26460. 0, RegTime, COUNT(UserID), SUM(PayMoney), 0
  26461. FROM
  26462. @tmpUser
  26463. GROUP BY
  26464. RegTime
  26465. END
  26466. --总注册数
  26467. SELECT @TotalRegCount = ISNULL(SUM(RegUserCount), 0) FROM @tmptable
  26468. --获取总注册人数
  26469. UPDATE t SET t.TotalUserCount = s.TotalCount FROM @tmptable t INNER JOIN [RegStat] s ON t.DateFlag = s.DateFlag - 1
  26470. --今天
  26471. SELECT TOP 1 @TotalUserCount = TotalCount FROM [RegStat] WHERE DateFlag = @DateFlag ORDER BY DateFlag DESC
  26472. IF(@@ROWCOUNT > 0)
  26473. BEGIN
  26474. UPDATE @tmptable SET TotalUserCount = RegUserCount + @TotalUserCount WHERE DateFlag = @DateFlag
  26475. END
  26476. --返回信息
  26477. SELECT
  26478. CONVERT(CHAR(10), t.DateFlag, 120) AS DateFlag, t.RegUserCount, t.TotalPayMoney,
  26479. ISNULL(p.PartnerName, 'All Channels') AS PartnerName, t.TotalUserCount
  26480. FROM
  26481. @tmptable t LEFT JOIN [Partner] p ON t.PartnerID = p.PartnerID
  26482. ORDER BY
  26483. t.DateFlag DESC
  26484. RETURN
  26485. END
  26486. GO
  26487. /****** Object: StoredProcedure [dbo].[Manage_RetentionStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  26488. SET ANSI_NULLS ON
  26489. GO
  26490. SET QUOTED_IDENTIFIER ON
  26491. GO
  26492. -- DECLARE @RecordCount INT
  26493. -- EXEC [Manage_RetentionStat_GetList]
  26494. -- @PartnerID = 100001,
  26495. -- @BeginTime = '',
  26496. -- @EndTime = '',
  26497. -- @PageIndex = 1,
  26498. -- @PageSize = 10,
  26499. -- @RecordCount = @RecordCount OUTPUT
  26500. -- SELECT @RecordCount AS RecordCount
  26501. -- ==============================================
  26502. -- Author: wolf
  26503. -- Create Date: 2014-06-11
  26504. -- Mendor: wolf
  26505. -- Alter Date: 2015-03-18
  26506. -- Description: 获取留存统计列表
  26507. -- ==============================================
  26508. CREATE PROCEDURE [dbo].[Manage_RetentionStat_GetList]
  26509. @Item VARCHAR(32), --事项(如:全体用户、付费用户、Facebook用户、Google用户)
  26510. @BeginTime DATETIME, --起始时间
  26511. @EndTime DATETIME, --结束时间
  26512. @PageIndex INT, --页索引
  26513. @PageSize INT, --页大小
  26514. @RecordCount INT OUTPUT --总记录数
  26515. AS
  26516. SET NOCOUNT ON
  26517. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  26518. SET XACT_ABORT ON
  26519. BEGIN
  26520. DECLARE @StartIndex INT --起始索引
  26521. DECLARE @EndIndex INT --截止索引
  26522. --创建临时表
  26523. DECLARE @tmptable TABLE(
  26524. DateFlag SMALLDATETIME NOT NULL, --日期标志
  26525. Item VARCHAR(32) NOT NULL, --事项
  26526. UserCount INT NOT NULL, --用户数
  26527. LiveUsers_1 INT NOT NULL, --次日留存
  26528. LiveUsers_3 INT NOT NULL, --3日留存
  26529. LiveUsers_5 INT NOT NULL, --5日留存
  26530. LiveUsers_7 INT NOT NULL, --7日留存
  26531. LiveUsers_15 INT NOT NULL, --15日留存
  26532. LiveUsers_30 INT NOT NULL --30日留存
  26533. )
  26534. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  26535. SET @EndIndex = @PageIndex * @PageSize
  26536. --所有合作商
  26537. IF(LEN(@Item) > 0)
  26538. BEGIN
  26539. INSERT INTO @tmptable
  26540. (
  26541. DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
  26542. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  26543. )
  26544. SELECT
  26545. DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
  26546. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  26547. FROM
  26548. [RetentionStat]
  26549. WHERE
  26550. DateFlag BETWEEN @BeginTime AND @EndTime AND Item = @Item
  26551. END
  26552. ELSE
  26553. BEGIN
  26554. INSERT INTO @tmptable
  26555. (
  26556. DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
  26557. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  26558. )
  26559. SELECT
  26560. DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
  26561. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  26562. FROM
  26563. [RetentionStat]
  26564. WHERE
  26565. DateFlag BETWEEN @BeginTime AND @EndTime
  26566. END
  26567. --总记录数
  26568. SET @RecordCount = @@ROWCOUNT
  26569. ;WITH [List] AS
  26570. (
  26571. SELECT
  26572. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, UserCount DESC) AS RowNumber,
  26573. DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
  26574. LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  26575. FROM
  26576. @tmptable
  26577. )
  26578. --返回信息
  26579. SELECT
  26580. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, Item, UserCount,
  26581. LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
  26582. FROM
  26583. [List]
  26584. WHERE
  26585. RowNumber BETWEEN @StartIndex AND @EndIndex
  26586. ORDER BY
  26587. RowNumber ASC
  26588. RETURN
  26589. END
  26590. GO
  26591. /****** Object: StoredProcedure [dbo].[Manage_Robot_CreateData] Script Date: 2024/1/12 11:01:14 ******/
  26592. SET ANSI_NULLS ON
  26593. GO
  26594. SET QUOTED_IDENTIFIER ON
  26595. GO
  26596. -- EXEC [Manage_Robot_CreateData]
  26597. -- ==============================================
  26598. -- Author: wolf
  26599. -- Create Date: 2023-07-27
  26600. -- Mendor: wolf
  26601. -- Alter Date: 2023-07-27
  26602. -- Description: 创建机器人数据
  26603. -- ==============================================
  26604. CREATE PROCEDURE [dbo].[Manage_Robot_CreateData]
  26605. AS
  26606. SET NOCOUNT ON
  26607. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  26608. SET XACT_ABORT ON
  26609. BEGIN
  26610. -- 删除道具数据记录
  26611. DELETE FROM [UserItem]
  26612. WHERE ItemID IN (
  26613. SELECT
  26614. ItemID
  26615. FROM
  26616. [UserItemLog]
  26617. WHERE
  26618. Remark = '系统添加道具' AND
  26619. IPAddress = '127.0.0.1'
  26620. GROUP BY
  26621. ItemID
  26622. ) AND UserID IN ( SELECT UserID FROM [MachineUser] )
  26623. -- 删除用户道具记录
  26624. DELETE FROM [UserItemLog]
  26625. WHERE LogID IN (
  26626. SELECT
  26627. LogID
  26628. FROM
  26629. UserItemLog
  26630. WHERE
  26631. Remark = '系统添加道具' AND
  26632. IPAddress = '127.0.0.1'
  26633. )
  26634. -- 生成机器人类型
  26635. EXEC [Manage_Robot_GenerateType]
  26636. DECLARE @RefreshTime DATETIME -- 创建日期变量
  26637. DECLARE @Rid INT -- 自增ID
  26638. DECLARE @RobotID INT -- 机器人ID
  26639. DECLARE @RobotType TINYINT -- 机器人类型(0=普通,1=小R,2=中R,3=大R,4=超R)
  26640. DECLARE @AvatarFrame INT -- 头像框
  26641. DECLARE @CardBack INT -- 牌背
  26642. DECLARE @Dice INT -- 骰子
  26643. DECLARE @VipLevel INT -- vip等级
  26644. DECLARE @Gold BIGINT -- 金币
  26645. DECLARE @Charm INT -- 魅力值
  26646. DECLARE @Level INT -- 游戏等级
  26647. DECLARE @Counter INT -- 初始化计数器
  26648. DECLARE @RowCount INT -- 获取待处理数据的总行数
  26649. SET @Counter = 1
  26650. SET @RefreshTime = GETDATE()
  26651. -- 创建临时表变量:记录机器人类型
  26652. DECLARE @tmptable TABLE(
  26653. RowNum INT NOT NULL, -- Rid 正序排序标识
  26654. RobotID INT NOT NULL, -- 机器人ID
  26655. RobotType TINYINT NOT NULL -- 机器人类型(0=普通,1=小R,2=中R,3=大R,4=超R)
  26656. )
  26657. -- 创建临时表变量:记录需要更新的数据
  26658. DECLARE @tempUpdates TABLE(
  26659. RobotID INT NOT NULL, -- 机器人ID
  26660. AvatarFrame INT NOT NULL, -- 头像框
  26661. CardBack INT NOT NULL, -- 牌背
  26662. Dice INT NOT NULL, -- 骰子
  26663. VipLevel INT NOT NULL, -- vip等级
  26664. Gold BIGINT NOT NULL, -- 金币
  26665. Charm INT NOT NULL, -- 魅力值
  26666. Level INT NOT NULL -- 游戏等级
  26667. )
  26668. -- 插入待处理数据到临时表变量
  26669. INSERT INTO @tmptable
  26670. (
  26671. RowNum, RobotID, RobotType
  26672. )
  26673. SELECT
  26674. ROW_NUMBER() OVER (ORDER BY Rid ASC) AS RowNum, RobotID, RobotType
  26675. FROM
  26676. [RobotClassification]
  26677. SET @RowCount = @@ROWCOUNT
  26678. -- 循环处理数据
  26679. WHILE @Counter <= @RowCount
  26680. BEGIN
  26681. -- 获取当前行的数据
  26682. SELECT
  26683. @RobotID = RobotID, @RobotType = RobotType
  26684. FROM
  26685. @tmptable
  26686. WHERE
  26687. RowNum = @Counter
  26688. -- 执行存储过程,获取结果
  26689. EXEC Manage_Robot_GetItemsByRobotType
  26690. @RobotType = @RobotType,
  26691. @AvatarFrame = @AvatarFrame OUTPUT,
  26692. @CardBack = @CardBack OUTPUT,
  26693. @Dice = @Dice OUTPUT,
  26694. @VipLevel = @VipLevel OUTPUT,
  26695. @Gold = @Gold OUTPUT,
  26696. @Charm = @Charm OUTPUT,
  26697. @Level = @Level OUTPUT;
  26698. -- 将需要更新的数据插入到临时表变量中
  26699. INSERT INTO @tempUpdates
  26700. (
  26701. RobotID, AvatarFrame, CardBack, Dice, VipLevel, Gold, Charm, [Level]
  26702. )
  26703. VALUES
  26704. (
  26705. @RobotID, @AvatarFrame, @CardBack, @Dice, @VipLevel, @Gold, @Charm, @Level
  26706. )
  26707. -- 增加计数器
  26708. SET @Counter = @Counter + 1
  26709. END
  26710. -- 批量更新其他表
  26711. -- 道具
  26712. INSERT INTO [UserItem]
  26713. (
  26714. UserID, ItemID, ItemCount, EnegyPoint, Start, Duration
  26715. )
  26716. -- 头像框
  26717. SELECT
  26718. RobotID, AvatarFrame, 1, 0, 0, 0
  26719. FROM
  26720. @tempUpdates
  26721. WHERE
  26722. AvatarFrame > 0
  26723. UNION ALL
  26724. -- 牌背
  26725. SELECT
  26726. RobotID, CardBack, 1, 0, 0, 0
  26727. FROM
  26728. @tempUpdates
  26729. WHERE
  26730. CardBack > 0
  26731. UNION ALL
  26732. -- 骰子
  26733. SELECT
  26734. RobotID, Dice, 1, 0, 0, 0
  26735. FROM
  26736. @tempUpdates
  26737. WHERE
  26738. Dice > 0
  26739. -- 道具记录
  26740. INSERT INTO [UserItemLog]
  26741. (
  26742. UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  26743. )
  26744. -- 头像框
  26745. SELECT
  26746. RobotID, AvatarFrame, 1, 1, 1, '系统添加道具', '127.0.0.1', @RefreshTime
  26747. FROM
  26748. @tempUpdates
  26749. WHERE
  26750. AvatarFrame > 0
  26751. UNION ALL
  26752. -- 牌背
  26753. SELECT
  26754. RobotID, CardBack, 1, 1, 1, '系统添加道具', '127.0.0.1', @RefreshTime
  26755. FROM
  26756. @tempUpdates
  26757. WHERE
  26758. CardBack > 0
  26759. UNION ALL
  26760. -- 骰子
  26761. SELECT
  26762. RobotID, Dice, 1, 1, 1, '系统添加道具', '127.0.0.1', @RefreshTime
  26763. FROM
  26764. @tempUpdates
  26765. WHERE
  26766. Dice > 0
  26767. -- 佩戴:头像框
  26768. MERGE INTO
  26769. [UserDecoration] AS target
  26770. USING
  26771. @tempUpdates AS source ON target.UserID = source.RobotID AND target.DecorationType = 1
  26772. WHEN MATCHED THEN
  26773. UPDATE SET target.ItemID = source.AvatarFrame
  26774. WHEN NOT MATCHED THEN
  26775. INSERT (UserID, DecorationType, ItemID)
  26776. VALUES (source.RobotID, 1, source.AvatarFrame);
  26777. -- 佩戴:牌背
  26778. MERGE INTO
  26779. [UserDecoration] AS target
  26780. USING
  26781. @tempUpdates AS source ON target.UserID = source.RobotID AND target.DecorationType = 6
  26782. WHEN MATCHED THEN
  26783. UPDATE SET target.ItemID = source.CardBack
  26784. WHEN NOT MATCHED THEN
  26785. INSERT (UserID, DecorationType, ItemID)
  26786. VALUES (source.RobotID, 6, source.CardBack);
  26787. -- 佩戴:骰子
  26788. MERGE INTO
  26789. [UserDecoration] AS target
  26790. USING
  26791. @tempUpdates AS source ON target.UserID = source.RobotID AND target.DecorationType = 8
  26792. WHEN MATCHED THEN
  26793. UPDATE SET target.ItemID = source.Dice
  26794. WHEN NOT MATCHED THEN
  26795. INSERT (UserID, DecorationType, ItemID)
  26796. VALUES (source.RobotID, 8, source.Dice);
  26797. -- vip等级
  26798. MERGE INTO
  26799. [UserVip] AS target
  26800. USING
  26801. @tempUpdates AS source ON target.UserID = source.RobotID
  26802. WHEN MATCHED THEN
  26803. UPDATE SET target.VipLevel = source.VipLevel
  26804. WHEN NOT MATCHED THEN
  26805. INSERT (UserID, VipLevel, VipPoint, Expire, DailyPackageClaimDay)
  26806. VALUES (source.RobotID, source.VipLevel, 0, 0, 0);
  26807. -- 金币
  26808. MERGE INTO
  26809. [Money] AS target
  26810. USING
  26811. @tempUpdates AS source ON target.UserID = source.RobotID
  26812. WHEN MATCHED THEN
  26813. UPDATE SET target.Amount = source.Gold
  26814. WHEN NOT MATCHED THEN
  26815. INSERT (UserID, Amount, Bank, RegisterTime, RefreshTime)
  26816. VALUES (source.RobotID, source.Gold, 0, @RefreshTime, @RefreshTime);
  26817. -- 魅力值
  26818. MERGE INTO
  26819. [UserCharm] AS target
  26820. USING
  26821. @tempUpdates AS source ON target.UserID = source.RobotID
  26822. WHEN MATCHED THEN
  26823. UPDATE SET target.Charm = source.Charm
  26824. WHEN NOT MATCHED THEN
  26825. INSERT (UserID, Charm)
  26826. VALUES (source.RobotID, source.Charm);
  26827. -- 游戏等级
  26828. MERGE INTO
  26829. [UserLevel] AS target
  26830. USING
  26831. @tempUpdates AS source ON target.UserID = source.RobotID
  26832. WHEN MATCHED THEN
  26833. UPDATE SET target.Lv = source.Level
  26834. WHEN NOT MATCHED THEN
  26835. INSERT (UserID, Lv, Exp, LoginAward)
  26836. VALUES (source.RobotID, source.Level, 0, 0);
  26837. -- 更新机器人分类(方便查看记录)
  26838. UPDATE rc
  26839. SET
  26840. rc.AvatarFrame = tu.AvatarFrame,
  26841. rc.CardBack = tu.CardBack,
  26842. rc.Dice = tu.Dice,
  26843. rc.VipLevel = tu.VipLevel,
  26844. rc.Gold = tu.Gold,
  26845. rc.Charm = tu.Charm,
  26846. rc.Level = tu.Level
  26847. FROM [RobotClassification] AS rc
  26848. JOIN @tempUpdates AS tu ON rc.RobotID = tu.RobotID
  26849. END
  26850. GO
  26851. /****** Object: StoredProcedure [dbo].[Manage_Robot_GenerateType] Script Date: 2024/1/12 11:01:14 ******/
  26852. SET ANSI_NULLS ON
  26853. GO
  26854. SET QUOTED_IDENTIFIER ON
  26855. GO
  26856. -- EXEC [Manage_Robot_GenerateType]
  26857. -- ==============================================
  26858. -- Author: wolf
  26859. -- Create Date: 2023-07-27
  26860. -- Mendor: wolf
  26861. -- Alter Date: 2023-07-27
  26862. -- Description: 生成机器人类型
  26863. -- ==============================================
  26864. CREATE PROCEDURE [dbo].[Manage_Robot_GenerateType]
  26865. AS
  26866. SET NOCOUNT ON
  26867. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  26868. SET XACT_ABORT ON
  26869. BEGIN
  26870. -- 截断表数据:机器人分类
  26871. TRUNCATE TABLE [RobotClassification]
  26872. DECLARE @Crdate DATETIME -- 创建日期变量
  26873. DECLARE @RowCount INT -- 总记录数
  26874. DECLARE @Counter INT -- 计数器
  26875. DECLARE @Rnd INT -- 随机数
  26876. SET @Rnd = 0 -- 随机数
  26877. SET @Counter = 1 -- 计数器
  26878. SET @Crdate = GETDATE() -- 当前日期
  26879. -- 创建临时表变量
  26880. DECLARE @tmptable TABLE(
  26881. Rid INT IDENTITY NOT NULL, -- 自增
  26882. RobotID INT NOT NULL, -- 机器人ID
  26883. RobotType TINYINT NOT NULL, -- 机器人类型(0=普通,1=小R,2=中R,3=大R,4=超R)
  26884. RobotDesc NVARCHAR(256) NOT NULL, -- 机器人描述
  26885. AvatarFrame INT NOT NULL, -- 头像框
  26886. CardBack INT NOT NULL, -- 牌背
  26887. Dice INT NOT NULL, -- 骰子
  26888. VipLevel INT NOT NULL, -- vip等级
  26889. Gold BIGINT NOT NULL, -- 金币
  26890. Charm INT NOT NULL, -- 魅力值
  26891. Level INT NOT NULL -- 游戏等级
  26892. )
  26893. -- 插入机器人数据
  26894. INSERT INTO @tmptable(
  26895. RobotID, RobotType, RobotDesc, AvatarFrame, CardBack, Dice, VipLevel, Gold, Charm, Level
  26896. )
  26897. SELECT
  26898. UserID, 0, '', 0, 0, 0, 0, 0, 0, 0
  26899. FROM
  26900. [MachineUser]
  26901. -- 总记录数
  26902. SET @RowCount = @@ROWCOUNT
  26903. WHILE @Counter <= @RowCount
  26904. BEGIN
  26905. EXEC [Game_Rand_GetRnd] 1, 100, @Rnd OUTPUT
  26906. UPDATE @tmptable
  26907. SET RobotType =
  26908. CASE
  26909. WHEN @Rnd < 10 THEN 0 -- 普通 10%
  26910. WHEN @Rnd < 45 THEN 1 -- 小R 35%
  26911. WHEN @Rnd < 79 THEN 2 -- 中R 34%
  26912. WHEN @Rnd < 95 THEN 3 -- 大R 16%
  26913. ELSE 4 -- 超R 5%
  26914. END
  26915. WHERE Rid = @Counter
  26916. SET @Counter = @Counter + 1
  26917. END
  26918. -- 插入数据
  26919. INSERT INTO [RobotClassification](
  26920. RobotID, RobotType, RobotDesc, AvatarFrame, CardBack, Dice, VipLevel, Gold, Charm, Level, Crdate
  26921. )
  26922. SELECT
  26923. RobotID, RobotType,
  26924. CASE
  26925. WHEN RobotType = 0 THEN '金币不多、整体看着简单'
  26926. WHEN RobotType = 1 THEN '金币不多、整体看着比普通好一点'
  26927. WHEN RobotType = 2 THEN '金币中等、整体看着稍微高贵一点'
  26928. WHEN RobotType = 3 THEN '金币不多不少、整体看着高贵'
  26929. ELSE '金币很多、整体看着很炫'
  26930. END AS RobotDesc,
  26931. AvatarFrame, CardBack, Dice, VipLevel, Gold, Charm, Level,
  26932. @Crdate
  26933. FROM
  26934. @tmptable
  26935. END
  26936. GO
  26937. /****** Object: StoredProcedure [dbo].[Manage_Robot_GetItemsByRobotType] Script Date: 2024/1/12 11:01:14 ******/
  26938. SET ANSI_NULLS ON
  26939. GO
  26940. SET QUOTED_IDENTIFIER ON
  26941. GO
  26942. -- EXEC [Manage_Robot_GetItemsByRobotType]
  26943. -- ==============================================
  26944. -- Author: wolf
  26945. -- Create Date: 2023-07-27
  26946. -- Mendor: wolf
  26947. -- Alter Date: 2023-07-27
  26948. -- Description: 按机器人类型获取道具
  26949. -- ==============================================
  26950. CREATE PROCEDURE [dbo].[Manage_Robot_GetItemsByRobotType]
  26951. @RobotType INT, -- 机器人类型
  26952. @AvatarFrame INT OUTPUT, -- 头像框
  26953. @CardBack INT OUTPUT, -- 牌背
  26954. @Dice INT OUTPUT, -- 骰子
  26955. @VipLevel INT OUTPUT, -- vip等级
  26956. @Gold BIGINT OUTPUT, -- 金额
  26957. @Charm INT OUTPUT, -- 魅力值
  26958. @Level INT OUTPUT -- 游戏等级
  26959. AS
  26960. SET NOCOUNT ON
  26961. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  26962. SET XACT_ABORT ON
  26963. BEGIN
  26964. DECLARE @Min INT --最小值
  26965. DECLARE @Max INT --最大值
  26966. DECLARE @Rnd INT -- 随机数
  26967. SET @AvatarFrame = 0 -- 头像框
  26968. SET @CardBack = 0 -- 牌背
  26969. SET @Dice = 0 -- 骰子
  26970. SET @VipLevel = 0 -- vip等级
  26971. SET @Gold = 0 -- 金额
  26972. SET @Charm = 0 -- 魅力值
  26973. SET @Level = 0 -- 游戏等级
  26974. SET @Min = 1 -- 最小值
  26975. SET @Max = 100 -- 最大值
  26976. SET @Rnd = 0 -- 随机数
  26977. -- 随机数调用
  26978. EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
  26979. -- 小R
  26980. IF(@RobotType = 1)
  26981. BEGIN
  26982. -- 头像获得概率
  26983. IF(@Rnd <= 50)
  26984. BEGIN
  26985. SET @AvatarFrame = 401050 --C头像框
  26986. END
  26987. ELSE IF(@Rnd <= 90)
  26988. BEGIN
  26989. SET @AvatarFrame = 401020 --B头像框
  26990. END
  26991. ELSE IF(@Rnd <= 95)
  26992. BEGIN
  26993. SET @AvatarFrame = 401030 --D头像框
  26994. END
  26995. ELSE
  26996. BEGIN
  26997. SET @AvatarFrame = 401040 --E头像框
  26998. END
  26999. -- 牌背获得概率
  27000. -- 随机数调用
  27001. EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
  27002. IF(@Rnd <= 65)
  27003. BEGIN
  27004. SET @CardBack = 406050 --C牌背
  27005. END
  27006. ELSE IF(@Rnd <= 75)
  27007. BEGIN
  27008. SET @CardBack = 406030 --B牌背
  27009. END
  27010. ELSE IF(@Rnd <= 85)
  27011. BEGIN
  27012. SET @CardBack = 406020 --D牌背
  27013. END
  27014. ELSE IF(@Rnd <= 90)
  27015. BEGIN
  27016. SET @CardBack = 406010 --E牌背
  27017. END
  27018. ELSE
  27019. BEGIN
  27020. SET @CardBack = 406040 --F牌背
  27021. END
  27022. -- 骰子获得概率
  27023. -- 随机数调用
  27024. EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
  27025. IF(@Rnd <= 30)
  27026. BEGIN
  27027. SET @Dice = 408010 --骰子B
  27028. END
  27029. ELSE IF(@Rnd <= 60)
  27030. BEGIN
  27031. SET @Dice = 408020 --骰子C
  27032. END
  27033. ELSE IF(@Rnd <= 90)
  27034. BEGIN
  27035. SET @Dice = 408040 --骰子D
  27036. END
  27037. ELSE
  27038. BEGIN
  27039. SET @Dice = 408030 --骰子E
  27040. END
  27041. EXEC [Game_Rand_GetRnd] 0, 5, @VipLevel OUTPUT -- vip等级0-5
  27042. EXEC [Game_Rand_GetRnd] 35000, 300000, @Gold OUTPUT -- 金币35k-300k
  27043. EXEC [Game_Rand_GetRnd] 0, 40, @Charm OUTPUT -- 魅力值0-40
  27044. EXEC [Game_Rand_GetRnd] 5, 15, @Level OUTPUT -- 等级5-15
  27045. END
  27046. -- 中R
  27047. ELSE IF(@RobotType = 2)
  27048. BEGIN
  27049. -- 头像获得概率
  27050. IF(@Rnd <= 30)
  27051. BEGIN
  27052. SET @AvatarFrame = 401050 --C头像框
  27053. END
  27054. ELSE IF(@Rnd <= 55)
  27055. BEGIN
  27056. SET @AvatarFrame = 401030 --D头像框
  27057. END
  27058. ELSE IF(@Rnd <= 80)
  27059. BEGIN
  27060. SET @AvatarFrame = 401040 --E头像框
  27061. END
  27062. ELSE
  27063. BEGIN
  27064. SET @AvatarFrame = 401020 --B头像框
  27065. END
  27066. -- 牌背获得概率
  27067. -- 随机数调用
  27068. EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
  27069. IF(@Rnd <= 45)
  27070. BEGIN
  27071. SET @CardBack = 406050 --C牌背
  27072. END
  27073. ELSE IF(@Rnd <= 60)
  27074. BEGIN
  27075. SET @CardBack = 406030 --B牌背
  27076. END
  27077. ELSE IF(@Rnd <= 75)
  27078. BEGIN
  27079. SET @CardBack = 406020 --D牌背
  27080. END
  27081. ELSE IF(@Rnd <= 90)
  27082. BEGIN
  27083. SET @CardBack = 406010 --E牌背
  27084. END
  27085. ELSE
  27086. BEGIN
  27087. SET @CardBack = 406040 --F牌背
  27088. END
  27089. -- 骰子获得概率
  27090. -- 随机数调用
  27091. EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
  27092. IF(@Rnd <= 25)
  27093. BEGIN
  27094. SET @Dice = 408010 --骰子B
  27095. END
  27096. ELSE IF(@Rnd <= 50)
  27097. BEGIN
  27098. SET @Dice = 408020 --骰子C
  27099. END
  27100. ELSE IF(@Rnd <= 75)
  27101. BEGIN
  27102. SET @Dice = 408040 --骰子D
  27103. END
  27104. ELSE
  27105. BEGIN
  27106. SET @Dice = 408030 --骰子E
  27107. END
  27108. EXEC [Game_Rand_GetRnd] 3, 8, @VipLevel OUTPUT -- vip等级3-8
  27109. EXEC [Game_Rand_GetRnd] 200000, 600000, @Gold OUTPUT -- 金币200k-600k
  27110. EXEC [Game_Rand_GetRnd] 20, 60, @Charm OUTPUT -- 魅力值20-60
  27111. EXEC [Game_Rand_GetRnd] 10, 30, @Level OUTPUT -- 等级10-30
  27112. END
  27113. -- 大R
  27114. ELSE IF(@RobotType = 3)
  27115. BEGIN
  27116. -- 头像获得概率
  27117. IF(@Rnd <= 25)
  27118. BEGIN
  27119. SET @AvatarFrame = 401020 --B头像框
  27120. END
  27121. ELSE IF(@Rnd <= 50)
  27122. BEGIN
  27123. SET @AvatarFrame = 401050 --C头像框
  27124. END
  27125. ELSE IF(@Rnd <= 75)
  27126. BEGIN
  27127. SET @AvatarFrame = 401030 --D头像框
  27128. END
  27129. ELSE
  27130. BEGIN
  27131. SET @AvatarFrame = 401040 --E头像框
  27132. END
  27133. -- 牌背获得概率
  27134. -- 随机数调用
  27135. EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
  27136. IF(@Rnd <= 35)
  27137. BEGIN
  27138. SET @CardBack = 406050 --C牌背
  27139. END
  27140. ELSE IF(@Rnd <= 70)
  27141. BEGIN
  27142. SET @CardBack = 406040 --F牌背
  27143. END
  27144. ELSE IF(@Rnd <= 80)
  27145. BEGIN
  27146. SET @CardBack = 406030 --B牌背
  27147. END
  27148. ELSE IF(@Rnd <= 90)
  27149. BEGIN
  27150. SET @CardBack = 406020 --D牌背
  27151. END
  27152. ELSE
  27153. BEGIN
  27154. SET @CardBack = 406010 --E牌背
  27155. END
  27156. -- 骰子获得概率
  27157. -- 随机数调用
  27158. EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
  27159. IF(@Rnd <= 55)
  27160. BEGIN
  27161. SET @Dice = 408030 --骰子E
  27162. END
  27163. ELSE IF(@Rnd <= 70)
  27164. BEGIN
  27165. SET @Dice = 408010 --骰子B
  27166. END
  27167. ELSE IF(@Rnd <= 85)
  27168. BEGIN
  27169. SET @Dice = 408020 --骰子C
  27170. END
  27171. ELSE
  27172. BEGIN
  27173. SET @Dice = 408040 --骰子D
  27174. END
  27175. EXEC [Game_Rand_GetRnd] 6, 9, @VipLevel OUTPUT -- vip等级6-9
  27176. EXEC [Game_Rand_GetRnd] 500000, 1000000, @Gold OUTPUT -- 金币500k-1m
  27177. EXEC [Game_Rand_GetRnd] 20, 200, @Charm OUTPUT -- 魅力值20-200
  27178. EXEC [Game_Rand_GetRnd] 20, 50, @Level OUTPUT -- 等级20-50
  27179. END
  27180. -- 超R
  27181. ELSE IF(@RobotType = 4)
  27182. BEGIN
  27183. -- 头像获得概率
  27184. IF(@Rnd <= 25)
  27185. BEGIN
  27186. SET @AvatarFrame = 401020 --B头像框
  27187. END
  27188. ELSE IF(@Rnd <= 50)
  27189. BEGIN
  27190. SET @AvatarFrame = 401050 --C头像框
  27191. END
  27192. ELSE IF(@Rnd <= 75)
  27193. BEGIN
  27194. SET @AvatarFrame = 401030 --D头像框
  27195. END
  27196. ELSE
  27197. BEGIN
  27198. SET @AvatarFrame = 401040 --E头像框
  27199. END
  27200. -- 牌背获得概率
  27201. -- 随机数调用
  27202. EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
  27203. IF(@Rnd <= 20)
  27204. BEGIN
  27205. SET @CardBack = 406030 --B牌背
  27206. END
  27207. ELSE IF(@Rnd <= 40)
  27208. BEGIN
  27209. SET @CardBack = 406050 --C牌背
  27210. END
  27211. ELSE IF(@Rnd <= 60)
  27212. BEGIN
  27213. SET @CardBack = 406020 --D牌背
  27214. END
  27215. ELSE IF(@Rnd <= 80)
  27216. BEGIN
  27217. SET @CardBack = 406010 --E牌背
  27218. END
  27219. ELSE
  27220. BEGIN
  27221. SET @CardBack = 406040 --F牌背
  27222. END
  27223. -- 骰子获得概率
  27224. SET @Rnd = RAND()
  27225. IF(@Rnd <= 70)
  27226. BEGIN
  27227. SET @Dice = 408030 --骰子E
  27228. END
  27229. ELSE IF(@Rnd <= 80)
  27230. BEGIN
  27231. SET @Dice = 408010 --骰子B
  27232. END
  27233. ELSE IF(@Rnd <= 90)
  27234. BEGIN
  27235. SET @Dice = 408020 --骰子C
  27236. END
  27237. ELSE
  27238. BEGIN
  27239. SET @Dice = 408030 --骰子E
  27240. END
  27241. EXEC [Game_Rand_GetRnd] 7, 10, @VipLevel OUTPUT -- vip等级7-10
  27242. EXEC [Game_Rand_GetRnd] 900000, 3000000, @Gold OUTPUT -- 金币900k-3m
  27243. EXEC [Game_Rand_GetRnd] 40, 400, @Charm OUTPUT -- 魅力值40-400
  27244. EXEC [Game_Rand_GetRnd] 40, 80, @Level OUTPUT -- 等级40-80
  27245. END
  27246. -- 普通
  27247. ELSE
  27248. BEGIN
  27249. -- 头像获得概率
  27250. IF(@Rnd <= 95)
  27251. BEGIN
  27252. SET @AvatarFrame = 0 --默认头像框
  27253. END
  27254. ELSE
  27255. BEGIN
  27256. SET @AvatarFrame = 401020 --B头像框
  27257. END
  27258. -- 牌背、骰子获得概率
  27259. -- 随机数调用
  27260. EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
  27261. IF(@Rnd <= 97)
  27262. BEGIN
  27263. SET @CardBack = 0 --默认牌背
  27264. SET @Dice = 0 --默认骰子
  27265. END
  27266. ELSE IF(@Rnd <= 98)
  27267. BEGIN
  27268. SET @CardBack = 406030 --B牌背
  27269. SET @Dice = 408010 --骰子B
  27270. END
  27271. ELSE IF(@Rnd <= 99)
  27272. BEGIN
  27273. SET @CardBack = 406020 --D牌背
  27274. SET @Dice = 408020 --骰子C
  27275. END
  27276. ELSE
  27277. BEGIN
  27278. SET @CardBack = 406010 --E牌背
  27279. SET @Dice = 408030 --骰子D
  27280. END
  27281. EXEC [Game_Rand_GetRnd] 0, 1, @VipLevel OUTPUT -- vip等级0-1
  27282. EXEC [Game_Rand_GetRnd] 30000, 70000, @Gold OUTPUT -- 金币30k-70k
  27283. EXEC [Game_Rand_GetRnd] 0, 20, @Charm OUTPUT -- 魅力值0-20
  27284. EXEC [Game_Rand_GetRnd] 1, 10, @Level OUTPUT -- 等级1-10
  27285. END
  27286. -- SELECT @AvatarFrame AS AvatarFrame, @CardBack AS CardBack, @Dice AS Dice, @VipLevel AS VipLevel, @Gold AS Gold, @Charm AS Charm, @Level AS [Level]
  27287. RETURN
  27288. END
  27289. GO
  27290. /****** Object: StoredProcedure [dbo].[Manage_ROI_Del] Script Date: 2024/1/12 11:01:14 ******/
  27291. SET ANSI_NULLS ON
  27292. GO
  27293. SET QUOTED_IDENTIFIER ON
  27294. GO
  27295. -- EXEC [Manage_ROI_Del]
  27296. -- ==============================================
  27297. -- Author: wolf
  27298. -- Create Date: 2014-12-29
  27299. -- Mendor: wolf
  27300. -- Alter Date: 2015-06-01
  27301. -- Description: 投入产出项删除
  27302. -- ==============================================
  27303. CREATE PROCEDURE [dbo].[Manage_ROI_Del]
  27304. @Rid INT --标识
  27305. AS
  27306. SET NOCOUNT ON
  27307. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27308. SET XACT_ABORT ON
  27309. BEGIN
  27310. DECLARE @RetCode TINYINT --操作结果
  27311. DECLARE @Crdate DATETIME --时间
  27312. SET @RetCode = 0
  27313. --信息
  27314. SELECT @Crdate = Crdate FROM [ROI] WHERE Rid = @Rid
  27315. IF(@@ROWCOUNT = 0)
  27316. BEGIN
  27317. SET @RetCode = 11
  27318. SELECT @RetCode AS RetCode
  27319. RETURN
  27320. END
  27321. --只能删除7天内数据
  27322. IF(@Crdate <= GETDATE() - 7)
  27323. BEGIN
  27324. SET @RetCode = 12
  27325. SELECT @RetCode AS RetCode
  27326. RETURN
  27327. END
  27328. --删除
  27329. DELETE FROM [ROI] WHERE Rid = @Rid
  27330. IF(@@ROWCOUNT = 0)
  27331. BEGIN
  27332. SET @RetCode = 11
  27333. SELECT @RetCode AS RetCode
  27334. RETURN
  27335. END
  27336. --返回信息
  27337. SET @RetCode = 1
  27338. SELECT @RetCode AS RetCode
  27339. RETURN
  27340. END
  27341. GO
  27342. /****** Object: StoredProcedure [dbo].[Manage_ROI_GetList] Script Date: 2024/1/12 11:01:14 ******/
  27343. SET ANSI_NULLS ON
  27344. GO
  27345. SET QUOTED_IDENTIFIER ON
  27346. GO
  27347. -- EXEC [Manage_ROI_GetList]
  27348. -- ==============================================
  27349. -- Author: wolf
  27350. -- Create Date: 2014-12-29
  27351. -- Mendor: wolf
  27352. -- Alter Date: 2015-06-01
  27353. -- Description: 投入产出项列表
  27354. -- ==============================================
  27355. CREATE PROCEDURE [dbo].[Manage_ROI_GetList]
  27356. @DateFlag SMALLDATETIME --日期
  27357. AS
  27358. SET NOCOUNT ON
  27359. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27360. SET XACT_ABORT ON
  27361. BEGIN
  27362. SELECT
  27363. Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
  27364. ItemType, ItemName, ItemValue
  27365. FROM
  27366. [ROI]
  27367. WHERE
  27368. DateFlag = @DateFlag
  27369. ORDER BY
  27370. DateFlag DESC, ItemType ASC, ItemName DESC
  27371. RETURN
  27372. END
  27373. GO
  27374. /****** Object: StoredProcedure [dbo].[Manage_ROI_GetListByMonth] Script Date: 2024/1/12 11:01:14 ******/
  27375. SET ANSI_NULLS ON
  27376. GO
  27377. SET QUOTED_IDENTIFIER ON
  27378. GO
  27379. -- EXEC [Manage_ROI_GetListByMonth]
  27380. -- ==============================================
  27381. -- Author: wolf
  27382. -- Create Date: 2014-12-29
  27383. -- Mendor: wolf
  27384. -- Alter Date: 2015-06-01
  27385. -- Description: 投入产出项列表
  27386. -- ==============================================
  27387. CREATE PROCEDURE [dbo].[Manage_ROI_GetListByMonth]
  27388. AS
  27389. SET NOCOUNT ON
  27390. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27391. SET XACT_ABORT ON
  27392. BEGIN
  27393. SELECT
  27394. CONVERT(VARCHAR(7), DateFlag, 120) AS DateFlag,
  27395. ItemType, ItemName, SUM(ItemValue) AS ItemValue
  27396. FROM
  27397. [ROI]
  27398. GROUP BY
  27399. CONVERT(VARCHAR(7), DateFlag, 120), ItemType, ItemName
  27400. ORDER BY
  27401. DateFlag DESC, ItemType ASC, ItemName DESC
  27402. RETURN
  27403. END
  27404. GO
  27405. /****** Object: StoredProcedure [dbo].[Manage_ROI_Insert] Script Date: 2024/1/12 11:01:14 ******/
  27406. SET ANSI_NULLS ON
  27407. GO
  27408. SET QUOTED_IDENTIFIER ON
  27409. GO
  27410. -- EXEC [Manage_ROI_Insert]
  27411. -- ==============================================
  27412. -- Author: wolf
  27413. -- Create Date: 2014-12-29
  27414. -- Mendor: wolf
  27415. -- Alter Date: 2015-06-01
  27416. -- Description: 投入产出项录入
  27417. -- ==============================================
  27418. CREATE PROCEDURE [dbo].[Manage_ROI_Insert]
  27419. @DateFlag SMALLDATETIME, --日期标识
  27420. @ItemType TINYINT, --项类型(1=计数 2=计价)
  27421. @ItemName NVARCHAR(32), --项名称
  27422. @ItemValue DECIMAL(18, 2) --项值
  27423. AS
  27424. SET NOCOUNT ON
  27425. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27426. SET XACT_ABORT ON
  27427. BEGIN
  27428. INSERT INTO [ROI]
  27429. (
  27430. DateFlag, ItemType, ItemName, ItemValue, Crdate
  27431. )
  27432. VALUES
  27433. (
  27434. @DateFlag, @ItemType, @ItemName, @ItemValue, GETDATE()
  27435. )
  27436. RETURN
  27437. END
  27438. GO
  27439. /****** Object: StoredProcedure [dbo].[Manage_RoleUser_AddUser] Script Date: 2024/1/12 11:01:14 ******/
  27440. SET ANSI_NULLS ON
  27441. GO
  27442. SET QUOTED_IDENTIFIER ON
  27443. GO
  27444. -- EXEC [Manage_RoleUser_AddUser]
  27445. -- @OpUserID = 1001,
  27446. -- @OpUserName = '',
  27447. -- @AdminUserID = 1,
  27448. -- @AdminRoleIDs = '1,2,3,',
  27449. -- @IPAddress = ''
  27450. -- ==============================================
  27451. -- Author: wolf
  27452. -- Create Date: 2013-07-09
  27453. -- Mendor: wolf
  27454. -- Alter Date: 2013-07-10
  27455. -- Description: 添加角色用户
  27456. -- ==============================================
  27457. CREATE PROCEDURE [dbo].[Manage_RoleUser_AddUser]
  27458. @OpUserID INT, --操作员ID
  27459. @OpUserName VARCHAR(32), --操作员名称
  27460. @AdminUserID INT, --管理用户ID
  27461. @AdminRoleIDs VARCHAR(1024), --管理角色ID集 (格式如:1,2,3,)
  27462. @IPAddress VARCHAR(15) -- IP地址
  27463. AS
  27464. SET NOCOUNT ON
  27465. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27466. SET XACT_ABORT ON
  27467. BEGIN
  27468. DECLARE @StartIndex INT --起始索引
  27469. DECLARE @EndIndex INT --截止索引
  27470. DECLARE @AdminRoleID INT --角色ID
  27471. DECLARE @Msg NVARCHAR(4000) --操作描述
  27472. DECLARE @AdminUserName VARCHAR(32) --管理用户名称
  27473. DECLARE @RoleList NVARCHAR(1024) --角色列表
  27474. DECLARE @CurrTime DATETIME --系统当前时间
  27475. --申请表变量
  27476. DECLARE @tmptable TABLE(
  27477. AdminRoleID INT NOT NULL, --管理角色ID
  27478. AdminRoleName NVARCHAR(32) NOT NULL --管理角色名称
  27479. )
  27480. SET @StartIndex = 0
  27481. SET @EndIndex = 0
  27482. SET @CurrTime = GETDATE()
  27483. WHILE(1=1)
  27484. BEGIN
  27485. --截止索引
  27486. SET @EndIndex = CHARINDEX(',', @AdminRoleIDs, @StartIndex)
  27487. IF(@EndIndex <= 0)
  27488. BREAK
  27489. --角色ID
  27490. SET @AdminRoleID = CAST(SUBSTRING(@AdminRoleIDs, @StartIndex, @EndIndex - @StartIndex) AS INT)
  27491. --初始化表变量
  27492. INSERT INTO @tmptable(AdminRoleID, AdminRoleName) VALUES(@AdminRoleID, '')
  27493. --起始索引
  27494. SET @StartIndex = @EndIndex + 1
  27495. END
  27496. --角色名称
  27497. UPDATE t SET t.AdminRoleName = r.RoleName FROM @tmptable t INNER JOIN [Role] r ON t.AdminRoleID = r.RoleID
  27498. --删除当前角色用户
  27499. DELETE FROM [RoleUser] WHERE AdminUserID = @AdminUserID
  27500. --添加角色用户
  27501. INSERT INTO [RoleUser]
  27502. (
  27503. AdminUserID, RoleID, Crdate
  27504. )
  27505. SELECT
  27506. @AdminUserID, AdminRoleID, @CurrTime
  27507. FROM
  27508. @tmptable
  27509. --管理用户名称
  27510. SET @AdminUserName = (SELECT AdminUserName FROM [AdminUser] WHERE AdminUserID = @AdminUserID)
  27511. SET @Msg = N'Set role permissions for administrators(' + @AdminUserName + ')'
  27512. --有数据
  27513. IF(@StartIndex > 0)
  27514. BEGIN
  27515. SET @Msg = @Msg + N' current role permissions:'
  27516. SET @RoleList = ''
  27517. --角色名称
  27518. SELECT @RoleList = @RoleList + ',' + AdminRoleName FROM @tmptable
  27519. SET @Msg = @Msg + STUFF(@RoleList, 1, 1, '')
  27520. END
  27521. ELSE
  27522. BEGIN
  27523. SET @Msg = @Msg + N' all role permissions removed'
  27524. END
  27525. --添加日志
  27526. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
  27527. @IPAddress = @IPAddress, @Msg = @Msg
  27528. RETURN
  27529. END
  27530. GO
  27531. /****** Object: StoredProcedure [dbo].[Manage_RoleUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
  27532. SET ANSI_NULLS ON
  27533. GO
  27534. SET QUOTED_IDENTIFIER ON
  27535. GO
  27536. -- EXEC [Manage_RoleUser_GetList]
  27537. -- ==============================================
  27538. -- Author: wolf
  27539. -- Create Date: 2013-07-09
  27540. -- Mendor: wolf
  27541. -- Alter Date: 2013-07-22
  27542. -- Description: 获取角色用户列表
  27543. -- ==============================================
  27544. CREATE PROCEDURE [dbo].[Manage_RoleUser_GetList]
  27545. AS
  27546. SET NOCOUNT ON
  27547. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27548. SET XACT_ABORT ON
  27549. BEGIN
  27550. --返回信息:用户ID(AdminUserID)(int)、用户名称(AdminUserName)(varchar(32))、
  27551. -- 角色ID(AdminRoleID)(int)、角色名称(AdminRoleName)(varchar(32))、创建时间(Crdate)(datetime)
  27552. SELECT
  27553. ISNULL(u.AdminUserID, 0) AS AdminUserID, ISNULL(u.AdminUserName, '') AS AdminUserName,
  27554. ISNULL(r.RoleID, 0) AS AdminRoleID, ISNULL(r.RoleName, '') AS AdminRoleName,
  27555. CONVERT(CHAR(20), ISNULL(ur.Crdate, '2020-01-01'), 120) AS Crdate
  27556. FROM
  27557. [AdminUser] u FULL JOIN [RoleUser] ur ON ur.AdminUserID = u.AdminUserID
  27558. FULL JOIN [Role] r ON ur.RoleID = r.RoleID
  27559. ORDER BY
  27560. r.RoleID ASC, u.AdminUserID ASC
  27561. RETURN
  27562. END
  27563. GO
  27564. /****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetDetailList] Script Date: 2024/1/12 11:01:14 ******/
  27565. SET ANSI_NULLS ON
  27566. GO
  27567. SET QUOTED_IDENTIFIER ON
  27568. GO
  27569. -- DECLARE @RecordCount INT
  27570. -- EXEC [Manage_ServiceMessage_GetList]
  27571. -- @UserID = 1,
  27572. -- @BeginTime = '',
  27573. -- @EndTime = '',
  27574. -- @PageIndex = 1,
  27575. -- @PageSize = 10,
  27576. -- @RecordCount = @RecordCount OUTPUT
  27577. -- SELECT @RecordCount AS RecordCount
  27578. -- ==============================================
  27579. -- Author: wolf
  27580. -- Create Date: 2014-09-09
  27581. -- Mendor: wolf
  27582. -- Alter Date: 2014-12-22
  27583. -- Description: 获取用户详细信息列表
  27584. -- ==============================================
  27585. CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetDetailList]
  27586. @UserID INT, --用户ID
  27587. @BeginTime DATETIME, --起始时间
  27588. @EndTime DATETIME, --截止时间
  27589. @PageIndex INT, --页索引
  27590. @PageSize INT, --页大小
  27591. @RecordCount INT OUTPUT, --总记录数
  27592. @OpUserID INT --操作员ID
  27593. AS
  27594. SET NOCOUNT ON
  27595. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27596. SET XACT_ABORT ON
  27597. BEGIN
  27598. DECLARE @StartRowIndex INT --行起始索引
  27599. DECLARE @EndRowIndex INT --截止行索引
  27600. DECLARE @NickName NVARCHAR(32) --昵称
  27601. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  27602. SET @EndRowIndex = @PageIndex * @PageSize
  27603. --创建临时表
  27604. CREATE TABLE #tmptable(
  27605. MessageID INT NOT NULL, --留言板ID
  27606. UserID INT NOT NULL, --用户ID
  27607. Msg NVARCHAR(512) NOT NULL, --消息
  27608. IsRead TINYINT NOT NULL, --是否已读
  27609. Crdate DATETIME NOT NULL, --创建时间
  27610. OpUserID INT NOT NULL, --操作员ID
  27611. OpUserName VARCHAR(32) NOT NULL, --操作员名称
  27612. TransMsg NVARCHAR(512) NOT NULL, --译文
  27613. TagID INT NOT NULL --标签ID
  27614. )
  27615. --置为已读
  27616. UPDATE [ServiceMessage] SET IsRead = 1 WHERE UserID = @UserID AND IsRead = 0
  27617. --初始化临时表
  27618. INSERT INTO #tmptable
  27619. (
  27620. MessageID, UserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
  27621. )
  27622. SELECT
  27623. MessageID, UserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
  27624. FROM
  27625. [ServiceMessage]
  27626. WHERE
  27627. ToUserID = @UserID AND UserID = -1 AND Crdate BETWEEN @BeginTime AND @EndTime
  27628. UNION ALL
  27629. SELECT
  27630. MessageID, UserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
  27631. FROM
  27632. [ServiceMessage]
  27633. WHERE
  27634. UserID = @UserID AND ToUserID = -1 AND Crdate BETWEEN @BeginTime AND @EndTime
  27635. --总记录数
  27636. SET @RecordCount = @@ROWCOUNT
  27637. --获取昵称
  27638. IF(@RecordCount > 0)
  27639. BEGIN
  27640. SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
  27641. END
  27642. ;WITH [List] AS
  27643. (
  27644. SELECT
  27645. ROW_NUMBER() OVER(ORDER BY MessageID ASC) AS RowNumber,
  27646. MessageID, UserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
  27647. FROM
  27648. #tmptable
  27649. )
  27650. --返回信息:
  27651. SELECT
  27652. l.MessageID, l.UserID,
  27653. CASE
  27654. WHEN l.UserID = -1 THEN l.OpUserName + '(ID:' + LTRIM(STR(l.OpUserID)) + ')'
  27655. ELSE @NickName + '(ID:' + LTRIM(STR(l.UserID)) + ')'
  27656. END AS NickName,
  27657. l.Msg, l.IsRead,
  27658. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
  27659. ISNULL(f.FaceUrl, '') AS FaceUrl, l.TransMsg,
  27660. ISNULL(m.TagName, '') AS TagName
  27661. FROM
  27662. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  27663. LEFT JOIN [UserFace] f ON l.UserID = f.UserID
  27664. LEFT JOIN [MsgTag] m ON l.TagID = m.TagID
  27665. WHERE
  27666. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  27667. ORDER BY
  27668. l.RowNumber ASC
  27669. --删除临时表
  27670. DROP TABLE #tmptable
  27671. RETURN
  27672. END
  27673. GO
  27674. /****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  27675. SET ANSI_NULLS ON
  27676. GO
  27677. SET QUOTED_IDENTIFIER ON
  27678. GO
  27679. -- EXEC [Manage_ServiceMessage_GetInfo]
  27680. -- ==============================================
  27681. -- Author: wolf
  27682. -- Create Date: 2014-09-09
  27683. -- Mendor: wolf
  27684. -- Alter Date: 2014-12-22
  27685. -- Description: 获取客服留言信息
  27686. -- ==============================================
  27687. CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetInfo]
  27688. @MessageID INT --留言ID
  27689. AS
  27690. SET NOCOUNT ON
  27691. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27692. SET XACT_ABORT ON
  27693. BEGIN
  27694. --返回信息
  27695. SELECT
  27696. s.UserID, ISNULL(u.NickName, '') AS NickName, s.Msg,
  27697. CONVERT(CHAR(16), s.Crdate, 120) AS Crdate, s.TransMsg, s.TagID
  27698. FROM
  27699. [ServiceMessage] s LEFT JOIN [AllUser] u ON s.UserID = u.UserID
  27700. WHERE
  27701. s.MessageID = @MessageID
  27702. RETURN
  27703. END
  27704. GO
  27705. /****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetList] Script Date: 2024/1/12 11:01:14 ******/
  27706. SET ANSI_NULLS ON
  27707. GO
  27708. SET QUOTED_IDENTIFIER ON
  27709. GO
  27710. -- DECLARE @RecordCount INT
  27711. -- EXEC [Manage_ServiceMessage_GetList]
  27712. -- @UserID = 1,
  27713. -- @BeginTime = '',
  27714. -- @EndTime = '',
  27715. -- @PageIndex = 1,
  27716. -- @PageSize = 10,
  27717. -- @RecordCount = @RecordCount OUTPUT
  27718. -- SELECT @RecordCount AS RecordCount
  27719. -- ==============================================
  27720. -- Author: wolf
  27721. -- Create Date: 2014-09-09
  27722. -- Mendor: wolf
  27723. -- Alter Date: 2014-11-18
  27724. -- Description: 获取用户邮件列表
  27725. -- ==============================================
  27726. CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetList]
  27727. @UserID INT, --用户ID
  27728. @BeginTime DATETIME, --开始时间
  27729. @EndTime DATETIME, --结束时间
  27730. @PageIndex INT, --页索引
  27731. @PageSize INT, --页大小
  27732. @Sort TINYINT, --排序(0=最新 1=最早)
  27733. @RecordCount INT OUTPUT --记录数
  27734. AS
  27735. SET NOCOUNT ON
  27736. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27737. SET XACT_ABORT ON
  27738. BEGIN
  27739. DECLARE @StartRowIndex INT --起始行索引
  27740. DECLARE @EndRowIndex INT --截止行索引
  27741. --创建邮箱列表
  27742. DECLARE @tmpMailList TABLE(
  27743. Rid INT IDENTITY,
  27744. UserID INT NOT NULL, --用户ID
  27745. MessageID INT NOT NULL, --用户邮件ID
  27746. IsRead TINYINT NOT NULL
  27747. )
  27748. --创建临时表
  27749. DECLARE @tmptable TABLE(
  27750. Rid INT IDENTITY NOT NULL,
  27751. UserID INT NOT NULL,
  27752. MailCount INT NOT NULL,
  27753. MessageID INT NOT NULL,
  27754. IsRead TINYINT NOT NULL
  27755. )
  27756. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  27757. SET @EndRowIndex = @PageIndex * @PageSize
  27758. --查询某个用户ID
  27759. IF(@UserID > 0)
  27760. BEGIN
  27761. INSERT INTO @tmpMailList
  27762. (
  27763. UserID, MessageID, IsRead
  27764. )
  27765. SELECT
  27766. @UserID, MessageID, CASE WHEN UserID > 0 AND IsRead = 0 THEN 0 ELSE 1 END
  27767. FROM
  27768. [ServiceMessage]
  27769. WHERE
  27770. Crdate BETWEEN @BeginTime AND @EndTime AND ((ToUserID = @UserID AND UserID = -1) OR (ToUserID = -1 AND UserID = @UserID))
  27771. ORDER BY
  27772. IsRead ASC
  27773. END
  27774. --查询所有用户
  27775. ELSE
  27776. BEGIN
  27777. INSERT INTO @tmpMailList
  27778. (
  27779. UserID, MessageID, IsRead
  27780. )
  27781. SELECT
  27782. CASE WHEN ToUserID = -1 THEN UserID ELSE ToUserID END, MessageID, CASE WHEN UserID > 0 AND IsRead = 0 THEN 0 ELSE 1 END
  27783. FROM
  27784. [ServiceMessage]
  27785. WHERE
  27786. Crdate BETWEEN @BeginTime AND @EndTime AND (ToUserID = -1 OR UserID = -1)
  27787. ORDER BY
  27788. IsRead ASC
  27789. END
  27790. --分组统计
  27791. INSERT INTO @tmptable(UserID, MailCount, MessageID, IsRead)
  27792. SELECT
  27793. UserID, COUNT(UserID), MAX(MessageID), MIN(IsRead)
  27794. FROM
  27795. @tmpMailList
  27796. GROUP BY
  27797. UserID
  27798. --总记录数
  27799. SET @RecordCount = @@ROWCOUNT
  27800. --最新排序(默认排序)
  27801. IF(@Sort = 0)
  27802. BEGIN
  27803. ;WITH [List] AS
  27804. (
  27805. SELECT
  27806. ROW_NUMBER() OVER(ORDER BY IsRead ASC, MessageID DESC) AS RowNumber,
  27807. UserID, MailCount, MessageID
  27808. FROM
  27809. @tmptable
  27810. )
  27811. --返回信息:序号(RowNumber)(int)、用户ID(UserID)(int)、昵称(NickName)(varchar)、邮件数(MailCount)(int)、
  27812. -- 时间(Crdate)(varchar)
  27813. SELECT
  27814. l.RowNumber, l.UserID, u.NickName, l.MailCount,
  27815. CONVERT(CHAR(20), um.Crdate, 120) AS Crdate,
  27816. CASE WHEN um.OpUserID > 0 THEN 'Customer service reply:' ELSE 'Game player news:' END +
  27817. CASE
  27818. WHEN um.IsRead = 0 AND um.OpUserID > 0 THEN '<font color="green">' + CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END + '</font>'
  27819. WHEN um.IsRead = 0 AND um.OpUserID <= 0 THEN '<font color="red">' + CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END + '</font>'
  27820. ELSE CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END
  27821. END AS Msg
  27822. FROM
  27823. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  27824. INNER JOIN [ServiceMessage] um ON l.MessageID = um.MessageID
  27825. WHERE
  27826. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  27827. ORDER BY
  27828. l.RowNumber ASC
  27829. RETURN
  27830. END
  27831. --最早排序
  27832. ;WITH [List] AS
  27833. (
  27834. SELECT
  27835. ROW_NUMBER() OVER(ORDER BY IsRead ASC, MessageID ASC) AS RowNumber,
  27836. UserID, MailCount, MessageID
  27837. FROM
  27838. @tmptable
  27839. )
  27840. --返回信息:序号(RowNumber)(int)、用户ID(UserID)(int)、昵称(NickName)(varchar)、邮件数(MailCount)(int)、
  27841. -- 时间(Crdate)(varchar)
  27842. SELECT
  27843. l.RowNumber, l.UserID, u.NickName, l.MailCount,
  27844. CONVERT(CHAR(20), um.Crdate, 120) AS Crdate,
  27845. CASE WHEN um.OpUserID > 0 THEN 'Customer service reply:' ELSE 'Game player news:' END +
  27846. CASE
  27847. WHEN um.IsRead = 0 AND um.OpUserID > 0 THEN '<font color="green">' + CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END + '</font>'
  27848. WHEN um.IsRead = 0 AND um.OpUserID <= 0 THEN '<font color="red">' + CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END + '</font>'
  27849. ELSE CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END
  27850. END AS Msg
  27851. FROM
  27852. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  27853. INNER JOIN [ServiceMessage] um ON l.MessageID = um.MessageID
  27854. WHERE
  27855. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  27856. ORDER BY
  27857. l.RowNumber ASC
  27858. RETURN
  27859. END
  27860. GO
  27861. /****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetListByTag] Script Date: 2024/1/12 11:01:14 ******/
  27862. SET ANSI_NULLS ON
  27863. GO
  27864. SET QUOTED_IDENTIFIER ON
  27865. GO
  27866. -- EXEC [Manage_ServiceMessage_GetListByTag]
  27867. -- ==============================================
  27868. -- Author: wolf
  27869. -- Create Date: 2014-09-09
  27870. -- Mendor: wolf
  27871. -- Alter Date: 2014-11-18
  27872. -- Description: 根据标签获取列表
  27873. -- ==============================================
  27874. CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetListByTag]
  27875. @TagID INT, --TagID
  27876. @BeginTime DATETIME, --开始时间
  27877. @EndTime DATETIME, --截止时间
  27878. @PageIndEx INT, --页索引
  27879. @PageSize INT, --页大小
  27880. @RecordCount INT OUTPUT --记录数
  27881. AS
  27882. SET NOCOUNT ON
  27883. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27884. SET XACT_ABORT ON
  27885. BEGIN
  27886. DECLARE @StartRowIndex INT --行起始索引
  27887. DECLARE @EndRowIndex INT --截止行索引
  27888. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  27889. SET @EndRowIndex = @PageIndex * @PageSize
  27890. --创建临时表
  27891. DECLARE @tmptable TABLE(
  27892. MessageID INT NOT NULL, --留言板ID
  27893. UserID INT NOT NULL, --用户ID
  27894. Msg NVARCHAR(512) NOT NULL, --消息
  27895. Crdate DATETIME NOT NULL, --创建时间
  27896. TransMsg NVARCHAR(512) NOT NULL --译文
  27897. )
  27898. --初始化临时表
  27899. INSERT INTO @tmptable
  27900. (
  27901. MessageID, UserID, Msg, Crdate, TransMsg
  27902. )
  27903. SELECT
  27904. MessageID, UserID, Msg, Crdate, TransMsg
  27905. FROM
  27906. [ServiceMessage]
  27907. WHERE
  27908. Crdate BETWEEN @BeginTime AND @EndTime AND TagID = @TagID
  27909. --总记录数
  27910. SET @RecordCount = @@ROWCOUNT
  27911. ;WITH [List] AS
  27912. (
  27913. SELECT
  27914. ROW_NUMBER() OVER(ORDER BY MessageID ASC) AS RowNumber,
  27915. MessageID, UserID, Msg, Crdate, TransMsg
  27916. FROM
  27917. @tmptable
  27918. )
  27919. --返回信息:
  27920. SELECT
  27921. l.MessageID, l.UserID, u.NickName, l.Msg, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
  27922. ISNULL(f.FaceUrl, '') AS FaceUrl, l.TransMsg
  27923. FROM
  27924. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  27925. LEFT JOIN [UserFace] f ON l.UserID = f.UserID
  27926. WHERE
  27927. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  27928. ORDER BY
  27929. l.RowNumber ASC
  27930. RETURN
  27931. END
  27932. GO
  27933. /****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetTagList] Script Date: 2024/1/12 11:01:14 ******/
  27934. SET ANSI_NULLS ON
  27935. GO
  27936. SET QUOTED_IDENTIFIER ON
  27937. GO
  27938. -- EXEC [Manage_ServiceMessage_GetTagList]
  27939. -- ==============================================
  27940. -- Author: wolf
  27941. -- Create Date: 2014-09-09
  27942. -- Mendor: wolf
  27943. -- Alter Date: 2014-11-18
  27944. -- Description: 获取标签列表
  27945. -- ==============================================
  27946. CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetTagList]
  27947. AS
  27948. SET NOCOUNT ON
  27949. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27950. SET XACT_ABORT ON
  27951. BEGIN
  27952. --返回信息
  27953. SELECT TagID, TagName FROM [MsgTag] ORDER BY TagID ASC
  27954. RETURN
  27955. END
  27956. GO
  27957. /****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetTagStat] Script Date: 2024/1/12 11:01:14 ******/
  27958. SET ANSI_NULLS ON
  27959. GO
  27960. SET QUOTED_IDENTIFIER ON
  27961. GO
  27962. -- EXEC [Manage_ServiceMessage_GetTagStat]
  27963. -- ==============================================
  27964. -- Author: wolf
  27965. -- Create Date: 2014-10-08
  27966. -- Mendor: wolf
  27967. -- Alter Date: 2016-08-16
  27968. -- Description: 客服留言标签统计
  27969. -- ==============================================
  27970. CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetTagStat]
  27971. @BeginTime DATETIME, --开始时间
  27972. @EndTime DATETIME --截止时间
  27973. AS
  27974. SET NOCOUNT ON
  27975. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  27976. SET XACT_ABORT ON
  27977. BEGIN
  27978. --表变量
  27979. DECLARE @tmptable TABLE(
  27980. DateFlag SMALLDATETIME NOT NULL, --日期标识
  27981. TagID INT NOT NULL, --标签ID
  27982. MsgCount INT NOT NULL --消息数
  27983. )
  27984. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120)
  27985. --初始化表变量
  27986. INSERT INTO @tmptable
  27987. (
  27988. DateFlag, TagID, MsgCount
  27989. )
  27990. SELECT
  27991. CONVERT(CHAR(10), Crdate, 120), TagID, COUNT(MessageID)
  27992. FROM
  27993. [ServiceMessage]
  27994. WHERE
  27995. Crdate BETWEEN @BeginTime AND @EndTime
  27996. GROUP BY
  27997. CONVERT(CHAR(10), Crdate, 120), TagID
  27998. --返回信息
  27999. SELECT
  28000. CONVERT(CHAR(10), t.DateFlag, 120) AS DateFlag, t.TagID, m.TagName, t.MsgCount
  28001. FROM
  28002. @tmptable t INNER JOIN [MsgTag] m ON t.TagID = m.TagID
  28003. ORDER BY
  28004. t.DateFlag ASC
  28005. RETURN
  28006. END
  28007. GO
  28008. /****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_Send] Script Date: 2024/1/12 11:01:14 ******/
  28009. SET ANSI_NULLS ON
  28010. GO
  28011. SET QUOTED_IDENTIFIER ON
  28012. GO
  28013. -- EXEC [Manage_ServiceMessage_Send]
  28014. -- @OpUserID = 1,
  28015. -- @OpUserName = '',
  28016. -- @ToUserID = 1,
  28017. -- @Msg = '',
  28018. -- @IPAddress = ''
  28019. -- ==============================================
  28020. -- Author: wolf
  28021. -- Create Date: 2014-08-29
  28022. -- Mendor: wolf
  28023. -- Alter Date: 2014-11-18
  28024. -- Description: 客服回复
  28025. -- ==============================================
  28026. CREATE PROCEDURE [dbo].[Manage_ServiceMessage_Send]
  28027. @OpUserID INT, --操作员ID
  28028. @OpUserName VARCHAR(32), --操作员名称
  28029. @ToUserID INT, --对方用户ID
  28030. @Msg NVARCHAR(512), --留言内容
  28031. @TransMsg NVARCHAR(512), --译文
  28032. @IPAddress VARCHAR(16) --IP地址
  28033. AS
  28034. SET NOCOUNT ON
  28035. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28036. SET XACT_ABORT ON
  28037. BEGIN
  28038. --插入客服留言信息
  28039. INSERT INTO [ServiceMessage]
  28040. (
  28041. UserID, Title, ToUserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
  28042. )
  28043. VALUES
  28044. (
  28045. -1, '',@ToUserID, @Msg, 0, GETDATE(), @OpUserID, @OpUserName, @TransMsg, 0
  28046. )
  28047. RETURN
  28048. END
  28049. GO
  28050. /****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_TagStat] Script Date: 2024/1/12 11:01:14 ******/
  28051. SET ANSI_NULLS ON
  28052. GO
  28053. SET QUOTED_IDENTIFIER ON
  28054. GO
  28055. -- EXEC [Manage_ServiceMessage_TagStat]
  28056. -- ==============================================
  28057. -- Author: wolf
  28058. -- Create Date: 2014-09-09
  28059. -- Mendor: wolf
  28060. -- Alter Date: 2014-11-18
  28061. -- Description: 邮件标签统计
  28062. -- ==============================================
  28063. CREATE PROCEDURE [dbo].[Manage_ServiceMessage_TagStat]
  28064. @BeginTime DATETIME, --开始时间
  28065. @EndTime DATETIME, --截止时间
  28066. @PageIndex INT, --页索引
  28067. @PageSize INT, --页大小
  28068. @RecordCount INT OUTPUT --记录数
  28069. AS
  28070. SET NOCOUNT ON
  28071. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28072. SET XACT_ABORT ON
  28073. BEGIN
  28074. DECLARE @StartRowIndex INT --起始行索引
  28075. DECLARE @EndRowIndex INT --截止行索引
  28076. DECLARE @tmptable TABLE(
  28077. DateFlag SMALLDATETIME NOT NULL, --日期标识
  28078. TagID INT NOT NULL, --标签ID
  28079. MsgCount INT NOT NULL --数量
  28080. )
  28081. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  28082. SET @EndRowIndex = @PageIndex * @PageSize
  28083. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  28084. --初始化表变量
  28085. INSERT INTO @tmptable
  28086. (
  28087. DateFlag, TagID, MsgCount
  28088. )
  28089. SELECT
  28090. CONVERT(CHAR(10), Crdate, 120), TagID, COUNT(TagID)
  28091. FROM
  28092. [ServiceMessage]
  28093. WHERE
  28094. Crdate BETWEEN @BeginTime AND @EndTime AND TagID > 0
  28095. GROUP BY
  28096. CONVERT(CHAR(10), Crdate, 120), TagID
  28097. --记录数
  28098. SET @RecordCount = @@ROWCOUNT
  28099. ;WITH [List] AS
  28100. (
  28101. SELECT
  28102. ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
  28103. DateFlag, TagID, MsgCount
  28104. FROM
  28105. @tmptable
  28106. )
  28107. --返回信息
  28108. SELECT
  28109. CONVERT(VARCHAR(10), l.DateFlag, 120) AS DateFlag, l.TagID, m.TagName, l.MsgCount
  28110. FROM
  28111. [List] l INNER JOIN [MsgTag] m ON l.TagID = m.TagID
  28112. WHERE
  28113. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  28114. ORDER BY
  28115. l.RowNumber ASC
  28116. RETURN
  28117. END
  28118. GO
  28119. /****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_Translate] Script Date: 2024/1/12 11:01:14 ******/
  28120. SET ANSI_NULLS ON
  28121. GO
  28122. SET QUOTED_IDENTIFIER ON
  28123. GO
  28124. -- EXEC [Manage_ServiceMessage_Translate]
  28125. -- ==============================================
  28126. -- Author: wolf
  28127. -- Create Date: 2014-09-09
  28128. -- Mendor: wolf
  28129. -- Alter Date: 2014-11-18
  28130. -- Description: 客服留言翻译
  28131. -- ==============================================
  28132. CREATE PROCEDURE [dbo].[Manage_ServiceMessage_Translate]
  28133. @OpUserID INT, --操作员ID
  28134. @OpUserName VARCHAR(32), --操作员名称
  28135. @MessageID INT, --留言ID
  28136. @TransMsg NVARCHAR(512), --译文
  28137. @TagID INT --标签ID
  28138. AS
  28139. SET NOCOUNT ON
  28140. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28141. SET XACT_ABORT ON
  28142. BEGIN
  28143. UPDATE
  28144. [ServiceMessage]
  28145. SET
  28146. TagID = @TagID,
  28147. TransMsg = CASE WHEN @TransMsg != '' THEN @TransMsg ELSE TransMsg END,
  28148. OpUserID = CASE WHEN @OpUserID > 0 THEN @OpUserID ELSE OpUserID END,
  28149. OpUserName = CASE WHEN @OpUserName != '' THEN @OpUserName ELSE OpUserName END
  28150. WHERE
  28151. MessageID = @MessageID
  28152. RETURN
  28153. END
  28154. GO
  28155. /****** Object: StoredProcedure [dbo].[Manage_Slot_GetStat] Script Date: 2024/1/12 11:01:14 ******/
  28156. SET ANSI_NULLS ON
  28157. GO
  28158. SET QUOTED_IDENTIFIER ON
  28159. GO
  28160. -- EXEC [Manage_Slot_GetStat]
  28161. -- ==============================================
  28162. -- Author: wolf
  28163. -- Create Date: 2014-10-08
  28164. -- Mendor: wolf
  28165. -- Alter Date: 2016-08-16
  28166. -- Description: Slot游戏统计
  28167. -- ==============================================
  28168. CREATE PROCEDURE [dbo].[Manage_Slot_GetStat]
  28169. @GameID INT, --游戏ID
  28170. @BeginTime DATETIME, --开始时间
  28171. @EndTime DATETIME --截止时间
  28172. AS
  28173. SET NOCOUNT ON
  28174. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28175. SET XACT_ABORT ON
  28176. BEGIN
  28177. --返回信息
  28178. SELECT
  28179. InvestAmount, SUM(BetAmount) AS BetAmount, SUM(BetTimes) AS BetTimes,
  28180. SUM(ResultAmount) AS ResultAmount, SUM(WinTimes) AS WinTimes, SUM(WinAmount) AS WinAmount,
  28181. SUM(Tax) AS Tax, SUM(MaxResultAmount) AS MaxResultAmount
  28182. FROM
  28183. [SlotStat]
  28184. WHERE
  28185. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  28186. GROUP BY
  28187. InvestAmount
  28188. ORDER BY
  28189. InvestAmount ASC
  28190. RETURN
  28191. END
  28192. GO
  28193. /****** Object: StoredProcedure [dbo].[Manage_Slot_GetStatDetail] Script Date: 2024/1/12 11:01:14 ******/
  28194. SET ANSI_NULLS ON
  28195. GO
  28196. SET QUOTED_IDENTIFIER ON
  28197. GO
  28198. -- EXEC [Manage_Slot_GetStatDetail]
  28199. -- ==============================================
  28200. -- Author: wolf
  28201. -- Create Date: 2014-10-08
  28202. -- Mendor: wolf
  28203. -- Alter Date: 2016-08-16
  28204. -- Description: Slot游戏统计
  28205. -- ==============================================
  28206. CREATE PROCEDURE [dbo].[Manage_Slot_GetStatDetail]
  28207. @GameID INT, --游戏ID
  28208. @InvestAmount BIGINT, --下注额
  28209. @BeginTime DATETIME, --开始时间
  28210. @EndTime DATETIME --截止时间
  28211. AS
  28212. SET NOCOUNT ON
  28213. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28214. SET XACT_ABORT ON
  28215. BEGIN
  28216. IF(@InvestAmount > 0)
  28217. BEGIN
  28218. --返回信息
  28219. SELECT
  28220. CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag, BetAmount, BetTimes, ResultAmount,
  28221. WinTimes, WinAmount, Tax, MaxResultAmount
  28222. FROM
  28223. [SlotStat]
  28224. WHERE
  28225. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND InvestAmount = @InvestAmount
  28226. ORDER BY
  28227. DateFlag ASC
  28228. RETURN
  28229. END
  28230. --返回信息
  28231. SELECT
  28232. CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag,
  28233. SUM(CASE WHEN InvestAmount % 100 = 0 THEN BetAmount ELSE 0 END) AS BetAmount,
  28234. SUM(CASE WHEN InvestAmount % 100 = 0 THEN BetTimes ELSE 0 END) AS BetTimes,
  28235. SUM(ResultAmount) AS ResultAmount,
  28236. SUM(CASE WHEN InvestAmount % 100 = 0 THEN WinTimes ELSE 0 END) AS WinTimes,
  28237. SUM(WinAmount) AS WinAmount, SUM(Tax) AS Tax, SUM(MaxResultAmount) AS MaxResultAmount
  28238. FROM
  28239. [SlotStat]
  28240. WHERE
  28241. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  28242. GROUP BY
  28243. DateFlag
  28244. ORDER BY
  28245. DateFlag ASC
  28246. RETURN
  28247. END
  28248. GO
  28249. /****** Object: StoredProcedure [dbo].[Manage_SlotChip_GetStat] Script Date: 2024/1/12 11:01:14 ******/
  28250. SET ANSI_NULLS ON
  28251. GO
  28252. SET QUOTED_IDENTIFIER ON
  28253. GO
  28254. -- EXEC [Manage_SlotChip_GetStat]
  28255. -- ==============================================
  28256. -- Author: wolf
  28257. -- Create Date: 2014-10-08
  28258. -- Mendor: wolf
  28259. -- Alter Date: 2016-08-16
  28260. -- Description: Slot游戏统计
  28261. -- ==============================================
  28262. CREATE PROCEDURE [dbo].[Manage_SlotChip_GetStat]
  28263. @GameID INT, --游戏ID
  28264. @BeginTime DATETIME, --开始时间
  28265. @EndTime DATETIME --截止时间
  28266. AS
  28267. SET NOCOUNT ON
  28268. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28269. SET XACT_ABORT ON
  28270. BEGIN
  28271. --返回信息
  28272. SELECT
  28273. InvestAmount, SUM(BetAmount) AS BetAmount, SUM(BetTimes) AS BetTimes,
  28274. SUM(ResultAmount) AS ResultAmount, SUM(WinTimes) AS WinTimes, SUM(WinAmount) AS WinAmount,
  28275. SUM(Tax) AS Tax, SUM(MaxResultAmount) AS MaxResultAmount
  28276. FROM
  28277. [SlotChipStat]
  28278. WHERE
  28279. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  28280. GROUP BY
  28281. InvestAmount
  28282. ORDER BY
  28283. InvestAmount ASC
  28284. RETURN
  28285. END
  28286. GO
  28287. /****** Object: StoredProcedure [dbo].[Manage_SlotChip_GetStatDetail] Script Date: 2024/1/12 11:01:14 ******/
  28288. SET ANSI_NULLS ON
  28289. GO
  28290. SET QUOTED_IDENTIFIER ON
  28291. GO
  28292. -- EXEC [Manage_SlotChip_GetStatDetail]
  28293. -- ==============================================
  28294. -- Author: wolf
  28295. -- Create Date: 2014-10-08
  28296. -- Mendor: wolf
  28297. -- Alter Date: 2016-08-16
  28298. -- Description: Slot游戏统计
  28299. -- ==============================================
  28300. CREATE PROCEDURE [dbo].[Manage_SlotChip_GetStatDetail]
  28301. @GameID INT, --游戏ID
  28302. @InvestAmount BIGINT, --下注额
  28303. @BeginTime DATETIME, --开始时间
  28304. @EndTime DATETIME --截止时间
  28305. AS
  28306. SET NOCOUNT ON
  28307. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28308. SET XACT_ABORT ON
  28309. BEGIN
  28310. IF(@InvestAmount > 0)
  28311. BEGIN
  28312. --返回信息
  28313. SELECT
  28314. CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag, BetAmount, BetTimes, ResultAmount,
  28315. WinTimes, WinAmount, Tax, MaxResultAmount
  28316. FROM
  28317. [SlotChipStat]
  28318. WHERE
  28319. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND InvestAmount = @InvestAmount
  28320. ORDER BY
  28321. DateFlag ASC
  28322. RETURN
  28323. END
  28324. --返回信息
  28325. SELECT
  28326. CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag,
  28327. SUM(CASE WHEN InvestAmount % 100 = 0 THEN BetAmount ELSE 0 END) AS BetAmount,
  28328. SUM(CASE WHEN InvestAmount % 100 = 0 THEN BetTimes ELSE 0 END) AS BetTimes,
  28329. SUM(ResultAmount) AS ResultAmount,
  28330. SUM(CASE WHEN InvestAmount % 100 = 0 THEN WinTimes ELSE 0 END) AS WinTimes,
  28331. SUM(WinAmount) AS WinAmount, SUM(Tax) AS Tax, SUM(MaxResultAmount) AS MaxResultAmount
  28332. FROM
  28333. [SlotChipStat]
  28334. WHERE
  28335. DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  28336. GROUP BY
  28337. DateFlag
  28338. ORDER BY
  28339. DateFlag ASC
  28340. RETURN
  28341. END
  28342. GO
  28343. /****** Object: StoredProcedure [dbo].[Manage_SNGMatch_GetChairHistory] Script Date: 2024/1/12 11:01:14 ******/
  28344. SET ANSI_NULLS ON
  28345. GO
  28346. SET QUOTED_IDENTIFIER ON
  28347. GO
  28348. -- EXEC [Manage_SNGMatch_GetChairHistory]
  28349. -- ==============================================
  28350. -- Author: wolf
  28351. -- Create Date: 2014-12-29
  28352. -- Mendor: wolf
  28353. -- Alter Date: 2015-06-01
  28354. -- Description: SNG比赛场椅子历史
  28355. -- ==============================================
  28356. CREATE PROCEDURE [dbo].[Manage_SNGMatch_GetChairHistory]
  28357. @SerialNumber BIGINT --流水号ID
  28358. AS
  28359. SET NOCOUNT ON
  28360. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28361. SET XACT_ABORT ON
  28362. BEGIN
  28363. SELECT
  28364. c.UserID, u.NickName, c.RankId, c.Score, c.ItemId, c.Fee
  28365. FROM
  28366. [SNGMatchChairHistory] c LEFT JOIN [AllUser] u ON c.UserID = u.UserID
  28367. WHERE
  28368. c.SerialNumber = @SerialNumber
  28369. ORDER BY
  28370. c.Rid ASC
  28371. RETURN
  28372. END
  28373. GO
  28374. /****** Object: StoredProcedure [dbo].[Manage_SNGMatch_GetHistoryList] Script Date: 2024/1/12 11:01:14 ******/
  28375. SET ANSI_NULLS ON
  28376. GO
  28377. SET QUOTED_IDENTIFIER ON
  28378. GO
  28379. -- EXEC [Manage_SNGMatch_GetHistoryList]
  28380. -- ==============================================
  28381. -- Author: wolf
  28382. -- Create Date: 2014-12-29
  28383. -- Mendor: wolf
  28384. -- Alter Date: 2015-06-01
  28385. -- Description: SNG比赛场历史
  28386. -- ==============================================
  28387. CREATE PROCEDURE [dbo].[Manage_SNGMatch_GetHistoryList]
  28388. @UserID INT, --用户ID
  28389. @GameID INT, --游戏ID
  28390. @BeginTime DATETIME, --开始时间
  28391. @EndTime DATETIME, --截止时间
  28392. @PageIndex INT, --页索引
  28393. @PageSize INT, --页大小
  28394. @RecordCount INT OUTPUT --记录数
  28395. AS
  28396. SET NOCOUNT ON
  28397. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28398. SET XACT_ABORT ON
  28399. BEGIN
  28400. DECLARE @StartRowIndex INT --起始行索引
  28401. DECLARE @EndRowIndex INT --截止行索引
  28402. --变量用户
  28403. DECLARE @tmpRoom TABLE(
  28404. SerialNumber BIGINT NOT NULL --流水号
  28405. )
  28406. --表变量
  28407. DECLARE @tmptable TABLE(
  28408. SerialNumber BIGINT NOT NULL, --流水号
  28409. MatchID INT NOT NULL, --比赛ID
  28410. MatchNo VARCHAR(32) NOT NULL, --比赛号
  28411. MatchName VARCHAR(32) NOT NULL, --比赛名称
  28412. GameID INT NOT NULL, --游戏ID
  28413. GameName VARCHAR(32) NOT NULL, --游戏名称
  28414. StartTime DATETIME NOT NULL, --开始时间
  28415. EndTime DATETIME NOT NULL --结束时间
  28416. )
  28417. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  28418. SET @EndRowIndex = @PageIndex * @PageSize
  28419. --查询某个用户
  28420. IF(@UserID > 0)
  28421. BEGIN
  28422. INSERT INTO @tmpRoom(SerialNumber)
  28423. SELECT DISTINCT
  28424. SerialNumber
  28425. FROM
  28426. [SNGMatchChairHistory]
  28427. WHERE
  28428. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  28429. INSERT INTO @tmptable
  28430. (
  28431. SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
  28432. )
  28433. SELECT
  28434. SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
  28435. FROM
  28436. [SNGMatchHistory]
  28437. WHERE
  28438. StartTime BETWEEN @BeginTime AND @EndTime AND SerialNumber IN (SELECT SerialNumber FROM @tmpRoom)
  28439. END
  28440. --查询某个游戏
  28441. ELSE IF(@GameID > 0)
  28442. BEGIN
  28443. INSERT INTO @tmptable
  28444. (
  28445. SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
  28446. )
  28447. SELECT
  28448. SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
  28449. FROM
  28450. [SNGMatchHistory]
  28451. WHERE
  28452. StartTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
  28453. END
  28454. ELSE
  28455. BEGIN
  28456. INSERT INTO @tmptable
  28457. (
  28458. SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
  28459. )
  28460. SELECT
  28461. SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
  28462. FROM
  28463. [SNGMatchHistory]
  28464. WHERE
  28465. StartTime BETWEEN @BeginTime AND @EndTime
  28466. END
  28467. --记录数
  28468. SET @RecordCount = @@ROWCOUNT
  28469. ;WITH [List] AS
  28470. (
  28471. SELECT
  28472. ROW_NUMBER() OVER(ORDER BY StartTime DESC) AS RowNumber,
  28473. SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
  28474. FROM
  28475. @tmptable
  28476. )
  28477. --返回信息
  28478. SELECT
  28479. SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName,
  28480. CONVERT(VARCHAR(20), StartTime, 120) AS StartTime, CONVERT(VARCHAR(20), EndTime, 120) AS EndTime,
  28481. DATEDIFF(SECOND, StartTime, EndTime) AS PlaySeconds
  28482. FROM
  28483. [List]
  28484. WHERE
  28485. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  28486. ORDER BY
  28487. RowNumber ASC
  28488. RETURN
  28489. END
  28490. GO
  28491. /****** Object: StoredProcedure [dbo].[Manage_SNGMatchReport_GetList] Script Date: 2024/1/12 11:01:14 ******/
  28492. SET ANSI_NULLS ON
  28493. GO
  28494. SET QUOTED_IDENTIFIER ON
  28495. GO
  28496. -- EXEC [Manage_SNGMatchReport_GetList]
  28497. -- ==============================================
  28498. -- Author: wolf
  28499. -- Create Date: 2014-12-29
  28500. -- Mendor: wolf
  28501. -- Alter Date: 2015-06-01
  28502. -- Description: 挑战赛报表列表
  28503. -- ==============================================
  28504. CREATE PROCEDURE [dbo].[Manage_SNGMatchReport_GetList]
  28505. @BeginTime SMALLDATETIME, --开始时间
  28506. @EndTime SMALLDATETIME --截止时间
  28507. AS
  28508. SET NOCOUNT ON
  28509. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28510. SET XACT_ABORT ON
  28511. BEGIN
  28512. SELECT
  28513. Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
  28514. ItemType, ItemName, ItemValue, ItemTag
  28515. FROM
  28516. [SNGMatchReport]
  28517. WHERE
  28518. DateFlag BETWEEN @BeginTime AND @EndTime
  28519. ORDER BY
  28520. DateFlag DESC, ItemType ASC, ItemTag ASC, Rid ASC
  28521. RETURN
  28522. END
  28523. GO
  28524. /****** Object: StoredProcedure [dbo].[Manage_SysLog_GetList] Script Date: 2024/1/12 11:01:14 ******/
  28525. SET ANSI_NULLS ON
  28526. GO
  28527. SET QUOTED_IDENTIFIER ON
  28528. GO
  28529. -- DECLARE @RecordCount INT
  28530. -- EXEC [Manage_SysLog_GetList]
  28531. -- @OpUserID = 0,
  28532. -- @StartTime = '',
  28533. -- @EndTime = '',
  28534. -- @PageIndex = 1,
  28535. -- @PageSize = 10,
  28536. -- @RecordCount = @RecordCount OUTPUT
  28537. -- SELECT @RecordCount AS RecordCount
  28538. -- =============================================
  28539. -- Author: wolf
  28540. -- Create Date: 2016-10-21
  28541. -- Mendor: wolf
  28542. -- Alter Date: 2016-10-21
  28543. -- Description: 系统日志列表
  28544. -- =============================================
  28545. CREATE PROCEDURE [dbo].[Manage_SysLog_GetList]
  28546. @OpUserID INT, --操作员ID
  28547. @StartTime DATETIME, --开始时间
  28548. @EndTime DATETIME, --截止时间
  28549. @PageIndex INT = 1, --页索引
  28550. @PageSize INT = 10, --页大小
  28551. @RecordCount INT OUTPUT --总记录数
  28552. AS
  28553. SET NOCOUNT ON
  28554. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28555. SET XACT_ABORT ON
  28556. BEGIN
  28557. DECLARE @StartRowIndex INT --起始索引
  28558. DECLARE @EndRowIndex INT --终止索引
  28559. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  28560. SET @EndRowIndex = @PageIndex * @PageSize
  28561. --创建临时表
  28562. CREATE TABLE #tmpLog(
  28563. SysLogID INT NOT NULL,
  28564. OpUserID INT NOT NULL,
  28565. OpUserName VARCHAR(32) NOT NULL,
  28566. IPAddress VARCHAR(15) NOT NULL,
  28567. Msg NVARCHAR(4000) NOT NULL,
  28568. Crdate DATETIME NOT NULL
  28569. )
  28570. --查询某个操作员日志
  28571. IF(@OpUserID > 0)
  28572. BEGIN
  28573. INSERT INTO #tmpLog
  28574. (
  28575. SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
  28576. )
  28577. SELECT
  28578. SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
  28579. FROM
  28580. [SysLog]
  28581. WHERE
  28582. OpUserID = @OpUserID AND Crdate BETWEEN @StartTime AND @EndTime
  28583. --总记录数
  28584. SET @RecordCount = @@ROWCOUNT
  28585. END
  28586. --查询所有操作员日志
  28587. ELSE
  28588. BEGIN
  28589. INSERT INTO #tmpLog
  28590. (
  28591. SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
  28592. )
  28593. SELECT
  28594. SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
  28595. FROM
  28596. [SysLog]
  28597. WHERE
  28598. Crdate BETWEEN @StartTime AND @EndTime
  28599. --总记录数
  28600. SET @RecordCount = @@ROWCOUNT
  28601. END
  28602. ;WITH [List] AS
  28603. (
  28604. SELECT
  28605. ROW_NUMBER() OVER(ORDER BY SysLogID DESC) AS RowNumber,
  28606. SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
  28607. FROM
  28608. #tmpLog
  28609. )
  28610. --返回信息:日志ID(AdminLogID)、管理员ID(AdminUserID)、管理员名称(AdminUserName)、
  28611. -- IP地址(IPAddress)、消息(Msg)、创建时间(Crdate)
  28612. SELECT
  28613. SysLogID, OpUserID, OpUserName, IPAddress, Msg, CONVERT(CHAR(16), Crdate, 120) AS Crdate
  28614. FROM
  28615. [List]
  28616. WHERE
  28617. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  28618. ORDER BY
  28619. RowNumber ASC
  28620. --删除临时表
  28621. DROP TABLE #tmpLog
  28622. RETURN
  28623. END
  28624. GO
  28625. /****** Object: StoredProcedure [dbo].[Manage_SysMessage_GetList] Script Date: 2024/1/12 11:01:14 ******/
  28626. SET ANSI_NULLS ON
  28627. GO
  28628. SET QUOTED_IDENTIFIER ON
  28629. GO
  28630. -- DECLARE @RecordCount INT
  28631. -- EXEC [Manage_SysMessage_GetList]
  28632. -- @UserID = 1,
  28633. -- @BeginTime = '',
  28634. -- @EndTime = '',
  28635. -- @PageIndex = '',
  28636. -- @PageSize = 1,
  28637. -- @RecordCount = @RecordCount OUTPUT
  28638. -- ==============================================
  28639. -- Author: wolf
  28640. -- Create Date: 2014-12-19
  28641. -- Mendor: wolf
  28642. -- Alter Date: 2015-01-07
  28643. -- Description: 发送系统消息
  28644. -- ==============================================
  28645. CREATE PROCEDURE [dbo].[Manage_SysMessage_GetList]
  28646. @UserID INT, --用户ID
  28647. @BeginTime DATETIME, --开始时间
  28648. @EndTime DATETIME, --截止时间
  28649. @PageIndex INT, --页索引
  28650. @PageSize INT, --页大小
  28651. @RecordCount INT OUTPUT --记录数
  28652. AS
  28653. SET NOCOUNT ON
  28654. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28655. SET XACT_ABORT ON
  28656. BEGIN
  28657. DECLARE @StartRowIndex INT --起始行索引
  28658. DECLARE @EndRowIndex INT --截止行索引
  28659. --创建临时表
  28660. DECLARE @tmptable TABLE(
  28661. SysMsgID INT NOT NULL, --标识
  28662. UserID INT NOT NULL, --用户ID
  28663. Title NVARCHAR(32) NOT NULL, --标题
  28664. Content NVARCHAR(256) NOT NULL, --内容
  28665. Status TINYINT NOT NULL, --状态 0=未读 1=已读 2=已领取
  28666. SourceName NVARCHAR(32) NOT NULL, --源名称
  28667. Crdate DATETIME NOT NULL, --时间
  28668. Tools VARCHAR(1024) NOT NULL --附件(json格式)
  28669. )
  28670. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  28671. SET @EndRowIndex = @PageIndex * @PageSize
  28672. --查询某个用户
  28673. IF(@UserID > 0)
  28674. BEGIN
  28675. INSERT INTO @tmptable
  28676. (
  28677. SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
  28678. )
  28679. SELECT TOP 10000
  28680. SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
  28681. FROM
  28682. [SysMessage]
  28683. WHERE
  28684. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  28685. ORDER BY
  28686. SysMsgID DESC
  28687. END
  28688. --所有用户
  28689. ELSE
  28690. BEGIN
  28691. INSERT INTO @tmptable
  28692. (
  28693. SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
  28694. )
  28695. SELECT TOP 10000
  28696. SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
  28697. FROM
  28698. [SysMessage]
  28699. WHERE
  28700. Crdate BETWEEN @BeginTime AND @EndTime
  28701. ORDER BY
  28702. SysMsgID DESC
  28703. END
  28704. --记录数
  28705. SET @RecordCount = @@ROWCOUNT
  28706. ;WITH [List] AS
  28707. (
  28708. SELECT
  28709. ROW_NUMBER() OVER(ORDER BY SysMsgID DESC) AS RowNumber,
  28710. SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
  28711. FROM
  28712. @tmptable
  28713. )
  28714. SELECT
  28715. l.SysMsgID, u.UserID, u.NickName, l.Title, l.Content,
  28716. l.Status, l.SourceName, l.Tools,
  28717. CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
  28718. FROM
  28719. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  28720. WHERE
  28721. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  28722. ORDER BY
  28723. l.RowNumber ASC
  28724. RETURN
  28725. END
  28726. GO
  28727. /****** Object: StoredProcedure [dbo].[Manage_SysMessage_Send] Script Date: 2024/1/12 11:01:14 ******/
  28728. SET ANSI_NULLS ON
  28729. GO
  28730. SET QUOTED_IDENTIFIER ON
  28731. GO
  28732. -- EXEC [Manage_SysMessage_Send]
  28733. -- ==============================================
  28734. -- Author: wolf
  28735. -- Create Date: 2013-08-27
  28736. -- Mendor: wolf
  28737. -- Alter Date: 2015-09-08
  28738. -- Description: 发送系统消息
  28739. -- ==============================================
  28740. CREATE PROCEDURE [dbo].[Manage_SysMessage_Send]
  28741. @OpUserID INT, --操作员ID
  28742. @OpUserName VARCHAR(32), --操作员名称
  28743. @Title NVARCHAR(32), --标题
  28744. @Content NVARCHAR(256), --内容
  28745. @UserID INT, --用户ID -1=所有用户
  28746. @Tools VARCHAR(1024), --附件(json格式)
  28747. @IPAddress VARCHAR(16), --IP地址
  28748. @MsgType TINYINT --邮件类型(0=普通邮件 1=重要邮件)
  28749. AS
  28750. SET NOCOUNT ON
  28751. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28752. SET XACT_ABORT ON
  28753. BEGIN
  28754. DECLARE @Msg NVARCHAR(4000) --消息
  28755. --所有用户
  28756. IF(@UserID = -1)
  28757. BEGIN
  28758. INSERT INTO [SysMessage]
  28759. (
  28760. UserID, Title, Content, Status, SourceName, Crdate, Tools, MsgType
  28761. )
  28762. SELECT
  28763. UserID, @Title, @Content, 0, N'نظام', GETDATE(), @Tools, @MsgType
  28764. FROM
  28765. [AllUser]
  28766. WHERE
  28767. UserID NOT IN (SELECT UserID FROM [MachineUser])
  28768. END
  28769. ELSE
  28770. BEGIN
  28771. --给某个用户发送系统消息
  28772. INSERT INTO [SysMessage]
  28773. (
  28774. UserID, Title, Content, Status, SourceName, Crdate, Tools, MsgType
  28775. )
  28776. VALUES
  28777. (
  28778. @UserID, @Title, @Content, 0, N'نظام', GETDATE(), @Tools, @MsgType
  28779. )
  28780. END
  28781. SET @Msg = N'后台发送邮件,@UserID=' + LTRIM(STR(@UserID)) + ',@Title=' + @Title +
  28782. ',@Tools=' + @Tools + ',@MsgType=' + LTRIM(STR(@MsgType))
  28783. --添加后台操作日志
  28784. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
  28785. @IPAddress = @IPAddress, @Msg = @Msg, @Type = 1
  28786. RETURN
  28787. END
  28788. GO
  28789. /****** Object: StoredProcedure [dbo].[Manage_TaxStatTotal_GetList] Script Date: 2024/1/12 11:01:14 ******/
  28790. SET ANSI_NULLS ON
  28791. GO
  28792. SET QUOTED_IDENTIFIER ON
  28793. GO
  28794. -- EXEC [Manage_TaxStatTotal_GetList]
  28795. -- ==============================================
  28796. -- Author: wolf
  28797. -- Create Date: 2014-09-04
  28798. -- Mendor: wolf
  28799. -- Alter Date: 2016-01-27
  28800. -- Description: 后台管理--获取游戏税收总计
  28801. -- ==============================================
  28802. CREATE PROCEDURE [dbo].[Manage_TaxStatTotal_GetList]
  28803. @BeginTime DATETIME, --起始时间
  28804. @EndTime DATETIME, --截止时间
  28805. @TotalTaxAmount BIGINT OUTPUT --总税收
  28806. AS
  28807. SET NOCOUNT ON
  28808. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28809. SET XACT_ABORT ON
  28810. BEGIN
  28811. --申请表变量
  28812. DECLARE @tmptable TABLE(
  28813. ServerName NVARCHAR(32) NOT NULL, --服务器
  28814. TaxSum BIGINT NOT NULL --税收
  28815. )
  28816. SET @EndTime = @EndTime + ' 23:59:59'
  28817. SET @TotalTaxAmount = 0
  28818. --初始化表变量
  28819. INSERT INTO @tmptable(ServerName, TaxSum)
  28820. SELECT
  28821. ServerName, SUM(Tax)
  28822. FROM
  28823. [GameTax]
  28824. WHERE
  28825. DateFlag BETWEEN @BeginTime AND @EndTime
  28826. GROUP BY
  28827. ServerName
  28828. --有税收才统计
  28829. IF(@@ROWCOUNT > 0)
  28830. BEGIN
  28831. SET @TotalTaxAmount = (SELECT SUM(TaxSum) FROM @tmptable)
  28832. END
  28833. --返回信息:服务器名称、税收(TaxSum)(bigint)
  28834. SELECT
  28835. ServerName, TaxSum
  28836. FROM
  28837. @tmptable
  28838. ORDER BY
  28839. TaxSum DESC
  28840. RETURN
  28841. END
  28842. GO
  28843. /****** Object: StoredProcedure [dbo].[Manage_TimeBroadcast_Del] Script Date: 2024/1/12 11:01:14 ******/
  28844. SET ANSI_NULLS ON
  28845. GO
  28846. SET QUOTED_IDENTIFIER ON
  28847. GO
  28848. -- EXEC [Manage_TimeBroadcast_Del]
  28849. -- @Rid = 1
  28850. -- ==============================================
  28851. -- Author: wolf
  28852. -- Create Date: 2014-09-29
  28853. -- Mendor: wolf
  28854. -- Alter Date: 2014-09-29
  28855. -- Description: 后台管理--删除定时广播
  28856. -- ==============================================
  28857. CREATE PROCEDURE [dbo].[Manage_TimeBroadcast_Del]
  28858. @Rid INT --标识
  28859. AS
  28860. SET NOCOUNT ON
  28861. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28862. SET XACT_ABORT ON
  28863. BEGIN
  28864. --定时广播信息
  28865. DELETE FROM [TimeBroadcast] WHERE Rid = @Rid
  28866. RETURN
  28867. END
  28868. GO
  28869. /****** Object: StoredProcedure [dbo].[Manage_TimeBroadcast_GetList] Script Date: 2024/1/12 11:01:14 ******/
  28870. SET ANSI_NULLS ON
  28871. GO
  28872. SET QUOTED_IDENTIFIER ON
  28873. GO
  28874. -- DECLARE @RecordCount INT
  28875. -- EXEC [Manage_TimeBroadcast_GetList]
  28876. -- @PageIndex = 1,
  28877. -- @PageSize = 10,
  28878. -- @RecordCount = @RecordCount OUTPUT
  28879. -- SELECT @RecordCount AS RecordCount
  28880. -- ==============================================
  28881. -- Author: wolf
  28882. -- Create Date: 2014-09-29
  28883. -- Mendor: wolf
  28884. -- Alter Date: 2014-10-20
  28885. -- Description: 后台管理--获取定时广播列表
  28886. -- ==============================================
  28887. CREATE PROCEDURE [dbo].[Manage_TimeBroadcast_GetList]
  28888. @PageIndex INT, --页索引
  28889. @PageSize INT, --页大小
  28890. @RecordCount INT OUTPUT --记录数
  28891. AS
  28892. SET NOCOUNT ON
  28893. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28894. SET XACT_ABORT ON
  28895. BEGIN
  28896. DECLARE @StartRowIndex INT --起始行索引
  28897. DECLARE @EndRowIndex INT --截止行索引
  28898. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  28899. SET @EndRowIndex = @PageIndex * @PageSize
  28900. --记录数
  28901. SELECT @RecordCount = (SELECT COUNT(Rid) FROM [TimeBroadcast])
  28902. ;WITH [List] AS
  28903. (
  28904. SELECT
  28905. ROW_NUMBER() OVER(ORDER BY EndDate + EndTime DESC) AS RowNumber,
  28906. Rid, OpUserID, OpUserName, BeginDate, BeginTime, EndDate, EndTime,
  28907. InterMinutes, Msg, UpdateTime, Crdate
  28908. FROM
  28909. [TimeBroadcast]
  28910. )
  28911. --返回信息:标识(Rid)(OpUserID)、操作员名称(OpUserID)(int)、操作员名称(OpUserName)(varchar(32))、
  28912. -- 开始日期(BeginDate)(datetime)、开始时间(BeginTime)(varchar(8))、截止日期(EndDate)(datetime)、截止时间(EndTime)(varchar(8))、
  28913. -- 间隔分钟(InterMinutes)(int)、消息(Msg)(varchar(512))、更新时间(UpdateTime)(datetime)、创建时间(Crdate)(datetime)
  28914. SELECT
  28915. Rid, OpUserID, OpUserName, CONVERT(CHAR(10), BeginDate, 120) AS BeginDate, BeginTime,
  28916. CONVERT(CHAR(10), EndDate, 120) AS EndDate, EndTime,
  28917. InterMinutes, Msg, UpdateTime, Crdate
  28918. FROM
  28919. [List]
  28920. WHERE
  28921. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  28922. ORDER BY
  28923. RowNumber ASC
  28924. RETURN
  28925. END
  28926. GO
  28927. /****** Object: StoredProcedure [dbo].[Manage_TimeBroadcast_Send] Script Date: 2024/1/12 11:01:14 ******/
  28928. SET ANSI_NULLS ON
  28929. GO
  28930. SET QUOTED_IDENTIFIER ON
  28931. GO
  28932. -- EXEC [Manage_TimeBroadcast_Send]
  28933. -- @OpUserID = 1,
  28934. -- @OpUserName = '',
  28935. -- @BeginDate = '',
  28936. -- @BeginTime = '',
  28937. -- @EndDate = '',
  28938. -- @EndTime = '',
  28939. -- @InterMinutes = 1,
  28940. -- @Msg = ''
  28941. -- ==============================================
  28942. -- Author: wolf
  28943. -- Create Date: 2014-09-29
  28944. -- Mendor: wolf
  28945. -- Alter Date: 2014-09-29
  28946. -- Description: 后台管理--定时广播发送
  28947. -- ==============================================
  28948. CREATE PROCEDURE [dbo].[Manage_TimeBroadcast_Send]
  28949. @OpUserID INT, --操作员ID
  28950. @OpUserName VARCHAR(32), --操作员名称
  28951. @BeginDate DATETIME, --开始日期
  28952. @BeginTime VARCHAR(8), --开始时间
  28953. @EndDate DATETIME, --截止日期
  28954. @EndTime VARCHAR(8), --截止时间
  28955. @InterMinutes INT, --间隔分钟
  28956. @Msg VARCHAR(512) --广播消息
  28957. AS
  28958. SET NOCOUNT ON
  28959. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28960. SET XACT_ABORT ON
  28961. BEGIN
  28962. --定时广播
  28963. INSERT INTO [TimeBroadcast]
  28964. (
  28965. OpUserID, OpUserName, BeginDate, BeginTime, EndDate, EndTime,
  28966. InterMinutes, Msg, UpdateTime, Crdate
  28967. )
  28968. VALUES
  28969. (
  28970. @OpUserID, @OpUserName, @BeginDate, @BeginTime, @EndDate, @EndTime,
  28971. @InterMinutes, @Msg, GETDATE(), GETDATE()
  28972. )
  28973. RETURN
  28974. END
  28975. GO
  28976. /****** Object: StoredProcedure [dbo].[Manage_TimePeriod_GetStatList] Script Date: 2024/1/12 11:01:14 ******/
  28977. SET ANSI_NULLS ON
  28978. GO
  28979. SET QUOTED_IDENTIFIER ON
  28980. GO
  28981. -- EXEC [Manage_TimePeriod_GetStatList]
  28982. -- ==============================================
  28983. -- Author: wolf
  28984. -- Create Date: 2014-12-29
  28985. -- Mendor: wolf
  28986. -- Alter Date: 2015-06-01
  28987. -- Description: 时段人数报表
  28988. -- ==============================================
  28989. CREATE PROCEDURE [dbo].[Manage_TimePeriod_GetStatList]
  28990. @BeginTime DATETIME, --开始时间
  28991. @EndTime DATETIME --截止时间
  28992. AS
  28993. SET NOCOUNT ON
  28994. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  28995. SET XACT_ABORT ON
  28996. BEGIN
  28997. --表变量
  28998. DECLARE @tmptable TABLE(
  28999. DateFlag SMALLDATETIME NOT NULL,
  29000. UserID INT NOT NULL,
  29001. TodaySeconds INT NOT NULL
  29002. )
  29003. --初始化表变量
  29004. INSERT INTO @tmptable
  29005. (
  29006. DateFlag, UserID, TodaySeconds
  29007. )
  29008. SELECT
  29009. DateFlag, UserID, SUM(TodaySeconds)
  29010. FROM
  29011. (
  29012. SELECT
  29013. CONVERT(CHAR(10), LoginTime, 120) AS DateFlag, UserID, TodaySeconds
  29014. FROM
  29015. [t_onlinetime]
  29016. WHERE
  29017. LoginTime BETWEEN @BeginTime AND @EndTime + 1
  29018. UNION ALL
  29019. SELECT
  29020. CONVERT(CHAR(10), LoginTime, 120) AS DateFlag, UserID, TodaySeconds
  29021. FROM
  29022. [t_onlinetimeHistory]
  29023. WHERE
  29024. LoginTime BETWEEN @BeginTime AND @EndTime + 1
  29025. ) AS O
  29026. GROUP BY
  29027. DateFlag, UserID
  29028. --返回信息
  29029. SELECT
  29030. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
  29031. CASE
  29032. WHEN TodaySeconds BETWEEN 0 AND 300 THEN N'0~5分钟'
  29033. WHEN TodaySeconds BETWEEN 301 AND 900 THEN N'5~15分钟'
  29034. WHEN TodaySeconds BETWEEN 901 AND 1800 THEN N'15~30分钟'
  29035. WHEN TodaySeconds BETWEEN 1801 AND 2700 THEN N'30~45分钟'
  29036. WHEN TodaySeconds BETWEEN 2701 AND 3600 THEN N'45~60分钟'
  29037. WHEN TodaySeconds BETWEEN 3601 AND 4500 THEN N'60~75分钟'
  29038. WHEN TodaySeconds BETWEEN 4501 AND 5400 THEN N'75~90分钟'
  29039. WHEN TodaySeconds BETWEEN 5401 AND 6300 THEN N'90~105分钟'
  29040. WHEN TodaySeconds BETWEEN 6301 AND 7200 THEN N'105~120分钟'
  29041. WHEN TodaySeconds >= 7201 THEN N'2小时以上'
  29042. END AS TimePeriod, COUNT(DISTINCT UserID) AS UserCount
  29043. FROM
  29044. @tmptable
  29045. GROUP BY
  29046. CONVERT(CHAR(10), DateFlag, 120),
  29047. CASE
  29048. WHEN TodaySeconds BETWEEN 0 AND 300 THEN N'0~5分钟'
  29049. WHEN TodaySeconds BETWEEN 301 AND 900 THEN N'5~15分钟'
  29050. WHEN TodaySeconds BETWEEN 901 AND 1800 THEN N'15~30分钟'
  29051. WHEN TodaySeconds BETWEEN 1801 AND 2700 THEN N'30~45分钟'
  29052. WHEN TodaySeconds BETWEEN 2701 AND 3600 THEN N'45~60分钟'
  29053. WHEN TodaySeconds BETWEEN 3601 AND 4500 THEN N'60~75分钟'
  29054. WHEN TodaySeconds BETWEEN 4501 AND 5400 THEN N'75~90分钟'
  29055. WHEN TodaySeconds BETWEEN 5401 AND 6300 THEN N'90~105分钟'
  29056. WHEN TodaySeconds BETWEEN 6301 AND 7200 THEN N'105~120分钟'
  29057. WHEN TodaySeconds >= 7201 THEN N'2小时以上'
  29058. END
  29059. ORDER BY
  29060. CONVERT(CHAR(10), DateFlag, 120) DESC, MIN(TodaySeconds) ASC
  29061. RETURN
  29062. END
  29063. GO
  29064. /****** Object: StoredProcedure [dbo].[Manage_TimePeriod_GetUserList] Script Date: 2024/1/12 11:01:14 ******/
  29065. SET ANSI_NULLS ON
  29066. GO
  29067. SET QUOTED_IDENTIFIER ON
  29068. GO
  29069. -- EXEC [Manage_TimePeriod_GetUserList]
  29070. -- ==============================================
  29071. -- Author: wolf
  29072. -- Create Date: 2014-12-29
  29073. -- Mendor: wolf
  29074. -- Alter Date: 2015-06-01
  29075. -- Description: 时段人数用户列表
  29076. -- ==============================================
  29077. CREATE PROCEDURE [dbo].[Manage_TimePeriod_GetUserList]
  29078. @MinSeconds INT, --最小秒数
  29079. @MaxSeconds INT, --最大秒数
  29080. @BeginTime DATETIME, --开始时间
  29081. @EndTime DATETIME, --截止时间
  29082. @PageIndex INT, --页索引
  29083. @PageSize INT, --页大小
  29084. @RecordCount INT OUTPUT --记录数
  29085. AS
  29086. SET NOCOUNT ON
  29087. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29088. SET XACT_ABORT ON
  29089. BEGIN
  29090. DECLARE @StartRowIndex INT --起始行索引
  29091. DECLARE @EndRowIndex INT --截止行索引
  29092. DECLARE @tmptable TABLE(
  29093. UserID INT NOT NULL, --用户ID
  29094. Seconds INT NOT NULL --总秒数
  29095. )
  29096. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  29097. SET @EndRowIndex = @PageIndex * @PageSize
  29098. SET @EndTime = @EndTime + 1
  29099. --初始化
  29100. INSERT INTO @tmptable
  29101. (
  29102. UserID, Seconds
  29103. )
  29104. SELECT
  29105. UserID, SUM(TodaySeconds)
  29106. FROM
  29107. (
  29108. SELECT
  29109. UserID, TodaySeconds
  29110. FROM
  29111. [t_onlinetime]
  29112. WHERE
  29113. LoginTime BETWEEN @BeginTime AND @EndTime
  29114. UNION ALL
  29115. SELECT
  29116. UserID, TodaySeconds
  29117. FROM
  29118. [t_onlinetimeHistory]
  29119. WHERE
  29120. LoginTime BETWEEN @BeginTime AND @EndTime
  29121. ) O
  29122. GROUP BY
  29123. UserID
  29124. HAVING
  29125. SUM(TodaySeconds) BETWEEN @MinSeconds AND @MaxSeconds
  29126. --记录数
  29127. SET @RecordCount = @@ROWCOUNT
  29128. ;WITH [List] AS
  29129. (
  29130. SELECT
  29131. ROW_NUMBER() OVER(ORDER BY Seconds DESC) AS RowNumber,
  29132. UserID, Seconds
  29133. FROM
  29134. @tmptable
  29135. )
  29136. --返回信息
  29137. SELECT
  29138. l.RowNumber, l.UserID, u.NickName, CONVERT(CHAR(16), u.RegTime, 120) AS RegTime,
  29139. CONVERT(CHAR(16), u.LoginTime, 120) AS LoginTime, l.Seconds, u.IPAddress
  29140. FROM
  29141. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  29142. WHERE
  29143. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  29144. ORDER BY
  29145. RowNumber ASC
  29146. RETURN
  29147. END
  29148. GO
  29149. /****** Object: StoredProcedure [dbo].[Manage_TimePeriod_Report] Script Date: 2024/1/12 11:01:14 ******/
  29150. SET ANSI_NULLS ON
  29151. GO
  29152. SET QUOTED_IDENTIFIER ON
  29153. GO
  29154. -- EXEC [Manage_TimePeriod_Report]
  29155. -- ==============================================
  29156. -- Author: wolf
  29157. -- Create Date: 2014-12-29
  29158. -- Mendor: wolf
  29159. -- Alter Date: 2015-06-01
  29160. -- Description: 时段人数报表
  29161. -- ==============================================
  29162. CREATE PROCEDURE [dbo].[Manage_TimePeriod_Report]
  29163. @BeginTime DATETIME, --开始时间
  29164. @EndTime DATETIME --截止时间
  29165. AS
  29166. SET NOCOUNT ON
  29167. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29168. SET XACT_ABORT ON
  29169. BEGIN
  29170. --表变量
  29171. DECLARE @tmptable TABLE(
  29172. UserID INT NOT NULL,
  29173. TodaySeconds INT NOT NULL
  29174. )
  29175. --初始化表变量
  29176. INSERT INTO @tmptable
  29177. (
  29178. UserID, TodaySeconds
  29179. )
  29180. SELECT
  29181. UserID, SUM(TodaySeconds)
  29182. FROM
  29183. (
  29184. SELECT
  29185. UserID, TodaySeconds
  29186. FROM
  29187. [t_onlinetime]
  29188. WHERE
  29189. LoginTime BETWEEN @BeginTime AND @EndTime + 1
  29190. UNION ALL
  29191. SELECT
  29192. UserID, TodaySeconds
  29193. FROM
  29194. [t_onlinetimeHistory]
  29195. WHERE
  29196. LoginTime BETWEEN @BeginTime AND @EndTime + 1
  29197. ) AS onlineTime
  29198. GROUP BY
  29199. UserID
  29200. --返回信息
  29201. SELECT
  29202. CASE
  29203. WHEN TodaySeconds BETWEEN 0 AND 300 THEN N'0~5分钟'
  29204. WHEN TodaySeconds BETWEEN 301 AND 900 THEN N'5~15分钟'
  29205. WHEN TodaySeconds BETWEEN 901 AND 1800 THEN N'15~30分钟'
  29206. WHEN TodaySeconds BETWEEN 1801 AND 2700 THEN N'30~45分钟'
  29207. WHEN TodaySeconds BETWEEN 2701 AND 3600 THEN N'45~60分钟'
  29208. WHEN TodaySeconds BETWEEN 3601 AND 4500 THEN N'60~75分钟'
  29209. WHEN TodaySeconds BETWEEN 4501 AND 5400 THEN N'75~90分钟'
  29210. WHEN TodaySeconds BETWEEN 5401 AND 6300 THEN N'90~105分钟'
  29211. WHEN TodaySeconds BETWEEN 6301 AND 7200 THEN N'105~120分钟'
  29212. WHEN TodaySeconds >= 7201 THEN N'2小时以上'
  29213. END AS TimePeriod, COUNT(DISTINCT UserID) AS UserCount
  29214. FROM
  29215. @tmptable
  29216. GROUP BY
  29217. CASE
  29218. WHEN TodaySeconds BETWEEN 0 AND 300 THEN N'0~5分钟'
  29219. WHEN TodaySeconds BETWEEN 301 AND 900 THEN N'5~15分钟'
  29220. WHEN TodaySeconds BETWEEN 901 AND 1800 THEN N'15~30分钟'
  29221. WHEN TodaySeconds BETWEEN 1801 AND 2700 THEN N'30~45分钟'
  29222. WHEN TodaySeconds BETWEEN 2701 AND 3600 THEN N'45~60分钟'
  29223. WHEN TodaySeconds BETWEEN 3601 AND 4500 THEN N'60~75分钟'
  29224. WHEN TodaySeconds BETWEEN 4501 AND 5400 THEN N'75~90分钟'
  29225. WHEN TodaySeconds BETWEEN 5401 AND 6300 THEN N'90~105分钟'
  29226. WHEN TodaySeconds BETWEEN 6301 AND 7200 THEN N'105~120分钟'
  29227. WHEN TodaySeconds >= 7201 THEN N'2小时以上'
  29228. END
  29229. ORDER BY
  29230. MIN(TodaySeconds) ASC
  29231. RETURN
  29232. END
  29233. GO
  29234. /****** Object: StoredProcedure [dbo].[Manage_Tip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  29235. SET ANSI_NULLS ON
  29236. GO
  29237. SET QUOTED_IDENTIFIER ON
  29238. GO
  29239. -- EXEC [Manage_Tip_GetInfo]
  29240. -- ==============================================
  29241. -- Author: wolf
  29242. -- Create Date: 2014-08-29
  29243. -- Mendor: wolf
  29244. -- Alter Date: 2015-08-10
  29245. -- Description: 小红点提示
  29246. -- ==============================================
  29247. CREATE PROCEDURE [dbo].[Manage_Tip_GetInfo]
  29248. AS
  29249. SET NOCOUNT ON
  29250. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29251. SET XACT_ABORT ON
  29252. BEGIN
  29253. DECLARE @CurrTime DATETIME --系统当前时间
  29254. DECLARE @DateFlag SMALLDATETIME --日期标志
  29255. DECLARE @MessageCount INT --留言数
  29256. DECLARE @ExchangeCount INT --兑换数
  29257. DECLARE @UserWordCount INT --个性签名数
  29258. DECLARE @AuditCount INT --提现审核条数
  29259. DECLARE @FailCount INT --提现失败条数
  29260. DECLARE @FeedbackCount INT --反馈提醒
  29261. SET @CurrTime = GETDATE()
  29262. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  29263. SET @MessageCount = 0
  29264. SET @ExchangeCount = 0
  29265. SET @UserWordCount = 0
  29266. SET @AuditCount = 0
  29267. SET @FailCount = 0
  29268. SET @FeedbackCount = 0
  29269. --还没查看的留言数
  29270. SELECT @MessageCount = COUNT(MessageID) FROM [ServiceMessage] WHERE Crdate >= @DateFlag - 3 AND UserID > 0 AND IsRead = 0
  29271. --兑换数
  29272. SELECT @ExchangeCount = COUNT(Id) FROM [ExchangeHistory] WHERE Crdate >= @DateFlag - 3 AND Status = 0
  29273. --个性签名数
  29274. SELECT @UserWordCount = COUNT(ApplyID) FROM [UserWordsPool] WHERE ApplyTime >= @DateFlag AND Status = 0
  29275. SELECT @FeedbackCount = COUNT(Rid) FROM [Feedback] WHERE Crdate >= @DateFlag - 3 AND Status = 0 AND Email NOT LIKE N'问卷调查%'
  29276. --返回信息
  29277. SELECT @MessageCount AS MessageCount, @ExchangeCount AS ExchangeCount, @UserWordCount AS UserWordCount,
  29278. @AuditCount AS AuditCount, @FailCount AS FailCount, @FeedbackCount AS FeedbackCount
  29279. RETURN
  29280. END
  29281. GO
  29282. /****** Object: StoredProcedure [dbo].[Manage_UserAgent_DealApply] Script Date: 2024/1/12 11:01:14 ******/
  29283. SET ANSI_NULLS ON
  29284. GO
  29285. SET QUOTED_IDENTIFIER ON
  29286. GO
  29287. -- EXEC [Manage_UserAgent_DealApply]
  29288. -- ==============================================
  29289. -- Author: wolf
  29290. -- Create Date: 2016-07-11
  29291. -- Mendor: wolf
  29292. -- Alter Date: 2017-02-23
  29293. -- Description: 处理申请
  29294. -- ==============================================
  29295. CREATE PROCEDURE [dbo].[Manage_UserAgent_DealApply]
  29296. @OpUserID INT, --操作员ID
  29297. @OpUserName VARCHAR(32), --操作员昵称
  29298. @ApplyID INT, --申请ID
  29299. @ApplyStatus TINYINT, --状态(0=审核 1=已通过 2=拒绝)
  29300. @IPAddress VARCHAR(16), --IP地址
  29301. @RetCode TINYINT OUTPUT --操作结果 1=审核通过成功 2=拒绝成功 11=参数错误 12=申请已经处理过
  29302. AS
  29303. SET NOCOUNT ON
  29304. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29305. SET XACT_ABORT ON
  29306. BEGIN
  29307. DECLARE @Status TINYINT --状态(0=审核 1=已通过 2=拒绝)
  29308. DECLARE @UserID INT --用户ID
  29309. DECLARE @CurrTime DATETIME --时间
  29310. DECLARE @HigherUserID INT --上级ID
  29311. SET @RetCode = 0
  29312. SET @CurrTime = GETDATE()
  29313. --判断参数
  29314. IF(@ApplyStatus IS NULL OR @ApplyStatus NOT IN (1, 2))
  29315. BEGIN
  29316. SET @RetCode = 11
  29317. RETURN
  29318. END
  29319. --申请信息
  29320. SELECT
  29321. @UserID = UserID, @Status = ApplyStatus, @HigherUserID = HigherUserID
  29322. FROM
  29323. [AgentApply]
  29324. WHERE
  29325. ApplyID = @ApplyID
  29326. IF(@@ROWCOUNT = 0)
  29327. BEGIN
  29328. SET @RetCode = 11
  29329. RETURN
  29330. END
  29331. --判断是否是待审核
  29332. IF(@Status != 0)
  29333. BEGIN
  29334. SET @RetCode = 12
  29335. RETURN
  29336. END
  29337. --处理申请
  29338. UPDATE
  29339. [AgentApply]
  29340. SET
  29341. ApplyStatus = @ApplyStatus, DealTime = @CurrTime,
  29342. Memo = Memo + N',操作员:'+ @OpUserName + '(id:' + LTRIM(STR(@OpUserID)) + ')'
  29343. WHERE
  29344. ApplyID = @ApplyID
  29345. --2=拒绝
  29346. IF(@ApplyStatus = 2)
  29347. BEGIN
  29348. SET @RetCode = 2
  29349. RETURN
  29350. END
  29351. --初始化
  29352. INSERT INTO [UserAgent]
  29353. (
  29354. UserID, Commission, Profit, Members, Enabled, Crdate
  29355. )
  29356. VALUES
  29357. (
  29358. @UserID, 0, 0, 0, 1, @CurrTime
  29359. )
  29360. --还没有上级
  29361. IF(@HigherUserID <= 0)
  29362. BEGIN
  29363. --绑定系统账号
  29364. EXEC [WS_UserAgent_Bind] @UserID = @UserID, @HigherUserID = 10001
  29365. END
  29366. --审核通过
  29367. SET @RetCode = 1
  29368. RETURN
  29369. END
  29370. GO
  29371. /****** Object: StoredProcedure [dbo].[Manage_UserAgent_GetApplyList] Script Date: 2024/1/12 11:01:14 ******/
  29372. SET ANSI_NULLS ON
  29373. GO
  29374. SET QUOTED_IDENTIFIER ON
  29375. GO
  29376. -- EXEC [Manage_UserAgent_GetApplyList]
  29377. -- ==============================================
  29378. -- Author: wolf
  29379. -- Create Date: 2016-07-11
  29380. -- Mendor: wolf
  29381. -- Alter Date: 2017-02-23
  29382. -- Description: 申请列表
  29383. -- ==============================================
  29384. CREATE PROCEDURE [dbo].[Manage_UserAgent_GetApplyList]
  29385. @UserID INT, --用户ID
  29386. @BeginTime DATETIME, --开始时间
  29387. @EndTime DATETIME, --截止时间
  29388. @PageIndex INT, --页索引
  29389. @PageSize INT, --页大小
  29390. @RecordCount INT OUTPUT --总记录数
  29391. AS
  29392. SET NOCOUNT ON
  29393. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29394. SET XACT_ABORT ON
  29395. BEGIN
  29396. DECLARE @StartRowIndex INT --起始行索引
  29397. DECLARE @EndRowIndex INT --截止行索引
  29398. DECLARE @tmptable TABLE(
  29399. ApplyID INT NOT NULL, --申请ID
  29400. UserID INT NOT NULL, --用户ID
  29401. HigherUserID INT NOT NULL, --上级用户ID
  29402. ApplyStatus TINYINT NOT NULL, --状态(0=待审核 1=已通过 2=拒绝)
  29403. Memo NVARCHAR(128) NOT NULL, --备注(联系信息,如:电话)
  29404. DealTime DATETIME NOT NULL, --处理时间
  29405. Crdate DATETIME NOT NULL --时间
  29406. )
  29407. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  29408. SET @EndRowIndex = @PageIndex * @PageSize
  29409. SET @RecordCount = 0
  29410. --查询某个用户
  29411. IF(@UserID > 0)
  29412. BEGIN
  29413. INSERT INTO @tmptable
  29414. (
  29415. ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
  29416. )
  29417. SELECT
  29418. ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
  29419. FROM
  29420. [AgentApply]
  29421. WHERE
  29422. UserID = @UserID
  29423. END
  29424. --查询所有
  29425. ELSE
  29426. BEGIN
  29427. INSERT INTO @tmptable
  29428. (
  29429. ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
  29430. )
  29431. SELECT
  29432. ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
  29433. FROM
  29434. [AgentApply]
  29435. WHERE
  29436. Crdate BETWEEN @BeginTime AND @EndTime
  29437. END
  29438. SET @RecordCount = @@ROWCOUNT
  29439. ;WITH [List] AS
  29440. (
  29441. SELECT
  29442. ROW_NUMBER() OVER(ORDER BY ApplyID DESC) AS RowNumber,
  29443. ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
  29444. FROM
  29445. @tmptable
  29446. )
  29447. --返回信息
  29448. SELECT
  29449. l.ApplyID, l.UserID, u.NickName, l.HigherUserID, ISNULL(h.NickName, '') AS HigherNickName,
  29450. l.ApplyStatus, l.Memo, CONVERT(VARCHAR(23), l.DealTime, 121) AS DealTime,
  29451. CONVERT(VARCHAR(23), l.Crdate, 121) AS Cradte
  29452. FROM
  29453. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  29454. LEFT JOIN [AllUser] h ON l.HigherUserID = h.UserID
  29455. WHERE
  29456. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  29457. ORDER BY
  29458. l.RowNumber ASC
  29459. RETURN
  29460. END
  29461. GO
  29462. /****** Object: StoredProcedure [dbo].[Manage_UserAgent_GetCommissionLog] Script Date: 2024/1/12 11:01:14 ******/
  29463. SET ANSI_NULLS ON
  29464. GO
  29465. SET QUOTED_IDENTIFIER ON
  29466. GO
  29467. -- EXEC [Manage_UserAgent_GetCommissionLog]
  29468. -- =============================================
  29469. -- Author: wolf
  29470. -- Create Date: 2014-04-23
  29471. -- Mendor: wolf
  29472. -- Alter Date: 2015-10-12
  29473. -- Description: 佣金日志
  29474. -- =============================================
  29475. CREATE PROCEDURE [dbo].[Manage_UserAgent_GetCommissionLog]
  29476. @UserID INT, --账号ID
  29477. @BeginTime DATETIME, --开始时间
  29478. @EndTime DATETIME, --结束时间
  29479. @PageIndex INT = 1, --页索引
  29480. @PageSize INT = 10, --页大小
  29481. @RecordCount BIGINT OUTPUT, --总记录数
  29482. @TotalCommission BIGINT OUTPUT --总佣金
  29483. AS
  29484. SET NOCOUNT ON
  29485. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29486. SET XACT_ABORT ON
  29487. BEGIN
  29488. DECLARE @StartRowIndex INT --起始行索引
  29489. DECLARE @EndRowIndex INT --截止行索引
  29490. --申请表变量
  29491. DECLARE @tmptable TABLE(
  29492. Rid INT NOT NULL, --标识
  29493. UserID INT NOT NULL, --用户ID
  29494. GameID INT NOT NULL, --游戏ID
  29495. FromUserID INT NOT NULL, --源用户ID
  29496. Tax BIGINT NOT NULL, --台费
  29497. WantCommission BIGINT NOT NULL, --操作佣金
  29498. StillCommission BIGINT NOT NULL, --剩余佣金
  29499. Direct TINYINT NOT NULL, --属级(1=直属 2=非直属)
  29500. Memo NVARCHAR(128) NOT NULL, --备注
  29501. Crdate DATETIME NOT NULL --时间
  29502. )
  29503. SET @RecordCount = 0
  29504. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  29505. SET @EndRowIndex = @PageIndex * @PageSize
  29506. SET @TotalCommission = 0
  29507. --查询某个账号
  29508. IF(@UserID > 0)
  29509. BEGIN
  29510. INSERT INTO @tmptable
  29511. (
  29512. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  29513. StillCommission, Direct, Memo, Crdate
  29514. )
  29515. SELECT
  29516. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  29517. StillCommission, Direct, Memo, Crdate
  29518. FROM
  29519. [CommissionLog]
  29520. WHERE
  29521. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  29522. --总记录数
  29523. SET @RecordCount = @@ROWCOUNT
  29524. INSERT INTO @tmptable
  29525. (
  29526. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  29527. StillCommission, Direct, Memo, Crdate
  29528. )
  29529. SELECT
  29530. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  29531. StillCommission, Direct, Memo, Crdate
  29532. FROM
  29533. [CommissionLogHistory]
  29534. WHERE
  29535. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  29536. --总记录数
  29537. SET @RecordCount = @RecordCount + @@ROWCOUNT
  29538. END
  29539. --查询所有
  29540. ELSE
  29541. BEGIN
  29542. INSERT INTO @tmptable
  29543. (
  29544. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  29545. StillCommission, Direct, Memo, Crdate
  29546. )
  29547. SELECT
  29548. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  29549. StillCommission, Direct, Memo, Crdate
  29550. FROM
  29551. [CommissionLog]
  29552. WHERE
  29553. Crdate BETWEEN @BeginTime AND @EndTime
  29554. --总记录数
  29555. SET @RecordCount = @@ROWCOUNT
  29556. INSERT INTO @tmptable
  29557. (
  29558. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  29559. StillCommission, Direct, Memo, Crdate
  29560. )
  29561. SELECT
  29562. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  29563. StillCommission, Direct, Memo, Crdate
  29564. FROM
  29565. [CommissionLogHistory]
  29566. WHERE
  29567. Crdate BETWEEN @BeginTime AND @EndTime
  29568. --总记录数
  29569. SET @RecordCount = @RecordCount + @@ROWCOUNT
  29570. END
  29571. --统计总佣金
  29572. SELECT @TotalCommission = ISNULL(SUM(WantCommission), 0) FROM @tmptable WHERE WantCommission > 0
  29573. ;WITH [List] AS
  29574. (
  29575. SELECT
  29576. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  29577. Rid, UserID, GameID, FromUserID, Tax, WantCommission,
  29578. StillCommission, Direct, Memo, Crdate
  29579. FROM
  29580. @tmptable
  29581. )
  29582. --返回信息
  29583. SELECT
  29584. l.Rid, l.UserID, u.NickName, l.FromUserID, f.NickName AS FromNickName,
  29585. l.Tax, l.WantCommission, l.StillCommission, l.Direct,
  29586. l.Memo, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
  29587. ISNULL(g.ChineseName, '') AS ChineseName
  29588. FROM
  29589. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  29590. INNER JOIN [AllUser] f ON l.FromUserID = f.UserID
  29591. LEFT JOIN [AllGame] g ON l.GameID = g.GameID
  29592. WHERE
  29593. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  29594. ORDER BY
  29595. l.RowNumber ASC
  29596. RETURN
  29597. END
  29598. GO
  29599. /****** Object: StoredProcedure [dbo].[Manage_UserAgent_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  29600. SET ANSI_NULLS ON
  29601. GO
  29602. SET QUOTED_IDENTIFIER ON
  29603. GO
  29604. -- EXEC [Manage_UserAgent_GetInfo]
  29605. -- ==============================================
  29606. -- Author: wolf
  29607. -- Create Date: 2016-07-11
  29608. -- Mendor: wolf
  29609. -- Alter Date: 2017-02-23
  29610. -- Description: 代理信息
  29611. -- ==============================================
  29612. CREATE PROCEDURE [dbo].[Manage_UserAgent_GetInfo]
  29613. @UserID INT, --用户ID
  29614. @BeginTime DATETIME, --开始时间
  29615. @EndTime DATETIME, --截止时间
  29616. @PageIndex INT, --页索引
  29617. @PageSize INT, --页大小
  29618. @RecordCount INT OUTPUT --记录数
  29619. AS
  29620. SET NOCOUNT ON
  29621. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29622. SET XACT_ABORT ON
  29623. BEGIN
  29624. DECLARE @StartRowIndex INT --起始行索引
  29625. DECLARE @EndRowIndex INT --截止行索引
  29626. --用户代理
  29627. DECLARE @tmptable TABLE(
  29628. UserID INT NOT NULL, --用户ID
  29629. Commission BIGINT NOT NULL, --佣金
  29630. Profit BIGINT NOT NULL, --收益(已提取)
  29631. Members INT NOT NULL, --会员数
  29632. Enabled TINYINT NOT NULL, --启用
  29633. Crdate DATETIME NOT NULL --创建时间
  29634. )
  29635. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  29636. SET @EndRowIndex = @PageIndex * @PageSize
  29637. IF(@UserID > 0)
  29638. BEGIN
  29639. INSERT INTO @tmptable
  29640. (
  29641. UserID, Commission, Profit, Members, Enabled, Crdate
  29642. )
  29643. SELECT
  29644. UserID, Commission, Profit, Members, Enabled, Crdate
  29645. FROM
  29646. [UserAgent]
  29647. WHERE
  29648. UserID = @UserID
  29649. END
  29650. ELSE
  29651. BEGIN
  29652. INSERT INTO @tmptable
  29653. (
  29654. UserID, Commission, Profit, Members, Enabled, Crdate
  29655. )
  29656. SELECT
  29657. UserID, Commission, Profit, Members, Enabled, Crdate
  29658. FROM
  29659. [UserAgent]
  29660. WHERE
  29661. Crdate BETWEEN @BeginTime AND @EndTime
  29662. END
  29663. --记录数
  29664. SET @RecordCount = @@ROWCOUNT
  29665. ;WITH [list] AS
  29666. (
  29667. SELECT
  29668. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  29669. UserID, Commission, Profit, Members, Enabled, Crdate
  29670. FROM
  29671. @tmptable
  29672. )
  29673. --返回信息
  29674. SELECT
  29675. l.UserID, u.NickName, l.Commission, l.Profit, l.Members, l.Enabled,
  29676. CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate
  29677. FROM
  29678. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  29679. WHERE
  29680. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  29681. ORDER BY
  29682. l.RowNumber ASC
  29683. RETURN
  29684. END
  29685. GO
  29686. /****** Object: StoredProcedure [dbo].[Manage_UserAgent_GetMemberList] Script Date: 2024/1/12 11:01:14 ******/
  29687. SET ANSI_NULLS ON
  29688. GO
  29689. SET QUOTED_IDENTIFIER ON
  29690. GO
  29691. -- EXEC [Manage_UserAgent_GetMemberList]
  29692. -- ==============================================
  29693. -- Author: wolf
  29694. -- Create Date: 2016-07-11
  29695. -- Mendor: wolf
  29696. -- Alter Date: 2017-02-23
  29697. -- Description: 会员列表
  29698. -- ==============================================
  29699. CREATE PROCEDURE [dbo].[Manage_UserAgent_GetMemberList]
  29700. @UserID INT, --用户ID
  29701. @BeginTime DATETIME, --开始时间
  29702. @EndTime DATETIME, --截止时间
  29703. @PageIndex INT, --页索引
  29704. @PageSize INT, --页索引
  29705. @RecordCount INT OUTPUT --记录数
  29706. AS
  29707. SET NOCOUNT ON
  29708. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29709. SET XACT_ABORT ON
  29710. BEGIN
  29711. DECLARE @StartRowIndex INT --起始行索引
  29712. DECLARE @EndRowIndex INT --截止行索引
  29713. --佣金表变量
  29714. DECLARE @tmpCommission TABLE(
  29715. UserID INT NOT NULL, --用户ID
  29716. Commission BIGINT NOT NULL --佣金
  29717. )
  29718. --表变量
  29719. DECLARE @tmptable TABLE(
  29720. HigherUserID INT NOT NULL, --代理ID
  29721. UserID INT NOT NULL, --用户ID
  29722. Commission BIGINT NOT NULL, --佣金
  29723. NewCommission BIGINT NOT NULL, --新增佣金
  29724. BindTime DATETIME NOT NULL, --绑定时间
  29725. LoginTime DATETIME NOT NULL --登录时间
  29726. )
  29727. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  29728. SET @EndRowIndex = @PageIndex * @PageSize
  29729. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  29730. SET @RecordCount = 0
  29731. --某个用户
  29732. IF(@UserID > 0)
  29733. BEGIN
  29734. --代理列表
  29735. INSERT INTO @tmptable
  29736. (
  29737. HigherUserID, UserID, Commission, NewCommission, BindTime, LoginTime
  29738. )
  29739. SELECT
  29740. HigherUserID, UserID, Commission, 0, BindTime, LoginTime
  29741. FROM
  29742. [AgentMember]
  29743. WHERE
  29744. HigherUserID = @UserID OR UserID = @UserID
  29745. END
  29746. ELSE
  29747. BEGIN
  29748. --代理列表
  29749. INSERT INTO @tmptable
  29750. (
  29751. HigherUserID, UserID, Commission, NewCommission, BindTime, LoginTime
  29752. )
  29753. SELECT
  29754. HigherUserID, UserID, Commission, 0, BindTime, LoginTime
  29755. FROM
  29756. [AgentMember]
  29757. WHERE
  29758. BindTime BETWEEN @BeginTime AND @EndTime
  29759. ORDER BY
  29760. MemberID DESC
  29761. END
  29762. --记录数
  29763. SET @RecordCount = @@ROWCOUNT
  29764. --统计代理统计
  29765. INSERT INTO @tmpCommission
  29766. (
  29767. UserID, Commission
  29768. )
  29769. SELECT
  29770. c.FromUserID, SUM(c.Commission)
  29771. FROM
  29772. [CommissionStat] c INNER JOIN @tmptable t ON c.FromUserID = t.UserID
  29773. WHERE
  29774. c.DateFlag BETWEEN @BeginTime AND @EndTime
  29775. GROUP BY
  29776. c.FromUserID
  29777. --获取流水、佣金
  29778. UPDATE t SET t.NewCommission = c.Commission FROM @tmptable t INNER JOIN @tmpCommission c ON t.UserID = c.UserID
  29779. ;WITH [List] AS
  29780. (
  29781. SELECT
  29782. ROW_NUMBER() OVER(ORDER BY NewCommission DESC) AS RowNumber,
  29783. HigherUserID, UserID, Commission, NewCommission, BindTime, LoginTime
  29784. FROM
  29785. @tmptable
  29786. )
  29787. --返回信息
  29788. SELECT
  29789. l.UserID, u.NickName, l.Commission, l.NewCommission,
  29790. CONVERT(CHAR(20), l.BindTime, 120) AS BindTime,
  29791. CONVERT(CHAR(20), u.LoginTime, 120) AS LoginTime,
  29792. l.HigherUserID, h.NickName AS HigherUserName
  29793. FROM
  29794. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  29795. INNER JOIN [AllUser] h ON l.HigherUserID = h.UserID
  29796. WHERE
  29797. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  29798. ORDER BY
  29799. l.RowNumber ASC
  29800. RETURN
  29801. END
  29802. GO
  29803. /****** Object: StoredProcedure [dbo].[Manage_UserAgent_SetStatus] Script Date: 2024/1/12 11:01:14 ******/
  29804. SET ANSI_NULLS ON
  29805. GO
  29806. SET QUOTED_IDENTIFIER ON
  29807. GO
  29808. -- EXEC [Manage_UserAgent_SetStatus]
  29809. -- ==============================================
  29810. -- Author: wolf
  29811. -- Create Date: 2014-12-29
  29812. -- Mendor: wolf
  29813. -- Alter Date: 2015-06-01
  29814. -- Description: 代理设置
  29815. -- ==============================================
  29816. CREATE PROCEDURE [dbo].[Manage_UserAgent_SetStatus]
  29817. @OpUserID INT, --操作员ID
  29818. @OpUserName VARCHAR(32), --操作员名称
  29819. @UserID INT, --用户ID
  29820. @Enabled TINYINT --是否开启(1=开启 其他关闭)
  29821. AS
  29822. SET NOCOUNT ON
  29823. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29824. SET XACT_ABORT ON
  29825. BEGIN
  29826. DECLARE @Msg NVARCHAR(4000) --操作描述
  29827. DECLARE @DBEnabled TINYINT --开启状态
  29828. SET @DBEnabled = 0
  29829. --状态
  29830. UPDATE [UserAgent] SET Enabled = @Enabled, @DBEnabled = Enabled WHERE UserID = @UserID
  29831. SET @Msg = N'代理状态设置, @UserID=' + LTRIM(STR(@UserID)) + ',@Enabled=' + LTRIM(STR(@Enabled)) +
  29832. ',@DBEnabled=' + LTRIM(STR(@DBEnabled))
  29833. --添加日志
  29834. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = '127.0.0.1'
  29835. RETURN
  29836. END
  29837. GO
  29838. /****** Object: StoredProcedure [dbo].[Manage_UserBehavior_GetList] Script Date: 2024/1/12 11:01:14 ******/
  29839. SET ANSI_NULLS ON
  29840. GO
  29841. SET QUOTED_IDENTIFIER ON
  29842. GO
  29843. -- EXEC [Manage_UserBehavior_GetList]
  29844. -- ==============================================
  29845. -- Author: wolf
  29846. -- Create Date: 2015-10-10
  29847. -- Mendor: wolf
  29848. -- Alter Date: 2015-10-10
  29849. -- Description: 获取用户行为列表
  29850. -- ==============================================
  29851. CREATE PROCEDURE [dbo].[Manage_UserBehavior_GetList]
  29852. @UserID INT, --用户ID
  29853. @BeginTime DATETIME, --开始时间
  29854. @EndTime DATETIME, --截止时间
  29855. @PageIndex INT, --页索引
  29856. @PageSize INT, --页大小
  29857. @RecordCount INT OUTPUT
  29858. AS
  29859. SET NOCOUNT ON
  29860. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29861. SET XACT_ABORT ON
  29862. BEGIN
  29863. DECLARE @StartRowIndex INT --起始行索引
  29864. DECLARE @EndRowIndex INT --截止行索引
  29865. DECLARE @tmptable TABLE(
  29866. UserID INT NOT NULL, --用户ID
  29867. SceneName NVARCHAR(32) NOT NULL, --场景(商城、休闲游戏、元宝游戏)
  29868. ActTime DATETIME NOT NULL, --动作时间
  29869. Amount BIGINT NOT NULL, --金额
  29870. EndTime DATETIME NOT NULL, --结束时间
  29871. StaySeconds INT NOT NULL, --停留时长(秒)
  29872. StillAmount BIGINT NOT NULL, --余额
  29873. WinAmount BIGINT NOT NULL, --输赢
  29874. GameCount INT NOT NULL, --游戏局数
  29875. Status TINYINT NOT NULL --状态(1=休闲场 begin 2=休闲场 end 3=元宝场 begin 4=元宝场 end)
  29876. )
  29877. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  29878. SET @EndRowIndex = @PageIndex * @PageSize
  29879. --初始化
  29880. INSERT INTO @tmptable
  29881. (
  29882. UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
  29883. )
  29884. SELECT
  29885. UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
  29886. FROM
  29887. [UserBehavior]
  29888. WHERE
  29889. ActTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  29890. --记录数
  29891. SET @RecordCount = @@ROWCOUNT
  29892. ;WITH [List] AS
  29893. (
  29894. SELECT
  29895. ROW_NUMBER() OVER(ORDER BY ActTime ASC) AS RowNumber,
  29896. UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
  29897. FROM
  29898. @tmptable
  29899. )
  29900. SELECT
  29901. UserID, SceneName, CONVERT(VARCHAR(23), ActTime, 121) AS ActTime, Amount,
  29902. CONVERT(VARCHAR(23), EndTime, 121) AS EndTime, StaySeconds, StillAmount,
  29903. WinAmount, GameCount, Status
  29904. FROM
  29905. [List]
  29906. WHERE
  29907. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  29908. ORDER BY
  29909. RowNumber ASC
  29910. RETURN
  29911. END
  29912. GO
  29913. /****** Object: StoredProcedure [dbo].[Manage_UserChipScore_AddRobot] Script Date: 2024/1/12 11:01:14 ******/
  29914. SET ANSI_NULLS ON
  29915. GO
  29916. SET QUOTED_IDENTIFIER ON
  29917. GO
  29918. -- EXEC [Manage_UserChipScore_AddRobot]
  29919. -- ==============================================
  29920. -- Author: wolf
  29921. -- Create Date: 2016-07-11
  29922. -- Mendor: wolf
  29923. -- Alter Date: 2017-02-23
  29924. -- Description: 添加元宝积分(用于机器人)
  29925. -- ==============================================
  29926. CREATE PROCEDURE [dbo].[Manage_UserChipScore_AddRobot]
  29927. @OpUserID INT, --操作员ID
  29928. @OpUserName VARCHAR(32), --操作员名称
  29929. @UserID INT, --用户ID
  29930. @Score INT, --积分
  29931. @IPAddress VARCHAR(16) --IP地址
  29932. AS
  29933. SET NOCOUNT ON
  29934. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29935. SET XACT_ABORT ON
  29936. BEGIN
  29937. DECLARE @DateFlag SMALLDATETIME --日期标识
  29938. DECLARE @Msg NVARCHAR(4000) --操作描述
  29939. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  29940. --更新
  29941. UPDATE [UserChipScore] SET Score = Score + @Score WHERE DateFlag = @DateFlag AND UserID = @UserID
  29942. IF(@@ROWCOUNT = 0)
  29943. BEGIN
  29944. INSERT INTO [UserChipScore](DateFlag, UserID, Score) VALUES(@DateFlag, @UserID, @Score)
  29945. END
  29946. SET @Msg = N'添加积分, @UserID=' + LTRIM(STR(@UserID)) + ',@Score=' + LTRIM(STR(@Score))
  29947. --添加日志
  29948. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  29949. RETURN
  29950. END
  29951. GO
  29952. /****** Object: StoredProcedure [dbo].[Manage_UserCouponTask_GetLog] Script Date: 2024/1/12 11:01:14 ******/
  29953. SET ANSI_NULLS ON
  29954. GO
  29955. SET QUOTED_IDENTIFIER ON
  29956. GO
  29957. -- EXEC [Manage_UserCouponTask_GetLog]
  29958. -- ==============================================
  29959. -- Author: wolf
  29960. -- Create Date: 2015-10-10
  29961. -- Mendor: wolf
  29962. -- Alter Date: 2015-10-10
  29963. -- Description: 红包券日志
  29964. -- ==============================================
  29965. CREATE PROCEDURE [dbo].[Manage_UserCouponTask_GetLog]
  29966. @UserID INT, --用户ID
  29967. @BeginTime DATETIME, --开始时间
  29968. @EndTime DATETIME, --截止时间
  29969. @PageIndex INT, --页索引
  29970. @PageSize INT, --页大小
  29971. @RecordCount INT OUTPUT --记录数
  29972. AS
  29973. SET NOCOUNT ON
  29974. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  29975. SET XACT_ABORT ON
  29976. BEGIN
  29977. DECLARE @StartRowIndex INT --起始行索引
  29978. DECLARE @EndRowIndex INT --截止行索引
  29979. DECLARE @tmptable TABLE(
  29980. LogID INT NOT NULL, --日志ID
  29981. UserID INT NOT NULL, --用户ID
  29982. ItemID INT NOT NULL, --道具ID
  29983. CurrCount INT NOT NULL, --当前数量
  29984. WantCount INT NOT NULL, --道具数量
  29985. StillCount INT NOT NULL, --剩余数量
  29986. Remark NVARCHAR(128) NOT NULL, --备注
  29987. IPAddress VARCHAR(16) NOT NULL, --IP地址
  29988. Crdate DATETIME NOT NULL --时间
  29989. )
  29990. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  29991. SET @EndRowIndex = @PageIndex * @PageSize
  29992. --SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  29993. IF(@UserID > 0)
  29994. BEGIN
  29995. INSERT INTO @tmptable
  29996. (
  29997. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  29998. )
  29999. SELECT
  30000. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30001. FROM
  30002. [UserItemLog]
  30003. WHERE
  30004. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = 620100
  30005. SET @RecordCount = @@ROWCOUNT
  30006. IF(@RecordCount < 10000)
  30007. BEGIN
  30008. INSERT INTO @tmptable
  30009. (
  30010. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30011. )
  30012. SELECT TOP (10000 - @RecordCount)
  30013. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30014. FROM
  30015. [UserItemLogHistory]
  30016. WHERE
  30017. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = 620100
  30018. ORDER BY
  30019. Crdate DESC
  30020. SET @RecordCount = @RecordCount + @@ROWCOUNT
  30021. END
  30022. END
  30023. ELSE
  30024. BEGIN
  30025. INSERT INTO @tmptable
  30026. (
  30027. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30028. )
  30029. SELECT
  30030. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30031. FROM
  30032. [UserItemLog]
  30033. WHERE
  30034. Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = 620100
  30035. SET @RecordCount = @@ROWCOUNT
  30036. IF(@RecordCount < 10000)
  30037. BEGIN
  30038. INSERT INTO @tmptable
  30039. (
  30040. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30041. )
  30042. SELECT TOP (10000 - @RecordCount)
  30043. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30044. FROM
  30045. [UserItemLogHistory]
  30046. WHERE
  30047. Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = 620100
  30048. ORDER BY
  30049. Crdate DESC
  30050. SET @RecordCount = @RecordCount + @@ROWCOUNT
  30051. END
  30052. END
  30053. ;WITH [List] AS
  30054. (
  30055. SELECT
  30056. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  30057. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30058. FROM
  30059. @tmptable
  30060. )
  30061. SELECT
  30062. l.LogID, l.UserID, u.NickName, l.ItemID, l.CurrCount, l.WantCount, l.StillCount,
  30063. l.Remark, l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
  30064. ISNULL(i.ItemName, '') AS ItemName
  30065. FROM
  30066. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  30067. LEFT JOIN [Item] i ON l.ItemID = i.ItemID
  30068. WHERE
  30069. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  30070. ORDER BY
  30071. l.RowNumber ASC
  30072. END
  30073. GO
  30074. /****** Object: StoredProcedure [dbo].[Manage_UserDailyStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  30075. SET ANSI_NULLS ON
  30076. GO
  30077. SET QUOTED_IDENTIFIER ON
  30078. GO
  30079. -- EXEC [Manage_UserDailyStat_GetList]
  30080. -- ==============================================
  30081. -- Author: wolf
  30082. -- Create Date: 2015-10-10
  30083. -- Mendor: wolf
  30084. -- Alter Date: 2015-10-10
  30085. -- Description: 用户日常统计列表
  30086. -- ==============================================
  30087. CREATE PROCEDURE [dbo].[Manage_UserDailyStat_GetList]
  30088. @UserID INT, --用户ID
  30089. @IsSleep TINYINT, --是否沉睡用户 (1=沉睡用户)
  30090. @BeginTime DATETIME, --开始时间
  30091. @EndTime DATETIME, --截止时间
  30092. @PageIndex INT, --页索引
  30093. @PageSize INT, --页大小
  30094. @RecordCount INT OUTPUT --记录数
  30095. AS
  30096. SET NOCOUNT ON
  30097. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30098. SET XACT_ABORT ON
  30099. BEGIN
  30100. DECLARE @StartRowIndex INT --起始行索引
  30101. DECLARE @EndRowIndex INT --截止行索引
  30102. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  30103. SET @EndRowIndex = @PageIndex * @PageSize
  30104. --申请表变量
  30105. DECLARE @tmptable TABLE(
  30106. Rid INT NOT NULL, --标识
  30107. DateFlag SMALLDATETIME NOT NULL, --日期标识
  30108. UserID INT NOT NULL, --用户ID
  30109. WinAmount BIGINT NOT NULL, --赢金
  30110. LoseAmount BIGINT NOT NULL, --输金
  30111. StillAmount BIGINT NOT NULL, --剩余金币
  30112. GameStart DATETIME NOT NULL, --游戏开始时间
  30113. GameEnd DATETIME NOT NULL, --最后游戏结束时间
  30114. PlaySeconds INT NOT NULL, --游戏时长(秒)
  30115. PayMoney DECIMAL(18, 2) NOT NULL, --充值
  30116. LoginCount INT NOT NULL, --登录数
  30117. VideoPlayTimes INT NOT NULL, --视频广告次数
  30118. VideoSendAmount BIGINT NOT NULL --视频广告赠送
  30119. )
  30120. --查询某个账号
  30121. IF(@UserID > 0)
  30122. BEGIN
  30123. INSERT INTO @tmptable
  30124. (
  30125. Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  30126. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  30127. )
  30128. SELECT
  30129. Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  30130. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  30131. FROM
  30132. [UserDailyStat]
  30133. WHERE
  30134. DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  30135. END
  30136. --查询沉睡用户
  30137. ELSE IF(@IsSleep > 0)
  30138. BEGIN
  30139. INSERT INTO @tmptable
  30140. (
  30141. Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  30142. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  30143. )
  30144. SELECT
  30145. Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  30146. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  30147. FROM
  30148. [UserDailyStat]
  30149. WHERE
  30150. DateFlag BETWEEN @BeginTime AND @EndTime AND PlaySeconds = 0
  30151. END
  30152. --查询所有账号
  30153. ELSE
  30154. BEGIN
  30155. INSERT INTO @tmptable
  30156. (
  30157. Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  30158. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  30159. )
  30160. SELECT
  30161. Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  30162. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  30163. FROM
  30164. [UserDailyStat]
  30165. WHERE
  30166. DateFlag BETWEEN @BeginTime AND @EndTime
  30167. END
  30168. --记录数
  30169. SET @RecordCount = @@ROWCOUNT
  30170. ;WITH [List] AS
  30171. (
  30172. SELECT
  30173. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  30174. Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  30175. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  30176. FROM
  30177. @tmptable
  30178. )
  30179. --返回信息
  30180. SELECT
  30181. l.Rid, CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.UserID, u.NickName,
  30182. l.WinAmount, l.LoseAmount, l.StillAmount, CONVERT(CHAR(16), l.GameStart, 120) AS GameStart,
  30183. CONVERT(CHAR(16), l.GameEnd, 120) AS GameEnd, l.PlaySeconds, l.PayMoney,
  30184. ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName, l.LoginCount,
  30185. CONVERT(CHAR(16), u.RegTime, 120) AS RegTime, l.VideoPlayTimes, l.VideoSendAmount
  30186. FROM
  30187. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  30188. LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
  30189. WHERE
  30190. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  30191. ORDER BY
  30192. l.RowNumber ASC
  30193. RETURN
  30194. END
  30195. GO
  30196. /****** Object: StoredProcedure [dbo].[Manage_UserDot_GetStat] Script Date: 2024/1/12 11:01:14 ******/
  30197. SET ANSI_NULLS ON
  30198. GO
  30199. SET QUOTED_IDENTIFIER ON
  30200. GO
  30201. -- EXEC [Manage_UserDot_GetStat]
  30202. -- ==============================================
  30203. -- Author: wolf
  30204. -- Create Date: 2014-01-21
  30205. -- Mendor: wolf
  30206. -- Alter Date: 2016-11-07
  30207. -- Description: 获取打点统计
  30208. -- ==============================================
  30209. CREATE PROCEDURE [dbo].[Manage_UserDot_GetStat]
  30210. @BeginTime DATETIME, --开始时间
  30211. @EndTime DATETIME, --截止时间
  30212. @Event VARCHAR(32) --事件
  30213. AS
  30214. SET NOCOUNT ON
  30215. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30216. SET XACT_ABORT ON
  30217. BEGIN
  30218. --表变量
  30219. DECLARE @tmptable TABLE(
  30220. Event VARCHAR(32) NOT NULL, --事件
  30221. Days INT NOT NULL, --天数(0=当天 7=过去7天 30=过去30天)
  30222. ClickTimes INT NOT NULL, --点击次数
  30223. ClickUserCount INT NOT NULL, --点击人数
  30224. CompleteUserCount INT NOT NULL --完成人数
  30225. )
  30226. --表变量
  30227. DECLARE @tmpStat TABLE(
  30228. DateFlag SMALLDATETIME NOT NULL, --日期
  30229. Event VARCHAR(32) NOT NULL, --事件
  30230. Days INT NOT NULL, --天数(0=当天 7=过去7天 30=过去30天)
  30231. ClickTimes INT NOT NULL, --点击次数
  30232. ClickUserCount INT NOT NULL, --点击人数
  30233. CompleteUserCount INT NOT NULL --完成人数
  30234. )
  30235. --当天实时数据
  30236. IF(@EndTime >= CONVERT(CHAR(10), GETDATE(), 120))
  30237. BEGIN
  30238. --统计当天数据
  30239. INSERT INTO @tmptable
  30240. (
  30241. Event, Days, ClickTimes, ClickUserCount, CompleteUserCount
  30242. )
  30243. SELECT
  30244. Event, 0,
  30245. ISNULL(SUM(CASE WHEN Action = 1 THEN Times ELSE 0 END), 0),
  30246. ISNULL(SUM(CASE WHEN Action = 1 THEN 1 ELSE 0 END), 0),
  30247. ISNULL(SUM(CASE WHEN Action = 2 THEN 1 ELSE 0 END), 0)
  30248. FROM
  30249. [UserDot]
  30250. WHERE
  30251. DateFlag = CONVERT(CHAR(10), GETDATE(), 120) AND Event = @Event
  30252. GROUP BY
  30253. Event
  30254. --初始化
  30255. INSERT INTO @tmpStat
  30256. (
  30257. DateFlag, Event, Days, ClickTimes, ClickUserCount, CompleteUserCount
  30258. )
  30259. --返回信息
  30260. SELECT
  30261. CONVERT(CHAR(10), GETDATE(), 120) AS DateFlag, Event, Days,
  30262. SUM(ClickTimes) AS ClickTimes, SUM(ClickUserCount) AS ClickUserCount,
  30263. SUM(CompleteUserCount) AS CompleteUserCount
  30264. FROM
  30265. @tmptable
  30266. GROUP BY
  30267. Event, Days
  30268. END
  30269. --初始化
  30270. INSERT INTO @tmpStat
  30271. (
  30272. DateFlag, Event, Days, ClickTimes, ClickUserCount, CompleteUserCount
  30273. )
  30274. --返回信息
  30275. SELECT
  30276. CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, Event, Days,
  30277. SUM(ClickTimes) AS ClickTimes, SUM(ClickUserCount) AS ClickUserCount,
  30278. SUM(CompleteUserCount) AS CompleteUserCount
  30279. FROM
  30280. [UserDotStat]
  30281. WHERE
  30282. DateFlag BETWEEN @BeginTime AND @EndTime AND Event = @Event
  30283. GROUP BY
  30284. CONVERT(VARCHAR(10), DateFlag, 120), Event, Days
  30285. --返回信息
  30286. SELECT
  30287. CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, Event, Days, ClickTimes, ClickUserCount, CompleteUserCount
  30288. FROM
  30289. @tmpStat
  30290. ORDER BY
  30291. DateFlag DESC, Event ASC
  30292. RETURN
  30293. END
  30294. GO
  30295. /****** Object: StoredProcedure [dbo].[Manage_UserDot_GetTaskStat] Script Date: 2024/1/12 11:01:14 ******/
  30296. SET ANSI_NULLS ON
  30297. GO
  30298. SET QUOTED_IDENTIFIER ON
  30299. GO
  30300. -- EXEC [Manage_UserDot_GetTaskStat]
  30301. -- ==============================================
  30302. -- Author: wolf
  30303. -- Create Date: 2014-01-21
  30304. -- Mendor: wolf
  30305. -- Alter Date: 2016-11-07
  30306. -- Description: 获取打点任务统计
  30307. -- ==============================================
  30308. CREATE PROCEDURE [dbo].[Manage_UserDot_GetTaskStat]
  30309. @BeginTime DATETIME, --开始时间
  30310. @EndTime DATETIME --截止时间
  30311. AS
  30312. SET NOCOUNT ON
  30313. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30314. SET XACT_ABORT ON
  30315. BEGIN
  30316. --返回信息
  30317. SELECT
  30318. CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, Event, Action, COUNT(DISTINCT UserID) AS UserCount
  30319. FROM
  30320. [UserDotHistory]
  30321. WHERE
  30322. DateFlag BETWEEN @BeginTime AND @EndTime AND Scene = '任务'
  30323. GROUP BY
  30324. DateFlag, Event, Action
  30325. ORDER BY
  30326. DateFlag DESC
  30327. RETURN
  30328. END
  30329. GO
  30330. /****** Object: StoredProcedure [dbo].[Manage_UserItem_GetList] Script Date: 2024/1/12 11:01:14 ******/
  30331. SET ANSI_NULLS ON
  30332. GO
  30333. SET QUOTED_IDENTIFIER ON
  30334. GO
  30335. -- EXEC [Manage_UserItem_GetList]
  30336. -- ==============================================
  30337. -- Author: wolf
  30338. -- Create Date: 2015-10-10
  30339. -- Mendor: wolf
  30340. -- Alter Date: 2015-10-10
  30341. -- Description: 用户道具列表
  30342. -- ==============================================
  30343. CREATE PROCEDURE [dbo].[Manage_UserItem_GetList]
  30344. @UserID INT --用户ID
  30345. AS
  30346. SET NOCOUNT ON
  30347. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30348. SET XACT_ABORT ON
  30349. BEGIN
  30350. --返回信息
  30351. SELECT
  30352. UserItemID, ItemID, ItemCount,
  30353. CASE
  30354. WHEN Start = 0 THEN ''
  30355. ELSE CONVERT(CHAR(20), Start, 120)
  30356. END AS Start, Duration, EnegyPoint
  30357. FROM
  30358. [UserItem]
  30359. WHERE
  30360. UserID = @UserID
  30361. RETURN
  30362. END
  30363. GO
  30364. /****** Object: StoredProcedure [dbo].[Manage_UserItem_GetLog] Script Date: 2024/1/12 11:01:14 ******/
  30365. SET ANSI_NULLS ON
  30366. GO
  30367. SET QUOTED_IDENTIFIER ON
  30368. GO
  30369. -- EXEC [Manage_UserItem_GetLog]
  30370. -- ==============================================
  30371. -- Author: wolf
  30372. -- Create Date: 2015-10-10
  30373. -- Mendor: wolf
  30374. -- Alter Date: 2015-10-10
  30375. -- Description: 用户道具日志
  30376. -- ==============================================
  30377. CREATE PROCEDURE [dbo].[Manage_UserItem_GetLog]
  30378. @UserID INT, --用户ID
  30379. @BeginTime DATETIME, --开始时间
  30380. @EndTime DATETIME, --截止时间
  30381. @PageIndex INT, --页索引
  30382. @PageSize INT, --页大小
  30383. @RecordCount INT OUTPUT, --记录数
  30384. @ItemID INT --道具ID
  30385. AS
  30386. SET NOCOUNT ON
  30387. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30388. SET XACT_ABORT ON
  30389. BEGIN
  30390. DECLARE @StartRowIndex INT --起始行索引
  30391. DECLARE @EndRowIndex INT --截止行索引
  30392. DECLARE @tmptable TABLE(
  30393. LogID INT NOT NULL, --日志ID
  30394. UserID INT NOT NULL, --用户ID
  30395. ItemID INT NOT NULL, --道具ID
  30396. CurrCount INT NOT NULL, --当前数量
  30397. WantCount INT NOT NULL, --道具数量
  30398. StillCount INT NOT NULL, --剩余数量
  30399. Remark NVARCHAR(128) NOT NULL, --备注
  30400. IPAddress VARCHAR(16) NOT NULL, --IP地址
  30401. Crdate DATETIME NOT NULL --时间
  30402. )
  30403. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  30404. SET @EndRowIndex = @PageIndex * @PageSize
  30405. IF(@UserID > 0)
  30406. BEGIN
  30407. INSERT INTO @tmptable
  30408. (
  30409. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30410. )
  30411. SELECT
  30412. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30413. FROM
  30414. [UserItemLog]
  30415. WHERE
  30416. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  30417. SET @RecordCount = @@ROWCOUNT
  30418. IF(@RecordCount < 10000)
  30419. BEGIN
  30420. INSERT INTO @tmptable
  30421. (
  30422. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30423. )
  30424. SELECT TOP (10000 - @RecordCount)
  30425. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30426. FROM
  30427. [UserItemLogHistory]
  30428. WHERE
  30429. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  30430. ORDER BY
  30431. Crdate DESC
  30432. SET @RecordCount = @RecordCount + @@ROWCOUNT
  30433. END
  30434. END
  30435. ELSE
  30436. BEGIN
  30437. IF(@ItemID > 0)
  30438. BEGIN
  30439. INSERT INTO @tmptable
  30440. (
  30441. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30442. )
  30443. SELECT
  30444. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30445. FROM
  30446. [UserItemLog]
  30447. WHERE
  30448. Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = @ItemID
  30449. SET @RecordCount = @@ROWCOUNT
  30450. IF(@RecordCount < 10000)
  30451. BEGIN
  30452. INSERT INTO @tmptable
  30453. (
  30454. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30455. )
  30456. SELECT TOP (10000 - @RecordCount)
  30457. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30458. FROM
  30459. [UserItemLogHistory]
  30460. WHERE
  30461. Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = @ItemID
  30462. ORDER BY
  30463. Crdate DESC
  30464. SET @RecordCount = @RecordCount + @@ROWCOUNT
  30465. END
  30466. END
  30467. ELSE
  30468. BEGIN
  30469. INSERT INTO @tmptable
  30470. (
  30471. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30472. )
  30473. SELECT
  30474. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30475. FROM
  30476. [UserItemLog]
  30477. WHERE
  30478. Crdate BETWEEN @BeginTime AND @EndTime
  30479. SET @RecordCount = @@ROWCOUNT
  30480. IF(@RecordCount < 10000)
  30481. BEGIN
  30482. INSERT INTO @tmptable
  30483. (
  30484. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30485. )
  30486. SELECT TOP (10000 - @RecordCount)
  30487. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30488. FROM
  30489. [UserItemLogHistory]
  30490. WHERE
  30491. Crdate BETWEEN @BeginTime AND @EndTime
  30492. ORDER BY
  30493. Crdate DESC
  30494. SET @RecordCount = @RecordCount + @@ROWCOUNT
  30495. END
  30496. END
  30497. END
  30498. ;WITH [List] AS
  30499. (
  30500. SELECT
  30501. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  30502. LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
  30503. FROM
  30504. @tmptable
  30505. )
  30506. SELECT
  30507. l.LogID, l.UserID, u.NickName, l.ItemID, l.CurrCount, l.WantCount, l.StillCount,
  30508. l.Remark, l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
  30509. ISNULL(i.ItemName, '') AS ItemName
  30510. FROM
  30511. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  30512. LEFT JOIN [Item] i ON l.ItemID = i.ItemID
  30513. WHERE
  30514. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  30515. ORDER BY
  30516. l.RowNumber ASC
  30517. END
  30518. GO
  30519. /****** Object: StoredProcedure [dbo].[Manage_UserLabel_GetListByLabelId] Script Date: 2024/1/12 11:01:14 ******/
  30520. SET ANSI_NULLS ON
  30521. GO
  30522. SET QUOTED_IDENTIFIER ON
  30523. GO
  30524. -- EXEC [Manage_UserLabel_GetList]
  30525. -- ==============================================
  30526. -- Author: wolf
  30527. -- Create Date: 2015-10-10
  30528. -- Mendor: wolf
  30529. -- Alter Date: 2015-10-10
  30530. -- Description: 用户标签列表
  30531. -- ==============================================
  30532. CREATE PROCEDURE [dbo].[Manage_UserLabel_GetListByLabelId]
  30533. @LabelID INT, --标签ID
  30534. @PageIndex INT, --页索引
  30535. @PageSize INT, --页大小
  30536. @RecordCount INT OUTPUT --记录数
  30537. AS
  30538. SET NOCOUNT ON
  30539. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30540. SET XACT_ABORT ON
  30541. BEGIN
  30542. DECLARE @StartRowIndex INT --起始行索引
  30543. DECLARE @EndRowIndex INT --截止行索引
  30544. DECLARE @tmptable TABLE(
  30545. UserID INT NOT NULL, --用户ID
  30546. TypeID INT NOT NULL, --类型ID
  30547. UpdateTime DATETIME NOT NULL --更新时间
  30548. )
  30549. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  30550. SET @EndRowIndex = @PageIndex * @PageSize
  30551. INSERT INTO @tmptable
  30552. (
  30553. UserID, TypeID, UpdateTime
  30554. )
  30555. SELECT
  30556. UserID, TypeID, UpdateTime
  30557. FROM
  30558. [UserLabel]
  30559. WHERE
  30560. LabelID = @LabelID
  30561. --记录数
  30562. SET @RecordCount = @@ROWCOUNT
  30563. ;WITH [List] AS
  30564. (
  30565. SELECT
  30566. ROW_NUMBER() OVER(ORDER BY UpdateTime ASC) AS RowNumber,
  30567. UserID, TypeID, UpdateTime
  30568. FROM
  30569. @tmptable
  30570. )
  30571. --返回信息
  30572. SELECT
  30573. l.UserID, u.NickName, l.TypeID, CONVERT(VARCHAR(16), l.UpdateTime, 120) AS UpdateTime
  30574. FROM
  30575. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  30576. WHERE
  30577. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  30578. ORDER BY
  30579. l.RowNumber ASC
  30580. RETURN
  30581. END
  30582. GO
  30583. /****** Object: StoredProcedure [dbo].[Manage_UserLoginLog_GetList] Script Date: 2024/1/12 11:01:14 ******/
  30584. SET ANSI_NULLS ON
  30585. GO
  30586. SET QUOTED_IDENTIFIER ON
  30587. GO
  30588. -- DECLARE @RecordCount INT
  30589. -- EXEC [Manage_UserLoginLog_GetList]
  30590. -- @UserID = 1,
  30591. -- @BeginTime = '',
  30592. -- @EndTime = '',
  30593. -- @PageIndex = 1,
  30594. -- @PageSize = 10,
  30595. -- @RecordCount = @RecordCount OUTPUT
  30596. -- SELECT @RecordCount AS RecordCount
  30597. -- ==============================================
  30598. -- Author: wolf
  30599. -- Create Date: 2014-09-29
  30600. -- Mendor: wolf
  30601. -- Alter Date: 2014-12-29
  30602. -- Description: 后台管理--获取登陆日志列表
  30603. -- ==============================================
  30604. CREATE PROCEDURE [dbo].[Manage_UserLoginLog_GetList]
  30605. @UserID INT, --用户ID
  30606. @NickName NVARCHAR(32), --昵称
  30607. @BeginTime DATETIME, --起始时间
  30608. @EndTime DATETIME, --截止时间
  30609. @PageIndex INT = 1, --页索引
  30610. @PageSize INT = 10, --页大小
  30611. @RecordCount INT OUTPUT --记录数
  30612. AS
  30613. SET NOCOUNT ON
  30614. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30615. SET XACT_ABORT ON
  30616. BEGIN
  30617. DECLARE @StartRowIndex INT --起始行索引
  30618. DECLARE @EndRowIndex INT --截止行索引
  30619. --创建临时表
  30620. CREATE TABLE #tmptable(
  30621. LogID INT NOT NULL, --标识
  30622. UserID INT NOT NULL, --用户ID
  30623. IMei VARCHAR(64) NOT NULL, --IMei
  30624. PartnerID INT NOT NULL, --合作商ID
  30625. Version INT NOT NULL, --版本
  30626. LoginType TINYINT NOT NULL, --登陆类型
  30627. IPAddress VARCHAR(16) NOT NULL, --IP地址
  30628. Crdate DATETIME NOT NULL, --创建时间
  30629. DeviceName VARCHAR(32) NOT NULL --设备名称
  30630. )
  30631. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  30632. SET @EndRowIndex = @PageIndex * @PageSize
  30633. SET @RecordCount = 0
  30634. --昵称
  30635. IF(LEN(@NickName) > 0)
  30636. BEGIN
  30637. --用户ID
  30638. SELECT @UserID = UserID FROM [AllUser] WHERE NickName = @NickName
  30639. IF(@@ROWCOUNT = 0)
  30640. RETURN
  30641. END
  30642. --某个用户
  30643. IF(@UserID > 0)
  30644. BEGIN
  30645. INSERT INTO #tmptable
  30646. (
  30647. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  30648. )
  30649. SELECT TOP 1000
  30650. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  30651. FROM
  30652. [UserLoginLog]
  30653. WHERE
  30654. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  30655. ORDER BY
  30656. LogID DESC
  30657. --记录数
  30658. SET @RecordCount = @@ROWCOUNT
  30659. --不够100条记录
  30660. IF(@RecordCount < 1000)
  30661. BEGIN
  30662. INSERT INTO #tmptable
  30663. (
  30664. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  30665. )
  30666. SELECT TOP (1000 - @RecordCount)
  30667. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  30668. FROM
  30669. [UserLoginLog_bak]
  30670. WHERE
  30671. UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
  30672. ORDER BY
  30673. LogID DESC
  30674. --记录数
  30675. SET @RecordCount = @@ROWCOUNT + @RecordCount
  30676. END
  30677. END
  30678. --所有用户
  30679. ELSE
  30680. BEGIN
  30681. INSERT INTO #tmptable
  30682. (
  30683. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  30684. )
  30685. SELECT TOP 1000
  30686. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  30687. FROM
  30688. [UserLoginLog]
  30689. WHERE
  30690. Crdate BETWEEN @BeginTime AND @EndTime
  30691. ORDER BY
  30692. LogID DESC
  30693. --记录数
  30694. SET @RecordCount = @@ROWCOUNT
  30695. --不够100条记录
  30696. IF(@RecordCount < 1000)
  30697. BEGIN
  30698. INSERT INTO #tmptable
  30699. (
  30700. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  30701. )
  30702. SELECT TOP (1000 - @RecordCount)
  30703. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  30704. FROM
  30705. [UserLoginLog_bak]
  30706. WHERE
  30707. Crdate BETWEEN @BeginTime AND @EndTime
  30708. ORDER BY
  30709. LogID DESC
  30710. --记录数
  30711. SET @RecordCount = @@ROWCOUNT + @RecordCount
  30712. END
  30713. END
  30714. ;WITH [List] AS
  30715. (
  30716. SELECT
  30717. ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
  30718. LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  30719. FROM
  30720. #tmptable
  30721. )
  30722. --返回信息:标识(LogID)(int)、用户ID(UserID)(int)、昵称(NickName)(varchar(32))、IMei(IMei)(varchar(32))、
  30723. -- 登陆方式LoginType)(varchar(16))、IP地址(IP)(varchar(16))、登陆时间(Crdate)(varchar(16))
  30724. SELECT
  30725. l.LogID, l.UserID, u.NickName, l.IMei,
  30726. ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.Version,
  30727. CASE
  30728. WHEN l.LoginType = 0 THEN 'Visitor landing'
  30729. WHEN l.LoginType = 1 THEN 'Mobile phone login'
  30730. ELSE ''
  30731. END AS LoginType,
  30732. l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.DeviceName
  30733. FROM
  30734. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  30735. LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
  30736. WHERE
  30737. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  30738. ORDER BY
  30739. l.RowNumber ASC
  30740. --清除临时表
  30741. DROP TABLE #tmptable
  30742. RETURN
  30743. END
  30744. GO
  30745. /****** Object: StoredProcedure [dbo].[Manage_UserLoginLog_GetStatListByPartner] Script Date: 2024/1/12 11:01:14 ******/
  30746. SET ANSI_NULLS ON
  30747. GO
  30748. SET QUOTED_IDENTIFIER ON
  30749. GO
  30750. -- EXEC [Manage_UserLoginLog_GetStatListByPartner]
  30751. -- ==============================================
  30752. -- Author: wolf
  30753. -- Create Date: 2014-10-27
  30754. -- Mendor: wolf
  30755. -- Alter Date: 2015-02-03
  30756. -- Description: 后台管理--获取登陆日志列表
  30757. -- ==============================================
  30758. CREATE PROCEDURE [dbo].[Manage_UserLoginLog_GetStatListByPartner]
  30759. @PartnerID INT, --合作商ID
  30760. @BeginTime DATETIME, --起始时间
  30761. @EndTime DATETIME, --截止时间
  30762. @PageIndex INT = 1, --页索引
  30763. @PageSize INT = 10, --页大小
  30764. @RecordCount INT OUTPUT --记录数
  30765. AS
  30766. SET NOCOUNT ON
  30767. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30768. SET XACT_ABORT ON
  30769. BEGIN
  30770. DECLARE @StartRowIndex INT --起始行索引
  30771. DECLARE @EndRowIndex INT --截止行索引
  30772. --申请临时表
  30773. DECLARE @tmptable TABLE(
  30774. DateFlag SMALLDATETIME NOT NULL, --日期标志
  30775. PartnerID INT NOT NULL, --合作商ID
  30776. LoginCount INT NOT NULL --登陆数
  30777. )
  30778. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  30779. SET @EndRowIndex = @PageIndex * @PageSize
  30780. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  30781. --某个合作商
  30782. IF(@PartnerID > 0)
  30783. BEGIN
  30784. INSERT INTO @tmptable
  30785. (
  30786. DateFlag, PartnerID, LoginCount
  30787. )
  30788. SELECT
  30789. DateFlag, PartnerID, LoginCount
  30790. FROM
  30791. [LoginStat]
  30792. WHERE
  30793. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  30794. --记录数
  30795. SET @RecordCount = @@ROWCOUNT
  30796. END
  30797. --总登陆数
  30798. ELSE
  30799. BEGIN
  30800. INSERT INTO @tmptable
  30801. (
  30802. DateFlag, PartnerID, LoginCount
  30803. )
  30804. SELECT
  30805. DateFlag, PartnerID, SUM(LoginCount)
  30806. FROM
  30807. [LoginStat]
  30808. WHERE
  30809. DateFlag BETWEEN @BeginTime AND @EndTime
  30810. GROUP BY
  30811. DateFlag, PartnerID
  30812. --记录数
  30813. SET @RecordCount = @@ROWCOUNT
  30814. END
  30815. ;WITH [List] AS
  30816. (
  30817. SELECT
  30818. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, LoginCount DESC) AS RowNumber,
  30819. DateFlag, PartnerID, LoginCount
  30820. FROM
  30821. @tmptable
  30822. )
  30823. --返回信息:日期标志(DateFlag)(varchar)、渠道名称(PartnerName)(varchar(32))、登陆数(LoginCount)(int)
  30824. SELECT
  30825. CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, ISNULL(p.PartnerName, N'所有渠道') AS PartnerName,
  30826. l.LoginCount, l.PartnerID
  30827. FROM
  30828. [List] l INNER JOIN [Partner] p ON l.PartnerID = p.PartnerID
  30829. WHERE
  30830. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  30831. ORDER BY
  30832. l.RowNumber ASC
  30833. RETURN
  30834. END
  30835. GO
  30836. /****** Object: StoredProcedure [dbo].[Manage_UserSign_GetList] Script Date: 2024/1/12 11:01:14 ******/
  30837. SET ANSI_NULLS ON
  30838. GO
  30839. SET QUOTED_IDENTIFIER ON
  30840. GO
  30841. -- EXEC [Manage_UserSign_GetList]
  30842. -- ==============================================
  30843. -- Author: wolf
  30844. -- Create Date: 2015-10-10
  30845. -- Mendor: wolf
  30846. -- Alter Date: 2015-10-10
  30847. -- Description: 用户签到列表
  30848. -- ==============================================
  30849. CREATE PROCEDURE [dbo].[Manage_UserSign_GetList]
  30850. @UserID INT, --用户ID
  30851. @BeginTime DATETIME, --开始时间
  30852. @EndTime DATETIME, --截止时间
  30853. @PageIndex INT, --页索引
  30854. @PageSize INT, --页大小
  30855. @RecordCount INT OUTPUT --记录数
  30856. AS
  30857. SET NOCOUNT ON
  30858. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30859. SET XACT_ABORT ON
  30860. BEGIN
  30861. DECLARE @StartRowIndex INT --起始行索引
  30862. DECLARE @EndRowIndex INT --截止行索引
  30863. DECLARE @tmpSign TABLE(
  30864. UserID INT NOT NULL, --用户ID
  30865. SignID INT NOT NULL, --签到ID
  30866. SignTime DATETIME NOT NULL --签到时间
  30867. )
  30868. DECLARE @tmptable TABLE(
  30869. UserID INT NOT NULL, --用户ID
  30870. SignID INT NOT NULL, --签到ID
  30871. SignTime DATETIME NOT NULL, --签到时间
  30872. Day INT NOT NULL, --连续多少天
  30873. DaySet VARCHAR(16) NOT NULL --天数集合(逗号隔开)
  30874. )
  30875. DECLARE @tmpContinue TABLE(
  30876. UserID INT NOT NULL, --用户ID
  30877. Day INT NOT NULL, --连续多少天
  30878. DaySet VARCHAR(16) NOT NULL --天数集合(逗号隔开)
  30879. )
  30880. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  30881. SET @EndRowIndex = @PageIndex * @PageSize
  30882. --查询某个账号
  30883. IF(@UserID > 0)
  30884. BEGIN
  30885. INSERT INTO @tmpSign
  30886. (
  30887. UserID, SignID, SignTime
  30888. )
  30889. SELECT
  30890. UserID, MAX(SignID), MAX(SignTime)
  30891. FROM
  30892. [UserSign]
  30893. WHERE
  30894. SignTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  30895. GROUP BY
  30896. UserID
  30897. END
  30898. --查询所有账号
  30899. ELSE
  30900. BEGIN
  30901. INSERT INTO @tmpSign
  30902. (
  30903. UserID, SignID, SignTime
  30904. )
  30905. SELECT
  30906. UserID, MAX(SignID), MAX(SignTime)
  30907. FROM
  30908. [UserSign]
  30909. WHERE
  30910. SignTime BETWEEN @BeginTime AND @EndTime
  30911. GROUP BY
  30912. UserID
  30913. END
  30914. --记录数
  30915. SET @RecordCount = @@ROWCOUNT
  30916. ;WITH [List] AS
  30917. (
  30918. SELECT
  30919. ROW_NUMBER() OVER(ORDER BY SignTime DESC) AS RowNumber,
  30920. UserID, SignID, SignTime
  30921. FROM
  30922. @tmpSign
  30923. )
  30924. --最近签到用户
  30925. INSERT INTO @tmptable
  30926. (
  30927. UserID, SignID, SignTime, Day, DaySet
  30928. )
  30929. SELECT
  30930. UserID, SignID, SignTime, 0, ''
  30931. FROM
  30932. [List]
  30933. WHERE
  30934. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  30935. ORDER BY
  30936. RowNumber ASC
  30937. --统计连续签到数据
  30938. INSERT INTO @tmpContinue
  30939. (
  30940. UserID, Day, DaySet
  30941. )
  30942. SELECT
  30943. a.UserID, MAX(a.Day), ISNULL(STUFF((SELECT ',' + LTRIM(STR(Day)) FROM [UserContinueSign] WHERE UserID = a.UserID AND Status = 2 FOR XML PATH('')), 1, 1, ''), '')
  30944. FROM
  30945. [UserContinueSign] AS a INNER JOIN @tmptable t ON a.UserID = t.UserID
  30946. GROUP BY
  30947. a.UserID
  30948. --获取连续签到
  30949. UPDATE t SET t.Day = c.Day, t.DaySet = c.DaySet FROM @tmptable t INNER JOIN @tmpContinue c ON t.UserID = c.UserID
  30950. --返回信息
  30951. SELECT
  30952. t.UserID, u.NickName, t.SignID, CONVERT(CHAR(20), t.SignTime, 120) AS SignTime, t.Day, t.DaySet,
  30953. ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName
  30954. FROM
  30955. @tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
  30956. LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
  30957. ORDER BY
  30958. SignTime DESC
  30959. RETURN
  30960. END
  30961. GO
  30962. /****** Object: StoredProcedure [dbo].[Manage_UserTeacher_GetProfitList] Script Date: 2024/1/12 11:01:14 ******/
  30963. SET ANSI_NULLS ON
  30964. GO
  30965. SET QUOTED_IDENTIFIER ON
  30966. GO
  30967. -- EXEC [Manage_UserTeacher_GetProfitList]
  30968. -- ==============================================
  30969. -- Author: wolf
  30970. -- Create Date: 2014-06-11
  30971. -- Mendor: wolf
  30972. -- Alter Date: 2014-12-29
  30973. -- Description: 师徒--收益列表
  30974. -- ==============================================
  30975. CREATE PROCEDURE [dbo].[Manage_UserTeacher_GetProfitList]
  30976. @TeacherID INT, --师父ID
  30977. @StudentID INT, --徒弟ID
  30978. @BeginTime DATETIME, --开始时间
  30979. @EndTime DATETIME, --截止时间
  30980. @PageIndex INT, --页索引
  30981. @PageSize INT, --页大小
  30982. @RecordCount INT OUTPUT --记录数
  30983. AS
  30984. SET NOCOUNT ON
  30985. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  30986. SET XACT_ABORT ON
  30987. BEGIN
  30988. DECLARE @StartRowIndex INT --起始行索引
  30989. DECLARE @EndRowIndex INT --截止行索引
  30990. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  30991. SET @EndRowIndex = @PageIndex * @PageSize
  30992. SET @RecordCount = 0
  30993. --表变量
  30994. DECLARE @tmptable TABLE(
  30995. TeacherID INT NOT NULL, --师父ID
  30996. StudentID INT NOT NULL, --徒弟ID
  30997. ProfitType TINYINT NOT NULL, --收益类型(1=绑码 2=充值 3=兑换 4=提现)
  30998. Profit BIGINT NOT NULL, --收益
  30999. Price DECIMAL(18, 2) NOT NULL, --充值金额
  31000. Remark VARCHAR(128) NOT NULL, --备注
  31001. Crdate DATETIME NOT NULL --时间
  31002. )
  31003. --查询某个师父
  31004. IF(@TeacherID > 0)
  31005. BEGIN
  31006. INSERT INTO @tmptable
  31007. (
  31008. TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
  31009. )
  31010. SELECT
  31011. TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
  31012. FROM
  31013. [TeacherProfit]
  31014. WHERE
  31015. Crdate BETWEEN @BeginTime AND @EndTime AND TeacherID = @TeacherID
  31016. END
  31017. ELSE IF(@StudentID > 0)
  31018. BEGIN
  31019. INSERT INTO @tmptable
  31020. (
  31021. TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
  31022. )
  31023. SELECT
  31024. TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
  31025. FROM
  31026. [TeacherProfit]
  31027. WHERE
  31028. Crdate BETWEEN @BeginTime AND @EndTime AND StudentID = @StudentID
  31029. END
  31030. --查询所有
  31031. ELSE
  31032. BEGIN
  31033. INSERT INTO @tmptable
  31034. (
  31035. TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
  31036. )
  31037. SELECT
  31038. TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
  31039. FROM
  31040. [TeacherProfit]
  31041. WHERE
  31042. Crdate BETWEEN @BeginTime AND @EndTime
  31043. END
  31044. --记录数
  31045. SET @RecordCount = @@ROWCOUNT
  31046. ;WITH [List] AS
  31047. (
  31048. SELECT
  31049. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  31050. TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
  31051. FROM
  31052. @tmptable
  31053. )
  31054. --返回信息
  31055. SELECT
  31056. l.RowNumber, l.TeacherID, u.NickName AS TeacherName, l.StudentID, s.NickName AS StudentName,
  31057. l.ProfitType, l.Profit, l.Price, l.Remark, CONVERT(VARCHAR(23), l.Crdate, 121) AS Crdate
  31058. FROM
  31059. [List] l INNER JOIN [AllUser] u ON l.TeacherID = u.UserID
  31060. INNER JOIN [AllUser] s ON l.StudentID = s.UserID
  31061. WHERE
  31062. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  31063. ORDER BY
  31064. l.RowNumber ASC
  31065. RETURN
  31066. END
  31067. GO
  31068. /****** Object: StoredProcedure [dbo].[Manage_UserTeacher_TopProfit] Script Date: 2024/1/12 11:01:14 ******/
  31069. SET ANSI_NULLS ON
  31070. GO
  31071. SET QUOTED_IDENTIFIER ON
  31072. GO
  31073. -- EXEC [Manage_UserTeacher_TopProfit]
  31074. -- ==============================================
  31075. -- Author: wolf
  31076. -- Create Date: 2014-06-11
  31077. -- Mendor: wolf
  31078. -- Alter Date: 2014-12-29
  31079. -- Description: 师徒--收益列表
  31080. -- ==============================================
  31081. CREATE PROCEDURE [dbo].[Manage_UserTeacher_TopProfit]
  31082. @TeacherID INT, --师父ID
  31083. @BeginTime DATETIME, --开始时间
  31084. @EndTime DATETIME, --截止时间
  31085. @PageIndex INT, --页索引
  31086. @PageSize INT, --页大小
  31087. @RecordCount INT OUTPUT --记录数
  31088. AS
  31089. SET NOCOUNT ON
  31090. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31091. SET XACT_ABORT ON
  31092. BEGIN
  31093. DECLARE @StartRowIndex INT --起始行索引
  31094. DECLARE @EndRowIndex INT --截止行索引
  31095. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  31096. SET @EndRowIndex = @PageIndex * @PageSize
  31097. --表变量
  31098. DECLARE @tmptable TABLE(
  31099. TeacherID INT NOT NULL, --师父ID
  31100. Profit BIGINT NOT NULL, --收益
  31101. Price DECIMAL(18, 2) NOT NULL --充值金额
  31102. )
  31103. --查询某个师父
  31104. IF(@TeacherID > 0)
  31105. BEGIN
  31106. INSERT INTO @tmptable
  31107. (
  31108. TeacherID, Profit, Price
  31109. )
  31110. SELECT
  31111. TeacherID, SUM(Profit), SUM(Price)
  31112. FROM
  31113. [TeacherProfit]
  31114. WHERE
  31115. Crdate BETWEEN @BeginTime AND @EndTime AND TeacherID = @TeacherID AND ProfitType IN (1, 2)
  31116. GROUP BY
  31117. TeacherID
  31118. END
  31119. --查询所有
  31120. ELSE
  31121. BEGIN
  31122. INSERT INTO @tmptable
  31123. (
  31124. TeacherID, Profit, Price
  31125. )
  31126. SELECT
  31127. TeacherID, SUM(Profit), SUM(Price)
  31128. FROM
  31129. [TeacherProfit]
  31130. WHERE
  31131. Crdate BETWEEN @BeginTime AND @EndTime AND ProfitType IN (1, 2)
  31132. GROUP BY
  31133. TeacherID
  31134. END
  31135. --记录数
  31136. SET @RecordCount = @@ROWCOUNT
  31137. ;WITH [List] AS
  31138. (
  31139. SELECT
  31140. ROW_NUMBER() OVER(ORDER BY Profit DESC) AS RowNumber,
  31141. TeacherID, Profit, Price
  31142. FROM
  31143. @tmptable
  31144. )
  31145. --返回信息
  31146. SELECT
  31147. l.RowNumber, l.TeacherID, u.NickName AS TeacherName, l.Profit, l.Price
  31148. FROM
  31149. [List] l INNER JOIN [AllUser] u ON l.TeacherID = u.UserID
  31150. WHERE
  31151. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  31152. ORDER BY
  31153. l.RowNumber ASC
  31154. RETURN
  31155. END
  31156. GO
  31157. /****** Object: StoredProcedure [dbo].[Manage_UserTrack_GetList] Script Date: 2024/1/12 11:01:14 ******/
  31158. SET ANSI_NULLS ON
  31159. GO
  31160. SET QUOTED_IDENTIFIER ON
  31161. GO
  31162. -- EXEC [Manage_UserTrack_GetList]
  31163. -- ==============================================
  31164. -- Author: wolf
  31165. -- Create Date: 2016-07-21
  31166. -- Mendor: wolf
  31167. -- Alter Date: 2016-11-18
  31168. -- Description: 游戏轨迹记录
  31169. -- ==============================================
  31170. CREATE PROCEDURE [dbo].[Manage_UserTrack_GetList]
  31171. @BeginTime DATETIME, --开始时间
  31172. @EndTime DATETIME --截止时间
  31173. AS
  31174. SET NOCOUNT ON
  31175. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31176. SET XACT_ABORT ON
  31177. BEGIN
  31178. DECLARE @tmptable TABLE(
  31179. Level_1 NVARCHAR(32) NOT NULL, --1级类目
  31180. Level_2 NVARCHAR(32) NOT NULL, --2级类目
  31181. Level_3 NVARCHAR(32) NOT NULL, --3级类目
  31182. Times INT NOT NULL, --数目
  31183. Users INT NOT NULL --用户数
  31184. )
  31185. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  31186. INSERT INTO @tmptable
  31187. (
  31188. Level_1, Level_2, Level_3, Times, Users
  31189. )
  31190. SELECT
  31191. t.Level_1, t.Level_2, t.Level_3, SUM(t.Times), COUNT(DISTINCT t.UserID)
  31192. FROM
  31193. (
  31194. SELECT
  31195. Level_1, Level_2, Level_3, UserID, Times
  31196. FROM
  31197. [UserTrackStat]
  31198. WHERE
  31199. DateFlag BETWEEN @BeginTime AND @EndTime
  31200. UNION ALL
  31201. SELECT
  31202. Level_1, Level_2, Level_3, UserID, Times
  31203. FROM
  31204. [UserTrackStatHistory]
  31205. WHERE
  31206. DateFlag BETWEEN @BeginTime AND @EndTime
  31207. ) t
  31208. GROUP BY
  31209. t.Level_1, t.Level_2, t.Level_3
  31210. --返回信息
  31211. SELECT
  31212. Level_1, CASE WHEN Level_2 = '' THEN 'HOME' ELSE Level_2 END +
  31213. CASE WHEN Level_3 != '' THEN ' --> ' ELSE '' END + Level_3 AS Item,
  31214. Times, Users
  31215. FROM
  31216. @tmptable
  31217. ORDER BY
  31218. Level_1 ASC, Item ASC, Times DESC
  31219. RETURN
  31220. END
  31221. GO
  31222. /****** Object: StoredProcedure [dbo].[Manage_UserTrack_GetStat] Script Date: 2024/1/12 11:01:14 ******/
  31223. SET ANSI_NULLS ON
  31224. GO
  31225. SET QUOTED_IDENTIFIER ON
  31226. GO
  31227. -- EXEC [Manage_UserTrack_GetStat]
  31228. -- ==============================================
  31229. -- Author: wolf
  31230. -- Create Date: 2016-07-21
  31231. -- Mendor: wolf
  31232. -- Alter Date: 2016-11-18
  31233. -- Description: 游戏轨迹统计
  31234. -- ==============================================
  31235. CREATE PROCEDURE [dbo].[Manage_UserTrack_GetStat]
  31236. @BeginTime DATETIME, --开始时间
  31237. @EndTime DATETIME --截止时间
  31238. AS
  31239. SET NOCOUNT ON
  31240. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31241. SET XACT_ABORT ON
  31242. BEGIN
  31243. DECLARE @tmptable TABLE(
  31244. Level_1 NVARCHAR(32) NOT NULL, --1级类目
  31245. Level_2 NVARCHAR(32) NOT NULL, --2级类目
  31246. Level_3 NVARCHAR(32) NOT NULL, --3级类目
  31247. Times INT NOT NULL, --数目
  31248. Users INT NOT NULL --用户数
  31249. )
  31250. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  31251. INSERT INTO @tmptable
  31252. (
  31253. Level_1, Level_2, Level_3, Times, Users
  31254. )
  31255. SELECT
  31256. t.Level_1, t.Level_2, t.Level_3, SUM(t.Times), COUNT(DISTINCT t.UserID)
  31257. FROM
  31258. (
  31259. SELECT
  31260. Level_1, Level_2, Level_3, UserID, Times
  31261. FROM
  31262. [UserTrackStat]
  31263. WHERE
  31264. DateFlag BETWEEN @BeginTime AND @EndTime
  31265. UNION ALL
  31266. SELECT
  31267. Level_1, Level_2, Level_3, UserID, Times
  31268. FROM
  31269. [UserTrackStatHistory]
  31270. WHERE
  31271. DateFlag BETWEEN @BeginTime AND @EndTime
  31272. ) t
  31273. GROUP BY
  31274. t.Level_1, t.Level_2, t.Level_3
  31275. --返回信息
  31276. SELECT
  31277. Level_1,
  31278. CASE WHEN Level_2 = '' THEN Level_1 ELSE Level_2 END AS Level_2,
  31279. CASE
  31280. WHEN Level_3 = '' THEN CASE WHEN Level_2 = '' THEN Level_1 ELSE Level_2 END
  31281. ELSE Level_3
  31282. END AS Level_3,
  31283. Times, Users
  31284. FROM
  31285. @tmptable
  31286. WHERE
  31287. Level_1 != N'大厅' AND Level_2 NOT IN (N'关闭')
  31288. ORDER BY
  31289. Level_1 ASC, Level_2 ASC, Level_3 DESC
  31290. RETURN
  31291. END
  31292. GO
  31293. /****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetIndexList] Script Date: 2024/1/12 11:01:14 ******/
  31294. SET ANSI_NULLS ON
  31295. GO
  31296. SET QUOTED_IDENTIFIER ON
  31297. GO
  31298. -- EXEC [Manage_UserVideo_GetIndexList]
  31299. -- ==============================================
  31300. -- Author: wolf
  31301. -- Create Date: 2017-01-04
  31302. -- Mendor: wolf
  31303. -- Alter Date: 2017-01-04
  31304. -- Description: 广告各指标
  31305. -- ==============================================
  31306. CREATE PROCEDURE [dbo].[Manage_UserVideo_GetIndexList]
  31307. @BeginTime DATETIME, --开始时间
  31308. @EndTime DATETIME --截止时间
  31309. AS
  31310. SET NOCOUNT ON
  31311. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31312. SET XACT_ABORT ON
  31313. BEGIN
  31314. --返回信息
  31315. SELECT
  31316. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
  31317. SUM(ReqTimes) AS ReqTimes, SUM(PlayTimes) AS PlayTimes,
  31318. COUNT(DISTINCT UserID) AS UserCount,
  31319. SUM(CASE WHEN Amount > 0 AND ReqTimes > 0 THEN ReqTimes ELSE 0 END) AS GoldTimes,
  31320. SUM(CASE WHEN Amount > 0 AND PlayTimes > 0 THEN PlayTimes ELSE 0 END) AS GoldGiftTimes,
  31321. COUNT(DISTINCT (CASE WHEN PlayTimes > 0 THEN UserID ELSE 0 END)) AS PlayUserCount
  31322. FROM
  31323. (
  31324. SELECT
  31325. UserID, ReqTimes, PlayTimes, Amount, DateFlag
  31326. FROM
  31327. [UserVideoStat]
  31328. WHERE
  31329. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31330. UNION ALL
  31331. SELECT
  31332. UserID, ReqTimes, PlayTimes, Amount, DateFlag
  31333. FROM
  31334. [UserVideoStatHistory]
  31335. WHERE
  31336. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31337. ) t
  31338. GROUP BY
  31339. CONVERT(CHAR(10), DateFlag, 120)
  31340. ORDER BY
  31341. CONVERT(CHAR(10), DateFlag, 120) ASC
  31342. RETURN
  31343. END
  31344. GO
  31345. /****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetPlayStat] Script Date: 2024/1/12 11:01:14 ******/
  31346. SET ANSI_NULLS ON
  31347. GO
  31348. SET QUOTED_IDENTIFIER ON
  31349. GO
  31350. -- EXEC [Manage_UserVideo_GetPlayStat]
  31351. -- ==============================================
  31352. -- Author: wolf
  31353. -- Create Date: 2016-07-21
  31354. -- Mendor: wolf
  31355. -- Alter Date: 2016-11-18
  31356. -- Description: 广告播放统计(按天)
  31357. -- ==============================================
  31358. CREATE PROCEDURE [dbo].[Manage_UserVideo_GetPlayStat]
  31359. @BeginTime DATETIME, --开始时间
  31360. @EndTime DATETIME, --截止时间
  31361. @PartnerID INT --渠道ID
  31362. AS
  31363. SET NOCOUNT ON
  31364. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31365. SET XACT_ABORT ON
  31366. BEGIN
  31367. --某个渠道
  31368. IF(@PartnerID > 0)
  31369. BEGIN
  31370. --返回信息
  31371. SELECT
  31372. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
  31373. SUM(ReqTimes) AS ReqTimes, --请求次数
  31374. SUM(PlayTimes) AS PlayTimes, --播放次数
  31375. SUM(UnPlayTimes) AS FailTimes --失败次数
  31376. FROM
  31377. (
  31378. SELECT
  31379. DateFlag, ReqTimes, PlayTimes, UnPlayTimes
  31380. FROM
  31381. [UserVideoStat]
  31382. WHERE
  31383. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1 AND PartnerID = @PartnerID
  31384. UNION ALL
  31385. SELECT
  31386. DateFlag, ReqTimes, PlayTimes, UnPlayTimes
  31387. FROM
  31388. [UserVideoStatHistory]
  31389. WHERE
  31390. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1 AND PartnerID = @PartnerID
  31391. ) t
  31392. GROUP BY
  31393. CONVERT(CHAR(10), DateFlag, 120)
  31394. ORDER BY
  31395. CONVERT(CHAR(10), DateFlag, 120) DESC
  31396. RETURN
  31397. END
  31398. --返回信息
  31399. SELECT
  31400. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
  31401. SUM(ReqTimes) AS ReqTimes, --请求次数
  31402. SUM(PlayTimes) AS PlayTimes, --播放次数
  31403. SUM(UnPlayTimes) AS FailTimes --失败次数
  31404. FROM
  31405. (
  31406. SELECT
  31407. DateFlag, ReqTimes, PlayTimes, UnPlayTimes
  31408. FROM
  31409. [UserVideoStat]
  31410. WHERE
  31411. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31412. UNION ALL
  31413. SELECT
  31414. DateFlag, ReqTimes, PlayTimes, UnPlayTimes
  31415. FROM
  31416. [UserVideoStatHistory]
  31417. WHERE
  31418. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31419. ) t
  31420. GROUP BY
  31421. CONVERT(CHAR(10), DateFlag, 120)
  31422. ORDER BY
  31423. CONVERT(CHAR(10), DateFlag, 120) DESC
  31424. RETURN
  31425. END
  31426. GO
  31427. /****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetPlayStatByHour] Script Date: 2024/1/12 11:01:14 ******/
  31428. SET ANSI_NULLS ON
  31429. GO
  31430. SET QUOTED_IDENTIFIER ON
  31431. GO
  31432. -- EXEC [Manage_UserVideo_GetPlayStatByHour]
  31433. -- ==============================================
  31434. -- Author: wolf
  31435. -- Create Date: 2016-07-21
  31436. -- Mendor: wolf
  31437. -- Alter Date: 2016-11-18
  31438. -- Description: 广告播放统计(按时段)
  31439. -- ==============================================
  31440. CREATE PROCEDURE [dbo].[Manage_UserVideo_GetPlayStatByHour]
  31441. @BeginTime DATETIME, --开始时间
  31442. @EndTime DATETIME, --截止时间
  31443. @PartnerID INT --渠道ID
  31444. AS
  31445. SET NOCOUNT ON
  31446. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31447. SET XACT_ABORT ON
  31448. BEGIN
  31449. IF(@PartnerID > 0)
  31450. BEGIN
  31451. --返回信息
  31452. SELECT
  31453. CONVERT(CHAR(10), DateFlag, 120),
  31454. SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
  31455. SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
  31456. SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
  31457. SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
  31458. SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
  31459. SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
  31460. SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
  31461. SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
  31462. SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
  31463. SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
  31464. SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
  31465. SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
  31466. FROM
  31467. [VideoStatMin]
  31468. WHERE
  31469. DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
  31470. GROUP BY
  31471. CONVERT(CHAR(10), DateFlag, 120)
  31472. RETURN
  31473. END
  31474. --返回信息
  31475. SELECT
  31476. CONVERT(CHAR(10), DateFlag, 120),
  31477. SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
  31478. SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
  31479. SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
  31480. SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
  31481. SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
  31482. SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
  31483. SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
  31484. SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
  31485. SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
  31486. SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
  31487. SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
  31488. SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
  31489. FROM
  31490. [VideoStatMin]
  31491. WHERE
  31492. DateFlag BETWEEN @BeginTime AND @EndTime
  31493. GROUP BY
  31494. CONVERT(CHAR(10), DateFlag, 120)
  31495. RETURN
  31496. END
  31497. GO
  31498. /****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetRegionList] Script Date: 2024/1/12 11:01:14 ******/
  31499. SET ANSI_NULLS ON
  31500. GO
  31501. SET QUOTED_IDENTIFIER ON
  31502. GO
  31503. -- EXEC [Manage_UserVideo_GetRegionList]
  31504. -- ==============================================
  31505. -- Author: wolf
  31506. -- Create Date: 2017-01-04
  31507. -- Mendor: wolf
  31508. -- Alter Date: 2017-01-04
  31509. -- Description: 广告分布
  31510. -- ==============================================
  31511. CREATE PROCEDURE [dbo].[Manage_UserVideo_GetRegionList]
  31512. @BeginTime DATETIME, --开始时间
  31513. @EndTime DATETIME --截止时间
  31514. AS
  31515. SET NOCOUNT ON
  31516. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31517. SET XACT_ABORT ON
  31518. BEGIN
  31519. --返回信息
  31520. SELECT
  31521. VideoName, ModuleName,
  31522. SUM(ReqTimes) AS ReqTimes, --请求次数
  31523. SUM(PlayTimes) AS PlayTimes --播放次数
  31524. FROM
  31525. (
  31526. SELECT
  31527. VideoName, ModuleName, ReqTimes, PlayTimes
  31528. FROM
  31529. [UserVideoStat]
  31530. WHERE
  31531. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31532. UNION ALL
  31533. SELECT
  31534. VideoName, ModuleName, ReqTimes, PlayTimes
  31535. FROM
  31536. [UserVideoStatHistory]
  31537. WHERE
  31538. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31539. ) t
  31540. GROUP BY
  31541. VideoName, ModuleName
  31542. ORDER BY
  31543. VideoName ASC, PlayTimes ASC
  31544. RETURN
  31545. END
  31546. GO
  31547. /****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetSourceList] Script Date: 2024/1/12 11:01:14 ******/
  31548. SET ANSI_NULLS ON
  31549. GO
  31550. SET QUOTED_IDENTIFIER ON
  31551. GO
  31552. -- EXEC [Manage_UserVideo_GetSourceList]
  31553. -- ==============================================
  31554. -- Author: wolf
  31555. -- Create Date: 2017-01-04
  31556. -- Mendor: wolf
  31557. -- Alter Date: 2017-01-04
  31558. -- Description: 广告来源统计
  31559. -- ==============================================
  31560. CREATE PROCEDURE [dbo].[Manage_UserVideo_GetSourceList]
  31561. @BeginTime DATETIME, --开始时间
  31562. @EndTime DATETIME, --截止时间
  31563. @PartnerID INT --渠道ID
  31564. AS
  31565. SET NOCOUNT ON
  31566. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31567. SET XACT_ABORT ON
  31568. BEGIN
  31569. IF(@PartnerID > 0)
  31570. BEGIN
  31571. --返回信息
  31572. SELECT
  31573. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, VideoName, SUM(PlayTimes) AS PlayTimes
  31574. FROM
  31575. (
  31576. SELECT
  31577. DateFlag, VideoName, PlayTimes
  31578. FROM
  31579. [UserVideoStat]
  31580. WHERE
  31581. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1 AND PartnerID = @PartnerID
  31582. UNION ALL
  31583. SELECT
  31584. DateFlag, VideoName, PlayTimes
  31585. FROM
  31586. [UserVideoStatHistory]
  31587. WHERE
  31588. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1 AND PartnerID = @PartnerID
  31589. ) t
  31590. GROUP BY
  31591. CONVERT(CHAR(10), DateFlag, 120), VideoName
  31592. ORDER BY
  31593. CONVERT(CHAR(10), DateFlag, 120) ASC
  31594. RETURN
  31595. END
  31596. --返回信息
  31597. SELECT
  31598. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, VideoName, SUM(PlayTimes) AS PlayTimes
  31599. FROM
  31600. (
  31601. SELECT
  31602. DateFlag, VideoName, PlayTimes
  31603. FROM
  31604. [UserVideoStat]
  31605. WHERE
  31606. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31607. UNION ALL
  31608. SELECT
  31609. DateFlag, VideoName, PlayTimes
  31610. FROM
  31611. [UserVideoStatHistory]
  31612. WHERE
  31613. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31614. ) t
  31615. GROUP BY
  31616. CONVERT(CHAR(10), DateFlag, 120), VideoName
  31617. ORDER BY
  31618. CONVERT(CHAR(10), DateFlag, 120) ASC
  31619. RETURN
  31620. END
  31621. GO
  31622. /****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetUserStat] Script Date: 2024/1/12 11:01:14 ******/
  31623. SET ANSI_NULLS ON
  31624. GO
  31625. SET QUOTED_IDENTIFIER ON
  31626. GO
  31627. -- EXEC [Manage_UserVideo_GetUserStat]
  31628. -- ==============================================
  31629. -- Author: wolf
  31630. -- Create Date: 2016-07-21
  31631. -- Mendor: wolf
  31632. -- Alter Date: 2016-11-18
  31633. -- Description: 广告用户统计(按天)
  31634. -- ==============================================
  31635. CREATE PROCEDURE [dbo].[Manage_UserVideo_GetUserStat]
  31636. @BeginTime DATETIME, --开始时间
  31637. @EndTime DATETIME --截止时间
  31638. AS
  31639. SET NOCOUNT ON
  31640. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31641. SET XACT_ABORT ON
  31642. BEGIN
  31643. --返回信息
  31644. SELECT
  31645. CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
  31646. COUNT(DISTINCT (CASE WHEN ReqTimes > 0 THEN UserID ELSE 0 END)) AS ReqUsers, --请求用户数
  31647. COUNT(DISTINCT (CASE WHEN PlayTimes > 0 THEN UserID ELSE 0 END)) AS PlayUsers, --播放用户数
  31648. COUNT(DISTINCT (CASE WHEN UnPlayTimes > 0 THEN UserID ELSE 0 END)) AS FailTimes --失败用户数
  31649. FROM
  31650. (
  31651. SELECT
  31652. DateFlag, ReqTimes, PlayTimes, UnPlayTimes, UserID
  31653. FROM
  31654. [UserVideoStat]
  31655. WHERE
  31656. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31657. UNION ALL
  31658. SELECT
  31659. DateFlag, ReqTimes, PlayTimes, UnPlayTimes, UserID
  31660. FROM
  31661. [UserVideoStatHistory]
  31662. WHERE
  31663. DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
  31664. ) t
  31665. GROUP BY
  31666. CONVERT(CHAR(10), DateFlag, 120)
  31667. ORDER BY
  31668. CONVERT(CHAR(10), DateFlag, 120) DESC
  31669. RETURN
  31670. END
  31671. GO
  31672. /****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetUserStatByHour] Script Date: 2024/1/12 11:01:14 ******/
  31673. SET ANSI_NULLS ON
  31674. GO
  31675. SET QUOTED_IDENTIFIER ON
  31676. GO
  31677. -- EXEC [Manage_UserVideo_GetUserStatByHour]
  31678. -- ==============================================
  31679. -- Author: wolf
  31680. -- Create Date: 2016-07-21
  31681. -- Mendor: wolf
  31682. -- Alter Date: 2016-11-18
  31683. -- Description: 广告用户统计(按时段)
  31684. -- ==============================================
  31685. CREATE PROCEDURE [dbo].[Manage_UserVideo_GetUserStatByHour]
  31686. @BeginTime DATETIME, --开始时间
  31687. @EndTime DATETIME --截止时间
  31688. AS
  31689. SET NOCOUNT ON
  31690. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31691. SET XACT_ABORT ON
  31692. BEGIN
  31693. --返回信息
  31694. SELECT
  31695. CONVERT(CHAR(10), DateFlag, 120) DateFlag,
  31696. SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
  31697. SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
  31698. SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
  31699. SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
  31700. SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
  31701. SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
  31702. SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
  31703. SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
  31704. SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
  31705. SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
  31706. SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
  31707. SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
  31708. FROM
  31709. [VideoUserStatMin]
  31710. WHERE
  31711. DateFlag BETWEEN @BeginTime AND @EndTime
  31712. GROUP BY
  31713. CONVERT(CHAR(10), DateFlag, 120)
  31714. RETURN
  31715. END
  31716. GO
  31717. /****** Object: StoredProcedure [dbo].[Manage_UserWords_GetList] Script Date: 2024/1/12 11:01:14 ******/
  31718. SET ANSI_NULLS ON
  31719. GO
  31720. SET QUOTED_IDENTIFIER ON
  31721. GO
  31722. -- EXEC [Manage_UserWords_GetList]
  31723. -- ==============================================
  31724. -- Author: wolf
  31725. -- Create Date: 2013-07-09
  31726. -- Mendor: wolf
  31727. -- Alter Date: 2013-07-22
  31728. -- Description: 个性签名列表
  31729. -- ==============================================
  31730. CREATE PROCEDURE [dbo].[Manage_UserWords_GetList]
  31731. @UserID INT, --用户ID
  31732. @BeginTime DATETIME, --开始时间
  31733. @EndTime DATETIME, --截止时间
  31734. @PageIndex INT, --页索引
  31735. @PageSize INT, --页大小
  31736. @RecordCount INT OUTPUT --记录数
  31737. AS
  31738. SET NOCOUNT ON
  31739. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31740. SET XACT_ABORT ON
  31741. BEGIN
  31742. DECLARE @StartRowIndex INT --起始行索引
  31743. DECLARE @EndRowIndex INT --截止行索引
  31744. DECLARE @tmptable TABLE(
  31745. ApplyID INT NOT NULL, --申请ID
  31746. UserID INT NOT NULL, --用户ID
  31747. UserWords NVARCHAR(256) NOT NULL, --个性签名
  31748. TransMsg NVARCHAR(256) NOT NULL, --译文
  31749. Status TINYINT NOT NULL, --状态
  31750. OpUserID INT NOT NULL, --操作用户ID
  31751. OpUserName VARCHAR(32) NOT NULL, --操作员名称
  31752. DealTime DATETIME NOT NULL, --处理时间
  31753. ApplyTime DATETIME NOT NULL --申请时间
  31754. )
  31755. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  31756. SET @EndRowIndex = @PageIndex * @PageSize
  31757. SET @RecordCount = 0
  31758. IF(@UserID > 0)
  31759. BEGIN
  31760. INSERT INTO @tmptable
  31761. (
  31762. ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
  31763. )
  31764. SELECT
  31765. ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
  31766. FROM
  31767. [UserWordsPool]
  31768. WHERE
  31769. ApplyTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  31770. END
  31771. ELSE
  31772. BEGIN
  31773. INSERT INTO @tmptable
  31774. (
  31775. ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
  31776. )
  31777. SELECT
  31778. ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
  31779. FROM
  31780. [UserWordsPool]
  31781. WHERE
  31782. ApplyTime BETWEEN @BeginTime AND @EndTime
  31783. END
  31784. --记录数
  31785. SET @RecordCount = @@ROWCOUNT
  31786. ;WITH List AS
  31787. (
  31788. SELECT
  31789. ROW_NUMBER() OVER(ORDER BY ApplyID DESC) AS RowNumber,
  31790. ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
  31791. FROM
  31792. @tmptable
  31793. )
  31794. --返回信息
  31795. SELECT
  31796. l.ApplyID, l.UserID, u.NickName, l.UserWords, l.TransMsg, l.Status, l.OpUserID, l.OpUserName,
  31797. CONVERT(CHAR(23), l.DealTime, 121) AS DealTime, CONVERT(CHAR(23), l.ApplyTime, 121) AS ApplyTime
  31798. FROM
  31799. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  31800. WHERE
  31801. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  31802. ORDER BY
  31803. l.RowNumber ASC
  31804. RETURN
  31805. END
  31806. GO
  31807. /****** Object: StoredProcedure [dbo].[Manage_UserWords_SetStatus] Script Date: 2024/1/12 11:01:14 ******/
  31808. SET ANSI_NULLS ON
  31809. GO
  31810. SET QUOTED_IDENTIFIER ON
  31811. GO
  31812. -- EXEC [Manage_UserWords_SetStatus]
  31813. -- ==============================================
  31814. -- Author: wolf
  31815. -- Create Date: 2013-07-09
  31816. -- Mendor: wolf
  31817. -- Alter Date: 2013-07-22
  31818. -- Description: 设置个性签名状态
  31819. -- ==============================================
  31820. CREATE PROCEDURE [dbo].[Manage_UserWords_SetStatus]
  31821. @OpUserID INT, --操作员ID
  31822. @OpUserName VARCHAR(32), --操作员名称
  31823. @ApplyID INT, --申请ID
  31824. @Status TINYINT --状态 1=同意 其他拒绝
  31825. AS
  31826. SET NOCOUNT ON
  31827. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31828. SET XACT_ABORT ON
  31829. BEGIN
  31830. DECLARE @RetCode TINYINT --操作结果
  31831. DECLARE @UserID INT --用户ID
  31832. DECLARE @UserWords NVARCHAR(256) --个性签名
  31833. SET @RetCode = 0
  31834. --判断是否已经处理过
  31835. IF NOT EXISTS(SELECT UserID FROM [UserWordsPool] WHERE ApplyID = @ApplyID AND Status = 0)
  31836. BEGIN
  31837. SET @RetCode = 11
  31838. SELECT @RetCode AS RetCode
  31839. RETURN
  31840. END
  31841. --更新状态
  31842. UPDATE
  31843. [UserWordsPool]
  31844. SET
  31845. Status = @Status, OpUserID = @OpUserID, OpUserName = @OpUserName,
  31846. @UserID = UserID, @UserWords = UserWords, DealTime = GETDATE()
  31847. WHERE
  31848. ApplyID = @ApplyID
  31849. --同意
  31850. IF(@Status = 1)
  31851. BEGIN
  31852. --个性签名
  31853. UPDATE [AllUser] SET UserWords = @UserWords WHERE UserID = @UserID
  31854. END
  31855. --操作成功
  31856. SET @RetCode = 1
  31857. SELECT @RetCode AS RetCode
  31858. RETURN
  31859. END
  31860. GO
  31861. /****** Object: StoredProcedure [dbo].[Manage_UserWords_Translate] Script Date: 2024/1/12 11:01:14 ******/
  31862. SET ANSI_NULLS ON
  31863. GO
  31864. SET QUOTED_IDENTIFIER ON
  31865. GO
  31866. -- EXEC [Manage_UserWords_Translate]
  31867. -- ==============================================
  31868. -- Author: wolf
  31869. -- Create Date: 2013-07-09
  31870. -- Mendor: wolf
  31871. -- Alter Date: 2013-07-22
  31872. -- Description: 个性签名翻译
  31873. -- ==============================================
  31874. CREATE PROCEDURE [dbo].[Manage_UserWords_Translate]
  31875. @ApplyID INT, --申请ID
  31876. @TransMsg NVARCHAR(256) --译文
  31877. AS
  31878. SET NOCOUNT ON
  31879. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31880. SET XACT_ABORT ON
  31881. BEGIN
  31882. --译文
  31883. UPDATE [UserWordsPool] SET TransMsg = @TransMsg WHERE ApplyID = @ApplyID
  31884. RETURN
  31885. END
  31886. GO
  31887. /****** Object: StoredProcedure [dbo].[Manage_UTMSource_GetList] Script Date: 2024/1/12 11:01:14 ******/
  31888. SET ANSI_NULLS ON
  31889. GO
  31890. SET QUOTED_IDENTIFIER ON
  31891. GO
  31892. -- EXEC [Manage_UTMSource_GetList]
  31893. -- ==============================================
  31894. -- Author: wolf
  31895. -- Create Date: 2014-12-29
  31896. -- Mendor: wolf
  31897. -- Alter Date: 2015-06-01
  31898. -- Description: 流量渠道源列表
  31899. -- ==============================================
  31900. CREATE PROCEDURE [dbo].[Manage_UTMSource_GetList]
  31901. AS
  31902. SET NOCOUNT ON
  31903. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31904. SET XACT_ABORT ON
  31905. BEGIN
  31906. SELECT Source FROM [UTMSource]
  31907. END
  31908. GO
  31909. /****** Object: StoredProcedure [dbo].[Manage_Warning_Search] Script Date: 2024/1/12 11:01:14 ******/
  31910. SET ANSI_NULLS ON
  31911. GO
  31912. SET QUOTED_IDENTIFIER ON
  31913. GO
  31914. -- EXEC [Manage_Warning_Search]
  31915. -- ==============================================
  31916. -- Author: wolf
  31917. -- Create Date: 2014-01-21
  31918. -- Mendor: wolf
  31919. -- Alter Date: 2016-11-07
  31920. -- Description: 预警查询
  31921. -- ==============================================
  31922. CREATE PROCEDURE [dbo].[Manage_Warning_Search]
  31923. @MoneySearchTime DATETIME, --金币查询时间
  31924. @LotterySearchTime DATETIME, --话费券查询时间
  31925. @RegTime DATETIME, --注册查询时间
  31926. @TransferTime DATETIME --赠送查询时间
  31927. AS
  31928. SET NOCOUNT ON
  31929. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31930. SET XACT_ABORT ON
  31931. BEGIN
  31932. DECLARE @CurrTime DATETIME --系统当前时间
  31933. DECLARE @TotalAmount BIGINT --金币存量
  31934. DECLARE @RobotTotalAmount BIGINT --机器人金币存量
  31935. DECLARE @TotalLottery BIGINT --话费券存量
  31936. DECLARE @RobotTotalLottery BIGINT --机器人话费券存量
  31937. DECLARE @RegCount INT --注册用户数
  31938. DECLARE @TransferTimes INT --赠送次数
  31939. SET @CurrTime = GETDATE()
  31940. SET @TotalAmount = -1
  31941. SET @TotalLottery = -1
  31942. SET @RegCount = -1
  31943. SET @TransferTimes = -1
  31944. --统计金币存量
  31945. IF(@MoneySearchTime <= @CurrTime)
  31946. BEGIN
  31947. SELECT @TotalAmount = SUM(Amount + Bank) FROM [Money]
  31948. SET @TotalAmount = ISNULL(@TotalAmount, 0)
  31949. SELECT @RobotTotalAmount = SUM(m.Amount + m.Bank) FROM [Money] m INNER JOIN [MachineUser] r ON m.UserID = r.UserID
  31950. SET @RobotTotalAmount = ISNULL(@RobotTotalAmount, 0)
  31951. SET @TotalAmount = @TotalAmount - @RobotTotalAmount
  31952. END
  31953. --统计话费券存量
  31954. IF(@LotterySearchTime <= @CurrTime)
  31955. BEGIN
  31956. SELECT @TotalLottery = SUM(ItemCount) FROM [UserItem] WHERE ItemID = 620100
  31957. SET @TotalLottery = ISNULL(@TotalLottery, 0)
  31958. SELECT @RobotTotalLottery = SUM(u.ItemCount) FROM [UserItem] u INNER JOIN [MachineUser] r ON u.UserID = r.UserID WHERE ItemID = 620100
  31959. SET @RobotTotalLottery = ISNULL(@RobotTotalLottery, 0)
  31960. SET @TotalLottery = @TotalLottery - @RobotTotalLottery
  31961. END
  31962. --注册用户数
  31963. IF(@RegTime <= @CurrTime)
  31964. BEGIN
  31965. SET @RegCount = (SELECT TOP 1 COUNT(RegIP) FROM [AllUser] WHERE RegTime >= @RegTime GROUP BY RegIP ORDER BY COUNT(RegIP) DESC)
  31966. END
  31967. --赠送次数
  31968. IF(@TransferTime <= @CurrTime)
  31969. BEGIN
  31970. SELECT @TransferTimes = (SELECT TOP 1 COUNT(AcceptUserID) FROM [TransferLog] WHERE Crdate >= @TransferTime GROUP BY AcceptUserID ORDER BY COUNT(AcceptUserID) DESC)
  31971. END
  31972. --返回信息
  31973. SELECT
  31974. ISNULL(@TotalAmount, 0) AS TotalAmount, ISNULL(@TotalLottery, 0) AS TotalLottery,
  31975. ISNULL(@RegCount, 0) AS RegCount, ISNULL(@TransferTimes, 0) AS TransferTimes
  31976. RETURN
  31977. END
  31978. GO
  31979. /****** Object: StoredProcedure [dbo].[Manage_WaterPoolStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
  31980. SET ANSI_NULLS ON
  31981. GO
  31982. SET QUOTED_IDENTIFIER ON
  31983. GO
  31984. -- EXEC [Manage_WaterPoolStat_GetList]
  31985. -- ==============================================
  31986. -- Author: wolf
  31987. -- Create Date: 2014-12-29
  31988. -- Mendor: wolf
  31989. -- Alter Date: 2015-06-01
  31990. -- Description: 水池统计列表
  31991. -- ==============================================
  31992. CREATE PROCEDURE [dbo].[Manage_WaterPoolStat_GetList]
  31993. @BeginTime SMALLDATETIME, --开始时间
  31994. @EndTime SMALLDATETIME --截止时间
  31995. AS
  31996. SET NOCOUNT ON
  31997. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  31998. SET XACT_ABORT ON
  31999. BEGIN
  32000. DECLARE @tmptable TABLE(
  32001. DateFlag SMALLDATETIME NOT NULL, --日期标识
  32002. ItemName VARCHAR(32) NOT NULL, --项名称
  32003. ItemValue BIGINT NOT NULL --项值
  32004. )
  32005. --1、游戏水池前值
  32006. INSERT INTO @tmptable
  32007. (
  32008. DateFlag, ItemName, ItemValue
  32009. )
  32010. SELECT
  32011. DateFlag, RoomName + '水池1前值', StartInventoryValue
  32012. FROM
  32013. [GameInventoryTotal]
  32014. WHERE
  32015. DateFlag BETWEEN @BeginTime AND @EndTime
  32016. --2、游戏水池现值
  32017. INSERT INTO @tmptable
  32018. (
  32019. DateFlag, ItemName, ItemValue
  32020. )
  32021. SELECT
  32022. DateFlag, RoomName + '水池2现值', InventoryValue
  32023. FROM
  32024. [GameInventoryTotal]
  32025. WHERE
  32026. DateFlag BETWEEN @BeginTime AND @EndTime
  32027. --3、游戏库存变化
  32028. INSERT INTO @tmptable
  32029. (
  32030. DateFlag, ItemName, ItemValue
  32031. )
  32032. SELECT
  32033. DateFlag, RoomName + '水池3变化', SUM(InventoryValue - StartInventoryValue)
  32034. FROM
  32035. [GameInventoryTotal]
  32036. WHERE
  32037. DateFlag BETWEEN @BeginTime AND @EndTime
  32038. GROUP BY
  32039. DateFlag, RoomName + '水池3变化'
  32040. --返回信息
  32041. SELECT
  32042. CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, ItemName, ItemValue
  32043. FROM
  32044. @tmptable
  32045. WHERE
  32046. DateFlag BETWEEN @BeginTime AND @EndTime
  32047. ORDER BY
  32048. DateFlag DESC, ItemName ASC
  32049. RETURN
  32050. END
  32051. GO
  32052. /****** Object: StoredProcedure [dbo].[Manage_WhiteList_Add] Script Date: 2024/1/12 11:01:14 ******/
  32053. SET ANSI_NULLS ON
  32054. GO
  32055. SET QUOTED_IDENTIFIER ON
  32056. GO
  32057. -- EXEC [Manage_WhiteList_Add]
  32058. -- ==============================================
  32059. -- Author: wolf
  32060. -- Create Date: 2014-01-21
  32061. -- Mendor: wolf
  32062. -- Alter Date: 2016-11-07
  32063. -- Description: 添加白名单
  32064. -- ==============================================
  32065. CREATE PROCEDURE [dbo].[Manage_WhiteList_Add]
  32066. @OpUserID INT, --操作员ID
  32067. @OpUserName VARCHAR(32), --操作员名称
  32068. @UserID INT, --用户ID
  32069. @WhiteType TINYINT, --类型(0=普通用户 1=白名单用户 2=黑名单用户)
  32070. @IPAddress VARCHAR(16) --IP地址
  32071. AS
  32072. SET NOCOUNT ON
  32073. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  32074. SET XACT_ABORT ON
  32075. BEGIN
  32076. DECLARE @Msg NVARCHAR(4000) --操作描述
  32077. IF EXISTS(SELECT UserID FROM [ChipWhiteList] WHERE UserID = @UserID AND WhiteType = @WhiteType)
  32078. RETURN
  32079. --添加
  32080. INSERT INTO [ChipWhiteList](UserID, WhiteType, Crdate) VALUES(@UserID, @WhiteType, GETDATE())
  32081. SET @Msg = N'添加白名单成功,关联账号:@UserID=' + LTRIM(STR(@UserID)) + ',@WhiteType=' + LTRIM(STR(@WhiteType))
  32082. --添加日志
  32083. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  32084. RETURN
  32085. END
  32086. GO
  32087. /****** Object: StoredProcedure [dbo].[Manage_WhiteList_Del] Script Date: 2024/1/12 11:01:14 ******/
  32088. SET ANSI_NULLS ON
  32089. GO
  32090. SET QUOTED_IDENTIFIER ON
  32091. GO
  32092. -- EXEC [Manage_WhiteList_Del]
  32093. -- ==============================================
  32094. -- Author: wolf
  32095. -- Create Date: 2014-01-21
  32096. -- Mendor: wolf
  32097. -- Alter Date: 2016-11-07
  32098. -- Description: 删除白名单
  32099. -- ==============================================
  32100. CREATE PROCEDURE [dbo].[Manage_WhiteList_Del]
  32101. @OpUserID INT, --操作员ID
  32102. @OpUserName VARCHAR(32), --操作员名称
  32103. @UserID INT, --用户ID
  32104. @WhiteType TINYINT, --类型(0=普通用户 1=白名单用户 2=黑名单用户)
  32105. @IPAddress VARCHAR(16) --IP地址
  32106. AS
  32107. SET NOCOUNT ON
  32108. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  32109. SET XACT_ABORT ON
  32110. BEGIN
  32111. DECLARE @Msg NVARCHAR(4000) --操作描述
  32112. IF NOT EXISTS(SELECT UserID FROM [ChipWhiteList] WHERE UserID = @UserID AND WhiteType = @WhiteType)
  32113. RETURN
  32114. --删除
  32115. DELETE FROM [ChipWhiteList] WHERE UserID = @UserID AND WhiteType = @WhiteType
  32116. SET @Msg = N'删除白名单成功,关联账号:@UserID=' + LTRIM(STR(@UserID)) + ',@WhiteType=' + LTRIM(STR(@WhiteType))
  32117. --添加日志
  32118. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
  32119. RETURN
  32120. END
  32121. GO
  32122. /****** Object: StoredProcedure [dbo].[Manage_WhiteList_GetList] Script Date: 2024/1/12 11:01:14 ******/
  32123. SET ANSI_NULLS ON
  32124. GO
  32125. SET QUOTED_IDENTIFIER ON
  32126. GO
  32127. -- EXEC [Manage_WhiteList_GetList]
  32128. -- ==============================================
  32129. -- Author: wolf
  32130. -- Create Date: 2014-01-21
  32131. -- Mendor: wolf
  32132. -- Alter Date: 2016-11-07
  32133. -- Description: 白名单列表
  32134. -- ==============================================
  32135. CREATE PROCEDURE [dbo].[Manage_WhiteList_GetList]
  32136. @UserID INT, --用户ID
  32137. @PageIndex INT, --页索引
  32138. @PageSize INT, --页大小
  32139. @RecordCount INT OUTPUT --记录数
  32140. AS
  32141. SET NOCOUNT ON
  32142. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  32143. SET XACT_ABORT ON
  32144. BEGIN
  32145. DECLARE @StartRowIndex INT --起始行索引
  32146. DECLARE @EndRowIndex INT --截止行索引
  32147. DECLARE @tmptable TABLE(
  32148. UserID INT NOT NULL, --用户ID
  32149. WhiteType TINYINT NOT NULL, --类型(0=普通用户 1=白名单用户 2=黑名单用户)
  32150. Crdate DATETIME NOT NULL --时间
  32151. )
  32152. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  32153. SET @EndRowIndex = @PageIndex * @PageSize
  32154. IF(@UserID > 0)
  32155. BEGIN
  32156. INSERT INTO @tmptable(UserID, WhiteType, Crdate)
  32157. SELECT UserID, WhiteType, Crdate FROM [ChipWhiteList] WHERE UserID = @UserID
  32158. END
  32159. ELSE
  32160. BEGIN
  32161. INSERT INTO @tmptable(UserID, WhiteType, Crdate)
  32162. SELECT UserID, WhiteType, Crdate FROM [ChipWhiteList]
  32163. END
  32164. --记录数
  32165. SET @RecordCount = @@ROWCOUNT
  32166. ;WITH [List] AS
  32167. (
  32168. SELECT
  32169. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  32170. UserID, WhiteType, Crdate
  32171. FROM
  32172. @tmptable
  32173. )
  32174. --返回信息
  32175. SELECT
  32176. l.UserID, u.NickName, l.WhiteType,
  32177. CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate
  32178. FROM
  32179. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  32180. WHERE
  32181. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  32182. ORDER BY
  32183. l.RowNumber ASC
  32184. RETURN
  32185. END
  32186. GO
  32187. /****** Object: StoredProcedure [dbo].[Manage_Withdraw_GetLog] Script Date: 2024/1/12 11:01:14 ******/
  32188. SET ANSI_NULLS ON
  32189. GO
  32190. SET QUOTED_IDENTIFIER ON
  32191. GO
  32192. -- EXEC [Manage_Withdraw_GetLog]
  32193. -- ==============================================
  32194. -- Author: wolf
  32195. -- Create Date: 2014-09-09
  32196. -- Mendor: wolf
  32197. -- Alter Date: 2014-12-22
  32198. -- Description: 提现日志
  32199. -- ==============================================
  32200. CREATE PROCEDURE [dbo].[Manage_Withdraw_GetLog]
  32201. @UserID INT, --用户ID
  32202. @BeginTime DATETIME, --起始时间
  32203. @EndTime DATETIME, --截止时间
  32204. @PageIndex INT, --页索引
  32205. @PageSize INT, --页大小
  32206. @RecordCount INT OUTPUT, --记录数
  32207. @TotalAmount BIGINT OUTPUT --提现总额
  32208. AS
  32209. SET NOCOUNT ON
  32210. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  32211. SET XACT_ABORT ON
  32212. BEGIN
  32213. DECLARE @StartRowIndex INT --起始行索引
  32214. DECLARE @EndRowIndex INT --截止行索引
  32215. --表变量
  32216. DECLARE @tmptable TABLE(
  32217. OrderID VARCHAR(32) PRIMARY KEY, --订单号
  32218. TradeID VARCHAR(64) NOT NULL, --交易号
  32219. UserID INT NOT NULL, --用户ID
  32220. Amount INT NOT NULL, --金额
  32221. RealAmount INT NOT NULL, --实际扣除金额
  32222. DfTransactionId VARCHAR(32) NOT NULL, --平台代付单号,32字符以内
  32223. GetStatus TINYINT NOT NULL, --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核) 11=拒绝
  32224. --251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
  32225. DfDesc VARCHAR(256) NOT NULL, --代付状态描述
  32226. Balance INT NOT NULL, --余额
  32227. NotifyTime DATETIME NOT NULL, --通知时间
  32228. Crdate DATETIME NOT NULL --时间
  32229. )
  32230. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  32231. SET @EndRowIndex = @PageIndex * @PageSize
  32232. SET @RecordCount = 0
  32233. --查询某个账号
  32234. IF(@UserID > 0)
  32235. BEGIN
  32236. --查询
  32237. INSERT INTO @tmptable
  32238. (
  32239. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
  32240. )
  32241. SELECT
  32242. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
  32243. FROM
  32244. [KayaWithdraw]
  32245. WHERE
  32246. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  32247. --记录数
  32248. SET @RecordCount = @@ROWCOUNT
  32249. END
  32250. --查询所有
  32251. ELSE
  32252. BEGIN
  32253. --查询
  32254. INSERT INTO @tmptable
  32255. (
  32256. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
  32257. )
  32258. SELECT
  32259. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
  32260. FROM
  32261. [KayaWithdraw]
  32262. WHERE
  32263. Crdate BETWEEN @BeginTime AND @EndTime
  32264. --记录数
  32265. SET @RecordCount = @@ROWCOUNT
  32266. END
  32267. --统计总额
  32268. SELECT @TotalAmount = ISNULL(SUM(Amount), 0) FROM @tmptable WHERE GetStatus IN (3, 4)
  32269. ;WITH [List] AS
  32270. (
  32271. SELECT
  32272. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  32273. OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId,
  32274. GetStatus, DfDesc, Balance, NotifyTime, Crdate
  32275. FROM
  32276. @tmptable
  32277. )
  32278. --返回信息
  32279. SELECT
  32280. l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.Amount, l.RealAmount, l.DfTransactionId,
  32281. l.GetStatus, l.DfDesc, l.Balance, CONVERT(CHAR(23), l.NotifyTime, 120) AS NotifyTime,
  32282. CONVERT(CHAR(23), l.Crdate, 120) AS Crdate
  32283. FROM
  32284. [List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
  32285. WHERE
  32286. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  32287. ORDER BY
  32288. l.RowNumber ASC
  32289. RETURN
  32290. END
  32291. GO
  32292. /****** Object: StoredProcedure [dbo].[p_bank_in] Script Date: 2024/1/12 11:01:14 ******/
  32293. SET ANSI_NULLS ON
  32294. GO
  32295. SET QUOTED_IDENTIFIER ON
  32296. GO
  32297. /*
  32298. declare @s varchar(512)
  32299. exec p_bank_in 10479800, 9999, '', 0 , 0, @s output
  32300. print @s
  32301. */
  32302. --存入保险柜
  32303. --返回值1:成功 其它:失败
  32304. CREATE PROCEDURE [dbo].[p_bank_in]
  32305. @userid INT,
  32306. @amount BIGINT,
  32307. @servername NVARCHAR(64), --金币房间传这个进来,非金币房间或WEB传''
  32308. @cashamount BIGINT OUTPUT, --数据库中金币数量,只有成功才会返回
  32309. @bankamount BIGINT OUTPUT, --保险柜中的金币数量
  32310. @outmsg NVARCHAR(512) OUTPUT,
  32311. @GameID INT = 0,
  32312. @EPassword VARCHAR(32) = '', --MD5密文
  32313. @IPAddress VARCHAR(16) = '', --IP地址
  32314. @RetCode INT OUTPUT --操作结果
  32315. AS
  32316. Set NoCount On
  32317. Set Xact_Abort On
  32318. BEGIN
  32319. --金币锁
  32320. declare @chvOnlineServerName NVARCHAR(64)
  32321. DECLARE @currentcashamount BIGINT
  32322. DECLARE @currentbankamount BIGINT
  32323. DECLARE @CurrTime DATETIME --系统当前时间
  32324. DECLARE @OldEPassword VARCHAR(32) --登陆密码
  32325. DECLARE @Msg VARCHAR(4096) --操作描述
  32326. DECLARE @IsRobot TINYINT --是否机器人
  32327. SET @currentbankamount = 0
  32328. SET @CurrTime = GETDATE()
  32329. SET @RetCode = 0
  32330. SELECT
  32331. @OldEPassword = EPassword, @IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
  32332. FROM
  32333. [AllUser]
  32334. WHERE
  32335. UserID = @UserID
  32336. IF(@@ROWCOUNT = 0)
  32337. BEGIN
  32338. set @outmsg = N'存入保险柜失败:账号信息不存在'
  32339. return
  32340. END
  32341. /*
  32342. IF(LEN(@ServerName) <= 0)
  32343. BEGIN
  32344. --校验登陆密码
  32345. IF(@OldEPassword IS NULL OR @OldEPassword != @EPassword)
  32346. BEGIN
  32347. SET @Msg = '存入保险柜,密码校验失败,关联信息,@UserID=' + LTRIM(STR(@userid)) + ',@amount=' + CAST(@amount AS VARCHAR(32)) + ',@EPassword=' + @EPassword
  32348. --添加日志
  32349. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = '系统', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
  32350. set @outmsg = '存入保险柜失败'
  32351. return
  32352. END
  32353. END
  32354. */
  32355. select @chvOnlineServerName = [ServerName] from [CasinoOnline] where [UserID] = @userid
  32356. set @bankamount = 0
  32357. set @cashamount = 0
  32358. if @chvOnlineServerName != @servername --没有锁时不能触发这个条件
  32359. begin
  32360. set @outmsg = N'游戏中不能存入金币,只能取出'
  32361. return
  32362. end
  32363. if @amount <= 0
  32364. begin
  32365. set @outmsg = N'存入保险柜失败:请输入正确的数量'
  32366. return
  32367. end
  32368. --检查存入后金额是否超过INT限制
  32369. SELECT @currentcashamount = amount, @currentbankamount = bank FROM [Money] WHERE userid = @userid
  32370. --非金币房间需要更新 amount
  32371. if @servername = ''
  32372. update [money] set bank = bank + @amount, amount = amount - @amount where userid = @userid and amount >= @amount
  32373. else
  32374. update [money] set bank = bank + @amount where userid = @userid
  32375. if @@rowcount = 1 --成功
  32376. begin
  32377. select @cashamount = amount, @bankamount = bank from [money] where userid = @userid
  32378. INSERT INTO [BankLog]
  32379. (
  32380. userid, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
  32381. )
  32382. VALUES
  32383. (
  32384. @userid, @userid, @currentbankamount, @amount, @bankamount, N'<font color="red">存入保险柜</font>', @CurrTime, @IPAddress
  32385. )
  32386. --机器人
  32387. IF(@IsRobot = 1)
  32388. BEGIN
  32389. INSERT INTO [RobotMoneyLog]
  32390. (
  32391. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  32392. [StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
  32393. )
  32394. SELECT
  32395. N'钱包', @GameID, 'CASH', @userid, @currentcashamount, -@amount,
  32396. @currentcashamount - @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
  32397. UNION ALL
  32398. SELECT
  32399. N'钱包', @GameID, 'BANK', @userid, @currentbankamount, @amount,
  32400. @currentbankamount + @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
  32401. END
  32402. ELSE
  32403. BEGIN
  32404. INSERT INTO [MoneyLog]
  32405. (
  32406. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  32407. [StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
  32408. )
  32409. SELECT
  32410. N'钱包', @GameID, 'CASH', @userid, @currentcashamount, -@amount,
  32411. @currentcashamount - @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
  32412. UNION ALL
  32413. SELECT
  32414. N'钱包', @GameID, 'BANK', @userid, @currentbankamount, @amount,
  32415. @currentbankamount + @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
  32416. END
  32417. set @outmsg = N'成功'
  32418. SET @RetCode = 1
  32419. return
  32420. end
  32421. else
  32422. begin
  32423. set @outmsg = N'存入保险柜失败:您身上金币不足'
  32424. return
  32425. end
  32426. END
  32427. GO
  32428. /****** Object: StoredProcedure [dbo].[p_bank_out] Script Date: 2024/1/12 11:01:14 ******/
  32429. SET ANSI_NULLS ON
  32430. GO
  32431. SET QUOTED_IDENTIFIER ON
  32432. GO
  32433. /*
  32434. declare @s varchar(512)
  32435. exec p_bank_out 22, 10000, '123', '', 0 , 0 , @s output
  32436. print @s
  32437. */
  32438. --从保险柜取出
  32439. --返回值1:成功 其它:失败
  32440. CREATE PROCEDURE [dbo].[p_bank_out]
  32441. @userid INT,
  32442. @amount BIGINT,
  32443. @safeboxpwd VARCHAR(32), --保险柜密码 (加密前的)
  32444. @servername NVARCHAR(64), --金币房间传这个进来,非金币房间或WEB传''
  32445. @cashamount BIGINT OUTPUT, --数据库中金币数量,只有成功才会返回
  32446. @bankamount BIGINT OUTPUT, --保险柜中的金币数量
  32447. @outmsg VARCHAR(512) OUTPUT,
  32448. @EPassword VARCHAR(32) = '', --MD5密文
  32449. @IPAddress VARCHAR(16) = '', --IP地址
  32450. @RetCode INT OUTPUT, --操作结果
  32451. @GameID INT = 0
  32452. AS
  32453. SET NOCOUNT ON
  32454. SET XACT_ABORT ON
  32455. BEGIN
  32456. --金币锁
  32457. DECLARE @chvOnlineServerName NVARCHAR(64)
  32458. DECLARE @max_amount BIGINT
  32459. DECLARE @currentcashamount BIGINT
  32460. DECLARE @currentbankamount BIGINT
  32461. DECLARE @CurrTime DATETIME --系统当前时间
  32462. DECLARE @OldEPassword VARCHAR(32) --登陆密码
  32463. DECLARE @OldEsafeboxpwd VARCHAR(32) --保险柜密码
  32464. DECLARE @Msg VARCHAR(4096) --操作描述
  32465. DECLARE @IsRobot TINYINT
  32466. SET @max_amount = 2000000000000000
  32467. SET @currentcashamount = 0
  32468. SET @CurrTime = GETDATE()
  32469. SET @RetCode = 0
  32470. --获取当前登陆密码、保险柜密码
  32471. SELECT
  32472. @OldEPassword = EPassword, --@OldEsafeboxPwd = Esafeboxpwd,
  32473. @IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
  32474. FROM
  32475. [AllUser]
  32476. WHERE
  32477. UserID = @userid
  32478. IF(@@ROWCOUNT = 0)
  32479. BEGIN
  32480. SET @RetCode = 11
  32481. set @outmsg = '从保险柜取出失败:账号信息不存在'
  32482. return 0
  32483. END
  32484. /*
  32485. --Web 调用
  32486. IF(LEN(@ServerName) <= 0)
  32487. BEGIN
  32488. --校验登陆密码
  32489. IF(@OldEPassword IS NULL OR @OldEPassword != @EPassword)
  32490. BEGIN
  32491. SET @Msg = '保险柜取出,密码校验失败,关联信息,@UserID=' + LTRIM(STR(@userid)) + ',@amount=' + CAST(@amount AS VARCHAR(32)) + ',@EPassword=' + @EPassword
  32492. --添加日志
  32493. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = '系统', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
  32494. SET @outmsg = '从保险柜取出失败'
  32495. RETURN -1
  32496. END
  32497. END
  32498. */
  32499. declare @rc int --其它存储过程的返回值
  32500. select @chvOnlineServerName = [ServerName] from [CasinoOnline] where [UserID] = @userid
  32501. set @bankamount = 0
  32502. set @cashamount = 0
  32503. if @chvOnlineServerName != @servername --没有锁时不能触发这个条件
  32504. begin
  32505. SET @RetCode = 12
  32506. set @outmsg = '从保险柜取出失败:您已在服务器[' + @chvOnlineServerName + '],请登陆此服务器,或通过客服中心寻求帮助'
  32507. return 0
  32508. end
  32509. --不判断是否会员
  32510. if @amount <= 0
  32511. begin
  32512. SET @RetCode = 13
  32513. set @outmsg = '从保险柜取出失败:请输入正确的数量'
  32514. return 0
  32515. end
  32516. --校验保险柜密码
  32517. --IF(@OldEsafeboxpwd != dbo.fn_md5(@safeboxpwd))
  32518. --BEGIN
  32519. -- set @outmsg = '从保险柜取出失败:保险柜密码不正确!'
  32520. -- return 0
  32521. --END
  32522. --检查取出后金额是否超过INT限制
  32523. SELECT @currentcashamount = amount, @currentbankamount = bank FROM [Money] WHERE userid = @userid
  32524. IF @amount + @currentcashamount > @max_amount
  32525. BEGIN
  32526. SET @RetCode = 14
  32527. set @outmsg = '从保险柜取出失败:取出数量过大'
  32528. return 0
  32529. END
  32530. update
  32531. [money]
  32532. set
  32533. bank = bank - @amount,
  32534. amount = amount + case @servername when '' then @amount else 0 end
  32535. where
  32536. userid = @userid and bank >= @amount
  32537. if @@rowcount = 1 --成功
  32538. begin
  32539. set @outmsg = '成功'
  32540. select @cashamount = amount, @bankamount = bank from [money] where userid = @userid
  32541. INSERT INTO [BankLog]
  32542. (
  32543. userid, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
  32544. )
  32545. VALUES
  32546. (
  32547. @userid, @userid, @currentbankamount, -@amount, @bankamount, N'<font color="green">保险柜取出</font>', @CurrTime, @IPAddress
  32548. )
  32549. --机器人
  32550. IF(@IsRobot = 1)
  32551. BEGIN
  32552. INSERT INTO [RobotMoneyLog]
  32553. (
  32554. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  32555. [StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
  32556. )
  32557. SELECT
  32558. N'钱包', @GameID, 'CASH', @userid, @currentcashamount, @amount,
  32559. @currentcashamount + @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
  32560. UNION ALL
  32561. SELECT
  32562. N'钱包', @GameID, 'BANK', @userid, @currentbankamount, -@amount,
  32563. @currentbankamount - @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
  32564. END
  32565. ELSE
  32566. BEGIN
  32567. INSERT INTO [MoneyLog]
  32568. (
  32569. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  32570. [StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
  32571. )
  32572. SELECT
  32573. N'钱包', @GameID, 'CASH', @userid, @currentcashamount, @amount,
  32574. @currentcashamount + @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
  32575. UNION ALL
  32576. SELECT
  32577. N'钱包', @GameID, 'BANK', @userid, @currentbankamount, -@amount,
  32578. @currentbankamount - @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
  32579. END
  32580. SET @RetCode = 1
  32581. return 1
  32582. end
  32583. else
  32584. begin
  32585. SET @RetCode = 15
  32586. set @outmsg ='从保险柜取出失败:您保险柜金额不足'
  32587. return 0
  32588. end
  32589. END
  32590. GO
  32591. /****** Object: StoredProcedure [dbo].[p_bank_query] Script Date: 2024/1/12 11:01:14 ******/
  32592. SET ANSI_NULLS ON
  32593. GO
  32594. SET QUOTED_IDENTIFIER ON
  32595. GO
  32596. --接口:查询保险柜数量
  32597. CREATE PROCEDURE [dbo].[p_bank_query]
  32598. @userid INT,
  32599. @bankamount BIGINT OUTPUT
  32600. AS
  32601. SET NOCOUNT ON
  32602. SET XACT_ABORT ON
  32603. BEGIN
  32604. SET @bankamount = 0
  32605. SELECT @bankamount = bank FROM [Money] WHERE userid = @userid
  32606. RETURN
  32607. END
  32608. GO
  32609. /****** Object: StoredProcedure [dbo].[p_if_getmoney] Script Date: 2024/1/12 11:01:14 ******/
  32610. SET ANSI_NULLS ON
  32611. GO
  32612. SET QUOTED_IDENTIFIER ON
  32613. GO
  32614. --新接口2011:简单获得金币数
  32615. CREATE PROCEDURE [dbo].[p_if_getmoney]
  32616. @userid INT,
  32617. @moneyamount BIGINT OUTPUT,
  32618. @Bank BIGINT OUTPUT
  32619. AS
  32620. SET NOCOUNT ON
  32621. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  32622. SET XACT_ABORT ON
  32623. BEGIN
  32624. SET @moneyamount = 0
  32625. SET @Bank = 0
  32626. --获取金币、保险柜
  32627. SELECT @moneyamount = Amount, @Bank = Bank FROM [Money] WHERE UserID = @userid
  32628. RETURN 1
  32629. END
  32630. GO
  32631. /****** Object: StoredProcedure [dbo].[Pay_coda_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  32632. SET ANSI_NULLS ON
  32633. GO
  32634. SET QUOTED_IDENTIFIER ON
  32635. GO
  32636. -- EXEC [Pay_coda_GenOrder]
  32637. -- ==============================================
  32638. -- Author: wolf
  32639. -- Create Date: 2016-07-21
  32640. -- Mendor: wolf
  32641. -- Alter Date: 2016-11-18
  32642. -- Description: coda支付充值--生成订单
  32643. -- ==============================================
  32644. CREATE PROCEDURE [dbo].[Pay_coda_GenOrder]
  32645. @UserID INT, --用户ID
  32646. @Price DECIMAL(18, 2), --价格
  32647. @ProductID VARCHAR(32), --业务类型
  32648. @PartnerID INT, --渠道ID
  32649. @IPAddress VARCHAR(16), --IP地址
  32650. @OrderID VARCHAR(32) OUTPUT --订单号
  32651. AS
  32652. SET NOCOUNT ON
  32653. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  32654. SET XACT_ABORT ON
  32655. BEGIN
  32656. DECLARE @Msg NVARCHAR(4000) --操作描述
  32657. DECLARE @RetCode TINYINT --操作结果
  32658. --表变量
  32659. DECLARE @tmptable TABLE(
  32660. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  32661. UserID INT NOT NULL --用户ID
  32662. )
  32663. SET @RetCode = 0
  32664. --生成数据
  32665. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  32666. --获取订单ID
  32667. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  32668. IF(@@ROWCOUNT = 0)
  32669. BEGIN
  32670. --添加日志
  32671. SET @Msg = N'coda支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  32672. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32673. SET @OrderID = ''
  32674. RETURN
  32675. END
  32676. --组装成有序的订单
  32677. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  32678. --添加订单信息
  32679. INSERT INTO [codaOrder]
  32680. (
  32681. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  32682. )
  32683. VALUES
  32684. (
  32685. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  32686. )
  32687. RETURN
  32688. END
  32689. GO
  32690. /****** Object: StoredProcedure [dbo].[Pay_coda_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  32691. SET ANSI_NULLS ON
  32692. GO
  32693. SET QUOTED_IDENTIFIER ON
  32694. GO
  32695. -- EXEC [Pay_coda_OrderReq]
  32696. -- ==============================================
  32697. -- Author: wolf
  32698. -- Create Date: 2016-07-21
  32699. -- Mendor: wolf
  32700. -- Alter Date: 2016-11-07
  32701. -- Description: coda支付--充值
  32702. -- ==============================================
  32703. CREATE PROCEDURE [dbo].[Pay_coda_OrderReq]
  32704. @OrderID VARCHAR(32), --订单号
  32705. @TradeID VARCHAR(64), --业务流水号
  32706. @Price DECIMAL(18, 2), --价格
  32707. @RetCode TINYINT OUTPUT, --操作结果
  32708. @UserID INT OUTPUT, --用户ID
  32709. @ProductID VARCHAR(32) OUTPUT --产品ID
  32710. AS
  32711. SET NOCOUNT ON
  32712. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  32713. SET XACT_ABORT ON
  32714. BEGIN
  32715. DECLARE @PayPrice DECIMAL(18, 2) --价格
  32716. DECLARE @GetStatus TINYINT --获取状态
  32717. DECLARE @CurrTime DATETIME --系统当前时间
  32718. DECLARE @DateFlag SMALLDATETIME --日期标志
  32719. DECLARE @Msg NVARCHAR(4000) --操作描述
  32720. DECLARE @PartnerID INT --渠道ID
  32721. DECLARE @IPAddress VARCHAR(16) --IP地址
  32722. SET @CurrTime = GETDATE()
  32723. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  32724. SET @IPAddress = ''
  32725. SET @ProductID = ''
  32726. SET @UserID = 0
  32727. SET @RetCode = 0
  32728. --获取订单信息
  32729. SELECT
  32730. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  32731. @IPAddress = IPAddress, @PartnerID = PartnerID
  32732. FROM
  32733. [codaOrder]
  32734. WHERE
  32735. OrderID = @OrderID
  32736. --判断订单是否有效
  32737. IF(@GetStatus IS NULL)
  32738. BEGIN
  32739. --添加日志
  32740. SET @Msg = N'coda支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  32741. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32742. SET @RetCode = 11
  32743. RETURN
  32744. END
  32745. --判断订单是否有效
  32746. IF(@GetStatus != 0)
  32747. BEGIN
  32748. --添加日志
  32749. SET @Msg = N'coda支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  32750. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32751. SET @RetCode = 11
  32752. RETURN
  32753. END
  32754. /*
  32755. --判断价格是否正确
  32756. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  32757. BEGIN
  32758. --添加日志
  32759. SET @Msg = N'coda支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  32760. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32761. SET @RetCode = 11
  32762. RETURN
  32763. END
  32764. */
  32765. --判断业务类型是否合法
  32766. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  32767. BEGIN
  32768. --添加日志
  32769. SET @Msg = N'coda支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  32770. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32771. SET @RetCode = 11
  32772. RETURN
  32773. END
  32774. --判断订单是否存在,以免重复加数据
  32775. IF EXISTS(SELECT OrderID FROM [codaPay] WHERE OrderID = @OrderID)
  32776. BEGIN
  32777. --添加日志
  32778. SET @Msg = N'coda支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  32779. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32780. SET @RetCode = 11
  32781. RETURN
  32782. END
  32783. --先设置订单状态
  32784. UPDATE [codaOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  32785. IF(@@ROWCOUNT = 0)
  32786. BEGIN
  32787. --添加日志
  32788. SET @Msg = N'coda支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  32789. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32790. SET @RetCode = 11
  32791. RETURN
  32792. END
  32793. --添加订单记录
  32794. INSERT INTO [codaPay]
  32795. (
  32796. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  32797. )
  32798. VALUES
  32799. (
  32800. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  32801. )
  32802. --触发充值事件
  32803. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  32804. --成功
  32805. SET @RetCode = 1
  32806. RETURN
  32807. END
  32808. GO
  32809. /****** Object: StoredProcedure [dbo].[Pay_CroPay_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  32810. SET ANSI_NULLS ON
  32811. GO
  32812. SET QUOTED_IDENTIFIER ON
  32813. GO
  32814. -- EXEC [Web_CroPay_GenOrder]
  32815. -- ==============================================
  32816. -- Author: wolf
  32817. -- Create Date: 2016-07-21
  32818. -- Mendor: wolf
  32819. -- Alter Date: 2016-11-18
  32820. -- Description: Cropay 充值--生成订单
  32821. -- ==============================================
  32822. CREATE PROCEDURE [dbo].[Pay_CroPay_GenOrder]
  32823. @UserID INT, --用户ID
  32824. @Price DECIMAL(18, 2), --价格
  32825. @ProductID VARCHAR(32), --业务类型
  32826. @PartnerID INT, --渠道ID
  32827. @IPAddress VARCHAR(16), --IP地址
  32828. @OrderID VARCHAR(32) OUTPUT --订单号
  32829. AS
  32830. SET NOCOUNT ON
  32831. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  32832. SET XACT_ABORT ON
  32833. BEGIN
  32834. DECLARE @Msg NVARCHAR(4000) --操作描述
  32835. DECLARE @RetCode TINYINT --操作结果
  32836. --表变量
  32837. DECLARE @tmptable TABLE(
  32838. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  32839. UserID INT NOT NULL --用户ID
  32840. )
  32841. SET @RetCode = 0
  32842. --生成数据
  32843. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  32844. --获取订单ID
  32845. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  32846. IF(@@ROWCOUNT = 0)
  32847. BEGIN
  32848. --添加日志
  32849. SET @Msg = N'Cropay 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  32850. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32851. SET @OrderID = ''
  32852. RETURN
  32853. END
  32854. --组装成有序的订单
  32855. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  32856. --获取货币类型
  32857. IF EXISTS(SELECT ProductID FROM [DiamondMall] WHERE ProductID = @ProductID)
  32858. BEGIN
  32859. SET @RetCode = 1
  32860. END
  32861. --月卡
  32862. ELSE IF EXISTS(SELECT ProductID FROM [MonthlyCard] WHERE ProductID = @ProductID)
  32863. BEGIN
  32864. SET @RetCode = 1
  32865. END
  32866. --商品无效
  32867. IF(@RetCode != 1)
  32868. BEGIN
  32869. --添加日志
  32870. SET @Msg = N'Cropay 生成订单异常,产品信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@OrderID=' + @OrderID + ',@ProductID=' + @ProductID
  32871. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32872. SET @OrderID = ''
  32873. RETURN
  32874. END
  32875. --添加订单信息
  32876. INSERT INTO [CroOrder]
  32877. (
  32878. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, IPAddress, Crdate
  32879. )
  32880. VALUES
  32881. (
  32882. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, @IPAddress, GETDATE()
  32883. )
  32884. RETURN
  32885. END
  32886. GO
  32887. /****** Object: StoredProcedure [dbo].[Pay_CroPay_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  32888. SET ANSI_NULLS ON
  32889. GO
  32890. SET QUOTED_IDENTIFIER ON
  32891. GO
  32892. -- EXEC [Pay_CroPay_OrderReq]
  32893. -- @OrderID = 10001,
  32894. -- @TradeID = '',
  32895. -- @Price = 123,
  32896. -- @IPAddress = ''
  32897. -- ==============================================
  32898. -- Author: wolf
  32899. -- Create Date: 2016-07-21
  32900. -- Mendor: wolf
  32901. -- Alter Date: 2016-11-07
  32902. -- Description: Cropay--充值
  32903. -- ==============================================
  32904. CREATE PROCEDURE [dbo].[Pay_CroPay_OrderReq]
  32905. @OrderID VARCHAR(32), --订单号
  32906. @TradeID VARCHAR(64), --业务流水号
  32907. @Price DECIMAL(18, 2), --价格
  32908. @RetCode TINYINT OUTPUT, --操作结果
  32909. @UserID INT OUTPUT, --用户ID
  32910. @ProductID VARCHAR(32) OUTPUT --产品ID
  32911. AS
  32912. SET NOCOUNT ON
  32913. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  32914. SET XACT_ABORT ON
  32915. BEGIN
  32916. DECLARE @PayPrice DECIMAL(18, 2) --价格
  32917. DECLARE @GetStatus TINYINT --获取状态
  32918. DECLARE @CurrTime DATETIME --系统当前时间
  32919. DECLARE @DateFlag SMALLDATETIME --日期标志
  32920. DECLARE @Msg NVARCHAR(4000) --操作描述
  32921. DECLARE @PartnerID INT --渠道ID
  32922. DECLARE @IPAddress VARCHAR(16) --IP地址
  32923. SET @CurrTime = GETDATE()
  32924. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  32925. SET @IPAddress = ''
  32926. SET @ProductID = ''
  32927. SET @UserID = 0
  32928. SET @RetCode = 0
  32929. --获取订单信息
  32930. SELECT
  32931. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  32932. @IPAddress = IPAddress, @PartnerID = PartnerID
  32933. FROM
  32934. [CroOrder]
  32935. WHERE
  32936. OrderID = @OrderID
  32937. --判断订单是否有效
  32938. IF(@GetStatus IS NULL)
  32939. BEGIN
  32940. --添加日志
  32941. SET @Msg = N'Cropay 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  32942. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32943. SET @RetCode = 11
  32944. RETURN
  32945. END
  32946. --判断订单是否有效
  32947. IF(@GetStatus != 0)
  32948. BEGIN
  32949. --添加日志
  32950. SET @Msg = N'Cropay 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  32951. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32952. SET @RetCode = 11
  32953. RETURN
  32954. END
  32955. --判断价格是否正确
  32956. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  32957. BEGIN
  32958. --添加日志
  32959. SET @Msg = N'Cropay 充值,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  32960. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32961. SET @RetCode = 11
  32962. RETURN
  32963. END
  32964. --判断业务类型是否合法
  32965. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  32966. BEGIN
  32967. --添加日志
  32968. SET @Msg = N'Cropay 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  32969. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32970. SET @RetCode = 11
  32971. RETURN
  32972. END
  32973. --判断订单是否存在,以免重复加数据
  32974. IF EXISTS(SELECT OrderID FROM [CroPay] WHERE OrderID = @OrderID)
  32975. BEGIN
  32976. --添加日志
  32977. SET @Msg = N'Cropay 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  32978. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32979. SET @RetCode = 11
  32980. RETURN
  32981. END
  32982. --校验产品信息
  32983. EXEC [Pay_Product_Check] @UserID = @UserID, @OrderID = @OrderID, @ProductID = @ProductID, @PayName = 'Cropay ',
  32984. @IPAddress = @IPAddress, @Price = @PayPrice OUTPUT
  32985. --判断价格是否正确
  32986. IF(@PayPrice IS NULL OR @PayPrice <= 0 OR @PayPrice != @Price)
  32987. BEGIN
  32988. --添加日志
  32989. SET @Msg = N'Cropay 充值,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  32990. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  32991. SET @RetCode = 11
  32992. RETURN
  32993. END
  32994. --先设置订单状态
  32995. UPDATE [CroOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  32996. IF(@@ROWCOUNT = 0)
  32997. BEGIN
  32998. --添加日志
  32999. SET @Msg = N'Cropay 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33000. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33001. SET @RetCode = 11
  33002. RETURN
  33003. END
  33004. --添加订单记录
  33005. INSERT INTO [CroPay]
  33006. (
  33007. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  33008. )
  33009. VALUES
  33010. (
  33011. @OrderID, @TradeID, @UserID, @ProductID, @Price, @PartnerID, @IPAddress, @CurrTime
  33012. )
  33013. --触发充值事件
  33014. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @Price, @IPAddress = @IPAddress
  33015. --成功
  33016. SET @RetCode = 1
  33017. RETURN
  33018. END
  33019. GO
  33020. /****** Object: StoredProcedure [dbo].[Pay_Crush_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  33021. SET ANSI_NULLS ON
  33022. GO
  33023. SET QUOTED_IDENTIFIER ON
  33024. GO
  33025. -- EXEC [Pay_Crush_GenOrder]
  33026. -- ==============================================
  33027. -- Author: wolf
  33028. -- Create Date: 2016-07-21
  33029. -- Mendor: wolf
  33030. -- Alter Date: 2016-11-18
  33031. -- Description: Crush支付充值--生成订单
  33032. -- ==============================================
  33033. CREATE PROCEDURE [dbo].[Pay_Crush_GenOrder]
  33034. @UserID INT, --用户ID
  33035. @Price DECIMAL(18, 2), --价格
  33036. @ProductID VARCHAR(32), --业务类型
  33037. @PartnerID INT, --渠道ID
  33038. @IPAddress VARCHAR(16), --IP地址
  33039. @OrderID VARCHAR(32) OUTPUT --订单号
  33040. AS
  33041. SET NOCOUNT ON
  33042. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  33043. SET XACT_ABORT ON
  33044. BEGIN
  33045. DECLARE @Msg NVARCHAR(4000) --操作描述
  33046. DECLARE @RetCode TINYINT --操作结果
  33047. --表变量
  33048. DECLARE @tmptable TABLE(
  33049. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  33050. UserID INT NOT NULL --用户ID
  33051. )
  33052. SET @RetCode = 0
  33053. --生成数据
  33054. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  33055. --获取订单ID
  33056. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  33057. IF(@@ROWCOUNT = 0)
  33058. BEGIN
  33059. --添加日志
  33060. SET @Msg = N'Crush支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  33061. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33062. SET @OrderID = ''
  33063. RETURN
  33064. END
  33065. --组装成有序的订单
  33066. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  33067. --添加订单信息
  33068. INSERT INTO [CrushOrder]
  33069. (
  33070. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  33071. )
  33072. VALUES
  33073. (
  33074. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  33075. )
  33076. RETURN
  33077. END
  33078. GO
  33079. /****** Object: StoredProcedure [dbo].[Pay_Crush_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  33080. SET ANSI_NULLS ON
  33081. GO
  33082. SET QUOTED_IDENTIFIER ON
  33083. GO
  33084. -- EXEC [Pay_Crush_OrderReq]
  33085. -- ==============================================
  33086. -- Author: wolf
  33087. -- Create Date: 2016-07-21
  33088. -- Mendor: wolf
  33089. -- Alter Date: 2016-11-07
  33090. -- Description: Crush支付--充值
  33091. -- ==============================================
  33092. CREATE PROCEDURE [dbo].[Pay_Crush_OrderReq]
  33093. @OrderID VARCHAR(32), --订单号
  33094. @TradeID VARCHAR(64), --业务流水号
  33095. @Price DECIMAL(18, 2), --价格
  33096. @RetCode TINYINT OUTPUT, --操作结果
  33097. @UserID INT OUTPUT, --用户ID
  33098. @ProductID VARCHAR(32) OUTPUT --产品ID
  33099. AS
  33100. SET NOCOUNT ON
  33101. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  33102. SET XACT_ABORT ON
  33103. BEGIN
  33104. DECLARE @PayPrice DECIMAL(18, 2) --价格
  33105. DECLARE @GetStatus TINYINT --获取状态
  33106. DECLARE @CurrTime DATETIME --系统当前时间
  33107. DECLARE @DateFlag SMALLDATETIME --日期标志
  33108. DECLARE @Msg NVARCHAR(4000) --操作描述
  33109. DECLARE @PartnerID INT --渠道ID
  33110. DECLARE @IPAddress VARCHAR(16) --IP地址
  33111. SET @CurrTime = GETDATE()
  33112. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  33113. SET @IPAddress = ''
  33114. SET @ProductID = ''
  33115. SET @UserID = 0
  33116. SET @RetCode = 0
  33117. --获取订单信息
  33118. SELECT
  33119. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  33120. @IPAddress = IPAddress, @PartnerID = PartnerID
  33121. FROM
  33122. [CrushOrder]
  33123. WHERE
  33124. OrderID = @OrderID
  33125. --判断订单是否有效
  33126. IF(@GetStatus IS NULL)
  33127. BEGIN
  33128. --添加日志
  33129. SET @Msg = N'Crush支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  33130. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33131. SET @RetCode = 11
  33132. RETURN
  33133. END
  33134. --判断订单是否有效
  33135. IF(@GetStatus != 0)
  33136. BEGIN
  33137. --添加日志
  33138. SET @Msg = N'Crush支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  33139. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33140. SET @RetCode = 11
  33141. RETURN
  33142. END
  33143. /*
  33144. --判断价格是否正确
  33145. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  33146. BEGIN
  33147. --添加日志
  33148. SET @Msg = N'Crush支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33149. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33150. SET @RetCode = 11
  33151. RETURN
  33152. END
  33153. */
  33154. --判断业务类型是否合法
  33155. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  33156. BEGIN
  33157. --添加日志
  33158. SET @Msg = N'Crush支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33159. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33160. SET @RetCode = 11
  33161. RETURN
  33162. END
  33163. --判断订单是否存在,以免重复加数据
  33164. IF EXISTS(SELECT OrderID FROM [CrushPay] WHERE OrderID = @OrderID)
  33165. BEGIN
  33166. --添加日志
  33167. SET @Msg = N'Crush支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33168. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33169. SET @RetCode = 11
  33170. RETURN
  33171. END
  33172. --先设置订单状态
  33173. UPDATE [CrushOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  33174. IF(@@ROWCOUNT = 0)
  33175. BEGIN
  33176. --添加日志
  33177. SET @Msg = N'Crush支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33178. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33179. SET @RetCode = 11
  33180. RETURN
  33181. END
  33182. --添加订单记录
  33183. INSERT INTO [CrushPay]
  33184. (
  33185. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  33186. )
  33187. VALUES
  33188. (
  33189. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  33190. )
  33191. --触发充值事件
  33192. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  33193. --成功
  33194. SET @RetCode = 1
  33195. RETURN
  33196. END
  33197. GO
  33198. /****** Object: StoredProcedure [dbo].[Pay_CrushWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
  33199. SET ANSI_NULLS ON
  33200. GO
  33201. SET QUOTED_IDENTIFIER ON
  33202. GO
  33203. -- EXEC [Pay_CrushWithdraw_Notify]
  33204. -- ==============================================
  33205. -- Author: wolf
  33206. -- Create Date: 2016-07-21
  33207. -- Mendor: wolf
  33208. -- Alter Date: 2016-11-07
  33209. -- Description: Crush支付--提现通知
  33210. -- ==============================================
  33211. CREATE PROCEDURE [dbo].[Pay_CrushWithdraw_Notify]
  33212. @OrderID VARCHAR(32), --订单号
  33213. @DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
  33214. @Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
  33215. @DfDesc VARCHAR(256), --代付状态描述
  33216. @Balance INT --余额
  33217. AS
  33218. SET NOCOUNT ON
  33219. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  33220. SET XACT_ABORT ON
  33221. BEGIN
  33222. DECLARE @UserID INT --用户ID
  33223. DECLARE @Amount INT --提现金额
  33224. DECLARE @RealAmount INT --实际金额(含费用)
  33225. DECLARE @Surcharge INT --手续费
  33226. DECLARE @Msg NVARCHAR(4000) --消息
  33227. DECLARE @RetCode TINYINT --操作结果
  33228. DECLARE @CurrTime DATETIME --系统当前时间
  33229. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
  33230. --11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
  33231. SET @RetCode = 0
  33232. SET @CurrTime = GETDATE()
  33233. --更新状态
  33234. UPDATE
  33235. [CrushWithdraw]
  33236. SET
  33237. @UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
  33238. GetStatus = CASE
  33239. WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
  33240. WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
  33241. WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
  33242. WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
  33243. WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
  33244. WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
  33245. ELSE 255 --未知
  33246. END,
  33247. DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
  33248. WHERE
  33249. OrderID = @OrderID
  33250. IF(@@ROWCOUNT = 0)
  33251. BEGIN
  33252. SET @Msg = N'Pay_CrushWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
  33253. ',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
  33254. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
  33255. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  33256. RETURN
  33257. END
  33258. --失败,直接返回
  33259. IF(@Status IS NULL OR @Status NOT IN(1, 2))
  33260. BEGIN
  33261. --返回订单信息
  33262. SET @RetCode = 2
  33263. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  33264. RETURN
  33265. END
  33266. --不是成功状态
  33267. IF(@Status != 1)
  33268. BEGIN
  33269. SET @RetCode = 11
  33270. --返回订单信息
  33271. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  33272. RETURN
  33273. END
  33274. SET @RetCode = 1
  33275. --返回订单信息
  33276. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  33277. RETURN
  33278. END
  33279. GO
  33280. /****** Object: StoredProcedure [dbo].[Pay_CrushWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
  33281. SET ANSI_NULLS ON
  33282. GO
  33283. SET QUOTED_IDENTIFIER ON
  33284. GO
  33285. -- EXEC [Pay_CrushWithdraw_Req]
  33286. -- ==============================================
  33287. -- Author: wolf
  33288. -- Create Date: 2016-07-21
  33289. -- Mendor: wolf
  33290. -- Alter Date: 2016-11-07
  33291. -- Description: Crush支付--提现申请
  33292. -- ==============================================
  33293. CREATE PROCEDURE [dbo].[Pay_CrushWithdraw_Req]
  33294. @UserID int, --用户ID
  33295. @Amount INT, --提现金额
  33296. @RealName VARCHAR(128), --真实姓名
  33297. @BankCard VARCHAR(32), --银行卡
  33298. @BankName VARCHAR(128), --银行名称
  33299. @Mobile VARCHAR(32), --电话
  33300. @EMail VARCHAR(64), --email
  33301. @Address VARCHAR(256), --地址
  33302. @IPAddress VARCHAR(16) --IP地址
  33303. AS
  33304. SET NOCOUNT ON
  33305. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  33306. SET XACT_ABORT ON
  33307. BEGIN
  33308. DECLARE @CurrTime DATETIME --系统当前时间
  33309. DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
  33310. DECLARE @OrderID VARCHAR(32) --订单号
  33311. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
  33312. DECLARE @RealAmount INT --实际提现的金额(扣除费率)
  33313. DECLARE @Tel VARCHAR(32) --手机号
  33314. DECLARE @Surcharge INT --手续费
  33315. --表变量
  33316. DECLARE @tmptable TABLE(
  33317. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
  33318. UserID INT NOT NULL --用户ID
  33319. )
  33320. SET @RetCode = 0
  33321. SET @CurrTime = GETDATE()
  33322. SET @OrderID = ''
  33323. SET @GetStatus = 0
  33324. SET @Surcharge = 0
  33325. SET @RealAmount = 0
  33326. SET @Tel = ''
  33327. IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
  33328. BEGIN
  33329. SET @RetCode = 11
  33330. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  33331. RETURN
  33332. END
  33333. --生成数据
  33334. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  33335. --获取后台订单ID
  33336. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  33337. --组装成有序的订单
  33338. SET @OrderID = 'W' + RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
  33339. --实际提取金额=提取金额-手续费
  33340. SET @RealAmount = @Amount - @Surcharge
  33341. --生成订单
  33342. INSERT INTO [CrushWithdraw]
  33343. (
  33344. OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
  33345. RealName, BankCard, BankName, Mobile, EMail, Address
  33346. )
  33347. VALUES
  33348. (
  33349. @OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
  33350. @RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
  33351. )
  33352. --操作结果
  33353. SET @RetCode = 1
  33354. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  33355. RETURN
  33356. END
  33357. GO
  33358. /****** Object: StoredProcedure [dbo].[Pay_Dingpei_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  33359. SET ANSI_NULLS ON
  33360. GO
  33361. SET QUOTED_IDENTIFIER ON
  33362. GO
  33363. -- EXEC [Pay_Dingpei_GenOrder]
  33364. -- ==============================================
  33365. -- Author: wolf
  33366. -- Create Date: 2016-07-21
  33367. -- Mendor: wolf
  33368. -- Alter Date: 2016-11-18
  33369. -- Description: Dingpei支付充值--生成订单
  33370. -- ==============================================
  33371. CREATE PROCEDURE [dbo].[Pay_Dingpei_GenOrder]
  33372. @UserID INT, --用户ID
  33373. @Price DECIMAL(18, 2), --价格
  33374. @ProductID VARCHAR(32), --业务类型
  33375. @PartnerID INT, --渠道ID
  33376. @IPAddress VARCHAR(16), --IP地址
  33377. @OrderID VARCHAR(32) OUTPUT --订单号
  33378. AS
  33379. SET NOCOUNT ON
  33380. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  33381. SET XACT_ABORT ON
  33382. BEGIN
  33383. DECLARE @Msg NVARCHAR(4000) --操作描述
  33384. DECLARE @RetCode TINYINT --操作结果
  33385. --表变量
  33386. DECLARE @tmptable TABLE(
  33387. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  33388. UserID INT NOT NULL --用户ID
  33389. )
  33390. SET @RetCode = 0
  33391. --生成数据
  33392. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  33393. --获取订单ID
  33394. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  33395. IF(@@ROWCOUNT = 0)
  33396. BEGIN
  33397. --添加日志
  33398. SET @Msg = N'Dingpei支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  33399. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33400. SET @OrderID = ''
  33401. RETURN
  33402. END
  33403. --组装成有序的订单
  33404. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  33405. --添加订单信息
  33406. INSERT INTO [DingpeiOrder]
  33407. (
  33408. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  33409. )
  33410. VALUES
  33411. (
  33412. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  33413. )
  33414. RETURN
  33415. END
  33416. GO
  33417. /****** Object: StoredProcedure [dbo].[Pay_Dingpei_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  33418. SET ANSI_NULLS ON
  33419. GO
  33420. SET QUOTED_IDENTIFIER ON
  33421. GO
  33422. -- EXEC [Pay_Dingpei_OrderReq]
  33423. -- ==============================================
  33424. -- Author: wolf
  33425. -- Create Date: 2016-07-21
  33426. -- Mendor: wolf
  33427. -- Alter Date: 2016-11-07
  33428. -- Description: Dingpei支付--充值
  33429. -- ==============================================
  33430. CREATE PROCEDURE [dbo].[Pay_Dingpei_OrderReq]
  33431. @OrderID VARCHAR(32), --订单号
  33432. @TradeID VARCHAR(64), --业务流水号
  33433. @Price DECIMAL(18, 2), --价格
  33434. @RetCode TINYINT OUTPUT, --操作结果
  33435. @UserID INT OUTPUT, --用户ID
  33436. @ProductID VARCHAR(32) OUTPUT --产品ID
  33437. AS
  33438. SET NOCOUNT ON
  33439. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  33440. SET XACT_ABORT ON
  33441. BEGIN
  33442. DECLARE @PayPrice DECIMAL(18, 2) --价格
  33443. DECLARE @GetStatus TINYINT --获取状态
  33444. DECLARE @CurrTime DATETIME --系统当前时间
  33445. DECLARE @DateFlag SMALLDATETIME --日期标志
  33446. DECLARE @Msg NVARCHAR(4000) --操作描述
  33447. DECLARE @PartnerID INT --渠道ID
  33448. DECLARE @IPAddress VARCHAR(16) --IP地址
  33449. SET @CurrTime = GETDATE()
  33450. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  33451. SET @IPAddress = ''
  33452. SET @ProductID = ''
  33453. SET @UserID = 0
  33454. SET @RetCode = 0
  33455. --获取订单信息
  33456. SELECT
  33457. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  33458. @IPAddress = IPAddress, @PartnerID = PartnerID
  33459. FROM
  33460. [DingpeiOrder]
  33461. WHERE
  33462. OrderID = @OrderID
  33463. --判断订单是否有效
  33464. IF(@GetStatus IS NULL)
  33465. BEGIN
  33466. --添加日志
  33467. SET @Msg = N'Dingpei支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  33468. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33469. SET @RetCode = 11
  33470. RETURN
  33471. END
  33472. --判断订单是否有效
  33473. IF(@GetStatus != 0)
  33474. BEGIN
  33475. --添加日志
  33476. SET @Msg = N'Dingpei支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  33477. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33478. SET @RetCode = 11
  33479. RETURN
  33480. END
  33481. /*
  33482. --判断价格是否正确
  33483. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  33484. BEGIN
  33485. --添加日志
  33486. SET @Msg = N'Dingpei支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33487. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33488. SET @RetCode = 11
  33489. RETURN
  33490. END
  33491. */
  33492. --判断业务类型是否合法
  33493. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  33494. BEGIN
  33495. --添加日志
  33496. SET @Msg = N'Dingpei支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33497. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33498. SET @RetCode = 11
  33499. RETURN
  33500. END
  33501. --判断订单是否存在,以免重复加数据
  33502. IF EXISTS(SELECT OrderID FROM [DingpeiPay] WHERE OrderID = @OrderID)
  33503. BEGIN
  33504. --添加日志
  33505. SET @Msg = N'Dingpei支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33506. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33507. SET @RetCode = 11
  33508. RETURN
  33509. END
  33510. --先设置订单状态
  33511. UPDATE [DingpeiOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  33512. IF(@@ROWCOUNT = 0)
  33513. BEGIN
  33514. --添加日志
  33515. SET @Msg = N'Dingpei支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33516. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33517. SET @RetCode = 11
  33518. RETURN
  33519. END
  33520. --添加订单记录
  33521. INSERT INTO [DingpeiPay]
  33522. (
  33523. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  33524. )
  33525. VALUES
  33526. (
  33527. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  33528. )
  33529. --触发充值事件
  33530. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  33531. --成功
  33532. SET @RetCode = 1
  33533. RETURN
  33534. END
  33535. GO
  33536. /****** Object: StoredProcedure [dbo].[Pay_DingpeiWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
  33537. SET ANSI_NULLS ON
  33538. GO
  33539. SET QUOTED_IDENTIFIER ON
  33540. GO
  33541. -- EXEC [Pay_DingpeiWithdraw_Notify]
  33542. -- ==============================================
  33543. -- Author: wolf
  33544. -- Create Date: 2016-07-21
  33545. -- Mendor: wolf
  33546. -- Alter Date: 2016-11-07
  33547. -- Description: Dingpei支付--提现通知
  33548. -- ==============================================
  33549. CREATE PROCEDURE [dbo].[Pay_DingpeiWithdraw_Notify]
  33550. @OrderID VARCHAR(32), --订单号
  33551. @DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
  33552. @Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
  33553. @DfDesc VARCHAR(256), --代付状态描述
  33554. @Balance INT --余额
  33555. AS
  33556. SET NOCOUNT ON
  33557. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  33558. SET XACT_ABORT ON
  33559. BEGIN
  33560. DECLARE @UserID INT --用户ID
  33561. DECLARE @Amount INT --提现金额
  33562. DECLARE @RealAmount INT --实际金额(含费用)
  33563. DECLARE @Surcharge INT --手续费
  33564. DECLARE @Msg NVARCHAR(4000) --消息
  33565. DECLARE @RetCode TINYINT --操作结果
  33566. DECLARE @CurrTime DATETIME --系统当前时间
  33567. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
  33568. --11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
  33569. SET @RetCode = 0
  33570. SET @CurrTime = GETDATE()
  33571. --更新状态
  33572. UPDATE
  33573. [DingpeiWithdraw]
  33574. SET
  33575. @UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
  33576. GetStatus = CASE
  33577. WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
  33578. WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
  33579. WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
  33580. WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
  33581. WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
  33582. WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
  33583. ELSE 255 --未知
  33584. END,
  33585. DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
  33586. WHERE
  33587. OrderID = @OrderID
  33588. IF(@@ROWCOUNT = 0)
  33589. BEGIN
  33590. SET @Msg = N'Pay_DingpeiWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
  33591. ',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
  33592. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
  33593. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  33594. RETURN
  33595. END
  33596. --失败,直接返回
  33597. IF(@Status IS NULL OR @Status NOT IN(1, 2))
  33598. BEGIN
  33599. --返回订单信息
  33600. SET @RetCode = 2
  33601. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  33602. RETURN
  33603. END
  33604. --不是成功状态
  33605. IF(@Status != 1)
  33606. BEGIN
  33607. SET @RetCode = 11
  33608. --返回订单信息
  33609. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  33610. RETURN
  33611. END
  33612. SET @RetCode = 1
  33613. --返回订单信息
  33614. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  33615. RETURN
  33616. END
  33617. GO
  33618. /****** Object: StoredProcedure [dbo].[Pay_DingpeiWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
  33619. SET ANSI_NULLS ON
  33620. GO
  33621. SET QUOTED_IDENTIFIER ON
  33622. GO
  33623. -- EXEC [Pay_DingpeiWithdraw_Req]
  33624. -- ==============================================
  33625. -- Author: wolf
  33626. -- Create Date: 2016-07-21
  33627. -- Mendor: wolf
  33628. -- Alter Date: 2016-11-07
  33629. -- Description: Dingpei支付--提现申请
  33630. -- ==============================================
  33631. CREATE PROCEDURE [dbo].[Pay_DingpeiWithdraw_Req]
  33632. @UserID int, --用户ID
  33633. @Amount INT, --提现金额
  33634. @RealName VARCHAR(128), --真实姓名
  33635. @BankCard VARCHAR(32), --银行卡
  33636. @BankName VARCHAR(128), --银行名称
  33637. @Mobile VARCHAR(32), --电话
  33638. @EMail VARCHAR(64), --email
  33639. @Address VARCHAR(256), --地址
  33640. @IPAddress VARCHAR(16) --IP地址
  33641. AS
  33642. SET NOCOUNT ON
  33643. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  33644. SET XACT_ABORT ON
  33645. BEGIN
  33646. DECLARE @CurrTime DATETIME --系统当前时间
  33647. DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
  33648. DECLARE @OrderID VARCHAR(32) --订单号
  33649. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
  33650. DECLARE @RealAmount INT --实际提现的金额(扣除费率)
  33651. DECLARE @Tel VARCHAR(32) --手机号
  33652. DECLARE @Surcharge INT --手续费
  33653. --表变量
  33654. DECLARE @tmptable TABLE(
  33655. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
  33656. UserID INT NOT NULL --用户ID
  33657. )
  33658. SET @RetCode = 0
  33659. SET @CurrTime = GETDATE()
  33660. SET @OrderID = ''
  33661. SET @GetStatus = 0
  33662. SET @Surcharge = 0
  33663. SET @RealAmount = 0
  33664. SET @Tel = ''
  33665. IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
  33666. BEGIN
  33667. SET @RetCode = 11
  33668. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  33669. RETURN
  33670. END
  33671. --生成数据
  33672. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  33673. --获取后台订单ID
  33674. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  33675. --组装成有序的订单
  33676. SET @OrderID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
  33677. --实际提取金额=提取金额-手续费
  33678. SET @RealAmount = @Amount - @Surcharge
  33679. --生成订单
  33680. INSERT INTO [DingpeiWithdraw]
  33681. (
  33682. OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
  33683. RealName, BankCard, BankName, Mobile, EMail, Address
  33684. )
  33685. VALUES
  33686. (
  33687. @OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
  33688. @RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
  33689. )
  33690. --操作结果
  33691. SET @RetCode = 1
  33692. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  33693. RETURN
  33694. END
  33695. GO
  33696. /****** Object: StoredProcedure [dbo].[Pay_fawry_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  33697. SET ANSI_NULLS ON
  33698. GO
  33699. SET QUOTED_IDENTIFIER ON
  33700. GO
  33701. -- EXEC [Pay_fawry_GenOrder]
  33702. -- ==============================================
  33703. -- Author: wolf
  33704. -- Create Date: 2016-07-21
  33705. -- Mendor: wolf
  33706. -- Alter Date: 2016-11-18
  33707. -- Description: fawry支付充值--生成订单
  33708. -- ==============================================
  33709. CREATE PROCEDURE [dbo].[Pay_fawry_GenOrder]
  33710. @UserID INT, --用户ID
  33711. @Price DECIMAL(18, 2), --价格
  33712. @ProductID VARCHAR(32), --业务类型
  33713. @PartnerID INT, --渠道ID
  33714. @IPAddress VARCHAR(16), --IP地址
  33715. @OrderID VARCHAR(32) OUTPUT --订单号
  33716. AS
  33717. SET NOCOUNT ON
  33718. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  33719. SET XACT_ABORT ON
  33720. BEGIN
  33721. DECLARE @Msg NVARCHAR(4000) --操作描述
  33722. DECLARE @RetCode TINYINT --操作结果
  33723. --表变量
  33724. DECLARE @tmptable TABLE(
  33725. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  33726. UserID INT NOT NULL --用户ID
  33727. )
  33728. SET @RetCode = 0
  33729. --生成数据
  33730. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  33731. --获取订单ID
  33732. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  33733. IF(@@ROWCOUNT = 0)
  33734. BEGIN
  33735. --添加日志
  33736. SET @Msg = N'fawry支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  33737. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33738. SET @OrderID = ''
  33739. RETURN
  33740. END
  33741. --组装成有序的订单
  33742. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  33743. --添加订单信息
  33744. INSERT INTO [fawryOrder]
  33745. (
  33746. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  33747. )
  33748. VALUES
  33749. (
  33750. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  33751. )
  33752. RETURN
  33753. END
  33754. GO
  33755. /****** Object: StoredProcedure [dbo].[Pay_fawry_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  33756. SET ANSI_NULLS ON
  33757. GO
  33758. SET QUOTED_IDENTIFIER ON
  33759. GO
  33760. -- EXEC [Pay_fawry_OrderReq]
  33761. -- ==============================================
  33762. -- Author: wolf
  33763. -- Create Date: 2016-07-21
  33764. -- Mendor: wolf
  33765. -- Alter Date: 2016-11-07
  33766. -- Description: fawry支付--充值
  33767. -- ==============================================
  33768. CREATE PROCEDURE [dbo].[Pay_fawry_OrderReq]
  33769. @OrderID VARCHAR(32), --订单号
  33770. @TradeID VARCHAR(64), --业务流水号
  33771. @Price DECIMAL(18, 2), --价格
  33772. @RetCode TINYINT OUTPUT, --操作结果
  33773. @UserID INT OUTPUT, --用户ID
  33774. @ProductID VARCHAR(32) OUTPUT --产品ID
  33775. AS
  33776. SET NOCOUNT ON
  33777. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  33778. SET XACT_ABORT ON
  33779. BEGIN
  33780. DECLARE @PayPrice DECIMAL(18, 2) --价格
  33781. DECLARE @GetStatus TINYINT --获取状态
  33782. DECLARE @CurrTime DATETIME --系统当前时间
  33783. DECLARE @DateFlag SMALLDATETIME --日期标志
  33784. DECLARE @Msg NVARCHAR(4000) --操作描述
  33785. DECLARE @PartnerID INT --渠道ID
  33786. DECLARE @IPAddress VARCHAR(16) --IP地址
  33787. SET @CurrTime = GETDATE()
  33788. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  33789. SET @IPAddress = ''
  33790. SET @ProductID = ''
  33791. SET @UserID = 0
  33792. SET @RetCode = 0
  33793. --获取订单信息
  33794. SELECT
  33795. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  33796. @IPAddress = IPAddress, @PartnerID = PartnerID
  33797. FROM
  33798. [fawryOrder]
  33799. WHERE
  33800. OrderID = @OrderID
  33801. --判断订单是否有效
  33802. IF(@GetStatus IS NULL)
  33803. BEGIN
  33804. --添加日志
  33805. SET @Msg = N'fawry支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  33806. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33807. SET @RetCode = 11
  33808. RETURN
  33809. END
  33810. --判断订单是否有效
  33811. IF(@GetStatus != 0)
  33812. BEGIN
  33813. --添加日志
  33814. SET @Msg = N'fawry支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  33815. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33816. SET @RetCode = 11
  33817. RETURN
  33818. END
  33819. /*
  33820. --判断价格是否正确
  33821. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  33822. BEGIN
  33823. --添加日志
  33824. SET @Msg = N'fawry支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33825. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33826. SET @RetCode = 11
  33827. RETURN
  33828. END
  33829. */
  33830. --判断业务类型是否合法
  33831. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  33832. BEGIN
  33833. --添加日志
  33834. SET @Msg = N'fawry支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33835. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33836. SET @RetCode = 11
  33837. RETURN
  33838. END
  33839. --判断订单是否存在,以免重复加数据
  33840. IF EXISTS(SELECT OrderID FROM [fawryPay] WHERE OrderID = @OrderID)
  33841. BEGIN
  33842. --添加日志
  33843. SET @Msg = N'fawry支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33844. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33845. SET @RetCode = 11
  33846. RETURN
  33847. END
  33848. --先设置订单状态
  33849. UPDATE [fawryOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  33850. IF(@@ROWCOUNT = 0)
  33851. BEGIN
  33852. --添加日志
  33853. SET @Msg = N'fawry支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  33854. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33855. SET @RetCode = 11
  33856. RETURN
  33857. END
  33858. --添加订单记录
  33859. INSERT INTO [fawryPay]
  33860. (
  33861. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  33862. )
  33863. VALUES
  33864. (
  33865. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  33866. )
  33867. --触发充值事件
  33868. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  33869. --成功
  33870. SET @RetCode = 1
  33871. RETURN
  33872. END
  33873. GO
  33874. /****** Object: StoredProcedure [dbo].[Pay_Flash_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  33875. SET ANSI_NULLS ON
  33876. GO
  33877. SET QUOTED_IDENTIFIER ON
  33878. GO
  33879. -- EXEC [Pay_Flash_GenOrder]
  33880. -- ==============================================
  33881. -- Author: wolf
  33882. -- Create Date: 2016-07-21
  33883. -- Mendor: wolf
  33884. -- Alter Date: 2016-11-18
  33885. -- Description: Flash支付充值--生成订单
  33886. -- ==============================================
  33887. CREATE PROCEDURE [dbo].[Pay_Flash_GenOrder]
  33888. @UserID INT, --用户ID
  33889. @Price DECIMAL(18, 2), --价格
  33890. @ProductID VARCHAR(32), --业务类型
  33891. @PartnerID INT, --渠道ID
  33892. @IPAddress VARCHAR(16), --IP地址
  33893. @OrderID VARCHAR(32) OUTPUT --订单号
  33894. AS
  33895. SET NOCOUNT ON
  33896. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  33897. SET XACT_ABORT ON
  33898. BEGIN
  33899. DECLARE @Msg NVARCHAR(4000) --操作描述
  33900. DECLARE @RetCode TINYINT --操作结果
  33901. --表变量
  33902. DECLARE @tmptable TABLE(
  33903. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  33904. UserID INT NOT NULL --用户ID
  33905. )
  33906. SET @RetCode = 0
  33907. --生成数据
  33908. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  33909. --获取订单ID
  33910. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  33911. IF(@@ROWCOUNT = 0)
  33912. BEGIN
  33913. --添加日志
  33914. SET @Msg = N'Flash支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  33915. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33916. SET @OrderID = ''
  33917. RETURN
  33918. END
  33919. --组装成有序的订单
  33920. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  33921. --添加订单信息
  33922. INSERT INTO [FlashOrder]
  33923. (
  33924. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  33925. )
  33926. VALUES
  33927. (
  33928. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  33929. )
  33930. RETURN
  33931. END
  33932. GO
  33933. /****** Object: StoredProcedure [dbo].[Pay_Flash_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  33934. SET ANSI_NULLS ON
  33935. GO
  33936. SET QUOTED_IDENTIFIER ON
  33937. GO
  33938. -- EXEC [Pay_Flash_OrderReq]
  33939. -- ==============================================
  33940. -- Author: wolf
  33941. -- Create Date: 2016-07-21
  33942. -- Mendor: wolf
  33943. -- Alter Date: 2016-11-07
  33944. -- Description: Flash支付--充值
  33945. -- ==============================================
  33946. CREATE PROCEDURE [dbo].[Pay_Flash_OrderReq]
  33947. @OrderID VARCHAR(32), --订单号
  33948. @TradeID VARCHAR(64), --业务流水号
  33949. @Price DECIMAL(18, 2), --价格
  33950. @RetCode TINYINT OUTPUT, --操作结果
  33951. @UserID INT OUTPUT, --用户ID
  33952. @ProductID VARCHAR(32) OUTPUT --产品ID
  33953. AS
  33954. SET NOCOUNT ON
  33955. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  33956. SET XACT_ABORT ON
  33957. BEGIN
  33958. DECLARE @PayPrice DECIMAL(18, 2) --价格
  33959. DECLARE @GetStatus TINYINT --获取状态
  33960. DECLARE @CurrTime DATETIME --系统当前时间
  33961. DECLARE @DateFlag SMALLDATETIME --日期标志
  33962. DECLARE @Msg NVARCHAR(4000) --操作描述
  33963. DECLARE @PartnerID INT --渠道ID
  33964. DECLARE @IPAddress VARCHAR(16) --IP地址
  33965. SET @CurrTime = GETDATE()
  33966. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  33967. SET @IPAddress = ''
  33968. SET @ProductID = ''
  33969. SET @UserID = 0
  33970. SET @RetCode = 0
  33971. --获取订单信息
  33972. SELECT
  33973. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  33974. @IPAddress = IPAddress, @PartnerID = PartnerID
  33975. FROM
  33976. [FlashOrder]
  33977. WHERE
  33978. OrderID = @OrderID
  33979. --判断订单是否有效
  33980. IF(@GetStatus IS NULL)
  33981. BEGIN
  33982. --添加日志
  33983. SET @Msg = N'Flash支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  33984. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33985. SET @RetCode = 11
  33986. RETURN
  33987. END
  33988. --判断订单是否有效
  33989. IF(@GetStatus != 0)
  33990. BEGIN
  33991. --添加日志
  33992. SET @Msg = N'Flash支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  33993. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  33994. SET @RetCode = 11
  33995. RETURN
  33996. END
  33997. --判断业务类型是否合法
  33998. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  33999. BEGIN
  34000. --添加日志
  34001. SET @Msg = N'Flash支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34002. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34003. SET @RetCode = 11
  34004. RETURN
  34005. END
  34006. --判断订单是否存在,以免重复加数据
  34007. IF EXISTS(SELECT OrderID FROM [FlashPay] WHERE OrderID = @OrderID)
  34008. BEGIN
  34009. --添加日志
  34010. SET @Msg = N'Flash支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34011. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34012. SET @RetCode = 11
  34013. RETURN
  34014. END
  34015. --先设置订单状态
  34016. UPDATE [FlashOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  34017. IF(@@ROWCOUNT = 0)
  34018. BEGIN
  34019. --添加日志
  34020. SET @Msg = N'Flash支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34021. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34022. SET @RetCode = 11
  34023. RETURN
  34024. END
  34025. --添加订单记录
  34026. INSERT INTO [FlashPay]
  34027. (
  34028. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  34029. )
  34030. VALUES
  34031. (
  34032. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  34033. )
  34034. --成功
  34035. SET @RetCode = 1
  34036. RETURN
  34037. END
  34038. GO
  34039. /****** Object: StoredProcedure [dbo].[Pay_FlashWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
  34040. SET ANSI_NULLS ON
  34041. GO
  34042. SET QUOTED_IDENTIFIER ON
  34043. GO
  34044. -- EXEC [Pay_FlashWithdraw_Notify]
  34045. -- ==============================================
  34046. -- Author: wolf
  34047. -- Create Date: 2016-07-21
  34048. -- Mendor: wolf
  34049. -- Alter Date: 2016-11-07
  34050. -- Description: Flash支付--提现通知
  34051. -- ==============================================
  34052. CREATE PROCEDURE [dbo].[Pay_FlashWithdraw_Notify]
  34053. @OrderID VARCHAR(32), --订单号
  34054. @DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
  34055. @Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
  34056. @DfDesc VARCHAR(256), --代付状态描述
  34057. @Balance INT --余额
  34058. AS
  34059. SET NOCOUNT ON
  34060. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  34061. SET XACT_ABORT ON
  34062. BEGIN
  34063. DECLARE @UserID INT --用户ID
  34064. DECLARE @Amount INT --提现金额
  34065. DECLARE @RealAmount INT --实际金额(含费用)
  34066. DECLARE @Surcharge INT --手续费
  34067. DECLARE @Msg NVARCHAR(4000) --消息
  34068. DECLARE @RetCode TINYINT --操作结果
  34069. DECLARE @CurrTime DATETIME --系统当前时间
  34070. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
  34071. --11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
  34072. SET @RetCode = 0
  34073. SET @CurrTime = GETDATE()
  34074. --更新状态
  34075. UPDATE
  34076. [FlashWithdraw]
  34077. SET
  34078. @UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
  34079. GetStatus = CASE
  34080. WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
  34081. WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
  34082. WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
  34083. WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
  34084. WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
  34085. WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
  34086. ELSE 255 --未知
  34087. END,
  34088. DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
  34089. WHERE
  34090. OrderID = @OrderID
  34091. IF(@@ROWCOUNT = 0)
  34092. BEGIN
  34093. SET @Msg = N'Pay_FlashWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
  34094. ',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
  34095. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
  34096. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  34097. RETURN
  34098. END
  34099. --失败,直接返回
  34100. IF(@Status IS NULL OR @Status NOT IN(1, 2))
  34101. BEGIN
  34102. --返回订单信息
  34103. SET @RetCode = 2
  34104. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  34105. RETURN
  34106. END
  34107. --不是成功状态
  34108. IF(@Status != 1)
  34109. BEGIN
  34110. SET @RetCode = 11
  34111. --返回订单信息
  34112. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  34113. RETURN
  34114. END
  34115. SET @RetCode = 1
  34116. --返回订单信息
  34117. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  34118. RETURN
  34119. END
  34120. GO
  34121. /****** Object: StoredProcedure [dbo].[Pay_FlashWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
  34122. SET ANSI_NULLS ON
  34123. GO
  34124. SET QUOTED_IDENTIFIER ON
  34125. GO
  34126. -- EXEC [Pay_FlashWithdraw_Req]
  34127. -- ==============================================
  34128. -- Author: wolf
  34129. -- Create Date: 2016-07-21
  34130. -- Mendor: wolf
  34131. -- Alter Date: 2016-11-07
  34132. -- Description: Flash支付--提现申请
  34133. -- ==============================================
  34134. CREATE PROCEDURE [dbo].[Pay_FlashWithdraw_Req]
  34135. @UserID int, --用户ID
  34136. @Amount INT, --提现金额
  34137. @RealName VARCHAR(128), --真实姓名
  34138. @BankCard VARCHAR(32), --银行卡
  34139. @BankName VARCHAR(128), --银行名称
  34140. @Mobile VARCHAR(32), --电话
  34141. @EMail VARCHAR(64), --email
  34142. @Address VARCHAR(256), --地址
  34143. @IPAddress VARCHAR(16) --IP地址
  34144. AS
  34145. SET NOCOUNT ON
  34146. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  34147. SET XACT_ABORT ON
  34148. BEGIN
  34149. DECLARE @CurrTime DATETIME --系统当前时间
  34150. DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
  34151. DECLARE @OrderID VARCHAR(32) --订单号
  34152. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
  34153. DECLARE @RealAmount INT --实际提现的金额(扣除费率)
  34154. DECLARE @Tel VARCHAR(32) --手机号
  34155. DECLARE @Surcharge INT --手续费
  34156. --表变量
  34157. DECLARE @tmptable TABLE(
  34158. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
  34159. UserID INT NOT NULL --用户ID
  34160. )
  34161. SET @RetCode = 0
  34162. SET @CurrTime = GETDATE()
  34163. SET @OrderID = ''
  34164. SET @GetStatus = 0
  34165. SET @Surcharge = 0
  34166. SET @RealAmount = 0
  34167. SET @Tel = ''
  34168. IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
  34169. BEGIN
  34170. SET @RetCode = 11
  34171. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  34172. RETURN
  34173. END
  34174. --生成数据
  34175. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  34176. --获取后台订单ID
  34177. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  34178. --组装成有序的订单
  34179. SET @OrderID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
  34180. --实际提取金额=提取金额-手续费
  34181. SET @RealAmount = @Amount - @Surcharge
  34182. --生成订单
  34183. INSERT INTO [FlashWithdraw]
  34184. (
  34185. OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
  34186. RealName, BankCard, BankName, Mobile, EMail, Address
  34187. )
  34188. VALUES
  34189. (
  34190. @OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
  34191. @RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
  34192. )
  34193. --操作结果
  34194. SET @RetCode = 1
  34195. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  34196. RETURN
  34197. END
  34198. GO
  34199. /****** Object: StoredProcedure [dbo].[Pay_Google_AddLog] Script Date: 2024/1/12 11:01:14 ******/
  34200. SET ANSI_NULLS ON
  34201. GO
  34202. SET QUOTED_IDENTIFIER ON
  34203. GO
  34204. -- EXEC [Pay_Google_AddLog]
  34205. -- ==============================================
  34206. -- Author: wolf
  34207. -- Create Date: 2016-07-21
  34208. -- Mendor: wolf
  34209. -- Alter Date: 2016-11-07
  34210. -- Description: google 添加日志
  34211. -- ==============================================
  34212. CREATE PROCEDURE [dbo].[Pay_Google_AddLog]
  34213. @UserID INT, --用户ID
  34214. @ProductID VARCHAR(32), --产品ID
  34215. @Price DECIMAL(18, 2), --价格
  34216. @PartnerID INT, --渠道ID
  34217. @Token VARCHAR(256), --token
  34218. @IPAddress VARCHAR(16) --IP地址
  34219. AS
  34220. SET NOCOUNT ON
  34221. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  34222. SET XACT_ABORT ON
  34223. BEGIN
  34224. INSERT INTO [GoogleLog]
  34225. (
  34226. UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
  34227. )
  34228. VALUES
  34229. (
  34230. @UserID, @ProductID, @Price, @PartnerID, @Token, @IPAddress, GETDATE()
  34231. )
  34232. RETURN
  34233. END
  34234. GO
  34235. /****** Object: StoredProcedure [dbo].[Pay_Google_AddSuccessLog] Script Date: 2024/1/12 11:01:14 ******/
  34236. SET ANSI_NULLS ON
  34237. GO
  34238. SET QUOTED_IDENTIFIER ON
  34239. GO
  34240. -- EXEC [Pay_Google_AddSuccessLog]
  34241. -- ==============================================
  34242. -- Author: wolf
  34243. -- Create Date: 2016-07-21
  34244. -- Mendor: wolf
  34245. -- Alter Date: 2016-11-07
  34246. -- Description: google 添加成功日志
  34247. -- ==============================================
  34248. CREATE PROCEDURE [dbo].[Pay_Google_AddSuccessLog]
  34249. @UserID INT, --用户ID
  34250. @ProductID VARCHAR(32), --产品ID
  34251. @Price DECIMAL(18, 2), --价格
  34252. @PartnerID INT, --渠道ID
  34253. @Token VARCHAR(256), --token
  34254. @ResponseIAP VARCHAR(1024), --响应信息
  34255. @IPAddress VARCHAR(16), --IP地址
  34256. @RetCode TINYINT OUTPUT --操作结果
  34257. AS
  34258. SET NOCOUNT ON
  34259. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  34260. SET XACT_ABORT ON
  34261. BEGIN
  34262. DECLARE @PayPrice DECIMAL(18, 2) --RMB
  34263. DECLARE @CurrTime DATETIME --系统当前时间
  34264. DECLARE @Msg NVARCHAR(4000) --消息
  34265. SET @RetCode = 0
  34266. SET @CurrTime = GETDATE()
  34267. --校验产品信息
  34268. EXEC [Pay_Product_Check] @UserID = @UserID, @OrderID = @Token, @ProductID = @ProductID, @PayName = 'Google',
  34269. @IPAddress = @IPAddress, @Price = @PayPrice OUTPUT
  34270. --判断是否有产品
  34271. IF(@PayPrice IS NULL OR @PayPrice <= 0)
  34272. BEGIN
  34273. --添加日志
  34274. SET @Msg = N'Google充值,价格非法,关联的信息:@Token=' + @Token + ',@UserID=' + LTRIM(STR(@UserID)) +
  34275. ',@ProductID=' + @ProductID + ',@PartnerID=' + LTRIM(STR(@PartnerID))
  34276. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34277. SET @RetCode = 12
  34278. RETURN
  34279. END
  34280. --因为收据并非一次校验有效,所以如果成功记录表中已经包含相同的 token
  34281. --则认为无效,插入一条记录至校验失败表
  34282. IF EXISTS(SELECT Token FROM [GoogleSuccessLog] WHERE Token = @Token)
  34283. BEGIN
  34284. --添加日志
  34285. SET @Msg = N'Google充值,重复处理,关联的信息:@Token=' + @Token + ',@UserID=' + LTRIM(STR(@UserID)) +
  34286. ',@ProductID=' + @ProductID + ',@PartnerID=' + LTRIM(STR(@PartnerID))
  34287. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34288. SET @RetCode = 11
  34289. RETURN
  34290. END
  34291. --添加校验成功记录
  34292. INSERT INTO [GoogleSuccessLog]
  34293. (
  34294. Token, UserID, ProductID, Price, PartnerID, ResponseIAP, IPAddress, Crdate
  34295. )
  34296. VALUES
  34297. (
  34298. @Token, @UserID, @ProductID, @PayPrice, @PartnerID, @ResponseIAP, @IPAddress, GETDATE()
  34299. )
  34300. --触发充值事件
  34301. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  34302. --操作成功
  34303. SET @RetCode = 1
  34304. RETURN
  34305. END
  34306. GO
  34307. /****** Object: StoredProcedure [dbo].[Pay_HuaweiPay_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  34308. SET ANSI_NULLS ON
  34309. GO
  34310. SET QUOTED_IDENTIFIER ON
  34311. GO
  34312. -- EXEC [Pay_HuaweiPay_GenOrder]
  34313. -- ==============================================
  34314. -- Author: wolf
  34315. -- Create Date: 2016-07-21
  34316. -- Mendor: wolf
  34317. -- Alter Date: 2016-11-18
  34318. -- Description: 华为支付充值--生成订单
  34319. -- ==============================================
  34320. CREATE PROCEDURE [dbo].[Pay_HuaweiPay_GenOrder]
  34321. @UserID INT, --用户ID
  34322. @Price DECIMAL(18, 2), --价格
  34323. @ProductID VARCHAR(32), --业务类型
  34324. @PartnerID INT, --渠道ID
  34325. @IPAddress VARCHAR(16), --IP地址
  34326. @OrderID VARCHAR(32) OUTPUT --订单号
  34327. AS
  34328. SET NOCOUNT ON
  34329. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  34330. SET XACT_ABORT ON
  34331. BEGIN
  34332. DECLARE @Msg NVARCHAR(4000) --操作描述
  34333. DECLARE @RetCode TINYINT --操作结果
  34334. --表变量
  34335. DECLARE @tmptable TABLE(
  34336. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  34337. UserID INT NOT NULL --用户ID
  34338. )
  34339. SET @RetCode = 0
  34340. --生成数据
  34341. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  34342. --获取订单ID
  34343. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  34344. IF(@@ROWCOUNT = 0)
  34345. BEGIN
  34346. --添加日志
  34347. SET @Msg = N'华为支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  34348. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34349. SET @OrderID = ''
  34350. RETURN
  34351. END
  34352. --组装成有序的订单
  34353. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  34354. --添加订单信息
  34355. INSERT INTO [huaweiOrder]
  34356. (
  34357. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  34358. )
  34359. VALUES
  34360. (
  34361. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  34362. )
  34363. RETURN
  34364. END
  34365. GO
  34366. /****** Object: StoredProcedure [dbo].[Pay_HuaweiPay_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  34367. SET ANSI_NULLS ON
  34368. GO
  34369. SET QUOTED_IDENTIFIER ON
  34370. GO
  34371. -- EXEC [Pay_HuaweiPay_OrderReq]
  34372. -- ==============================================
  34373. -- Author: wolf
  34374. -- Create Date: 2016-07-21
  34375. -- Mendor: wolf
  34376. -- Alter Date: 2016-11-07
  34377. -- Description: 华为支付--充值
  34378. -- ==============================================
  34379. CREATE PROCEDURE [dbo].[Pay_HuaweiPay_OrderReq]
  34380. @OrderID VARCHAR(32), --订单号
  34381. @TradeID VARCHAR(64), --业务流水号
  34382. @Price DECIMAL(18, 2), --价格
  34383. @RetCode TINYINT OUTPUT, --操作结果
  34384. @UserID INT OUTPUT, --用户ID
  34385. @ProductID VARCHAR(32) OUTPUT --产品ID
  34386. AS
  34387. SET NOCOUNT ON
  34388. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  34389. SET XACT_ABORT ON
  34390. BEGIN
  34391. DECLARE @PayPrice DECIMAL(18, 2) --价格
  34392. DECLARE @GetStatus TINYINT --获取状态
  34393. DECLARE @CurrTime DATETIME --系统当前时间
  34394. DECLARE @DateFlag SMALLDATETIME --日期标志
  34395. DECLARE @Msg NVARCHAR(4000) --操作描述
  34396. DECLARE @PartnerID INT --渠道ID
  34397. DECLARE @IPAddress VARCHAR(16) --IP地址
  34398. SET @CurrTime = GETDATE()
  34399. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  34400. SET @IPAddress = ''
  34401. SET @ProductID = ''
  34402. SET @UserID = 0
  34403. SET @RetCode = 0
  34404. --获取订单信息
  34405. SELECT
  34406. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  34407. @IPAddress = IPAddress, @PartnerID = PartnerID
  34408. FROM
  34409. [huaweiOrder]
  34410. WHERE
  34411. OrderID = @OrderID
  34412. --判断订单是否有效
  34413. IF(@GetStatus IS NULL)
  34414. BEGIN
  34415. --添加日志
  34416. SET @Msg = N'华为支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  34417. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34418. SET @RetCode = 11
  34419. RETURN
  34420. END
  34421. --判断订单是否有效
  34422. IF(@GetStatus != 0)
  34423. BEGIN
  34424. --添加日志
  34425. SET @Msg = N'华为支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  34426. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34427. SET @RetCode = 11
  34428. RETURN
  34429. END
  34430. /*
  34431. --判断价格是否正确
  34432. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  34433. BEGIN
  34434. --添加日志
  34435. SET @Msg = N'华为支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34436. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34437. SET @RetCode = 11
  34438. RETURN
  34439. END
  34440. */
  34441. --判断业务类型是否合法
  34442. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  34443. BEGIN
  34444. --添加日志
  34445. SET @Msg = N'华为支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34446. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34447. SET @RetCode = 11
  34448. RETURN
  34449. END
  34450. --判断订单是否存在,以免重复加数据
  34451. IF EXISTS(SELECT OrderID FROM [huaweiPay] WHERE OrderID = @OrderID)
  34452. BEGIN
  34453. --添加日志
  34454. SET @Msg = N'华为支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34455. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34456. SET @RetCode = 11
  34457. RETURN
  34458. END
  34459. --先设置订单状态
  34460. UPDATE [huaweiOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  34461. IF(@@ROWCOUNT = 0)
  34462. BEGIN
  34463. --添加日志
  34464. SET @Msg = N'华为支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34465. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34466. SET @RetCode = 11
  34467. RETURN
  34468. END
  34469. --添加订单记录
  34470. INSERT INTO [huaweiPay]
  34471. (
  34472. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  34473. )
  34474. VALUES
  34475. (
  34476. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  34477. )
  34478. --触发充值事件
  34479. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  34480. --成功
  34481. SET @RetCode = 1
  34482. RETURN
  34483. END
  34484. GO
  34485. /****** Object: StoredProcedure [dbo].[Pay_Kaya_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  34486. SET ANSI_NULLS ON
  34487. GO
  34488. SET QUOTED_IDENTIFIER ON
  34489. GO
  34490. -- EXEC [Pay_Kaya_GenOrder]
  34491. -- ==============================================
  34492. -- Author: wolf
  34493. -- Create Date: 2016-07-21
  34494. -- Mendor: wolf
  34495. -- Alter Date: 2016-11-18
  34496. -- Description: Kaya支付充值--生成订单
  34497. -- ==============================================
  34498. CREATE PROCEDURE [dbo].[Pay_Kaya_GenOrder]
  34499. @UserID INT, --用户ID
  34500. @Price DECIMAL(18, 2), --价格
  34501. @ProductID VARCHAR(32), --业务类型
  34502. @PartnerID INT, --渠道ID
  34503. @IPAddress VARCHAR(16), --IP地址
  34504. @OrderID VARCHAR(32) OUTPUT --订单号
  34505. AS
  34506. SET NOCOUNT ON
  34507. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  34508. SET XACT_ABORT ON
  34509. BEGIN
  34510. DECLARE @Msg NVARCHAR(4000) --操作描述
  34511. DECLARE @RetCode TINYINT --操作结果
  34512. --表变量
  34513. DECLARE @tmptable TABLE(
  34514. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  34515. UserID INT NOT NULL --用户ID
  34516. )
  34517. SET @RetCode = 0
  34518. --生成数据
  34519. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  34520. --获取订单ID
  34521. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  34522. IF(@@ROWCOUNT = 0)
  34523. BEGIN
  34524. --添加日志
  34525. SET @Msg = N'Kaya支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  34526. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34527. SET @OrderID = ''
  34528. RETURN
  34529. END
  34530. --组装成有序的订单
  34531. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  34532. --添加订单信息
  34533. INSERT INTO [KayaOrder]
  34534. (
  34535. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  34536. )
  34537. VALUES
  34538. (
  34539. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  34540. )
  34541. RETURN
  34542. END
  34543. GO
  34544. /****** Object: StoredProcedure [dbo].[Pay_Kaya_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  34545. SET ANSI_NULLS ON
  34546. GO
  34547. SET QUOTED_IDENTIFIER ON
  34548. GO
  34549. -- EXEC [Pay_Kaya_OrderReq]
  34550. -- ==============================================
  34551. -- Author: wolf
  34552. -- Create Date: 2016-07-21
  34553. -- Mendor: wolf
  34554. -- Alter Date: 2016-11-07
  34555. -- Description: Kaya支付--充值
  34556. -- ==============================================
  34557. CREATE PROCEDURE [dbo].[Pay_Kaya_OrderReq]
  34558. @OrderID VARCHAR(32), --订单号
  34559. @TradeID VARCHAR(64), --业务流水号
  34560. @Price DECIMAL(18, 2), --价格
  34561. @RetCode TINYINT OUTPUT, --操作结果
  34562. @UserID INT OUTPUT, --用户ID
  34563. @ProductID VARCHAR(32) OUTPUT --产品ID
  34564. AS
  34565. SET NOCOUNT ON
  34566. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  34567. SET XACT_ABORT ON
  34568. BEGIN
  34569. DECLARE @PayPrice DECIMAL(18, 2) --价格
  34570. DECLARE @GetStatus TINYINT --获取状态
  34571. DECLARE @CurrTime DATETIME --系统当前时间
  34572. DECLARE @DateFlag SMALLDATETIME --日期标志
  34573. DECLARE @Msg NVARCHAR(4000) --操作描述
  34574. DECLARE @PartnerID INT --渠道ID
  34575. DECLARE @IPAddress VARCHAR(16) --IP地址
  34576. SET @CurrTime = GETDATE()
  34577. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  34578. SET @IPAddress = ''
  34579. SET @ProductID = ''
  34580. SET @UserID = 0
  34581. SET @RetCode = 0
  34582. --获取订单信息
  34583. SELECT
  34584. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  34585. @IPAddress = IPAddress, @PartnerID = PartnerID
  34586. FROM
  34587. [KayaOrder]
  34588. WHERE
  34589. OrderID = @OrderID
  34590. --判断订单是否有效
  34591. IF(@GetStatus IS NULL)
  34592. BEGIN
  34593. --添加日志
  34594. SET @Msg = N'Kaya支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  34595. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34596. SET @RetCode = 11
  34597. RETURN
  34598. END
  34599. --判断订单是否有效
  34600. IF(@GetStatus != 0)
  34601. BEGIN
  34602. --添加日志
  34603. SET @Msg = N'Kaya支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  34604. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34605. SET @RetCode = 11
  34606. RETURN
  34607. END
  34608. --判断业务类型是否合法
  34609. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  34610. BEGIN
  34611. --添加日志
  34612. SET @Msg = N'Kaya支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34613. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34614. SET @RetCode = 11
  34615. RETURN
  34616. END
  34617. --判断订单是否存在,以免重复加数据
  34618. IF EXISTS(SELECT OrderID FROM [KayaPay] WHERE OrderID = @OrderID)
  34619. BEGIN
  34620. --添加日志
  34621. SET @Msg = N'Kaya支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34622. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34623. SET @RetCode = 11
  34624. RETURN
  34625. END
  34626. --先设置订单状态
  34627. UPDATE [KayaOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  34628. IF(@@ROWCOUNT = 0)
  34629. BEGIN
  34630. --添加日志
  34631. SET @Msg = N'Kaya支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34632. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34633. SET @RetCode = 11
  34634. RETURN
  34635. END
  34636. --添加订单记录
  34637. INSERT INTO [KayaPay]
  34638. (
  34639. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  34640. )
  34641. VALUES
  34642. (
  34643. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  34644. )
  34645. --成功
  34646. SET @RetCode = 1
  34647. RETURN
  34648. END
  34649. GO
  34650. /****** Object: StoredProcedure [dbo].[Pay_KayaWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
  34651. SET ANSI_NULLS ON
  34652. GO
  34653. SET QUOTED_IDENTIFIER ON
  34654. GO
  34655. -- EXEC [Pay_KayaWithdraw_Notify]
  34656. -- ==============================================
  34657. -- Author: wolf
  34658. -- Create Date: 2016-07-21
  34659. -- Mendor: wolf
  34660. -- Alter Date: 2016-11-07
  34661. -- Description: Kaya支付--提现通知
  34662. -- ==============================================
  34663. CREATE PROCEDURE [dbo].[Pay_KayaWithdraw_Notify]
  34664. @OrderID VARCHAR(32), --订单号
  34665. @DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
  34666. @Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
  34667. @DfDesc VARCHAR(256), --代付状态描述
  34668. @Balance INT --余额
  34669. AS
  34670. SET NOCOUNT ON
  34671. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  34672. SET XACT_ABORT ON
  34673. BEGIN
  34674. DECLARE @UserID INT --用户ID
  34675. DECLARE @Amount INT --提现金额
  34676. DECLARE @RealAmount INT --实际金额(含费用)
  34677. DECLARE @Surcharge INT --手续费
  34678. DECLARE @Msg NVARCHAR(4000) --消息
  34679. DECLARE @RetCode TINYINT --操作结果
  34680. DECLARE @CurrTime DATETIME --系统当前时间
  34681. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
  34682. --11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
  34683. SET @RetCode = 0
  34684. SET @CurrTime = GETDATE()
  34685. --更新状态
  34686. UPDATE
  34687. [KayaWithdraw]
  34688. SET
  34689. @UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
  34690. GetStatus = CASE
  34691. WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
  34692. WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
  34693. WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
  34694. WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
  34695. WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
  34696. WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
  34697. ELSE 255 --未知
  34698. END,
  34699. DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
  34700. WHERE
  34701. OrderID = @OrderID
  34702. IF(@@ROWCOUNT = 0)
  34703. BEGIN
  34704. SET @Msg = N'Pay_KayaWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
  34705. ',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
  34706. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
  34707. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  34708. RETURN
  34709. END
  34710. --失败,直接返回
  34711. IF(@Status IS NULL OR @Status NOT IN(1, 2))
  34712. BEGIN
  34713. --返回订单信息
  34714. SET @RetCode = 2
  34715. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  34716. RETURN
  34717. END
  34718. --不是成功状态
  34719. IF(@Status != 1)
  34720. BEGIN
  34721. SET @RetCode = 11
  34722. --返回订单信息
  34723. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  34724. RETURN
  34725. END
  34726. SET @RetCode = 1
  34727. --返回订单信息
  34728. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  34729. RETURN
  34730. END
  34731. GO
  34732. /****** Object: StoredProcedure [dbo].[Pay_KayaWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
  34733. SET ANSI_NULLS ON
  34734. GO
  34735. SET QUOTED_IDENTIFIER ON
  34736. GO
  34737. -- EXEC [Pay_KayaWithdraw_Req]
  34738. -- ==============================================
  34739. -- Author: wolf
  34740. -- Create Date: 2016-07-21
  34741. -- Mendor: wolf
  34742. -- Alter Date: 2016-11-07
  34743. -- Description: Kaya支付--提现申请
  34744. -- ==============================================
  34745. CREATE PROCEDURE [dbo].[Pay_KayaWithdraw_Req]
  34746. @UserID int, --用户ID
  34747. @Amount INT, --提现金额
  34748. @RealName VARCHAR(128), --真实姓名
  34749. @BankCard VARCHAR(32), --银行卡
  34750. @BankName VARCHAR(128), --银行名称
  34751. @Mobile VARCHAR(32), --电话
  34752. @EMail VARCHAR(64), --email
  34753. @Address VARCHAR(256), --地址
  34754. @IPAddress VARCHAR(16) --IP地址
  34755. AS
  34756. SET NOCOUNT ON
  34757. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  34758. SET XACT_ABORT ON
  34759. BEGIN
  34760. DECLARE @CurrTime DATETIME --系统当前时间
  34761. DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
  34762. DECLARE @OrderID VARCHAR(32) --订单号
  34763. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
  34764. DECLARE @RealAmount INT --实际提现的金额(扣除费率)
  34765. DECLARE @Tel VARCHAR(32) --手机号
  34766. DECLARE @Surcharge INT --手续费
  34767. --表变量
  34768. DECLARE @tmptable TABLE(
  34769. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
  34770. UserID INT NOT NULL --用户ID
  34771. )
  34772. SET @RetCode = 0
  34773. SET @CurrTime = GETDATE()
  34774. SET @OrderID = ''
  34775. SET @GetStatus = 0
  34776. SET @Surcharge = 0
  34777. SET @RealAmount = 0
  34778. SET @Tel = ''
  34779. IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
  34780. BEGIN
  34781. SET @RetCode = 11
  34782. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  34783. RETURN
  34784. END
  34785. --生成数据
  34786. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  34787. --获取后台订单ID
  34788. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  34789. --组装成有序的订单
  34790. SET @OrderID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
  34791. --实际提取金额=提取金额-手续费
  34792. SET @RealAmount = @Amount - @Surcharge
  34793. --生成订单
  34794. INSERT INTO [KayaWithdraw]
  34795. (
  34796. OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
  34797. RealName, BankCard, BankName, Mobile, EMail, Address
  34798. )
  34799. VALUES
  34800. (
  34801. @OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
  34802. @RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
  34803. )
  34804. --操作结果
  34805. SET @RetCode = 1
  34806. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  34807. RETURN
  34808. END
  34809. GO
  34810. /****** Object: StoredProcedure [dbo].[Pay_LaPay_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  34811. SET ANSI_NULLS ON
  34812. GO
  34813. SET QUOTED_IDENTIFIER ON
  34814. GO
  34815. -- EXEC [Pay_LaPay_GenOrder]
  34816. -- ==============================================
  34817. -- Author: wolf
  34818. -- Create Date: 2016-07-21
  34819. -- Mendor: wolf
  34820. -- Alter Date: 2016-11-18
  34821. -- Description: La支付充值--生成订单
  34822. -- ==============================================
  34823. CREATE PROCEDURE [dbo].[Pay_LaPay_GenOrder]
  34824. @UserID INT, --用户ID
  34825. @Price DECIMAL(18, 2), --价格
  34826. @ProductID VARCHAR(32), --业务类型
  34827. @PartnerID INT, --渠道ID
  34828. @IPAddress VARCHAR(16), --IP地址
  34829. @OrderID VARCHAR(32) OUTPUT --订单号
  34830. AS
  34831. SET NOCOUNT ON
  34832. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  34833. SET XACT_ABORT ON
  34834. BEGIN
  34835. DECLARE @Msg NVARCHAR(4000) --操作描述
  34836. DECLARE @RetCode TINYINT --操作结果
  34837. --表变量
  34838. DECLARE @tmptable TABLE(
  34839. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  34840. UserID INT NOT NULL --用户ID
  34841. )
  34842. SET @RetCode = 0
  34843. --生成数据
  34844. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  34845. --获取订单ID
  34846. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  34847. IF(@@ROWCOUNT = 0)
  34848. BEGIN
  34849. --添加日志
  34850. SET @Msg = N'La支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  34851. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34852. SET @OrderID = ''
  34853. RETURN
  34854. END
  34855. --组装成有序的订单
  34856. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  34857. --添加订单信息
  34858. INSERT INTO [LaOrder]
  34859. (
  34860. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  34861. )
  34862. VALUES
  34863. (
  34864. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  34865. )
  34866. RETURN
  34867. END
  34868. GO
  34869. /****** Object: StoredProcedure [dbo].[Pay_LaPay_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  34870. SET ANSI_NULLS ON
  34871. GO
  34872. SET QUOTED_IDENTIFIER ON
  34873. GO
  34874. -- EXEC [Pay_LaPay_OrderReq]
  34875. -- ==============================================
  34876. -- Author: wolf
  34877. -- Create Date: 2016-07-21
  34878. -- Mendor: wolf
  34879. -- Alter Date: 2016-11-07
  34880. -- Description: La支付--充值
  34881. -- ==============================================
  34882. CREATE PROCEDURE [dbo].[Pay_LaPay_OrderReq]
  34883. @OrderID VARCHAR(32), --订单号
  34884. @TradeID VARCHAR(64), --业务流水号
  34885. @Price DECIMAL(18, 2), --价格
  34886. @RetCode TINYINT OUTPUT, --操作结果
  34887. @UserID INT OUTPUT, --用户ID
  34888. @ProductID VARCHAR(32) OUTPUT --产品ID
  34889. AS
  34890. SET NOCOUNT ON
  34891. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  34892. SET XACT_ABORT ON
  34893. BEGIN
  34894. DECLARE @PayPrice DECIMAL(18, 2) --价格
  34895. DECLARE @GetStatus TINYINT --获取状态
  34896. DECLARE @CurrTime DATETIME --系统当前时间
  34897. DECLARE @DateFlag SMALLDATETIME --日期标志
  34898. DECLARE @Msg NVARCHAR(4000) --操作描述
  34899. DECLARE @PartnerID INT --渠道ID
  34900. DECLARE @IPAddress VARCHAR(16) --IP地址
  34901. SET @CurrTime = GETDATE()
  34902. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  34903. SET @IPAddress = ''
  34904. SET @ProductID = ''
  34905. SET @UserID = 0
  34906. SET @RetCode = 0
  34907. --获取订单信息
  34908. SELECT
  34909. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  34910. @IPAddress = IPAddress, @PartnerID = PartnerID
  34911. FROM
  34912. [LaOrder]
  34913. WHERE
  34914. OrderID = @OrderID
  34915. --判断订单是否有效
  34916. IF(@GetStatus IS NULL)
  34917. BEGIN
  34918. --添加日志
  34919. SET @Msg = N'La支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  34920. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34921. SET @RetCode = 11
  34922. RETURN
  34923. END
  34924. --判断订单是否有效
  34925. IF(@GetStatus != 0)
  34926. BEGIN
  34927. --添加日志
  34928. SET @Msg = N'La支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  34929. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34930. SET @RetCode = 11
  34931. RETURN
  34932. END
  34933. /*
  34934. --判断价格是否正确
  34935. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  34936. BEGIN
  34937. --添加日志
  34938. SET @Msg = N'La支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34939. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34940. SET @RetCode = 11
  34941. RETURN
  34942. END
  34943. */
  34944. --判断业务类型是否合法
  34945. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  34946. BEGIN
  34947. --添加日志
  34948. SET @Msg = N'La支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34949. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34950. SET @RetCode = 11
  34951. RETURN
  34952. END
  34953. --判断订单是否存在,以免重复加数据
  34954. IF EXISTS(SELECT OrderID FROM [LaPay] WHERE OrderID = @OrderID)
  34955. BEGIN
  34956. --添加日志
  34957. SET @Msg = N'La支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34958. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34959. SET @RetCode = 11
  34960. RETURN
  34961. END
  34962. --先设置订单状态
  34963. UPDATE [LaOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  34964. IF(@@ROWCOUNT = 0)
  34965. BEGIN
  34966. --添加日志
  34967. SET @Msg = N'La支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  34968. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  34969. SET @RetCode = 11
  34970. RETURN
  34971. END
  34972. --添加订单记录
  34973. INSERT INTO [LaPay]
  34974. (
  34975. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  34976. )
  34977. VALUES
  34978. (
  34979. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  34980. )
  34981. --触发充值事件
  34982. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  34983. --成功
  34984. SET @RetCode = 1
  34985. RETURN
  34986. END
  34987. GO
  34988. /****** Object: StoredProcedure [dbo].[Pay_Manual_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  34989. SET ANSI_NULLS ON
  34990. GO
  34991. SET QUOTED_IDENTIFIER ON
  34992. GO
  34993. -- EXEC [Pay_Manual_OrderReq]
  34994. -- ==============================================
  34995. -- Author: wolf
  34996. -- Create Date: 2016-07-21
  34997. -- Mendor: wolf
  34998. -- Alter Date: 2016-11-07
  34999. -- Description: 手动充值
  35000. -- ==============================================
  35001. CREATE PROCEDURE [dbo].[Pay_Manual_OrderReq]
  35002. @OpUserID INT, --操作员ID
  35003. @OpUserName VARCHAR(32), --操作员名称
  35004. @OrderID VARCHAR(32), --订单号
  35005. @UserID INT OUTPUT, --用户ID
  35006. @ProductID VARCHAR(32), --产品ID
  35007. @Price DECIMAL(18, 2), --价格
  35008. @IPAddress VARCHAR(16), --IP地址
  35009. @RetCode TINYINT OUTPUT --操作结果
  35010. AS
  35011. SET NOCOUNT ON
  35012. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35013. SET XACT_ABORT ON
  35014. BEGIN
  35015. DECLARE @PayPrice DECIMAL(18, 2) --价格
  35016. DECLARE @Msg NVARCHAR(4000) --操作描述
  35017. --表变量
  35018. DECLARE @tmptable TABLE(
  35019. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  35020. UserID INT NOT NULL --用户ID
  35021. )
  35022. SET @RetCode = 0
  35023. --订单
  35024. IF(LEN(@OrderID) <= 0)
  35025. BEGIN
  35026. --生成数据
  35027. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  35028. --获取订单ID
  35029. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  35030. IF(@@ROWCOUNT = 0)
  35031. BEGIN
  35032. --添加日志
  35033. SET @Msg = N'手动生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  35034. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35035. RETURN
  35036. END
  35037. --组装成有序的订单
  35038. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  35039. END
  35040. --已存在
  35041. IF EXISTS(SELECT OrderID FROM [ManualPay] WHERE OrderID = @OrderID)
  35042. BEGIN
  35043. --添加日志
  35044. SET @Msg = N'手动充值,重复处理,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  35045. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35046. SET @RetCode = 11
  35047. RETURN
  35048. END
  35049. --校验产品信息
  35050. EXEC [Pay_Product_Check] @UserID = @UserID, @OrderID = @OrderID, @ProductID = @ProductID, @PayName = 'Manual',
  35051. @IPAddress = @IPAddress, @Price = @PayPrice OUTPUT
  35052. --判断是否有产品
  35053. IF(@PayPrice IS NULL OR @PayPrice <= 0 OR @Price != @PayPrice)
  35054. BEGIN
  35055. --添加日志
  35056. SET @Msg = N'手动充值,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  35057. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35058. SET @RetCode = 12
  35059. RETURN
  35060. END
  35061. --添加订单记录
  35062. INSERT INTO [ManualPay]
  35063. (
  35064. OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
  35065. )
  35066. VALUES
  35067. (
  35068. @OrderID, @UserID, @ProductID, @Price, @OpUserID, @OpUserName, GETDATE()
  35069. )
  35070. --触发充值事件
  35071. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @Price, @IPAddress = @IPAddress
  35072. --成功
  35073. SET @RetCode = 1
  35074. RETURN
  35075. END
  35076. GO
  35077. /****** Object: StoredProcedure [dbo].[Pay_OPay_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  35078. SET ANSI_NULLS ON
  35079. GO
  35080. SET QUOTED_IDENTIFIER ON
  35081. GO
  35082. -- EXEC [Pay_OPay_GenOrder]
  35083. -- ==============================================
  35084. -- Author: wolf
  35085. -- Create Date: 2016-07-21
  35086. -- Mendor: wolf
  35087. -- Alter Date: 2016-11-18
  35088. -- Description: OPay支付充值--生成订单
  35089. -- ==============================================
  35090. CREATE PROCEDURE [dbo].[Pay_OPay_GenOrder]
  35091. @UserID INT, --用户ID
  35092. @Price DECIMAL(18, 2), --价格
  35093. @ProductID VARCHAR(32), --业务类型
  35094. @PartnerID INT, --渠道ID
  35095. @IPAddress VARCHAR(16), --IP地址
  35096. @OrderID VARCHAR(32) OUTPUT --订单号
  35097. AS
  35098. SET NOCOUNT ON
  35099. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  35100. SET XACT_ABORT ON
  35101. BEGIN
  35102. DECLARE @Msg NVARCHAR(4000) --操作描述
  35103. DECLARE @RetCode TINYINT --操作结果
  35104. --表变量
  35105. DECLARE @tmptable TABLE(
  35106. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  35107. UserID INT NOT NULL --用户ID
  35108. )
  35109. SET @RetCode = 0
  35110. --生成数据
  35111. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  35112. --获取订单ID
  35113. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  35114. IF(@@ROWCOUNT = 0)
  35115. BEGIN
  35116. --添加日志
  35117. SET @Msg = N'OPay支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  35118. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35119. SET @OrderID = ''
  35120. RETURN
  35121. END
  35122. --组装成有序的订单
  35123. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  35124. --添加订单信息
  35125. INSERT INTO [OOrder]
  35126. (
  35127. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  35128. )
  35129. VALUES
  35130. (
  35131. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  35132. )
  35133. RETURN
  35134. END
  35135. GO
  35136. /****** Object: StoredProcedure [dbo].[Pay_OPay_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  35137. SET ANSI_NULLS ON
  35138. GO
  35139. SET QUOTED_IDENTIFIER ON
  35140. GO
  35141. -- EXEC [Pay_OPay_OrderReq]
  35142. -- ==============================================
  35143. -- Author: wolf
  35144. -- Create Date: 2016-07-21
  35145. -- Mendor: wolf
  35146. -- Alter Date: 2016-11-07
  35147. -- Description: OPay支付--充值
  35148. -- ==============================================
  35149. CREATE PROCEDURE [dbo].[Pay_OPay_OrderReq]
  35150. @OrderID VARCHAR(32), --订单号
  35151. @TradeID VARCHAR(64), --业务流水号
  35152. @Price DECIMAL(18, 2), --价格
  35153. @RetCode TINYINT OUTPUT, --操作结果
  35154. @UserID INT OUTPUT, --用户ID
  35155. @ProductID VARCHAR(32) OUTPUT --产品ID
  35156. AS
  35157. SET NOCOUNT ON
  35158. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35159. SET XACT_ABORT ON
  35160. BEGIN
  35161. DECLARE @PayPrice DECIMAL(18, 2) --价格
  35162. DECLARE @GetStatus TINYINT --获取状态
  35163. DECLARE @CurrTime DATETIME --系统当前时间
  35164. DECLARE @DateFlag SMALLDATETIME --日期标志
  35165. DECLARE @Msg NVARCHAR(4000) --操作描述
  35166. DECLARE @PartnerID INT --渠道ID
  35167. DECLARE @IPAddress VARCHAR(16) --IP地址
  35168. SET @CurrTime = GETDATE()
  35169. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  35170. SET @IPAddress = ''
  35171. SET @ProductID = ''
  35172. SET @UserID = 0
  35173. SET @RetCode = 0
  35174. --获取订单信息
  35175. SELECT
  35176. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  35177. @IPAddress = IPAddress, @PartnerID = PartnerID
  35178. FROM
  35179. [OOrder]
  35180. WHERE
  35181. OrderID = @OrderID
  35182. --判断订单是否有效
  35183. IF(@GetStatus IS NULL)
  35184. BEGIN
  35185. --添加日志
  35186. SET @Msg = N'OPay支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  35187. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35188. SET @RetCode = 11
  35189. RETURN
  35190. END
  35191. --判断订单是否有效
  35192. IF(@GetStatus != 0)
  35193. BEGIN
  35194. --添加日志
  35195. SET @Msg = N'OPay支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  35196. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35197. SET @RetCode = 11
  35198. RETURN
  35199. END
  35200. /*
  35201. --判断价格是否正确
  35202. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  35203. BEGIN
  35204. --添加日志
  35205. SET @Msg = N'OPay支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35206. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35207. SET @RetCode = 11
  35208. RETURN
  35209. END
  35210. */
  35211. --判断业务类型是否合法
  35212. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  35213. BEGIN
  35214. --添加日志
  35215. SET @Msg = N'OPay支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35216. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35217. SET @RetCode = 11
  35218. RETURN
  35219. END
  35220. --判断订单是否存在,以免重复加数据
  35221. IF EXISTS(SELECT OrderID FROM [OPay] WHERE OrderID = @OrderID)
  35222. BEGIN
  35223. --添加日志
  35224. SET @Msg = N'OPay支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35225. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35226. SET @RetCode = 11
  35227. RETURN
  35228. END
  35229. --先设置订单状态
  35230. UPDATE [OOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  35231. IF(@@ROWCOUNT = 0)
  35232. BEGIN
  35233. --添加日志
  35234. SET @Msg = N'OPay支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35235. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35236. SET @RetCode = 11
  35237. RETURN
  35238. END
  35239. --添加订单记录
  35240. INSERT INTO [OPay]
  35241. (
  35242. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  35243. )
  35244. VALUES
  35245. (
  35246. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  35247. )
  35248. --触发充值事件
  35249. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  35250. --成功
  35251. SET @RetCode = 1
  35252. RETURN
  35253. END
  35254. GO
  35255. /****** Object: StoredProcedure [dbo].[Pay_PayerMax_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  35256. SET ANSI_NULLS ON
  35257. GO
  35258. SET QUOTED_IDENTIFIER ON
  35259. GO
  35260. -- EXEC [Pay_PayerMax_GenOrder]
  35261. -- ==============================================
  35262. -- Author: wolf
  35263. -- Create Date: 2016-07-21
  35264. -- Mendor: wolf
  35265. -- Alter Date: 2016-11-18
  35266. -- Description: PayerMax支付充值--生成订单
  35267. -- ==============================================
  35268. CREATE PROCEDURE [dbo].[Pay_PayerMax_GenOrder]
  35269. @UserID INT, --用户ID
  35270. @Price DECIMAL(18, 2), --价格
  35271. @ProductID VARCHAR(32), --业务类型
  35272. @PartnerID INT, --渠道ID
  35273. @IPAddress VARCHAR(16), --IP地址
  35274. @OrderID VARCHAR(32) OUTPUT --订单号
  35275. AS
  35276. SET NOCOUNT ON
  35277. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  35278. SET XACT_ABORT ON
  35279. BEGIN
  35280. DECLARE @Msg NVARCHAR(4000) --操作描述
  35281. DECLARE @RetCode TINYINT --操作结果
  35282. --表变量
  35283. DECLARE @tmptable TABLE(
  35284. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  35285. UserID INT NOT NULL --用户ID
  35286. )
  35287. SET @RetCode = 0
  35288. --生成数据
  35289. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  35290. --获取订单ID
  35291. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  35292. IF(@@ROWCOUNT = 0)
  35293. BEGIN
  35294. --添加日志
  35295. SET @Msg = N'PayerMax支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  35296. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35297. SET @OrderID = ''
  35298. RETURN
  35299. END
  35300. --组装成有序的订单
  35301. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  35302. --添加订单信息
  35303. INSERT INTO [PayerMaxOrder]
  35304. (
  35305. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  35306. )
  35307. VALUES
  35308. (
  35309. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  35310. )
  35311. RETURN
  35312. END
  35313. GO
  35314. /****** Object: StoredProcedure [dbo].[Pay_PayerMax_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  35315. SET ANSI_NULLS ON
  35316. GO
  35317. SET QUOTED_IDENTIFIER ON
  35318. GO
  35319. -- EXEC [Pay_PayerMax_OrderReq]
  35320. -- ==============================================
  35321. -- Author: wolf
  35322. -- Create Date: 2016-07-21
  35323. -- Mendor: wolf
  35324. -- Alter Date: 2016-11-07
  35325. -- Description: PayerMax支付--充值
  35326. -- ==============================================
  35327. CREATE PROCEDURE [dbo].[Pay_PayerMax_OrderReq]
  35328. @OrderID VARCHAR(32), --订单号
  35329. @TradeID VARCHAR(64), --业务流水号
  35330. @Price DECIMAL(18, 2), --价格
  35331. @RetCode TINYINT OUTPUT, --操作结果
  35332. @UserID INT OUTPUT, --用户ID
  35333. @ProductID VARCHAR(32) OUTPUT --产品ID
  35334. AS
  35335. SET NOCOUNT ON
  35336. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35337. SET XACT_ABORT ON
  35338. BEGIN
  35339. DECLARE @PayPrice DECIMAL(18, 2) --价格
  35340. DECLARE @GetStatus TINYINT --获取状态
  35341. DECLARE @CurrTime DATETIME --系统当前时间
  35342. DECLARE @DateFlag SMALLDATETIME --日期标志
  35343. DECLARE @Msg NVARCHAR(4000) --操作描述
  35344. DECLARE @PartnerID INT --渠道ID
  35345. DECLARE @IPAddress VARCHAR(16) --IP地址
  35346. SET @CurrTime = GETDATE()
  35347. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  35348. SET @IPAddress = ''
  35349. SET @ProductID = ''
  35350. SET @UserID = 0
  35351. SET @RetCode = 0
  35352. --获取订单信息
  35353. SELECT
  35354. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  35355. @IPAddress = IPAddress, @PartnerID = PartnerID
  35356. FROM
  35357. [PayerMaxOrder]
  35358. WHERE
  35359. OrderID = @OrderID
  35360. --判断订单是否有效
  35361. IF(@GetStatus IS NULL)
  35362. BEGIN
  35363. --添加日志
  35364. SET @Msg = N'PayerMax支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  35365. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35366. SET @RetCode = 11
  35367. RETURN
  35368. END
  35369. --判断订单是否有效
  35370. IF(@GetStatus != 0)
  35371. BEGIN
  35372. --添加日志
  35373. SET @Msg = N'PayerMax支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  35374. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35375. SET @RetCode = 11
  35376. RETURN
  35377. END
  35378. /*
  35379. --判断价格是否正确
  35380. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  35381. BEGIN
  35382. --添加日志
  35383. SET @Msg = N'PayerMax支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35384. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35385. SET @RetCode = 11
  35386. RETURN
  35387. END
  35388. */
  35389. --判断业务类型是否合法
  35390. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  35391. BEGIN
  35392. --添加日志
  35393. SET @Msg = N'PayerMax支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35394. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35395. SET @RetCode = 11
  35396. RETURN
  35397. END
  35398. --判断订单是否存在,以免重复加数据
  35399. IF EXISTS(SELECT OrderID FROM [PayerMaxPay] WHERE OrderID = @OrderID)
  35400. BEGIN
  35401. --添加日志
  35402. SET @Msg = N'PayerMax支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35403. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35404. SET @RetCode = 11
  35405. RETURN
  35406. END
  35407. --先设置订单状态
  35408. UPDATE [PayerMaxOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  35409. IF(@@ROWCOUNT = 0)
  35410. BEGIN
  35411. --添加日志
  35412. SET @Msg = N'PayerMax支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35413. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35414. SET @RetCode = 11
  35415. RETURN
  35416. END
  35417. --添加订单记录
  35418. INSERT INTO [PayerMaxPay]
  35419. (
  35420. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  35421. )
  35422. VALUES
  35423. (
  35424. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  35425. )
  35426. --触发充值事件
  35427. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  35428. --成功
  35429. SET @RetCode = 1
  35430. RETURN
  35431. END
  35432. GO
  35433. /****** Object: StoredProcedure [dbo].[Pay_PayerMaxWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
  35434. SET ANSI_NULLS ON
  35435. GO
  35436. SET QUOTED_IDENTIFIER ON
  35437. GO
  35438. -- EXEC [Pay_PayerMaxWithdraw_Notify]
  35439. -- ==============================================
  35440. -- Author: wolf
  35441. -- Create Date: 2016-07-21
  35442. -- Mendor: wolf
  35443. -- Alter Date: 2016-11-07
  35444. -- Description: PayerMax支付--提现通知
  35445. -- ==============================================
  35446. CREATE PROCEDURE [dbo].[Pay_PayerMaxWithdraw_Notify]
  35447. @OrderID VARCHAR(32), --订单号
  35448. @DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
  35449. @Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
  35450. @DfDesc VARCHAR(256), --代付状态描述
  35451. @Balance INT --余额
  35452. AS
  35453. SET NOCOUNT ON
  35454. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35455. SET XACT_ABORT ON
  35456. BEGIN
  35457. DECLARE @UserID INT --用户ID
  35458. DECLARE @Amount INT --提现金额
  35459. DECLARE @RealAmount INT --实际金额(含费用)
  35460. DECLARE @Surcharge INT --手续费
  35461. DECLARE @Msg NVARCHAR(4000) --消息
  35462. DECLARE @RetCode TINYINT --操作结果
  35463. DECLARE @CurrTime DATETIME --系统当前时间
  35464. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
  35465. --11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
  35466. SET @RetCode = 0
  35467. SET @CurrTime = GETDATE()
  35468. --更新状态
  35469. UPDATE
  35470. [PayerMaxWithdraw]
  35471. SET
  35472. @UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
  35473. GetStatus = CASE
  35474. WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
  35475. WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
  35476. WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
  35477. WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
  35478. WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
  35479. WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
  35480. ELSE 255 --未知
  35481. END,
  35482. DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
  35483. WHERE
  35484. OrderID = @OrderID
  35485. IF(@@ROWCOUNT = 0)
  35486. BEGIN
  35487. SET @Msg = N'Pay_PayerMaxWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
  35488. ',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
  35489. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
  35490. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  35491. RETURN
  35492. END
  35493. --失败,直接返回
  35494. IF(@Status IS NULL OR @Status NOT IN(1, 2))
  35495. BEGIN
  35496. --返回订单信息
  35497. SET @RetCode = 2
  35498. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  35499. RETURN
  35500. END
  35501. --不是成功状态
  35502. IF(@Status != 1)
  35503. BEGIN
  35504. SET @RetCode = 11
  35505. --返回订单信息
  35506. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  35507. RETURN
  35508. END
  35509. SET @RetCode = 1
  35510. --返回订单信息
  35511. SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
  35512. RETURN
  35513. END
  35514. GO
  35515. /****** Object: StoredProcedure [dbo].[Pay_PayerMaxWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
  35516. SET ANSI_NULLS ON
  35517. GO
  35518. SET QUOTED_IDENTIFIER ON
  35519. GO
  35520. -- EXEC [Pay_PayerMaxWithdraw_Req]
  35521. -- ==============================================
  35522. -- Author: wolf
  35523. -- Create Date: 2016-07-21
  35524. -- Mendor: wolf
  35525. -- Alter Date: 2016-11-07
  35526. -- Description: PayerMax支付--提现申请
  35527. -- ==============================================
  35528. CREATE PROCEDURE [dbo].[Pay_PayerMaxWithdraw_Req]
  35529. @UserID int, --用户ID
  35530. @Amount INT, --提现金额
  35531. @RealName VARCHAR(128), --真实姓名
  35532. @BankCard VARCHAR(32), --银行卡
  35533. @BankName VARCHAR(128), --银行名称
  35534. @Mobile VARCHAR(32), --电话
  35535. @EMail VARCHAR(64), --email
  35536. @Address VARCHAR(256), --地址
  35537. @IPAddress VARCHAR(16) --IP地址
  35538. AS
  35539. SET NOCOUNT ON
  35540. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35541. SET XACT_ABORT ON
  35542. BEGIN
  35543. DECLARE @CurrTime DATETIME --系统当前时间
  35544. DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
  35545. DECLARE @OrderID VARCHAR(32) --订单号
  35546. DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
  35547. DECLARE @RealAmount INT --实际提现的金额(扣除费率)
  35548. DECLARE @Tel VARCHAR(32) --手机号
  35549. DECLARE @Surcharge INT --手续费
  35550. --表变量
  35551. DECLARE @tmptable TABLE(
  35552. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
  35553. UserID INT NOT NULL --用户ID
  35554. )
  35555. SET @RetCode = 0
  35556. SET @CurrTime = GETDATE()
  35557. SET @OrderID = ''
  35558. SET @GetStatus = 0
  35559. SET @Surcharge = 0
  35560. SET @RealAmount = 0
  35561. SET @Tel = ''
  35562. IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
  35563. BEGIN
  35564. SET @RetCode = 11
  35565. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  35566. RETURN
  35567. END
  35568. --生成数据
  35569. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  35570. --获取后台订单ID
  35571. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  35572. --组装成有序的订单
  35573. SET @OrderID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
  35574. --实际提取金额=提取金额-手续费
  35575. SET @RealAmount = @Amount - @Surcharge
  35576. --生成订单
  35577. INSERT INTO [PayerMaxWithdraw]
  35578. (
  35579. OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
  35580. RealName, BankCard, BankName, Mobile, EMail, Address
  35581. )
  35582. VALUES
  35583. (
  35584. @OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
  35585. @RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
  35586. )
  35587. --操作结果
  35588. SET @RetCode = 1
  35589. SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
  35590. RETURN
  35591. END
  35592. GO
  35593. /****** Object: StoredProcedure [dbo].[Pay_paymob_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
  35594. SET ANSI_NULLS ON
  35595. GO
  35596. SET QUOTED_IDENTIFIER ON
  35597. GO
  35598. -- EXEC [Pay_paymob_GenOrder]
  35599. -- ==============================================
  35600. -- Author: wolf
  35601. -- Create Date: 2016-07-21
  35602. -- Mendor: wolf
  35603. -- Alter Date: 2016-11-18
  35604. -- Description: paymob支付充值--生成订单
  35605. -- ==============================================
  35606. CREATE PROCEDURE [dbo].[Pay_paymob_GenOrder]
  35607. @UserID INT, --用户ID
  35608. @Price DECIMAL(18, 2), --价格
  35609. @ProductID VARCHAR(32), --业务类型
  35610. @PartnerID INT, --渠道ID
  35611. @IPAddress VARCHAR(16), --IP地址
  35612. @OrderID VARCHAR(32) OUTPUT --订单号
  35613. AS
  35614. SET NOCOUNT ON
  35615. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  35616. SET XACT_ABORT ON
  35617. BEGIN
  35618. DECLARE @Msg NVARCHAR(4000) --操作描述
  35619. DECLARE @RetCode TINYINT --操作结果
  35620. --表变量
  35621. DECLARE @tmptable TABLE(
  35622. OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
  35623. UserID INT NOT NULL --用户ID
  35624. )
  35625. SET @RetCode = 0
  35626. --生成数据
  35627. INSERT INTO @tmptable(UserID) VALUES(@UserID)
  35628. --获取订单ID
  35629. SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
  35630. IF(@@ROWCOUNT = 0)
  35631. BEGIN
  35632. --添加日志
  35633. SET @Msg = N'paymob支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
  35634. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35635. SET @OrderID = ''
  35636. RETURN
  35637. END
  35638. --组装成有序的订单
  35639. SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
  35640. --添加订单信息
  35641. INSERT INTO [paymobOrder]
  35642. (
  35643. OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
  35644. )
  35645. VALUES
  35646. (
  35647. @OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
  35648. )
  35649. RETURN
  35650. END
  35651. GO
  35652. /****** Object: StoredProcedure [dbo].[Pay_paymob_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
  35653. SET ANSI_NULLS ON
  35654. GO
  35655. SET QUOTED_IDENTIFIER ON
  35656. GO
  35657. -- EXEC [Pay_paymob_OrderReq]
  35658. -- ==============================================
  35659. -- Author: wolf
  35660. -- Create Date: 2016-07-21
  35661. -- Mendor: wolf
  35662. -- Alter Date: 2016-11-07
  35663. -- Description: paymob支付--充值
  35664. -- ==============================================
  35665. CREATE PROCEDURE [dbo].[Pay_paymob_OrderReq]
  35666. @OrderID VARCHAR(32), --订单号
  35667. @TradeID VARCHAR(64), --业务流水号
  35668. @Price DECIMAL(18, 2), --价格
  35669. @RetCode TINYINT OUTPUT, --操作结果
  35670. @UserID INT OUTPUT, --用户ID
  35671. @ProductID VARCHAR(32) OUTPUT --产品ID
  35672. AS
  35673. SET NOCOUNT ON
  35674. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35675. SET XACT_ABORT ON
  35676. BEGIN
  35677. DECLARE @PayPrice DECIMAL(18, 2) --价格
  35678. DECLARE @GetStatus TINYINT --获取状态
  35679. DECLARE @CurrTime DATETIME --系统当前时间
  35680. DECLARE @DateFlag SMALLDATETIME --日期标志
  35681. DECLARE @Msg NVARCHAR(4000) --操作描述
  35682. DECLARE @PartnerID INT --渠道ID
  35683. DECLARE @IPAddress VARCHAR(16) --IP地址
  35684. SET @CurrTime = GETDATE()
  35685. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  35686. SET @IPAddress = ''
  35687. SET @ProductID = ''
  35688. SET @UserID = 0
  35689. SET @RetCode = 0
  35690. --获取订单信息
  35691. SELECT
  35692. @UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
  35693. @IPAddress = IPAddress, @PartnerID = PartnerID
  35694. FROM
  35695. [paymobOrder]
  35696. WHERE
  35697. OrderID = @OrderID
  35698. --判断订单是否有效
  35699. IF(@GetStatus IS NULL)
  35700. BEGIN
  35701. --添加日志
  35702. SET @Msg = N'paymob支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
  35703. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35704. SET @RetCode = 11
  35705. RETURN
  35706. END
  35707. --判断订单是否有效
  35708. IF(@GetStatus != 0)
  35709. BEGIN
  35710. --添加日志
  35711. SET @Msg = N'paymob支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
  35712. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35713. SET @RetCode = 11
  35714. RETURN
  35715. END
  35716. /*
  35717. --判断价格是否正确
  35718. IF(@PayPrice IS NULL OR @PayPrice != @Price)
  35719. BEGIN
  35720. --添加日志
  35721. SET @Msg = N'paymob支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35722. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35723. SET @RetCode = 11
  35724. RETURN
  35725. END
  35726. */
  35727. --判断业务类型是否合法
  35728. IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
  35729. BEGIN
  35730. --添加日志
  35731. SET @Msg = N'paymob支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35732. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35733. SET @RetCode = 11
  35734. RETURN
  35735. END
  35736. --判断订单是否存在,以免重复加数据
  35737. IF EXISTS(SELECT OrderID FROM [paymobPay] WHERE OrderID = @OrderID)
  35738. BEGIN
  35739. --添加日志
  35740. SET @Msg = N'paymob支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35741. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35742. SET @RetCode = 11
  35743. RETURN
  35744. END
  35745. --先设置订单状态
  35746. UPDATE [paymobOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
  35747. IF(@@ROWCOUNT = 0)
  35748. BEGIN
  35749. --添加日志
  35750. SET @Msg = N'paymob支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35751. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35752. SET @RetCode = 11
  35753. RETURN
  35754. END
  35755. --添加订单记录
  35756. INSERT INTO [paymobPay]
  35757. (
  35758. OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
  35759. )
  35760. VALUES
  35761. (
  35762. @OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
  35763. )
  35764. --触发充值事件
  35765. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  35766. --成功
  35767. SET @RetCode = 1
  35768. RETURN
  35769. END
  35770. GO
  35771. /****** Object: StoredProcedure [dbo].[Pay_Product_Check] Script Date: 2024/1/12 11:01:14 ******/
  35772. SET ANSI_NULLS ON
  35773. GO
  35774. SET QUOTED_IDENTIFIER ON
  35775. GO
  35776. -- EXEC [Pay_Product_Check]
  35777. -- ==============================================
  35778. -- Author: wolf
  35779. -- Create Date: 2016-07-21
  35780. -- Mendor: wolf
  35781. -- Alter Date: 2016-11-07
  35782. -- Description: 检查产品信息
  35783. -- ==============================================
  35784. CREATE PROCEDURE [dbo].[Pay_Product_Check]
  35785. @UserID INT, --用户ID
  35786. @OrderID VARCHAR(256), --订单号
  35787. @ProductID VARCHAR(32), --产品ID
  35788. @PayName VARCHAR(32), --支付名称
  35789. @IPAddress VARCHAR(16), --IP地址
  35790. @Price DECIMAL(18, 2) OUTPUT --价格
  35791. AS
  35792. SET NOCOUNT ON
  35793. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35794. SET XACT_ABORT ON
  35795. BEGIN
  35796. DECLARE @Msg NVARCHAR(4000) --操作描述
  35797. SET @Price = 0
  35798. --1=获取充值金豆数量
  35799. SELECT @Price = Price FROM [DiamondMall] WHERE ProductID = @ProductID
  35800. IF(@@ROWCOUNT > 0)
  35801. RETURN
  35802. --2=普通礼包
  35803. SELECT @Price = Price FROM [GiftPack] WHERE ProductID = @ProductID
  35804. IF(@@ROWCOUNT > 0)
  35805. RETURN
  35806. --3=成长礼包
  35807. SELECT @Price = Price FROM [GrowthPack] WHERE ProductID = @ProductID
  35808. IF(@@ROWCOUNT > 0)
  35809. RETURN
  35810. --4=月卡
  35811. SELECT @Price = Price FROM [MonthlyCard] WHERE ProductID = @ProductID
  35812. IF(@@ROWCOUNT > 0)
  35813. RETURN
  35814. --5=vip特惠
  35815. SELECT @Price = Price FROM [VipDeal] WHERE ProductID = @ProductID
  35816. IF(@@ROWCOUNT > 0)
  35817. RETURN
  35818. --产品不存在
  35819. --添加日志
  35820. SET @Msg = @PayName + N'充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
  35821. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
  35822. RETURN
  35823. END
  35824. GO
  35825. /****** Object: StoredProcedure [dbo].[Pay_Verify_AddErrorLog] Script Date: 2024/1/12 11:01:14 ******/
  35826. SET ANSI_NULLS ON
  35827. GO
  35828. SET QUOTED_IDENTIFIER ON
  35829. GO
  35830. -- EXEC [Pay_Verify_AddErrorLog]
  35831. -- @UserID = 0,
  35832. -- @ErrorMsg = ''
  35833. -- =============================================
  35834. -- Author: wolf
  35835. -- Create Date: 2013-10-11
  35836. -- Mendor: wolf
  35837. -- Alter Date: 2015-09-16
  35838. -- Description: 添加校验错误日志
  35839. -- ============================================
  35840. CREATE PROCEDURE [dbo].[Pay_Verify_AddErrorLog]
  35841. @UserID INT, --用户ID
  35842. @ErrorMsg VARCHAR(1024), --错误消息
  35843. @IPAddress VARCHAR(16) --IP地址
  35844. AS
  35845. SET NOCOUNT ON
  35846. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35847. SET XACT_ABORT ON
  35848. BEGIN
  35849. --添加校验错误日志
  35850. INSERT INTO [VerifyErrorLog]
  35851. (
  35852. UserID, ErrorMsg, Crdate, IPAddress
  35853. )
  35854. VALUES
  35855. (
  35856. @UserID, @ErrorMsg, GETDATE(), @IPAddress
  35857. )
  35858. RETURN
  35859. END
  35860. GO
  35861. /****** Object: StoredProcedure [dbo].[Pay_Verify_AddLog] Script Date: 2024/1/12 11:01:14 ******/
  35862. SET ANSI_NULLS ON
  35863. GO
  35864. SET QUOTED_IDENTIFIER ON
  35865. GO
  35866. -- EXEC [Pay_Verify_AddLog]
  35867. -- @UserID = 0,
  35868. -- @ReceiptBuffer = ''
  35869. -- =============================================
  35870. -- Author: wolf
  35871. -- Create Date: 2013-10-11
  35872. -- Mendor: wolf
  35873. -- Alter Date: 2015-09-16
  35874. -- Description: 添加校验记录
  35875. -- =============================================
  35876. CREATE PROCEDURE [dbo].[Pay_Verify_AddLog]
  35877. @UserID INT, --用户ID
  35878. @ReceiptBuffer VARCHAR(4096), --接收的收据
  35879. @IPAddress VARCHAR(16) --IP地址
  35880. AS
  35881. SET NOCOUNT ON
  35882. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35883. SET XACT_ABORT ON
  35884. BEGIN
  35885. --添加校验日志
  35886. INSERT INTO [VerifyLog]
  35887. (
  35888. UserID, ReceiptBuffer, Crdate, IPAddress
  35889. )
  35890. VALUES
  35891. (
  35892. @UserID, @ReceiptBuffer, GETDATE(), @IPAddress
  35893. )
  35894. RETURN
  35895. END
  35896. GO
  35897. /****** Object: StoredProcedure [dbo].[Pay_Verify_AddSuccessLog] Script Date: 2024/1/12 11:01:14 ******/
  35898. SET ANSI_NULLS ON
  35899. GO
  35900. SET QUOTED_IDENTIFIER ON
  35901. GO
  35902. -- DECLARE @RetCode TINYINT
  35903. -- EXEC [Pay_Verify_AddSuccessLog]
  35904. -- @UserID = 0,
  35905. -- @TransactionID = '',
  35906. -- @ProductID = '',
  35907. -- @Memo = '',
  35908. -- @RetCode = @RetCode OUTPUT
  35909. -- SELECT @RetCode AS RetCode
  35910. -- =============================================
  35911. -- Author: wolf
  35912. -- Create Date: 2015-05-13
  35913. -- Mendor: wolf
  35914. -- Alter Date: 2015-09-16
  35915. -- Description: 添加校验成功日志
  35916. -- =============================================
  35917. CREATE PROCEDURE [dbo].[Pay_Verify_AddSuccessLog]
  35918. @UserID INT, --用户ID
  35919. @TransactionID VARCHAR(64), --事务ID
  35920. @ProductID VARCHAR(64), --产品ID
  35921. @Memo VARCHAR(1024), --结果字符串
  35922. @IPAddress VARCHAR(16), --IP地址
  35923. @IsSandBox TINYINT, --是否沙箱
  35924. @RetCode TINYINT OUTPUT --操作结果
  35925. --1:操作成功
  35926. --数据库:11:成功记录表中已经包含相同的transactionid 12:产品id不能存在
  35927. AS
  35928. SET NOCOUNT ON
  35929. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  35930. SET XACT_ABORT ON
  35931. BEGIN
  35932. DECLARE @PayPrice DECIMAL(18, 2) --RMB
  35933. DECLARE @CurrTime DATETIME --系统当前时间
  35934. DECLARE @Msg VARCHAR(512) --消息
  35935. DECLARE @PartnerID INT --渠道ID
  35936. SET @RetCode = 0
  35937. SET @PartnerID = 0
  35938. SET @CurrTime = GETDATE()
  35939. --因为收据并非一次校验有效,所以如果成功记录表中已经包含相同的transactionid
  35940. --则认为无效,插入一条记录至校验失败表
  35941. IF EXISTS(SELECT TransactionID FROM [VerifySuccessLog] WHERE TransactionID = @TransactionID)
  35942. BEGIN
  35943. SET @RetCode = 11
  35944. --校验失败,插入错误记录
  35945. EXEC [Pay_Verify_AddErrorLog] @UserID = @UserID, @ErrorMsg = @Memo, @IPAddress = @IPAddress
  35946. RETURN
  35947. END
  35948. --校验产品信息
  35949. EXEC [Pay_Product_Check] @UserID = @UserID, @OrderID = @TransactionID, @ProductID = @ProductID, @PayName = '苹果',
  35950. @IPAddress = @IPAddress, @Price = @PayPrice OUTPUT
  35951. --判断是否有产品
  35952. IF(@PayPrice IS NULL OR @PayPrice <= 0)
  35953. BEGIN
  35954. SET @RetCode = 12
  35955. RETURN
  35956. END
  35957. --渠道ID
  35958. SELECT TOP 1 @PartnerID = PartnerID FROM [UserLoginLog] WHERE UserID = @UserID ORDER BY LogID DESC
  35959. IF(@@ROWCOUNT = 0)
  35960. BEGIN
  35961. SELECT TOP 1 @PartnerID = PartnerID FROM [UserLoginLog_bak] WHERE UserID = @UserID ORDER BY LogID DESC
  35962. END
  35963. --添加校验成功记录
  35964. INSERT INTO [VerifySuccessLog]
  35965. (
  35966. TransactionID, UserID, ProductID, Price, Memo, Crdate, IPAddress, PartnerID, IsSandBox
  35967. )
  35968. VALUES
  35969. (
  35970. @TransactionID, @UserID, @ProductID, 0, @Memo, @CurrTime, @IPAddress, @PartnerID, @IsSandBox
  35971. )
  35972. --获取价格
  35973. UPDATE [VerifySuccessLog] SET Price = @PayPrice WHERE TransactionID = @TransactionID
  35974. --非沙箱才触发
  35975. IF(@IsSandBox = 0)
  35976. BEGIN
  35977. --触发充值事件
  35978. EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
  35979. END
  35980. --操作成功
  35981. SET @RetCode = 1
  35982. RETURN
  35983. END
  35984. GO
  35985. /****** Object: StoredProcedure [dbo].[prGS_MachineUserLogin] Script Date: 2024/1/12 11:01:14 ******/
  35986. SET ANSI_NULLS ON
  35987. GO
  35988. SET QUOTED_IDENTIFIER ON
  35989. GO
  35990. /*
  35991. 机器人登陆房间
  35992. 同时要释放登陆时间超过12小时的帐号
  35993. */
  35994. CREATE PROCEDURE [dbo].[prGS_MachineUserLogin]
  35995. @intGameID int, --游戏ID
  35996. @chvServerName nvarchar(128),--房间名
  35997. @intMaxBeans bigint, --房间金币上限
  35998. @intMinBeans bigint, --房间金币下限
  35999. @intUserID int output, --用户ID
  36000. @chvPwd varchar(32) output, --密码
  36001. @intLevels1 int output, --等级1
  36002. @intLevels2 int output, --等级2
  36003. @intLevels3 int output --等级3
  36004. as
  36005. set nocount on
  36006. BEGIN
  36007. declare @intRe int
  36008. --清空登陆时间超过6小时的帐号
  36009. delete MachineUserLock where DATEDIFF(hh,loginTime,getdate()) > 2
  36010. --查找在同一ID,同一房间没有进入过的用户
  36011. SELECT TOP 1
  36012. @intUserID = UserID, @chvPwd = [password], @intlevels1 = Levels1,
  36013. @intLevels2 = Levels2, @intLevels3 = Levels3
  36014. FROM
  36015. [MachineUser]
  36016. WHERE
  36017. UserID NOT IN (SELECT UserID FROM MachineUserLock WHERE ServerName=@chvServerName)
  36018. ORDER BY
  36019. NEWID()
  36020. if @@ROWCOUNT = 0
  36021. return -1
  36022. --看是否是进入的豆类房间,如果是则加豆处理
  36023. if @intMaxBeans > 0
  36024. begin
  36025. --SET @intMaxBeans = CASE WHEN @intMaxBeans >= 20000000 THEN 20000000 ELSE @intMaxBeans END
  36026. IF(@intMinBeans = 0)
  36027. BEGIN
  36028. EXEC [Game_Rand_GetRnd] @Min = 10000, @Max = 1000000, @Rnd = @intMinBeans OUTPUT
  36029. END
  36030. exec @intRe = [prMoney_GameServer_MachineUserUPDMoney] @intUserID,'201301001',@intMaxBeans,@intMinBeans,null
  36031. if @intRe <> 1
  36032. return -1
  36033. end
  36034. --加游戏房间信息,同时也表示上锁了在这个房间
  36035. insert into MachineUserLock (UserID,ServerName,LoginTime)
  36036. values(@intUserID,@chvServerName,GETDATE())
  36037. set @intLevels1 = 3
  36038. return 1
  36039. END
  36040. GO
  36041. /****** Object: StoredProcedure [dbo].[prGS_MachineUserLogout] Script Date: 2024/1/12 11:01:14 ******/
  36042. SET ANSI_NULLS ON
  36043. GO
  36044. SET QUOTED_IDENTIFIER ON
  36045. GO
  36046. /*
  36047. 机器人登出
  36048. */
  36049. CREATE PROCEDURE [dbo].[prGS_MachineUserLogout]
  36050. @intGameID int,
  36051. @chvServerName nvarchar(128),
  36052. @intUserID int
  36053. as
  36054. set nocount on
  36055. BEGIN
  36056. delete MachineUserLock where UserID=@intUserID and ServerName=@chvServerName
  36057. return 1
  36058. END
  36059. GO
  36060. /****** Object: StoredProcedure [dbo].[prGS_MachineUserUnLock] Script Date: 2024/1/12 11:01:14 ******/
  36061. SET ANSI_NULLS ON
  36062. GO
  36063. SET QUOTED_IDENTIFIER ON
  36064. GO
  36065. CREATE PROCEDURE [dbo].[prGS_MachineUserUnLock]
  36066. @intGameID int,
  36067. @chvServerName nvarchar(128)
  36068. as
  36069. set nocount on
  36070. BEGIN
  36071. delete MachineUserLock where ServerName=@chvServerName
  36072. return 1
  36073. END
  36074. GO
  36075. /****** Object: StoredProcedure [dbo].[prMoney_GameServer_MachineUserUPDMoney] Script Date: 2024/1/12 11:01:14 ******/
  36076. SET ANSI_NULLS ON
  36077. GO
  36078. SET QUOTED_IDENTIFIER ON
  36079. GO
  36080. /*
  36081. 游戏服务器_机器人修改金币
  36082. 取房间金币上限和下限的一个随机值
  36083. 有可能要加,有可能要减
  36084. */
  36085. CREATE PROCEDURE [dbo].[prMoney_GameServer_MachineUserUPDMoney]
  36086. @intUserID int, --用户ID
  36087. @chvSourceNo varchar(32), --活动类型
  36088. @intMaxBeans bigint, --房间金币上限
  36089. @intMinBeans bigint, --房间金币下限
  36090. @chvResult nvarchar(128) output
  36091. as
  36092. set nocount on
  36093. set xact_abort on
  36094. BEGIN
  36095. DECLARE @MAXDAY BIGINT -- 每个活动每天最多
  36096. SET @MAXDAY= 200000000
  36097. DECLARE @MAX_PER_OPERATE BIGINT -- 每人每次操作
  36098. SET @MAX_PER_OPERATE = 100000000
  36099. declare @intMoneyLogID int
  36100. declare @intDateID int
  36101. declare @intMoney bigint --根据会员等级和时长计算出来的送的金币数量,再跟传进来的金币数比较一下
  36102. declare @intCurrentAmount bigint --当前用户现金
  36103. declare @intDBAmount bigint
  36104. declare @intDBUserAmount bigint
  36105. declare @intGuessAmount bigint
  36106. declare @intWantedAmount bigint
  36107. declare @intModifyAmount bigint
  36108. declare @intDBMaxBeans bigint
  36109. set @intWantedAmount = 0
  36110. set @intModifyAmount = 0
  36111. set @chvResult = ''
  36112. set @intDateID = cast(cast(getdate() as float) as int)
  36113. if Isnull(@chvSourceNo, '') = ''
  36114. begin
  36115. set @chvResult = N'赠送渠道类型不能为空!!'
  36116. return -1
  36117. end
  36118. if @intMaxBeans <=0 or @intMinBeans<0
  36119. begin
  36120. set @chvResult = N'传入金币参数错误!!'
  36121. return -1
  36122. end
  36123. declare @chvSourceName nvarchar(128)
  36124. declare @dtSartTime datetime, @dtEndTime datetime
  36125. declare @intSourceMaxDay bigint, @intSourceMaxUserDay bigint
  36126. declare @intSourceMaxDayCount bigint
  36127. select
  36128. @chvSourceName = SourceName, @dtSartTime = StartTime, @dtEndTime = EndTime, @intSourceMaxDay = MaxDay,
  36129. @intSourceMaxUserDay = MaxUserDay, @intSourceMaxDayCount = MaxDayCount
  36130. from
  36131. GameServerSendSource
  36132. where
  36133. SourceNo = @chvSourceNo
  36134. if @@rowcount<=0
  36135. begin
  36136. set @chvResult = N'游戏服务器赠送渠道类型不存在!!'
  36137. return -1
  36138. end
  36139. if @dtSartTime is null set @dtSartTime = '2000-01-01'
  36140. if @dtEndTime is null set @dtEndTime = '2000-01-01'
  36141. if @intSourceMaxDay is null set @intSourceMaxDay = 0
  36142. if @intSourceMaxUserDay is null set @intSourceMaxUserDay = 0
  36143. if @intSourceMaxDayCount is null set @intSourceMaxDayCount = 0
  36144. declare @intStartID int, @intEndID int
  36145. set @intStartID = cast(cast(@dtSartTime as float) as int)
  36146. set @intEndID = cast(cast(@dtEndTime as float) as int)
  36147. if @intDateID>@intEndID
  36148. begin
  36149. set @chvResult = N'赠送渠道类型已结束!'
  36150. return -1
  36151. end
  36152. if @intDateID<@intStartID
  36153. begin
  36154. set @chvResult = N'赠送渠道类型还没有开始!'
  36155. return -1
  36156. end
  36157. declare @chvPreRemark nvarchar(32)
  36158. set @chvPreRemark = @chvSourceName + ':'
  36159. -------------------先检查输入参数------------------------
  36160. if @intUserID is null or @intUserID<=0
  36161. begin
  36162. Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate],[StillAmount], LogType)
  36163. values (@chvSourceName, 0, 'CASH', @intUserID, 0,0, 0, '', @chvPreRemark + '用户名无效', getdate(),0, 0)
  36164. set @intMoneyLogID=scope_identity()
  36165. set @chvResult = @chvPreRemark + '用户名无效'
  36166. return -2
  36167. end
  36168. ---------------------判断用户威望数是否在上下限区间内-----------------
  36169. select @intCurrentAmount=Amount from [Money] where UserID=@intUserID
  36170. if @@ROWCOUNT = 0 set @intCurrentAmount = 0
  36171. --取值范围为下限*10,如果大于房间上限则取房间上限,否则就在下限和下限*10之间取威望
  36172. set @intDBMaxBeans = @intMinBeans * 10
  36173. if (@intDBMaxBeans > @intMaxBeans )
  36174. set @intDBMaxBeans = @intMaxBeans
  36175. --在区间范围内直接返回不做任何修改
  36176. if @intCurrentAmount between @intMinBeans and @intDBMaxBeans
  36177. return 1
  36178. --产生一个区间内随机数
  36179. set @intWantedAmount = cast(rand()*(@intDBMaxBeans-@intMinBeans)+@intMinBeans as bigint)/100*100
  36180. if @intWantedAmount = 0
  36181. set @intWantedAmount = cast(rand()*(@intMaxBeans / 10 - @intMinBeans)+@intMinBeans as bigint)/100*100
  36182. set @intWantedAmount = @intWantedAmount - @intCurrentAmount
  36183. ---------------判断单次操作的量-----------------------------
  36184. /*
  36185. if @intWantedAmount >= @MAX_PER_OPERATE
  36186. begin
  36187. Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate],[StillAmount], LogType)
  36188. values (@chvSourceName, 0, 'CASH', @intUserID, 0, @intWantedAmount, 0, '', @chvPreRemark + '单次操作的量过大', getdate(),0, 0)
  36189. set @intMoneyLogID=scope_identity()
  36190. set @chvResult = @chvPreRemark + '单次操作的量过大'
  36191. return -4
  36192. end
  36193. ----------------判断总限量-----------------------------------
  36194. set @intDBUserAmount=(select [MoneySum] from [GameServerSendUserStat] where [DateID] = @intDateID and [UserID] = @intUserID and [SourceNo] = @chvSourceNo)
  36195. if @intDBUserAmount is null
  36196. set @intDBUserAmount = 0
  36197. if @intDBUserAmount + @intWantedAmount >= @intSourceMaxUserDay
  36198. begin
  36199. Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate],[StillAmount], LogType)
  36200. values (@chvSourceName, 0, 'CASH', @intUserID, 0, 0, 0, '', @chvPreRemark + '超过用户日限量', getdate(),0, 0)
  36201. set @intMoneyLogID=scope_identity()
  36202. set @intModifyAmount = 0
  36203. set @chvResult = @chvPreRemark + '超过用户日限量'
  36204. return -4
  36205. end
  36206. ----------------判断总限量-----------------------------------
  36207. set @intDBAmount=(select SUM([MoneySum]) from GameServerSendStat where [DateID] = @intDateID and [SourceNo] = @chvSourceNo)
  36208. if @intDBAmount is null
  36209. set @intDBAmount = 0
  36210. if @intDBAmount + @intWantedAmount >= @intSourceMaxDay
  36211. begin
  36212. Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [StillAmount], LogType)
  36213. values (@chvSourceName, 0, 'CASH', @intUserID, 0, @intWantedAmount, 0, '', @chvPreRemark + '超过日限量', getdate(),0, 0)
  36214. set @intMoneyLogID=scope_identity()
  36215. set @chvResult = @chvPreRemark + '超过日限量'
  36216. return -4
  36217. end
  36218. */
  36219. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  36220. begin tran
  36221. set @intModifyAmount = @intWantedAmount
  36222. --加金币
  36223. update [Money] set Amount=Amount+@intModifyAmount,RefreshTime=getdate() where UserID=@intUserID
  36224. if @@RowCount = 0
  36225. Insert into [Money] (UserID,Amount, RegisterTime, RefreshTime, bank) values (@intUserID,@intModifyAmount, getdate(), getdate(), 0)
  36226. --写日志
  36227. Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate],[StillAmount], LogType)
  36228. values (@chvSourceName, 0, 'CASH', @intUserID, @intCurrentAmount, @intModifyAmount, 0, '', @chvPreRemark + '加金币成功', getdate(),0, 0)
  36229. /*
  36230. Insert [GameServerSendLog] ([UserID], [SourceNo], [UserExtend], [CurrentAmount], [WantedAmount], [ModifyAmount], [IPAddress], [Remark], [Identity], [WriteTime], [Extend])
  36231. values (@intUserID, @chvSourceNo, 0, @intCurrentAmount, @intWantedAmount, @intWantedAmount, '', @chvPreRemark + cast(@intWantedAmount as varchar(10)), 0x, getdate(), 0x)
  36232. */
  36233. update GameServerSendStat set MoneySum = MoneySum + isnull(@intWantedAmount,0) where DateID = @intDateID and SourceNo = @chvSourceNo
  36234. if @@rowcount=0
  36235. Insert GameServerSendStat (DateID, SourceNo, MoneySum) values(@intDateID, @chvSourceNo, isnull(@intWantedAmount,0))
  36236. update GameServerSendUserStat set MoneySum = MoneySum + isnull(@intWantedAmount,0) where DateID = @intDateID and UserId = @intUserID and SourceNo = @chvSourceNo
  36237. if @@rowcount=0
  36238. Insert GameServerSendUserStat (DateID, UserId, SourceNo, MoneySum) values(@intDateID, @intUserID, @chvSourceNo, isnull(@intWantedAmount,0))
  36239. commit tran
  36240. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  36241. set @chvResult = ''
  36242. return 1
  36243. END
  36244. GO
  36245. /****** Object: StoredProcedure [dbo].[prMoney_WebDelCoin_v2] Script Date: 2024/1/12 11:01:14 ******/
  36246. SET ANSI_NULLS ON
  36247. GO
  36248. SET QUOTED_IDENTIFIER ON
  36249. GO
  36250. /*
  36251. WEB通用调用加金币接口
  36252. */
  36253. CREATE PROCEDURE [dbo].[prMoney_WebDelCoin_v2]
  36254. @UserID INT,
  36255. @SourceName NVARCHAR(32), --Web应用名称
  36256. @Reason NVARCHAR(128),
  36257. @WantAmount BIGINT,
  36258. @WantBank BIGINT,
  36259. @IPAddress VARCHAR(16),
  36260. @OpUserID INT,
  36261. @OpUserName VARCHAR(32),
  36262. @RetCode TINYINT OUTPUT,
  36263. @ErrorMsg NVARCHAR(128) OUTPUT
  36264. AS
  36265. SET NOCOUNT ON
  36266. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  36267. SET XACT_ABORT ON
  36268. BEGIN
  36269. DECLARE @intCurrentAmount BIGINT
  36270. DECLARE @chvDBServerName NVARCHAR(64)
  36271. DECLARE @chvRemark NVARCHAR(128)
  36272. DECLARE @LogType INT
  36273. DECLARE @Msg NVARCHAR(4000)
  36274. SET @intCurrentAmount = 0
  36275. SET @Reason = '(' + LTRIM(STR(@OpUserID)) + ',' + @OpUserName + '),' + @Reason
  36276. SET @RetCode = 0
  36277. SET @ErrorMsg = ''
  36278. SET @LogType = 7
  36279. IF(@SourceName IS NULL OR @SourceName = '')
  36280. BEGIN
  36281. SET @SourceName = ''
  36282. SET @chvRemark = N'Web application name is empty (deduction) ' + @Reason
  36283. INSERT INTO [MoneyLog]
  36284. (
  36285. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36286. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36287. )
  36288. VALUES
  36289. (
  36290. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  36291. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36292. )
  36293. SET @RetCode = 11
  36294. SET @ErrorMsg = N'WEB应用名称为空(扣金)'
  36295. RETURN
  36296. END
  36297. IF(@UserID IS NULL OR @UserID <= 0)
  36298. BEGIN
  36299. SET @UserID = 1
  36300. SET @chvRemark = N'Web deduction - safe: incorrect user ID ' + @Reason
  36301. INSERT INTO [MoneyLog]
  36302. (
  36303. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36304. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36305. )
  36306. VALUES
  36307. (
  36308. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  36309. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36310. )
  36311. SET @RetCode = 12
  36312. SET @ErrorMsg = N'WEB扣金:用户ID不正确'
  36313. RETURN
  36314. END
  36315. IF(@WantAmount < 0)
  36316. BEGIN
  36317. SET @chvRemark = N'Web deduction: incorrect amount of deduction ' + @Reason
  36318. INSERT INTO [MoneyLog]
  36319. (
  36320. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36321. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36322. )
  36323. VALUES
  36324. (
  36325. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  36326. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36327. )
  36328. SET @RetCode = 13
  36329. SET @ErrorMsg = N'WEB扣金:扣金数量不正确'
  36330. RETURN
  36331. END
  36332. --添加日志
  36333. SET @Msg = N'Admin Reduce Coin, @UserID=' + LTRIM(STR(@UserID)) + ',@WantAmount=' + CAST(@WantAmount AS VARCHAR(32)) + ',@Reason=' + @Reason
  36334. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  36335. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  36336. BEGIN TRAN
  36337. --扣除现金
  36338. IF(@WantAmount > 0)
  36339. BEGIN
  36340. SET @chvDBServerName = (SELECT ServerName FROM [CasinoOnline] WHERE UserID = @UserID )
  36341. IF(@chvDBServerName IS NOT NULL)
  36342. BEGIN
  36343. ROLLBACK TRAN
  36344. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  36345. SET @chvRemark = N'Web deduction: users have locks ' + @Reason
  36346. INSERT INTO [MoneyLog]
  36347. (
  36348. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36349. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36350. )
  36351. VALUES
  36352. (
  36353. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  36354. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36355. )
  36356. SET @RetCode = 15
  36357. SET @ErrorMsg = N'当前您在服务器:' + @chvDBServerName + '中,请退出'
  36358. RETURN
  36359. END
  36360. -----------------检查用户现金-------------------------------
  36361. SELECT @intCurrentAmount = [Amount] FROM [Money] WHERE [UserID] = @UserID
  36362. IF(@intCurrentAmount < @WantAmount)
  36363. BEGIN
  36364. ROLLBACK TRAN
  36365. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  36366. SET @chvRemark = N'Web deduction: user cash is not enough ' + @Reason
  36367. INSERT INTO [MoneyLog]
  36368. (
  36369. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36370. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36371. )
  36372. VALUES
  36373. (
  36374. @SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
  36375. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36376. )
  36377. SET @RetCode = 16
  36378. SET @ErrorMsg = N'对不起,您的现金量不足不可以进行这次操作'
  36379. RETURN
  36380. END
  36381. UPDATE [Money] SET Amount = Amount - @WantAmount WHERE UserID = @UserID
  36382. END
  36383. COMMIT TRAN
  36384. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  36385. --------------写Log和统计----------------
  36386. IF(@WantAmount > 0)
  36387. BEGIN
  36388. SET @chvRemark = N'Successful gold coin deduction ' + @Reason
  36389. INSERT INTO [MoneyLog]
  36390. (
  36391. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36392. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36393. )
  36394. VALUES
  36395. (
  36396. @SourceName, 0, 'CASH', @UserID, @intCurrentAmount, -@WantAmount,
  36397. @intCurrentAmount - @WantAmount, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36398. )
  36399. END
  36400. --统计
  36401. SET @WantAmount = -@WantAmount
  36402. EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @WantAmount, @TaxSum = 0, @LogType = @LogType
  36403. SET @RetCode = 1
  36404. SET @ErrorMsg = N'扣金币成功'
  36405. RETURN
  36406. END
  36407. GO
  36408. /****** Object: StoredProcedure [dbo].[prMoney_WebSendCoin] Script Date: 2024/1/12 11:01:14 ******/
  36409. SET ANSI_NULLS ON
  36410. GO
  36411. SET QUOTED_IDENTIFIER ON
  36412. GO
  36413. /*
  36414. WEB通用调用加金币接口
  36415. */
  36416. CREATE PROCEDURE [dbo].[prMoney_WebSendCoin]
  36417. @UserID INT,
  36418. @SourceName NVARCHAR(32), --Web应用名称 BuyKey (U币购买门票)
  36419. @Reason NVARCHAR(128),
  36420. @WantAmount BIGINT,
  36421. @IPAddress VARCHAR(16),
  36422. @OpUserID INT,
  36423. @OpUserName VARCHAR(32),
  36424. @RetCode TINYINT OUTPUT,
  36425. @ErrorMsg NVARCHAR(128) OUTPUT --错误描述
  36426. AS
  36427. SET NOCOUNT ON
  36428. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  36429. SET XACT_ABORT ON
  36430. BEGIN
  36431. DECLARE @intCurrentAmount BIGINT
  36432. DECLARE @chvRemark VARCHAR(128)
  36433. DECLARE @LogType INT
  36434. DECLARE @MaxAmount BIGINT --最大额度
  36435. DECLARE @SendAmount BIGINT --发送金额
  36436. DECLARE @Msg NVARCHAR(4000)
  36437. DECLARE @RoleID INT --角色ID
  36438. SET @intCurrentAmount = 0
  36439. SET @Reason = '(' + LTRIM(STR(@OpUserID)) + ',' + @OpUserName + '),' + @Reason
  36440. SET @RetCode = 0
  36441. SET @ErrorMsg = ''
  36442. SET @LogType = 5
  36443. SET @MaxAmount = 10000
  36444. SET @RoleID = 0
  36445. IF(@SourceName IS NULL OR @SourceName = '')
  36446. BEGIN
  36447. SET @SourceName = ''
  36448. SET @chvRemark = N'Web application name is empty,' + @Reason
  36449. INSERT INTO [MoneyLog]
  36450. (
  36451. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36452. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36453. )
  36454. VALUES
  36455. (
  36456. @SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
  36457. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36458. )
  36459. SET @RetCode = 11
  36460. SET @ErrorMsg = N'Web application name is empty'
  36461. RETURN
  36462. END
  36463. IF(@UserID IS NULL OR @UserID <=0)
  36464. BEGIN
  36465. SET @UserID = 1
  36466. SET @chvRemark = N'Incorrect user ID ' + @Reason
  36467. INSERT INTO [MoneyLog]
  36468. (
  36469. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36470. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36471. )
  36472. VALUES
  36473. (
  36474. @SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
  36475. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36476. )
  36477. SET @RetCode = 12
  36478. SET @ErrorMsg = N'Incorrect user ID'
  36479. END
  36480. IF(@WantAmount < 0)
  36481. BEGIN
  36482. SET @chvRemark = N'Incorrect amount of money delivered ' + @Reason
  36483. INSERT INTO [MoneyLog]
  36484. (
  36485. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36486. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36487. )
  36488. VALUES
  36489. (
  36490. @SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
  36491. 0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36492. )
  36493. SET @RetCode = 13
  36494. SET @ErrorMsg = N'送金数量不正确'
  36495. RETURN
  36496. END
  36497. --角色ID
  36498. SELECT TOP 1 @RoleID = RoleID FROM [RoleUser] WHERE AdminUserID = @OpUserID ORDER BY RoleID ASC
  36499. --管理员角色
  36500. IF(@RoleID = 1)
  36501. BEGIN
  36502. SET @MaxAmount = 1000000
  36503. --测试账号
  36504. IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  36505. BEGIN
  36506. SET @MaxAmount = 100000000
  36507. END
  36508. END
  36509. --发送总额
  36510. SELECT @SendAmount = ISNULL(SUM(WantAmount), 0) FROM [AdminSendCoin] WHERE Crdate >= CONVERT(CHAR(10), GETDATE(), 120)
  36511. --赠送超出今天限额
  36512. IF(@SendAmount + @WantAmount > @MaxAmount)
  36513. BEGIN
  36514. SET @RetCode = 15
  36515. SET @ErrorMsg = N'The increase exceeds the limit'
  36516. RETURN
  36517. END
  36518. --加入今天赠送日志
  36519. INSERT INTO [AdminSendCoin]
  36520. (
  36521. OpUserID, OpUserName, UserID, WantAmount, Crdate
  36522. )
  36523. VALUES
  36524. (
  36525. @OpUserID, @OpUserName, @UserID, @WantAmount, GETDATE()
  36526. )
  36527. --添加日志
  36528. SET @Msg = N'Admin Send Coin, @UserID=' + LTRIM(STR(@UserID)) + ',@WantAmount=' + CAST(@WantAmount AS VARCHAR(32)) + ',@Reason=' + @Reason
  36529. EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
  36530. SELECT @intCurrentAmount = [Amount] FROM [Money] WHERE [UserID] = @UserID
  36531. -------------加金币、保险柜------------------------
  36532. UPDATE [Money] SET [Amount] = [Amount] + @WantAmount WHERE [UserID] = @UserID
  36533. IF(@@RowCount = 0)
  36534. BEGIN
  36535. INSERT INTO [Money]
  36536. (
  36537. UserID, Amount, Bank, RegisterTime, RefreshTime
  36538. )
  36539. VALUES
  36540. (
  36541. @UserID, @WantAmount, 0, GETDATE(), GETDATE()
  36542. )
  36543. END
  36544. --------------写Log和统计----------------
  36545. IF(@WantAmount > 0)
  36546. BEGIN
  36547. SET @chvRemark = N'Gold coin delivered successfully ' + @Reason
  36548. INSERT INTO [MoneyLog]
  36549. (
  36550. [SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  36551. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  36552. )
  36553. VALUES
  36554. (
  36555. @SourceName, 0, 'CASH', @UserID, @intCurrentAmount, @WantAmount,
  36556. @intCurrentAmount + @WantAmount, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
  36557. )
  36558. END
  36559. --统计
  36560. EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @WantAmount, @TaxSum = 0, @LogType = @LogType
  36561. SET @RetCode = 1
  36562. SET @ErrorMsg = N'送金币成功'
  36563. RETURN
  36564. END
  36565. GO
  36566. /****** Object: StoredProcedure [dbo].[proc_insert] Script Date: 2024/1/12 11:01:14 ******/
  36567. SET ANSI_NULLS ON
  36568. GO
  36569. SET QUOTED_IDENTIFIER ON
  36570. GO
  36571. /*
  36572. 根据网上资料修改,完成于 2006-6-26
  36573. 增加对自增列的支持
  36574. 不支持text等指针类型字段
  36575. 支持限制行数, 支持bigint,支持where条件. 2010-1-26 15:14:31
  36576. */
  36577. CREATE PROCEDURE [dbo].[proc_insert] (
  36578. @tablename varchar(256),
  36579. @keepidentity tinyint =1, -- 是否保留identity原值 1:保留 0:不保留
  36580. @whereclause varchar(256), --where 条件,如果有,需要带上 where 关键词
  36581. @limitrows int =0 --只需要多少行,0表示需要所有的行
  36582. )
  36583. as
  36584. set nocount on
  36585. declare @sqlstr varchar(7200)
  36586. declare @sqlstr1 varchar(7200)
  36587. declare @sqlstr2 varchar(7200)
  36588. select @sqlstr='select ''insert '+@tablename
  36589. select @sqlstr1=''
  36590. select @sqlstr2=' ('
  36591. select @sqlstr1= ' values ( ''+'
  36592. if @keepidentity = 1 --保留identity原值
  36593. select @sqlstr1=@sqlstr1+col+'+'',''+' ,@sqlstr2=@sqlstr2+name +',' from (select case
  36594. -- when a.xtype =173 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
  36595. when a.xtype =104 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(1),'+a.name +')'+' end'
  36596. when a.xtype =175 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
  36597. when a.xtype =61 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
  36598. when a.xtype =106 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
  36599. when a.xtype =62 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
  36600. when a.xtype in (127,56) then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(30),'+a.name +')'+' end'
  36601. when a.xtype =60 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
  36602. when a.xtype =239 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
  36603. when a.xtype =108 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
  36604. when a.xtype =231 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
  36605. when a.xtype =59 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
  36606. when a.xtype =58 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
  36607. when a.xtype =52 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(12),'+a.name +')'+' end'
  36608. when a.xtype =122 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
  36609. when a.xtype =48 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(6),'+a.name +')'+' end'
  36610. -- when a.xtype =165 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
  36611. when a.xtype =167 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
  36612. else '''NULL'''
  36613. --对text类型35不支持
  36614. end as col,a.colid,a.name
  36615. from syscolumns a where a.id = object_id(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and a.xtype <>36
  36616. )t order by colid
  36617. else --不用保留identity原值
  36618. select @sqlstr1=@sqlstr1+col+'+'',''+' ,@sqlstr2=@sqlstr2+name +',' from (select case
  36619. -- when a.xtype =173 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
  36620. when a.xtype =104 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(1),'+a.name +')'+' end'
  36621. when a.xtype =175 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
  36622. when a.xtype =61 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
  36623. when a.xtype =106 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
  36624. when a.xtype =62 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
  36625. when a.xtype in (127,56) then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(30),'+a.name +')'+' end'
  36626. when a.xtype =60 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
  36627. when a.xtype =239 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
  36628. when a.xtype =108 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
  36629. when a.xtype =231 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
  36630. when a.xtype =59 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
  36631. when a.xtype =58 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
  36632. when a.xtype =52 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(12),'+a.name +')'+' end'
  36633. when a.xtype =122 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
  36634. when a.xtype =48 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(6),'+a.name +')'+' end'
  36635. -- when a.xtype =165 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
  36636. when a.xtype =167 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
  36637. else '''NULL'''
  36638. end as col,a.colid,a.name
  36639. from syscolumns a where a.id = object_id(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and a.xtype <>36
  36640. and columnproperty(object_id(@tablename),a.name,'isidentity')!=1
  36641. )t order by colid
  36642. select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+') '+left(@sqlstr1,len(@sqlstr1)-3)+')'' from '+@tablename + ' ' + @whereclause
  36643. print @sqlstr
  36644. set rowcount @limitrows
  36645. exec( @sqlstr)
  36646. set rowcount 0
  36647. --如果需要保留identity原值,又有identity列时,输出 set identity_insert 语句
  36648. if OBJECTPROPERTY(OBJECT_ID(@tablename),'TableHasIdentity') =1 and @keepidentity = 1
  36649. begin
  36650. print 'set identity_insert ' + @tablename + ' on'
  36651. print 'set identity_insert ' + @tablename + ' off'
  36652. end
  36653. GO
  36654. /****** Object: StoredProcedure [dbo].[prVerifyKeepID] Script Date: 2024/1/12 11:01:14 ******/
  36655. SET ANSI_NULLS ON
  36656. GO
  36657. SET QUOTED_IDENTIFIER ON
  36658. GO
  36659. /****** Object: Stored Procedure dbo.prVerifyKeepID Script Date: 2008-11-4 16:52:53 ******/
  36660. /*
  36661. 说明:校验是否为保留ID
  36662. 返回:9 是保留ID 其他不是
  36663. */
  36664. CREATE PROCEDURE [dbo].[prVerifyKeepID]
  36665. @intUserID int,
  36666. @chvKeepLoginName varchar(50) output, --返回保留用户名
  36667. @chvKeepPwd varchar(20) output, --返回保留用户密码
  36668. @chvKeepEPwd varchar(100) output --返回保留用户加密密码
  36669. AS
  36670. BEGIN
  36671. set @chvKeepLoginName = '保留用户 ('+ cast(@intUserID as varchar(20)) +')'
  36672. set @chvKeepPwd = left(cast(newid() as varchar(100)),8)
  36673. set @chvKeepPwd = convert(varchar,ascii(substring(@chvKeepPwd, 1,1)))
  36674. +convert(varchar,ascii(substring(@chvKeepPwd, 2,1)))
  36675. +convert(varchar,ascii(substring(@chvKeepPwd, 3,1)))
  36676. set @chvKeepEPwd = dbo.fn_md5(cast(@intUserID as varchar) + @chvKeepPwd)
  36677. /*
  36678. --校验保留ID表
  36679. if exists(select * from dbo.KeepID where KeepUserID = @intUserID) begin
  36680. return 9
  36681. end
  36682. */
  36683. --校验保留ID规则
  36684. declare @chvCheckStr varchar(4)
  36685. set @chvCheckStr = cast(@intUserID as varchar(20))
  36686. if ( charindex('1111', @chvCheckStr)>0
  36687. or charindex('2222', @chvCheckStr)>0
  36688. or charindex('333', @chvCheckStr)>0
  36689. or charindex('4444', @chvCheckStr)>0
  36690. or charindex('5555', @chvCheckStr)>0
  36691. or charindex('666', @chvCheckStr)>0
  36692. or charindex('7777', @chvCheckStr)>0
  36693. or charindex('888', @chvCheckStr)>0
  36694. or charindex('999', @chvCheckStr)>0 ) begin
  36695. return 9
  36696. end
  36697. set @chvKeepLoginName = ''
  36698. set @chvKeepPwd = ''
  36699. set @chvKeepEPwd = ''
  36700. return 1
  36701. END
  36702. GO
  36703. /****** Object: StoredProcedure [dbo].[WS_AllGame_GetList] Script Date: 2024/1/12 11:01:14 ******/
  36704. SET ANSI_NULLS ON
  36705. GO
  36706. SET QUOTED_IDENTIFIER ON
  36707. GO
  36708. -- EXEC [WS_AllGame_GetList]
  36709. -- ==============================================
  36710. -- Author: wolf
  36711. -- Create Date: 2015-03-13
  36712. -- Mendor: wolf
  36713. -- Alter Date: 2016-06-02
  36714. -- Description: 游戏列表
  36715. -- ==============================================
  36716. CREATE PROCEDURE [dbo].[WS_AllGame_GetList]
  36717. @PartnerID INT = 0 --渠道ID
  36718. AS
  36719. SET NOCOUNT ON
  36720. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  36721. SET XACT_ABORT ON
  36722. BEGIN
  36723. DECLARE @EnglishName VARCHAR(32) --游戏英文名
  36724. --获取某个渠道
  36725. IF(@PartnerID > 0)
  36726. BEGIN
  36727. --获取英文名
  36728. SELECT @EnglishName = EnglishName FROM [Partner] WHERE PartnerID = @PartnerID
  36729. --返回信息:游戏ID(GameID)(int)、中文名称(ChineseName)(varchar(32))、英文名称(EnglishName)(varchar(32))
  36730. SELECT
  36731. GameID, ChineseName, EnglishName, GameType, CAST(DisplaySort AS VARCHAR(16)) AS DisplaySort,
  36732. CASE
  36733. WHEN EnglishName = @EnglishName THEN 1
  36734. ELSE 0
  36735. END AS PartnerSort, NeedLevel
  36736. FROM
  36737. [AllGame]
  36738. WHERE
  36739. Enabled = 1
  36740. ORDER BY
  36741. PartnerSort DESC, DisplaySort ASC
  36742. RETURN
  36743. END
  36744. --返回信息:游戏ID(GameID)(int)、中文名称(ChineseName)(varchar(32))、英文名称(EnglishName)(varchar(32))
  36745. SELECT
  36746. GameID, ChineseName, EnglishName, GameType,
  36747. CAST(DisplaySort AS VARCHAR(16)) AS DisplaySort,
  36748. 0 AS PartnerSort, NeedLevel
  36749. FROM
  36750. [AllGame]
  36751. WHERE
  36752. Enabled = 1
  36753. ORDER BY
  36754. DisplaySort ASC
  36755. RETURN
  36756. END
  36757. GO
  36758. /****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeFace] Script Date: 2024/1/12 11:01:14 ******/
  36759. SET ANSI_NULLS ON
  36760. GO
  36761. SET QUOTED_IDENTIFIER ON
  36762. GO
  36763. -- EXEC [WS_AllUser_ChangeFace]
  36764. -- @UserID = 100,
  36765. -- @FaceID = 2,
  36766. -- @Face = 0x
  36767. -- ==============================================
  36768. -- Author: wolf
  36769. -- Create Date: 2015-03-16
  36770. -- Mendor: wolf
  36771. -- Alter Date: 2016-04-19
  36772. -- Description: 修改头像
  36773. -- ==============================================
  36774. CREATE PROCEDURE [dbo].[WS_AllUser_ChangeFace]
  36775. @UserID INT, --用户ID
  36776. @Sex TINYINT, --性别(无效)
  36777. @FaceID SMALLINT, --头像ID(-1=玩家上传头像)
  36778. @FaceUrl VARCHAR(1024) --头像URL
  36779. AS
  36780. SET NOCOUNT ON
  36781. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  36782. SET XACT_ABORT ON
  36783. BEGIN
  36784. DECLARE @CurrTime DATETIME --系统当前时间
  36785. SET @CurrTime = GETDATE()
  36786. IF(LEN(@FaceUrl) >= 1024)
  36787. RETURN 11
  36788. --更新头像
  36789. UPDATE
  36790. [UserFace]
  36791. SET
  36792. FaceUrl = @FaceUrl, FaceID = @FaceID
  36793. WHERE
  36794. UserID = @UserID
  36795. RETURN 1
  36796. END
  36797. GO
  36798. /****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeNameTimes] Script Date: 2024/1/12 11:01:14 ******/
  36799. SET ANSI_NULLS ON
  36800. GO
  36801. SET QUOTED_IDENTIFIER ON
  36802. GO
  36803. -- EXEC [WS_AllUser_ChangeNameTimes]
  36804. -- ==============================================
  36805. -- Author: wolf
  36806. -- Create Date: 2014-06-11
  36807. -- Mendor: wolf
  36808. -- Alter Date: 2014-12-29
  36809. -- Description: 修改昵称次数
  36810. -- ==============================================
  36811. CREATE PROCEDURE [dbo].[WS_AllUser_ChangeNameTimes]
  36812. @UserID INT --用户ID
  36813. AS
  36814. SET NOCOUNT ON
  36815. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  36816. SET XACT_ABORT ON
  36817. BEGIN
  36818. DECLARE @ChangeTimes INT --修改次数
  36819. SELECT @ChangeTimes = COUNT(UserID) FROM [ChangedNickNameLog] WHERE UserID = @UserID
  36820. --返回信息
  36821. SELECT @ChangeTimes AS ChangeTimes
  36822. RETURN
  36823. END
  36824. GO
  36825. /****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeNickName] Script Date: 2024/1/12 11:01:14 ******/
  36826. SET ANSI_NULLS ON
  36827. GO
  36828. SET QUOTED_IDENTIFIER ON
  36829. GO
  36830. -- DECLARE @RetCode TINYINT
  36831. -- EXEC [WS_AllUser_ChangeNickName]
  36832. -- @UserID = 100,
  36833. -- @NickName = '',
  36834. -- @RetCode = @RetCode OUTPUT
  36835. -- SELECT @RetCode AS RetCode
  36836. -- ==============================================
  36837. -- Author: wolf
  36838. -- Create Date: 2015-03-16
  36839. -- Mendor: wolf
  36840. -- Alter Date: 2016-04-11
  36841. -- Description: 修改用户昵称
  36842. -- ==============================================
  36843. CREATE PROCEDURE [dbo].[WS_AllUser_ChangeNickName]
  36844. @UserID INT, --用户ID
  36845. @NickName NVARCHAR(32), --昵称
  36846. @RetCode TINYINT OUTPUT --操作结果
  36847. --操作结果描述:1=操作成功 11=含有敏感字 12=账号不存在 13=钻石不足 14=账号名称已经存在
  36848. AS
  36849. SET NOCOUNT ON
  36850. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  36851. SET XACT_ABORT ON
  36852. BEGIN
  36853. DECLARE @OldNickName NVARCHAR(32) --旧昵称
  36854. DECLARE @Remark VARCHAR(128) --备注
  36855. SET @RetCode = 0
  36856. SELECT @OldNickName = NickName FROM [AllUser] WHERE UserID = @UserID
  36857. IF(LEN(@NickName) <= 0)
  36858. BEGIN
  36859. SET @RetCode = 11
  36860. RETURN
  36861. END
  36862. --更新昵称
  36863. UPDATE [AllUser] SET NickName = @NickName, @OldNickName = NickName WHERE UserID = @UserID
  36864. IF(@@ROWCOUNT = 0)
  36865. BEGIN
  36866. SET @RetCode = 12
  36867. RETURN
  36868. END
  36869. --修改昵称日志
  36870. INSERT INTO [ChangedNickNameLog]
  36871. (
  36872. UserID, OldNickName, NewNickName, Crdate
  36873. )
  36874. VALUES
  36875. (
  36876. @UserID, @OldNickName, @NickName, GETDATE()
  36877. )
  36878. SET @RetCode = 1
  36879. RETURN
  36880. END
  36881. GO
  36882. /****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeSex] Script Date: 2024/1/12 11:01:14 ******/
  36883. SET ANSI_NULLS ON
  36884. GO
  36885. SET QUOTED_IDENTIFIER ON
  36886. GO
  36887. -- EXEC [WS_AllUser_ChangeSex]
  36888. -- @UserID = 100,
  36889. -- @Sex = 1
  36890. -- ==============================================
  36891. -- Author: wolf
  36892. -- Create Date: 2015-03-16
  36893. -- Mendor: wolf
  36894. -- Alter Date: 2016-04-11
  36895. -- Description: 修改性别
  36896. -- ==============================================
  36897. CREATE PROCEDURE [dbo].[WS_AllUser_ChangeSex]
  36898. @UserID INT, --用户ID
  36899. @Sex TINYINT --性别 0=默认(无) 1=男 2=女
  36900. AS
  36901. SET NOCOUNT ON
  36902. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  36903. SET XACT_ABORT ON
  36904. BEGIN
  36905. DECLARE @FaceID SMALLINT --脸谱ID(-1=玩家上传头像)
  36906. DECLARE @RetCode TINYINT --操作结果
  36907. SET @RetCode = 0
  36908. --1=男
  36909. IF(@Sex = 1)
  36910. BEGIN
  36911. --随机头像,男性头像1-10
  36912. EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 10, @Rnd = @FaceID OUTPUT
  36913. END
  36914. --2=女
  36915. ELSE IF(@Sex = 2)
  36916. BEGIN
  36917. --随机头像,女性头像11-20
  36918. EXEC [Game_Rand_GetRnd] @Min = 11, @Max = 20, @Rnd = @FaceID OUTPUT
  36919. END
  36920. --修改性别
  36921. UPDATE [UserFace] SET Sex = @Sex, FaceID = @FaceID WHERE UserID = @UserID
  36922. SET @RetCode = 1
  36923. --返回信息
  36924. SELECT @RetCode AS RetCode, @FaceID AS FaceID
  36925. RETURN
  36926. END
  36927. GO
  36928. /****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeUserWord] Script Date: 2024/1/12 11:01:14 ******/
  36929. SET ANSI_NULLS ON
  36930. GO
  36931. SET QUOTED_IDENTIFIER ON
  36932. GO
  36933. -- DECLARE @RetCode INT
  36934. -- EXEC [WS_AllUser_ChangeUserWord]
  36935. -- @UserID = 100,
  36936. -- @UserWords = '',
  36937. -- @RetCode = @RetCode OUTPUT
  36938. -- SELECT @RetCode AS RetCode
  36939. -- ==============================================
  36940. -- Author: wolf
  36941. -- Create Date: 2015-03-23
  36942. -- Mendor: wolf
  36943. -- Alter Date: 2015-03-23
  36944. -- Description: 修改个性签名
  36945. -- ==============================================
  36946. CREATE PROCEDURE [dbo].[WS_AllUser_ChangeUserWord]
  36947. @UserID INT, --用户ID
  36948. @UserWords NVARCHAR(256), --个性签名
  36949. @RetCode TINYINT OUTPUT --操作结果
  36950. --操作结果描述:1=操作成功 11=含有敏感字 12=账号不存在
  36951. AS
  36952. SET NOCOUNT ON
  36953. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  36954. SET XACT_ABORT ON
  36955. BEGIN
  36956. SET @RetCode = 0
  36957. --检查非法字符
  36958. IF(CHARINDEX('>', @UserWords) > 0 OR CHARINDEX('<', @UserWords) > 0)
  36959. BEGIN
  36960. SET @RetCode = 11
  36961. RETURN
  36962. END
  36963. --替换掉屏蔽字
  36964. --SELECT @UserWords = REPLACE(@UserWords, LimitWord, REPLICATE('*', LEN(LimitWord))) FROM [LimitWord]
  36965. --修改签名
  36966. UPDATE [AllUser] SET UserWords = @UserWords WHERE UserID = @UserID
  36967. /*
  36968. INSERT INTO [UserWordsPool]
  36969. (
  36970. UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
  36971. )
  36972. VALUES
  36973. (
  36974. @UserID, @UserWords, '', 0, 0, '', '2021-01-01', GETDATE()
  36975. )
  36976. */
  36977. SET @RetCode = 1
  36978. RETURN
  36979. END
  36980. GO
  36981. /****** Object: StoredProcedure [dbo].[WS_AllUser_CheckLogin] Script Date: 2024/1/12 11:01:14 ******/
  36982. SET ANSI_NULLS ON
  36983. GO
  36984. SET QUOTED_IDENTIFIER ON
  36985. GO
  36986. -- EXEC [WS_AllUser_CheckLogin]
  36987. -- ==============================================
  36988. -- Author: wolf
  36989. -- Create Date: 2015-10-10
  36990. -- Mendor: wolf
  36991. -- Alter Date: 2015-10-10
  36992. -- Description: 检查登录
  36993. -- ==============================================
  36994. CREATE PROCEDURE [dbo].[WS_AllUser_CheckLogin]
  36995. @UserID INT, --用户ID
  36996. @EPassword VARCHAR(32) --登录密码(密文)
  36997. AS
  36998. SET NOCOUNT ON
  36999. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37000. SET XACT_ABORT ON
  37001. BEGIN
  37002. DECLARE @RetCode TINYINT --操作结果
  37003. DECLARE @DBPassword VARCHAR(32) --密码
  37004. DECLARE @Amount BIGINT --金币
  37005. DECLARE @Bank BIGINT --保险柜
  37006. DECLARE @NickName NVARCHAR(32) --昵称
  37007. DECLARE @FaceID SMALLINT --头像ID
  37008. DECLARE @FaceUrl VARCHAR(1024) --头像URL
  37009. DECLARE @Sex TINYINT --性别 0=默认(无) 1=男 2=女
  37010. DECLARE @VipLevel INT --Vip等级
  37011. DECLARE @UserWords NVARCHAR(256) --个性签名
  37012. DECLARE @Code INT --推荐码
  37013. DECLARE @IsGuest TINYINT --是否游客
  37014. DECLARE @TeacherID INT --师父ID
  37015. DECLARE @ChipAmount BIGINT --筹码
  37016. DECLARE @ChipBank BIGINT --筹码保险柜
  37017. DECLARE @Currency VARCHAR(32) --币种
  37018. DECLARE @CurrencyIsModify TINYINT --是否允许修改(1=允许修改 其他=禁止修改)
  37019. DECLARE @UTMSource NVARCHAR(128) --广告系列来源
  37020. DECLARE @Charm INT --魅力值
  37021. SET @RetCode = 0
  37022. SET @Amount = 0
  37023. SET @Bank = 0
  37024. SET @NickName = ''
  37025. SET @FaceID = 0
  37026. SET @FaceUrl = ''
  37027. SET @VipLevel = 0
  37028. SET @Sex = 0
  37029. SET @UserWords = ''
  37030. SET @Code = 0
  37031. SET @IsGuest = 0
  37032. SET @TeacherID = 0
  37033. SET @ChipAmount = 0
  37034. SET @ChipBank = 0
  37035. SET @Currency = ''
  37036. SET @CurrencyIsModify = 1
  37037. SET @UTMSource = 'Default'
  37038. SET @Charm = 0
  37039. --用户信息
  37040. SELECT
  37041. @NickName = NickName, @DBPassword = EPassword, @UserWords = UserWords,
  37042. @IsGuest = CASE
  37043. WHEN LEFT(IMei, 3) = 'fb.' OR LEFT(deviceid, 3) = 'fb.' THEN 0
  37044. WHEN LEFT(IMei, 3) = 'gg.' OR LEFT(deviceid, 3) = 'gg.' THEN 0
  37045. ELSE 1
  37046. END
  37047. FROM
  37048. [AllUser]
  37049. WHERE
  37050. UserID = @UserID
  37051. IF(@@ROWCOUNT = 0)
  37052. BEGIN
  37053. SELECT
  37054. @RetCode AS RetCode, @Amount AS Amount, @NickName AS NickName, @FaceID AS FaceID,
  37055. @FaceUrl AS FaceUrl, @VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex,
  37056. @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  37057. 0 AS HigherUserID, 0 AS Grade, @ChipAmount AS ChipAmount, @ChipBank AS ChipBank,
  37058. @Currency AS Currency, @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource,
  37059. @Charm AS Charm
  37060. RETURN
  37061. END
  37062. --判断密码
  37063. IF(@EPassword IS NULL OR @EPassword != @DBPassword)
  37064. BEGIN
  37065. SELECT
  37066. @RetCode AS RetCode, @Amount AS Amount, @NickName AS NickName, @FaceID AS FaceID,
  37067. @FaceUrl AS FaceUrl, @VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex,
  37068. @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  37069. 0 AS HigherUserID, 0 AS Grade, @ChipAmount AS ChipAmount, @ChipBank AS ChipBank,
  37070. @Currency AS Currency, @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource,
  37071. @Charm AS Charm
  37072. RETURN
  37073. END
  37074. --头像
  37075. SELECT @Sex = Sex, @FaceID = FaceID, @FaceUrl = FaceUrl FROM [UserFace] WHERE UserID = @UserID
  37076. --金币
  37077. EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
  37078. --Vip级别
  37079. SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
  37080. --推荐码
  37081. SELECT @Code = Code FROM [SpreadMember] WHERE UserID = @UserID
  37082. --师父ID
  37083. SELECT @TeacherID = TeacherID FROM [UserTeacher] WHERE StudentID = @UserID
  37084. --筹码
  37085. EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
  37086. --币种
  37087. SELECT @Currency = Currency, @CurrencyIsModify = IsModify FROM [UserCountry] WHERE UserID = @UserID
  37088. --注册流量渠道
  37089. SELECT @UTMSource = Source FROM [UTM] WHERE UserID = @UserID
  37090. --魅力值
  37091. SELECT @Charm = Charm FROM [UserCharm] WHERE UserID = @UserID
  37092. --操作成功
  37093. SET @RetCode = 1
  37094. SELECT
  37095. @RetCode AS RetCode, @Amount AS Amount, @NickName AS NickName, @FaceID AS FaceID,
  37096. @FaceUrl AS FaceUrl, @VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex,
  37097. @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  37098. 0 AS HigherUserID, 0 AS Grade, @ChipAmount AS ChipAmount, @ChipBank AS ChipBank,
  37099. @Currency AS Currency, @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource,
  37100. @Charm AS Charm
  37101. RETURN
  37102. END
  37103. GO
  37104. /****** Object: StoredProcedure [dbo].[WS_AllUser_DelAccount] Script Date: 2024/1/12 11:01:14 ******/
  37105. SET ANSI_NULLS ON
  37106. GO
  37107. SET QUOTED_IDENTIFIER ON
  37108. GO
  37109. -- EXEC [WS_AllUser_DelAccount]
  37110. -- ==============================================
  37111. -- Author: wolf
  37112. -- Create Date: 2015-02-06
  37113. -- Mendor: wolf
  37114. -- Alter Date: 2016-09-11
  37115. -- Description: 删除账号
  37116. -- ==============================================
  37117. CREATE PROCEDURE [dbo].[WS_AllUser_DelAccount]
  37118. @UserID INT --用户ID
  37119. AS
  37120. SET NOCOUNT ON
  37121. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37122. SET XACT_ABORT ON
  37123. BEGIN
  37124. DECLARE @IMei VARCHAR(64)
  37125. DECLARE @deviceid VARCHAR(64)
  37126. DECLARE @Suffix VARCHAR(64) --废弃的账号
  37127. DECLARE @RetCode TINYINT --操作结果
  37128. SET @RetCode = 0
  37129. --后缀
  37130. SET @Suffix = '_' + REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(16), GETDATE(), 120), '-', ''), ' ', ''), ':', '')
  37131. --账号信息
  37132. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
  37133. IF(@@ROWCOUNT = 0)
  37134. BEGIN
  37135. SET @RetCode = 11
  37136. SELECT @RetCode AS RetCode
  37137. RETURN
  37138. END
  37139. --删除账号信息
  37140. UPDATE
  37141. [AllUser]
  37142. SET
  37143. IMei = CASE WHEN @IMei != '' THEN IMei + @Suffix ELSE IMei END,
  37144. deviceid = CASE WHEN @deviceid != '' THEN deviceid + @Suffix ELSE deviceid END
  37145. WHERE
  37146. UserID = @UserID
  37147. UPDATE
  37148. [UserIdentity]
  37149. SET
  37150. IMei = CASE WHEN @IMei != '' THEN IMei + @Suffix ELSE IMei END
  37151. WHERE
  37152. UserID = @UserID
  37153. SET @RetCode = 1
  37154. --返回信息
  37155. SELECT @RetCode AS RetCode
  37156. RETURN
  37157. END
  37158. GO
  37159. /****** Object: StoredProcedure [dbo].[WS_AllUser_DelFacebook] Script Date: 2024/1/12 11:01:14 ******/
  37160. SET ANSI_NULLS ON
  37161. GO
  37162. SET QUOTED_IDENTIFIER ON
  37163. GO
  37164. -- EXEC [WS_AllUser_DelFacebook]
  37165. -- ==============================================
  37166. -- Author: wolf
  37167. -- Create Date: 2015-02-06
  37168. -- Mendor: wolf
  37169. -- Alter Date: 2016-09-11
  37170. -- Description: 删除facebook账号
  37171. -- ==============================================
  37172. CREATE PROCEDURE [dbo].[WS_AllUser_DelFacebook]
  37173. @FacebookID VARCHAR(64)
  37174. AS
  37175. SET NOCOUNT ON
  37176. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37177. SET XACT_ABORT ON
  37178. BEGIN
  37179. DECLARE @IMei VARCHAR(64)
  37180. DECLARE @deviceid VARCHAR(64)
  37181. DECLARE @Suffix VARCHAR(64) --废弃的账号
  37182. DECLARE @UserID INT
  37183. SET @UserID = 0
  37184. IF(LEN(@FacebookID) <= 0)
  37185. BEGIN
  37186. SELECT @UserID AS UserID
  37187. RETURN
  37188. END
  37189. --后缀
  37190. SET @Suffix = '_' + REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(16), GETDATE(), 120), '-', ''), ' ', ''), ':', '')
  37191. --账号信息
  37192. SELECT @UserID = UserID, @IMei = IMei FROM [AllUser] WHERE IMei = @FacebookID
  37193. IF(@@ROWCOUNT = 0)
  37194. BEGIN
  37195. SELECT @UserID = UserID, @deviceid = deviceid FROM [AllUser] WHERE deviceid = @FacebookID
  37196. END
  37197. IF(@UserID <= 0)
  37198. BEGIN
  37199. SELECT @UserID AS UserID
  37200. RETURN
  37201. END
  37202. --删除账号信息
  37203. UPDATE
  37204. [AllUser]
  37205. SET
  37206. IMei = CASE WHEN @IMei != '' THEN IMei + @Suffix ELSE IMei END,
  37207. deviceid = CASE WHEN @deviceid != '' THEN deviceid + @Suffix ELSE deviceid END
  37208. WHERE
  37209. UserID = @UserID
  37210. UPDATE
  37211. [UserIdentity]
  37212. SET
  37213. IMei = CASE WHEN @IMei != '' THEN IMei + @Suffix ELSE IMei END
  37214. WHERE
  37215. UserID = @UserID
  37216. --返回信息
  37217. SELECT @UserID AS UserID
  37218. RETURN
  37219. END
  37220. GO
  37221. /****** Object: StoredProcedure [dbo].[WS_AllUser_GetAmountInfo] Script Date: 2024/1/12 11:01:14 ******/
  37222. SET ANSI_NULLS ON
  37223. GO
  37224. SET QUOTED_IDENTIFIER ON
  37225. GO
  37226. -- EXEC [WS_AllUser_GetAmountInfo]
  37227. -- ==============================================
  37228. -- Author: wolf
  37229. -- Create Date: 2014-06-17
  37230. -- Mendor: wolf
  37231. -- Alter Date: 2016-08-16
  37232. -- Description: 金币信息
  37233. -- ==============================================
  37234. CREATE PROCEDURE [dbo].[WS_AllUser_GetAmountInfo]
  37235. @UserID INT --用户ID
  37236. AS
  37237. SET NOCOUNT ON
  37238. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37239. SET XACT_ABORT ON
  37240. BEGIN
  37241. DECLARE @Amount BIGINT --现金 cash
  37242. DECLARE @Bank BIGINT --保险柜
  37243. SET @Amount = 0
  37244. SET @Bank = 0
  37245. --金币
  37246. EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
  37247. --返回信息
  37248. SELECT @Amount AS Amount, @Bank AS Bank
  37249. RETURN
  37250. END
  37251. GO
  37252. /****** Object: StoredProcedure [dbo].[WS_AllUser_GetBankInfo] Script Date: 2024/1/12 11:01:14 ******/
  37253. SET ANSI_NULLS ON
  37254. GO
  37255. SET QUOTED_IDENTIFIER ON
  37256. GO
  37257. -- EXEC [WS_AllUser_GetBankInfo]
  37258. -- ==============================================
  37259. -- Author: wolf
  37260. -- Create Date: 2016-07-11
  37261. -- Mendor: wolf
  37262. -- Alter Date: 2017-02-23
  37263. -- Description: 获取银行账号信息
  37264. -- ==============================================
  37265. CREATE PROCEDURE [dbo].[WS_AllUser_GetBankInfo]
  37266. @UserID INT --用户ID
  37267. AS
  37268. SET NOCOUNT ON
  37269. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37270. SET XACT_ABORT ON
  37271. BEGIN
  37272. --返回信息
  37273. SELECT TOP 1
  37274. RealName, BankName, BankCode, BankCard, Mobile
  37275. FROM
  37276. [UserBankInfo]
  37277. WHERE
  37278. UserID = @UserID
  37279. ORDER BY
  37280. Rid DESC
  37281. RETURN
  37282. END
  37283. GO
  37284. /****** Object: StoredProcedure [dbo].[WS_AllUser_GetBaseInfo] Script Date: 2024/1/12 11:01:14 ******/
  37285. SET ANSI_NULLS ON
  37286. GO
  37287. SET QUOTED_IDENTIFIER ON
  37288. GO
  37289. -- EXEC [WS_AllUser_GetBaseInfo]
  37290. -- ==============================================
  37291. -- Author: wolf
  37292. -- Create Date: 2014-01-21
  37293. -- Mendor: wolf
  37294. -- Alter Date: 2016-11-07
  37295. -- Description: 获取用户基本信息
  37296. -- ==============================================
  37297. CREATE PROCEDURE [dbo].[WS_AllUser_GetBaseInfo]
  37298. @UserID INT --用户ID
  37299. AS
  37300. SET NOCOUNT ON
  37301. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37302. SET XACT_ABORT ON
  37303. BEGIN
  37304. DECLARE @NickName NVARCHAR(32) --昵称
  37305. DECLARE @VipLevel INT --Vip等级
  37306. DECLARE @FaceID INT --头像ID
  37307. DECLARE @FaceUrl VARCHAR(1024) --头像URL
  37308. DECLARE @Sex INT --性别
  37309. DECLARE @UserWords NVARCHAR(256)
  37310. DECLARE @IsRobot TINYINT --是否机器人
  37311. DECLARE @PrivateRoomCount INT --私人场局数
  37312. DECLARE @Currency VARCHAR(32) --币种
  37313. DECLARE @Money BIGINT --金币数
  37314. DECLARE @Bank BIGINT --保险柜
  37315. DECLARE @Charm INT --魅力值
  37316. DECLARE @ChipAmount BIGINT --筹码金额
  37317. DECLARE @ChipBank BIGINT --筹码保险柜
  37318. SET @NickName = ''
  37319. SET @UserWords = ''
  37320. SET @FaceID = 0
  37321. SET @FaceUrl = ''
  37322. SET @Sex = 0
  37323. SET @VipLevel = 0
  37324. SET @IsRobot = 0
  37325. SET @PrivateRoomCount = 0
  37326. SET @Currency = ''
  37327. SET @Money = 0
  37328. SET @Bank = 0
  37329. SET @Charm = 0
  37330. SET @ChipAmount = 0
  37331. SET @ChipBank = 0
  37332. --账号昵称
  37333. SELECT
  37334. @NickName = NickName, @UserWords = UserWords,
  37335. @IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
  37336. FROM
  37337. [AllUser]
  37338. WHERE
  37339. UserID = @UserID
  37340. IF(@@ROWCOUNT = 0)
  37341. BEGIN
  37342. SELECT
  37343. @NickName AS NickName, @VipLevel AS VipLevel, @FaceID AS FaceID,
  37344. @FaceUrl AS FaceUrl, @Sex AS Sex, @UserWords AS UserWords,
  37345. @IsRobot AS IsRobot, @PrivateRoomCount AS PrivateRoomCount,
  37346. @Currency AS Currency, @Money AS Gold, @Charm AS Charm,
  37347. @ChipAmount AS ChipAmount
  37348. RETURN
  37349. END
  37350. --头像信息
  37351. SELECT
  37352. @FaceID = FaceID, @FaceUrl = FaceUrl, @Sex = Sex
  37353. FROM
  37354. [UserFace]
  37355. WHERE
  37356. UserID = @UserID
  37357. --VIP等级
  37358. SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
  37359. --私人场局数
  37360. SELECT @PrivateRoomCount = COUNT(Rid) FROM [ChairHistory] WHERE Crdate >= '2022-11-01' AND UserID = @UserID
  37361. --获取币种
  37362. SELECT @Currency = Currency FROM [UserCountry] WHERE UserID = @UserID
  37363. IF(@Currency = '')
  37364. BEGIN
  37365. SELECT @Currency = Currency FROM [ExchangeRate] WHERE IsDefault = 1
  37366. END
  37367. --金币
  37368. EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Money OUTPUT, @Bank = @Bank OUTPUT
  37369. --魅力值
  37370. SELECT @Charm = Charm FROM [UserCharm] WHERE UserID = @UserID
  37371. --筹码
  37372. EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
  37373. --返回信息
  37374. SELECT
  37375. @NickName AS NickName, @VipLevel AS VipLevel, @FaceID AS FaceID,
  37376. @FaceUrl AS FaceUrl, @Sex AS Sex, @UserWords AS UserWords,
  37377. @IsRobot AS IsRobot, @PrivateRoomCount AS PrivateRoomCount,
  37378. @Currency AS Currency, @Money AS Gold, @Charm AS Charm,
  37379. @ChipAmount AS ChipAmount
  37380. RETURN
  37381. END
  37382. GO
  37383. /****** Object: StoredProcedure [dbo].[WS_AllUser_GetBindInfo] Script Date: 2024/1/12 11:01:14 ******/
  37384. SET ANSI_NULLS ON
  37385. GO
  37386. SET QUOTED_IDENTIFIER ON
  37387. GO
  37388. -- EXEC [WS_AllUser_GetBindInfo]
  37389. -- ==============================================
  37390. -- Author: wolf
  37391. -- Create Date: 2016-07-21
  37392. -- Mendor: wolf
  37393. -- Alter Date: 2016-11-07
  37394. -- Description: 用户绑定信息
  37395. -- ==============================================
  37396. CREATE PROCEDURE [dbo].[WS_AllUser_GetBindInfo]
  37397. @UserID INT --用户ID
  37398. AS
  37399. SET NOCOUNT ON
  37400. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37401. SET XACT_ABORT ON
  37402. BEGIN
  37403. DECLARE @IMei VARCHAR(64) --IMei
  37404. DECLARE @deviceid VARCHAR(64) --设备号
  37405. DECLARE @IsFacebook TINYINT --是否绑定facebook
  37406. DECLARE @IsTel TINYINT --是否绑定手机
  37407. SET @IsFacebook = 0
  37408. SET @IsTel = 0
  37409. --设备号
  37410. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
  37411. --已绑定
  37412. IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.')
  37413. BEGIN
  37414. SET @IsFacebook = 1
  37415. END
  37416. --已绑定
  37417. IF(LEFT(@deviceid, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'gg.')
  37418. BEGIN
  37419. SET @IsFacebook = 1
  37420. END
  37421. --判断是否绑定手机
  37422. IF EXISTS(SELECT UserID FROM [UserTel] WHERE UserID = @UserID)
  37423. BEGIN
  37424. SET @IsTel = 1
  37425. END
  37426. --返回信息
  37427. SELECT @IsFacebook AS IsFacebook, @IsTel AS IsTel
  37428. RETURN
  37429. END
  37430. GO
  37431. /****** Object: StoredProcedure [dbo].[WS_AllUser_GetFace] Script Date: 2024/1/12 11:01:14 ******/
  37432. SET ANSI_NULLS ON
  37433. GO
  37434. SET QUOTED_IDENTIFIER ON
  37435. GO
  37436. -- EXEC [WS_AllUser_GetFace]
  37437. -- @UserID = @UserID
  37438. -- ==============================================
  37439. -- Author: wolf
  37440. -- Create Date: 2015-10-10
  37441. -- Mendor: wolf
  37442. -- Alter Date: 2015-10-10
  37443. -- Description: 获取用户头像
  37444. -- ==============================================
  37445. CREATE PROCEDURE [dbo].[WS_AllUser_GetFace]
  37446. @UserID INT --用户ID
  37447. AS
  37448. SET NOCOUNT ON
  37449. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37450. SET XACT_ABORT ON
  37451. BEGIN
  37452. DECLARE @FaceID TINYINT --头像ID
  37453. DECLARE @FaceUrl VARCHAR(1024) --头像URL
  37454. DECLARE @Sex TINYINT --性别 0=默认(无) 1=男 2=女
  37455. SET @FaceID = 0
  37456. SET @FaceUrl = ''
  37457. SET @Sex = 0
  37458. --用户自定义头像
  37459. SELECT
  37460. @FaceID = FaceID, @FaceUrl = FaceUrl, @Sex = Sex
  37461. FROM
  37462. [UserFace]
  37463. WHERE
  37464. UserID = @UserID
  37465. SELECT @FaceID AS FaceID, @FaceUrl AS FaceUrl, @Sex AS Sex
  37466. RETURN
  37467. END
  37468. GO
  37469. /****** Object: StoredProcedure [dbo].[WS_AllUser_GetFacebookInfo] Script Date: 2024/1/12 11:01:14 ******/
  37470. SET ANSI_NULLS ON
  37471. GO
  37472. SET QUOTED_IDENTIFIER ON
  37473. GO
  37474. -- EXEC [WS_AllUser_GetFacebookInfo]
  37475. -- ==============================================
  37476. -- Author: wolf
  37477. -- Create Date: 2015-02-06
  37478. -- Mendor: wolf
  37479. -- Alter Date: 2016-09-11
  37480. -- Description: 获取用户facebook信息
  37481. -- ==============================================
  37482. CREATE PROCEDURE [dbo].[WS_AllUser_GetFacebookInfo]
  37483. @FacebookID VARCHAR(64)
  37484. AS
  37485. SET NOCOUNT ON
  37486. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37487. SET XACT_ABORT ON
  37488. BEGIN
  37489. DECLARE @IMei VARCHAR(64)
  37490. DECLARE @deviceid VARCHAR(64)
  37491. DECLARE @UserID INT
  37492. SET @UserID = 0
  37493. IF(LEN(@FacebookID) <= 0)
  37494. BEGIN
  37495. SELECT @UserID AS UserID
  37496. RETURN
  37497. END
  37498. --账号信息
  37499. SELECT @UserID = UserID, @IMei = IMei FROM [AllUser] WHERE IMei = @FacebookID
  37500. IF(@@ROWCOUNT = 0)
  37501. BEGIN
  37502. SELECT @UserID = UserID, @deviceid = deviceid FROM [AllUser] WHERE deviceid = @FacebookID
  37503. END
  37504. --返回信息
  37505. SELECT @UserID AS UserID
  37506. RETURN
  37507. END
  37508. GO
  37509. /****** Object: StoredProcedure [dbo].[WS_AllUser_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  37510. SET ANSI_NULLS ON
  37511. GO
  37512. SET QUOTED_IDENTIFIER ON
  37513. GO
  37514. -- EXEC [WS_AllUser_GetInfo]
  37515. -- @UserID = 1
  37516. -- ==============================================
  37517. -- Author: wolf
  37518. -- Create Date: 2014-06-17
  37519. -- Mendor: wolf
  37520. -- Alter Date: 2016-08-16
  37521. -- Description: 用户信息
  37522. -- ==============================================
  37523. CREATE PROCEDURE [dbo].[WS_AllUser_GetInfo]
  37524. @UserID INT --用户ID
  37525. AS
  37526. SET NOCOUNT ON
  37527. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37528. SET XACT_ABORT ON
  37529. BEGIN
  37530. DECLARE @NickName NVARCHAR(32) --好友昵称
  37531. DECLARE @ServerName NVARCHAR(32) --服务器名称
  37532. DECLARE @FaceID SMALLINT --头像ID
  37533. DECLARE @NewUserID INT --用户ID
  37534. SET @NewUserID = 0
  37535. SET @NickName = ''
  37536. SET @ServerName = ''
  37537. SET @FaceID = 0
  37538. SELECT @NewUserID = UserID, @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
  37539. IF(@@ROWCOUNT = 0)
  37540. BEGIN
  37541. SELECT
  37542. @NewUserID AS UserID, @NickName AS NickName, @ServerName AS ServerName,
  37543. @FaceID AS FaceID
  37544. RETURN
  37545. END
  37546. --获取服务器名称
  37547. SELECT @ServerName = ServerName FROM [t_onlineuser] WHERE UserID = @UserID
  37548. --获取头像
  37549. SELECT @FaceID = FaceID FROM [UserFace] WHERE UserID = @UserID
  37550. --返回信息:对方用户ID(UserID)(int)、对方昵称(NickName)(varchar(32))、服务器名称(ServerName)(varchar(32))
  37551. SELECT
  37552. @NewUserID AS UserID, @NickName AS NickName, @ServerName AS ServerName,
  37553. @FaceID AS FaceID
  37554. RETURN
  37555. END
  37556. GO
  37557. /****** Object: StoredProcedure [dbo].[WS_AllUser_GetIPAndIMei] Script Date: 2024/1/12 11:01:14 ******/
  37558. SET ANSI_NULLS ON
  37559. GO
  37560. SET QUOTED_IDENTIFIER ON
  37561. GO
  37562. -- EXEC [WS_AllUser_GetIPAndIMei]
  37563. -- ==============================================
  37564. -- Author: wolf
  37565. -- Create Date: 2015-10-10
  37566. -- Mendor: wolf
  37567. -- Alter Date: 2015-10-10
  37568. -- Description: 根据IP、IMei获取用户列表
  37569. -- ==============================================
  37570. CREATE PROCEDURE [dbo].[WS_AllUser_GetIPAndIMei]
  37571. @IPAddress VARCHAR(16), --IP地址
  37572. @IMei VARCHAR(64), --IMei
  37573. @Days INT --天数
  37574. AS
  37575. SET NOCOUNT ON
  37576. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37577. SET XACT_ABORT ON
  37578. BEGIN
  37579. DECLARE @DateFlag SMALLDATETIME
  37580. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  37581. SET @DateFlag = @DateFlag - @Days
  37582. --ip
  37583. IF(@IPAddress != '')
  37584. BEGIN
  37585. SELECT UserID FROM [AllUser] WHERE RegTime >= @DateFlag AND RegIP = @IPAddress
  37586. END
  37587. --imei
  37588. ELSE IF(@IMei != '')
  37589. BEGIN
  37590. SELECT UserID FROM [AllUser] WHERE RegTime >= @DateFlag AND deviceid = @IMei
  37591. END
  37592. RETURN
  37593. END
  37594. GO
  37595. /****** Object: StoredProcedure [dbo].[WS_AllUser_GetMyInfo] Script Date: 2024/1/12 11:01:14 ******/
  37596. SET ANSI_NULLS ON
  37597. GO
  37598. SET QUOTED_IDENTIFIER ON
  37599. GO
  37600. -- EXEC [WS_AllUser_GetMyInfo]
  37601. -- @UserID = 1
  37602. -- ==============================================
  37603. -- Author: wolf
  37604. -- Create Date: 2014-06-17
  37605. -- Mendor: wolf
  37606. -- Alter Date: 2016-08-16
  37607. -- Description: 用户信息
  37608. -- ==============================================
  37609. CREATE PROCEDURE [dbo].[WS_AllUser_GetMyInfo]
  37610. @UserID INT --用户ID
  37611. AS
  37612. SET NOCOUNT ON
  37613. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37614. SET XACT_ABORT ON
  37615. BEGIN
  37616. DECLARE @NickName NVARCHAR(32) --好友昵称
  37617. DECLARE @ServerName NVARCHAR(32) --服务器名称
  37618. DECLARE @FaceID SMALLINT --头像ID
  37619. DECLARE @Amount BIGINT --金币
  37620. DECLARE @Bank BIGINT --保险柜
  37621. DECLARE @EPassword VARCHAR(32) --登陆密码
  37622. DECLARE @PartnerID INT --渠道ID
  37623. DECLARE @FaceUrl VARCHAR(1024) --头像URL
  37624. DECLARE @PayMoney DECIMAL(18, 2) --充值额度
  37625. DECLARE @VipLevel INT --Vip等级
  37626. DECLARE @Sex TINYINT --性别 0=默认(无) 1=男 2=女
  37627. DECLARE @UserWords NVARCHAR(256) --个性签名
  37628. DECLARE @Code INT --推荐码
  37629. DECLARE @IsGuest TINYINT --是否游客
  37630. DECLARE @TeacherID INT --师父ID
  37631. DECLARE @ChipAmount BIGINT --筹码
  37632. DECLARE @ChipBank BIGINT --筹码保险柜
  37633. DECLARE @Currency VARCHAR(32) --币种
  37634. DECLARE @CurrencyIsModify TINYINT --是否允许修改(1=允许修改 其他=禁止修改)
  37635. DECLARE @UTMSource NVARCHAR(128) --广告系列来源
  37636. DECLARE @Charm INT --魅力值
  37637. SET @NickName = ''
  37638. SET @ServerName = ''
  37639. SET @FaceID = 0
  37640. SET @Amount = 0
  37641. SET @Bank = 0
  37642. SET @EPassword = ''
  37643. SET @PartnerID = 0
  37644. SET @FaceUrl = ''
  37645. SET @PayMoney = 0
  37646. SET @VipLevel = 0
  37647. SET @Sex = 0
  37648. SET @UserWords = ''
  37649. SET @Code = 0
  37650. SET @IsGuest = 0
  37651. SET @TeacherID = 0
  37652. SET @ChipAmount = 0
  37653. SET @ChipBank = 0
  37654. SET @Currency = ''
  37655. SET @CurrencyIsModify = 1
  37656. SET @UTMSource = 'Default'
  37657. SET @Charm = 0
  37658. SELECT
  37659. @NickName = NickName, @EPassword = EPassword, @PartnerID = PartnerID, @PayMoney = PayMoney, @UserWords = UserWords,
  37660. @IsGuest = CASE
  37661. WHEN LEFT(IMei, 3) = 'fb.' OR LEFT(deviceid, 3) = 'fb.' THEN 0
  37662. WHEN LEFT(IMei, 3) = 'gg.' OR LEFT(deviceid, 3) = 'gg.' THEN 0
  37663. ELSE 1
  37664. END
  37665. FROM
  37666. [AllUser]
  37667. WHERE
  37668. UserID = @UserID
  37669. IF(@@ROWCOUNT = 0)
  37670. BEGIN
  37671. SELECT
  37672. @NickName AS NickName, @ServerName AS ServerName, @FaceID AS FaceID,
  37673. @Amount AS Amount, @EPassword AS EPassword, @PartnerID AS PartnerID, @FaceUrl AS FaceUrl,
  37674. @PayMoney AS PayMoney, @VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex, @UserWords AS UserWords,
  37675. @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID, 0 AS HigherUserID, 0 AS Grade,
  37676. @ChipAmount AS ChipAmount, @ChipBank AS ChipBank, @Currency AS Currency,
  37677. @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
  37678. RETURN
  37679. END
  37680. --获取服务器名称
  37681. SELECT @ServerName = ServerName FROM [t_onlineuser] WHERE UserID = @UserID
  37682. --金币
  37683. EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
  37684. --筹码
  37685. EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
  37686. --获取头像索引
  37687. SELECT @Sex = Sex, @FaceID = FaceID, @FaceUrl = FaceUrl FROM [UserFace] WHERE UserID = @UserID
  37688. --Vip级别
  37689. SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
  37690. --推荐码
  37691. SELECT @Code = Code FROM [SpreadMember] WHERE UserID = @UserID
  37692. --师父ID
  37693. SELECT @TeacherID = TeacherID FROM [UserTeacher] WHERE StudentID = @UserID
  37694. --币种
  37695. SELECT @Currency = Currency, @CurrencyIsModify = IsModify FROM [UserCountry] WHERE UserID = @UserID
  37696. --注册流量渠道
  37697. SELECT @UTMSource = Source FROM [UTM] WHERE UserID = @UserID
  37698. --魅力值
  37699. SELECT @Charm = Charm FROM [UserCharm] WHERE UserID = @UserID
  37700. --返回信息:对方用户ID(UserID)(int)、对方昵称(NickName)(varchar(32))、服务器名称(ServerName)(varchar(32))
  37701. --现金cash(Amount)(int)
  37702. SELECT
  37703. @NickName AS NickName, @ServerName AS ServerName, @FaceID AS FaceID, @Amount AS Amount,
  37704. @EPassword AS EPassword, @PartnerID AS PartnerID, @FaceUrl AS FaceUrl, @PayMoney AS PayMoney,
  37705. @VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex, @UserWords AS UserWords,
  37706. @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID, 0 AS HigherUserID, 0 AS Grade,
  37707. @ChipAmount AS ChipAmount, @ChipBank AS ChipBank, @Currency AS Currency,
  37708. @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
  37709. RETURN
  37710. END
  37711. GO
  37712. /****** Object: StoredProcedure [dbo].[WS_AllUser_LoginByIMei] Script Date: 2024/1/12 11:01:14 ******/
  37713. SET ANSI_NULLS ON
  37714. GO
  37715. SET QUOTED_IDENTIFIER ON
  37716. GO
  37717. -- EXEC [WS_AllUser_LoginByIMei]
  37718. -- @IMei = '',
  37719. -- @NickName = '',
  37720. -- @PartnerID = 500,
  37721. -- @Version = 0,
  37722. -- @IPAddress = ''
  37723. -- ==============================================
  37724. -- Author: wolf
  37725. -- Create Date: 2015-03-13
  37726. -- Mendor: wolf
  37727. -- Alter Date: 2017-02-16
  37728. -- Description: IMei号登陆(游客登陆)
  37729. -- ==============================================
  37730. CREATE PROCEDURE [dbo].[WS_AllUser_LoginByIMei]
  37731. @IMei VARCHAR(64), --IMei
  37732. @NickName NVARCHAR(32), --昵称
  37733. @PartnerID INT, --渠道
  37734. @Version INT, --版本
  37735. @IPAddress VARCHAR(16), --IP地址
  37736. @deviceid VARCHAR(64), --设备序号
  37737. @DeviceName VARCHAR(32) --设备名称
  37738. AS
  37739. SET NOCOUNT ON
  37740. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  37741. SET XACT_ABORT ON
  37742. BEGIN
  37743. DECLARE @CurrTime DATETIME --System当前时间
  37744. DECLARE @Count SMALLINT --计数器
  37745. DECLARE @RetCode INT --返回值
  37746. DECLARE @Rnd INT --随机数
  37747. DECLARE @UserID INT --用户ID
  37748. DECLARE @NewNickName NVARCHAR(32) --新昵称
  37749. DECLARE @Money BIGINT --金币数
  37750. DECLARE @Bank BIGINT --保险柜
  37751. DECLARE @FaceID SMALLINT --脸谱ID(-1=玩家上传头像)
  37752. DECLARE @EPassword VARCHAR(32) --MD5密文
  37753. DECLARE @Msg NVARCHAR(4000) --消息
  37754. DECLARE @FaceUrl VARCHAR(1024) --头像地址
  37755. DECLARE @PayMoney DECIMAL(18, 2) --充值额度
  37756. DECLARE @SendAmount BIGINT --赠送
  37757. DECLARE @VipLevel INT --Vip等级
  37758. DECLARE @ForbidTime DATETIME --封号时间
  37759. DECLARE @DateFlag DATETIME --日期标识
  37760. DECLARE @Sex TINYINT --性别 0=默认(无) 1=男 2=女
  37761. DECLARE @UserWords NVARCHAR(256) --个性签名
  37762. DECLARE @Code INT --推荐码
  37763. DECLARE @IsGuest TINYINT --是否游客
  37764. DECLARE @SysMsgID INT --系统消息ID
  37765. DECLARE @RegPartnerID INT --注册渠道ID
  37766. DECLARE @TimeStamp INT
  37767. DECLARE @Tools VARCHAR(32)
  37768. DECLARE @TeacherID INT --师父ID
  37769. DECLARE @FacebookID VARCHAR(64)
  37770. DECLARE @ChipMoney BIGINT --筹码
  37771. DECLARE @ChipBank BIGINT --筹码保险柜
  37772. DECLARE @ChipSend BIGINT --筹码赠送
  37773. DECLARE @LoginTime DATETIME --登录时间
  37774. DECLARE @AutoLoginChip TINYINT --自动登录元宝大厅
  37775. DECLARE @IsReturn TINYINT --是否回归
  37776. DECLARE @Title NVARCHAR(32)
  37777. DECLARE @IsReg TINYINT --是否注册用户
  37778. DECLARE @BindFacebook INT --绑定赠送
  37779. DECLARE @PlatformName VARCHAR(32) --平台名称
  37780. DECLARE @HigherUserID INT --代理ID
  37781. DECLARE @Currency VARCHAR(32) --币种
  37782. DECLARE @CurrencyIsModify TINYINT --是否允许修改(1=允许修改 其他=禁止修改)
  37783. DECLARE @UTMSource NVARCHAR(128) --广告系列来源
  37784. DECLARE @Charm INT --魅力值
  37785. SET @CurrTime = GETDATE()
  37786. SET @UserID = 0
  37787. SET @Money = 0
  37788. SET @Bank = 0
  37789. SET @FaceID = 0
  37790. SET @FaceUrl = ''
  37791. SET @Sex = 0
  37792. SET @PayMoney = 0
  37793. SET @RetCode = 0
  37794. SET @VipLevel = 0
  37795. SET @ForbidTime = '2021-01-01'
  37796. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  37797. SET @UserWords = ''
  37798. SET @Code = 0
  37799. SET @IsGuest = 0
  37800. SET @SysMsgID = 0
  37801. SET @RegPartnerID = 0
  37802. SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
  37803. SET @TeacherID = 0
  37804. SET @ChipMoney = 0
  37805. SET @ChipBank = 0
  37806. SET @ChipSend = 0
  37807. SET @AutoLoginChip = 1
  37808. SET @IsReturn = 0
  37809. SET @IsReg = 0
  37810. SET @NewNickName = ''
  37811. SET @HigherUserID = 0
  37812. SET @Currency = ''
  37813. SET @CurrencyIsModify = 1
  37814. SET @UTMSource = ''
  37815. SET @EPassword = ''
  37816. SET @Charm = 0
  37817. IF(LEN(@IMei) <= 0)
  37818. BEGIN
  37819. SET @IMei = NEWID()
  37820. END
  37821. --IMei、设备号为空
  37822. IF(LEN(@IMei) <= 0 AND LEN(@deviceid) <= 0)
  37823. BEGIN
  37824. SELECT
  37825. @RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
  37826. @FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
  37827. @VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
  37828. @Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  37829. @HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
  37830. @AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
  37831. @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
  37832. RETURN
  37833. END
  37834. --用户
  37835. SELECT @FacebookID = IMei FROM [UserBindFacebook] WHERE Facebook_1_ID = @IMei OR Facebook_2_ID = @IMei
  37836. IF(LEN(@FacebookID) > 0)
  37837. BEGIN
  37838. SET @IMei = @FacebookID
  37839. END
  37840. --获取用户信息
  37841. SELECT TOP 1
  37842. @UserID = UserID, @NewNickName = NickName, @EPassword = EPassword,
  37843. @PayMoney = PayMoney, @RegPartnerID = RegPartnerID, @UserWords = UserWords,
  37844. @LoginTime = CONVERT(CHAR(10), LoginTime, 120),
  37845. @IsGuest = CASE
  37846. WHEN LEFT(IMei, 3) = 'fb.' OR LEFT(deviceid, 3) = 'fb.' THEN 0
  37847. WHEN LEFT(IMei, 3) = 'gg.' OR LEFT(deviceid, 3) = 'gg.' THEN 0
  37848. WHEN LEFT(IMei, 3) = 'ap.' OR LEFT(deviceid, 3) = 'ap.' THEN 0
  37849. ELSE 1
  37850. END
  37851. FROM
  37852. [AllUser]
  37853. WHERE
  37854. IMei = @IMei
  37855. ORDER BY
  37856. PayMoney DESC, RegTime DESC
  37857. IF(@UserID = 0)
  37858. BEGIN
  37859. SELECT TOP 1
  37860. @UserID = UserID, @NewNickName = NickName, @EPassword = EPassword,
  37861. @PayMoney = PayMoney, @RegPartnerID = RegPartnerID, @UserWords = UserWords,
  37862. @LoginTime = CONVERT(CHAR(10), LoginTime, 120),
  37863. @IsGuest = CASE
  37864. WHEN LEFT(IMei, 3) = 'fb.' OR LEFT(deviceid, 3) = 'fb.' THEN 0
  37865. WHEN LEFT(IMei, 3) = 'gg.' OR LEFT(deviceid, 3) = 'gg.' THEN 0
  37866. WHEN LEFT(IMei, 3) = 'ap.' OR LEFT(deviceid, 3) = 'ap.' THEN 0
  37867. ELSE 1
  37868. END
  37869. FROM
  37870. [AllUser]
  37871. WHERE
  37872. deviceid = @IMei
  37873. ORDER BY
  37874. PayMoney DESC, RegTime DESC
  37875. END
  37876. --当前有用户信息,直接返回
  37877. IF(@UserID > 0)
  37878. BEGIN
  37879. --封杀时间
  37880. SELECT @ForbidTime = EndTime FROM [ForbidUser] WHERE UserID = @UserID AND EndTime > @CurrTime
  37881. --判断账号是否被封杀
  37882. IF(@ForbidTime > @CurrTime)
  37883. BEGIN
  37884. SET @RetCode = -12
  37885. SELECT
  37886. @RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
  37887. @FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
  37888. @VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
  37889. @Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  37890. @HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
  37891. @AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
  37892. @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
  37893. RETURN
  37894. END
  37895. --平台
  37896. SELECT @PlatformName = PlatformName FROM [PlatformConfig] WHERE ConfigID = 1
  37897. --登陆信息
  37898. UPDATE
  37899. [AllUser]
  37900. SET
  37901. PartnerID = @PartnerID, IPAddress = @IPAddress, LoginTime = @CurrTime,
  37902. deviceid = CASE WHEN deviceid = '' AND @deviceid != '' THEN @deviceid ELSE deviceid END,
  37903. RegTime = CASE WHEN deviceid = '' AND @deviceid != '' THEN @CurrTime ELSE RegTime END,
  37904. DeviceName = @DeviceName, Version = @Version
  37905. WHERE
  37906. UserID = @UserID
  37907. --上级代理ID
  37908. SELECT @HigherUserID = HigherUserID FROM [AgentMember] WHERE UserID = @UserID
  37909. --获取玩家头像
  37910. SELECT @Sex = Sex, @FaceID = FaceID, @FaceUrl = FaceUrl FROM [UserFace] WHERE UserID = @UserID
  37911. --金币
  37912. EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Money OUTPUT, @Bank = @Bank OUTPUT
  37913. --筹码
  37914. EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipMoney OUTPUT, @Bank = @ChipBank OUTPUT
  37915. --Vip级别
  37916. SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
  37917. --不是机器人
  37918. IF NOT EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
  37919. BEGIN
  37920. --登陆日志
  37921. INSERT INTO [UserLoginLog]
  37922. (
  37923. UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  37924. )
  37925. VALUES
  37926. (
  37927. @UserID, @IMei, @PartnerID, @Version, 0, @IPAddress, @CurrTime, @DeviceName
  37928. )
  37929. --用戶日常统计
  37930. --更新
  37931. UPDATE
  37932. [UserDailyStat]
  37933. SET
  37934. StillAmount = @Money, LoginCount = LoginCount + 1
  37935. WHERE
  37936. DateFlag = @DateFlag AND UserID = @UserID
  37937. IF(@@ROWCOUNT = 0)
  37938. BEGIN
  37939. INSERT INTO [UserDailyStat]
  37940. (
  37941. DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  37942. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  37943. )
  37944. VALUES
  37945. (
  37946. @DateFlag, @UserID, 0, 0, @Money, '2021-01-01', '2021-01-01',
  37947. 0, 0, 1, 0, 0
  37948. )
  37949. END
  37950. END
  37951. --推荐码
  37952. SELECT @Code = Code FROM [SpreadMember] WHERE UserID = @UserID
  37953. --师父ID
  37954. SELECT @TeacherID = TeacherID FROM [UserTeacher] WHERE StudentID = @UserID
  37955. --统计未显示的赠送筹码数额
  37956. SELECT @ChipSend = ISNULL(SUM(Amount), 0) FROM [ChipSendLog] WHERE UserID = @UserID AND IsShow = 0
  37957. IF(@ChipSend > 0)
  37958. BEGIN
  37959. --修改未显示状态
  37960. UPDATE [ChipSendLog] SET IsShow = 1 WHERE UserID = @UserID AND IsShow = 0
  37961. END
  37962. --回归奖励,超过10天没有登录
  37963. IF(@LoginTime < @DateFlag - 10)
  37964. BEGIN
  37965. SET @IsReturn = 1
  37966. END
  37967. --获取币种
  37968. SELECT @Currency = Currency, @CurrencyIsModify = IsModify FROM [UserCountry] WHERE UserID = @UserID
  37969. IF(@Currency = '')
  37970. BEGIN
  37971. SELECT @Currency = Currency FROM [ExchangeRate] WHERE IsDefault = 1
  37972. END
  37973. --特殊渠道
  37974. IF(@PartnerID = 10901 AND @PlatformName = 'Egypt')
  37975. BEGIN
  37976. SET @UTMSource = 'agentinvite'
  37977. END
  37978. --白名单
  37979. ELSE IF EXISTS(SELECT UserID FROM [ChipWhiteList] WHERE UserID = @UserID AND WhiteType = 1)
  37980. BEGIN
  37981. SET @UTMSource = 'agentinvite'
  37982. END
  37983. IF(@UTMSource = '')
  37984. BEGIN
  37985. --注册流量渠道
  37986. SELECT @UTMSource = Source FROM [UTM] WHERE UserID = @UserID
  37987. END
  37988. --魅力值
  37989. SELECT @Charm = Charm FROM [UserCharm] WHERE UserID = @UserID
  37990. --操作结果
  37991. SET @RetCode = 1
  37992. SELECT
  37993. @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
  37994. @FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
  37995. @VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
  37996. @Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  37997. @HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
  37998. @AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
  37999. @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
  38000. RETURN
  38001. END
  38002. /*
  38003. --在5分钟内限制同一个ip段只能注册2个用户,超过了则不让注册,提示:“当前网络繁忙,请稍后尝试”
  38004. IF((SELECT COUNT(RegTime) FROM [AllUser] WHERE RegTime >= DATEADD(MINUTE, -5, @CurrTime) AND RegIP = @IPAddress) >= 5)
  38005. BEGIN
  38006. SET @RetCode = 13
  38007. SELECT
  38008. @RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
  38009. @FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
  38010. @VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
  38011. @Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  38012. @HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
  38013. @AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
  38014. @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
  38015. RETURN
  38016. END
  38017. --同设备5分钟1个
  38018. IF((SELECT COUNT(RegTime) FROM [AllUser] WHERE RegTime >= DATEADD(MINUTE, -5, @CurrTime) AND deviceid = @deviceid) >= 1)
  38019. BEGIN
  38020. SET @RetCode = 13
  38021. SELECT
  38022. @RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
  38023. @FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
  38024. @VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
  38025. @Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  38026. @HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
  38027. @AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
  38028. @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
  38029. RETURN
  38030. END
  38031. --同设备、同IP30分钟一个
  38032. IF((SELECT COUNT(RegTime) FROM [AllUser] WHERE RegTime >= DATEADD(MINUTE, -30, @CurrTime) AND deviceid = @deviceid AND RegIP = @IPAddress) >= 1)
  38033. BEGIN
  38034. SET @RetCode = 13
  38035. SELECT
  38036. @RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
  38037. @FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
  38038. @VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
  38039. @Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  38040. @HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
  38041. @AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
  38042. @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
  38043. RETURN
  38044. END
  38045. */
  38046. SET @Count = 0
  38047. --遍历100次
  38048. WHILE(@Count < 100)
  38049. BEGIN
  38050. --计数器+1
  38051. SET @Count = @Count + 1
  38052. --生成随机数
  38053. EXEC [Game_Rand_GetRnd] @Min = 1000000, @Max = 99999999, @Rnd = @Rnd OUTPUT
  38054. --判断是否存在
  38055. IF NOT EXISTS(SELECT UserID FROM [UserIdentity] WHERE UserID = @Rnd)
  38056. BEGIN
  38057. --添加
  38058. INSERT INTO [UserIdentity](UserID, IMei) VALUES(@Rnd, @IMei)
  38059. --用户ID
  38060. SET @UserID = @Rnd
  38061. BREAK
  38062. END
  38063. SET @Msg = N'注册游客生成帐号异常,UserID重复!关联的信息:@IMei=' + @IMei + ',@NickName=' + @NickName + ',@PartnerID=' + LTRIM(STR(@PartnerID)) +
  38064. ',@Version=' + LTRIM(STR(@Version)) + ',@Count=' + LTRIM(STR(@Count))
  38065. --添加日志
  38066. EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
  38067. END
  38068. --生成随机数
  38069. EXEC [Game_Rand_GetRnd] @Min = 100000, @Max = 999999, @Rnd = @Rnd OUTPUT
  38070. --生成MD5密码
  38071. SET @EPassword = dbo.fn_MD5(@Rnd)
  38072. --赠送数量
  38073. SELECT @PlatformName = PlatformName, @SendAmount = RegGoldSend FROM [PlatformConfig] WHERE ConfigID = 1
  38074. --有设备名称
  38075. IF(@PlatformName = 'Egypt' AND LEN(@DeviceName) > 0)
  38076. BEGIN
  38077. SET @NickName = @DeviceName + LTRIM(STR(@UserID))
  38078. END
  38079. --昵称为空的情况
  38080. ELSE IF(LEN(@NickName) <= 0)
  38081. BEGIN
  38082. SET @NickName = 'Guest' + LTRIM(STR(@UserID))
  38083. END
  38084. --新昵称(过滤特殊字符: ', <, >)
  38085. SET @NickName = Replace(Replace(Replace(@NickName, '<', ''), '''', ''),'>','')
  38086. --生成用户信息
  38087. INSERT INTO [AllUser]
  38088. (
  38089. UserID, NickName, PartnerID, IMei, EPassword, RegTime, RegIP,
  38090. LoginTime, IPAddress, PayMoney, deviceid, RegPartnerID, UserWords, DeviceName, Version
  38091. )
  38092. VALUES
  38093. (
  38094. @UserID, @NickName, @PartnerID, @IMei, @EPassword, @CurrTime, @IPAddress,
  38095. @CurrTime, @IPAddress, 0, @deviceid, @PartnerID, '', @DeviceName, @Version
  38096. )
  38097. --新用户注册
  38098. SET @IsReg = 1
  38099. --随机头像
  38100. EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 2, @Rnd = @Sex OUTPUT
  38101. --1=男
  38102. IF(@Sex = 1)
  38103. BEGIN
  38104. --随机头像,男性头像 1-5=普通头像, 6-10=vip头像
  38105. EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 5, @Rnd = @FaceID OUTPUT
  38106. END
  38107. --2=女
  38108. ELSE IF(@Sex = 2)
  38109. BEGIN
  38110. --随机头像,女性头像 11-15=普通头像, 16-20=vip头像
  38111. EXEC [Game_Rand_GetRnd] @Min = 11, @Max = 15, @Rnd = @FaceID OUTPUT
  38112. END
  38113. --头像
  38114. INSERT INTO [UserFace](UserID, FaceID, FaceUrl, Sex) VALUES(@UserID, @FaceID, '', @Sex)
  38115. --新昵称
  38116. SET @NewNickName = @NickName
  38117. --登陆日志
  38118. INSERT INTO [UserLoginLog]
  38119. (
  38120. UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
  38121. )
  38122. VALUES
  38123. (
  38124. @UserID, @IMei, @PartnerID, @Version, 0, @IPAddress, @CurrTime, @DeviceName
  38125. )
  38126. IF(@SendAmount > 0)
  38127. BEGIN
  38128. --加金豆
  38129. EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = 'Register', @GameID = 0, @WantedAmount = @SendAmount,
  38130. @LogType = 5, @Remark = 'Visitor registration', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
  38131. END
  38132. --金币
  38133. EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Money OUTPUT, @Bank = @Bank OUTPUT
  38134. --筹码
  38135. EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipMoney OUTPUT, @Bank = @ChipBank OUTPUT
  38136. --Facebook 账号注册赠送
  38137. IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.')
  38138. BEGIN
  38139. SELECT @BindFacebook = BindFacebook FROM [PlatformConfig] WHERE ConfigID = 1
  38140. IF(@BindFacebook > 0)
  38141. BEGIN
  38142. EXEC [Game_Translate_Get] @Source = N'绑定账号奖励', @Target = @Title OUTPUT
  38143. EXEC [Game_Translate_Get] @Source = N'恭喜您获得绑定账号奖励,请及时查收附件', @Target = @Msg OUTPUT
  38144. --道具
  38145. SET @Tools = '[{"ItemId":1,"Count":' + LTRIM(STR(@BindFacebook)) + '}]'
  38146. --发送邮件
  38147. EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = @Title, @Content = @Msg, @Status = 0,
  38148. @SourceName = 'Facebook Register', @Crdate = @TimeStamp, @Tools = @Tools, @SysMsgID = @SysMsgID OUTPUT
  38149. END
  38150. END
  38151. --生成新手登录任务
  38152. INSERT INTO [NewUserGift]
  38153. (
  38154. UserID, DayIndex, Status, DateFlag
  38155. )
  38156. SELECT
  38157. @UserID, DayIndex, 0, @DateFlag + (DayIndex - 1)
  38158. FROM
  38159. [NewGiftConfig]
  38160. ORDER BY
  38161. DayIndex ASC
  38162. --用戶日常统计
  38163. --更新
  38164. UPDATE
  38165. [UserDailyStat]
  38166. SET
  38167. StillAmount = @Money, LoginCount = LoginCount + 1
  38168. WHERE
  38169. DateFlag = @DateFlag AND UserID = @UserID
  38170. IF(@@ROWCOUNT = 0)
  38171. BEGIN
  38172. INSERT INTO [UserDailyStat]
  38173. (
  38174. DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  38175. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  38176. )
  38177. VALUES
  38178. (
  38179. @DateFlag, @UserID, 0, 0, @Money, '2021-01-01', '2021-01-01',
  38180. 0, 0, 1, 0, 0
  38181. )
  38182. END
  38183. SET @IsGuest = CASE
  38184. WHEN LEFT(@IMei, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'fb.' THEN 0
  38185. WHEN LEFT(@IMei, 3) = 'gg.' OR LEFT(@deviceid, 3) = 'gg.' THEN 0
  38186. ELSE 1
  38187. END
  38188. IF(@PlatformName = 'ME')
  38189. BEGIN
  38190. --SET @Msg = N'https://t.me/MLKPOKER|مرحبا بك بلعبة طاولة العرب, تريد ان تكسب الكثير من العملات النقدية ؟ تريد المشاركة بالمسابقات للعبة ملك البوكر ؟ عندك سؤال او استفسار عن اللعبة ؟ ماذا تنظر ادخل مجموعة التلغرام ,هناك جوائز وهدايا كثيرة ومسابقات يومية واسبوعية ,ادخل الجروب وابدا بكسب الجوائز, العب ومرح وكسب اكثر مع طاولة العرب'
  38191. SET @Msg = N'بك بلعبة طاولة العرب, تريد ان تكسب الكثير من العملات النقدية ؟ تريد المشاركة بالمسابقات للعبة ملك البوكر ؟ عندك سؤال او استفسار عن اللعبة ؟ ماذا تنظر ادخل مجموعة التلغرام ,هناك جوائز وهدايا كثيرة ومسابقات يومية واسبوعية ,ادخل الجروب وابدا بكسب الجوائز, العب ومرح وكسب اكثر مع طاولة العرب'
  38192. EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = N'جوائز كبيرة على قناة التلغرام،اسرع ودخل مجموعة التلغرام', @Content = @Msg, @Status = 0,
  38193. @SourceName = 'Register', @Crdate = @TimeStamp, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
  38194. END
  38195. IF(@Currency = '')
  38196. BEGIN
  38197. SELECT @Currency = Currency FROM [ExchangeRate] WHERE IsDefault = 1
  38198. END
  38199. --操作成功
  38200. SET @RetCode = 1
  38201. SELECT
  38202. @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
  38203. @FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
  38204. @VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
  38205. @Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
  38206. @HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
  38207. @AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
  38208. @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
  38209. RETURN
  38210. END
  38211. GO
  38212. /****** Object: StoredProcedure [dbo].[WS_AllUser_SaveBankInfo] Script Date: 2024/1/12 11:01:14 ******/
  38213. SET ANSI_NULLS ON
  38214. GO
  38215. SET QUOTED_IDENTIFIER ON
  38216. GO
  38217. -- EXEC [WS_AllUser_SaveBankInfo]
  38218. -- ==============================================
  38219. -- Author: wolf
  38220. -- Create Date: 2016-07-11
  38221. -- Mendor: wolf
  38222. -- Alter Date: 2017-02-23
  38223. -- Description: 保存银行账号信息
  38224. -- ==============================================
  38225. CREATE PROCEDURE [dbo].[WS_AllUser_SaveBankInfo]
  38226. @UserID INT, --用户ID
  38227. @RealName VARCHAR(32), --真实姓名
  38228. @BankName VARCHAR(32), --银行名称
  38229. @BankCode VARCHAR(16), --银行码
  38230. @BankCard VARCHAR(32), --银行卡号
  38231. @Mobile VARCHAR(32), --手机号
  38232. @RetCode TINYINT OUTPUT --操作结果
  38233. AS
  38234. SET NOCOUNT ON
  38235. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38236. SET XACT_ABORT ON
  38237. BEGIN
  38238. SET @RetCode = 0
  38239. INSERT INTO [UserBankInfo]
  38240. (
  38241. UserID, RealName, BankName, BankCode, BankCard, Mobile, Crdate
  38242. )
  38243. VALUES
  38244. (
  38245. @UserID, @RealName, @BankName, @BankCode, @BankCard, @Mobile, GETDATE()
  38246. )
  38247. --操作成功
  38248. SET @RetCode = 1
  38249. RETURN
  38250. END
  38251. GO
  38252. /****** Object: StoredProcedure [dbo].[WS_AllUser_SaveCountry] Script Date: 2024/1/12 11:01:14 ******/
  38253. SET ANSI_NULLS ON
  38254. GO
  38255. SET QUOTED_IDENTIFIER ON
  38256. GO
  38257. -- EXEC [WS_AllUser_SaveCountry]
  38258. -- ==============================================
  38259. -- Author: wolf
  38260. -- Create Date: 2014-01-21
  38261. -- Mendor: wolf
  38262. -- Alter Date: 2016-11-07
  38263. -- Description: 保存国家地区
  38264. -- ==============================================
  38265. CREATE PROCEDURE [dbo].[WS_AllUser_SaveCountry]
  38266. @UserID INT, --用户ID
  38267. @CountryName NVARCHAR(32), --国家名称
  38268. @Currency VARCHAR(32), --币种
  38269. @IsModify TINYINT --是否允许修改(1=允许修改 其他=禁止修改)
  38270. AS
  38271. SET NOCOUNT ON
  38272. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38273. SET XACT_ABORT ON
  38274. BEGIN
  38275. DECLARE @RetCode TINYINT --操作结果
  38276. SET @RetCode = 0
  38277. --修改信息
  38278. UPDATE
  38279. [UserCountry]
  38280. SET
  38281. CountryName = @CountryName, Currency = @Currency, IsModify = @IsModify
  38282. WHERE
  38283. UserID = @UserID
  38284. IF(@@ROWCOUNT = 0)
  38285. BEGIN
  38286. INSERT INTO [UserCountry]
  38287. (
  38288. UserID, CountryName, Currency, IsModify
  38289. )
  38290. VALUES
  38291. (
  38292. @UserID, @CountryName, @Currency, @IsModify
  38293. )
  38294. END
  38295. --返回
  38296. SET @RetCode = 1
  38297. SELECT @RetCode AS RetCode
  38298. RETURN
  38299. END
  38300. GO
  38301. /****** Object: StoredProcedure [dbo].[WS_AllUser_SearchInfo] Script Date: 2024/1/12 11:01:14 ******/
  38302. SET ANSI_NULLS ON
  38303. GO
  38304. SET QUOTED_IDENTIFIER ON
  38305. GO
  38306. -- EXEC [WS_AllUser_SearchInfo]
  38307. -- ==============================================
  38308. -- Author: wolf
  38309. -- Create Date: 2015-03-13
  38310. -- Mendor: wolf
  38311. -- Alter Date: 2017-02-16
  38312. -- Description: 搜寻用户信息
  38313. -- ==============================================
  38314. CREATE PROCEDURE [dbo].[WS_AllUser_SearchInfo]
  38315. @UserID INT, --用户ID
  38316. @ToUserID INT, --目标用户ID
  38317. @ToNickName NVARCHAR(32) --目标昵称
  38318. AS
  38319. SET NOCOUNT ON
  38320. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38321. SET XACT_ABORT ON
  38322. BEGIN
  38323. IF(@ToUserID > 0)
  38324. BEGIN
  38325. --获取用户信息
  38326. SELECT UserID FROM [AllUser] WHERE UserID = @ToUserID
  38327. END
  38328. ELSE
  38329. BEGIN
  38330. SELECT UserID FROM [AllUser] WHERE NickName = @ToNickName
  38331. END
  38332. RETURN
  38333. END
  38334. GO
  38335. /****** Object: StoredProcedure [dbo].[WS_Announce_GetList] Script Date: 2024/1/12 11:01:14 ******/
  38336. SET ANSI_NULLS ON
  38337. GO
  38338. SET QUOTED_IDENTIFIER ON
  38339. GO
  38340. -- EXEC [WS_Announce_GetList]
  38341. -- ==============================================
  38342. -- Author: wolf
  38343. -- Create Date: 2014-06-11
  38344. -- Mendor: wolf
  38345. -- Alter Date: 2014-12-29
  38346. -- Description: 公告列表
  38347. -- ==============================================
  38348. CREATE PROCEDURE [dbo].[WS_Announce_GetList]
  38349. AS
  38350. SET NOCOUNT ON
  38351. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38352. SET XACT_ABORT ON
  38353. BEGIN
  38354. SELECT
  38355. Rid, Title_En, Content_En, Title_Eg, Content_Eg,
  38356. Priority, Version, CONVERT(VARCHAR(20), BeginTime, 120) AS BeginTime,
  38357. CONVERT(VARCHAR(20), EndTime, 120) AS EndTime, Enabled
  38358. FROM
  38359. [Announce]
  38360. WHERE
  38361. EndTime >= GETDATE()
  38362. RETURN
  38363. END
  38364. GO
  38365. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddBlack] Script Date: 2024/1/12 11:01:14 ******/
  38366. SET ANSI_NULLS ON
  38367. GO
  38368. SET QUOTED_IDENTIFIER ON
  38369. GO
  38370. -- EXEC [WS_AudioRoom_AddBlack]
  38371. -- ==============================================
  38372. -- Author: wolf
  38373. -- Create Date: 2016-07-21
  38374. -- Mendor: wolf
  38375. -- Alter Date: 2016-11-07
  38376. -- Description: 添加语音房黑名单
  38377. -- ==============================================
  38378. CREATE PROCEDURE [dbo].[WS_AudioRoom_AddBlack]
  38379. @RoomID INT, --房间ID
  38380. @UserID INT, --用户ID
  38381. @BlackType TINYINT, --黑名单类型(1=房间黑名单 2=麦位黑名单)
  38382. @ExpireTime INT --过期时间戳
  38383. AS
  38384. SET NOCOUNT ON
  38385. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38386. SET XACT_ABORT ON
  38387. BEGIN
  38388. DECLARE @RetCode TINYINT --操作结果
  38389. SET @RetCode = 0
  38390. --设置
  38391. UPDATE
  38392. [AudioRoomBlack]
  38393. SET
  38394. ExpireTime = dbo.fn_StampToTime(@ExpireTime)
  38395. WHERE
  38396. RoomID = @RoomID AND UserID = @UserID AND BlackType = @BlackType
  38397. IF(@@ROWCOUNT = 0)
  38398. BEGIN
  38399. INSERT INTO [AudioRoomBlack]
  38400. (
  38401. RoomID, UserID, BlackType, ExpireTime
  38402. )
  38403. VALUES
  38404. (
  38405. @RoomID, @UserID, @BlackType, dbo.fn_StampToTime(@ExpireTime)
  38406. )
  38407. END
  38408. --操作成功
  38409. SET @RetCode = 1
  38410. SELECT @RetCode AS RetCode
  38411. RETURN
  38412. END
  38413. GO
  38414. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddGiftHistory] Script Date: 2024/1/12 11:01:14 ******/
  38415. SET ANSI_NULLS ON
  38416. GO
  38417. SET QUOTED_IDENTIFIER ON
  38418. GO
  38419. -- EXEC [WS_AudioRoom_AddGiftHistory]
  38420. -- ==============================================
  38421. -- Author: wolf
  38422. -- Create Date: 2016-07-21
  38423. -- Mendor: wolf
  38424. -- Alter Date: 2016-11-07
  38425. -- Description: 语音房礼物记录
  38426. -- ==============================================
  38427. CREATE PROCEDURE [dbo].[WS_AudioRoom_AddGiftHistory]
  38428. @RoomID INT, --房间ID
  38429. @Sender INT, --发送方
  38430. @Receiver INT, --接收方
  38431. @GiftID INT, --礼物ID
  38432. @GiftNum INT, --礼物数量
  38433. @DiamondAmount INT, --钻石数
  38434. @GoldAmount INT --金币数
  38435. AS
  38436. SET NOCOUNT ON
  38437. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38438. SET XACT_ABORT ON
  38439. BEGIN
  38440. INSERT INTO [AudioRoomGiftHistory]
  38441. (
  38442. RoomID, Sender, Receiver, GiftID, GiftNum, DiamondAmount, GoldAmount, Crdate
  38443. )
  38444. VALUES
  38445. (
  38446. @RoomID, @Sender, @Receiver, @GiftID, @GiftNum, @DiamondAmount, @GoldAmount, GETDATE()
  38447. )
  38448. RETURN
  38449. END
  38450. GO
  38451. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddIncome] Script Date: 2024/1/12 11:01:14 ******/
  38452. SET ANSI_NULLS ON
  38453. GO
  38454. SET QUOTED_IDENTIFIER ON
  38455. GO
  38456. -- EXEC [WS_AudioRoom_AddIncome]
  38457. -- ==============================================
  38458. -- Author: wolf
  38459. -- Create Date: 2014-06-17
  38460. -- Mendor: wolf
  38461. -- Alter Date: 2016-08-16
  38462. -- Description: 语聊房--添加用户收益
  38463. -- ==============================================
  38464. CREATE PROCEDURE [dbo].[WS_AudioRoom_AddIncome]
  38465. @UserID INT, --用户ID
  38466. @ItemType INT, --道具类型
  38467. @Balance DECIMAL(10, 2), --结余收益
  38468. @TotalProfit DECIMAL(18, 2) --累计收益
  38469. AS
  38470. SET NOCOUNT ON
  38471. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38472. SET XACT_ABORT ON
  38473. BEGIN
  38474. UPDATE
  38475. [UserIncome]
  38476. SET
  38477. Balance = @Balance, TotalProfit = @TotalProfit
  38478. WHERE
  38479. UserID = @USerID AND ItemType = @ItemType
  38480. IF(@@ROWCOUNT = 0)
  38481. BEGIN
  38482. INSERT INTO [UserIncome]
  38483. (
  38484. UserID, ItemType, Balance, TotalProfit
  38485. )
  38486. VALUES
  38487. (
  38488. @UserID, @ItemType, @Balance, @TotalProfit
  38489. )
  38490. END
  38491. RETURN
  38492. END
  38493. GO
  38494. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddIncomeLog] Script Date: 2024/1/12 11:01:14 ******/
  38495. SET ANSI_NULLS ON
  38496. GO
  38497. SET QUOTED_IDENTIFIER ON
  38498. GO
  38499. -- EXEC [WS_AudioRoom_AddIncomeLog]
  38500. -- ==============================================
  38501. -- Author: wolf
  38502. -- Create Date: 2014-06-17
  38503. -- Mendor: wolf
  38504. -- Alter Date: 2016-08-16
  38505. -- Description: 语聊房--添加收益日志
  38506. -- ==============================================
  38507. CREATE PROCEDURE [dbo].[WS_AudioRoom_AddIncomeLog]
  38508. @UserID INT, --用户ID
  38509. @RoomID INT, --房间ID
  38510. @GameID INT, --游戏ID
  38511. @FromUserID INT, --源用户ID
  38512. @ItemType INT, --道具类型
  38513. @IncomeType INT, --收益类型
  38514. @UserType INT, --用户类型
  38515. @Amount BIGINT, --数量
  38516. @Profit DECIMAL(18, 2), --收益
  38517. @StillProfit DECIMAL(18, 2), --剩余收益
  38518. @RealProfit INT --实际收益
  38519. AS
  38520. SET NOCOUNT ON
  38521. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38522. SET XACT_ABORT ON
  38523. BEGIN
  38524. --添加记录
  38525. INSERT INTO [UserIncomeLog]
  38526. (
  38527. UserID, RoomID, GameID, FromUserID, ItemType, IncomeType, UserType, Amount,
  38528. Profit, StillProfit, RealProfit, Crdate
  38529. )
  38530. VALUES
  38531. (
  38532. @UserID, @RoomID, @GameID, @FromUserID, @ItemType, @IncomeType, @UserType, @Amount,
  38533. @Profit, @StillProfit, @RealProfit, GETDATE()
  38534. )
  38535. RETURN
  38536. END
  38537. GO
  38538. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddMicLog] Script Date: 2024/1/12 11:01:14 ******/
  38539. SET ANSI_NULLS ON
  38540. GO
  38541. SET QUOTED_IDENTIFIER ON
  38542. GO
  38543. -- EXEC [WS_AudioRoom_AddMicLog]
  38544. -- ==============================================
  38545. -- Author: wolf
  38546. -- Create Date: 2014-01-21
  38547. -- Mendor: wolf
  38548. -- Alter Date: 2016-11-07
  38549. -- Description: 添加麦位日志
  38550. -- ==============================================
  38551. CREATE PROCEDURE [dbo].[WS_AudioRoom_AddMicLog]
  38552. @UserID INT, --用户ID
  38553. @RoomID INT, --房间ID
  38554. @RoleID INT, --角色ID
  38555. @SN SMALLINT, --麦位序号
  38556. @MicMode TINYINT, --麦位模式
  38557. @OnMicStamp INT, --上麦时间戳
  38558. @OffMicStamp INT, --下麦时间戳
  38559. @Seconds INT, --时长
  38560. @OpUserID INT --操作员ID
  38561. AS
  38562. SET NOCOUNT ON
  38563. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38564. SET XACT_ABORT ON
  38565. BEGIN
  38566. INSERT INTO [RoomMicLog]
  38567. (
  38568. UserID, RoleID, SN, RoomID, MicMode, OnMicTime, OffMicTime, Seconds, OpUserID
  38569. )
  38570. VALUES
  38571. (
  38572. @UserID, @RoleID, @SN, @RoomID, @MicMode, dbo.fn_StampToTime(@OnMicStamp), dbo.fn_StampToTime(@OffMicStamp), @Seconds, @OpUserID
  38573. )
  38574. RETURN
  38575. END
  38576. GO
  38577. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddOperateLog] Script Date: 2024/1/12 11:01:14 ******/
  38578. SET ANSI_NULLS ON
  38579. GO
  38580. SET QUOTED_IDENTIFIER ON
  38581. GO
  38582. -- EXEC [WS_AudioRoom_AddOperateLog]
  38583. -- ==============================================
  38584. -- Author: wolf
  38585. -- Create Date: 2016-07-21
  38586. -- Mendor: wolf
  38587. -- Alter Date: 2016-11-07
  38588. -- Description: 语音房添加操作记录
  38589. -- ==============================================
  38590. CREATE PROCEDURE [dbo].[WS_AudioRoom_AddOperateLog]
  38591. @RoomID INT, --房间ID
  38592. @UserID INT, --用户ID
  38593. @ToUserID INT, --对象用户ID
  38594. @OperateType TINYINT --操作类型(10=强制下麦 21=禁麦 22=解麦 31=添加房间黑名单 32=移除房间黑名单)
  38595. AS
  38596. SET NOCOUNT ON
  38597. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38598. SET XACT_ABORT ON
  38599. BEGIN
  38600. INSERT INTO [AudioRoomOperateLog]
  38601. (
  38602. RoomID, UserID, ToUserID, OperateType, Crdate
  38603. )
  38604. VALUES
  38605. (
  38606. @RoomID, @UserID, @ToUserID, @OperateType, GETDATE()
  38607. )
  38608. RETURN
  38609. END
  38610. GO
  38611. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddRoomExpLog] Script Date: 2024/1/12 11:01:14 ******/
  38612. SET ANSI_NULLS ON
  38613. GO
  38614. SET QUOTED_IDENTIFIER ON
  38615. GO
  38616. -- EXEC [WS_AudioRoom_AddRoomExpLog]
  38617. -- ==============================================
  38618. -- Author: wolf
  38619. -- Create Date: 2015-10-10
  38620. -- Mendor: wolf
  38621. -- Alter Date: 2015-10-10
  38622. -- Description: 房间经验日志
  38623. -- ==============================================
  38624. CREATE PROCEDURE [dbo].[WS_AudioRoom_AddRoomExpLog]
  38625. @UserID INT, --用户ID
  38626. @RoomID INT, --房间ID
  38627. @Exps INT --经验值
  38628. AS
  38629. SET NOCOUNT ON
  38630. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38631. SET XACT_ABORT ON
  38632. BEGIN
  38633. DECLARE @DateFlag SMALLDATETIME
  38634. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  38635. UPDATE
  38636. [AudioRoomExpLog]
  38637. SET
  38638. Exps = Exps + @Exps
  38639. WHERE
  38640. DateFlag = @DateFlag AND RoomID = @RoomID AND UserID = @UserID
  38641. IF(@@ROWCOUNT = 0)
  38642. BEGIN
  38643. INSERT INTO [AudioRoomExpLog]
  38644. (
  38645. DateFlag, RoomID, UserID, Exps
  38646. )
  38647. VALUES
  38648. (
  38649. @DateFlag, @RoomID, @UserID, @Exps
  38650. )
  38651. END
  38652. RETURN
  38653. END
  38654. GO
  38655. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_Create] Script Date: 2024/1/12 11:01:14 ******/
  38656. SET ANSI_NULLS ON
  38657. GO
  38658. SET QUOTED_IDENTIFIER ON
  38659. GO
  38660. -- EXEC [WS_AudioRoom_Create]
  38661. -- ==============================================
  38662. -- Author: wolf
  38663. -- Create Date: 2016-07-21
  38664. -- Mendor: wolf
  38665. -- Alter Date: 2016-11-07
  38666. -- Description: 语音房创建
  38667. -- ==============================================
  38668. CREATE PROCEDURE [dbo].[WS_AudioRoom_Create]
  38669. @RoomID INT, --房间ID
  38670. @RoomName NVARCHAR(32), --房间名称
  38671. @RoomImg VARCHAR(256), --房间图片
  38672. @UserID INT, --用户ID
  38673. @Family NVARCHAR(32), --家族
  38674. @Country NVARCHAR(32), --国家
  38675. @Language NVARCHAR(32), --语言
  38676. @MicCount INT, --上麦数量
  38677. @MicMode TINYINT, --麦位模式(0=房间内所有人自由上麦 1=加入为成员才可以上麦 2=仅限管理员邀请或者管理员才能上麦(包含创建者))
  38678. @JoinFee INT, --入会费
  38679. @Announce NVARCHAR(256), --公告内容
  38680. @Tag NVARCHAR(32), --标签
  38681. @MemberCount INT, --会员数
  38682. @Crdate DATETIME, --创建时间
  38683. @Level INT --等级
  38684. AS
  38685. SET NOCOUNT ON
  38686. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38687. SET XACT_ABORT ON
  38688. BEGIN
  38689. DECLARE @RetCode TINYINT --操作结果
  38690. SET @RetCode = 0
  38691. --判断房间是否存在
  38692. IF EXISTS(SELECT RoomID FROM [AudioRoom] WHERE RoomID = @RoomID)
  38693. BEGIN
  38694. SET @RetCode = 11
  38695. SELECT @RetCode AS RetCode
  38696. RETURN
  38697. END
  38698. INSERT INTO [AudioRoom]
  38699. (
  38700. RoomID, RoomName, RoomImg, UserID, Family, Country, Language, MicCount, MicMode,
  38701. JoinFee, Announce, Tag, MemberCount, Crdate, Level, Exps
  38702. )
  38703. VALUES
  38704. (
  38705. @RoomID, @RoomName, @RoomImg, @UserID, @Family, @Country, @Language, @MicCount, @MicMode,
  38706. @JoinFee, @Announce, @Tag, @MemberCount, @Crdate, @Level, 0
  38707. )
  38708. SET @RetCode = 1
  38709. SELECT @RetCode AS RetCode
  38710. RETURN
  38711. END
  38712. GO
  38713. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_DelUserRoom] Script Date: 2024/1/12 11:01:14 ******/
  38714. SET ANSI_NULLS ON
  38715. GO
  38716. SET QUOTED_IDENTIFIER ON
  38717. GO
  38718. -- EXEC [WS_AudioRoom_DelUserRoom]
  38719. -- ==============================================
  38720. -- Author: wolf
  38721. -- Create Date: 2016-07-21
  38722. -- Mendor: wolf
  38723. -- Alter Date: 2016-11-07
  38724. -- Description: 删除用户语音房信息
  38725. -- ==============================================
  38726. CREATE PROCEDURE [dbo].[WS_AudioRoom_DelUserRoom]
  38727. @UserID INT, --用户ID
  38728. @RoomID INT --房间ID
  38729. AS
  38730. SET NOCOUNT ON
  38731. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38732. SET XACT_ABORT ON
  38733. BEGIN
  38734. --删除用户房间
  38735. DELETE FROM [UserAudioRoom] WHERE UserID = @UserID AND RoomID = @RoomID
  38736. --删除用户任务
  38737. DELETE FROM [UserRoomTask] WHERE UserID = @UserID AND RoomID = @RoomID
  38738. --删除贡献
  38739. DELETE FROM [UserContribute] WHERE UserID = @UserID AND RoomID = @RoomID
  38740. RETURN
  38741. END
  38742. GO
  38743. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetBlackList] Script Date: 2024/1/12 11:01:14 ******/
  38744. SET ANSI_NULLS ON
  38745. GO
  38746. SET QUOTED_IDENTIFIER ON
  38747. GO
  38748. -- EXEC [WS_AudioRoom_GetBlackList]
  38749. -- ==============================================
  38750. -- Author: wolf
  38751. -- Create Date: 2016-07-21
  38752. -- Mendor: wolf
  38753. -- Alter Date: 2016-11-07
  38754. -- Description: 语音房黑名单
  38755. -- ==============================================
  38756. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetBlackList]
  38757. @RoomID INT --房间ID
  38758. AS
  38759. SET NOCOUNT ON
  38760. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38761. SET XACT_ABORT ON
  38762. BEGIN
  38763. --返回信息
  38764. SELECT
  38765. UserID, BlackType, dbo.fn_TimeToStamp(ExpireTime) AS ExpireTime
  38766. FROM
  38767. [AudioRoomBlack]
  38768. WHERE
  38769. RoomID = @RoomID
  38770. RETURN
  38771. END
  38772. GO
  38773. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetCollectList] Script Date: 2024/1/12 11:01:14 ******/
  38774. SET ANSI_NULLS ON
  38775. GO
  38776. SET QUOTED_IDENTIFIER ON
  38777. GO
  38778. -- EXEC [WS_AudioRoom_GetCollectList]
  38779. -- ==============================================
  38780. -- Author: wolf
  38781. -- Create Date: 2015-10-10
  38782. -- Mendor: wolf
  38783. -- Alter Date: 2015-10-10
  38784. -- Description: 获取语聊房收集列表
  38785. -- ==============================================
  38786. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetCollectList]
  38787. @RoomID INT --房间ID
  38788. AS
  38789. SET NOCOUNT ON
  38790. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38791. SET XACT_ABORT ON
  38792. BEGIN
  38793. SELECT
  38794. DayIndex, Points, Ratio, Award, Status
  38795. FROM
  38796. [RoomCollect]
  38797. WHERE
  38798. RoomID = @RoomID AND UpdateTime >= GETDATE() - 3
  38799. RETURN
  38800. END
  38801. GO
  38802. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetEnterCondition] Script Date: 2024/1/12 11:01:14 ******/
  38803. SET ANSI_NULLS ON
  38804. GO
  38805. SET QUOTED_IDENTIFIER ON
  38806. GO
  38807. -- EXEC [WS_AudioRoom_GetEnterCondition]
  38808. -- ==============================================
  38809. -- Author: wolf
  38810. -- Create Date: 2016-07-21
  38811. -- Mendor: wolf
  38812. -- Alter Date: 2016-11-07
  38813. -- Description: 语音房获取进入条件
  38814. -- ==============================================
  38815. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetEnterCondition]
  38816. @RoomID INT --房间ID
  38817. AS
  38818. SET NOCOUNT ON
  38819. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38820. SET XACT_ABORT ON
  38821. BEGIN
  38822. SELECT
  38823. InviteOnly, Password, dbo.fn_TimeToStamp(PwdExpire) AS PwdExpire, IsHide
  38824. FROM
  38825. [AudioRoomEnterCondition]
  38826. WHERE
  38827. RoomID = @RoomID
  38828. RETURN
  38829. END
  38830. GO
  38831. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetExtInfo] Script Date: 2024/1/12 11:01:14 ******/
  38832. SET ANSI_NULLS ON
  38833. GO
  38834. SET QUOTED_IDENTIFIER ON
  38835. GO
  38836. -- EXEC [WS_AudioRoom_GetExtInfo]
  38837. -- ==============================================
  38838. -- Author: wolf
  38839. -- Create Date: 2015-10-10
  38840. -- Mendor: wolf
  38841. -- Alter Date: 2015-10-10
  38842. -- Description: 获取语聊房扩展信息
  38843. -- ==============================================
  38844. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetExtInfo]
  38845. @RoomID INT --房间ID
  38846. AS
  38847. SET NOCOUNT ON
  38848. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38849. SET XACT_ABORT ON
  38850. BEGIN
  38851. --返回信息
  38852. SELECT
  38853. DayExps, CollectDiamond, ScreenLock, dbo.fn_TimeToStamp(UpdateTime) AS UpdateTime
  38854. FROM
  38855. [AudioRoomExt]
  38856. WHERE
  38857. RoomID = @RoomID
  38858. RETURN
  38859. END
  38860. GO
  38861. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetGameIncomeStat] Script Date: 2024/1/12 11:01:14 ******/
  38862. SET ANSI_NULLS ON
  38863. GO
  38864. SET QUOTED_IDENTIFIER ON
  38865. GO
  38866. -- EXEC [WS_AudioRoom_GetGameIncomeStat]
  38867. -- ==============================================
  38868. -- Author: wolf
  38869. -- Create Date: 2014-06-17
  38870. -- Mendor: wolf
  38871. -- Alter Date: 2016-08-16
  38872. -- Description: 语聊房--获取用户收益统计
  38873. -- ==============================================
  38874. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetGameIncomeStat]
  38875. @UserID INT, --用户ID
  38876. @RoomID INT, --房间ID
  38877. @ItemType INT, --道具类型(1=金币 2=钻石)
  38878. @SortType INT, --排序类型 (11=收益降序 12=收益升序 21=礼物降序 22=礼物升序 31=游戏降序 32=游戏升序 41=下注降序 42=下注升序)
  38879. @BeginTime DATETIME, --开始时间
  38880. @EndTime DATETIME, --截止时间
  38881. @PageIndex INT, --页索引
  38882. @PageSize INT, --页大小
  38883. @RecordCount INT OUTPUT --记录数
  38884. AS
  38885. SET NOCOUNT ON
  38886. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  38887. SET XACT_ABORT ON
  38888. BEGIN
  38889. DECLARE @StartRowIndex INT --起始行索引
  38890. DECLARE @EndRowIndex INT --截止行索引
  38891. DECLARE @tmptable TABLE(
  38892. GameID INT NOT NULL, --游戏ID
  38893. Amount BIGINT NOT NULL, --投注额
  38894. Profit DECIMAL(18, 2) NOT NULL --游戏收益
  38895. )
  38896. SET @EndTime = @EndTime + 1
  38897. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  38898. SET @EndRowIndex = @PageIndex * @PageSize
  38899. INSERT INTO @tmptable
  38900. (
  38901. GameID, Amount, Profit
  38902. )
  38903. SELECT
  38904. GameID, ISNULL(SUM(Amount), 0), ISNULL(SUM(Profit), 0)
  38905. FROM
  38906. [UserIncomeLog]
  38907. WHERE
  38908. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID AND ItemType = @ItemType AND IncomeType = 1
  38909. GROUP BY
  38910. GameID
  38911. --记录数
  38912. SET @RecordCount = @@ROWCOUNT
  38913. --11=收益降序
  38914. IF(@SortType = 11)
  38915. BEGIN
  38916. ;WITH [List] AS
  38917. (
  38918. SELECT
  38919. ROW_NUMBER() OVER(ORDER BY Profit DESC) AS RowNumber,
  38920. GameID, Amount, Profit
  38921. FROM
  38922. @tmptable
  38923. )
  38924. --返回信息
  38925. SELECT
  38926. GameID, Amount, Profit
  38927. FROM
  38928. [List]
  38929. WHERE
  38930. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  38931. ORDER BY
  38932. RowNumber ASC
  38933. RETURN
  38934. END
  38935. --12=收益升序
  38936. ELSE IF(@SortType = 12)
  38937. BEGIN
  38938. ;WITH [List] AS
  38939. (
  38940. SELECT
  38941. ROW_NUMBER() OVER(ORDER BY Profit ASC) AS RowNumber,
  38942. GameID, Amount, Profit
  38943. FROM
  38944. @tmptable
  38945. )
  38946. --返回信息
  38947. SELECT
  38948. GameID, Amount, Profit
  38949. FROM
  38950. [List]
  38951. WHERE
  38952. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  38953. ORDER BY
  38954. RowNumber ASC
  38955. RETURN
  38956. END
  38957. --41=下注降序
  38958. ELSE IF(@SortType = 41)
  38959. BEGIN
  38960. ;WITH [List] AS
  38961. (
  38962. SELECT
  38963. ROW_NUMBER() OVER(ORDER BY Amount DESC) AS RowNumber,
  38964. GameID, Amount, Profit
  38965. FROM
  38966. @tmptable
  38967. )
  38968. --返回信息
  38969. SELECT
  38970. GameID, Amount, Profit
  38971. FROM
  38972. [List]
  38973. WHERE
  38974. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  38975. ORDER BY
  38976. RowNumber ASC
  38977. RETURN
  38978. END
  38979. --42=下注升序
  38980. ELSE IF(@SortType = 42)
  38981. BEGIN
  38982. ;WITH [List] AS
  38983. (
  38984. SELECT
  38985. ROW_NUMBER() OVER(ORDER BY Amount ASC) AS RowNumber,
  38986. GameID, Amount, Profit
  38987. FROM
  38988. @tmptable
  38989. )
  38990. --返回信息
  38991. SELECT
  38992. GameID, Amount, Profit
  38993. FROM
  38994. [List]
  38995. WHERE
  38996. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  38997. ORDER BY
  38998. RowNumber ASC
  38999. RETURN
  39000. END
  39001. END
  39002. GO
  39003. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetIncomeLevel] Script Date: 2024/1/12 11:01:14 ******/
  39004. SET ANSI_NULLS ON
  39005. GO
  39006. SET QUOTED_IDENTIFIER ON
  39007. GO
  39008. -- EXEC [WS_AudioRoom_GetIncomeLevel]
  39009. -- ==============================================
  39010. -- Author: wolf
  39011. -- Create Date: 2014-06-17
  39012. -- Mendor: wolf
  39013. -- Alter Date: 2016-08-16
  39014. -- Description: 语聊房--获取收益等级
  39015. -- ==============================================
  39016. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetIncomeLevel]
  39017. @UserID INT --用户ID
  39018. AS
  39019. SET NOCOUNT ON
  39020. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39021. SET XACT_ABORT ON
  39022. BEGIN
  39023. SELECT IncomeLevel FROM [UserIncomeLevel] WHERE UserID = @UserID
  39024. RETURN
  39025. END
  39026. GO
  39027. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetIncomeList] Script Date: 2024/1/12 11:01:14 ******/
  39028. SET ANSI_NULLS ON
  39029. GO
  39030. SET QUOTED_IDENTIFIER ON
  39031. GO
  39032. -- EXEC [WS_AudioRoom_GetIncomeList]
  39033. -- ==============================================
  39034. -- Author: wolf
  39035. -- Create Date: 2014-06-17
  39036. -- Mendor: wolf
  39037. -- Alter Date: 2016-08-16
  39038. -- Description: 语聊房--获取收益列表
  39039. -- ==============================================
  39040. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetIncomeList]
  39041. @UserID INT
  39042. AS
  39043. SET NOCOUNT ON
  39044. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39045. SET XACT_ABORT ON
  39046. BEGIN
  39047. SELECT
  39048. ItemType, Balance, TotalProfit
  39049. FROM
  39050. [UserIncome]
  39051. WHERE
  39052. UserID = @UserID
  39053. RETURN
  39054. END
  39055. GO
  39056. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetIncomeLog] Script Date: 2024/1/12 11:01:14 ******/
  39057. SET ANSI_NULLS ON
  39058. GO
  39059. SET QUOTED_IDENTIFIER ON
  39060. GO
  39061. -- EXEC [WS_AudioRoom_GetIncomeLog]
  39062. -- ==============================================
  39063. -- Author: wolf
  39064. -- Create Date: 2014-06-17
  39065. -- Mendor: wolf
  39066. -- Alter Date: 2016-08-16
  39067. -- Description: 语聊房--获取收益日志
  39068. -- ==============================================
  39069. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetIncomeLog]
  39070. @UserID INT, --用户ID
  39071. @RoomID INT, --房间ID
  39072. @FromUserID INT, --源用户ID
  39073. @ItemType INT, --道具类型(1=金币 2=钻石)
  39074. @BeginTime DATETIME, --开始时间
  39075. @EndTime DATETIME, --截止时间
  39076. @PageIndex INT, --页索引
  39077. @PageSize INT, --页大小
  39078. @RecordCount INT OUTPUT --记录数
  39079. AS
  39080. SET NOCOUNT ON
  39081. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39082. SET XACT_ABORT ON
  39083. BEGIN
  39084. DECLARE @StartRowIndex INT --起始行索引
  39085. DECLARE @EndRowIndex INT --截止行索引
  39086. DECLARE @tmptable TABLE(
  39087. FromUserID INT NOT NULL, --源用户ID
  39088. GameID INT NOT NULL, --游戏ID
  39089. ItemType TINYINT NOT NULL, --道具类型(1=金币 2=钻石)
  39090. IncomeType INT NOT NULL, --收益类型(1=游戏收益 2=礼物收益)
  39091. UserType INT NOT NULL, --用户类型(1=普通用户 2=房主用户 3=VIP用户)
  39092. Amount BIGINT NOT NULL, --数量
  39093. Profit DECIMAL(18, 2) NOT NULL, --收益
  39094. Crdate DATETIME NOT NULL --时间
  39095. )
  39096. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  39097. SET @EndRowIndex = @PageIndex * @PageSize
  39098. IF(@FromUserID > 0)
  39099. BEGIN
  39100. INSERT INTO @tmptable
  39101. (
  39102. FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
  39103. Profit, Crdate
  39104. )
  39105. SELECT
  39106. FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
  39107. Profit, Crdate
  39108. FROM
  39109. [UserIncomeLog]
  39110. WHERE
  39111. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID AND FromUserID = @FromUserID
  39112. END
  39113. ELSE
  39114. BEGIN
  39115. INSERT INTO @tmptable
  39116. (
  39117. FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
  39118. Profit, Crdate
  39119. )
  39120. SELECT
  39121. FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
  39122. Profit, Crdate
  39123. FROM
  39124. [UserIncomeLog]
  39125. WHERE
  39126. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID
  39127. END
  39128. --记录数
  39129. SET @RecordCount = @@ROWCOUNT
  39130. ;WITH [List] AS
  39131. (
  39132. SELECT
  39133. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  39134. FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
  39135. Profit, Crdate
  39136. FROM
  39137. @tmptable
  39138. )
  39139. --返回信息
  39140. SELECT
  39141. FromUserId, GameId, ItemType, IncomeType, UserType, Amount,
  39142. Profit, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  39143. FROM
  39144. [List]
  39145. WHERE
  39146. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  39147. ORDER BY
  39148. RowNumber ASC
  39149. RETURN
  39150. END
  39151. GO
  39152. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  39153. SET ANSI_NULLS ON
  39154. GO
  39155. SET QUOTED_IDENTIFIER ON
  39156. GO
  39157. -- EXEC [WS_AudioRoom_GetInfo]
  39158. -- ==============================================
  39159. -- Author: wolf
  39160. -- Create Date: 2016-07-21
  39161. -- Mendor: wolf
  39162. -- Alter Date: 2016-11-07
  39163. -- Description: 语音房信息
  39164. -- ==============================================
  39165. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetInfo]
  39166. @RoomID INT --房间ID
  39167. AS
  39168. SET NOCOUNT ON
  39169. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39170. SET XACT_ABORT ON
  39171. BEGIN
  39172. SELECT
  39173. RoomID, RoomName, RoomImg, UserID, Family, Country, Language, MicCount, MicMode,
  39174. JoinFee, Announce, Tag, MemberCount, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate,
  39175. Level, Exps
  39176. FROM
  39177. [AudioRoom]
  39178. WHERE
  39179. RoomID = @RoomID
  39180. RETURN
  39181. END
  39182. GO
  39183. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetMembers] Script Date: 2024/1/12 11:01:14 ******/
  39184. SET ANSI_NULLS ON
  39185. GO
  39186. SET QUOTED_IDENTIFIER ON
  39187. GO
  39188. -- EXEC [WS_AudioRoom_GetMembers]
  39189. -- ==============================================
  39190. -- Author: wolf
  39191. -- Create Date: 2016-07-21
  39192. -- Mendor: wolf
  39193. -- Alter Date: 2016-11-07
  39194. -- Description: 语音房成员
  39195. -- ==============================================
  39196. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetMembers]
  39197. @RoomID INT --房间ID
  39198. AS
  39199. SET NOCOUNT ON
  39200. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39201. SET XACT_ABORT ON
  39202. BEGIN
  39203. SELECT
  39204. RoomID, UserID, RoleID, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate, Level, Exps
  39205. FROM
  39206. [UserAudioRoom]
  39207. WHERE
  39208. RoomID = @RoomID
  39209. RETURN
  39210. END
  39211. GO
  39212. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetMicInfo] Script Date: 2024/1/12 11:01:14 ******/
  39213. SET ANSI_NULLS ON
  39214. GO
  39215. SET QUOTED_IDENTIFIER ON
  39216. GO
  39217. -- EXEC [WS_AudioRoom_GetMicInfo]
  39218. -- ==============================================
  39219. -- Author: wolf
  39220. -- Create Date: 2016-07-21
  39221. -- Mendor: wolf
  39222. -- Alter Date: 2016-11-07
  39223. -- Description: 语音房麦位信息
  39224. -- ==============================================
  39225. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetMicInfo]
  39226. @RoomID INT --房间ID
  39227. AS
  39228. SET NOCOUNT ON
  39229. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39230. SET XACT_ABORT ON
  39231. BEGIN
  39232. SELECT MicInfo FROM [AudioRoomMic] WHERE RoomID = @RoomID
  39233. RETURN
  39234. END
  39235. GO
  39236. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetOperateLog] Script Date: 2024/1/12 11:01:14 ******/
  39237. SET ANSI_NULLS ON
  39238. GO
  39239. SET QUOTED_IDENTIFIER ON
  39240. GO
  39241. -- EXEC [WS_AudioRoom_GetOperateLog]
  39242. -- ==============================================
  39243. -- Author: wolf
  39244. -- Create Date: 2016-07-21
  39245. -- Mendor: wolf
  39246. -- Alter Date: 2016-11-07
  39247. -- Description: 语音房操作记录
  39248. -- ==============================================
  39249. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetOperateLog]
  39250. @RoomID INT, --房间ID
  39251. @ToUserID INT, --用户ID
  39252. @OperateType TINYINT, --操作类型(10=强制下麦 21=禁麦 22=解麦 31=添加房间黑名单 32=移除房间黑名单)
  39253. @PageIndex INT, --页索引
  39254. @PageSize INT, --页大小
  39255. @RecordCount INT OUTPUT --记录数
  39256. AS
  39257. SET NOCOUNT ON
  39258. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39259. SET XACT_ABORT ON
  39260. BEGIN
  39261. DECLARE @StartRowIndex INT --起始行索引
  39262. DECLARE @EndRowIndex INT --截止行索引
  39263. DECLARE @CurrTime DATETIME --系统当前时间
  39264. DECLARE @MinOperateType INT --最低操作类型
  39265. DECLARE @MaxOperateType INT --最高操作类型
  39266. DECLARE @tmptable TABLE(
  39267. UserID INT NOT NULL, --用户ID
  39268. ToUserID INT NOT NULL, --对象用户ID
  39269. OperateType TINYINT NOT NULL, --操作类型(10=强制下麦 21=禁麦 22=解麦 31=添加房间黑名单 32=移除房间黑名单)
  39270. Crdate DATETIME NOT NULL --时间
  39271. )
  39272. SET @CurrTime = CONVERT(CHAR(10), GETDATE(), 120)
  39273. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  39274. SET @EndRowIndex = @PageIndex * @PageSize
  39275. SET @CurrTime = @CurrTime - 30
  39276. SET @MinOperateType = @OperateType * 10
  39277. SET @MaxOperateType = @MinOperateType + 9
  39278. --查询某个用户
  39279. IF(@ToUserID > 0)
  39280. BEGIN
  39281. INSERT INTO @tmptable
  39282. (
  39283. UserID, ToUserID, OperateType, Crdate
  39284. )
  39285. SELECT
  39286. UserID, ToUserID, OperateType, Crdate
  39287. FROM
  39288. [AudioRoomOperateLog]
  39289. WHERE
  39290. Crdate >= @CurrTime AND RoomID = @RoomID AND ToUserID = @ToUserID AND OperateType BETWEEN @MinOperateType AND @MaxOperateType
  39291. END
  39292. --所有用户
  39293. ELSE
  39294. BEGIN
  39295. INSERT INTO @tmptable
  39296. (
  39297. UserID, ToUserID, OperateType, Crdate
  39298. )
  39299. SELECT
  39300. UserID, ToUserID, OperateType, Crdate
  39301. FROM
  39302. [AudioRoomOperateLog]
  39303. WHERE
  39304. Crdate >= @CurrTime AND RoomID = @RoomID AND OperateType BETWEEN @MinOperateType AND @MaxOperateType
  39305. END
  39306. --记录数
  39307. SET @RecordCount = @@ROWCOUNT
  39308. ;WITH [List] AS
  39309. (
  39310. SELECT
  39311. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  39312. UserID, ToUserID, OperateType, Crdate
  39313. FROM
  39314. @tmptable
  39315. )
  39316. --返回信息
  39317. SELECT
  39318. UserID, ToUserID, OperateType, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  39319. FROM
  39320. [List]
  39321. WHERE
  39322. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  39323. ORDER BY
  39324. RowNumber ASC
  39325. RETURN
  39326. END
  39327. GO
  39328. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetPermission] Script Date: 2024/1/12 11:01:14 ******/
  39329. SET ANSI_NULLS ON
  39330. GO
  39331. SET QUOTED_IDENTIFIER ON
  39332. GO
  39333. -- EXEC [WS_AudioRoom_GetPermission]
  39334. -- ==============================================
  39335. -- Author: wolf
  39336. -- Create Date: 2016-07-21
  39337. -- Mendor: wolf
  39338. -- Alter Date: 2016-11-07
  39339. -- Description: 获取语音房权限
  39340. -- ==============================================
  39341. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetPermission]
  39342. @RoomID INT --房间ID
  39343. AS
  39344. SET NOCOUNT ON
  39345. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39346. SET XACT_ABORT ON
  39347. BEGIN
  39348. --返回信息
  39349. SELECT
  39350. PermissionType, Enabled
  39351. FROM
  39352. [AudioRoomPermission]
  39353. WHERE
  39354. RoomID = @RoomID
  39355. RETURN
  39356. END
  39357. GO
  39358. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetTaskList] Script Date: 2024/1/12 11:01:14 ******/
  39359. SET ANSI_NULLS ON
  39360. GO
  39361. SET QUOTED_IDENTIFIER ON
  39362. GO
  39363. -- EXEC [WS_AudioRoom_GetTaskList]
  39364. -- ==============================================
  39365. -- Author: wolf
  39366. -- Create Date: 2015-10-10
  39367. -- Mendor: wolf
  39368. -- Alter Date: 2015-10-10
  39369. -- Description: 获取语聊房任务列表
  39370. -- ==============================================
  39371. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetTaskList]
  39372. @RoomID INT --房间ID
  39373. AS
  39374. SET NOCOUNT ON
  39375. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39376. SET XACT_ABORT ON
  39377. BEGIN
  39378. SELECT
  39379. TaskID, Schedule, CurrNum, dbo.fn_TimeToStamp(UpdateTime) AS TimeStamp
  39380. FROM
  39381. [RoomTask]
  39382. WHERE
  39383. RoomID = @RoomID
  39384. RETURN
  39385. END
  39386. GO
  39387. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserAttention] Script Date: 2024/1/12 11:01:14 ******/
  39388. SET ANSI_NULLS ON
  39389. GO
  39390. SET QUOTED_IDENTIFIER ON
  39391. GO
  39392. -- EXEC [WS_AudioRoom_GetUserAttention]
  39393. -- ==============================================
  39394. -- Author: wolf
  39395. -- Create Date: 2016-07-21
  39396. -- Mendor: wolf
  39397. -- Alter Date: 2016-11-07
  39398. -- Description: 用户语音房关注信息
  39399. -- ==============================================
  39400. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserAttention]
  39401. @UserID INT --用户ID
  39402. AS
  39403. SET NOCOUNT ON
  39404. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39405. SET XACT_ABORT ON
  39406. BEGIN
  39407. SELECT RoomSet FROM [AudioRoomAttention] WHERE UserID = @UserID
  39408. RETURN
  39409. END
  39410. GO
  39411. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserBrowse] Script Date: 2024/1/12 11:01:14 ******/
  39412. SET ANSI_NULLS ON
  39413. GO
  39414. SET QUOTED_IDENTIFIER ON
  39415. GO
  39416. -- EXEC [WS_AudioRoom_GetUserBrowse]
  39417. -- ==============================================
  39418. -- Author: wolf
  39419. -- Create Date: 2016-07-21
  39420. -- Mendor: wolf
  39421. -- Alter Date: 2016-11-07
  39422. -- Description: 用户语音房浏览信息
  39423. -- ==============================================
  39424. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserBrowse]
  39425. @UserID INT --用户ID
  39426. AS
  39427. SET NOCOUNT ON
  39428. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39429. SET XACT_ABORT ON
  39430. BEGIN
  39431. SELECT RoomSet FROM [AudioRoomBrowse] WHERE UserID = @UserID
  39432. RETURN
  39433. END
  39434. GO
  39435. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserContribute] Script Date: 2024/1/12 11:01:14 ******/
  39436. SET ANSI_NULLS ON
  39437. GO
  39438. SET QUOTED_IDENTIFIER ON
  39439. GO
  39440. -- EXEC [WS_AudioRoom_GetUserContribute]
  39441. -- ==============================================
  39442. -- Author: wolf
  39443. -- Create Date: 2015-10-10
  39444. -- Mendor: wolf
  39445. -- Alter Date: 2015-10-10
  39446. -- Description: 获取用户贡献
  39447. -- ==============================================
  39448. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserContribute]
  39449. @UserID INT --用户ID
  39450. AS
  39451. SET NOCOUNT ON
  39452. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39453. SET XACT_ABORT ON
  39454. BEGIN
  39455. SELECT
  39456. RoomID, Action, Exps, dbo.fn_TimeToStamp(UpdateTime) AS Expire
  39457. FROM
  39458. [UserContribute]
  39459. WHERE
  39460. UserID = @UserID
  39461. RETURN
  39462. END
  39463. GO
  39464. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserIncomeStat] Script Date: 2024/1/12 11:01:14 ******/
  39465. SET ANSI_NULLS ON
  39466. GO
  39467. SET QUOTED_IDENTIFIER ON
  39468. GO
  39469. -- EXEC [WS_AudioRoom_GetUserIncomeStat]
  39470. -- ==============================================
  39471. -- Author: wolf
  39472. -- Create Date: 2014-06-17
  39473. -- Mendor: wolf
  39474. -- Alter Date: 2016-08-16
  39475. -- Description: 语聊房--获取用户收益统计
  39476. -- ==============================================
  39477. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserIncomeStat]
  39478. @UserID INT, --用户ID
  39479. @RoomID INT, --房间ID
  39480. @FromUserID INT, --源用户ID
  39481. @ItemType INT, --道具类型(1=金币 2=钻石)
  39482. @SortType INT, --排序类型 (11=收益降序 12=收益升序 21=礼物降序 22=礼物升序 31=游戏降序 32=游戏升序 41=下注降序 42=下注升序)
  39483. @BeginTime DATETIME, --开始时间
  39484. @EndTime DATETIME, --截止时间
  39485. @PageIndex INT, --页索引
  39486. @PageSize INT, --页大小
  39487. @RecordCount INT OUTPUT, --记录数
  39488. @TotalGameProfit DECIMAL(18, 2) OUTPUT, --游戏总收益
  39489. @TotalGiftProfit DECIMAL(18, 2) OUTPUT --礼物总收益
  39490. AS
  39491. SET NOCOUNT ON
  39492. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39493. SET XACT_ABORT ON
  39494. BEGIN
  39495. DECLARE @StartRowIndex INT --起始行索引
  39496. DECLARE @EndRowIndex INT --截止行索引
  39497. DECLARE @tmptable TABLE(
  39498. FromUserID INT NOT NULL, --用户ID
  39499. GameProfit DECIMAL(18, 2) NOT NULL, --游戏收益
  39500. GiftProfit DECIMAL(18, 2) NOT NULL --礼物收益
  39501. )
  39502. SET @EndTime = @EndTime + 1
  39503. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  39504. SET @EndRowIndex = @PageIndex * @PageSize
  39505. IF(@FromUserID > 0)
  39506. BEGIN
  39507. INSERT INTO @tmptable
  39508. (
  39509. FromUserID, GameProfit, GiftProfit
  39510. )
  39511. SELECT
  39512. FromUserID,
  39513. ISNULL(SUM(CASE WHEN IncomeType = 1 THEN Profit ELSE 0 END), 0),
  39514. ISNULL(SUM(CASE WHEN IncomeType = 2 THEN Profit ELSE 0 END), 0)
  39515. FROM
  39516. [UserIncomeLog]
  39517. WHERE
  39518. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID AND ItemType = @ItemType AND FromUserID = @FromUserID
  39519. GROUP BY
  39520. FromUserID
  39521. END
  39522. ELSE
  39523. BEGIN
  39524. INSERT INTO @tmptable
  39525. (
  39526. FromUserID, GameProfit, GiftProfit
  39527. )
  39528. SELECT
  39529. FromUserID,
  39530. ISNULL(SUM(CASE WHEN IncomeType = 1 THEN Profit ELSE 0 END), 0),
  39531. ISNULL(SUM(CASE WHEN IncomeType = 2 THEN Profit ELSE 0 END), 0)
  39532. FROM
  39533. [UserIncomeLog]
  39534. WHERE
  39535. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID AND ItemType = @ItemType
  39536. GROUP BY
  39537. FromUserID
  39538. END
  39539. --记录数
  39540. SET @RecordCount = @@ROWCOUNT
  39541. --收益总计
  39542. SELECT @TotalGameProfit = SUM(GameProfit), @TotalGiftProfit = SUM(GiftProfit) FROM @tmptable
  39543. SET @TotalGameProfit = ISNULL(@TotalGameProfit, 0)
  39544. SET @TotalGiftProfit = ISNULL(@TotalGiftProfit, 0)
  39545. --11=收益降序
  39546. IF(@SortType = 11)
  39547. BEGIN
  39548. ;WITH [List] AS
  39549. (
  39550. SELECT
  39551. ROW_NUMBER() OVER(ORDER BY (GameProfit + GiftProfit) DESC) AS RowNumber,
  39552. FromUserID, GameProfit, GiftProfit
  39553. FROM
  39554. @tmptable
  39555. )
  39556. --返回信息
  39557. SELECT
  39558. FromUserId, GameProfit, GiftProfit
  39559. FROM
  39560. [List]
  39561. WHERE
  39562. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  39563. ORDER BY
  39564. RowNumber ASC
  39565. RETURN
  39566. END
  39567. --12=收益升序
  39568. ELSE IF(@SortType = 12)
  39569. BEGIN
  39570. ;WITH [List] AS
  39571. (
  39572. SELECT
  39573. ROW_NUMBER() OVER(ORDER BY (GameProfit + GiftProfit) ASC) AS RowNumber,
  39574. FromUserID, GameProfit, GiftProfit
  39575. FROM
  39576. @tmptable
  39577. )
  39578. --返回信息
  39579. SELECT
  39580. FromUserId, GameProfit, GiftProfit
  39581. FROM
  39582. [List]
  39583. WHERE
  39584. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  39585. ORDER BY
  39586. RowNumber ASC
  39587. RETURN
  39588. END
  39589. --21=礼物收益降序
  39590. ELSE IF(@SortType = 21)
  39591. BEGIN
  39592. ;WITH [List] AS
  39593. (
  39594. SELECT
  39595. ROW_NUMBER() OVER(ORDER BY GiftProfit DESC) AS RowNumber,
  39596. FromUserID, GameProfit, GiftProfit
  39597. FROM
  39598. @tmptable
  39599. )
  39600. --返回信息
  39601. SELECT
  39602. FromUserId, GameProfit, GiftProfit
  39603. FROM
  39604. [List]
  39605. WHERE
  39606. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  39607. ORDER BY
  39608. RowNumber ASC
  39609. RETURN
  39610. END
  39611. --22=礼物收益升序
  39612. ELSE IF(@SortType = 22)
  39613. BEGIN
  39614. ;WITH [List] AS
  39615. (
  39616. SELECT
  39617. ROW_NUMBER() OVER(ORDER BY GiftProfit ASC) AS RowNumber,
  39618. FromUserID, GameProfit, GiftProfit
  39619. FROM
  39620. @tmptable
  39621. )
  39622. --返回信息
  39623. SELECT
  39624. FromUserId, GameProfit, GiftProfit
  39625. FROM
  39626. [List]
  39627. WHERE
  39628. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  39629. ORDER BY
  39630. RowNumber ASC
  39631. RETURN
  39632. END
  39633. --31=游戏收益降序
  39634. ELSE IF(@SortType = 31)
  39635. BEGIN
  39636. ;WITH [List] AS
  39637. (
  39638. SELECT
  39639. ROW_NUMBER() OVER(ORDER BY GameProfit DESC) AS RowNumber,
  39640. FromUserID, GameProfit, GiftProfit
  39641. FROM
  39642. @tmptable
  39643. )
  39644. --返回信息
  39645. SELECT
  39646. FromUserId, GameProfit, GiftProfit
  39647. FROM
  39648. [List]
  39649. WHERE
  39650. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  39651. ORDER BY
  39652. RowNumber ASC
  39653. RETURN
  39654. END
  39655. --32=游戏收益升序
  39656. ELSE IF(@SortType = 32)
  39657. BEGIN
  39658. ;WITH [List] AS
  39659. (
  39660. SELECT
  39661. ROW_NUMBER() OVER(ORDER BY GameProfit ASC) AS RowNumber,
  39662. FromUserID, GameProfit, GiftProfit
  39663. FROM
  39664. @tmptable
  39665. )
  39666. --返回信息
  39667. SELECT
  39668. FromUserId, GameProfit, GiftProfit
  39669. FROM
  39670. [List]
  39671. WHERE
  39672. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  39673. ORDER BY
  39674. RowNumber ASC
  39675. RETURN
  39676. END
  39677. END
  39678. GO
  39679. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserJoin] Script Date: 2024/1/12 11:01:14 ******/
  39680. SET ANSI_NULLS ON
  39681. GO
  39682. SET QUOTED_IDENTIFIER ON
  39683. GO
  39684. -- EXEC [WS_AudioRoom_GetUserJoin]
  39685. -- ==============================================
  39686. -- Author: wolf
  39687. -- Create Date: 2016-07-21
  39688. -- Mendor: wolf
  39689. -- Alter Date: 2016-11-07
  39690. -- Description: 用户语音房信息
  39691. -- ==============================================
  39692. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserJoin]
  39693. @UserID INT --用户ID
  39694. AS
  39695. SET NOCOUNT ON
  39696. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39697. SET XACT_ABORT ON
  39698. BEGIN
  39699. SELECT
  39700. RoomID, RoleID, Level, Exps, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
  39701. FROM
  39702. [UserAudioRoom]
  39703. WHERE
  39704. UserID = @UserID
  39705. RETURN
  39706. END
  39707. GO
  39708. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserRoomList] Script Date: 2024/1/12 11:01:14 ******/
  39709. SET ANSI_NULLS ON
  39710. GO
  39711. SET QUOTED_IDENTIFIER ON
  39712. GO
  39713. -- EXEC [WS_AudioRoom_GetUserRoomList]
  39714. -- ==============================================
  39715. -- Author: wolf
  39716. -- Create Date: 2016-07-21
  39717. -- Mendor: wolf
  39718. -- Alter Date: 2016-11-07
  39719. -- Description: 用户语音房信息
  39720. -- ==============================================
  39721. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserRoomList]
  39722. @UserID INT --用户ID
  39723. AS
  39724. SET NOCOUNT ON
  39725. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39726. SET XACT_ABORT ON
  39727. BEGIN
  39728. SELECT
  39729. RoomID, RoleID, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  39730. FROM
  39731. [UserAudioRoom]
  39732. WHERE
  39733. UserID = @UserID
  39734. RETURN
  39735. END
  39736. GO
  39737. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserTask] Script Date: 2024/1/12 11:01:14 ******/
  39738. SET ANSI_NULLS ON
  39739. GO
  39740. SET QUOTED_IDENTIFIER ON
  39741. GO
  39742. -- EXEC [WS_AudioRoom_GetUserTask]
  39743. -- ==============================================
  39744. -- Author: wolf
  39745. -- Create Date: 2016-07-21
  39746. -- Mendor: wolf
  39747. -- Alter Date: 2016-11-07
  39748. -- Description: 语音房用户任务信息
  39749. -- ==============================================
  39750. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserTask]
  39751. @UserID INT, --用户ID
  39752. @RoomID INT --房间ID
  39753. AS
  39754. SET NOCOUNT ON
  39755. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39756. SET XACT_ABORT ON
  39757. BEGIN
  39758. SELECT
  39759. TaskID, Schedule, CurrNum, Status, dbo.fn_TimeToStamp(UpdateTime) AS TimeStamp
  39760. FROM
  39761. [UserRoomTask]
  39762. WHERE
  39763. UserID = @UserID AND RoomID = @RoomID
  39764. RETURN
  39765. END
  39766. GO
  39767. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserTaskStat] Script Date: 2024/1/12 11:01:14 ******/
  39768. SET ANSI_NULLS ON
  39769. GO
  39770. SET QUOTED_IDENTIFIER ON
  39771. GO
  39772. -- EXEC [WS_AudioRoom_GetUserTaskStat]
  39773. -- ==============================================
  39774. -- Author: wolf
  39775. -- Create Date: 2016-07-21
  39776. -- Mendor: wolf
  39777. -- Alter Date: 2016-11-07
  39778. -- Description: 语音房用户任务统计列表
  39779. -- ==============================================
  39780. CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserTaskStat]
  39781. @RoomID INT --房间ID
  39782. AS
  39783. SET NOCOUNT ON
  39784. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39785. SET XACT_ABORT ON
  39786. BEGIN
  39787. SELECT
  39788. TaskID, COUNT(UserID) AS FinishNum
  39789. FROM
  39790. [UserRoomTask]
  39791. WHERE
  39792. RoomID = @RoomID AND Status = 1 AND UpdateTime >= CONVERT(CHAR(10), GETDATE(), 120)
  39793. GROUP BY
  39794. TaskID
  39795. RETURN
  39796. END
  39797. GO
  39798. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_RecommendRoom] Script Date: 2024/1/12 11:01:14 ******/
  39799. SET ANSI_NULLS ON
  39800. GO
  39801. SET QUOTED_IDENTIFIER ON
  39802. GO
  39803. -- EXEC [WS_AudioRoom_RecommendRoom]
  39804. -- ==============================================
  39805. -- Author: wolf
  39806. -- Create Date: 2016-07-21
  39807. -- Mendor: wolf
  39808. -- Alter Date: 2016-11-07
  39809. -- Description: 语音房推荐房间
  39810. -- ==============================================
  39811. CREATE PROCEDURE [dbo].[WS_AudioRoom_RecommendRoom]
  39812. AS
  39813. SET NOCOUNT ON
  39814. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39815. SET XACT_ABORT ON
  39816. BEGIN
  39817. SELECT TOP 10
  39818. r.RoomID
  39819. FROM
  39820. [AudioRoom] r INNER JOIN [AllUser] u ON r.UserID = u.UserID
  39821. WHERE
  39822. u.IMei LIKE 'fb%'
  39823. ORDER BY
  39824. NEWID()
  39825. RETURN
  39826. END
  39827. GO
  39828. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_RecommendUser] Script Date: 2024/1/12 11:01:14 ******/
  39829. SET ANSI_NULLS ON
  39830. GO
  39831. SET QUOTED_IDENTIFIER ON
  39832. GO
  39833. -- EXEC [WS_AudioRoom_RecommendUser]
  39834. -- ==============================================
  39835. -- Author: wolf
  39836. -- Create Date: 2016-07-21
  39837. -- Mendor: wolf
  39838. -- Alter Date: 2016-11-07
  39839. -- Description: 语音房推荐用户
  39840. -- ==============================================
  39841. CREATE PROCEDURE [dbo].[WS_AudioRoom_RecommendUser]
  39842. AS
  39843. SET NOCOUNT ON
  39844. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39845. SET XACT_ABORT ON
  39846. BEGIN
  39847. SELECT TOP 10 UserID FROM [AllUser] WHERE LoginTime >= GETDATE() - 5 ORDER BY NEWID()
  39848. RETURN
  39849. END
  39850. GO
  39851. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_RemoveBlack] Script Date: 2024/1/12 11:01:14 ******/
  39852. SET ANSI_NULLS ON
  39853. GO
  39854. SET QUOTED_IDENTIFIER ON
  39855. GO
  39856. -- EXEC [WS_AudioRoom_RemoveBlack]
  39857. -- ==============================================
  39858. -- Author: wolf
  39859. -- Create Date: 2016-07-21
  39860. -- Mendor: wolf
  39861. -- Alter Date: 2016-11-07
  39862. -- Description: 移除语音房黑名单
  39863. -- ==============================================
  39864. CREATE PROCEDURE [dbo].[WS_AudioRoom_RemoveBlack]
  39865. @RoomID INT, --房间ID
  39866. @UserID INT, --用户ID
  39867. @BlackType TINYINT --黑名单类型(1=房间黑名单 2=麦位黑名单)
  39868. AS
  39869. SET NOCOUNT ON
  39870. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39871. SET XACT_ABORT ON
  39872. BEGIN
  39873. DECLARE @RetCode TINYINT --操作结果
  39874. SET @RetCode = 0
  39875. --删除
  39876. DELETE FROM [AudioRoomBlack] WHERE RoomID = @RoomID AND UserID = @UserID AND BlackType = @BlackType
  39877. SET @RetCode = 1
  39878. SELECT @RetCode AS RetCode
  39879. RETURN
  39880. END
  39881. GO
  39882. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_SaveUserAttention] Script Date: 2024/1/12 11:01:14 ******/
  39883. SET ANSI_NULLS ON
  39884. GO
  39885. SET QUOTED_IDENTIFIER ON
  39886. GO
  39887. -- EXEC [WS_AudioRoom_SaveUserAttention]
  39888. -- ==============================================
  39889. -- Author: wolf
  39890. -- Create Date: 2016-07-21
  39891. -- Mendor: wolf
  39892. -- Alter Date: 2016-11-07
  39893. -- Description: 保存用户语音房关注列表
  39894. -- ==============================================
  39895. CREATE PROCEDURE [dbo].[WS_AudioRoom_SaveUserAttention]
  39896. @UserID INT, --用户ID
  39897. @RoomSet VARCHAR(1024) --房间信息集
  39898. AS
  39899. SET NOCOUNT ON
  39900. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39901. SET XACT_ABORT ON
  39902. BEGIN
  39903. UPDATE [AudioRoomAttention] SET RoomSet = @RoomSet WHERE UserID = @UserID
  39904. IF(@@ROWCOUNT = 0)
  39905. BEGIN
  39906. INSERT INTO [AudioRoomAttention](UserID, RoomSet) VALUES(@UserID, @RoomSet)
  39907. END
  39908. RETURN
  39909. END
  39910. GO
  39911. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_SaveUserBrowse] Script Date: 2024/1/12 11:01:14 ******/
  39912. SET ANSI_NULLS ON
  39913. GO
  39914. SET QUOTED_IDENTIFIER ON
  39915. GO
  39916. -- EXEC [WS_AudioRoom_SaveUserBrowse]
  39917. -- ==============================================
  39918. -- Author: wolf
  39919. -- Create Date: 2016-07-21
  39920. -- Mendor: wolf
  39921. -- Alter Date: 2016-11-07
  39922. -- Description: 保存用户语音房浏览信息
  39923. -- ==============================================
  39924. CREATE PROCEDURE [dbo].[WS_AudioRoom_SaveUserBrowse]
  39925. @UserID INT, --用户ID
  39926. @RoomSet VARCHAR(1024) --房间信息集
  39927. AS
  39928. SET NOCOUNT ON
  39929. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39930. SET XACT_ABORT ON
  39931. BEGIN
  39932. UPDATE [AudioRoomBrowse] SET RoomSet = @RoomSet WHERE UserID = @UserID
  39933. IF(@@ROWCOUNT = 0)
  39934. BEGIN
  39935. INSERT INTO [AudioRoomBrowse](UserID, RoomSet) VALUES(@UserID, @RoomSet)
  39936. END
  39937. RETURN
  39938. END
  39939. GO
  39940. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_SaveUserRoom] Script Date: 2024/1/12 11:01:14 ******/
  39941. SET ANSI_NULLS ON
  39942. GO
  39943. SET QUOTED_IDENTIFIER ON
  39944. GO
  39945. -- EXEC [WS_AudioRoom_SaveUserRoom]
  39946. -- ==============================================
  39947. -- Author: wolf
  39948. -- Create Date: 2016-07-21
  39949. -- Mendor: wolf
  39950. -- Alter Date: 2016-11-07
  39951. -- Description: 保存用户语音房信息
  39952. -- ==============================================
  39953. CREATE PROCEDURE [dbo].[WS_AudioRoom_SaveUserRoom]
  39954. @UserID INT, --用户ID
  39955. @RoomID INT, --房间ID
  39956. @RoleID INT, --角色ID
  39957. @Crdate VARCHAR(20) --时间
  39958. AS
  39959. SET NOCOUNT ON
  39960. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  39961. SET XACT_ABORT ON
  39962. BEGIN
  39963. --更新信息
  39964. UPDATE
  39965. [UserAudioRoom]
  39966. SET
  39967. RoleID = @RoleID
  39968. WHERE
  39969. UserID = @UserID AND RoomID = @RoomID
  39970. IF(@@ROWCOUNT = 0)
  39971. BEGIN
  39972. --添加用户语音房
  39973. INSERT INTO [UserAudioRoom]
  39974. (
  39975. UserID, RoomID, RoleID, Level, Exps, DayExps, UpdateTime, Crdate
  39976. )
  39977. VALUES
  39978. (
  39979. @UserID, @RoomID, @RoleID, 1, 0, 0, @Crdate, @Crdate
  39980. )
  39981. END
  39982. RETURN
  39983. END
  39984. GO
  39985. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_Search] Script Date: 2024/1/12 11:01:14 ******/
  39986. SET ANSI_NULLS ON
  39987. GO
  39988. SET QUOTED_IDENTIFIER ON
  39989. GO
  39990. -- EXEC [WS_AudioRoom_Search]
  39991. -- ==============================================
  39992. -- Author: wolf
  39993. -- Create Date: 2016-07-21
  39994. -- Mendor: wolf
  39995. -- Alter Date: 2016-11-07
  39996. -- Description: 语音房信息
  39997. -- ==============================================
  39998. CREATE PROCEDURE [dbo].[WS_AudioRoom_Search]
  39999. @RoomName NVARCHAR(32) --房间名称
  40000. AS
  40001. SET NOCOUNT ON
  40002. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40003. SET XACT_ABORT ON
  40004. BEGIN
  40005. SELECT
  40006. RoomID, RoomName, RoomImg, UserID, Family, Country, Language,
  40007. MicCount, JoinFee, Announce, Tag, MemberCount, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  40008. FROM
  40009. [AudioRoom]
  40010. WHERE
  40011. RoomName = @RoomName
  40012. RETURN
  40013. END
  40014. GO
  40015. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_SetEnterCondition] Script Date: 2024/1/12 11:01:14 ******/
  40016. SET ANSI_NULLS ON
  40017. GO
  40018. SET QUOTED_IDENTIFIER ON
  40019. GO
  40020. -- EXEC [WS_AudioRoom_SetEnterCondition]
  40021. -- ==============================================
  40022. -- Author: wolf
  40023. -- Create Date: 2016-07-21
  40024. -- Mendor: wolf
  40025. -- Alter Date: 2016-11-07
  40026. -- Description: 语音房设置进入条件
  40027. -- ==============================================
  40028. CREATE PROCEDURE [dbo].[WS_AudioRoom_SetEnterCondition]
  40029. @RoomID INT, --房间ID
  40030. @InviteOnly TINYINT, --只能邀请加入
  40031. @Password VARCHAR(16), --密码
  40032. @PwdExpire INT, --密码过期时间
  40033. @IsHide TINYINT --是否隐藏
  40034. AS
  40035. SET NOCOUNT ON
  40036. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40037. SET XACT_ABORT ON
  40038. BEGIN
  40039. DECLARE @RetCode TINYINT --操作结果
  40040. SET @RetCode = 0
  40041. --修改密码
  40042. UPDATE
  40043. [AudioRoomEnterCondition]
  40044. SET
  40045. InviteOnly = @InviteOnly, Password = @Password, PwdExpire = dbo.fn_StampToTime(@PwdExpire), IsHide = @IsHide
  40046. WHERE
  40047. RoomID = @RoomID
  40048. IF(@@ROWCOUNT = 0)
  40049. BEGIN
  40050. INSERT INTO [AudioRoomEnterCondition]
  40051. (
  40052. RoomID, InviteOnly, Password, PwdExpire, IsHide
  40053. )
  40054. VALUES
  40055. (
  40056. @RoomID, @InviteOnly, @Password, dbo.fn_StampToTime(@PwdExpire), @IsHide
  40057. )
  40058. END
  40059. SET @RetCode = 1
  40060. SELECT @RetCode AS RetCode
  40061. RETURN
  40062. END
  40063. GO
  40064. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_SetMicInfo] Script Date: 2024/1/12 11:01:14 ******/
  40065. SET ANSI_NULLS ON
  40066. GO
  40067. SET QUOTED_IDENTIFIER ON
  40068. GO
  40069. -- EXEC [WS_AudioRoom_SetMicInfo]
  40070. -- ==============================================
  40071. -- Author: wolf
  40072. -- Create Date: 2016-07-21
  40073. -- Mendor: wolf
  40074. -- Alter Date: 2016-11-07
  40075. -- Description: 语音房麦位设置
  40076. -- ==============================================
  40077. CREATE PROCEDURE [dbo].[WS_AudioRoom_SetMicInfo]
  40078. @RoomID INT, --房间ID
  40079. @MicInfo VARCHAR(1024) --麦位信息
  40080. AS
  40081. SET NOCOUNT ON
  40082. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40083. SET XACT_ABORT ON
  40084. BEGIN
  40085. UPDATE [AudioRoomMic] SET MicInfo = @MicInfo WHERE RoomID = @RoomID
  40086. IF(@@ROWCOUNT = 0)
  40087. BEGIN
  40088. INSERT INTO [AudioRoomMic](RoomID, MicInfo) VALUES(@RoomID, @MicInfo)
  40089. END
  40090. RETURN
  40091. END
  40092. GO
  40093. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_SetPermission] Script Date: 2024/1/12 11:01:14 ******/
  40094. SET ANSI_NULLS ON
  40095. GO
  40096. SET QUOTED_IDENTIFIER ON
  40097. GO
  40098. -- EXEC [WS_AudioRoom_SetPermission]
  40099. -- ==============================================
  40100. -- Author: wolf
  40101. -- Create Date: 2016-07-21
  40102. -- Mendor: wolf
  40103. -- Alter Date: 2016-11-07
  40104. -- Description: 设置语音房权限
  40105. -- ==============================================
  40106. CREATE PROCEDURE [dbo].[WS_AudioRoom_SetPermission]
  40107. @RoomID INT, --房间ID
  40108. @PermissionType TINYINT, --权限类型(1=麦位锁)
  40109. @Enabled TINYINT --是否启用(0=未启用 1=已启用)
  40110. AS
  40111. SET NOCOUNT ON
  40112. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40113. SET XACT_ABORT ON
  40114. BEGIN
  40115. DECLARE @RetCode TINYINT --操作结果
  40116. SET @RetCode = 0
  40117. --修改
  40118. UPDATE [AudioRoomPermission] SET Enabled = @Enabled WHERE RoomID = @RoomID AND PermissionType = @PermissionType
  40119. IF(@@ROWCOUNT = 0)
  40120. BEGIN
  40121. INSERT INTO [AudioRoomPermission]
  40122. (
  40123. RoomID, PermissionType, Enabled
  40124. )
  40125. VALUES
  40126. (
  40127. @RoomID, @PermissionType, @Enabled
  40128. )
  40129. END
  40130. --设置成功
  40131. SET @RetCode = 1
  40132. SELECT @RetCode AS RetCode
  40133. RETURN
  40134. END
  40135. GO
  40136. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_Update] Script Date: 2024/1/12 11:01:14 ******/
  40137. SET ANSI_NULLS ON
  40138. GO
  40139. SET QUOTED_IDENTIFIER ON
  40140. GO
  40141. -- EXEC [WS_AudioRoom_Update]
  40142. -- ==============================================
  40143. -- Author: wolf
  40144. -- Create Date: 2016-07-21
  40145. -- Mendor: wolf
  40146. -- Alter Date: 2016-11-07
  40147. -- Description: 语音房修改
  40148. -- ==============================================
  40149. CREATE PROCEDURE [dbo].[WS_AudioRoom_Update]
  40150. @RoomID INT, --房间ID
  40151. @RoomName NVARCHAR(32), --房间名称
  40152. @RoomImg VARCHAR(256), --房间图片
  40153. @UserID INT, --用户ID
  40154. @Family NVARCHAR(32), --家族
  40155. @Country NVARCHAR(32), --国家
  40156. @Language NVARCHAR(32), --语言
  40157. @MicCount INT, --上麦数量
  40158. @MicMode TINYINT, --麦位模式(0=房间内所有人自由上麦 1=加入为成员才可以上麦 2=仅限管理员邀请或者管理员才能上麦(包含创建者))
  40159. @JoinFee INT, --入会费
  40160. @Announce NVARCHAR(256), --公告内容
  40161. @Tag NVARCHAR(32) --标签
  40162. AS
  40163. SET NOCOUNT ON
  40164. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40165. SET XACT_ABORT ON
  40166. BEGIN
  40167. DECLARE @RetCode TINYINT --操作结果
  40168. SET @RetCode = 0
  40169. UPDATE
  40170. [AudioRoom]
  40171. SET
  40172. RoomName = @RoomName, RoomImg = @RoomImg, Family = @Family, Country = @Country, Language = @Language,
  40173. MicCount = @MicCount, MicMode = @MicMode, JoinFee = @JoinFee, Announce = @Announce, Tag = @Tag
  40174. WHERE
  40175. RoomID = @RoomID AND UserID = @UserID
  40176. IF(@@ROWCOUNT = 0)
  40177. BEGIN
  40178. SET @RetCode = 11
  40179. SELECT @RetCode AS RetCode
  40180. RETURN
  40181. END
  40182. SET @RetCode = 1
  40183. SELECT @RetCode AS RetCode
  40184. RETURN
  40185. END
  40186. GO
  40187. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateCollect] Script Date: 2024/1/12 11:01:14 ******/
  40188. SET ANSI_NULLS ON
  40189. GO
  40190. SET QUOTED_IDENTIFIER ON
  40191. GO
  40192. -- EXEC [WS_AudioRoom_UpdateCollect]
  40193. -- ==============================================
  40194. -- Author: wolf
  40195. -- Create Date: 2015-10-10
  40196. -- Mendor: wolf
  40197. -- Alter Date: 2015-10-10
  40198. -- Description: 修改语聊房收集
  40199. -- ==============================================
  40200. CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateCollect]
  40201. @RoomID INT, --房间ID
  40202. @DayIndex INT, --日索引
  40203. @Points INT, --点数
  40204. @Ratio INT, --比率
  40205. @Award VARCHAR(64), --奖励
  40206. @Status INT --状态
  40207. AS
  40208. SET NOCOUNT ON
  40209. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40210. SET XACT_ABORT ON
  40211. BEGIN
  40212. UPDATE
  40213. [RoomCollect]
  40214. SET
  40215. Points = @Points, Ratio = @Ratio, Award = @Award, Status = @Status, UpdateTime = GETDATE()
  40216. WHERE
  40217. RoomID = @RoomID AND DayIndex = @DayIndex
  40218. IF(@@ROWCOUNT = 0)
  40219. BEGIN
  40220. INSERT INTO [RoomCollect]
  40221. (
  40222. RoomID, DayIndex, Points, Ratio, Award, Status, UpdateTime
  40223. )
  40224. VALUES
  40225. (
  40226. @RoomID, @DayIndex, @Points, @Ratio, @Award, @Status, GETDATE()
  40227. )
  40228. END
  40229. RETURN
  40230. END
  40231. GO
  40232. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateExps] Script Date: 2024/1/12 11:01:14 ******/
  40233. SET ANSI_NULLS ON
  40234. GO
  40235. SET QUOTED_IDENTIFIER ON
  40236. GO
  40237. -- EXEC [WS_AudioRoom_UpdateExps]
  40238. -- ==============================================
  40239. -- Author: wolf
  40240. -- Create Date: 2016-07-21
  40241. -- Mendor: wolf
  40242. -- Alter Date: 2016-11-07
  40243. -- Description: 语音房更新经验
  40244. -- ==============================================
  40245. CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateExps]
  40246. @RoomID INT, --房间ID
  40247. @Level INT, --等级
  40248. @Exps INT --经验
  40249. AS
  40250. SET NOCOUNT ON
  40251. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40252. SET XACT_ABORT ON
  40253. BEGIN
  40254. UPDATE
  40255. [AudioRoom]
  40256. SET
  40257. [Level] = @Level, Exps = @Exps
  40258. WHERE
  40259. RoomID = @RoomID
  40260. END
  40261. GO
  40262. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateExt] Script Date: 2024/1/12 11:01:14 ******/
  40263. SET ANSI_NULLS ON
  40264. GO
  40265. SET QUOTED_IDENTIFIER ON
  40266. GO
  40267. -- EXEC [WS_AudioRoom_UpdateExt]
  40268. -- ==============================================
  40269. -- Author: wolf
  40270. -- Create Date: 2015-10-10
  40271. -- Mendor: wolf
  40272. -- Alter Date: 2015-10-10
  40273. -- Description: 更新语聊房扩展信息
  40274. -- ==============================================
  40275. CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateExt]
  40276. @RoomID INT, --房间ID
  40277. @DayExps INT, --日经验值
  40278. @CollectDiamond INT, --收集钻石
  40279. @ScreenLock TINYINT, --屏幕锁
  40280. @UpdateTime INT --更新时间戳
  40281. AS
  40282. SET NOCOUNT ON
  40283. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40284. SET XACT_ABORT ON
  40285. BEGIN
  40286. UPDATE
  40287. [AudioRoomExt]
  40288. SET
  40289. DayExps = @DayExps, CollectDiamond = @CollectDiamond, ScreenLock = @ScreenLock, UpdateTime = dbo.fn_StampToTime(@UpdateTime)
  40290. WHERE
  40291. RoomID = @RoomID
  40292. IF(@@ROWCOUNT = 0)
  40293. BEGIN
  40294. INSERT INTO [AudioRoomExt]
  40295. (
  40296. RoomID, DayExps, CollectDiamond, ScreenLock, UpdateTime
  40297. )
  40298. VALUES
  40299. (
  40300. @RoomID, @DayExps, @CollectDiamond, @ScreenLock, dbo.fn_StampToTime(@UpdateTime)
  40301. )
  40302. END
  40303. RETURN
  40304. END
  40305. GO
  40306. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateIncomeLevel] Script Date: 2024/1/12 11:01:14 ******/
  40307. SET ANSI_NULLS ON
  40308. GO
  40309. SET QUOTED_IDENTIFIER ON
  40310. GO
  40311. -- EXEC [WS_AudioRoom_UpdateIncomeLevel]
  40312. -- ==============================================
  40313. -- Author: wolf
  40314. -- Create Date: 2014-06-17
  40315. -- Mendor: wolf
  40316. -- Alter Date: 2016-08-16
  40317. -- Description: 语聊房--更新收益等级
  40318. -- ==============================================
  40319. CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateIncomeLevel]
  40320. @UserID INT, --用户ID
  40321. @IncomeLevel INT --收益等级
  40322. AS
  40323. SET NOCOUNT ON
  40324. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40325. SET XACT_ABORT ON
  40326. BEGIN
  40327. UPDATE
  40328. [UserIncomeLevel]
  40329. SET
  40330. IncomeLevel = @IncomeLevel
  40331. WHERE
  40332. UserID = @UserID
  40333. IF(@@ROWCOUNT = 0)
  40334. BEGIN
  40335. INSERT INTO [UserIncomeLevel]
  40336. (
  40337. UserID, IncomeLevel
  40338. )
  40339. VALUES
  40340. (
  40341. @UserID, @IncomeLevel
  40342. )
  40343. END
  40344. RETURN
  40345. END
  40346. GO
  40347. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateMembers] Script Date: 2024/1/12 11:01:14 ******/
  40348. SET ANSI_NULLS ON
  40349. GO
  40350. SET QUOTED_IDENTIFIER ON
  40351. GO
  40352. -- EXEC [WS_AudioRoom_UpdateMembers]
  40353. -- ==============================================
  40354. -- Author: wolf
  40355. -- Create Date: 2016-07-21
  40356. -- Mendor: wolf
  40357. -- Alter Date: 2016-11-07
  40358. -- Description: 语音房更新在线人数
  40359. -- ==============================================
  40360. CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateMembers]
  40361. @RoomID INT, --房间ID
  40362. @MemberCount INT --会员数
  40363. AS
  40364. SET NOCOUNT ON
  40365. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40366. SET XACT_ABORT ON
  40367. BEGIN
  40368. UPDATE [AudioRoom] SET MemberCount = @MemberCount WHERE RoomID = @RoomID
  40369. RETURN
  40370. END
  40371. GO
  40372. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateTask] Script Date: 2024/1/12 11:01:14 ******/
  40373. SET ANSI_NULLS ON
  40374. GO
  40375. SET QUOTED_IDENTIFIER ON
  40376. GO
  40377. -- EXEC [WS_AudioRoom_UpdateTask]
  40378. -- ==============================================
  40379. -- Author: wolf
  40380. -- Create Date: 2015-10-10
  40381. -- Mendor: wolf
  40382. -- Alter Date: 2015-10-10
  40383. -- Description: 修改语聊房任务
  40384. -- ==============================================
  40385. CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateTask]
  40386. @RoomID INT, --房间ID
  40387. @TaskID INT, --任务ID
  40388. @Schedule INT, --进度
  40389. @CurrNum INT, --所需数值
  40390. @TimeStamp INT --时间戳
  40391. AS
  40392. SET NOCOUNT ON
  40393. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40394. SET XACT_ABORT ON
  40395. BEGIN
  40396. UPDATE
  40397. [RoomTask]
  40398. SET
  40399. Schedule = @Schedule, CurrNum = @CurrNum, UpdateTime = dbo.fn_StampToTime(@TimeStamp)
  40400. WHERE
  40401. RoomID = @RoomID AND TaskID = @TaskID
  40402. IF(@@ROWCOUNT = 0)
  40403. BEGIN
  40404. INSERT INTO [RoomTask]
  40405. (
  40406. RoomID, TaskID, Schedule, CurrNum, UpdateTime
  40407. )
  40408. VALUES
  40409. (
  40410. @RoomID, @TaskID, @Schedule, @CurrNum, dbo.fn_StampToTime(@TimeStamp)
  40411. )
  40412. END
  40413. RETURN
  40414. END
  40415. GO
  40416. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateUserContribute] Script Date: 2024/1/12 11:01:14 ******/
  40417. SET ANSI_NULLS ON
  40418. GO
  40419. SET QUOTED_IDENTIFIER ON
  40420. GO
  40421. -- EXEC [WS_AudioRoom_UpdateUserContribute]
  40422. -- ==============================================
  40423. -- Author: wolf
  40424. -- Create Date: 2015-10-10
  40425. -- Mendor: wolf
  40426. -- Alter Date: 2015-10-10
  40427. -- Description: 更新用户贡献
  40428. -- ==============================================
  40429. CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateUserContribute]
  40430. @UserID INT, --用户ID
  40431. @RoomID INT, --房间ID
  40432. @Action INT, --动作
  40433. @Exps INT, --经验值
  40434. @Expire INT --过期时间戳
  40435. AS
  40436. SET NOCOUNT ON
  40437. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40438. SET XACT_ABORT ON
  40439. BEGIN
  40440. UPDATE
  40441. [UserContribute]
  40442. SET
  40443. Action = @Action, Exps = @Exps, UpdateTime = dbo.fn_StampToTime(@Expire)
  40444. WHERE
  40445. UserID = @UserID AND RoomID = @RoomID
  40446. IF(@@ROWCOUNT = 0)
  40447. BEGIN
  40448. INSERT INTO [UserContribute]
  40449. (
  40450. UserID, RoomID, Action, Exps, UpdateTime
  40451. )
  40452. VALUES
  40453. (
  40454. @UserID, @RoomID, @Action, @Exps, dbo.fn_StampToTime(@Expire)
  40455. )
  40456. END
  40457. RETURN
  40458. END
  40459. GO
  40460. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateUserExps] Script Date: 2024/1/12 11:01:14 ******/
  40461. SET ANSI_NULLS ON
  40462. GO
  40463. SET QUOTED_IDENTIFIER ON
  40464. GO
  40465. -- EXEC [WS_AudioRoom_UpdateUserExps]
  40466. -- ==============================================
  40467. -- Author: wolf
  40468. -- Create Date: 2016-07-21
  40469. -- Mendor: wolf
  40470. -- Alter Date: 2016-11-07
  40471. -- Description: 语音房用户经验
  40472. -- ==============================================
  40473. CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateUserExps]
  40474. @UserID INT, --用户ID
  40475. @RoomID INT, --房间ID
  40476. @Level INT, --等级
  40477. @Exps INT --经验
  40478. AS
  40479. SET NOCOUNT ON
  40480. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40481. SET XACT_ABORT ON
  40482. BEGIN
  40483. UPDATE
  40484. [UserAudioRoom]
  40485. SET
  40486. Level = @Level, Exps = @Exps
  40487. WHERE
  40488. UserID = @UserID AND RoomID = @RoomID
  40489. RETURN
  40490. END
  40491. GO
  40492. /****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateUserTask] Script Date: 2024/1/12 11:01:14 ******/
  40493. SET ANSI_NULLS ON
  40494. GO
  40495. SET QUOTED_IDENTIFIER ON
  40496. GO
  40497. -- EXEC [WS_AudioRoom_UpdateUserTask]
  40498. -- ==============================================
  40499. -- Author: wolf
  40500. -- Create Date: 2016-07-21
  40501. -- Mendor: wolf
  40502. -- Alter Date: 2016-11-07
  40503. -- Description: 语音房用户任务修改
  40504. -- ==============================================
  40505. CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateUserTask]
  40506. @UserID INT, --用户ID
  40507. @RoomID INT, --房间ID
  40508. @TaskID INT, --任务ID
  40509. @Schedule INT, --进度
  40510. @CurrNum INT, --当前值
  40511. @Status INT, --状态(0=进行中 1=完成)
  40512. @TimeStamp INT --时间戳
  40513. AS
  40514. SET NOCOUNT ON
  40515. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40516. SET XACT_ABORT ON
  40517. BEGIN
  40518. UPDATE
  40519. [UserRoomTask]
  40520. SET
  40521. Schedule = @Schedule, CurrNum = @CurrNum, Status= @Status, UpdateTime = dbo.fn_StampToTime(@TimeStamp)
  40522. WHERE
  40523. UserID = @UserID AND RoomID = @RoomID AND TaskID = @TaskID
  40524. IF(@@ROWCOUNT = 0)
  40525. BEGIN
  40526. INSERT INTO [UserRoomTask]
  40527. (
  40528. UserID, RoomID, TaskID, Schedule, CurrNum, Status, UpdateTime
  40529. )
  40530. VALUES
  40531. (
  40532. @UserID, @RoomID, @TaskID, @Schedule, @CurrNum, @Status, dbo.fn_StampToTime(@TimeStamp)
  40533. )
  40534. END
  40535. RETURN
  40536. END
  40537. GO
  40538. /****** Object: StoredProcedure [dbo].[WS_bank_GetLog] Script Date: 2024/1/12 11:01:14 ******/
  40539. SET ANSI_NULLS ON
  40540. GO
  40541. SET QUOTED_IDENTIFIER ON
  40542. GO
  40543. -- EXEC [WS_bank_GetLog]
  40544. -- ==============================================
  40545. -- Author: Lincoln
  40546. -- Create Date: 2018-03-20
  40547. -- Mendor: Lincoln
  40548. -- Alter Date: 2018-03-20
  40549. -- Description: 获取保险柜日志
  40550. -- ==============================================
  40551. CREATE PROCEDURE [dbo].[WS_bank_GetLog]
  40552. @UserID INT, --用户ID
  40553. @BeginTime DATETIME, --开始时间
  40554. @EndTime DATETIME, --截止时间
  40555. @PageIndex INT, --页索引
  40556. @PageSize INT, --页大小
  40557. @RecordCount INT OUTPUT --记录数
  40558. AS
  40559. SET NOCOUNT ON
  40560. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40561. SET XACT_ABORT ON
  40562. BEGIN
  40563. DECLARE @StartRowIndex INT --起始行索引
  40564. DECLARE @EndRowIndex INT --截止行索引
  40565. DECLARE @tmptable TABLE(
  40566. UserID INT NOT NULL, --用户ID
  40567. ToUserID INT NOT NULL, --目标用户ID
  40568. WantedAmount BIGINT NOT NULL, --修改数量
  40569. StillAmount BIGINT NOT NULL, --剩余数量
  40570. IPAddress VARCHAR(16) NOT NULL, --IP地址
  40571. Crdate DATETIME NOT NULL --时间
  40572. )
  40573. SET @RecordCount = 0
  40574. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  40575. SET @EndRowIndex = @PageIndex * @PageSize
  40576. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  40577. --初始化表变量
  40578. INSERT INTO @tmptable
  40579. (
  40580. UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
  40581. )
  40582. SELECT
  40583. UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
  40584. FROM
  40585. [BankLog]
  40586. WHERE
  40587. Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND WantedAmount != 0
  40588. --记录数
  40589. SET @RecordCount = @@ROWCOUNT
  40590. --没有数据
  40591. IF(@RecordCount = 0)
  40592. BEGIN
  40593. --初始化表变量
  40594. INSERT INTO @tmptable
  40595. (
  40596. UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
  40597. )
  40598. SELECT TOP 100
  40599. UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
  40600. FROM
  40601. [BankLog]
  40602. WHERE
  40603. Crdate >= GETDATE() - 60 AND UserID = @UserID AND WantedAmount != 0
  40604. ORDER BY
  40605. Rid DESC
  40606. --记录数
  40607. SET @RecordCount = @@ROWCOUNT
  40608. END
  40609. ;WITH [List] AS
  40610. (
  40611. SELECT
  40612. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  40613. UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
  40614. FROM
  40615. @tmptable
  40616. )
  40617. --返回信息
  40618. SELECT
  40619. CASE
  40620. WHEN UserID != ToUserID AND WantedAmount < 0 THEN 'Safe'
  40621. WHEN UserID != ToUserID AND WantedAmount > 0 THEN LTRIM(STR(ToUserID))
  40622. WHEN WantedAmount > 0 AND IPAddress = '127.0.0.1' THEN 'Interest'
  40623. WHEN WantedAmount > 0 THEN 'Cash'
  40624. WHEN WantedAmount < 0 THEN 'Safe'
  40625. ELSE ''
  40626. END AS OpFrom,
  40627. CASE
  40628. WHEN UserID != ToUserID AND WantedAmount < 0 THEN LTRIM(STR(ToUserID))
  40629. WHEN UserID != ToUserID AND WantedAmount > 0 THEN 'Safe'
  40630. WHEN WantedAmount > 0 THEN 'Safe'
  40631. WHEN WantedAmount < 0 THEN 'Cash'
  40632. ELSE ''
  40633. END AS OpTo, WantedAmount, StillAmount, CONVERT(CHAR(20), Crdate, 120) AS Crdate
  40634. FROM
  40635. [List]
  40636. WHERE
  40637. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  40638. ORDER BY
  40639. RowNumber ASC
  40640. RETURN
  40641. END
  40642. GO
  40643. /****** Object: StoredProcedure [dbo].[WS_BetRecord_GetList] Script Date: 2024/1/12 11:01:14 ******/
  40644. SET ANSI_NULLS ON
  40645. GO
  40646. SET QUOTED_IDENTIFIER ON
  40647. GO
  40648. -- EXEC [WS_BetRecord_GetList]
  40649. -- ==============================================
  40650. -- Author: wolf
  40651. -- Create Date: 2014-01-21
  40652. -- Mendor: wolf
  40653. -- Alter Date: 2016-11-07
  40654. -- Description: 游戏记录查询
  40655. -- ==============================================
  40656. CREATE PROCEDURE [dbo].[WS_BetRecord_GetList]
  40657. @UserID INT, --用户ID
  40658. @GameID INT, --游戏ID
  40659. @Days TINYINT, --天数(0=今天 1=昨天 7=最近一周 all=最近30天)
  40660. @PageIndex INT, --页索引
  40661. @PageSize INT, --页大小
  40662. @TotalBetAmount BIGINT OUTPUT, --总投注额
  40663. @TotalResultAmount BIGINT OUTPUT, --总结算额
  40664. @TotalWinAmount BIGINT OUTPUT, --总输赢
  40665. @RecordCount INT OUTPUT, --记录数
  40666. @BetZone VARCHAR(128) = ''
  40667. AS
  40668. SET NOCOUNT ON
  40669. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40670. SET XACT_ABORT ON
  40671. BEGIN
  40672. DECLARE @StartRowIndex INT --起始行索引
  40673. DECLARE @EndRowIndex INT --截止行索引
  40674. DECLARE @CurrTime DATETIME --系统当前时间
  40675. DECLARE @BeginTime DATETIME --开始时间
  40676. --表变量
  40677. DECLARE @tmptable TABLE(
  40678. GameID INT NOT NULL, --游戏ID
  40679. BetAmount BIGINT NOT NULL, --下注金额
  40680. BetTime DATETIME NOT NULL, --下注时间
  40681. ResultAmount BIGINT NOT NULL, --结算金额
  40682. Tax BIGINT NOT NULL, --台费
  40683. Status TINYINT NOT NULL, --状态 1=下注 2=结算 3=撤销
  40684. BetZone VARCHAR(128) NOT NULL, --下注区域
  40685. ResultZone VARCHAR(1024) NOT NULL --结算区域
  40686. )
  40687. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  40688. SET @EndRowIndex = @PageIndex * @PageSize
  40689. SET @CurrTime = GETDATE()
  40690. SET @BeginTime = CONVERT(CHAR(10), @CurrTime - @Days, 120)
  40691. SET @TotalBetAmount = 0
  40692. SET @TotalResultAmount = 0
  40693. SET @TotalWinAmount = 0
  40694. --查询某个游戏
  40695. IF(@GameID > 0)
  40696. BEGIN
  40697. IF(LEN(@BetZone) > 0)
  40698. BEGIN
  40699. --初始化表变量
  40700. INSERT INTO @tmptable
  40701. (
  40702. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40703. )
  40704. SELECT
  40705. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40706. FROM
  40707. [Bet]
  40708. WHERE
  40709. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID AND BetZone = @BetZone
  40710. UNION ALL
  40711. SELECT
  40712. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40713. FROM
  40714. [BetInfo]
  40715. WHERE
  40716. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID AND BetZone = @BetZone
  40717. UNION ALL
  40718. SELECT
  40719. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40720. FROM
  40721. [BetInfoHistory]
  40722. WHERE
  40723. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID AND BetZone = @BetZone
  40724. END
  40725. ELSE
  40726. BEGIN
  40727. --初始化表变量
  40728. INSERT INTO @tmptable
  40729. (
  40730. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40731. )
  40732. SELECT
  40733. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40734. FROM
  40735. [Bet]
  40736. WHERE
  40737. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID
  40738. UNION ALL
  40739. SELECT
  40740. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40741. FROM
  40742. [BetInfo]
  40743. WHERE
  40744. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID
  40745. UNION ALL
  40746. SELECT
  40747. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40748. FROM
  40749. [BetInfoHistory]
  40750. WHERE
  40751. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID
  40752. END
  40753. END
  40754. --所有游戏
  40755. ELSE
  40756. BEGIN
  40757. IF(LEN(@BetZone) > 0)
  40758. BEGIN
  40759. --初始化表变量
  40760. INSERT INTO @tmptable
  40761. (
  40762. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40763. )
  40764. SELECT
  40765. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40766. FROM
  40767. [Bet]
  40768. WHERE
  40769. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND BetZone = @BetZone
  40770. UNION ALL
  40771. SELECT
  40772. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40773. FROM
  40774. [BetInfo]
  40775. WHERE
  40776. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND BetZone = @BetZone
  40777. UNION ALL
  40778. SELECT
  40779. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40780. FROM
  40781. [BetInfoHistory]
  40782. WHERE
  40783. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND BetZone = @BetZone
  40784. END
  40785. ELSE
  40786. BEGIN
  40787. --初始化表变量
  40788. INSERT INTO @tmptable
  40789. (
  40790. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40791. )
  40792. SELECT
  40793. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40794. FROM
  40795. [Bet]
  40796. WHERE
  40797. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID
  40798. UNION ALL
  40799. SELECT
  40800. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40801. FROM
  40802. [BetInfo]
  40803. WHERE
  40804. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID
  40805. UNION ALL
  40806. SELECT
  40807. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40808. FROM
  40809. [BetInfoHistory]
  40810. WHERE
  40811. BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID
  40812. END
  40813. END
  40814. --记录数
  40815. SET @RecordCount = @@ROWCOUNT
  40816. --总投注额、总结算金额
  40817. SELECT
  40818. @TotalBetAmount = SUM(BetAmount), @TotalResultAmount = SUM(ResultAmount),
  40819. @TotalWinAmount = SUM(ResultAmount - BetAmount)
  40820. FROM
  40821. @tmptable
  40822. SET @TotalBetAmount = ISNULL(@TotalBetAmount, 0)
  40823. SET @TotalResultAmount = ISNULL(@TotalResultAmount, 0)
  40824. SET @TotalWinAmount = ISNULL(@TotalWinAmount, 0)
  40825. ;WITH [List] AS
  40826. (
  40827. SELECT
  40828. ROW_NUMBER() OVER(ORDER BY BetTime DESC) AS RowNumber,
  40829. GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
  40830. FROM
  40831. @tmptable
  40832. )
  40833. --返回信息
  40834. SELECT
  40835. g.ChineseName, l.BetAmount, CONVERT(VARCHAR(16), l.BetTime, 120) AS BetTime,
  40836. l.ResultAmount, l.Tax, l.Status, (l.ResultAmount - l.BetAmount) AS WinAmount,
  40837. g.EnglishName, l.BetZone, l.ResultZone
  40838. FROM
  40839. [List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
  40840. WHERE
  40841. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  40842. ORDER BY
  40843. l.RowNumber ASC
  40844. RETURN
  40845. END
  40846. GO
  40847. /****** Object: StoredProcedure [dbo].[WS_Cash_AddTransferLog] Script Date: 2024/1/12 11:01:14 ******/
  40848. SET ANSI_NULLS ON
  40849. GO
  40850. SET QUOTED_IDENTIFIER ON
  40851. GO
  40852. -- EXEC [WS_Cash_AddTransferLog]
  40853. -- ==============================================
  40854. -- Author: wolf
  40855. -- Create Date: 2023-06-28
  40856. -- Mendor: wolf
  40857. -- Alter Date: 2023-06-28
  40858. -- Description: 添加赠送记录
  40859. -- ==============================================
  40860. CREATE PROCEDURE [dbo].[WS_Cash_AddTransferLog]
  40861. @UserID INT, --转账方ID
  40862. @NickName NVARCHAR(32), --转账方昵称
  40863. @AcceptUserID INT, --接收方ID
  40864. @AcceptNickName NVARCHAR(32), --接收方昵称
  40865. @WantAmount BIGINT, --要转多少金币,保证为正数
  40866. @TaxAmount BIGINT, --税
  40867. @IPAddress VARCHAR(15) --IP地址
  40868. AS
  40869. SET NOCOUNT ON
  40870. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  40871. SET XACT_ABORT ON
  40872. BEGIN
  40873. --转账日志
  40874. INSERT INTO [TransferLog]
  40875. (
  40876. [UserID], [NickName],[CurrAmount],[WantAmount], [StillAmount],
  40877. [AcceptUserID], [AcceptNickName], [AcceptCurrAmount], [AcceptWantAmount], [AcceptStillAmount],
  40878. [TaxAmount], [IPAddress], [Memo], [Crdate]
  40879. )
  40880. VALUES
  40881. (
  40882. @UserID, @NickName, 0, -@WantAmount, 0,
  40883. @AcceptUserID, @AcceptNickName, 0, @WantAmount, 0,
  40884. @TaxAmount, @IPAddress, '', GETDATE()
  40885. )
  40886. RETURN
  40887. END
  40888. GO
  40889. /****** Object: StoredProcedure [dbo].[WS_Cash_GetLog] Script Date: 2024/1/12 11:01:14 ******/
  40890. SET ANSI_NULLS ON
  40891. GO
  40892. SET QUOTED_IDENTIFIER ON
  40893. GO
  40894. -- EXEC [WS_Cash_GetLog]
  40895. -- ==============================================
  40896. -- Author: Lincoln
  40897. -- Create Date: 2018-03-20
  40898. -- Mendor: Lincoln
  40899. -- Alter Date: 2018-03-20
  40900. -- Description: 现金日志
  40901. -- ==============================================
  40902. CREATE PROCEDURE [dbo].[WS_Cash_GetLog]
  40903. @UserID INT, --用户ID
  40904. @BeginTime DATETIME, --开始时间
  40905. @EndTime DATETIME, --截止时间
  40906. @PageIndex INT, --页索引
  40907. @PageSize INT, --页大小
  40908. @RecordCount INT OUTPUT --记录数
  40909. AS
  40910. SET NOCOUNT ON
  40911. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40912. SET XACT_ABORT ON
  40913. BEGIN
  40914. DECLARE @StartRowIndex INT --起始行索引
  40915. DECLARE @EndRowIndex INT --截止行索引
  40916. DECLARE @tmptable TABLE(
  40917. LogID INT NOT NULL, --日志ID
  40918. GameID INT NOT NULL, --游戏ID
  40919. SourceName NVARCHAR(32) NOT NULL, --源名称
  40920. ModifyAmount BIGINT NOT NULL, --修改数量
  40921. StillAmount BIGINT NOT NULL, --剩余数量
  40922. Crdate DATETIME NOT NULL, --时间
  40923. LogType INT NOT NULL --日志类型
  40924. )
  40925. SET @RecordCount = 0
  40926. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  40927. SET @EndRowIndex = @PageIndex * @PageSize
  40928. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  40929. --初始化表变量
  40930. INSERT INTO @tmptable
  40931. (
  40932. LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
  40933. )
  40934. SELECT
  40935. LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
  40936. FROM
  40937. [MoneyLog]
  40938. WHERE
  40939. Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND MoneyType = 'CASH' AND ModifyAmount != 0
  40940. UNION ALL
  40941. SELECT
  40942. LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
  40943. FROM
  40944. [MoneyLog_bak]
  40945. WHERE
  40946. Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND MoneyType = 'CASH' AND ModifyAmount != 0
  40947. --记录数
  40948. SET @RecordCount = @@ROWCOUNT
  40949. ;WITH [List] AS
  40950. (
  40951. SELECT
  40952. ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
  40953. LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
  40954. FROM
  40955. @tmptable
  40956. )
  40957. --返回信息
  40958. SELECT
  40959. CASE
  40960. WHEN l.GameID = 11 THEN g.ChineseName
  40961. WHEN l.GameID < 20 THEN l.SourceName
  40962. ELSE g.ChineseName
  40963. END AS ChineseName,
  40964. l.ModifyAmount, l.StillAmount, l.Crdate
  40965. FROM
  40966. [List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
  40967. WHERE
  40968. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  40969. ORDER BY
  40970. l.RowNumber ASC
  40971. RETURN
  40972. END
  40973. GO
  40974. /****** Object: StoredProcedure [dbo].[WS_CasinoOnline_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  40975. SET ANSI_NULLS ON
  40976. GO
  40977. SET QUOTED_IDENTIFIER ON
  40978. GO
  40979. -- EXEC [WS_CasinoOnline_GetInfo]
  40980. -- ==============================================
  40981. -- Author: wolf
  40982. -- Create Date: 2015-03-16
  40983. -- Mendor: wolf
  40984. -- Alter Date: 2016-04-19
  40985. -- Description: 获取金币锁房间信息
  40986. -- ==============================================
  40987. CREATE PROCEDURE [dbo].[WS_CasinoOnline_GetInfo]
  40988. @UserID INT --用户ID
  40989. AS
  40990. SET NOCOUNT ON
  40991. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  40992. SET XACT_ABORT ON
  40993. BEGIN
  40994. DECLARE @GameID INT --游戏ID
  40995. DECLARE @ServerName NVARCHAR(32) --服务器名称
  40996. SET @GameID = 0
  40997. SET @ServerName = ''
  40998. SELECT @GameID = GameID, @ServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
  40999. --返回信息
  41000. SELECT @GameID AS GameID, @ServerName AS ServerName
  41001. RETURN
  41002. END
  41003. GO
  41004. /****** Object: StoredProcedure [dbo].[WS_Chip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  41005. SET ANSI_NULLS ON
  41006. GO
  41007. SET QUOTED_IDENTIFIER ON
  41008. GO
  41009. -- EXEC [WS_Chip_GetInfo]
  41010. -- ==============================================
  41011. -- Author: wolf
  41012. -- Create Date: 2014-12-02
  41013. -- Mendor: wolf
  41014. -- Alter Date: 2014-12-10
  41015. -- Description: 获取筹码
  41016. -- ==============================================
  41017. CREATE PROCEDURE [dbo].[WS_Chip_GetInfo]
  41018. @UserID INT, --用户ID
  41019. @Gold BIGINT OUTPUT, --金币数
  41020. @Bank BIGINT OUTPUT --保险柜
  41021. AS
  41022. SET NOCOUNT ON
  41023. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41024. SET XACT_ABORT ON
  41025. BEGIN
  41026. SET @Gold = 0
  41027. SET @Bank = 0
  41028. --金币
  41029. EXEC [Game_Chip_GetInfo] @userid = @UserID, @Amount = @Gold OUTPUT, @Bank = @Bank OUTPUT
  41030. RETURN
  41031. END
  41032. GO
  41033. /****** Object: StoredProcedure [dbo].[WS_Chip_GetLog] Script Date: 2024/1/12 11:01:14 ******/
  41034. SET ANSI_NULLS ON
  41035. GO
  41036. SET QUOTED_IDENTIFIER ON
  41037. GO
  41038. -- EXEC [WS_Chip_GetLog]
  41039. -- ==============================================
  41040. -- Author: Lincoln
  41041. -- Create Date: 2018-03-20
  41042. -- Mendor: Lincoln
  41043. -- Alter Date: 2018-03-20
  41044. -- Description: 筹码日志
  41045. -- ==============================================
  41046. CREATE PROCEDURE [dbo].[WS_Chip_GetLog]
  41047. @UserID INT, --用户ID
  41048. @BeginTime DATETIME, --开始时间
  41049. @EndTime DATETIME, --截止时间
  41050. @PageIndex INT, --页索引
  41051. @PageSize INT, --页大小
  41052. @RecordCount INT OUTPUT --记录数
  41053. AS
  41054. SET NOCOUNT ON
  41055. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41056. SET XACT_ABORT ON
  41057. BEGIN
  41058. DECLARE @StartRowIndex INT --起始行索引
  41059. DECLARE @EndRowIndex INT --截止行索引
  41060. DECLARE @tmptable TABLE(
  41061. LogID INT NOT NULL, --日志ID
  41062. GameID INT NOT NULL, --游戏ID
  41063. SourceName NVARCHAR(32) NOT NULL, --源名称
  41064. ModifyAmount BIGINT NOT NULL, --修改数量
  41065. StillAmount BIGINT NOT NULL, --剩余数量
  41066. Crdate DATETIME NOT NULL, --时间
  41067. LogType INT NOT NULL --日志类型
  41068. )
  41069. SET @RecordCount = 0
  41070. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  41071. SET @EndRowIndex = @PageIndex * @PageSize
  41072. SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
  41073. --初始化表变量
  41074. INSERT INTO @tmptable
  41075. (
  41076. LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
  41077. )
  41078. SELECT
  41079. LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
  41080. FROM
  41081. [ChipLog]
  41082. WHERE
  41083. Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND MoneyType = 'CASH' AND ModifyAmount != 0
  41084. UNION ALL
  41085. SELECT
  41086. LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
  41087. FROM
  41088. [ChipLog_bak]
  41089. WHERE
  41090. Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND MoneyType = 'CASH' AND ModifyAmount != 0
  41091. --记录数
  41092. SET @RecordCount = @@ROWCOUNT
  41093. ;WITH [List] AS
  41094. (
  41095. SELECT
  41096. ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
  41097. LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
  41098. FROM
  41099. @tmptable
  41100. )
  41101. --返回信息
  41102. SELECT
  41103. CASE
  41104. WHEN l.GameID = 11 THEN g.ChineseName
  41105. WHEN l.GameID < 20 THEN l.SourceName
  41106. ELSE g.ChineseName
  41107. END AS ChineseName,
  41108. l.ModifyAmount, l.StillAmount, l.Crdate
  41109. FROM
  41110. [List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
  41111. WHERE
  41112. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  41113. ORDER BY
  41114. l.RowNumber ASC
  41115. RETURN
  41116. END
  41117. GO
  41118. /****** Object: StoredProcedure [dbo].[WS_Chip_Give] Script Date: 2024/1/12 11:01:14 ******/
  41119. SET ANSI_NULLS ON
  41120. GO
  41121. SET QUOTED_IDENTIFIER ON
  41122. GO
  41123. -- DECLARE @RetCode TINYINT
  41124. -- EXEC [WS_Chip_Give]
  41125. -- @UserID = 10001,
  41126. -- @SourceName = '',
  41127. -- @Amount = 100,
  41128. -- @LogType = 1,
  41129. -- @IPAddress = '',
  41130. -- @RetCode = @RetCode OUTPUT
  41131. -- SELECT @RetCode AS RetCode
  41132. -- ==============================================
  41133. -- Author: wolf
  41134. -- Create Date: 2014-09-03
  41135. -- Mendor: wolf
  41136. -- Alter Date: 2014-09-04
  41137. -- Description: 加筹码接口(供其他接口调用)
  41138. -- ==============================================
  41139. CREATE PROCEDURE [dbo].[WS_Chip_Give]
  41140. @UserID INT, --用户ID
  41141. @Amount BIGINT, --金币数
  41142. @LogType INT, --日志类型
  41143. @SourceName NVARCHAR(64), --源名称
  41144. @Remark NVARCHAR(128), --备注
  41145. @IPAddress VARCHAR(16), --IP地址
  41146. @RetCode TINYINT OUTPUT --操作结果
  41147. --操作结果描述: 1=操作成功 11=传入参数错误
  41148. AS
  41149. SET NOCOUNT ON
  41150. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  41151. SET XACT_ABORT ON
  41152. BEGIN
  41153. SET @RetCode = 0
  41154. --加筹码
  41155. EXEC [Game_Chip_Give] @UserID = @UserID, @SourceName = @SourceName, @GameID = 0, @WantedAmount = @Amount,
  41156. @LogType = @LogType, @Remark = @Remark, @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
  41157. RETURN
  41158. END
  41159. GO
  41160. /****** Object: StoredProcedure [dbo].[WS_Chip_Reduce] Script Date: 2024/1/12 11:01:14 ******/
  41161. SET ANSI_NULLS ON
  41162. GO
  41163. SET QUOTED_IDENTIFIER ON
  41164. GO
  41165. -- EXEC [WS_Chip_Reduce]
  41166. -- ==============================================
  41167. -- Author: wolf
  41168. -- Create Date: 2014-09-03
  41169. -- Mendor: wolf
  41170. -- Alter Date: 2014-12-02
  41171. -- Description: 扣除金币接口(供其他接口调用)
  41172. -- ==============================================
  41173. CREATE PROCEDURE [dbo].[WS_Chip_Reduce]
  41174. @UserID INT, --用户ID
  41175. @Amount BIGINT, --操作金币(必须>0)
  41176. @LogType INT, --日志类型
  41177. @SourceName VARCHAR(64), --源名称
  41178. @Remark VARCHAR(128), --备注
  41179. @IPAddress VARCHAR(16), --IP地址
  41180. @RetCode TINYINT OUTPUT --操作结果
  41181. --操作结果描述:1=操作成功 11=金币不足 12=参数异常 21=金币锁
  41182. AS
  41183. SET NOCOUNT ON
  41184. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  41185. SET XACT_ABORT ON
  41186. BEGIN
  41187. SET @RetCode = 0
  41188. --扣减(检查泥码)
  41189. EXEC [Game_Chip_Reduce] @UserID = @UserID, @WantedAmount = @Amount, @LogType = @LogType,
  41190. @SourceName = @SourceName, @GameID = 0, @Remark = @Remark, @IPAddress = @IPAddress,
  41191. @RetCode = @RetCode OUTPUT
  41192. RETURN
  41193. END
  41194. GO
  41195. /****** Object: StoredProcedure [dbo].[WS_CouponTask_AwardTask] Script Date: 2024/1/12 11:01:14 ******/
  41196. SET ANSI_NULLS ON
  41197. GO
  41198. SET QUOTED_IDENTIFIER ON
  41199. GO
  41200. -- EXEC [WS_CouponTask_AwardTask]
  41201. -- ==============================================
  41202. -- Author: wolf
  41203. -- Create Date: 2014-12-29
  41204. -- Mendor: wolf
  41205. -- Alter Date: 2015-06-01
  41206. -- Description: 券任务领奖
  41207. -- ==============================================
  41208. CREATE PROCEDURE [dbo].[WS_CouponTask_AwardTask]
  41209. @UserTaskID INT, --用户任务ID
  41210. @UserID INT, --用户ID
  41211. @Status TINYINT --状态(1=领取 2=领取多倍)
  41212. AS
  41213. SET NOCOUNT ON
  41214. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41215. SET XACT_ABORT ON
  41216. BEGIN
  41217. DECLARE @RetCode TINYINT --操作结果
  41218. DECLARE @GiftStatus TINYINT --状态(0=进行中 1=已领取 2=已领取多倍)
  41219. SET @RetCode = 0
  41220. SET @GiftStatus = 0
  41221. --参数异常
  41222. IF(@Status IS NULL OR @Status NOT IN (1, 2))
  41223. BEGIN
  41224. SET @RetCode = 11
  41225. SELECT @RetCode AS RetCode
  41226. RETURN
  41227. END
  41228. --获取信息
  41229. SELECT
  41230. @GiftStatus = GiftStatus
  41231. FROM
  41232. [UserCouponTask]
  41233. WHERE
  41234. UserTaskID = @UserTaskID AND UserID = @UserID
  41235. IF(@@ROWCOUNT = 0)
  41236. BEGIN
  41237. SET @RetCode = 11
  41238. SELECT @RetCode AS RetCode
  41239. RETURN
  41240. END
  41241. --都已经领取过了
  41242. IF(@GiftStatus = 2)
  41243. BEGIN
  41244. SET @RetCode = 12
  41245. SELECT @RetCode AS RetCode
  41246. RETURN
  41247. END
  41248. --领取单次
  41249. IF(@Status = 1 AND @GiftStatus = 1)
  41250. BEGIN
  41251. SET @RetCode = 13
  41252. SELECT @RetCode AS RetCode
  41253. RETURN
  41254. END
  41255. --领取多次
  41256. IF(@Status = 2 AND @GiftStatus = 2)
  41257. BEGIN
  41258. SET @RetCode = 14
  41259. SELECT @RetCode AS RetCode
  41260. RETURN
  41261. END
  41262. --修改状态
  41263. UPDATE
  41264. [UserCouponTask]
  41265. SET
  41266. GiftStatus = CASE
  41267. WHEN @Status = 1 THEN 1 --普通领取
  41268. WHEN @Status = 2 THEN 2 --多倍领取
  41269. END
  41270. WHERE
  41271. UserTaskID = @UserTaskID
  41272. --操作成功
  41273. SET @RetCode = 1
  41274. SELECT @RetCode AS RetCode
  41275. RETURN
  41276. END
  41277. GO
  41278. /****** Object: StoredProcedure [dbo].[WS_CouponTask_GetSwitchInfo] Script Date: 2024/1/12 11:01:14 ******/
  41279. SET ANSI_NULLS ON
  41280. GO
  41281. SET QUOTED_IDENTIFIER ON
  41282. GO
  41283. -- EXEC [WS_CouponTask_GetSwitchInfo]
  41284. -- ==============================================
  41285. -- Author: wolf
  41286. -- Create Date: 2014-12-29
  41287. -- Mendor: wolf
  41288. -- Alter Date: 2015-06-01
  41289. -- Description: 券系统任务开关
  41290. -- ==============================================
  41291. CREATE PROCEDURE [dbo].[WS_CouponTask_GetSwitchInfo]
  41292. AS
  41293. SET NOCOUNT ON
  41294. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41295. SET XACT_ABORT ON
  41296. BEGIN
  41297. SELECT IsCouponTask FROM [PlatformConfig] WHERE ConfigID = 1
  41298. RETURN
  41299. END
  41300. GO
  41301. /****** Object: StoredProcedure [dbo].[WS_CouponTask_GetSysList] Script Date: 2024/1/12 11:01:14 ******/
  41302. SET ANSI_NULLS ON
  41303. GO
  41304. SET QUOTED_IDENTIFIER ON
  41305. GO
  41306. -- EXEC [WS_CouponTask_GetSysList]
  41307. -- ==============================================
  41308. -- Author: wolf
  41309. -- Create Date: 2014-12-29
  41310. -- Mendor: wolf
  41311. -- Alter Date: 2015-06-01
  41312. -- Description: 券系统任务
  41313. -- ==============================================
  41314. CREATE PROCEDURE [dbo].[WS_CouponTask_GetSysList]
  41315. AS
  41316. SET NOCOUNT ON
  41317. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41318. SET XACT_ABORT ON
  41319. BEGIN
  41320. SELECT
  41321. TaskID, GameID, BaseScore, Players, DoubleType, Coupons
  41322. FROM
  41323. [CouponTask]
  41324. ORDER BY
  41325. TaskID ASC
  41326. RETURN
  41327. END
  41328. GO
  41329. /****** Object: StoredProcedure [dbo].[WS_CouponTask_GetTaskList] Script Date: 2024/1/12 11:01:14 ******/
  41330. SET ANSI_NULLS ON
  41331. GO
  41332. SET QUOTED_IDENTIFIER ON
  41333. GO
  41334. -- EXEC [WS_CouponTask_GetTaskList]
  41335. -- ==============================================
  41336. -- Author: wolf
  41337. -- Create Date: 2014-12-29
  41338. -- Mendor: wolf
  41339. -- Alter Date: 2015-06-01
  41340. -- Description: 券任务列表
  41341. -- ==============================================
  41342. CREATE PROCEDURE [dbo].[WS_CouponTask_GetTaskList]
  41343. @UserID INT --用户ID
  41344. AS
  41345. SET NOCOUNT ON
  41346. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41347. SET XACT_ABORT ON
  41348. BEGIN
  41349. SELECT TOP 50
  41350. UserTaskID, GameID, BaseScore, GameCount, Coupons, GiftStatus,
  41351. CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  41352. FROM
  41353. [UserCouponTask]
  41354. WHERE
  41355. Crdate >= GETDATE() - 5 AND UserID = @UserID
  41356. ORDER BY
  41357. UserTaskID DESC
  41358. RETURN
  41359. END
  41360. GO
  41361. /****** Object: StoredProcedure [dbo].[WS_CouponTask_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
  41362. SET ANSI_NULLS ON
  41363. GO
  41364. SET QUOTED_IDENTIFIER ON
  41365. GO
  41366. -- EXEC [WS_CouponTask_GetUserInfo]
  41367. -- ==============================================
  41368. -- Author: wolf
  41369. -- Create Date: 2014-12-29
  41370. -- Mendor: wolf
  41371. -- Alter Date: 2015-06-01
  41372. -- Description: 券任务信息
  41373. -- ==============================================
  41374. CREATE PROCEDURE [dbo].[WS_CouponTask_GetUserInfo]
  41375. @UserID INT
  41376. AS
  41377. SET NOCOUNT ON
  41378. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41379. SET XACT_ABORT ON
  41380. BEGIN
  41381. DECLARE @IMei VARCHAR(64)
  41382. DECLARE @deviceid VARCHAR(64)
  41383. DECLARE @IsFacebook TINYINT --是否Facebook账户
  41384. SET @IsFacebook = 0
  41385. --获取用户信息
  41386. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
  41387. --判断是否是google账号
  41388. IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.' OR LEFT(@deviceid, 3) = 'gg.')
  41389. BEGIN
  41390. SET @IsFacebook = 1
  41391. END
  41392. --还没有数据
  41393. IF NOT EXISTS(SELECT UserID FROM [UserCouponInfo] WHERE UserID = @UserID)
  41394. BEGIN
  41395. INSERT INTO [UserCouponInfo]
  41396. (
  41397. UserID, TodayCount, BaseLimit, PlayTimes, TmpAdd, UpdateTime
  41398. )
  41399. VALUES
  41400. (
  41401. @UserID, 0, 1000, 0, 0, GETDATE()
  41402. )
  41403. END
  41404. --返回信息
  41405. SELECT
  41406. TodayCount, BaseLimit, TmpAdd, PlayTimes,
  41407. dbo.fn_TimeToStamp(UpdateTime) AS UpdateTime,
  41408. @IsFacebook AS IsFacebook
  41409. FROM
  41410. [UserCouponInfo]
  41411. WHERE
  41412. UserID = @UserID
  41413. RETURN
  41414. END
  41415. GO
  41416. /****** Object: StoredProcedure [dbo].[WS_CouponTask_GetVideoConfig] Script Date: 2024/1/12 11:01:14 ******/
  41417. SET ANSI_NULLS ON
  41418. GO
  41419. SET QUOTED_IDENTIFIER ON
  41420. GO
  41421. -- EXEC [WS_CouponTask_GetVideoConfig]
  41422. -- ==============================================
  41423. -- Author: wolf
  41424. -- Create Date: 2014-12-29
  41425. -- Mendor: wolf
  41426. -- Alter Date: 2015-06-01
  41427. -- Description: 券广告播放配置
  41428. -- ==============================================
  41429. CREATE PROCEDURE [dbo].[WS_CouponTask_GetVideoConfig]
  41430. AS
  41431. SET NOCOUNT ON
  41432. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41433. SET XACT_ABORT ON
  41434. BEGIN
  41435. SELECT
  41436. PlayTimes, CouponLimit
  41437. FROM
  41438. [CouponVideoConfig]
  41439. ORDER BY
  41440. PlayTimes ASC
  41441. RETURN
  41442. END
  41443. GO
  41444. /****** Object: StoredProcedure [dbo].[WS_CouponTask_InsertTask] Script Date: 2024/1/12 11:01:14 ******/
  41445. SET ANSI_NULLS ON
  41446. GO
  41447. SET QUOTED_IDENTIFIER ON
  41448. GO
  41449. -- EXEC [WS_CouponTask_InsertTask]
  41450. -- ==============================================
  41451. -- Author: wolf
  41452. -- Create Date: 2014-12-29
  41453. -- Mendor: wolf
  41454. -- Alter Date: 2015-06-01
  41455. -- Description: 券任务新增
  41456. -- ==============================================
  41457. CREATE PROCEDURE [dbo].[WS_CouponTask_InsertTask]
  41458. @UserID INT, --用户ID
  41459. @GameID INT, --游戏ID
  41460. @BaseScore INT, --底分
  41461. @GameCount SMALLINT, --游戏局数(1~3局)
  41462. @Coupons INT, --券数量
  41463. @GiftStatus TINYINT --状态(0=进行中 1=完成,可领取 2=已领取 3=已领取多倍)
  41464. AS
  41465. SET NOCOUNT ON
  41466. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41467. SET XACT_ABORT ON
  41468. BEGIN
  41469. DECLARE @UserTaskID INT --用户任务ID
  41470. SET @UserTaskID = 0
  41471. --新增
  41472. INSERT INTO [UserCouponTask]
  41473. (
  41474. UserID, GameID, BaseScore, GameCount, Coupons, GiftStatus, Crdate
  41475. )
  41476. VALUES
  41477. (
  41478. @UserID, @GameID, @BaseScore, @GameCount, @Coupons, @GiftStatus, GETDATE()
  41479. )
  41480. SET @UserTaskID = SCOPE_IDENTITY()
  41481. --返回
  41482. SELECT @UserTaskID AS UserTaskID
  41483. RETURN
  41484. END
  41485. GO
  41486. /****** Object: StoredProcedure [dbo].[WS_CouponTask_Reset] Script Date: 2024/1/12 11:01:14 ******/
  41487. SET ANSI_NULLS ON
  41488. GO
  41489. SET QUOTED_IDENTIFIER ON
  41490. GO
  41491. -- EXEC [WS_CouponTask_Reset]
  41492. -- ==============================================
  41493. -- Author: wolf
  41494. -- Create Date: 2014-12-29
  41495. -- Mendor: wolf
  41496. -- Alter Date: 2015-06-01
  41497. -- Description: 券任务信息跨天重置
  41498. -- ==============================================
  41499. CREATE PROCEDURE [dbo].[WS_CouponTask_Reset]
  41500. @UserID INT, --用户ID
  41501. @TodayCount INT, --今天券数量
  41502. @TmpAdd INT, --临时加成
  41503. @PlayTimes INT, --观看次数
  41504. @UpdateTime INT --时间戳
  41505. AS
  41506. SET NOCOUNT ON
  41507. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41508. SET XACT_ABORT ON
  41509. BEGIN
  41510. UPDATE
  41511. [UserCouponInfo]
  41512. SET
  41513. TodayCount = @TodayCount, TmpAdd = @TmpAdd, PlayTimes = @PlayTimes,
  41514. UpdateTime = dbo.fn_StampToTime(@UpdateTime)
  41515. WHERE
  41516. UserID = @UserID
  41517. RETURN
  41518. END
  41519. GO
  41520. /****** Object: StoredProcedure [dbo].[WS_CouponTask_UpdateInfo] Script Date: 2024/1/12 11:01:14 ******/
  41521. SET ANSI_NULLS ON
  41522. GO
  41523. SET QUOTED_IDENTIFIER ON
  41524. GO
  41525. -- EXEC [WS_CouponTask_UpdateInfo]
  41526. -- ==============================================
  41527. -- Author: wolf
  41528. -- Create Date: 2014-12-29
  41529. -- Mendor: wolf
  41530. -- Alter Date: 2015-06-01
  41531. -- Description: 券任务信息修改
  41532. -- ==============================================
  41533. CREATE PROCEDURE [dbo].[WS_CouponTask_UpdateInfo]
  41534. @UserID INT, --用户ID
  41535. @TodayCount INT, --今天券数量
  41536. @UpdateTime INT --时间戳
  41537. AS
  41538. SET NOCOUNT ON
  41539. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41540. SET XACT_ABORT ON
  41541. BEGIN
  41542. UPDATE
  41543. [UserCouponInfo]
  41544. SET
  41545. TodayCount = @TodayCount, UpdateTime = dbo.fn_StampToTime(@UpdateTime)
  41546. WHERE
  41547. UserID = @UserID
  41548. RETURN
  41549. END
  41550. GO
  41551. /****** Object: StoredProcedure [dbo].[WS_CouponTask_UpdateLimit] Script Date: 2024/1/12 11:01:14 ******/
  41552. SET ANSI_NULLS ON
  41553. GO
  41554. SET QUOTED_IDENTIFIER ON
  41555. GO
  41556. -- EXEC [WS_CouponTask_UpdateLimit]
  41557. -- ==============================================
  41558. -- Author: wolf
  41559. -- Create Date: 2014-12-29
  41560. -- Mendor: wolf
  41561. -- Alter Date: 2015-06-01
  41562. -- Description: 券任务上限修改
  41563. -- ==============================================
  41564. CREATE PROCEDURE [dbo].[WS_CouponTask_UpdateLimit]
  41565. @UserID INT, --用户ID
  41566. @BaseLimit INT, --基础上限
  41567. @PlayTimes INT, --播放次数
  41568. @TmpAdd INT --临时加成
  41569. AS
  41570. SET NOCOUNT ON
  41571. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41572. SET XACT_ABORT ON
  41573. BEGIN
  41574. --修改信息
  41575. UPDATE
  41576. [UserCouponInfo]
  41577. SET
  41578. BaseLimit = @BaseLimit, PlayTimes = @PlayTimes, TmpAdd = @TmpAdd
  41579. WHERE
  41580. UserID = @UserID
  41581. RETURN
  41582. END
  41583. GO
  41584. /****** Object: StoredProcedure [dbo].[WS_CouponTask_UpdateTask] Script Date: 2024/1/12 11:01:14 ******/
  41585. SET ANSI_NULLS ON
  41586. GO
  41587. SET QUOTED_IDENTIFIER ON
  41588. GO
  41589. -- EXEC [WS_CouponTask_UpdateTask]
  41590. -- ==============================================
  41591. -- Author: wolf
  41592. -- Create Date: 2014-12-29
  41593. -- Mendor: wolf
  41594. -- Alter Date: 2015-06-01
  41595. -- Description: 券任务更新
  41596. -- ==============================================
  41597. CREATE PROCEDURE [dbo].[WS_CouponTask_UpdateTask]
  41598. @UserID INT, --用户ID
  41599. @UserTaskID INT, --用户任务ID
  41600. @GameCount SMALLINT, --游戏局数(1~3局)
  41601. @Coupons INT --券数量
  41602. AS
  41603. SET NOCOUNT ON
  41604. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41605. SET XACT_ABORT ON
  41606. BEGIN
  41607. UPDATE
  41608. [UserCouponTask]
  41609. SET
  41610. GameCount = @GameCount, Coupons = @Coupons
  41611. WHERE
  41612. UserTaskID = @UserTaskID AND UserID = @UserID
  41613. RETURN
  41614. END
  41615. GO
  41616. /****** Object: StoredProcedure [dbo].[WS_Exchange_GetHistory] Script Date: 2024/1/12 11:01:14 ******/
  41617. SET ANSI_NULLS ON
  41618. GO
  41619. SET QUOTED_IDENTIFIER ON
  41620. GO
  41621. -- EXEC [WS_Exchange_GetHistory]
  41622. -- ==============================================
  41623. -- Author: wolf
  41624. -- Create Date: 2014-06-11
  41625. -- Mendor: wolf
  41626. -- Alter Date: 2014-12-29
  41627. -- Description: 兑换历史
  41628. -- ==============================================
  41629. CREATE PROCEDURE [dbo].[WS_Exchange_GetHistory]
  41630. @UserID INT, --用户ID
  41631. @ExchangeID INT, --兑换ID
  41632. @PageIndex INT, --页索引
  41633. @PageSize INT, --页大小
  41634. @RecordCount INT OUTPUT --记录数
  41635. AS
  41636. SET NOCOUNT ON
  41637. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41638. SET XACT_ABORT ON
  41639. BEGIN
  41640. DECLARE @StartRowIndex INT --起始行索引
  41641. DECLARE @EndRowIndex INT --截止行索引
  41642. DECLARE @tmptable TABLE(
  41643. ExchangeID INT NOT NULL, --兑换ID
  41644. ExchangeType INT NOT NULL, --兑换类型(1=奖券兑换金币 2=代理兑换元宝 3=代理兑换电话卡 4=代理兑换RP)
  41645. Price INT NOT NULL, --价格
  41646. Items VARCHAR(128) NOT NULL, --物品
  41647. Remark NVARCHAR(1024) NOT NULL, --备注
  41648. Status TINYINT NOT NULL, --状态(0=待发货 1=已发货)
  41649. Crdate DATETIME NOT NULL --时间
  41650. )
  41651. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  41652. SET @EndRowIndex = @PageIndex * @PageSize
  41653. --获取某个兑换
  41654. IF(@ExchangeID > 0)
  41655. BEGIN
  41656. --初始化
  41657. INSERT INTO @tmptable(ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate)
  41658. SELECT
  41659. ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate
  41660. FROM
  41661. [ExchangeHistory]
  41662. WHERE
  41663. UserID = @UserID AND ExchangeID = @ExchangeID
  41664. END
  41665. --获取所有兑换
  41666. ELSE
  41667. BEGIN
  41668. --初始化
  41669. INSERT INTO @tmptable(ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate)
  41670. SELECT
  41671. ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate
  41672. FROM
  41673. [ExchangeHistory]
  41674. WHERE
  41675. UserID = @UserID
  41676. END
  41677. --记录数
  41678. SET @RecordCount = @@ROWCOUNT
  41679. ;WITH [List] AS
  41680. (
  41681. SELECT
  41682. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  41683. ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate
  41684. FROM
  41685. @tmptable
  41686. )
  41687. --返回信息
  41688. SELECT
  41689. ExchangeID, ExchangeType, Price, Items, Remark, Status, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  41690. FROM
  41691. [List]
  41692. WHERE
  41693. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  41694. ORDER BY
  41695. RowNumber ASC
  41696. RETURN
  41697. END
  41698. GO
  41699. /****** Object: StoredProcedure [dbo].[WS_Exchange_GetList] Script Date: 2024/1/12 11:01:14 ******/
  41700. SET ANSI_NULLS ON
  41701. GO
  41702. SET QUOTED_IDENTIFIER ON
  41703. GO
  41704. -- EXEC [WS_Exchange_GetList]
  41705. -- ==============================================
  41706. -- Author: wolf
  41707. -- Create Date: 2014-06-11
  41708. -- Mendor: wolf
  41709. -- Alter Date: 2014-12-29
  41710. -- Description: 兑换列表
  41711. -- ==============================================
  41712. CREATE PROCEDURE [dbo].[WS_Exchange_GetList]
  41713. AS
  41714. SET NOCOUNT ON
  41715. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41716. SET XACT_ABORT ON
  41717. BEGIN
  41718. SELECT
  41719. Id, ExchangeType, LeftCount, LimitOnce, VipNeed, Price, Items, Memo, VipShow, GameCountShow
  41720. FROM
  41721. [Exchange]
  41722. ORDER BY
  41723. Id ASC
  41724. RETURN
  41725. END
  41726. GO
  41727. /****** Object: StoredProcedure [dbo].[WS_Exchange_Update] Script Date: 2024/1/12 11:01:14 ******/
  41728. SET ANSI_NULLS ON
  41729. GO
  41730. SET QUOTED_IDENTIFIER ON
  41731. GO
  41732. -- EXEC [WS_Exchange_Update]
  41733. -- ==============================================
  41734. -- Author: wolf
  41735. -- Create Date: 2014-06-11
  41736. -- Mendor: wolf
  41737. -- Alter Date: 2014-12-29
  41738. -- Description: 更新兑换数值
  41739. -- ==============================================
  41740. CREATE PROCEDURE [dbo].[WS_Exchange_Update]
  41741. @ExchangeID INT, --兑换ID
  41742. @LeftCount INT, --剩余数量,如果小于0,则表示缺货
  41743. @RetCode TINYINT OUTPUT --操作结果
  41744. AS
  41745. SET NOCOUNT ON
  41746. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41747. SET XACT_ABORT ON
  41748. BEGIN
  41749. SET @RetCode = 0
  41750. --更新兑换剩余数量
  41751. UPDATE [Exchange] SET LeftCount = @LeftCount WHERE ID = @ExchangeID AND LeftCount >= @LeftCount
  41752. IF(@@ROWCOUNT > 0)
  41753. BEGIN
  41754. SET @RetCode = 1
  41755. END
  41756. RETURN
  41757. END
  41758. GO
  41759. /****** Object: StoredProcedure [dbo].[WS_Exchange_UserExchange] Script Date: 2024/1/12 11:01:14 ******/
  41760. SET ANSI_NULLS ON
  41761. GO
  41762. SET QUOTED_IDENTIFIER ON
  41763. GO
  41764. -- EXEC [WS_Exchange_UserExchange]
  41765. -- ==============================================
  41766. -- Author: wolf
  41767. -- Create Date: 2014-06-11
  41768. -- Mendor: wolf
  41769. -- Alter Date: 2014-12-29
  41770. -- Description: 用户兑换
  41771. -- ==============================================
  41772. CREATE PROCEDURE [dbo].[WS_Exchange_UserExchange]
  41773. @UserID INT, --用户ID
  41774. @ExchangeID INT, --兑换ID
  41775. @ExchangeType INT, --兑换类型(1=奖券 2=代理收益)
  41776. @Price DECIMAL(18, 2), --价格
  41777. @Items VARCHAR(128), --物品
  41778. @Remark NVARCHAR(1024), --备注
  41779. @Status TINYINT, --状态(0=待发货 1=已发货)
  41780. @RetCode TINYINT OUTPUT --操作结果
  41781. AS
  41782. SET NOCOUNT ON
  41783. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41784. SET XACT_ABORT ON
  41785. BEGIN
  41786. --添加兑换历史
  41787. INSERT INTO [ExchangeHistory]
  41788. (
  41789. UserID, ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate
  41790. )
  41791. VALUES
  41792. (
  41793. @UserID, @ExchangeID, @ExchangeType, @Price, @Items, @Remark, @Status, GETDATE()
  41794. )
  41795. --兑换成功
  41796. SET @RetCode = 1
  41797. RETURN
  41798. END
  41799. GO
  41800. /****** Object: StoredProcedure [dbo].[WS_ExchangeCard_Use] Script Date: 2024/1/12 11:01:14 ******/
  41801. SET ANSI_NULLS ON
  41802. GO
  41803. SET QUOTED_IDENTIFIER ON
  41804. GO
  41805. -- EXEC [WS_ExchangeCard_Use]
  41806. -- ==============================================
  41807. -- Author: wolf
  41808. -- Create Date: 2014-12-29
  41809. -- Mendor: wolf
  41810. -- Alter Date: 2015-06-01
  41811. -- Description: 充值卡使用
  41812. -- ==============================================
  41813. CREATE PROCEDURE [dbo].[WS_ExchangeCard_Use]
  41814. @UserID INT, --用户ID
  41815. @CardNo VARCHAR(32) --卡号
  41816. AS
  41817. SET NOCOUNT ON
  41818. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41819. SET XACT_ABORT ON
  41820. BEGIN
  41821. DECLARE @CurrTime DATETIME --系统时间
  41822. DECLARE @DateFlag SMALLDATETIME --日期标识
  41823. DECLARE @RetCode TINYINT --操作结果
  41824. DECLARE @PerDays INT --每天(0=无限制 1=每1天)
  41825. DECLARE @UseTimes BIGINT --可使用次数
  41826. DECLARE @OpenTime DATETIME --开始时间
  41827. DECLARE @ExpireTime DATETIME --过期时间
  41828. DECLARE @Items VARCHAR(128) --物品
  41829. DECLARE @ErrorTimes INT --错误次数
  41830. DECLARE @ErrorTime DATETIME --错误时间
  41831. DECLARE @CoolSeconds INT --冷却时长
  41832. DECLARE @Minutes INT --分钟
  41833. SET @RetCode = 0
  41834. SET @ErrorTimes = 0
  41835. SET @CoolSeconds = 0
  41836. SET @CurrTime = GETDATE()
  41837. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  41838. SET @Minutes = 5
  41839. SET @Items = ''
  41840. --获取充值卡日志
  41841. SELECT
  41842. @ErrorTimes = ErrorTimes, @ErrorTime = Crdate
  41843. FROM
  41844. [CardErrorLog]
  41845. WHERE
  41846. UserID = @UserID
  41847. --初始化数据
  41848. IF(@@ROWCOUNT = 0)
  41849. BEGIN
  41850. INSERT INTO [CardErrorLog](UserID, ErrorTimes, Crdate) VALUES(@UserID, 0, @CurrTime)
  41851. END
  41852. --每5秒仅能输入1次兑换码
  41853. IF(@ErrorTime >= DATEADD(SECOND, -5, @CurrTime))
  41854. BEGIN
  41855. SET @RetCode = 12
  41856. SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
  41857. RETURN
  41858. END
  41859. --当5分钟内连续输错10次兑换码时,禁止使用此功能5分钟
  41860. IF(@ErrorTime >= DATEADD(MINUTE, -@Minutes, @CurrTime) AND @ErrorTimes >= 10)
  41861. BEGIN
  41862. SET @RetCode = 13
  41863. --计算冷却时间
  41864. SET @CoolSeconds = DATEDIFF(SECOND, @CurrTime, DATEADD(MINUTE, @Minutes, @ErrorTime))
  41865. SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
  41866. RETURN
  41867. END
  41868. --兑换卡信息
  41869. SELECT
  41870. @PerDays = PerDays, @UseTimes = UseTimes, @OpenTime = OpenTime,
  41871. @ExpireTime = ExpireTime, @Items = Items
  41872. FROM
  41873. [ExchangeCard]
  41874. WHERE
  41875. CardNo = @CardNo
  41876. IF(@@ROWCOUNT = 0)
  41877. BEGIN
  41878. --超过5分钟
  41879. IF(@ErrorTime < DATEADD(MINUTE, -@Minutes, @CurrTime))
  41880. BEGIN
  41881. SET @ErrorTimes = 0
  41882. END
  41883. --错误次数+1
  41884. UPDATE
  41885. [CardErrorLog]
  41886. SET
  41887. ErrorTimes = @ErrorTimes + 1, Crdate = @CurrTime
  41888. WHERE
  41889. UserID = @UserID
  41890. SET @RetCode = 11
  41891. SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
  41892. RETURN
  41893. END
  41894. --还没到开放时间
  41895. IF(@OpenTime > @CurrTime)
  41896. BEGIN
  41897. SET @RetCode = 14
  41898. SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
  41899. RETURN
  41900. END
  41901. --判断是否过期
  41902. IF(@ExpireTime < @CurrTime)
  41903. BEGIN
  41904. SET @RetCode = 15
  41905. SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
  41906. RETURN
  41907. END
  41908. --判断是否还可以使用
  41909. IF(@UseTimes <= 0)
  41910. BEGIN
  41911. SET @RetCode = 16
  41912. SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
  41913. RETURN
  41914. END
  41915. --判断当前时间段是否已经领取过
  41916. IF EXISTS(SELECT UserID FROM [ExchangeCardLog] WHERE UserID = @UserID AND CardNo = @CardNo AND Crdate >= @DateFlag - @PerDays)
  41917. BEGIN
  41918. SET @RetCode = 17
  41919. SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
  41920. RETURN
  41921. END
  41922. --兑换卡使用记录
  41923. INSERT INTO [ExchangeCardLog](UserID, CardNo, Crdate) VALUES(@UserID, @CardNo, @CurrTime)
  41924. --充值卡使用记录
  41925. UPDATE [CardErrorLog] SET ErrorTimes = 0, Crdate = @CurrTime WHERE UserID = @UserID
  41926. --可使用次数-1
  41927. UPDATE [ExchangeCard] SET UseTimes = UseTimes - 1 WHERE CardNo = @CardNo AND UseTimes > 0
  41928. IF(@@ROWCOUNT = 0)
  41929. BEGIN
  41930. SET @RetCode = 16
  41931. SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
  41932. RETURN
  41933. END
  41934. --使用成功
  41935. SET @RetCode = 1
  41936. SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
  41937. RETURN
  41938. END
  41939. GO
  41940. /****** Object: StoredProcedure [dbo].[WS_Feedback_Send] Script Date: 2024/1/12 11:01:14 ******/
  41941. SET ANSI_NULLS ON
  41942. GO
  41943. SET QUOTED_IDENTIFIER ON
  41944. GO
  41945. -- EXEC [WS_Feedback_Send]
  41946. -- ==============================================
  41947. -- Author: wolf
  41948. -- Create Date: 2014-06-17
  41949. -- Mendor: wolf
  41950. -- Alter Date: 2016-08-16
  41951. -- Description: 反馈
  41952. -- ==============================================
  41953. CREATE PROCEDURE [dbo].[WS_Feedback_Send]
  41954. @EMail NVARCHAR(64), --邮箱
  41955. @ToUserID INT, --用户ID
  41956. @Msg NVARCHAR(512), --消息
  41957. @IPAddress VARCHAR(16) --IP地址
  41958. AS
  41959. SET NOCOUNT ON
  41960. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  41961. SET XACT_ABORT ON
  41962. BEGIN
  41963. DECLARE @RetCode TINYINT
  41964. SET @RetCode = 1
  41965. --添加
  41966. INSERT INTO [Feedback]
  41967. (
  41968. EMail, ToUserID, Msg, Status, OpUserID, OpUserName, IPAddress, Crdate
  41969. )
  41970. VALUES
  41971. (
  41972. @EMail, @ToUserID, @Msg, 0, -1, '', @IPAddress, GETDATE()
  41973. )
  41974. --返回
  41975. SELECT @RetCode AS RetCode
  41976. RETURN
  41977. END
  41978. GO
  41979. /****** Object: StoredProcedure [dbo].[WS_GameFreeChip_AddRecord] Script Date: 2024/1/12 11:01:14 ******/
  41980. SET ANSI_NULLS ON
  41981. GO
  41982. SET QUOTED_IDENTIFIER ON
  41983. GO
  41984. -- EXEC [WS_GameFreeChip_AddRecord]
  41985. -- ==============================================
  41986. -- Author: wolf
  41987. -- Create Date: 2015-10-10
  41988. -- Mendor: wolf
  41989. -- Alter Date: 2015-10-10
  41990. -- Description: 添加用户游戏免费筹码记录
  41991. -- ==============================================
  41992. CREATE PROCEDURE [dbo].[WS_GameFreeChip_AddRecord]
  41993. @UserID INT, --用户ID
  41994. @GameID INT, --游戏ID
  41995. @FaceValue INT, --面值
  41996. @Amount INT --数量
  41997. AS
  41998. SET NOCOUNT ON
  41999. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42000. SET XACT_ABORT ON
  42001. BEGIN
  42002. INSERT INTO [UserGameFreeChipLog]
  42003. (
  42004. UserID, GameID, FaceValue, Amount, Crdate
  42005. )
  42006. VALUES
  42007. (
  42008. @UserID, @GameID, @FaceValue, @Amount, GETDATE()
  42009. )
  42010. RETURN
  42011. END
  42012. GO
  42013. /****** Object: StoredProcedure [dbo].[WS_GameInventory_AddRecord] Script Date: 2024/1/12 11:01:14 ******/
  42014. SET ANSI_NULLS ON
  42015. GO
  42016. SET QUOTED_IDENTIFIER ON
  42017. GO
  42018. -- EXEC [WS_GameInventory_AddRecord]
  42019. -- @GameID = 37
  42020. -- @RoomName = ''
  42021. -- @InventoryValue = 0
  42022. -- ==============================================
  42023. -- Author: wolf
  42024. -- Create Date: 2023-08-18
  42025. -- Mendor: wolf
  42026. -- Alter Date: 2023-08-18
  42027. -- Description: 添加游戏库存记录
  42028. -- ==============================================
  42029. CREATE PROCEDURE [dbo].[WS_GameInventory_AddRecord]
  42030. @GameID INT, --游戏ID
  42031. @RoomName NVARCHAR(64), --房间名称
  42032. @RoomType INT, --房间类型(1.普通房间,2.加倍场,3.快速场)
  42033. @InventoryValue BIGINT, --库存值
  42034. @TaxAmount BIGINT = 0, --台费
  42035. @SysRecover BIGINT = 0
  42036. AS
  42037. SET NOCOUNT ON
  42038. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42039. SET XACT_ABORT ON
  42040. BEGIN
  42041. --添加游戏库存记录
  42042. INSERT INTO [GameInventoryRecord]
  42043. (
  42044. GameID, RoomName, RoomType, InventoryValue, Crdate
  42045. )
  42046. VALUES
  42047. (
  42048. @GameID, @RoomName, @RoomType, @InventoryValue, GETDATE()
  42049. )
  42050. RETURN
  42051. END
  42052. GO
  42053. /****** Object: StoredProcedure [dbo].[WS_GameInventory_GetList] Script Date: 2024/1/12 11:01:14 ******/
  42054. SET ANSI_NULLS ON
  42055. GO
  42056. SET QUOTED_IDENTIFIER ON
  42057. GO
  42058. -- EXEC [WS_GameInventory_GetList]
  42059. -- ==============================================
  42060. -- Author: wolf
  42061. -- Create Date: 2016-06-29
  42062. -- Mendor: wolf
  42063. -- Alter Date: 2017-03-08
  42064. -- Description: 获取游戏库存列表
  42065. -- ==============================================
  42066. CREATE PROCEDURE [dbo].[WS_GameInventory_GetList]
  42067. @GameID INT --游戏ID
  42068. AS
  42069. SET NOCOUNT ON
  42070. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42071. SET XACT_ABORT ON
  42072. BEGIN
  42073. IF(@GameID > 0)
  42074. BEGIN
  42075. --返回信息
  42076. SELECT
  42077. GameID, RoomName, RoomType, InventoryValue, ControlRate,
  42078. MinInventoryValue, MaxInventoryValue, MaxControlRate
  42079. FROM
  42080. [GameInventory]
  42081. WHERE
  42082. GameID = @GameID
  42083. ORDER BY
  42084. Rid ASC
  42085. RETURN
  42086. END
  42087. --返回信息
  42088. SELECT
  42089. GameID, RoomName, RoomType, InventoryValue, ControlRate,
  42090. MinInventoryValue, MaxInventoryValue, MaxControlRate
  42091. FROM
  42092. [GameInventory]
  42093. ORDER BY
  42094. Rid ASC
  42095. RETURN
  42096. END
  42097. GO
  42098. /****** Object: StoredProcedure [dbo].[WS_GameInventory_Update] Script Date: 2024/1/12 11:01:14 ******/
  42099. SET ANSI_NULLS ON
  42100. GO
  42101. SET QUOTED_IDENTIFIER ON
  42102. GO
  42103. -- EXEC [WS_GameInventory_Update]
  42104. -- ==============================================
  42105. -- Author: wolf
  42106. -- Create Date: 2016-06-29
  42107. -- Mendor: wolf
  42108. -- Alter Date: 2017-03-08
  42109. -- Description: 更新或者修改单个库存
  42110. -- ==============================================
  42111. CREATE PROCEDURE [dbo].[WS_GameInventory_Update]
  42112. @GameID INT, --游戏ID
  42113. @RoomName NVARCHAR(32), --场次名称
  42114. @RoomType INT, --房间类型(1.普通房间,2.加倍场,3.快速场)
  42115. @InventoryValue BIGINT, --实时库存值
  42116. @ControlRate DECIMAL(10, 2), --实时控制率
  42117. @MinInventoryValue BIGINT, --库存取值下限
  42118. @MaxInventoryValue BIGINT, --库存取值上限
  42119. @MaxControlRate INT --最高控制概率
  42120. AS
  42121. SET NOCOUNT ON
  42122. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42123. SET XACT_ABORT ON
  42124. BEGIN
  42125. DECLARE @DateFlag SMALLDATETIME --日期标识
  42126. DECLARE @StartInventoryValue BIGINT
  42127. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  42128. --库存统计
  42129. UPDATE
  42130. [GameInventoryTotal]
  42131. SET
  42132. InventoryValue = @InventoryValue
  42133. WHERE
  42134. DateFlag = @DateFlag AND GameID = @GameID AND RoomName = @RoomName AND RoomType = @RoomType
  42135. IF(@@ROWCOUNT = 0)
  42136. BEGIN
  42137. --获取前值
  42138. SELECT
  42139. @StartInventoryValue = InventoryValue
  42140. FROM
  42141. [GameInventory]
  42142. WHERE
  42143. GameID = @GameID AND RoomName = @RoomName AND RoomType = @RoomType
  42144. --初始化游戏库存统计
  42145. INSERT INTO [GameInventoryTotal]
  42146. (
  42147. DateFlag, GameID, RoomName, RoomType, StartInventoryValue, InventoryValue
  42148. )
  42149. VALUES
  42150. (
  42151. @DateFlag, @GameID, @RoomName, @RoomType, ISNULL(@StartInventoryValue, 0), @InventoryValue
  42152. )
  42153. END
  42154. --更新实时数据
  42155. UPDATE
  42156. [GameInventory]
  42157. SET
  42158. InventoryValue = @InventoryValue, ControlRate = @ControlRate,
  42159. MinInventoryValue = @MinInventoryValue, MaxInventoryValue = @MaxInventoryValue,
  42160. MaxControlRate = @MaxControlRate
  42161. WHERE
  42162. GameID = @GameID AND RoomName = @RoomName AND RoomType = @RoomType
  42163. IF(@@ROWCOUNT = 0)
  42164. BEGIN
  42165. INSERT INTO [GameInventory]
  42166. (
  42167. GameID, RoomName, InventoryValue, ControlRate,
  42168. MinInventoryValue, MaxInventoryValue, MaxControlRate, RoomType
  42169. )
  42170. VALUES
  42171. (
  42172. @GameID, @RoomName, @InventoryValue, @ControlRate,
  42173. @MinInventoryValue, @MaxInventoryValue, @MaxControlRate, @RoomType
  42174. )
  42175. END
  42176. RETURN
  42177. END
  42178. GO
  42179. /****** Object: StoredProcedure [dbo].[WS_GiftCard_Gen] Script Date: 2024/1/12 11:01:14 ******/
  42180. SET ANSI_NULLS ON
  42181. GO
  42182. SET QUOTED_IDENTIFIER ON
  42183. GO
  42184. -- EXEC [WS_GiftCard_Gen]
  42185. -- ==============================================
  42186. -- Author: wolf
  42187. -- Create Date: 2015-10-10
  42188. -- Mendor: wolf
  42189. -- Alter Date: 2015-10-10
  42190. -- Description: 生成礼品卡
  42191. -- ==============================================
  42192. CREATE PROCEDURE [dbo].[WS_GiftCard_Gen]
  42193. @UserID INT, --用户ID
  42194. @ItemID INT, --道具ID
  42195. @Key VARCHAR(16) --兑换码
  42196. AS
  42197. SET NOCOUNT ON
  42198. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42199. SET XACT_ABORT ON
  42200. BEGIN
  42201. INSERT INTO [GiftCard]
  42202. (
  42203. UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
  42204. )
  42205. VALUES
  42206. (
  42207. @UserID, @ItemID, @Key, 0, 0, GETDATE()
  42208. )
  42209. RETURN
  42210. END
  42211. GO
  42212. /****** Object: StoredProcedure [dbo].[WS_GiftCard_GetHistory] Script Date: 2024/1/12 11:01:14 ******/
  42213. SET ANSI_NULLS ON
  42214. GO
  42215. SET QUOTED_IDENTIFIER ON
  42216. GO
  42217. -- EXEC [WS_GiftCard_GetHistory]
  42218. -- ==============================================
  42219. -- Author: wolf
  42220. -- Create Date: 2015-10-10
  42221. -- Mendor: wolf
  42222. -- Alter Date: 2015-10-10
  42223. -- Description: 获取使用记录
  42224. -- ==============================================
  42225. CREATE PROCEDURE [dbo].[WS_GiftCard_GetHistory]
  42226. @UserID INT --用户ID
  42227. AS
  42228. SET NOCOUNT ON
  42229. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42230. SET XACT_ABORT ON
  42231. BEGIN
  42232. SELECT TOP 100
  42233. ItemID, [Key], ActivateTime, OperateStatus
  42234. FROM
  42235. [GiftCard]
  42236. WHERE
  42237. Crdate > GETDATE() - 30 AND UserID = @UserID AND ActivateTime > 0
  42238. ORDER BY
  42239. ActivateTime DESC
  42240. RETURN
  42241. END
  42242. GO
  42243. /****** Object: StoredProcedure [dbo].[WS_GiftCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
  42244. SET ANSI_NULLS ON
  42245. GO
  42246. SET QUOTED_IDENTIFIER ON
  42247. GO
  42248. -- EXEC [WS_GiftCard_GetList]
  42249. -- ==============================================
  42250. -- Author: wolf
  42251. -- Create Date: 2015-10-10
  42252. -- Mendor: wolf
  42253. -- Alter Date: 2015-10-10
  42254. -- Description: 获取礼品卡列表
  42255. -- ==============================================
  42256. CREATE PROCEDURE [dbo].[WS_GiftCard_GetList]
  42257. @UserID INT --用户ID
  42258. AS
  42259. SET NOCOUNT ON
  42260. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42261. SET XACT_ABORT ON
  42262. BEGIN
  42263. SELECT TOP 100
  42264. ItemID, [Key], CONVERT(CHAR(16), dbo.fn_TimeToStamp(ActivateTime), 120) AS ActivateTime, OperateStatus
  42265. FROM
  42266. [GiftCard]
  42267. WHERE
  42268. UserID = @UserID AND ActivateTime > 0
  42269. ORDER BY
  42270. ActivateTime DESC
  42271. RETURN
  42272. END
  42273. GO
  42274. /****** Object: StoredProcedure [dbo].[WS_GiftCard_Use] Script Date: 2024/1/12 11:01:14 ******/
  42275. SET ANSI_NULLS ON
  42276. GO
  42277. SET QUOTED_IDENTIFIER ON
  42278. GO
  42279. -- EXEC [WS_GiftCard_Use]
  42280. -- ==============================================
  42281. -- Author: wolf
  42282. -- Create Date: 2015-10-10
  42283. -- Mendor: wolf
  42284. -- Alter Date: 2015-10-10
  42285. -- Description: 使用礼品卡
  42286. -- ==============================================
  42287. CREATE PROCEDURE [dbo].[WS_GiftCard_Use]
  42288. @UserID INT, --用户ID
  42289. @ItemID INT --道具ID
  42290. AS
  42291. SET NOCOUNT ON
  42292. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42293. SET XACT_ABORT ON
  42294. BEGIN
  42295. DECLARE @Rid INT --标识
  42296. DECLARE @Key VARCHAR(16) --兑换码
  42297. SET @Rid = 0
  42298. SET @Key = ''
  42299. --获取最新未激活
  42300. SELECT TOP 1
  42301. @Rid = Rid, @Key = [Key]
  42302. FROM
  42303. [GiftCard]
  42304. WHERE
  42305. UserID = @UserID AND ItemID = @ItemID AND ActivateTime = 0
  42306. ORDER BY
  42307. Rid DESC
  42308. --激活
  42309. IF(@@ROWCOUNT > 0)
  42310. BEGIN
  42311. UPDATE
  42312. [GiftCard]
  42313. SET
  42314. ActivateTime = dbo.fn_TimeToStamp(GETDATE())
  42315. WHERE
  42316. Rid = @Rid
  42317. END
  42318. --返回信息
  42319. SELECT @Rid AS Rid, @Key AS [Key]
  42320. RETURN
  42321. END
  42322. GO
  42323. /****** Object: StoredProcedure [dbo].[WS_GiftPack_GetList] Script Date: 2024/1/12 11:01:14 ******/
  42324. SET ANSI_NULLS ON
  42325. GO
  42326. SET QUOTED_IDENTIFIER ON
  42327. GO
  42328. -- EXEC [WS_GiftPack_GetList]
  42329. -- ==============================================
  42330. -- Author: wolf
  42331. -- Create Date: 2014-01-21
  42332. -- Mendor: wolf
  42333. -- Alter Date: 2016-11-07
  42334. -- Description: 礼包列表
  42335. -- ==============================================
  42336. CREATE PROCEDURE [dbo].[WS_GiftPack_GetList]
  42337. AS
  42338. SET NOCOUNT ON
  42339. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42340. SET XACT_ABORT ON
  42341. BEGIN
  42342. --返回信息
  42343. SELECT
  42344. GiftPackId, PackName, Price, Limit, Items, Type, Duration, [Group], GroupIndex, ProductID
  42345. FROM
  42346. [GiftPack]
  42347. ORDER BY
  42348. GiftPackId ASC
  42349. RETURN
  42350. END
  42351. GO
  42352. /****** Object: StoredProcedure [dbo].[WS_GiftService_AddUserGift] Script Date: 2024/1/12 11:01:14 ******/
  42353. SET ANSI_NULLS ON
  42354. GO
  42355. SET QUOTED_IDENTIFIER ON
  42356. GO
  42357. -- EXEC [WS_GiftService_AddUserGift]
  42358. -- ==============================================
  42359. -- Author: wolf
  42360. -- Create Date: 2015-10-10
  42361. -- Mendor: wolf
  42362. -- Alter Date: 2015-10-10
  42363. -- Description: 添加用户礼物记录
  42364. -- ==============================================
  42365. CREATE PROCEDURE [dbo].[WS_GiftService_AddUserGift]
  42366. @Sender INT, --发送方
  42367. @Receiver INT, --接收方
  42368. @GiftID INT, --礼物ID
  42369. @SendTime INT, --发送时间
  42370. @Items VARCHAR(128), --物品信息
  42371. @GiftType TINYINT = 0 --礼物类型
  42372. AS
  42373. SET NOCOUNT ON
  42374. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42375. SET XACT_ABORT ON
  42376. BEGIN
  42377. DECLARE @Rid INT
  42378. SET @Rid = 0
  42379. INSERT INTO [UserGift]
  42380. (
  42381. Sender, Receiver, GiftID, GiftType, SendTime, ClaimTime, Items
  42382. )
  42383. VALUES
  42384. (
  42385. @Sender, @Receiver, @GiftID, @GiftType, @SendTime, 0, @Items
  42386. )
  42387. SET @Rid = SCOPE_IDENTITY()
  42388. SELECT @Rid AS Rid
  42389. RETURN
  42390. END
  42391. GO
  42392. /****** Object: StoredProcedure [dbo].[WS_GiftService_ClaimUserGift] Script Date: 2024/1/12 11:01:14 ******/
  42393. SET ANSI_NULLS ON
  42394. GO
  42395. SET QUOTED_IDENTIFIER ON
  42396. GO
  42397. -- EXEC [WS_GiftService_ClaimUserGift]
  42398. -- ==============================================
  42399. -- Author: wolf
  42400. -- Create Date: 2015-10-10
  42401. -- Mendor: wolf
  42402. -- Alter Date: 2015-10-10
  42403. -- Description: 领取礼物
  42404. -- ==============================================
  42405. CREATE PROCEDURE [dbo].[WS_GiftService_ClaimUserGift]
  42406. @UserID INT, --用户ID
  42407. @Rid INT, --流水号
  42408. @ClaimTime INT --领取时间
  42409. AS
  42410. SET NOCOUNT ON
  42411. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42412. SET XACT_ABORT ON
  42413. BEGIN
  42414. DECLARE @Items VARCHAR(128)
  42415. SET @Items = ''
  42416. UPDATE
  42417. [UserGift]
  42418. SET
  42419. ClaimTime = @ClaimTime, @Items = Items
  42420. WHERE
  42421. Receiver = @UserID AND Rid = @Rid AND ClaimTime <= 0
  42422. --返回信息
  42423. SELECT @Items AS Items
  42424. RETURN
  42425. END
  42426. GO
  42427. /****** Object: StoredProcedure [dbo].[WS_GiftService_GetClaimRecord] Script Date: 2024/1/12 11:01:14 ******/
  42428. SET ANSI_NULLS ON
  42429. GO
  42430. SET QUOTED_IDENTIFIER ON
  42431. GO
  42432. -- EXEC [WS_GiftService_GetClaimRecord]
  42433. -- ==============================================
  42434. -- Author: wolf
  42435. -- Create Date: 2015-10-10
  42436. -- Mendor: wolf
  42437. -- Alter Date: 2015-10-10
  42438. -- Description: 领取礼物记录
  42439. -- ==============================================
  42440. CREATE PROCEDURE [dbo].[WS_GiftService_GetClaimRecord]
  42441. @UserID INT, --用户ID
  42442. @GiftType TINYINT, --礼物类型
  42443. @Count INT --数量
  42444. AS
  42445. SET NOCOUNT ON
  42446. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42447. SET XACT_ABORT ON
  42448. BEGIN
  42449. SELECT TOP (@Count)
  42450. GiftID, Items
  42451. FROM
  42452. [UserGift]
  42453. WHERE
  42454. Receiver = @UserID AND GiftType = @GiftType
  42455. ORDER BY
  42456. ClaimTime DESC
  42457. RETURN
  42458. END
  42459. GO
  42460. /****** Object: StoredProcedure [dbo].[WS_GiftService_GetUnclaimed] Script Date: 2024/1/12 11:01:14 ******/
  42461. SET ANSI_NULLS ON
  42462. GO
  42463. SET QUOTED_IDENTIFIER ON
  42464. GO
  42465. -- EXEC [WS_GiftService_GetUnclaimed]
  42466. -- ==============================================
  42467. -- Author: wolf
  42468. -- Create Date: 2015-10-10
  42469. -- Mendor: wolf
  42470. -- Alter Date: 2015-10-10
  42471. -- Description: 礼物未领取
  42472. -- ==============================================
  42473. CREATE PROCEDURE [dbo].[WS_GiftService_GetUnclaimed]
  42474. @UserID INT
  42475. AS
  42476. SET NOCOUNT ON
  42477. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42478. SET XACT_ABORT ON
  42479. BEGIN
  42480. --返回信息
  42481. SELECT
  42482. Rid, Sender, Receiver, GiftId, SendTime, ClaimTime, Items
  42483. FROM
  42484. [UserGift]
  42485. WHERE
  42486. Receiver = @UserID AND ClaimTime = 0
  42487. RETURN
  42488. END
  42489. GO
  42490. /****** Object: StoredProcedure [dbo].[WS_GrowthPack_GetList] Script Date: 2024/1/12 11:01:14 ******/
  42491. SET ANSI_NULLS ON
  42492. GO
  42493. SET QUOTED_IDENTIFIER ON
  42494. GO
  42495. -- EXEC [WS_GrowthPack_GetList]
  42496. -- ==============================================
  42497. -- Author: wolf
  42498. -- Create Date: 2014-12-02
  42499. -- Mendor: wolf
  42500. -- Alter Date: 2014-12-10
  42501. -- Description: 系统成长礼包
  42502. -- ==============================================
  42503. CREATE PROCEDURE [dbo].[WS_GrowthPack_GetList]
  42504. AS
  42505. SET NOCOUNT ON
  42506. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42507. SET XACT_ABORT ON
  42508. BEGIN
  42509. --返回信息
  42510. SELECT
  42511. GrowthPackID, PackName, Price, Terms, ProductID
  42512. FROM
  42513. [GrowthPack]
  42514. ORDER BY
  42515. GrowthPackID ASC
  42516. RETURN
  42517. END
  42518. GO
  42519. /****** Object: StoredProcedure [dbo].[WS_Guess_AddBetRecord] Script Date: 2024/1/12 11:01:14 ******/
  42520. SET ANSI_NULLS ON
  42521. GO
  42522. SET QUOTED_IDENTIFIER ON
  42523. GO
  42524. -- EXEC [WS_Guess_AddBetRecord]
  42525. -- ==============================================
  42526. -- Author: wolf
  42527. -- Create Date: 2023-06-28
  42528. -- Mendor: wolf
  42529. -- Alter Date: 2023-06-28
  42530. -- Description: 添加投注记录
  42531. -- ==============================================
  42532. CREATE PROCEDURE [dbo].[WS_Guess_AddBetRecord]
  42533. @UserID INT, --用户ID
  42534. @SerialNumber VARCHAR(32), --流水号
  42535. @BetID INT, --投注ID
  42536. @BetAmount INT --投注金额
  42537. AS
  42538. SET NOCOUNT ON
  42539. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42540. SET XACT_ABORT ON
  42541. BEGIN
  42542. --添加投注记录
  42543. INSERT INTO [BetRecord]
  42544. (
  42545. UserID, SerialNumber, BetID, BetAmount, BetTime, ResultAmount
  42546. )
  42547. VALUES
  42548. (
  42549. @UserID, @SerialNumber, @BetID, @BetAmount, GETDATE(), 0
  42550. )
  42551. RETURN
  42552. END
  42553. GO
  42554. /****** Object: StoredProcedure [dbo].[WS_Guess_GetBetRecordList] Script Date: 2024/1/12 11:01:14 ******/
  42555. SET ANSI_NULLS ON
  42556. GO
  42557. SET QUOTED_IDENTIFIER ON
  42558. GO
  42559. -- EXEC [WS_Guess_GetBetRecordList]
  42560. -- ==============================================
  42561. -- Author: wolf
  42562. -- Create Date: 2023-06-28
  42563. -- Mendor: wolf
  42564. -- Alter Date: 2023-06-28
  42565. -- Description: 获取赛事投注记录
  42566. -- ==============================================
  42567. CREATE PROCEDURE [dbo].[WS_Guess_GetBetRecordList]
  42568. @SerialNumber VARCHAR(32), --流水号
  42569. @BetID INT --投注ID
  42570. AS
  42571. SET NOCOUNT ON
  42572. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42573. SET XACT_ABORT ON
  42574. BEGIN
  42575. SELECT
  42576. Rid, UserID AS UserId, BetAmount
  42577. FROM
  42578. [BetRecord]
  42579. WHERE
  42580. SerialNumber = @SerialNumber AND BetID = @BetID
  42581. RETURN
  42582. END
  42583. GO
  42584. /****** Object: StoredProcedure [dbo].[WS_Guess_GetBetSettleList] Script Date: 2024/1/12 11:01:14 ******/
  42585. SET ANSI_NULLS ON
  42586. GO
  42587. SET QUOTED_IDENTIFIER ON
  42588. GO
  42589. -- EXEC [WS_Guess_GetBetSettleList]
  42590. -- ==============================================
  42591. -- Author: wolf
  42592. -- Create Date: 2023-06-28
  42593. -- Mendor: wolf
  42594. -- Alter Date: 2023-06-28
  42595. -- Description: 获取赛事投注结算列表
  42596. -- ==============================================
  42597. CREATE PROCEDURE [dbo].[WS_Guess_GetBetSettleList]
  42598. @SerialNumber VARCHAR(32), --流水号
  42599. @BetID INT --投注ID
  42600. AS
  42601. SET NOCOUNT ON
  42602. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42603. SET XACT_ABORT ON
  42604. BEGIN
  42605. SELECT
  42606. Rid, UserID AS UserId, BetAmount, ResultAmount
  42607. FROM
  42608. [BetRecord]
  42609. WHERE
  42610. SerialNumber = @SerialNumber AND BetID = @BetID
  42611. RETURN
  42612. END
  42613. GO
  42614. /****** Object: StoredProcedure [dbo].[WS_Guess_GetMatchBetList] Script Date: 2024/1/12 11:01:14 ******/
  42615. SET ANSI_NULLS ON
  42616. GO
  42617. SET QUOTED_IDENTIFIER ON
  42618. GO
  42619. -- EXEC [WS_Guess_GetMatchBetList]
  42620. -- ==============================================
  42621. -- Author: wolf
  42622. -- Create Date: 2023-06-28
  42623. -- Mendor: wolf
  42624. -- Alter Date: 2023-06-28
  42625. -- Description: 竞猜赛事投注列表
  42626. -- ==============================================
  42627. CREATE PROCEDURE [dbo].[WS_Guess_GetMatchBetList]
  42628. @SerialNumber VARCHAR(32) --流水号
  42629. AS
  42630. SET NOCOUNT ON
  42631. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42632. SET XACT_ABORT ON
  42633. BEGIN
  42634. SELECT
  42635. BetId, BetName, BetOdds, BetAmount, IsWin
  42636. FROM
  42637. [MatchBet]
  42638. WHERE
  42639. SerialNumber = @SerialNumber
  42640. RETURN
  42641. END
  42642. GO
  42643. /****** Object: StoredProcedure [dbo].[WS_Guess_GetMatchInfo] Script Date: 2024/1/12 11:01:14 ******/
  42644. SET ANSI_NULLS ON
  42645. GO
  42646. SET QUOTED_IDENTIFIER ON
  42647. GO
  42648. -- EXEC [WS_Guess_GetMatchInfo]
  42649. -- ==============================================
  42650. -- Author: wolf
  42651. -- Create Date: 2023-06-28
  42652. -- Mendor: wolf
  42653. -- Alter Date: 2023-06-28
  42654. -- Description: 竞猜赛事信息
  42655. -- ==============================================
  42656. CREATE PROCEDURE [dbo].[WS_Guess_GetMatchInfo]
  42657. @SerialNumber VARCHAR(32) --流水号
  42658. AS
  42659. SET NOCOUNT ON
  42660. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42661. SET XACT_ABORT ON
  42662. BEGIN
  42663. SELECT
  42664. SerialNumber, Title, Status, Result, dbo.fn_TimeToStamp(StartAt) AS StartAt, dbo.fn_TimeToStamp(EndAt) AS EndAt,
  42665. dbo.fn_TimeToStamp(ShowStartAt) AS ShowStartAt, dbo.fn_TimeToStamp(ShowEndAt) AS ShowEndAt
  42666. FROM
  42667. [Match]
  42668. WHERE
  42669. SerialNumber = @SerialNumber
  42670. RETURN
  42671. END
  42672. GO
  42673. /****** Object: StoredProcedure [dbo].[WS_Guess_GetMatchList] Script Date: 2024/1/12 11:01:14 ******/
  42674. SET ANSI_NULLS ON
  42675. GO
  42676. SET QUOTED_IDENTIFIER ON
  42677. GO
  42678. -- EXEC [WS_Guess_GetMatchList]
  42679. -- ==============================================
  42680. -- Author: wolf
  42681. -- Create Date: 2023-06-28
  42682. -- Mendor: wolf
  42683. -- Alter Date: 2023-06-28
  42684. -- Description: 竞猜赛事列表(最近50天赛事)
  42685. -- ==============================================
  42686. CREATE PROCEDURE [dbo].[WS_Guess_GetMatchList]
  42687. AS
  42688. SET NOCOUNT ON
  42689. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42690. SET XACT_ABORT ON
  42691. BEGIN
  42692. --返回信息
  42693. SELECT SerialNumber FROM [Match] WHERE StartAt >= GETDATE() - 30
  42694. RETURN
  42695. END
  42696. GO
  42697. /****** Object: StoredProcedure [dbo].[WS_Guess_GetMatchTeamList] Script Date: 2024/1/12 11:01:14 ******/
  42698. SET ANSI_NULLS ON
  42699. GO
  42700. SET QUOTED_IDENTIFIER ON
  42701. GO
  42702. -- EXEC [WS_Guess_GetMatchTeamList]
  42703. -- ==============================================
  42704. -- Author: wolf
  42705. -- Create Date: 2023-06-28
  42706. -- Mendor: wolf
  42707. -- Alter Date: 2023-06-28
  42708. -- Description: 竞猜赛事球队列表
  42709. -- ==============================================
  42710. CREATE PROCEDURE [dbo].[WS_Guess_GetMatchTeamList]
  42711. @SerialNumber VARCHAR(32) --流水号
  42712. AS
  42713. SET NOCOUNT ON
  42714. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42715. SET XACT_ABORT ON
  42716. BEGIN
  42717. SELECT
  42718. Rid, TeamId
  42719. FROM
  42720. [MatchTeam]
  42721. WHERE
  42722. SerialNumber = @SerialNumber
  42723. ORDER BY
  42724. Rid ASC
  42725. RETURN
  42726. END
  42727. GO
  42728. /****** Object: StoredProcedure [dbo].[WS_Guess_GetTeamList] Script Date: 2024/1/12 11:01:14 ******/
  42729. SET ANSI_NULLS ON
  42730. GO
  42731. SET QUOTED_IDENTIFIER ON
  42732. GO
  42733. -- EXEC [WS_Guess_GetTeamList]
  42734. -- ==============================================
  42735. -- Author: wolf
  42736. -- Create Date: 2023-06-28
  42737. -- Mendor: wolf
  42738. -- Alter Date: 2023-06-28
  42739. -- Description: 竞猜球队列表
  42740. -- ==============================================
  42741. CREATE PROCEDURE [dbo].[WS_Guess_GetTeamList]
  42742. AS
  42743. SET NOCOUNT ON
  42744. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42745. SET XACT_ABORT ON
  42746. BEGIN
  42747. SELECT
  42748. Id, Name, Icon, ShortName
  42749. FROM
  42750. [Team]
  42751. ORDER BY
  42752. Id ASC
  42753. END
  42754. GO
  42755. /****** Object: StoredProcedure [dbo].[WS_Guess_GetUserBetAmount] Script Date: 2024/1/12 11:01:14 ******/
  42756. SET ANSI_NULLS ON
  42757. GO
  42758. SET QUOTED_IDENTIFIER ON
  42759. GO
  42760. -- EXEC [WS_Guess_GetUserBetAmount]
  42761. -- ==============================================
  42762. -- Author: wolf
  42763. -- Create Date: 2023-06-28
  42764. -- Mendor: wolf
  42765. -- Alter Date: 2023-06-28
  42766. -- Description: 获取赛事投注
  42767. -- ==============================================
  42768. CREATE PROCEDURE [dbo].[WS_Guess_GetUserBetAmount]
  42769. @SerialNumber VARCHAR(32) --流水号
  42770. AS
  42771. SET NOCOUNT ON
  42772. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42773. SET XACT_ABORT ON
  42774. BEGIN
  42775. SELECT
  42776. UserID, BetID, SUM(BetAmount) AS BetAmount
  42777. FROM
  42778. [BetRecord]
  42779. WHERE
  42780. SerialNumber = @SerialNumber
  42781. GROUP BY
  42782. UserID, BetID
  42783. RETURN
  42784. END
  42785. GO
  42786. /****** Object: StoredProcedure [dbo].[WS_Guess_GetUserBetRecordList] Script Date: 2024/1/12 11:01:14 ******/
  42787. SET ANSI_NULLS ON
  42788. GO
  42789. SET QUOTED_IDENTIFIER ON
  42790. GO
  42791. -- EXEC [WS_Guess_GetUserBetRecordList]
  42792. -- ==============================================
  42793. -- Author: wolf
  42794. -- Create Date: 2023-06-28
  42795. -- Mendor: wolf
  42796. -- Alter Date: 2023-06-28
  42797. -- Description: 获取赛事投注记录
  42798. -- ==============================================
  42799. CREATE PROCEDURE [dbo].[WS_Guess_GetUserBetRecordList]
  42800. @UserID INT, --用户ID
  42801. @SerialNumber VARCHAR(32), --流水号
  42802. @PageIndex INT, --页索引
  42803. @PageSize INT, --页大小
  42804. @RecordCount INT OUTPUT --记录数
  42805. AS
  42806. SET NOCOUNT ON
  42807. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42808. SET XACT_ABORT ON
  42809. BEGIN
  42810. DECLARE @StartRowIndex INT --起始行索引
  42811. DECLARE @EndRowIndex INT --截止行索引
  42812. DECLARE @tmptable TABLE(
  42813. SerialNumber VARCHAR(32) NOT NULL, --赛事流水号
  42814. BetID INT NOT NULL, --投注id
  42815. BetAmount INT NOT NULL, --投注金额
  42816. ResultAmount INT NOT NULL --派奖金额
  42817. )
  42818. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  42819. SET @EndRowIndex = @PageIndex * @PageSize
  42820. IF(@SerialNumber != '')
  42821. BEGIN
  42822. INSERT INTO @tmptable
  42823. (
  42824. SerialNumber, BetID, BetAmount, ResultAmount
  42825. )
  42826. SELECT
  42827. SerialNumber, BetID, SUM(BetAmount), SUM(ResultAmount)
  42828. FROM
  42829. [BetRecord]
  42830. WHERE
  42831. UserID = @UserID AND SerialNumber = @SerialNumber
  42832. GROUP BY
  42833. SerialNumber, BetID
  42834. END
  42835. ELSE
  42836. BEGIN
  42837. INSERT INTO @tmptable
  42838. (
  42839. SerialNumber, BetID, BetAmount, ResultAmount
  42840. )
  42841. SELECT
  42842. SerialNumber, BetID, SUM(BetAmount), SUM(ResultAmount)
  42843. FROM
  42844. [BetRecord]
  42845. WHERE
  42846. UserID = @UserID
  42847. GROUP BY
  42848. SerialNumber, BetID
  42849. END
  42850. --记录数
  42851. SET @RecordCount = @@ROWCOUNT
  42852. ;WITH [List] AS(
  42853. SELECT
  42854. ROW_NUMBER() OVER(ORDER BY SerialNumber DESC) AS RowNumber,
  42855. SerialNumber, BetID, BetAmount, ResultAmount
  42856. FROM
  42857. @tmptable
  42858. )
  42859. --返回信息
  42860. SELECT
  42861. SerialNumber, BetID, BetAmount, ResultAmount
  42862. FROM
  42863. [List]
  42864. WHERE
  42865. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  42866. ORDER BY
  42867. RowNumber ASC
  42868. RETURN
  42869. END
  42870. GO
  42871. /****** Object: StoredProcedure [dbo].[WS_Guess_UpdateBetAmount] Script Date: 2024/1/12 11:01:14 ******/
  42872. SET ANSI_NULLS ON
  42873. GO
  42874. SET QUOTED_IDENTIFIER ON
  42875. GO
  42876. -- EXEC [WS_Guess_UpdateBetAmount]
  42877. -- ==============================================
  42878. -- Author: wolf
  42879. -- Create Date: 2023-06-28
  42880. -- Mendor: wolf
  42881. -- Alter Date: 2023-06-28
  42882. -- Description: 修改竞猜投注项金额
  42883. -- ==============================================
  42884. CREATE PROCEDURE [dbo].[WS_Guess_UpdateBetAmount]
  42885. @SerialNumber VARCHAR(32), --流水号
  42886. @BetID INT, --投注ID
  42887. @BetAmount INT --投注金额
  42888. AS
  42889. SET NOCOUNT ON
  42890. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42891. SET XACT_ABORT ON
  42892. BEGIN
  42893. --修改投注金额
  42894. UPDATE
  42895. [MatchBet]
  42896. SET
  42897. BetAmount = @BetAmount
  42898. WHERE
  42899. SerialNumber = @SerialNumber AND BetID = @BetID
  42900. RETURN
  42901. END
  42902. GO
  42903. /****** Object: StoredProcedure [dbo].[WS_Guess_UpdateMatchStatus] Script Date: 2024/1/12 11:01:14 ******/
  42904. SET ANSI_NULLS ON
  42905. GO
  42906. SET QUOTED_IDENTIFIER ON
  42907. GO
  42908. -- EXEC [WS_Guess_UpdateMatchStatus]
  42909. -- ==============================================
  42910. -- Author: wolf
  42911. -- Create Date: 2023-06-28
  42912. -- Mendor: wolf
  42913. -- Alter Date: 2023-06-28
  42914. -- Description: 修改竞猜赛事状态
  42915. -- ==============================================
  42916. CREATE PROCEDURE [dbo].[WS_Guess_UpdateMatchStatus]
  42917. @SerialNumber VARCHAR(32), --流水号
  42918. @Status TINYINT --状态(0=无效状态 1=开启状态 2=结束状态(停止下注) 3=已派奖)
  42919. AS
  42920. SET NOCOUNT ON
  42921. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42922. SET XACT_ABORT ON
  42923. BEGIN
  42924. DECLARE @DBStatus TINYINT --状态
  42925. DECLARE @RetCode TINYINT --操作结果
  42926. SET @RetCode = 0
  42927. --赛事状态
  42928. SELECT @DBStatus = Status FROM [Match] WHERE SerialNumber = @SerialNumber
  42929. --1=开启
  42930. IF(@Status = 1 AND @DBStatus NOT IN(0, 1))
  42931. BEGIN
  42932. SET @RetCode = 11
  42933. SELECT @RetCode AS RetCode
  42934. RETURN
  42935. END
  42936. --2=结束
  42937. IF(@Status = 2 AND @DBStatus != 1)
  42938. BEGIN
  42939. SET @RetCode = 12
  42940. SELECT @RetCode AS RetCode
  42941. RETURN
  42942. END
  42943. --3=派奖
  42944. IF(@Status = 3 AND @DBStatus != 2)
  42945. BEGIN
  42946. SET @RetCode = 13
  42947. SELECT @RetCode AS RetCode
  42948. RETURN
  42949. END
  42950. --修改状态
  42951. UPDATE [Match] SET Status = @Status WHERE SerialNumber = @SerialNumber
  42952. --返回信息
  42953. SET @RetCode = 1
  42954. SELECT @RetCode AS RetCode
  42955. RETURN
  42956. END
  42957. GO
  42958. /****** Object: StoredProcedure [dbo].[WS_HighlyProfitable_GetUserStageInfo] Script Date: 2024/1/12 11:01:14 ******/
  42959. SET ANSI_NULLS ON
  42960. GO
  42961. SET QUOTED_IDENTIFIER ON
  42962. GO
  42963. -- EXEC [WS_HighlyProfitable_GetUserStageInfo]
  42964. -- @UserID INT -- 用户ID
  42965. -- ==============================================
  42966. -- Author: wolf
  42967. -- Create Date: 2023-10-09
  42968. -- Mendor: wolf
  42969. -- Alter Date: 2023-10-09
  42970. -- Description: 一本万利 获取用户当前阶段信息
  42971. -- ==============================================
  42972. CREATE PROCEDURE [dbo].[WS_HighlyProfitable_GetUserStageInfo]
  42973. @UserID INT -- 用户ID
  42974. AS
  42975. SET NOCOUNT ON
  42976. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  42977. SET XACT_ABORT ON
  42978. BEGIN
  42979. SELECT
  42980. Schedule, Status
  42981. FROM
  42982. [HighlyProfitable]
  42983. WHERE
  42984. UserID = @UserID
  42985. END
  42986. GO
  42987. /****** Object: StoredProcedure [dbo].[WS_HighlyProfitable_SaveStageRecord] Script Date: 2024/1/12 11:01:14 ******/
  42988. SET ANSI_NULLS ON
  42989. GO
  42990. SET QUOTED_IDENTIFIER ON
  42991. GO
  42992. -- EXEC [WS_HighlyProfitable_SaveStageRecord]
  42993. -- @UserID INT, -- 用户ID
  42994. -- @Schedule INT, -- 当前阶段
  42995. -- @Status TINYINT, -- 礼包的状态(0 未激活, 1 已激活, 2 未完成, 3 结束)【注:左上角激活就送与完成所有任务可领礼包状态】
  42996. -- @Crdate DATETIME -- 创建日期
  42997. -- ==============================================
  42998. -- Author: wolf
  42999. -- Create Date: 2023-10-09
  43000. -- Mendor: wolf
  43001. -- Alter Date: 2023-10-09
  43002. -- Description: 一本万利 保存阶段记录
  43003. -- ==============================================
  43004. CREATE PROCEDURE [dbo].[WS_HighlyProfitable_SaveStageRecord]
  43005. @UserID INT, -- 用户ID
  43006. @Schedule INT, -- 当前阶段
  43007. @Status TINYINT, -- 礼包的状态(0 未激活, 1 已激活, 2 未完成, 3 结束)【注:左上角激活就送与完成所有任务可领礼包状态】
  43008. @Crdate DATETIME -- 创建日期
  43009. AS
  43010. SET NOCOUNT ON
  43011. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43012. SET XACT_ABORT ON
  43013. BEGIN
  43014. UPDATE
  43015. [HighlyProfitable]
  43016. SET
  43017. Schedule = @Schedule, Status = @Status
  43018. WHERE
  43019. UserID = @UserID
  43020. IF(@@ROWCOUNT = 0)
  43021. BEGIN
  43022. INSERT INTO [HighlyProfitable]
  43023. (
  43024. UserID, Schedule, Status, Crdate
  43025. )
  43026. VALUES
  43027. (
  43028. @UserID, @Schedule, @Status, @Crdate
  43029. )
  43030. END
  43031. RETURN
  43032. END
  43033. GO
  43034. /****** Object: StoredProcedure [dbo].[WS_Item_GetList] Script Date: 2024/1/12 11:01:14 ******/
  43035. SET ANSI_NULLS ON
  43036. GO
  43037. SET QUOTED_IDENTIFIER ON
  43038. GO
  43039. -- EXEC [WS_Item_GetList]
  43040. -- ==============================================
  43041. -- Author: wolf
  43042. -- Create Date: 2015-10-10
  43043. -- Mendor: wolf
  43044. -- Alter Date: 2015-10-10
  43045. -- Description: 系统道具数值列表
  43046. -- ==============================================
  43047. CREATE PROCEDURE [dbo].[WS_Item_GetList]
  43048. AS
  43049. SET NOCOUNT ON
  43050. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43051. SET XACT_ABORT ON
  43052. BEGIN
  43053. --返回信息
  43054. SELECT
  43055. ItemID, ItemName, ItemType, ItemDesc, Start, Duration, ActiveId,
  43056. Value, IsShow, IsGift, ShowPrice, IconUrl, DecorationType
  43057. FROM
  43058. [Item]
  43059. ORDER BY
  43060. ItemID ASC
  43061. RETURN
  43062. END
  43063. GO
  43064. /****** Object: StoredProcedure [dbo].[WS_LadderService_GetConsecutiveRecord] Script Date: 2024/1/12 11:01:14 ******/
  43065. SET ANSI_NULLS ON
  43066. GO
  43067. SET QUOTED_IDENTIFIER ON
  43068. GO
  43069. -- EXEC [WS_LadderService_GetConsecutiveRecord]
  43070. -- ==============================================
  43071. -- Author: wolf
  43072. -- Create Date: 2014-09-09
  43073. -- Mendor: wolf
  43074. -- Alter Date: 2014-12-22
  43075. -- Description: 排行赛
  43076. -- ==============================================
  43077. CREATE PROCEDURE [dbo].[WS_LadderService_GetConsecutiveRecord]
  43078. @UserID INT --用户ID
  43079. AS
  43080. SET NOCOUNT ON
  43081. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43082. SET XACT_ABORT ON
  43083. BEGIN
  43084. SELECT Record FROM [UserLadder] WHERE UserID = @UserID
  43085. RETURN
  43086. END
  43087. GO
  43088. /****** Object: StoredProcedure [dbo].[WS_LadderService_GetUserLadderInfo] Script Date: 2024/1/12 11:01:14 ******/
  43089. SET ANSI_NULLS ON
  43090. GO
  43091. SET QUOTED_IDENTIFIER ON
  43092. GO
  43093. -- EXEC [WS_LadderService_GetUserLadderInfo]
  43094. -- ==============================================
  43095. -- Author: wolf
  43096. -- Create Date: 2014-09-09
  43097. -- Mendor: wolf
  43098. -- Alter Date: 2014-12-22
  43099. -- Description: 排行赛
  43100. -- ==============================================
  43101. CREATE PROCEDURE [dbo].[WS_LadderService_GetUserLadderInfo]
  43102. @UserID INT --用户ID
  43103. AS
  43104. SET NOCOUNT ON
  43105. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43106. SET XACT_ABORT ON
  43107. BEGIN
  43108. SELECT
  43109. Point, MaxCounWin, WinCount, LoseCount, DrawCount
  43110. FROM
  43111. [UserLadder]
  43112. WHERE
  43113. UserID = @UserID
  43114. RETURN
  43115. END
  43116. GO
  43117. /****** Object: StoredProcedure [dbo].[WS_LadderService_GetUserSettlementRecord] Script Date: 2024/1/12 11:01:14 ******/
  43118. SET ANSI_NULLS ON
  43119. GO
  43120. SET QUOTED_IDENTIFIER ON
  43121. GO
  43122. -- EXEC [WS_LadderService_GetUserSettlementRecord]
  43123. -- @UserID = 1
  43124. -- ==============================================
  43125. -- Author: wolf
  43126. -- Create Date: 2023-09-22
  43127. -- Mendor: wolf
  43128. -- Alter Date: 2023-09-22
  43129. -- Description: 获取排位赛用户结算记录
  43130. -- ==============================================
  43131. CREATE PROCEDURE [dbo].[WS_LadderService_GetUserSettlementRecord]
  43132. @UserID INT -- 用户ID
  43133. AS
  43134. SET NOCOUNT ON
  43135. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43136. SET XACT_ABORT ON
  43137. BEGIN
  43138. SELECT
  43139. Point, WinCount, WinType
  43140. FROM
  43141. [LadderSettlementRecord]
  43142. WHERE
  43143. UserID = @UserID
  43144. END
  43145. GO
  43146. /****** Object: StoredProcedure [dbo].[WS_LadderService_SetConsecutiveRecord] Script Date: 2024/1/12 11:01:14 ******/
  43147. SET ANSI_NULLS ON
  43148. GO
  43149. SET QUOTED_IDENTIFIER ON
  43150. GO
  43151. -- EXEC [WS_LadderService_SetConsecutiveRecord]
  43152. -- ==============================================
  43153. -- Author: wolf
  43154. -- Create Date: 2014-09-09
  43155. -- Mendor: wolf
  43156. -- Alter Date: 2014-12-22
  43157. -- Description: 排行赛
  43158. -- ==============================================
  43159. CREATE PROCEDURE [dbo].[WS_LadderService_SetConsecutiveRecord]
  43160. @UserID INT, --用户ID
  43161. @Record VARCHAR(1024) --连胜记录
  43162. AS
  43163. SET NOCOUNT ON
  43164. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43165. SET XACT_ABORT ON
  43166. BEGIN
  43167. UPDATE [UserLadder] SET Record = @Record WHERE UserID = @UserID
  43168. IF(@@ROWCOUNT = 0)
  43169. BEGIN
  43170. INSERT INTO [UserLadder]
  43171. (
  43172. UserID, Point, MaxCounWin, WinCount, LoseCount, DrawCount, Record
  43173. )
  43174. VALUES
  43175. (
  43176. @UserID, 0, 0, 0, 0, 0, @Record
  43177. )
  43178. END
  43179. RETURN
  43180. END
  43181. GO
  43182. /****** Object: StoredProcedure [dbo].[WS_LadderService_SetUserLadderInfo] Script Date: 2024/1/12 11:01:14 ******/
  43183. SET ANSI_NULLS ON
  43184. GO
  43185. SET QUOTED_IDENTIFIER ON
  43186. GO
  43187. -- EXEC [WS_LadderService_SetUserLadderInfo]
  43188. -- ==============================================
  43189. -- Author: wolf
  43190. -- Create Date: 2014-09-09
  43191. -- Mendor: wolf
  43192. -- Alter Date: 2014-12-22
  43193. -- Description: 排行赛
  43194. -- ==============================================
  43195. CREATE PROCEDURE [dbo].[WS_LadderService_SetUserLadderInfo]
  43196. @UserID INT, --用户ID
  43197. @Point INT, --点数
  43198. @MaxCounWin INT, --最大连胜
  43199. @WinCount INT, --赢
  43200. @LoseCount INT, --输
  43201. @DrawCount INT --和
  43202. AS
  43203. SET NOCOUNT ON
  43204. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43205. SET XACT_ABORT ON
  43206. BEGIN
  43207. UPDATE
  43208. [UserLadder]
  43209. SET
  43210. Point = @Point, MaxCounWin = @MaxCounWin, WinCount = @WinCount,
  43211. LoseCount = @LoseCount, DrawCount = @DrawCount
  43212. WHERE
  43213. UserID = @UserID
  43214. IF(@@ROWCOUNT = 0)
  43215. BEGIN
  43216. INSERT INTO [UserLadder]
  43217. (
  43218. UserID, Point, MaxCounWin, WinCount, LoseCount, DrawCount, Record
  43219. )
  43220. VALUES
  43221. (
  43222. @UserID, @Point, @MaxCounWin, @WinCount, @LoseCount, @DrawCount, ''
  43223. )
  43224. END
  43225. RETURN
  43226. END
  43227. GO
  43228. /****** Object: StoredProcedure [dbo].[WS_LadderService_SetUserSettlementRecord] Script Date: 2024/1/12 11:01:14 ******/
  43229. SET ANSI_NULLS ON
  43230. GO
  43231. SET QUOTED_IDENTIFIER ON
  43232. GO
  43233. -- EXEC [WS_LadderService_SetUserSettlementRecord]
  43234. -- @UserID = 1
  43235. -- @Point = 1
  43236. -- @WinCount = 1
  43237. -- @WinType = 0
  43238. -- @Crdate = ''
  43239. -- ==============================================
  43240. -- Author: wolf
  43241. -- Create Date: 2023-09-22
  43242. -- Mendor: wolf
  43243. -- Alter Date: 2023-09-22
  43244. -- Description: 设置排位赛用户结算记录
  43245. -- ==============================================
  43246. CREATE PROCEDURE [dbo].[WS_LadderService_SetUserSettlementRecord]
  43247. @UserID INT, -- 用户ID
  43248. @Point INT, -- 点数
  43249. @WinCount INT, -- 胜利次数
  43250. @WinType INT, -- 连胜类型
  43251. @Crdate DATETIME -- 创建日期
  43252. AS
  43253. SET NOCOUNT ON
  43254. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43255. SET XACT_ABORT ON
  43256. BEGIN
  43257. UPDATE
  43258. [LadderSettlementRecord]
  43259. SET
  43260. Point = @Point, WinCount = @WinCount
  43261. WHERE
  43262. UserID = @UserID AND WinType = @WinType
  43263. IF(@@ROWCOUNT = 0)
  43264. BEGIN
  43265. INSERT INTO [LadderSettlementRecord]
  43266. (
  43267. UserID, Point, WinCount, WinType, Crdate
  43268. )
  43269. VALUES
  43270. (
  43271. @UserID, @Point, @WinCount, @WinType, @Crdate
  43272. )
  43273. END
  43274. RETURN
  43275. END
  43276. GO
  43277. /****** Object: StoredProcedure [dbo].[WS_LevelRewards_GetUserTaskList] Script Date: 2024/1/12 11:01:14 ******/
  43278. SET ANSI_NULLS ON
  43279. GO
  43280. SET QUOTED_IDENTIFIER ON
  43281. GO
  43282. -- EXEC [WS_LevelRewards_GetUserTaskList]
  43283. -- @UserID = 0
  43284. -- ==============================================
  43285. -- Author: wolf
  43286. -- Create Date: 2023-08-18
  43287. -- Mendor: wolf
  43288. -- Alter Date: 2023-08-18
  43289. -- Description: 等级礼包奖励 - 获取用户任务列表
  43290. -- ==============================================
  43291. CREATE PROCEDURE [dbo].[WS_LevelRewards_GetUserTaskList]
  43292. @UserID INT --用户ID
  43293. AS
  43294. SET NOCOUNT ON
  43295. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43296. SET XACT_ABORT ON
  43297. BEGIN
  43298. -- 返回信息
  43299. SELECT
  43300. UserID, [Level], PaidPack, ClaimStatus, CreateDayIndex
  43301. FROM
  43302. [UserLevelRewards]
  43303. WHERE
  43304. UserID = @UserID
  43305. ORDER BY
  43306. [Level] ASC, PaidPack ASC
  43307. RETURN
  43308. END
  43309. GO
  43310. /****** Object: StoredProcedure [dbo].[WS_LevelRewards_UpdateUserTask] Script Date: 2024/1/12 11:01:14 ******/
  43311. SET ANSI_NULLS ON
  43312. GO
  43313. SET QUOTED_IDENTIFIER ON
  43314. GO
  43315. -- EXEC [WS_LevelRewards_UpdateUserTask]
  43316. -- @UserID = 0
  43317. -- @Level = 0
  43318. -- @PaidPack = 0
  43319. -- @ClaimStatus = 0
  43320. -- @CreateDayIndex = 0
  43321. -- ==============================================
  43322. -- Author: wolf
  43323. -- Create Date: 2023-08-18
  43324. -- Mendor: wolf
  43325. -- Alter Date: 2023-08-18
  43326. -- Description: 等级礼包奖励 - 更新用户任务
  43327. -- ==============================================
  43328. CREATE PROCEDURE [dbo].[WS_LevelRewards_UpdateUserTask]
  43329. @UserID INT, --用户ID
  43330. @Level INT, --等级要求
  43331. @PaidPack TINYINT, --付费礼包(0=不是,1=是)
  43332. @ClaimStatus TINYINT, --领取状态(0不可领取,1可领取,2已领取)
  43333. @CreateDayIndex INT --创建天的索引
  43334. AS
  43335. SET NOCOUNT ON
  43336. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43337. SET XACT_ABORT ON
  43338. BEGIN
  43339. --更新
  43340. UPDATE
  43341. [UserLevelRewards]
  43342. SET
  43343. ClaimStatus = @ClaimStatus,
  43344. CreateDayIndex = @CreateDayIndex
  43345. WHERE
  43346. UserID = @UserID AND PaidPack = @PaidPack AND Level = @Level
  43347. IF(@@ROWCOUNT = 0)
  43348. BEGIN
  43349. INSERT INTO [UserLevelRewards]
  43350. (
  43351. UserID, Level, PaidPack, ClaimStatus, CreateDayIndex
  43352. )
  43353. VALUES
  43354. (
  43355. @UserID, @Level, @PaidPack, @ClaimStatus, @CreateDayIndex
  43356. )
  43357. END
  43358. RETURN
  43359. END
  43360. GO
  43361. /****** Object: StoredProcedure [dbo].[WS_MachineUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
  43362. SET ANSI_NULLS ON
  43363. GO
  43364. SET QUOTED_IDENTIFIER ON
  43365. GO
  43366. -- EXEC [WS_MachineUser_GetList]
  43367. -- ==============================================
  43368. -- Author: wolf
  43369. -- Create Date: 2014-01-21
  43370. -- Mendor: wolf
  43371. -- Alter Date: 2016-11-07
  43372. -- Description: 机器人列表
  43373. -- ==============================================
  43374. CREATE PROCEDURE [dbo].[WS_MachineUser_GetList]
  43375. AS
  43376. SET NOCOUNT ON
  43377. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43378. SET XACT_ABORT ON
  43379. BEGIN
  43380. SELECT UserID FROM [MachineUser] ORDER BY UserID ASC
  43381. END
  43382. GO
  43383. /****** Object: StoredProcedure [dbo].[WS_MatchCard_Use] Script Date: 2024/1/12 11:01:14 ******/
  43384. SET ANSI_NULLS ON
  43385. GO
  43386. SET QUOTED_IDENTIFIER ON
  43387. GO
  43388. -- EXEC [WS_MatchCard_Use]
  43389. -- ==============================================
  43390. -- Author: wolf
  43391. -- Create Date: 2014-12-29
  43392. -- Mendor: wolf
  43393. -- Alter Date: 2015-06-01
  43394. -- Description: 比赛卡使用
  43395. -- ==============================================
  43396. CREATE PROCEDURE [dbo].[WS_MatchCard_Use]
  43397. @UserID INT, --用户ID
  43398. @CardNo VARCHAR(32) --卡号
  43399. AS
  43400. SET NOCOUNT ON
  43401. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43402. SET XACT_ABORT ON
  43403. BEGIN
  43404. DECLARE @CurrTime DATETIME --系统时间
  43405. DECLARE @DateFlag SMALLDATETIME --日期标识
  43406. DECLARE @RetCode TINYINT --操作结果
  43407. DECLARE @OpenTime DATETIME --开始时间
  43408. DECLARE @ExpireTime DATETIME --过期时间
  43409. DECLARE @ErrorTimes INT --错误次数
  43410. DECLARE @ErrorTime DATETIME --错误时间
  43411. DECLARE @CoolSeconds INT --冷却时长
  43412. DECLARE @Minutes INT --分钟
  43413. DECLARE @TimeMemo NVARCHAR(1024) --时间描述
  43414. DECLARE @SceneMemo NVARCHAR(2048) --场地描述
  43415. SET @RetCode = 0
  43416. SET @ErrorTimes = 0
  43417. SET @CoolSeconds = 0
  43418. SET @CurrTime = GETDATE()
  43419. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  43420. SET @Minutes = 1
  43421. SET @TimeMemo = ''
  43422. SET @SceneMemo = ''
  43423. --获取卡日志
  43424. SELECT
  43425. @ErrorTimes = ErrorTimes, @ErrorTime = Crdate
  43426. FROM
  43427. [CardErrorLog]
  43428. WHERE
  43429. UserID = @UserID
  43430. --初始化数据
  43431. IF(@@ROWCOUNT = 0)
  43432. BEGIN
  43433. INSERT INTO [CardErrorLog](UserID, ErrorTimes, Crdate) VALUES(@UserID, 0, @CurrTime)
  43434. END
  43435. --每5秒仅能输入1次兑换码
  43436. IF(@ErrorTime >= DATEADD(SECOND, -5, @CurrTime))
  43437. BEGIN
  43438. SET @RetCode = 12
  43439. SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
  43440. RETURN
  43441. END
  43442. --当5分钟内连续输错10次兑换码时,禁止使用此功能几分钟
  43443. IF(@ErrorTime >= DATEADD(MINUTE, -@Minutes, @CurrTime) AND @ErrorTimes >= 10)
  43444. BEGIN
  43445. SET @RetCode = 13
  43446. --计算冷却时间
  43447. SET @CoolSeconds = DATEDIFF(SECOND, @CurrTime, DATEADD(MINUTE, @Minutes, @ErrorTime))
  43448. SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
  43449. RETURN
  43450. END
  43451. --兑换卡信息
  43452. SELECT
  43453. @OpenTime = OpenTime, @ExpireTime = ExpireTime, @TimeMemo = TimeMemo,
  43454. @SceneMemo = SceneMemo
  43455. FROM
  43456. [MatchCard]
  43457. WHERE
  43458. CardNo = @CardNo
  43459. IF(@@ROWCOUNT = 0)
  43460. BEGIN
  43461. --超过5分钟
  43462. IF(@ErrorTime < DATEADD(MINUTE, -@Minutes, @CurrTime))
  43463. BEGIN
  43464. SET @ErrorTimes = 0
  43465. END
  43466. --错误次数+1
  43467. UPDATE
  43468. [CardErrorLog]
  43469. SET
  43470. ErrorTimes = @ErrorTimes + 1, Crdate = @CurrTime
  43471. WHERE
  43472. UserID = @UserID
  43473. SET @RetCode = 11
  43474. SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
  43475. RETURN
  43476. END
  43477. --还没到开放时间
  43478. IF(@OpenTime > @CurrTime)
  43479. BEGIN
  43480. SET @RetCode = 14
  43481. SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
  43482. RETURN
  43483. END
  43484. --判断是否过期
  43485. IF(@ExpireTime < @CurrTime)
  43486. BEGIN
  43487. SET @RetCode = 15
  43488. SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
  43489. RETURN
  43490. END
  43491. --兑换卡使用记录
  43492. INSERT INTO [MatchCardLog](UserID, CardNo, Crdate) VALUES(@UserID, @CardNo, @CurrTime)
  43493. --充值卡使用记录
  43494. UPDATE [CardErrorLog] SET ErrorTimes = 0, Crdate = @CurrTime WHERE UserID = @UserID
  43495. --可使用次数+1
  43496. UPDATE [MatchCard] SET UseTimes = UseTimes + 1 WHERE CardNo = @CardNo
  43497. --使用成功
  43498. SET @RetCode = 1
  43499. SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
  43500. RETURN
  43501. END
  43502. GO
  43503. /****** Object: StoredProcedure [dbo].[WS_MatchData_AddStatistics] Script Date: 2024/1/12 11:01:14 ******/
  43504. SET ANSI_NULLS ON
  43505. GO
  43506. SET QUOTED_IDENTIFIER ON
  43507. GO
  43508. -- EXEC [WS_MatchData_AddStatistics]
  43509. -- @MatchID = 100005
  43510. -- @MatchType = 'Combo'
  43511. -- @GameID = 37
  43512. -- @MaxUserCount = 20
  43513. -- @TableUserCount = 4
  43514. -- @JoinUserCount = 20
  43515. -- @EnrollFee = '30002,2000;'
  43516. -- @StartTime = 1692340700
  43517. -- @EndTime = 1692344337
  43518. -- @SerialNumber = '0'
  43519. -- ==============================================
  43520. -- Author: wolf
  43521. -- Create Date: 2023-08-18
  43522. -- Mendor: wolf
  43523. -- Alter Date: 2023-08-18
  43524. -- Description: 赛事数据添加统计
  43525. -- ==============================================
  43526. CREATE PROCEDURE [dbo].[WS_MatchData_AddStatistics]
  43527. @MatchID INT, --赛事ID
  43528. @MatchType VARCHAR(64), --101 SNG,102 配置赛
  43529. @GameID INT, --游戏ID
  43530. @MaxUserCount INT, --最多报名人数
  43531. @TableUserCount INT, --每张桌子人数
  43532. @JoinUserCount INT, --加入的用户数
  43533. @EnrollFee VARCHAR(256), --报名费(存在多种报名方式)[ItemId, Count]
  43534. @StartTime INT, --开始时间
  43535. @EndTime INT, --结束时间
  43536. @SerialNumber VARCHAR(32) OUTPUT --比赛场次
  43537. AS
  43538. SET NOCOUNT ON
  43539. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43540. SET XACT_ABORT ON
  43541. BEGIN
  43542. --返回新的比赛场次
  43543. set @SerialNumber = CONVERT(NVARCHAR(8), GETDATE(), 112) + REPLACE( CONVERT ( VARCHAR ( 16 ), GETDATE( ), 114 ), ':', '' )
  43544. --添加赛事数据统计
  43545. INSERT INTO [MatchDataStatistics]
  43546. (
  43547. SerialNumber, MatchID, MatchType, GameID, EnrollFee, MaxUserCount, TableUserCount, JoinUserCount, StartTime, EndTime
  43548. )
  43549. VALUES
  43550. (
  43551. @SerialNumber, @MatchID, @MatchType, @GameID, @EnrollFee, @MaxUserCount, @TableUserCount,
  43552. @JoinUserCount, dbo.fn_StampToTime(@StartTime), dbo.fn_StampToTime(@EndTime)
  43553. )
  43554. RETURN
  43555. END
  43556. GO
  43557. /****** Object: StoredProcedure [dbo].[WS_MatchData_AddUser] Script Date: 2024/1/12 11:01:14 ******/
  43558. SET ANSI_NULLS ON
  43559. GO
  43560. SET QUOTED_IDENTIFIER ON
  43561. GO
  43562. -- EXEC [WS_MatchData_AddUser]
  43563. -- @SerialNumber = '2023081801'
  43564. -- @Rank = 1
  43565. -- @UserID = 999
  43566. -- @ItemID = 10001
  43567. -- @ItemCount = 200
  43568. -- @EnrollTime = '2023-08-18 00:00:00'
  43569. -- @Score = 99
  43570. -- @Prize = '10004,200;'
  43571. -- ==============================================
  43572. -- Author: wolf
  43573. -- Create Date: 2023-08-18
  43574. -- Mendor: wolf
  43575. -- Alter Date: 2023-08-18
  43576. -- Description: 赛事数据添加用户
  43577. -- ==============================================
  43578. CREATE PROCEDURE [dbo].[WS_MatchData_AddUser]
  43579. @SerialNumber VARCHAR(32), --比赛场次
  43580. @GameID INT, --游戏ID
  43581. @Rank INT, --排名
  43582. @UserID INT, --用户ID
  43583. @ItemID INT, --道具ID(报名道具)
  43584. @ItemCount INT, --报名道具的数量
  43585. @EnrollTime DATETIME, --报名时间
  43586. @Score INT, --分数
  43587. @Prize VARCHAR(128) --奖品
  43588. AS
  43589. SET NOCOUNT ON
  43590. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43591. SET XACT_ABORT ON
  43592. BEGIN
  43593. --赛事数据用户名单
  43594. INSERT INTO [MatchDataUserList]
  43595. (
  43596. SerialNumber, GameID, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize
  43597. )
  43598. VALUES
  43599. (
  43600. @SerialNumber, @GameID, @Rank, @UserID, @ItemID, @ItemCount, @EnrollTime, @Score, @Prize
  43601. )
  43602. RETURN
  43603. END
  43604. GO
  43605. /****** Object: StoredProcedure [dbo].[WS_Money_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  43606. SET ANSI_NULLS ON
  43607. GO
  43608. SET QUOTED_IDENTIFIER ON
  43609. GO
  43610. -- EXEC [WS_Money_GetInfo]
  43611. -- ==============================================
  43612. -- Author: wolf
  43613. -- Create Date: 2014-12-02
  43614. -- Mendor: wolf
  43615. -- Alter Date: 2014-12-10
  43616. -- Description: 获取金币
  43617. -- ==============================================
  43618. CREATE PROCEDURE [dbo].[WS_Money_GetInfo]
  43619. @UserID INT, --用户ID
  43620. @Gold BIGINT OUTPUT, --金币数
  43621. @Bank BIGINT OUTPUT --保险柜
  43622. AS
  43623. SET NOCOUNT ON
  43624. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43625. SET XACT_ABORT ON
  43626. BEGIN
  43627. SET @Gold = 0
  43628. SET @Bank = 0
  43629. --金币
  43630. EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Gold OUTPUT, @Bank = @Bank OUTPUT
  43631. RETURN
  43632. END
  43633. GO
  43634. /****** Object: StoredProcedure [dbo].[WS_Money_Give] Script Date: 2024/1/12 11:01:14 ******/
  43635. SET ANSI_NULLS ON
  43636. GO
  43637. SET QUOTED_IDENTIFIER ON
  43638. GO
  43639. -- DECLARE @RetCode TINYINT
  43640. -- EXEC [WS_Money_Give]
  43641. -- @UserID = 10001,
  43642. -- @SourceName = '',
  43643. -- @Amount = 100,
  43644. -- @LogType = 1,
  43645. -- @IPAddress = '',
  43646. -- @RetCode = @RetCode OUTPUT
  43647. -- SELECT @RetCode AS RetCode
  43648. -- ==============================================
  43649. -- Author: wolf
  43650. -- Create Date: 2014-09-03
  43651. -- Mendor: wolf
  43652. -- Alter Date: 2014-09-04
  43653. -- Description: 加金币接口(供其他接口调用)
  43654. -- ==============================================
  43655. CREATE PROCEDURE [dbo].[WS_Money_Give]
  43656. @UserID INT, --用户ID
  43657. @Amount BIGINT, --金币数
  43658. @LogType INT, --日志类型
  43659. @SourceName NVARCHAR(32), --源名称
  43660. @Remark NVARCHAR(128), --备注
  43661. @IPAddress VARCHAR(16), --IP地址
  43662. @RetCode TINYINT OUTPUT --操作结果
  43663. --操作结果描述: 1=操作成功 11=传入参数错误
  43664. AS
  43665. SET NOCOUNT ON
  43666. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  43667. SET XACT_ABORT ON
  43668. BEGIN
  43669. SET @RetCode = 0
  43670. --加金豆
  43671. EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = @SourceName, @GameID = 0, @WantedAmount = @Amount,
  43672. @LogType = @LogType, @Remark = @Remark, @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
  43673. RETURN
  43674. END
  43675. GO
  43676. /****** Object: StoredProcedure [dbo].[WS_Money_Reduce] Script Date: 2024/1/12 11:01:14 ******/
  43677. SET ANSI_NULLS ON
  43678. GO
  43679. SET QUOTED_IDENTIFIER ON
  43680. GO
  43681. -- EXEC [WS_Money_Reduce]
  43682. -- ==============================================
  43683. -- Author: wolf
  43684. -- Create Date: 2014-09-03
  43685. -- Mendor: wolf
  43686. -- Alter Date: 2014-12-02
  43687. -- Description: 扣除金币接口(供其他接口调用)
  43688. -- ==============================================
  43689. CREATE PROCEDURE [dbo].[WS_Money_Reduce]
  43690. @UserID INT, --用户ID
  43691. @Amount BIGINT, --操作金币(必须>0)
  43692. @LogType INT, --日志类型
  43693. @SourceName NVARCHAR(64), --源名称
  43694. @Remark NVARCHAR(128), --备注
  43695. @IPAddress VARCHAR(16), --IP地址
  43696. @RetCode TINYINT OUTPUT --操作结果
  43697. --操作结果描述:1=操作成功 11=金币不足 12=参数异常 21=金币锁
  43698. AS
  43699. SET NOCOUNT ON
  43700. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  43701. SET XACT_ABORT ON
  43702. BEGIN
  43703. SET @RetCode = 0
  43704. --扣减(检查泥码)
  43705. EXEC [Game_Money_ReduceMoney] @UserID = @UserID, @WantedAmount = @Amount, @LogType = @LogType,
  43706. @SourceName = @SourceName, @GameID = 0, @Remark = @Remark, @IPAddress = @IPAddress,
  43707. @RetCode = @RetCode OUTPUT
  43708. RETURN
  43709. END
  43710. GO
  43711. /****** Object: StoredProcedure [dbo].[WS_MonthlyCard_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  43712. SET ANSI_NULLS ON
  43713. GO
  43714. SET QUOTED_IDENTIFIER ON
  43715. GO
  43716. -- EXEC [WS_MonthlyCard_GetInfo]
  43717. -- ==============================================
  43718. -- Author: wolf
  43719. -- Create Date: 2016-07-21
  43720. -- Mendor: wolf
  43721. -- Alter Date: 2016-11-18
  43722. -- Description: 月卡信息
  43723. -- ==============================================
  43724. CREATE PROCEDURE [dbo].[WS_MonthlyCard_GetInfo]
  43725. AS
  43726. SET NOCOUNT ON
  43727. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43728. SET XACT_ABORT ON
  43729. BEGIN
  43730. --返回信息
  43731. SELECT
  43732. ProductID, ProductName, Price, Awards, DayItems, Memo
  43733. FROM
  43734. [MonthlyCard]
  43735. RETURN
  43736. END
  43737. GO
  43738. /****** Object: StoredProcedure [dbo].[WS_MyMatch_GetList] Script Date: 2024/1/12 11:01:14 ******/
  43739. SET ANSI_NULLS ON
  43740. GO
  43741. SET QUOTED_IDENTIFIER ON
  43742. GO
  43743. -- EXEC [WS_MyMatch_GetList]
  43744. -- ==============================================
  43745. -- Author: wolf
  43746. -- Create Date: 2015-10-10
  43747. -- Mendor: wolf
  43748. -- Alter Date: 2015-10-10
  43749. -- Description: 用户比赛列表
  43750. -- ==============================================
  43751. CREATE PROCEDURE [dbo].[WS_MyMatch_GetList]
  43752. @UserID INT, --用户ID
  43753. @PageIndex INT, --页索引
  43754. @PageSize INT, --页大小
  43755. @RecordCount INT OUTPUT --记录数
  43756. AS
  43757. SET NOCOUNT ON
  43758. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43759. SET XACT_ABORT ON
  43760. BEGIN
  43761. DECLARE @StartRowIndex INT --起始行索引
  43762. DECLARE @EndRowIndex INT --截止行索引
  43763. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  43764. SET @EndRowIndex = @PageIndex * @PageSize
  43765. DECLARE @tmpTable TABLE(
  43766. Rid INT NOT NULL, --标识
  43767. MatchName NVARCHAR(32) NOT NULL, --比赛名称
  43768. Rank INT NOT NULL, --名次
  43769. Items VARCHAR(128) NOT NULL, --道具
  43770. Status SMALLINT NOT NULL, --状态(0=没有奖励 1=可领取 2=等待发放 3=已领取)
  43771. Crdate VARCHAR(16) NOT NULL -- 时间
  43772. )
  43773. INSERT INTO @tmpTable
  43774. (
  43775. Rid, MatchName, Rank, Items, Status, Crdate
  43776. )
  43777. SELECT
  43778. Rid, MatchName, Rank, Items, Status, Crdate
  43779. FROM
  43780. [MyMatch]
  43781. WHERE
  43782. UserID = @UserID AND Crdate >= GETDATE() - 30
  43783. SET @RecordCount = @@ROWCOUNT
  43784. ;WITH [List] AS
  43785. (
  43786. SELECT
  43787. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  43788. Rid, MatchName, Rank, Items, Status, Crdate
  43789. FROM
  43790. @tmpTable
  43791. )
  43792. --返回信息
  43793. SELECT
  43794. Rid, MatchName, Rank, Items, Status,
  43795. CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  43796. FROM
  43797. [List]
  43798. WHERE
  43799. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  43800. ORDER BY
  43801. RowNumber ASC
  43802. RETURN
  43803. END
  43804. GO
  43805. /****** Object: StoredProcedure [dbo].[WS_MyMatch_SetStatus] Script Date: 2024/1/12 11:01:14 ******/
  43806. SET ANSI_NULLS ON
  43807. GO
  43808. SET QUOTED_IDENTIFIER ON
  43809. GO
  43810. -- EXEC [WS_MyMatch_SetStatus]
  43811. -- ==============================================
  43812. -- Author: wolf
  43813. -- Create Date: 2015-10-10
  43814. -- Mendor: wolf
  43815. -- Alter Date: 2015-10-10
  43816. -- Description: 用户比赛状态
  43817. -- ==============================================
  43818. CREATE PROCEDURE [dbo].[WS_MyMatch_SetStatus]
  43819. @Rid INT, --标识
  43820. @UserID INT, --用户ID
  43821. @Status SMALLINT --状态(0=没有奖励 1=可领取 2=等待发放 3=已领取)
  43822. AS
  43823. SET NOCOUNT ON
  43824. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43825. SET XACT_ABORT ON
  43826. BEGIN
  43827. DECLARE @RetCode TINYINT
  43828. UPDATE [MyMatch] SET Status = @Status WHERE Rid = @Rid AND UserID = @UserID
  43829. IF(@@ROWCOUNT = 0)
  43830. BEGIN
  43831. SET @RetCode = 11
  43832. SELECT @RetCode AS RetCode
  43833. RETURN
  43834. END
  43835. SET @RetCode = 1
  43836. SELECT @RetCode AS RetCode
  43837. RETURN
  43838. END
  43839. GO
  43840. /****** Object: StoredProcedure [dbo].[WS_MyMatch_Write] Script Date: 2024/1/12 11:01:14 ******/
  43841. SET ANSI_NULLS ON
  43842. GO
  43843. SET QUOTED_IDENTIFIER ON
  43844. GO
  43845. -- EXEC [WS_MyMatch_Write]
  43846. -- ==============================================
  43847. -- Author: wolf
  43848. -- Create Date: 2015-10-10
  43849. -- Mendor: wolf
  43850. -- Alter Date: 2015-10-10
  43851. -- Description: 用户比赛数据写入
  43852. -- ==============================================
  43853. CREATE PROCEDURE [dbo].[WS_MyMatch_Write]
  43854. @UserID INT, --用户ID
  43855. @MatchName NVARCHAR(32), --比赛名称
  43856. @Rank INT, --名次
  43857. @Items VARCHAR(128), --道具
  43858. @Status SMALLINT, --状态(0=没有奖励 1=可领取 2=等待发放 3=已领取)
  43859. @Crdate VARCHAR(16) -- 时间
  43860. AS
  43861. SET NOCOUNT ON
  43862. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43863. SET XACT_ABORT ON
  43864. BEGIN
  43865. INSERT INTO [MyMatch]
  43866. (
  43867. UserID, MatchName, Rank, Items, Status, Crdate
  43868. )
  43869. VALUES
  43870. (
  43871. @UserID, @MatchName, @Rank, @Items, @Status, @Crdate
  43872. )
  43873. RETURN
  43874. END
  43875. GO
  43876. /****** Object: StoredProcedure [dbo].[WS_NewSavingPot_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  43877. SET ANSI_NULLS ON
  43878. GO
  43879. SET QUOTED_IDENTIFIER ON
  43880. GO
  43881. -- EXEC [WS_NewSavingPot_GetInfo]
  43882. -- ==============================================
  43883. -- Author: wolf
  43884. -- Create Date: 2023-06-28
  43885. -- Mendor: wolf
  43886. -- Alter Date: 2023-06-28
  43887. -- Description: 存钱罐信息
  43888. -- ==============================================
  43889. CREATE PROCEDURE [dbo].[WS_NewSavingPot_GetInfo]
  43890. @UserID INT --用户ID
  43891. AS
  43892. SET NOCOUNT ON
  43893. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43894. SET XACT_ABORT ON
  43895. BEGIN
  43896. --返回信息
  43897. SELECT
  43898. UserID, CurrentLevel, BuyAmount, BuyTimes,
  43899. dbo.fn_TimeToStamp(DuringTime) AS DuringTime, MultiplyStatus
  43900. FROM
  43901. [NewUserSavingPot]
  43902. WHERE
  43903. UserID = @UserID
  43904. RETURN
  43905. END
  43906. GO
  43907. /****** Object: StoredProcedure [dbo].[WS_NewSavingPot_Update] Script Date: 2024/1/12 11:01:14 ******/
  43908. SET ANSI_NULLS ON
  43909. GO
  43910. SET QUOTED_IDENTIFIER ON
  43911. GO
  43912. -- EXEC [WS_NewSavingPot_Update]
  43913. -- ==============================================
  43914. -- Author: wolf
  43915. -- Create Date: 2023-06-28
  43916. -- Mendor: wolf
  43917. -- Alter Date: 2023-06-28
  43918. -- Description: 存钱罐更新
  43919. -- ==============================================
  43920. CREATE PROCEDURE [dbo].[WS_NewSavingPot_Update]
  43921. @UserID INT, --用户ID
  43922. @CurrentLevel INT,
  43923. @BuyAmount INT,
  43924. @BuyTimes INT,
  43925. @DuringTime INT,
  43926. @MultiplyStatus INT
  43927. AS
  43928. SET NOCOUNT ON
  43929. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43930. SET XACT_ABORT ON
  43931. BEGIN
  43932. --更新
  43933. UPDATE
  43934. [NewUserSavingPot]
  43935. SET
  43936. CurrentLevel = @CurrentLevel, BuyAmount = @BuyAmount, BuyTimes = @BuyTimes,
  43937. DuringTime = dbo.fn_StampToTime(@DuringTime), MultiplyStatus = @MultiplyStatus
  43938. WHERE
  43939. UserID = @UserID
  43940. IF(@@ROWCOUNT = 0)
  43941. BEGIN
  43942. INSERT INTO [NewUserSavingPot]
  43943. (
  43944. UserID, CurrentLevel, BuyAmount, BuyTimes, DuringTime, MultiplyStatus
  43945. )
  43946. VALUES
  43947. (
  43948. @UserID, @CurrentLevel, @BuyAmount, @BuyTimes, dbo.fn_StampToTime(@DuringTime), @MultiplyStatus
  43949. )
  43950. END
  43951. RETURN
  43952. END
  43953. GO
  43954. /****** Object: StoredProcedure [dbo].[WS_NewUserGift_GetConfig] Script Date: 2024/1/12 11:01:14 ******/
  43955. SET ANSI_NULLS ON
  43956. GO
  43957. SET QUOTED_IDENTIFIER ON
  43958. GO
  43959. -- EXEC [WS_NewUserGift_GetConfig]
  43960. -- ==============================================
  43961. -- Author: wolf
  43962. -- Create Date: 2016-07-21
  43963. -- Mendor: wolf
  43964. -- Alter Date: 2016-11-07
  43965. -- Description: 新手登录奖励配置
  43966. -- ==============================================
  43967. CREATE PROCEDURE [dbo].[WS_NewUserGift_GetConfig]
  43968. AS
  43969. SET NOCOUNT ON
  43970. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43971. SET XACT_ABORT ON
  43972. BEGIN
  43973. --返回信息
  43974. SELECT DayIndex, Awards FROM [NewGiftConfig] ORDER BY DayIndex ASC
  43975. RETURN
  43976. END
  43977. GO
  43978. /****** Object: StoredProcedure [dbo].[WS_NewUserGift_GetUserGift] Script Date: 2024/1/12 11:01:14 ******/
  43979. SET ANSI_NULLS ON
  43980. GO
  43981. SET QUOTED_IDENTIFIER ON
  43982. GO
  43983. -- EXEC [WS_NewUserGift_GetUserGift]
  43984. -- ==============================================
  43985. -- Author: wolf
  43986. -- Create Date: 2016-07-21
  43987. -- Mendor: wolf
  43988. -- Alter Date: 2016-11-07
  43989. -- Description: 新手登录奖励信息
  43990. -- ==============================================
  43991. CREATE PROCEDURE [dbo].[WS_NewUserGift_GetUserGift]
  43992. @UserID INT --用户ID
  43993. AS
  43994. SET NOCOUNT ON
  43995. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  43996. SET XACT_ABORT ON
  43997. BEGIN
  43998. --返回信息
  43999. SELECT
  44000. DayIndex, Status, CONVERT(VARCHAR(20), DateFlag, 120) AS DateFlag
  44001. FROM
  44002. [NewUserGift]
  44003. WHERE
  44004. UserID = @UserID
  44005. ORDER BY
  44006. DayIndex ASC
  44007. RETURN
  44008. END
  44009. GO
  44010. /****** Object: StoredProcedure [dbo].[WS_NewUserGift_Receive] Script Date: 2024/1/12 11:01:14 ******/
  44011. SET ANSI_NULLS ON
  44012. GO
  44013. SET QUOTED_IDENTIFIER ON
  44014. GO
  44015. -- EXEC [WS_NewUserGift_Receive]
  44016. -- ==============================================
  44017. -- Author: wolf
  44018. -- Create Date: 2016-07-21
  44019. -- Mendor: wolf
  44020. -- Alter Date: 2016-11-07
  44021. -- Description: 新手登录领取
  44022. -- ==============================================
  44023. CREATE PROCEDURE [dbo].[WS_NewUserGift_Receive]
  44024. @UserID INT, --用户ID
  44025. @DayIndex INT --天序号
  44026. AS
  44027. SET NOCOUNT ON
  44028. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44029. SET XACT_ABORT ON
  44030. BEGIN
  44031. UPDATE [NewUserGift] SET Status = 1 WHERE UserID = @UserID AND DayIndex = @DayIndex
  44032. RETURN
  44033. END
  44034. GO
  44035. /****** Object: StoredProcedure [dbo].[WS_NewUserVip_AddPurchaseLog] Script Date: 2024/1/12 11:01:14 ******/
  44036. SET ANSI_NULLS ON
  44037. GO
  44038. SET QUOTED_IDENTIFIER ON
  44039. GO
  44040. -- EXEC [WS_NewUserVip_AddPurchaseLog]
  44041. -- @UserId = 100
  44042. -- @ProductId = "1",
  44043. -- @PurchaseTime = 1685555555
  44044. -- ==============================================
  44045. -- Author: wolf
  44046. -- Create Date: 2023-04-13
  44047. -- Mendor: wolf
  44048. -- Alter Date: 2023-04-13
  44049. -- Description: 添加新版用户vip的购买记录
  44050. -- ==============================================
  44051. CREATE PROCEDURE [dbo].[WS_NewUserVip_AddPurchaseLog]
  44052. @UserId INT, --用户Id
  44053. @ProductId VARCHAR(32), --产品Id
  44054. @PurchaseTime INT --购买时间戳
  44055. AS
  44056. SET NOCOUNT ON
  44057. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44058. SET XACT_ABORT ON
  44059. BEGIN
  44060. -- 新增数据
  44061. INSERT INTO [NewUserVipPurchaseLog]
  44062. (
  44063. UserId, ProductId, PurchaseTime
  44064. )
  44065. VALUES
  44066. (
  44067. @UserId, @ProductId, @PurchaseTime
  44068. )
  44069. RETURN
  44070. END
  44071. GO
  44072. /****** Object: StoredProcedure [dbo].[WS_NewUserVip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  44073. SET ANSI_NULLS ON
  44074. GO
  44075. SET QUOTED_IDENTIFIER ON
  44076. GO
  44077. -- EXEC [WS_NewUserVip_GetInfo]
  44078. -- @UserId = 100
  44079. -- ==============================================
  44080. -- Author: wolf
  44081. -- Create Date: 2023-04-13
  44082. -- Mendor: wolf
  44083. -- Alter Date: 2023-04-13
  44084. -- Description: 获取新版vip信息
  44085. -- ==============================================
  44086. CREATE PROCEDURE [dbo].[WS_NewUserVip_GetInfo]
  44087. @UserId INT --用户Id
  44088. AS
  44089. SET NOCOUNT ON
  44090. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44091. SET XACT_ABORT ON
  44092. BEGIN
  44093. -- 获取信息
  44094. SELECT
  44095. VipLevel AS [Level], VipPoint AS Point, Expire, DailyPackageClaimDay
  44096. FROM
  44097. [UserVip]
  44098. WHERE
  44099. UserId = @UserId
  44100. RETURN
  44101. END
  44102. GO
  44103. /****** Object: StoredProcedure [dbo].[WS_NewUserVip_GetPurchaseList] Script Date: 2024/1/12 11:01:14 ******/
  44104. SET ANSI_NULLS ON
  44105. GO
  44106. SET QUOTED_IDENTIFIER ON
  44107. GO
  44108. -- EXEC [WS_NewUserVip_GetPurchaseList]
  44109. -- @UserId = 100
  44110. -- ==============================================
  44111. -- Author: wolf
  44112. -- Create Date: 2023-04-13
  44113. -- Mendor: wolf
  44114. -- Alter Date: 2023-04-13
  44115. -- Description: 新版用户vip的购买列表
  44116. -- ==============================================
  44117. CREATE PROCEDURE [dbo].[WS_NewUserVip_GetPurchaseList]
  44118. @UserId INT --用户Id
  44119. AS
  44120. SET NOCOUNT ON
  44121. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44122. SET XACT_ABORT ON
  44123. BEGIN
  44124. SELECT
  44125. ProductId, PurchaseTime
  44126. FROM
  44127. [NewUserVipPurchaseLog]
  44128. WHERE
  44129. UserId = @UserId
  44130. RETURN
  44131. END
  44132. GO
  44133. /****** Object: StoredProcedure [dbo].[WS_NewUserVip_Update] Script Date: 2024/1/12 11:01:14 ******/
  44134. SET ANSI_NULLS ON
  44135. GO
  44136. SET QUOTED_IDENTIFIER ON
  44137. GO
  44138. -- EXEC [WS_NewUserVip_Update]
  44139. -- @UserId = 100
  44140. -- @Level = 1
  44141. -- @Point = 10
  44142. -- @Expire = 0
  44143. -- @DailyPackageClaimDay = 1681729908
  44144. -- ==============================================
  44145. -- Author: wolf
  44146. -- Create Date: 2023-04-13
  44147. -- Mendor: wolf
  44148. -- Alter Date: 2023-04-13
  44149. -- Description: 更新新版用户vip信息
  44150. -- ==============================================
  44151. CREATE PROCEDURE [dbo].[WS_NewUserVip_Update]
  44152. @UserId INT, --用户ID
  44153. @Level SMALLINT, --等级
  44154. @Point INT, --当前点数(经验值)
  44155. @Expire INT, --过期时间戳
  44156. @DailyPackageClaimDay INT --上一次领取的时间戳
  44157. AS
  44158. SET NOCOUNT ON
  44159. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44160. SET XACT_ABORT ON
  44161. BEGIN
  44162. -- 更新数据
  44163. UPDATE
  44164. [UserVip]
  44165. set
  44166. VipLevel = @Level, VipPoint = @Point, Expire = @Expire, DailyPackageClaimDay = @DailyPackageClaimDay
  44167. WHERE
  44168. UserId = @UserId
  44169. IF (@@ROWCOUNT > 0)
  44170. RETURN
  44171. -- 初始化数据
  44172. INSERT INTO [UserVip]
  44173. (
  44174. UserId, VipLevel, VipPoint, Expire, DailyPackageClaimDay
  44175. )
  44176. VALUES
  44177. (
  44178. @UserId, @Level, @Point, @Expire, @DailyPackageClaimDay
  44179. )
  44180. RETURN
  44181. END
  44182. GO
  44183. /****** Object: StoredProcedure [dbo].[WS_NewYearGift_GetConfig] Script Date: 2024/1/12 11:01:14 ******/
  44184. SET ANSI_NULLS ON
  44185. GO
  44186. SET QUOTED_IDENTIFIER ON
  44187. GO
  44188. -- EXEC [WS_NewYearGift_GetConfig]
  44189. -- ==============================================
  44190. -- Author: wolf
  44191. -- Create Date: 2016-07-21
  44192. -- Mendor: wolf
  44193. -- Alter Date: 2016-11-07
  44194. -- Description: 新手登录奖励配置
  44195. -- ==============================================
  44196. CREATE PROCEDURE [dbo].[WS_NewYearGift_GetConfig]
  44197. AS
  44198. SET NOCOUNT ON
  44199. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44200. SET XACT_ABORT ON
  44201. BEGIN
  44202. --返回信息
  44203. SELECT DayIndex, Awards FROM [NewYearGiftConfig] ORDER BY DayIndex ASC
  44204. RETURN
  44205. END
  44206. GO
  44207. /****** Object: StoredProcedure [dbo].[WS_NewYearGift_GetUserGift] Script Date: 2024/1/12 11:01:14 ******/
  44208. SET ANSI_NULLS ON
  44209. GO
  44210. SET QUOTED_IDENTIFIER ON
  44211. GO
  44212. -- EXEC [WS_NewYearGift_GetUserGift]
  44213. -- ==============================================
  44214. -- Author: wolf
  44215. -- Create Date: 2016-07-21
  44216. -- Mendor: wolf
  44217. -- Alter Date: 2016-11-07
  44218. -- Description: 新手登录奖励信息
  44219. -- ==============================================
  44220. CREATE PROCEDURE [dbo].[WS_NewYearGift_GetUserGift]
  44221. @UserID INT --用户ID
  44222. AS
  44223. SET NOCOUNT ON
  44224. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44225. SET XACT_ABORT ON
  44226. BEGIN
  44227. DECLARE @DateFlag SMALLDATETIME
  44228. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  44229. IF(@DateFlag NOT BETWEEN '2022-01-31' AND '2022-02-06')
  44230. RETURN
  44231. --还没有数据
  44232. IF NOT EXISTS(SELECT UserID FROM [NewUserYearGift] WHERE UserID = @UserID)
  44233. BEGIN
  44234. --生成新手登录任务
  44235. INSERT INTO [NewUserYearGift]
  44236. (
  44237. UserID, DayIndex, Status, DateFlag
  44238. )
  44239. SELECT
  44240. @UserID, DayIndex, 0, @DateFlag + (DayIndex - 1)
  44241. FROM
  44242. [NewYearGiftConfig]
  44243. ORDER BY
  44244. DayIndex ASC
  44245. END
  44246. --返回信息
  44247. SELECT
  44248. DayIndex, Status, CONVERT(VARCHAR(20), DateFlag, 120) AS DateFlag
  44249. FROM
  44250. [NewUserYearGift]
  44251. WHERE
  44252. UserID = @UserID AND DateFlag <= '2022-02-06'
  44253. ORDER BY
  44254. DayIndex ASC
  44255. RETURN
  44256. END
  44257. GO
  44258. /****** Object: StoredProcedure [dbo].[WS_NewYearGift_Receive] Script Date: 2024/1/12 11:01:14 ******/
  44259. SET ANSI_NULLS ON
  44260. GO
  44261. SET QUOTED_IDENTIFIER ON
  44262. GO
  44263. -- EXEC [WS_NewYearGift_Receive]
  44264. -- ==============================================
  44265. -- Author: wolf
  44266. -- Create Date: 2016-07-21
  44267. -- Mendor: wolf
  44268. -- Alter Date: 2016-11-07
  44269. -- Description: 新手登录领取
  44270. -- ==============================================
  44271. CREATE PROCEDURE [dbo].[WS_NewYearGift_Receive]
  44272. @UserID INT, --用户ID
  44273. @DayIndex INT --天序号
  44274. AS
  44275. SET NOCOUNT ON
  44276. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44277. SET XACT_ABORT ON
  44278. BEGIN
  44279. UPDATE [NewUserYearGift] SET Status = 1 WHERE UserID = @UserID AND DayIndex = @DayIndex
  44280. RETURN
  44281. END
  44282. GO
  44283. /****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_AddBigAward] Script Date: 2024/1/12 11:01:14 ******/
  44284. SET ANSI_NULLS ON
  44285. GO
  44286. SET QUOTED_IDENTIFIER ON
  44287. GO
  44288. -- EXEC [WS_NoviceWelfare_AddBigAward]
  44289. -- @UserID = 10001
  44290. -- @Crdate = '2023-07-20 00:00:00'
  44291. -- ==============================================
  44292. -- Author: wolf
  44293. -- Create Date: 2023-07-20
  44294. -- Mendor: wolf
  44295. -- Alter Date: 2023-07-20
  44296. -- Description: 新手福利 - 添加大奖记录
  44297. -- ==============================================
  44298. CREATE PROCEDURE [dbo].[WS_NoviceWelfare_AddBigAward]
  44299. @UserID INT, --用户ID
  44300. @Crdate DATETIME --创建时间
  44301. AS
  44302. SET NOCOUNT ON
  44303. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  44304. SET XACT_ABORT ON
  44305. BEGIN
  44306. UPDATE
  44307. [NoviceWelfareBigAward]
  44308. SET
  44309. Status = 1
  44310. WHERE
  44311. UserID = @UserID
  44312. IF(@@ROWCOUNT = 0)
  44313. BEGIN
  44314. INSERT INTO [NoviceWelfareBigAward]
  44315. (
  44316. UserID, Status, Crdate
  44317. )
  44318. VALUES
  44319. (
  44320. @UserID, 1, @Crdate
  44321. )
  44322. END
  44323. RETURN
  44324. END
  44325. GO
  44326. /****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_GetBigAward] Script Date: 2024/1/12 11:01:14 ******/
  44327. SET ANSI_NULLS ON
  44328. GO
  44329. SET QUOTED_IDENTIFIER ON
  44330. GO
  44331. -- EXEC [WS_NoviceWelfare_GetBigAward]
  44332. -- @UserID = 10001
  44333. -- ==============================================
  44334. -- Author: wolf
  44335. -- Create Date: 2023-07-20
  44336. -- Mendor: wolf
  44337. -- Alter Date: 2023-07-20
  44338. -- Description: 新手福利 - 获取大奖记录
  44339. -- ==============================================
  44340. CREATE PROCEDURE [dbo].[WS_NoviceWelfare_GetBigAward]
  44341. @UserID INT --用户ID
  44342. AS
  44343. SET NOCOUNT ON
  44344. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  44345. SET XACT_ABORT ON
  44346. BEGIN
  44347. SELECT
  44348. Status
  44349. FROM
  44350. [NoviceWelfareBigAward]
  44351. WHERE
  44352. UserID = @UserID
  44353. RETURN
  44354. END
  44355. GO
  44356. /****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_GetUserGiftPacks] Script Date: 2024/1/12 11:01:14 ******/
  44357. SET ANSI_NULLS ON
  44358. GO
  44359. SET QUOTED_IDENTIFIER ON
  44360. GO
  44361. -- EXEC [WS_NoviceWelfare_GetUserGiftPacks]
  44362. -- ==============================================
  44363. -- Author: wolf
  44364. -- Create Date: 2014-01-21
  44365. -- Mendor: wolf
  44366. -- Alter Date: 2016-11-07
  44367. -- Description: 新手福利--获取用户礼包
  44368. -- ==============================================
  44369. CREATE PROCEDURE [dbo].[WS_NoviceWelfare_GetUserGiftPacks]
  44370. @UserID INT --用户ID
  44371. AS
  44372. SET NOCOUNT ON
  44373. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44374. SET XACT_ABORT ON
  44375. BEGIN
  44376. SELECT
  44377. PackageId, StartDay, Status
  44378. FROM
  44379. [UserGiftPack]
  44380. WHERE
  44381. UserID = @UserID
  44382. RETURN
  44383. END
  44384. GO
  44385. /****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_GetUserTaskList] Script Date: 2024/1/12 11:01:14 ******/
  44386. SET ANSI_NULLS ON
  44387. GO
  44388. SET QUOTED_IDENTIFIER ON
  44389. GO
  44390. -- EXEC [WS_NoviceWelfare_GetUserTaskList]
  44391. -- @UserID = 10001
  44392. -- ==============================================
  44393. -- Author: wolf
  44394. -- Create Date: 2023-07-17
  44395. -- Mendor: wolf
  44396. -- Alter Date: 2023-07-17
  44397. -- Description: 新手福利 - 用户任务列表
  44398. -- ==============================================
  44399. CREATE PROCEDURE [dbo].[WS_NoviceWelfare_GetUserTaskList]
  44400. @UserID INT --用户ID
  44401. AS
  44402. SET NOCOUNT ON
  44403. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  44404. SET XACT_ABORT ON
  44405. BEGIN
  44406. SELECT
  44407. DayIndex, Scheduled, Status, UnlockDayIndex
  44408. FROM
  44409. [UserNoviceWelfare]
  44410. WHERE
  44411. UserID = @UserID
  44412. ORDER BY
  44413. DayIndex ASC
  44414. END
  44415. GO
  44416. /****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_GetUserTerms] Script Date: 2024/1/12 11:01:14 ******/
  44417. SET ANSI_NULLS ON
  44418. GO
  44419. SET QUOTED_IDENTIFIER ON
  44420. GO
  44421. -- EXEC [WS_NoviceWelfare_GetUserTerms]
  44422. -- ==============================================
  44423. -- Author: wolf
  44424. -- Create Date: 2014-01-21
  44425. -- Mendor: wolf
  44426. -- Alter Date: 2016-11-07
  44427. -- Description: 新手福利--获取已购买礼包的领取列表
  44428. -- ==============================================
  44429. CREATE PROCEDURE [dbo].[WS_NoviceWelfare_GetUserTerms]
  44430. @UserID INT --用户ID
  44431. AS
  44432. SET NOCOUNT ON
  44433. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44434. SET XACT_ABORT ON
  44435. BEGIN
  44436. SELECT
  44437. PackageId, TermIndex, ClaimDay
  44438. FROM
  44439. [UserGrowthTerm]
  44440. WHERE
  44441. UserID = @UserID
  44442. RETURN
  44443. END
  44444. GO
  44445. /****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_SetUserGiftPacks] Script Date: 2024/1/12 11:01:14 ******/
  44446. SET ANSI_NULLS ON
  44447. GO
  44448. SET QUOTED_IDENTIFIER ON
  44449. GO
  44450. -- EXEC [WS_NoviceWelfare_SetUserGiftPacks]
  44451. -- ==============================================
  44452. -- Author: wolf
  44453. -- Create Date: 2014-01-21
  44454. -- Mendor: wolf
  44455. -- Alter Date: 2016-11-07
  44456. -- Description: 新手福利--设置用户礼包
  44457. -- ==============================================
  44458. CREATE PROCEDURE [dbo].[WS_NoviceWelfare_SetUserGiftPacks]
  44459. @UserID INT, --用户ID
  44460. @PackageId INT, --礼包ID
  44461. @StartDay INT, --生成时间,用于显示倒计时
  44462. @Status TINYINT --用户的礼包状态
  44463. AS
  44464. SET NOCOUNT ON
  44465. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44466. SET XACT_ABORT ON
  44467. BEGIN
  44468. UPDATE
  44469. [UserGiftPack]
  44470. SET
  44471. StartDay = @StartDay, Status = @Status
  44472. WHERE
  44473. UserID = @UserID AND PackageId = @PackageId
  44474. IF(@@ROWCOUNT > 0)
  44475. RETURN
  44476. INSERT INTO [UserGiftPack]
  44477. (
  44478. UserID, PackageId, StartDay, Status
  44479. )
  44480. VALUES
  44481. (
  44482. @UserID, @PackageId, @StartDay, @Status
  44483. )
  44484. RETURN
  44485. END
  44486. GO
  44487. /****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_SetUserTerm] Script Date: 2024/1/12 11:01:14 ******/
  44488. SET ANSI_NULLS ON
  44489. GO
  44490. SET QUOTED_IDENTIFIER ON
  44491. GO
  44492. -- EXEC [WS_NoviceWelfare_SetUserTerm]
  44493. -- ==============================================
  44494. -- Author: wolf
  44495. -- Create Date: 2014-01-21
  44496. -- Mendor: wolf
  44497. -- Alter Date: 2016-11-07
  44498. -- Description: 新手福利--设置用户购买礼包
  44499. -- ==============================================
  44500. CREATE PROCEDURE [dbo].[WS_NoviceWelfare_SetUserTerm]
  44501. @UserID INT, --用户ID
  44502. @PackageId INT, --礼包ID
  44503. @TermIndex INT, --index
  44504. @ClaimDay INT --领取时间,0表示未领取
  44505. AS
  44506. SET NOCOUNT ON
  44507. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44508. SET XACT_ABORT ON
  44509. BEGIN
  44510. UPDATE
  44511. [UserGrowthTerm]
  44512. SET
  44513. ClaimDay = @ClaimDay
  44514. WHERE
  44515. UserID = @UserID AND PackageId = @PackageId AND TermIndex = @TermIndex
  44516. IF(@@ROWCOUNT > 0)
  44517. RETURN
  44518. INSERT INTO [UserGrowthTerm]
  44519. (
  44520. UserID, PackageId, TermIndex, ClaimDay
  44521. )
  44522. VALUES
  44523. (
  44524. @UserID, @PackageId, @TermIndex, @ClaimDay
  44525. )
  44526. RETURN
  44527. END
  44528. GO
  44529. /****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_UpdateUserTask] Script Date: 2024/1/12 11:01:14 ******/
  44530. SET ANSI_NULLS ON
  44531. GO
  44532. SET QUOTED_IDENTIFIER ON
  44533. GO
  44534. -- EXEC [WS_NoviceWelfare_UpdateUserTask]
  44535. -- @UserID = 10001,
  44536. -- @DayIndex = 1,
  44537. -- @Scheduled = 1,
  44538. -- @Status = 1,
  44539. -- @UnlockDayIndex = 19576
  44540. -- ==============================================
  44541. -- Author: wolf
  44542. -- Create Date: 2023-07-18
  44543. -- Mendor: wolf
  44544. -- Alter Date: 2023-07-18
  44545. -- Description: 新手福利 - 更新用户任务
  44546. -- ==============================================
  44547. CREATE PROCEDURE [dbo].[WS_NoviceWelfare_UpdateUserTask]
  44548. @UserID INT, --用户ID
  44549. @DayIndex INT, --天数索引
  44550. @Scheduled INT, --完成进度
  44551. @Status INT, --任务状态(0=未解锁,1=未完成,2=完成,3=已领取奖励)
  44552. @UnlockDayIndex SMALLINT -- 解锁天索引
  44553. AS
  44554. SET NOCOUNT ON
  44555. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  44556. SET XACT_ABORT ON
  44557. BEGIN
  44558. UPDATE
  44559. [UserNoviceWelfare]
  44560. SET
  44561. Scheduled = @Scheduled, Status = @Status, UnlockDayIndex = @UnlockDayIndex
  44562. WHERE
  44563. UserID = @UserID AND DayIndex = @DayIndex
  44564. IF(@@ROWCOUNT = 0)
  44565. BEGIN
  44566. INSERT INTO [UserNoviceWelfare]
  44567. (
  44568. UserID, DayIndex, Scheduled, Status, UnlockDayIndex
  44569. )
  44570. VALUES
  44571. (
  44572. @UserID, @DayIndex, @Scheduled, @Status, @UnlockDayIndex
  44573. )
  44574. END
  44575. RETURN
  44576. END
  44577. GO
  44578. /****** Object: StoredProcedure [dbo].[WS_Pay_Trigger] Script Date: 2024/1/12 11:01:14 ******/
  44579. SET ANSI_NULLS ON
  44580. GO
  44581. SET QUOTED_IDENTIFIER ON
  44582. GO
  44583. -- EXEC [WS_Pay_Trigger]
  44584. -- ==============================================
  44585. -- Author: wolf
  44586. -- Create Date: 2014-01-21
  44587. -- Mendor: wolf
  44588. -- Alter Date: 2016-11-07
  44589. -- Description: 充值触发事件
  44590. -- ==============================================
  44591. CREATE PROCEDURE [dbo].[WS_Pay_Trigger]
  44592. @UserID INT, --用户ID
  44593. @ProductID VARCHAR(32), --产品ID
  44594. @ShopType INT, --产品类型
  44595. @Price DECIMAL(18, 2) --价格
  44596. AS
  44597. SET NOCOUNT ON
  44598. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44599. SET XACT_ABORT ON
  44600. BEGIN
  44601. --获取用户充值产品
  44602. INSERT INTO [UserRechargeProduct](UserID, ProductID, ShopType, Crdate) VALUES(@UserID, @ProductID, @ShopType, GETDATE())
  44603. RETURN
  44604. END
  44605. GO
  44606. /****** Object: StoredProcedure [dbo].[WS_PrivateRoom_WriteHistory] Script Date: 2024/1/12 11:01:14 ******/
  44607. SET ANSI_NULLS ON
  44608. GO
  44609. SET QUOTED_IDENTIFIER ON
  44610. GO
  44611. -- EXEC [WS_PrivateRoom_WriteHistory]
  44612. -- ==============================================
  44613. -- Author: wolf
  44614. -- Create Date: 2016-07-21
  44615. -- Mendor: wolf
  44616. -- Alter Date: 2016-11-07
  44617. -- Description: 私人场写历史记录
  44618. -- ==============================================
  44619. CREATE PROCEDURE [dbo].[WS_PrivateRoom_WriteHistory]
  44620. @RoomNo VARCHAR(32), --房间号
  44621. @GameID INT, --游戏ID
  44622. @OwnerUserID INT, --创建者
  44623. @BeginTime INT, --开始时间
  44624. @EndTime INT, --结束时间
  44625. @TotalAwardAmount BIGINT, --奖金
  44626. @TotalFee BIGINT, --总费用(报名)
  44627. @TotalTax BIGINT, --总税收
  44628. @UserInfo VARCHAR(1024), --用户信息(椅子号1,用户ID1,报名费用1,税收1,奖金1;椅子号2,用户ID2,报名费用2,税收2,奖金2;)
  44629. @ExtInfo VARCHAR(1024), --扩展信息
  44630. @Crdate INT --创建时间
  44631. AS
  44632. SET NOCOUNT ON
  44633. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44634. SET XACT_ABORT ON
  44635. BEGIN
  44636. DECLARE @RoomID INT --房间ID
  44637. DECLARE @ChairNo INT --椅子号
  44638. DECLARE @UserID INT --用户ID
  44639. DECLARE @Fee BIGINT --费用(报名)
  44640. DECLARE @Tax BIGINT --税收
  44641. DECLARE @AwardAmount BIGINT --奖金
  44642. DECLARE @Score INT --积分
  44643. DECLARE @StartIndex INT --起始索引
  44644. DECLARE @EndIndex INT --截止索引
  44645. DECLARE @RoomCrdate DATETIME --房间创建时间
  44646. DECLARE @tmptable TABLE(
  44647. ChairNo INT NOT NULL, --椅子号
  44648. UserID INT NOT NULL, --用户ID
  44649. Fee BIGINT NOT NULL, --费用(报名)
  44650. Tax BIGINT NOT NULL, --税收
  44651. AwardAmount BIGINT NOT NULL, --奖金
  44652. Score INT NOT NULL --积分
  44653. )
  44654. SET @RoomCrdate = dbo.fn_StampToTime(@Crdate)
  44655. --房间记录
  44656. INSERT INTO [RoomHistory]
  44657. (
  44658. RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
  44659. TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
  44660. )
  44661. VALUES
  44662. (
  44663. @RoomNo, @GameID, @OwnerUserID, dbo.fn_StampToTime(@BeginTime), dbo.fn_StampToTime(@EndTime),
  44664. @TotalAwardAmount, @TotalFee, @TotalTax, @ExtInfo, @RoomCrdate
  44665. )
  44666. --房间ID
  44667. SET @RoomID = SCOPE_IDENTITY()
  44668. SET @StartIndex = 0
  44669. SET @EndIndex = 0
  44670. WHILE(1=1)
  44671. BEGIN
  44672. SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
  44673. IF(@EndIndex <= 0)
  44674. BREAK
  44675. SET @ChairNo = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
  44676. SET @StartIndex = @EndIndex + 1
  44677. SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
  44678. SET @UserID = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
  44679. SET @StartIndex = @EndIndex + 1
  44680. SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
  44681. SET @Fee = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
  44682. SET @StartIndex = @EndIndex + 1
  44683. SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
  44684. SET @Tax = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
  44685. SET @StartIndex = @EndIndex + 1
  44686. SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
  44687. SET @AwardAmount = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
  44688. SET @StartIndex = @EndIndex + 1
  44689. SET @EndIndex = CHARINDEX(';', @UserInfo, @StartIndex)
  44690. SET @Score = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
  44691. SET @StartIndex = @EndIndex + 1
  44692. --初始化表变量
  44693. INSERT INTO @tmptable
  44694. (
  44695. ChairNo, UserID, Fee, Tax, AwardAmount, Score
  44696. )
  44697. VALUES
  44698. (
  44699. @ChairNo, @UserID, @Fee, @Tax, @AwardAmount, @Score
  44700. )
  44701. END
  44702. --椅子记录
  44703. INSERT INTO [ChairHistory]
  44704. (
  44705. RoomID, ChairNo, UserID, Fee, Tax, AwardAmount, Crdate, Score
  44706. )
  44707. SELECT
  44708. @RoomID, ChairNo, UserID, Fee, Tax, AwardAmount, @RoomCrdate, Score
  44709. FROM
  44710. @tmptable
  44711. RETURN
  44712. END
  44713. GO
  44714. /****** Object: StoredProcedure [dbo].[WS_PrizePool_GetEnergy] Script Date: 2024/1/12 11:01:14 ******/
  44715. SET ANSI_NULLS ON
  44716. GO
  44717. SET QUOTED_IDENTIFIER ON
  44718. GO
  44719. -- EXEC [WS_PrizePool_GetEnergy]
  44720. -- ==============================================
  44721. -- Author: wolf
  44722. -- Create Date: 2014-01-21
  44723. -- Mendor: wolf
  44724. -- Alter Date: 2016-11-07
  44725. -- Description: 用户奖池能量
  44726. -- ==============================================
  44727. CREATE PROCEDURE [dbo].[WS_PrizePool_GetEnergy]
  44728. @UserID INT, --用户ID
  44729. @RoomName VARCHAR(32) --房间名称
  44730. AS
  44731. SET NOCOUNT ON
  44732. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44733. SET XACT_ABORT ON
  44734. BEGIN
  44735. SELECT Energy FROM [PrizePoolEnergy] WHERE UserID = @UserID AND RoomName = @RoomName
  44736. RETURN
  44737. END
  44738. GO
  44739. /****** Object: StoredProcedure [dbo].[WS_PrizePool_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  44740. SET ANSI_NULLS ON
  44741. GO
  44742. SET QUOTED_IDENTIFIER ON
  44743. GO
  44744. -- EXEC [WS_PrizePool_GetInfo]
  44745. -- ==============================================
  44746. -- Author: wolf
  44747. -- Create Date: 2014-01-21
  44748. -- Mendor: wolf
  44749. -- Alter Date: 2016-11-07
  44750. -- Description: 奖池信息
  44751. -- ==============================================
  44752. CREATE PROCEDURE [dbo].[WS_PrizePool_GetInfo]
  44753. @RoomName VARCHAR(32), --房间名称
  44754. @Pool INT OUTPUT --奖池
  44755. AS
  44756. SET NOCOUNT ON
  44757. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44758. SET XACT_ABORT ON
  44759. BEGIN
  44760. SET @Pool = 0
  44761. SELECT @Pool = Pool FROM [PrizePool] WHERE RoomName = @RoomName
  44762. RETURN
  44763. END
  44764. GO
  44765. /****** Object: StoredProcedure [dbo].[WS_PrizePool_ModifyEnergy] Script Date: 2024/1/12 11:01:14 ******/
  44766. SET ANSI_NULLS ON
  44767. GO
  44768. SET QUOTED_IDENTIFIER ON
  44769. GO
  44770. -- EXEC [WS_PrizePool_ModifyEnergy]
  44771. -- ==============================================
  44772. -- Author: wolf
  44773. -- Create Date: 2014-01-21
  44774. -- Mendor: wolf
  44775. -- Alter Date: 2016-11-07
  44776. -- Description: 用户奖池能量修改
  44777. -- ==============================================
  44778. CREATE PROCEDURE [dbo].[WS_PrizePool_ModifyEnergy]
  44779. @UserID INT, --用户ID
  44780. @RoomName VARCHAR(32), --房间名称
  44781. @Energy INT --能量
  44782. AS
  44783. SET NOCOUNT ON
  44784. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44785. SET XACT_ABORT ON
  44786. BEGIN
  44787. --修改
  44788. UPDATE [PrizePoolEnergy] SET Energy = @Energy WHERE UserID = @UserID AND RoomName = @RoomName
  44789. IF(@@ROWCOUNT > 0)
  44790. RETURN
  44791. --初始化
  44792. INSERT INTO [PrizePoolEnergy](UserID, RoomName, Energy) VALUES(@UserID, @RoomName, @Energy)
  44793. RETURN
  44794. END
  44795. GO
  44796. /****** Object: StoredProcedure [dbo].[WS_PrizePool_Update] Script Date: 2024/1/12 11:01:14 ******/
  44797. SET ANSI_NULLS ON
  44798. GO
  44799. SET QUOTED_IDENTIFIER ON
  44800. GO
  44801. -- EXEC [WS_PrizePool_Update]
  44802. -- ==============================================
  44803. -- Author: wolf
  44804. -- Create Date: 2014-01-21
  44805. -- Mendor: wolf
  44806. -- Alter Date: 2016-11-07
  44807. -- Description: 奖池更新
  44808. -- ==============================================
  44809. CREATE PROCEDURE [dbo].[WS_PrizePool_Update]
  44810. @RoomName VARCHAR(32), --房间名称
  44811. @Pool INT --奖池
  44812. AS
  44813. SET NOCOUNT ON
  44814. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44815. SET XACT_ABORT ON
  44816. BEGIN
  44817. --修改
  44818. UPDATE [PrizePool] SET Pool = @Pool WHERE RoomName = @RoomName
  44819. IF(@@ROWCOUNT > 0)
  44820. RETURN
  44821. --初始化
  44822. INSERT INTO [PrizePool](RoomName, Pool) VALUES(@RoomName, @Pool)
  44823. RETURN
  44824. END
  44825. GO
  44826. /****** Object: StoredProcedure [dbo].[WS_PrizeWheel_AddRecord] Script Date: 2024/1/12 11:01:14 ******/
  44827. SET ANSI_NULLS ON
  44828. GO
  44829. SET QUOTED_IDENTIFIER ON
  44830. GO
  44831. -- EXEC [WS_PrizeWheel_AddRecord]
  44832. -- ==============================================
  44833. -- Author: wolf
  44834. -- Create Date: 2014-09-09
  44835. -- Mendor: wolf
  44836. -- Alter Date: 2014-12-22
  44837. -- Description: 转盘添加记录
  44838. -- ==============================================
  44839. CREATE PROCEDURE [dbo].[WS_PrizeWheel_AddRecord]
  44840. @UserID INT, --用户ID
  44841. @WheelID INT, --转盘ID
  44842. @Items VARCHAR(256) --奖励
  44843. AS
  44844. SET NOCOUNT ON
  44845. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44846. SET XACT_ABORT ON
  44847. BEGIN
  44848. --添加记录
  44849. INSERT INTO [UserPrizeWheelHistory]
  44850. (
  44851. UserID, WheelID, Items, Crdate
  44852. )
  44853. VALUES
  44854. (
  44855. @UserID, @WheelID, @Items, GETDATE()
  44856. )
  44857. RETURN
  44858. END
  44859. GO
  44860. /****** Object: StoredProcedure [dbo].[WS_PrizeWheel_GetList] Script Date: 2024/1/12 11:01:14 ******/
  44861. SET ANSI_NULLS ON
  44862. GO
  44863. SET QUOTED_IDENTIFIER ON
  44864. GO
  44865. -- EXEC [WS_PrizeWheel_GetList]
  44866. -- ==============================================
  44867. -- Author: wolf
  44868. -- Create Date: 2014-01-21
  44869. -- Mendor: wolf
  44870. -- Alter Date: 2016-11-07
  44871. -- Description: 转盘奖励
  44872. -- ==============================================
  44873. CREATE PROCEDURE [dbo].[WS_PrizeWheel_GetList]
  44874. AS
  44875. SET NOCOUNT ON
  44876. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44877. SET XACT_ABORT ON
  44878. BEGIN
  44879. --返回信息
  44880. SELECT
  44881. Rid, Chance, Items
  44882. FROM
  44883. [PrizeWheel]
  44884. ORDER BY
  44885. Rid ASC
  44886. RETURN
  44887. END
  44888. GO
  44889. /****** Object: StoredProcedure [dbo].[WS_PrizeWheel_GetRecord] Script Date: 2024/1/12 11:01:14 ******/
  44890. SET ANSI_NULLS ON
  44891. GO
  44892. SET QUOTED_IDENTIFIER ON
  44893. GO
  44894. -- EXEC [WS_PrizeWheel_GetRecord]
  44895. -- ==============================================
  44896. -- Author: wolf
  44897. -- Create Date: 2014-09-09
  44898. -- Mendor: wolf
  44899. -- Alter Date: 2014-12-22
  44900. -- Description: 转盘获取记录
  44901. -- ==============================================
  44902. CREATE PROCEDURE [dbo].[WS_PrizeWheel_GetRecord]
  44903. AS
  44904. SET NOCOUNT ON
  44905. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44906. SET XACT_ABORT ON
  44907. BEGIN
  44908. --返回信息
  44909. SELECT TOP 50
  44910. h.UserID, u.NickName, h.WheelID, h.Items,
  44911. CONVERT(VARCHAR(20), h.Crdate, 120) AS Crdate
  44912. FROM
  44913. [UserPrizeWheelHistory] h INNER JOIN [AllUser] u ON h.UserID = u.UserID
  44914. ORDER BY
  44915. h.Rid DESC
  44916. RETURN
  44917. END
  44918. GO
  44919. /****** Object: StoredProcedure [dbo].[WS_PrizeWheel_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
  44920. SET ANSI_NULLS ON
  44921. GO
  44922. SET QUOTED_IDENTIFIER ON
  44923. GO
  44924. -- EXEC [WS_PrizeWheel_GetUserInfo]
  44925. -- ==============================================
  44926. -- Author: wolf
  44927. -- Create Date: 2014-09-09
  44928. -- Mendor: wolf
  44929. -- Alter Date: 2014-12-22
  44930. -- Description: 转盘用户信息
  44931. -- ==============================================
  44932. CREATE PROCEDURE [dbo].[WS_PrizeWheel_GetUserInfo]
  44933. @UserID INT --用户ID
  44934. AS
  44935. SET NOCOUNT ON
  44936. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44937. SET XACT_ABORT ON
  44938. BEGIN
  44939. --获取次数
  44940. SELECT Times, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate FROM [UserPrizeWheel] WHERE UserID = @UserID
  44941. RETURN
  44942. END
  44943. GO
  44944. /****** Object: StoredProcedure [dbo].[WS_PrizeWheel_UpdateUserInfo] Script Date: 2024/1/12 11:01:14 ******/
  44945. SET ANSI_NULLS ON
  44946. GO
  44947. SET QUOTED_IDENTIFIER ON
  44948. GO
  44949. -- EXEC [WS_PrizeWheel_UpdateUserInfo]
  44950. -- ==============================================
  44951. -- Author: wolf
  44952. -- Create Date: 2014-09-09
  44953. -- Mendor: wolf
  44954. -- Alter Date: 2014-12-22
  44955. -- Description: 修改转盘用户信息
  44956. -- ==============================================
  44957. CREATE PROCEDURE [dbo].[WS_PrizeWheel_UpdateUserInfo]
  44958. @UserID INT, --用户ID
  44959. @Times INT --操作次数
  44960. AS
  44961. SET NOCOUNT ON
  44962. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  44963. SET XACT_ABORT ON
  44964. BEGIN
  44965. --更新信息
  44966. UPDATE
  44967. [UserPrizeWheel]
  44968. SET
  44969. Times = @Times, Crdate = GETDATE()
  44970. WHERE
  44971. UserID = @UserID
  44972. IF(@@ROWCOUNT = 0)
  44973. BEGIN
  44974. --生成转盘信息
  44975. INSERT INTO [UserPrizeWheel](UserID, Times, Crdate) VALUES(@UserID, @Times, GETDATE())
  44976. END
  44977. RETURN
  44978. END
  44979. GO
  44980. /****** Object: StoredProcedure [dbo].[WS_Purchase_Bet] Script Date: 2024/1/12 11:01:14 ******/
  44981. SET ANSI_NULLS ON
  44982. GO
  44983. SET QUOTED_IDENTIFIER ON
  44984. GO
  44985. -- EXEC [WS_Purchase_Bet]
  44986. -- ==============================================
  44987. -- Author: wolf
  44988. -- Create Date: 2015-02-06
  44989. -- Mendor: wolf
  44990. -- Alter Date: 2016-09-11
  44991. -- Description: 100购活动抽奖
  44992. -- ==============================================
  44993. CREATE PROCEDURE [dbo].[WS_Purchase_Bet]
  44994. @UserID INT, --用户ID
  44995. @SN INT, --期数
  44996. @Number INT --中奖码
  44997. AS
  44998. SET NOCOUNT ON
  44999. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45000. SET XACT_ABORT ON
  45001. BEGIN
  45002. DECLARE @RetCode TINYINT
  45003. SET @RetCode = 0
  45004. INSERT INTO [UserPurchase]
  45005. (
  45006. UserID, SN, Number
  45007. )
  45008. VALUES
  45009. (
  45010. @UserID, @SN, @Number
  45011. )
  45012. IF(@@ROWCOUNT = 0)
  45013. BEGIN
  45014. SELECT @RetCode AS RetCode
  45015. RETURN
  45016. END
  45017. SET @RetCode = 1
  45018. SELECT @RetCode AS RetCode
  45019. RETURN
  45020. END
  45021. GO
  45022. /****** Object: StoredProcedure [dbo].[WS_Purchase_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  45023. SET ANSI_NULLS ON
  45024. GO
  45025. SET QUOTED_IDENTIFIER ON
  45026. GO
  45027. -- EXEC [WS_Purchase_GetInfo]
  45028. -- ==============================================
  45029. -- Author: wolf
  45030. -- Create Date: 2015-02-06
  45031. -- Mendor: wolf
  45032. -- Alter Date: 2016-09-11
  45033. -- Description: 100购活动信息
  45034. -- ==============================================
  45035. CREATE PROCEDURE [dbo].[WS_Purchase_GetInfo]
  45036. AS
  45037. SET NOCOUNT ON
  45038. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45039. SET XACT_ABORT ON
  45040. BEGIN
  45041. SELECT TOP 1
  45042. SN, CONVERT(CHAR(23), BeginTime, 121) AS BeginTime,
  45043. CONVERT(CHAR(23), EndTime, 121) AS EndTime, LuckNumber, Status
  45044. FROM
  45045. [Purchase]
  45046. WHERE
  45047. Status > 0
  45048. ORDER BY
  45049. SN DESC
  45050. RETURN
  45051. END
  45052. GO
  45053. /****** Object: StoredProcedure [dbo].[WS_Purchase_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
  45054. SET ANSI_NULLS ON
  45055. GO
  45056. SET QUOTED_IDENTIFIER ON
  45057. GO
  45058. -- EXEC [WS_Purchase_GetUserInfo]
  45059. -- ==============================================
  45060. -- Author: wolf
  45061. -- Create Date: 2015-02-06
  45062. -- Mendor: wolf
  45063. -- Alter Date: 2016-09-11
  45064. -- Description: 100购活动用户信息
  45065. -- ==============================================
  45066. CREATE PROCEDURE [dbo].[WS_Purchase_GetUserInfo]
  45067. @SN INT --期数
  45068. AS
  45069. SET NOCOUNT ON
  45070. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45071. SET XACT_ABORT ON
  45072. BEGIN
  45073. SELECT
  45074. UserID, Number
  45075. FROM
  45076. [UserPurchase]
  45077. WHERE
  45078. SN = @SN
  45079. ORDER BY
  45080. Rid ASC
  45081. RETURN
  45082. END
  45083. GO
  45084. /****** Object: StoredProcedure [dbo].[WS_Purchase_Open] Script Date: 2024/1/12 11:01:14 ******/
  45085. SET ANSI_NULLS ON
  45086. GO
  45087. SET QUOTED_IDENTIFIER ON
  45088. GO
  45089. -- EXEC [WS_Purchase_Open]
  45090. -- ==============================================
  45091. -- Author: wolf
  45092. -- Create Date: 2015-02-06
  45093. -- Mendor: wolf
  45094. -- Alter Date: 2016-09-11
  45095. -- Description: 100购活动开启
  45096. -- ==============================================
  45097. CREATE PROCEDURE [dbo].[WS_Purchase_Open]
  45098. @SN INT, --期数
  45099. @BeginTime DATETIME, --开始时间
  45100. @EndTime DATETIME, --截止时间
  45101. @LuckNumber INT, --中奖码
  45102. @Status INT --状态(0=空闲 1=活动中 2=派奖 3=结束)
  45103. AS
  45104. SET NOCOUNT ON
  45105. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45106. SET XACT_ABORT ON
  45107. BEGIN
  45108. DECLARE @RetCode TINYINT
  45109. SET @RetCode = 0
  45110. INSERT INTO [Purchase]
  45111. (
  45112. SN, BeginTime, EndTime, LuckNumber, Status
  45113. )
  45114. VALUES
  45115. (
  45116. @SN, @BeginTime, @EndTime, @LuckNumber, @Status
  45117. )
  45118. IF(@@ROWCOUNT = 0)
  45119. BEGIN
  45120. SELECT @RetCode AS RetCode
  45121. RETURN
  45122. END
  45123. SET @RetCode = 1
  45124. SELECT @RetCode AS RetCode
  45125. RETURN
  45126. END
  45127. GO
  45128. /****** Object: StoredProcedure [dbo].[WS_Purchase_Update] Script Date: 2024/1/12 11:01:14 ******/
  45129. SET ANSI_NULLS ON
  45130. GO
  45131. SET QUOTED_IDENTIFIER ON
  45132. GO
  45133. -- EXEC [WS_Purchase_Update]
  45134. -- ==============================================
  45135. -- Author: wolf
  45136. -- Create Date: 2015-02-06
  45137. -- Mendor: wolf
  45138. -- Alter Date: 2016-09-11
  45139. -- Description: 100购活动更新
  45140. -- ==============================================
  45141. CREATE PROCEDURE [dbo].[WS_Purchase_Update]
  45142. @SN INT, --期数
  45143. @LuckNumber INT, --中奖码
  45144. @Status INT --状态(0=空闲 1=活动中 2=派奖 3=结束)
  45145. AS
  45146. SET NOCOUNT ON
  45147. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45148. SET XACT_ABORT ON
  45149. BEGIN
  45150. DECLARE @RetCode TINYINT
  45151. SET @RetCode = 0
  45152. UPDATE
  45153. [Purchase]
  45154. SET
  45155. LuckNumber = @LuckNumber, Status = @Status
  45156. WHERE
  45157. SN = @SN
  45158. IF(@@ROWCOUNT = 0)
  45159. BEGIN
  45160. SELECT @RetCode AS RetCode
  45161. RETURN
  45162. END
  45163. SET @RetCode = 1
  45164. SELECT @RetCode AS RetCode
  45165. RETURN
  45166. END
  45167. GO
  45168. /****** Object: StoredProcedure [dbo].[WS_Rank_Award] Script Date: 2024/1/12 11:01:14 ******/
  45169. SET ANSI_NULLS ON
  45170. GO
  45171. SET QUOTED_IDENTIFIER ON
  45172. GO
  45173. -- EXEC [WS_Rank_Award]
  45174. -- ==============================================
  45175. -- Author: wolf
  45176. -- Create Date: 2014-01-21
  45177. -- Mendor: wolf
  45178. -- Alter Date: 2016-11-07
  45179. -- Description: 领取榜单奖励
  45180. -- ==============================================
  45181. CREATE PROCEDURE [dbo].[WS_Rank_Award]
  45182. @UserID INT, --用户ID
  45183. @RankType TINYINT, --榜单类型
  45184. @DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
  45185. AS
  45186. SET NOCOUNT ON
  45187. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45188. SET XACT_ABORT ON
  45189. BEGIN
  45190. --2=赢金榜
  45191. IF(@RankType = 2)
  45192. BEGIN
  45193. EXEC [WS_Rank_AwardWin] @UserID = @UserID, @DoubleFlag = @DoubleFlag
  45194. RETURN
  45195. END
  45196. --4=积分榜
  45197. ELSE IF(@RankType = 4)
  45198. BEGIN
  45199. EXEC [WS_Rank_AwardScore] @UserID = @UserID, @DoubleFlag = @DoubleFlag
  45200. RETURN
  45201. END
  45202. --5=单局最大赢金榜
  45203. ELSE IF(@RankType = 5)
  45204. BEGIN
  45205. EXEC [WS_Rank_AwardMaxWin] @UserID = @UserID, @DoubleFlag = @DoubleFlag
  45206. RETURN
  45207. END
  45208. --6=视频榜
  45209. ELSE IF(@RankType = 6)
  45210. BEGIN
  45211. EXEC [WS_Rank_AwardVideo] @UserID = @UserID, @DoubleFlag = @DoubleFlag
  45212. RETURN
  45213. END
  45214. --7=收徒榜
  45215. ELSE IF(@RankType = 7)
  45216. BEGIN
  45217. EXEC [WS_Rank_AwardTeacher] @UserID = @UserID, @DoubleFlag = @DoubleFlag
  45218. RETURN
  45219. END
  45220. SELECT 11 AS RetCode
  45221. RETURN
  45222. END
  45223. GO
  45224. /****** Object: StoredProcedure [dbo].[WS_Rank_AwardMaxWin] Script Date: 2024/1/12 11:01:14 ******/
  45225. SET ANSI_NULLS ON
  45226. GO
  45227. SET QUOTED_IDENTIFIER ON
  45228. GO
  45229. -- EXEC [WS_Rank_AwardMaxWin]
  45230. -- ==============================================
  45231. -- Author: wolf
  45232. -- Create Date: 2014-01-21
  45233. -- Mendor: wolf
  45234. -- Alter Date: 2016-11-07
  45235. -- Description: 领取单次最大赢金榜奖励
  45236. -- ==============================================
  45237. CREATE PROCEDURE [dbo].[WS_Rank_AwardMaxWin]
  45238. @UserID INT, --用户ID
  45239. @DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
  45240. AS
  45241. SET NOCOUNT ON
  45242. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45243. SET XACT_ABORT ON
  45244. BEGIN
  45245. DECLARE @RetCode TINYINT --操作结果
  45246. DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
  45247. DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
  45248. SET @RetCode = 0
  45249. --返回信息
  45250. SELECT
  45251. @IsGift = IsGift, @IsDouble = IsDouble
  45252. FROM
  45253. [MaxWinRank]
  45254. WHERE
  45255. UserID = @UserID
  45256. IF(@@ROWCOUNT = 0)
  45257. BEGIN
  45258. SET @RetCode = 11
  45259. SELECT @RetCode AS RetCode
  45260. RETURN
  45261. END
  45262. --已经领取过
  45263. IF(@IsGift = 2 AND @IsDouble = 2)
  45264. BEGIN
  45265. SET @RetCode = 12
  45266. SELECT @RetCode AS RetCode
  45267. RETURN
  45268. END
  45269. --已经领取过
  45270. IF(@DoubleFlag = 0 AND @IsGift = 2)
  45271. BEGIN
  45272. SET @RetCode = 12
  45273. SELECT @RetCode AS RetCode
  45274. RETURN
  45275. END
  45276. --已经领取过
  45277. IF(@DoubleFlag = 1 AND @IsDouble = 2)
  45278. BEGIN
  45279. SET @RetCode = 12
  45280. SELECT @RetCode AS RetCode
  45281. RETURN
  45282. END
  45283. --更新领取状态
  45284. UPDATE
  45285. [MaxWinRank]
  45286. SET
  45287. IsGift = 2,
  45288. IsDouble = CASE
  45289. WHEN @DoubleFlag = 1 THEN 2
  45290. ELSE IsDouble
  45291. END
  45292. WHERE
  45293. UserID = @UserID
  45294. --返回信息
  45295. SET @RetCode = 1
  45296. SELECT @RetCode AS RetCode
  45297. RETURN
  45298. END
  45299. GO
  45300. /****** Object: StoredProcedure [dbo].[WS_Rank_AwardScore] Script Date: 2024/1/12 11:01:14 ******/
  45301. SET ANSI_NULLS ON
  45302. GO
  45303. SET QUOTED_IDENTIFIER ON
  45304. GO
  45305. -- EXEC [WS_Rank_AwardScore]
  45306. -- ==============================================
  45307. -- Author: wolf
  45308. -- Create Date: 2014-01-21
  45309. -- Mendor: wolf
  45310. -- Alter Date: 2016-11-07
  45311. -- Description: 领取积分榜奖励
  45312. -- ==============================================
  45313. CREATE PROCEDURE [dbo].[WS_Rank_AwardScore]
  45314. @UserID INT, --用户ID
  45315. @DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
  45316. AS
  45317. SET NOCOUNT ON
  45318. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45319. SET XACT_ABORT ON
  45320. BEGIN
  45321. DECLARE @RetCode TINYINT --操作结果
  45322. DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
  45323. DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
  45324. SET @RetCode = 0
  45325. --返回信息
  45326. SELECT
  45327. @IsGift = IsGift, @IsDouble = IsDouble
  45328. FROM
  45329. [ScoreRank]
  45330. WHERE
  45331. UserID = @UserID
  45332. IF(@@ROWCOUNT = 0)
  45333. BEGIN
  45334. SET @RetCode = 11
  45335. SELECT @RetCode AS RetCode
  45336. RETURN
  45337. END
  45338. --已经领取过
  45339. IF(@IsGift = 2 AND @IsDouble = 2)
  45340. BEGIN
  45341. SET @RetCode = 12
  45342. SELECT @RetCode AS RetCode
  45343. RETURN
  45344. END
  45345. --已经领取过
  45346. IF(@DoubleFlag = 0 AND @IsGift = 2)
  45347. BEGIN
  45348. SET @RetCode = 12
  45349. SELECT @RetCode AS RetCode
  45350. RETURN
  45351. END
  45352. --已经领取过
  45353. IF(@DoubleFlag = 1 AND @IsDouble = 2)
  45354. BEGIN
  45355. SET @RetCode = 12
  45356. SELECT @RetCode AS RetCode
  45357. RETURN
  45358. END
  45359. --更新领取状态
  45360. UPDATE
  45361. [ScoreRank]
  45362. SET
  45363. IsGift = 2,
  45364. IsDouble = CASE
  45365. WHEN @DoubleFlag = 1 THEN 2
  45366. ELSE IsDouble
  45367. END
  45368. WHERE
  45369. UserID = @UserID
  45370. --返回信息
  45371. SET @RetCode = 1
  45372. SELECT @RetCode AS RetCode
  45373. RETURN
  45374. END
  45375. GO
  45376. /****** Object: StoredProcedure [dbo].[WS_Rank_AwardTeacher] Script Date: 2024/1/12 11:01:14 ******/
  45377. SET ANSI_NULLS ON
  45378. GO
  45379. SET QUOTED_IDENTIFIER ON
  45380. GO
  45381. -- EXEC [WS_Rank_AwardTeacher]
  45382. -- ==============================================
  45383. -- Author: wolf
  45384. -- Create Date: 2014-01-21
  45385. -- Mendor: wolf
  45386. -- Alter Date: 2016-11-07
  45387. -- Description: 领取收徒榜奖励
  45388. -- ==============================================
  45389. CREATE PROCEDURE [dbo].[WS_Rank_AwardTeacher]
  45390. @UserID INT, --用户ID
  45391. @DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
  45392. AS
  45393. SET NOCOUNT ON
  45394. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45395. SET XACT_ABORT ON
  45396. BEGIN
  45397. DECLARE @RetCode TINYINT --操作结果
  45398. DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
  45399. DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
  45400. SET @RetCode = 0
  45401. --返回信息
  45402. SELECT
  45403. @IsGift = IsGift, @IsDouble = IsDouble
  45404. FROM
  45405. [TeacherRank]
  45406. WHERE
  45407. UserID = @UserID
  45408. IF(@@ROWCOUNT = 0)
  45409. BEGIN
  45410. SET @RetCode = 11
  45411. SELECT @RetCode AS RetCode
  45412. RETURN
  45413. END
  45414. --已经领取过
  45415. IF(@IsGift = 2 AND @IsDouble = 2)
  45416. BEGIN
  45417. SET @RetCode = 12
  45418. SELECT @RetCode AS RetCode
  45419. RETURN
  45420. END
  45421. --已经领取过
  45422. IF(@DoubleFlag = 0 AND @IsGift = 2)
  45423. BEGIN
  45424. SET @RetCode = 12
  45425. SELECT @RetCode AS RetCode
  45426. RETURN
  45427. END
  45428. --已经领取过
  45429. IF(@DoubleFlag = 1 AND @IsDouble = 2)
  45430. BEGIN
  45431. SET @RetCode = 12
  45432. SELECT @RetCode AS RetCode
  45433. RETURN
  45434. END
  45435. --更新领取状态
  45436. UPDATE
  45437. [TeacherRank]
  45438. SET
  45439. IsGift = 2,
  45440. IsDouble = CASE
  45441. WHEN @DoubleFlag = 1 THEN 2
  45442. ELSE IsDouble
  45443. END
  45444. WHERE
  45445. UserID = @UserID
  45446. --返回信息
  45447. SET @RetCode = 1
  45448. SELECT @RetCode AS RetCode
  45449. RETURN
  45450. END
  45451. GO
  45452. /****** Object: StoredProcedure [dbo].[WS_Rank_AwardVideo] Script Date: 2024/1/12 11:01:14 ******/
  45453. SET ANSI_NULLS ON
  45454. GO
  45455. SET QUOTED_IDENTIFIER ON
  45456. GO
  45457. -- EXEC [WS_Rank_AwardVideo]
  45458. -- ==============================================
  45459. -- Author: wolf
  45460. -- Create Date: 2014-01-21
  45461. -- Mendor: wolf
  45462. -- Alter Date: 2016-11-07
  45463. -- Description: 领取视频榜奖励
  45464. -- ==============================================
  45465. CREATE PROCEDURE [dbo].[WS_Rank_AwardVideo]
  45466. @UserID INT, --用户ID
  45467. @DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
  45468. AS
  45469. SET NOCOUNT ON
  45470. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45471. SET XACT_ABORT ON
  45472. BEGIN
  45473. DECLARE @RetCode TINYINT --操作结果
  45474. DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
  45475. DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
  45476. SET @RetCode = 0
  45477. --返回信息
  45478. SELECT
  45479. @IsGift = IsGift, @IsDouble = IsDouble
  45480. FROM
  45481. [VideoRank]
  45482. WHERE
  45483. UserID = @UserID
  45484. IF(@@ROWCOUNT = 0)
  45485. BEGIN
  45486. SET @RetCode = 11
  45487. SELECT @RetCode AS RetCode
  45488. RETURN
  45489. END
  45490. --已经领取过
  45491. IF(@IsGift = 2 AND @IsDouble = 2)
  45492. BEGIN
  45493. SET @RetCode = 12
  45494. SELECT @RetCode AS RetCode
  45495. RETURN
  45496. END
  45497. --已经领取过
  45498. IF(@DoubleFlag = 0 AND @IsGift = 2)
  45499. BEGIN
  45500. SET @RetCode = 12
  45501. SELECT @RetCode AS RetCode
  45502. RETURN
  45503. END
  45504. --已经领取过
  45505. IF(@DoubleFlag = 1 AND @IsDouble = 2)
  45506. BEGIN
  45507. SET @RetCode = 12
  45508. SELECT @RetCode AS RetCode
  45509. RETURN
  45510. END
  45511. --更新领取状态
  45512. UPDATE
  45513. [VideoRank]
  45514. SET
  45515. IsGift = 2,
  45516. IsDouble = CASE
  45517. WHEN @DoubleFlag = 1 THEN 2
  45518. ELSE IsDouble
  45519. END
  45520. WHERE
  45521. UserID = @UserID
  45522. --返回信息
  45523. SET @RetCode = 1
  45524. SELECT @RetCode AS RetCode
  45525. RETURN
  45526. END
  45527. GO
  45528. /****** Object: StoredProcedure [dbo].[WS_Rank_AwardWin] Script Date: 2024/1/12 11:01:14 ******/
  45529. SET ANSI_NULLS ON
  45530. GO
  45531. SET QUOTED_IDENTIFIER ON
  45532. GO
  45533. -- EXEC [WS_Rank_AwardWin]
  45534. -- ==============================================
  45535. -- Author: wolf
  45536. -- Create Date: 2014-01-21
  45537. -- Mendor: wolf
  45538. -- Alter Date: 2016-11-07
  45539. -- Description: 领取积分榜奖励
  45540. -- ==============================================
  45541. CREATE PROCEDURE [dbo].[WS_Rank_AwardWin]
  45542. @UserID INT, --用户ID
  45543. @DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
  45544. AS
  45545. SET NOCOUNT ON
  45546. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45547. SET XACT_ABORT ON
  45548. BEGIN
  45549. DECLARE @RetCode TINYINT --操作结果
  45550. DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
  45551. DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
  45552. SET @RetCode = 0
  45553. --返回信息
  45554. SELECT
  45555. @IsGift = IsGift, @IsDouble = IsDouble
  45556. FROM
  45557. [WinRank]
  45558. WHERE
  45559. UserID = @UserID
  45560. IF(@@ROWCOUNT = 0)
  45561. BEGIN
  45562. SET @RetCode = 11
  45563. SELECT @RetCode AS RetCode
  45564. RETURN
  45565. END
  45566. --已经领取过
  45567. IF(@IsGift = 2 AND @IsDouble = 2)
  45568. BEGIN
  45569. SET @RetCode = 12
  45570. SELECT @RetCode AS RetCode
  45571. RETURN
  45572. END
  45573. --已经领取过
  45574. IF(@DoubleFlag = 0 AND @IsGift = 2)
  45575. BEGIN
  45576. SET @RetCode = 12
  45577. SELECT @RetCode AS RetCode
  45578. RETURN
  45579. END
  45580. --已经领取过
  45581. IF(@DoubleFlag = 1 AND @IsDouble = 2)
  45582. BEGIN
  45583. SET @RetCode = 12
  45584. SELECT @RetCode AS RetCode
  45585. RETURN
  45586. END
  45587. --更新领取状态
  45588. UPDATE
  45589. [WinRank]
  45590. SET
  45591. IsGift = 2,
  45592. IsDouble = CASE
  45593. WHEN @DoubleFlag = 1 THEN 2
  45594. ELSE IsDouble
  45595. END
  45596. WHERE
  45597. UserID = @UserID
  45598. --返回信息
  45599. SET @RetCode = 1
  45600. SELECT @RetCode AS RetCode
  45601. RETURN
  45602. END
  45603. GO
  45604. /****** Object: StoredProcedure [dbo].[WS_Rank_GetAwardList] Script Date: 2024/1/12 11:01:14 ******/
  45605. SET ANSI_NULLS ON
  45606. GO
  45607. SET QUOTED_IDENTIFIER ON
  45608. GO
  45609. -- EXEC [WS_Rank_GetAwardList]
  45610. -- ==============================================
  45611. -- Author: wolf
  45612. -- Create Date: 2014-01-21
  45613. -- Mendor: wolf
  45614. -- Alter Date: 2016-11-07
  45615. -- Description: 榜单奖励
  45616. -- ==============================================
  45617. CREATE PROCEDURE [dbo].[WS_Rank_GetAwardList]
  45618. AS
  45619. SET NOCOUNT ON
  45620. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45621. SET XACT_ABORT ON
  45622. BEGIN
  45623. SELECT
  45624. RankType, Rank, Tools
  45625. FROM
  45626. [RankAward]
  45627. ORDER BY
  45628. RankType ASC, Rank ASC, AwardID ASC
  45629. RETURN
  45630. END
  45631. GO
  45632. /****** Object: StoredProcedure [dbo].[WS_Rank_GetBadgePoints] Script Date: 2024/1/12 11:01:14 ******/
  45633. SET ANSI_NULLS ON
  45634. GO
  45635. SET QUOTED_IDENTIFIER ON
  45636. GO
  45637. -- EXEC [WS_Rank_GetBadgePoints]
  45638. -- ==============================================
  45639. -- Author: wolf
  45640. -- Create Date: 2023-07-24
  45641. -- Mendor: wolf
  45642. -- Alter Date: 2023-07-24
  45643. -- Description: 获取徽章点数
  45644. -- ==============================================
  45645. CREATE PROCEDURE [dbo].[WS_Rank_GetBadgePoints]
  45646. @UserID INT, --用户ID
  45647. @RankType INT --榜单类型
  45648. AS
  45649. SET NOCOUNT ON
  45650. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45651. SET XACT_ABORT ON
  45652. BEGIN
  45653. DECLARE @PointsAmount BIGINT --徽章点数
  45654. --5=徽章榜
  45655. IF(@RankType = 5)
  45656. BEGIN
  45657. SELECT
  45658. @PointsAmount = SUM(Points)
  45659. FROM
  45660. [UserBadge]
  45661. WHERE
  45662. UserID = @UserID AND Points > 0
  45663. END
  45664. SET @PointsAmount = ISNULL(@PointsAmount, 0)
  45665. --返回信息
  45666. SELECT @PointsAmount AS PointsAmount
  45667. RETURN
  45668. END
  45669. GO
  45670. /****** Object: StoredProcedure [dbo].[WS_Rank_GetCharm] Script Date: 2024/1/12 11:01:14 ******/
  45671. SET ANSI_NULLS ON
  45672. GO
  45673. SET QUOTED_IDENTIFIER ON
  45674. GO
  45675. -- EXEC [WS_Rank_GetCharm]
  45676. -- ==============================================
  45677. -- Author: wolf
  45678. -- Create Date: 2023-07-24
  45679. -- Mendor: wolf
  45680. -- Alter Date: 2023-07-24
  45681. -- Description: 获取榜单魅力值
  45682. -- ==============================================
  45683. CREATE PROCEDURE [dbo].[WS_Rank_GetCharm]
  45684. @UserID INT, --用户ID
  45685. @RankType INT --榜单类型
  45686. AS
  45687. SET NOCOUNT ON
  45688. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45689. SET XACT_ABORT ON
  45690. BEGIN
  45691. DECLARE @CurrTime DATETIME --系统当前时间
  45692. DECLARE @DateFlag SMALLDATETIME --日期标识
  45693. DECLARE @TimeFlag SMALLDATETIME --日期标识
  45694. DECLARE @WeekFlag SMALLDATETIME --周开始
  45695. DECLARE @MonthFlag SMALLDATETIME --月开始
  45696. DECLARE @EndFlag SMALLDATETIME --截止时间
  45697. DECLARE @CharmAmount BIGINT --魅力值
  45698. SET @CurrTime = GETDATE()
  45699. SET @TimeFlag = DATEADD(MINUTE, -2, @CurrTime)
  45700. SET @DateFlag = CONVERT(CHAR(10), @TimeFlag, 120)
  45701. SET @MonthFlag = CONVERT(CHAR(8), @TimeFlag, 120) + '01'
  45702. --本周日
  45703. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) + 7, @TimeFlag))
  45704. --本周日还没到,取上周日日期
  45705. IF(@WeekFlag > @DateFlag)
  45706. BEGIN
  45707. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) - 0, @TimeFlag))
  45708. END
  45709. --8=魅力日榜
  45710. IF(@RankType = 8)
  45711. BEGIN
  45712. SELECT
  45713. @CharmAmount = SUM(Charm)
  45714. FROM
  45715. [UserCharmHistory]
  45716. WHERE
  45717. DateFlag = @DateFlag AND UserID = @UserID AND Charm > 0
  45718. END
  45719. --9=魅力周榜
  45720. ELSE IF(@RankType = 9)
  45721. BEGIN
  45722. SELECT
  45723. @CharmAmount = SUM(Charm)
  45724. FROM
  45725. [UserCharmHistory]
  45726. WHERE
  45727. DateFlag >= @WeekFlag AND DateFlag < @EndFlag AND UserID = @UserID AND Charm > 0
  45728. END
  45729. --10=魅力月榜
  45730. ELSE IF(@RankType = 10)
  45731. BEGIN
  45732. SELECT
  45733. @CharmAmount = SUM(Charm)
  45734. FROM
  45735. [UserCharmHistory]
  45736. WHERE
  45737. DateFlag >= @MonthFlag AND DateFlag < @EndFlag AND UserID = @UserID AND Charm > 0
  45738. END
  45739. SET @CharmAmount = ISNULL(@CharmAmount, 0)
  45740. --返回信息
  45741. SELECT @CharmAmount AS CharmAmount
  45742. RETURN
  45743. END
  45744. GO
  45745. /****** Object: StoredProcedure [dbo].[WS_Rank_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  45746. SET ANSI_NULLS ON
  45747. GO
  45748. SET QUOTED_IDENTIFIER ON
  45749. GO
  45750. -- EXEC [WS_Rank_GetInfo]
  45751. -- ==============================================
  45752. -- Author: wolf
  45753. -- Create Date: 2014-01-21
  45754. -- Mendor: wolf
  45755. -- Alter Date: 2016-11-07
  45756. -- Description: 榜单信息
  45757. -- ==============================================
  45758. CREATE PROCEDURE [dbo].[WS_Rank_GetInfo]
  45759. @UserID INT, --用户ID
  45760. @RankType INT --排行榜类型
  45761. AS
  45762. SET NOCOUNT ON
  45763. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45764. SET XACT_ABORT ON
  45765. BEGIN
  45766. DECLARE @CurrTime DATETIME --系统当前时间
  45767. DECLARE @DateFlag SMALLDATETIME --日期标识
  45768. DECLARE @TimeFlag SMALLDATETIME --日期标识
  45769. DECLARE @WeekFlag SMALLDATETIME --周开始
  45770. DECLARE @MonthFlag SMALLDATETIME --月开始
  45771. DECLARE @Amount BIGINT --数额
  45772. SET @CurrTime = GETDATE()
  45773. SET @TimeFlag = DATEADD(MINUTE, -2, @CurrTime)
  45774. SET @DateFlag = CONVERT(CHAR(10), @TimeFlag, 120)
  45775. SET @MonthFlag = CONVERT(CHAR(8), @TimeFlag, 120) + '01'
  45776. --本周日
  45777. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) + 7, @TimeFlag))
  45778. --本周日还没到,取上周日日期
  45779. IF(@WeekFlag > @DateFlag)
  45780. BEGIN
  45781. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) - 0, @TimeFlag))
  45782. END
  45783. --2=每日赚金榜
  45784. IF(@RankType = 2)
  45785. BEGIN
  45786. SELECT
  45787. @Amount = SUM(WinAmount)
  45788. FROM
  45789. [DailyBetStat]
  45790. WHERE
  45791. DateFlag = @DateFlag AND UserID = @UserID AND WinAmount > 0
  45792. END
  45793. --3=每周赚金榜
  45794. ELSE IF(@RankType = 3)
  45795. BEGIN
  45796. SELECT
  45797. @Amount = SUM(WinAmount)
  45798. FROM
  45799. [DailyBetStat]
  45800. WHERE
  45801. DateFlag >= @WeekFlag AND UserID = @UserID AND WinAmount > 0
  45802. END
  45803. --4=每月赚金榜
  45804. ELSE IF(@RankType = 4)
  45805. BEGIN
  45806. SELECT
  45807. @Amount = SUM(WinAmount)
  45808. FROM
  45809. [DailyBetStat]
  45810. WHERE
  45811. DateFlag >= @MonthFlag AND UserID = @UserID AND WinAmount > 0
  45812. END
  45813. --6=语聊房本周榜
  45814. ELSE IF(@RankType = 6)
  45815. BEGIN
  45816. SELECT
  45817. @Amount = SUM(Exps)
  45818. FROM
  45819. [AudioRoomExpLog]
  45820. WHERE
  45821. DateFlag >= @WeekFlag AND UserID = @UserID AND Exps > 0
  45822. END
  45823. --7=语聊房上周榜
  45824. ELSE IF(@RankType = 7)
  45825. BEGIN
  45826. SELECT
  45827. @Amount = Amount
  45828. FROM
  45829. [AllRank]
  45830. WHERE
  45831. UserID = @UserID AND RankType = 7
  45832. END
  45833. --8=魅力日榜
  45834. ELSE IF(@RankType = 8)
  45835. BEGIN
  45836. SELECT
  45837. @Amount = SUM(Charm)
  45838. FROM
  45839. [UserCharmHistory]
  45840. WHERE
  45841. DateFlag >= @DateFlag AND UserID = @UserID AND Charm > 0
  45842. END
  45843. --9=魅力周榜
  45844. ELSE IF(@RankType = 9)
  45845. BEGIN
  45846. SELECT
  45847. @Amount = SUM(Charm)
  45848. FROM
  45849. [UserCharmHistory]
  45850. WHERE
  45851. DateFlag >= @WeekFlag AND UserID = @UserID AND Charm > 0
  45852. END
  45853. --10=魅力月榜
  45854. ELSE IF(@RankType = 10)
  45855. BEGIN
  45856. SELECT
  45857. @Amount = SUM(Charm)
  45858. FROM
  45859. [UserCharmHistory]
  45860. WHERE
  45861. DateFlag >= @MonthFlag AND UserID = @UserID AND Charm > 0
  45862. END
  45863. --11=语聊房赠送礼物日榜
  45864. ELSE IF(@RankType = 11)
  45865. BEGIN
  45866. SELECT
  45867. @Amount = SUM(DiamondAmount)
  45868. FROM
  45869. [AudioRoomGiftHistory]
  45870. WHERE
  45871. Crdate >= @DateFlag AND Sender = @UserID
  45872. END
  45873. --12=语聊房赠送礼物周榜
  45874. ELSE IF(@RankType = 12)
  45875. BEGIN
  45876. SELECT
  45877. @Amount = SUM(DiamondAmount)
  45878. FROM
  45879. [AudioRoomGiftHistory]
  45880. WHERE
  45881. Crdate >= @WeekFlag AND Sender = @UserID
  45882. END
  45883. --13=语聊房赠送礼物月榜
  45884. ELSE IF(@RankType = 13)
  45885. BEGIN
  45886. SELECT
  45887. @Amount = SUM(DiamondAmount)
  45888. FROM
  45889. [AudioRoomGiftHistory]
  45890. WHERE
  45891. Crdate >= @MonthFlag AND Sender = @UserID
  45892. END
  45893. --14=语聊房接收礼物日榜
  45894. ELSE IF(@RankType = 14)
  45895. BEGIN
  45896. SELECT
  45897. @Amount = SUM(DiamondAmount)
  45898. FROM
  45899. [AudioRoomGiftHistory]
  45900. WHERE
  45901. Crdate >= @DateFlag AND Receiver = @UserID
  45902. END
  45903. --15=语聊房接收礼物周榜
  45904. ELSE IF(@RankType = 15)
  45905. BEGIN
  45906. SELECT
  45907. @Amount = SUM(DiamondAmount)
  45908. FROM
  45909. [AudioRoomGiftHistory]
  45910. WHERE
  45911. Crdate >= @WeekFlag AND Receiver = @UserID
  45912. END
  45913. --16=语聊房接收礼物月榜
  45914. ELSE IF(@RankType = 16)
  45915. BEGIN
  45916. SELECT
  45917. @Amount = SUM(DiamondAmount)
  45918. FROM
  45919. [AudioRoomGiftHistory]
  45920. WHERE
  45921. Crdate >= @MonthFlag AND Receiver = @UserID
  45922. END
  45923. --17=语聊房房间消耗钻石日榜
  45924. ELSE IF(@RankType = 17)
  45925. BEGIN
  45926. SELECT
  45927. @Amount = SUM(DiamondAmount)
  45928. FROM
  45929. [AudioRoomGiftHistory]
  45930. WHERE
  45931. Crdate >= @DateFlag AND RoomID = @UserID
  45932. END
  45933. --18=语聊房房间消耗钻石周榜
  45934. ELSE IF(@RankType = 18)
  45935. BEGIN
  45936. SELECT
  45937. @Amount = SUM(DiamondAmount)
  45938. FROM
  45939. [AudioRoomGiftHistory]
  45940. WHERE
  45941. Crdate >= @WeekFlag AND RoomID = @UserID
  45942. END
  45943. --19=语聊房房间消耗钻石月榜
  45944. ELSE IF(@RankType = 19)
  45945. BEGIN
  45946. SELECT
  45947. @Amount = SUM(DiamondAmount)
  45948. FROM
  45949. [AudioRoomGiftHistory]
  45950. WHERE
  45951. Crdate >= @MonthFlag AND RoomID = @UserID
  45952. END
  45953. --20=好友房赢局数日榜
  45954. ELSE IF(@RankType = 20)
  45955. BEGIN
  45956. SELECT
  45957. @Amount = SUM(WinCount)
  45958. FROM
  45959. [DailyBetStat]
  45960. WHERE
  45961. DateFlag >= @DateFlag AND UserID = @UserID AND ServerName = 'PrivateRoom'
  45962. END
  45963. --21=好友房赢局数周榜
  45964. ELSE IF(@RankType = 21)
  45965. BEGIN
  45966. SELECT
  45967. @Amount = SUM(WinCount)
  45968. FROM
  45969. [DailyBetStat]
  45970. WHERE
  45971. DateFlag >= @WeekFlag AND UserID = @UserID AND ServerName = 'PrivateRoom'
  45972. END
  45973. SET @Amount = ISNULL(@Amount, 0)
  45974. --返回信息
  45975. SELECT @Amount AS Amount
  45976. RETURN
  45977. END
  45978. GO
  45979. /****** Object: StoredProcedure [dbo].[WS_Rank_GetList] Script Date: 2024/1/12 11:01:14 ******/
  45980. SET ANSI_NULLS ON
  45981. GO
  45982. SET QUOTED_IDENTIFIER ON
  45983. GO
  45984. -- EXEC [WS_Rank_GetList]
  45985. -- ==============================================
  45986. -- Author: wolf
  45987. -- Create Date: 2014-01-21
  45988. -- Mendor: wolf
  45989. -- Alter Date: 2016-11-07
  45990. -- Description: 榜单列表
  45991. -- ==============================================
  45992. CREATE PROCEDURE [dbo].[WS_Rank_GetList]
  45993. AS
  45994. SET NOCOUNT ON
  45995. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  45996. SET XACT_ABORT ON
  45997. BEGIN
  45998. --返回信息
  45999. SELECT
  46000. RankType, Rank, UserID, Amount, IsGift, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
  46001. FROM
  46002. [AllRank]
  46003. ORDER BY
  46004. RankType ASC, Rank ASC
  46005. RETURN
  46006. END
  46007. GO
  46008. /****** Object: StoredProcedure [dbo].[WS_Rank_GetMaxWin] Script Date: 2024/1/12 11:01:14 ******/
  46009. SET ANSI_NULLS ON
  46010. GO
  46011. SET QUOTED_IDENTIFIER ON
  46012. GO
  46013. -- EXEC [WS_Rank_GetMaxWin]
  46014. -- ==============================================
  46015. -- Author: wolf
  46016. -- Create Date: 2014-01-21
  46017. -- Mendor: wolf
  46018. -- Alter Date: 2016-11-07
  46019. -- Description: 单局最大赢金
  46020. -- ==============================================
  46021. CREATE PROCEDURE [dbo].[WS_Rank_GetMaxWin]
  46022. @UserID INT --用户ID
  46023. AS
  46024. SET NOCOUNT ON
  46025. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46026. SET XACT_ABORT ON
  46027. BEGIN
  46028. DECLARE @Score BIGINT --积分
  46029. DECLARE @DateFlag SMALLDATETIME
  46030. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  46031. SELECT
  46032. @Score = SUM(WinAmount)
  46033. FROM
  46034. [UserMaxWin]
  46035. WHERE
  46036. DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag AND UserID = @UserID
  46037. SET @Score = ISNULL(@Score, 0)
  46038. --返回信息
  46039. SELECT @Score AS Score
  46040. RETURN
  46041. END
  46042. GO
  46043. /****** Object: StoredProcedure [dbo].[WS_Rank_GetRoomExp] Script Date: 2024/1/12 11:01:14 ******/
  46044. SET ANSI_NULLS ON
  46045. GO
  46046. SET QUOTED_IDENTIFIER ON
  46047. GO
  46048. -- EXEC [WS_Rank_GetRoomExp]
  46049. -- ==============================================
  46050. -- Author: wolf
  46051. -- Create Date: 2015-10-10
  46052. -- Mendor: wolf
  46053. -- Alter Date: 2015-10-10
  46054. -- Description: 语聊房榜单房间经验
  46055. -- ==============================================
  46056. CREATE PROCEDURE [dbo].[WS_Rank_GetRoomExp]
  46057. @RoomID INT, --房间ID
  46058. @RankType INT --榜单类型
  46059. AS
  46060. SET NOCOUNT ON
  46061. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46062. SET XACT_ABORT ON
  46063. BEGIN
  46064. DECLARE @CurrTime DATETIME --系统当前时间
  46065. DECLARE @TimeFlag SMALLDATETIME --日期标识
  46066. DECLARE @DateFlag SMALLDATETIME --日期标识
  46067. DECLARE @WeekFlag SMALLDATETIME --周开始
  46068. DECLARE @Amount INT --数量
  46069. SET @CurrTime = GETDATE()
  46070. SET @TimeFlag = DATEADD(MINUTE, -2, @CurrTime)
  46071. SET @DateFlag = CONVERT(CHAR(10), @TimeFlag, 120)
  46072. --本周日
  46073. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) + 7, @TimeFlag))
  46074. --本周日还没到,取上周日日期
  46075. IF(@WeekFlag > @DateFlag)
  46076. BEGIN
  46077. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) - 0, @TimeFlag))
  46078. END
  46079. --本周榜单
  46080. IF(@RankType = 6)
  46081. BEGIN
  46082. SELECT
  46083. @Amount = SUM(Exps)
  46084. FROM
  46085. [AudioRoomExpLog]
  46086. WHERE
  46087. DateFlag >= @WeekFlag AND RoomID = @RoomID AND Exps > 0
  46088. END
  46089. --上周榜单
  46090. ELSE IF(@RankType = 7)
  46091. BEGIN
  46092. SELECT @Amount = Amount FROM [AudioRoomLastWeekRank] WHERE UserID = @RoomID
  46093. END
  46094. SET @Amount = ISNULL(@Amount, 0)
  46095. --返回信息
  46096. SELECT @Amount AS Amount
  46097. RETURN
  46098. END
  46099. GO
  46100. /****** Object: StoredProcedure [dbo].[WS_Rank_GetTeacher] Script Date: 2024/1/12 11:01:14 ******/
  46101. SET ANSI_NULLS ON
  46102. GO
  46103. SET QUOTED_IDENTIFIER ON
  46104. GO
  46105. -- EXEC [WS_Rank_GetTeacher]
  46106. -- ==============================================
  46107. -- Author: wolf
  46108. -- Create Date: 2014-01-21
  46109. -- Mendor: wolf
  46110. -- Alter Date: 2016-11-07
  46111. -- Description: 收徒榜信息
  46112. -- ==============================================
  46113. CREATE PROCEDURE [dbo].[WS_Rank_GetTeacher]
  46114. @UserID INT --用户ID
  46115. AS
  46116. SET NOCOUNT ON
  46117. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46118. SET XACT_ABORT ON
  46119. BEGIN
  46120. DECLARE @Score BIGINT --积分
  46121. DECLARE @DateFlag SMALLDATETIME
  46122. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  46123. SELECT
  46124. @Score = COUNT(StudentID)
  46125. FROM
  46126. [UserTeacher]
  46127. WHERE
  46128. Crdate >= @DateFlag - 1 AND Crdate < @DateFlag AND TeacherID = @UserID
  46129. SET @Score = ISNULL(@Score, 0)
  46130. --返回信息
  46131. SELECT @Score AS Score
  46132. RETURN
  46133. END
  46134. GO
  46135. /****** Object: StoredProcedure [dbo].[WS_Rank_GetUserScore] Script Date: 2024/1/12 11:01:14 ******/
  46136. SET ANSI_NULLS ON
  46137. GO
  46138. SET QUOTED_IDENTIFIER ON
  46139. GO
  46140. -- EXEC [WS_Rank_GetUserScore]
  46141. -- ==============================================
  46142. -- Author: wolf
  46143. -- Create Date: 2014-01-21
  46144. -- Mendor: wolf
  46145. -- Alter Date: 2016-11-07
  46146. -- Description: 积分
  46147. -- ==============================================
  46148. CREATE PROCEDURE [dbo].[WS_Rank_GetUserScore]
  46149. @UserID INT --用户ID
  46150. AS
  46151. SET NOCOUNT ON
  46152. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46153. SET XACT_ABORT ON
  46154. BEGIN
  46155. DECLARE @Score BIGINT --积分
  46156. SELECT
  46157. @Score = SUM(Score)
  46158. FROM
  46159. [UserScore]
  46160. WHERE
  46161. DateFlag >= CONVERT(CHAR(10), GETDATE() - 1, 120) AND UserID = @UserID
  46162. SET @Score = ISNULL(@Score, 0)
  46163. --返回信息
  46164. SELECT @Score AS Score
  46165. RETURN
  46166. END
  46167. GO
  46168. /****** Object: StoredProcedure [dbo].[WS_Rank_GetVideo] Script Date: 2024/1/12 11:01:14 ******/
  46169. SET ANSI_NULLS ON
  46170. GO
  46171. SET QUOTED_IDENTIFIER ON
  46172. GO
  46173. -- EXEC [WS_Rank_GetVideo]
  46174. -- ==============================================
  46175. -- Author: wolf
  46176. -- Create Date: 2014-01-21
  46177. -- Mendor: wolf
  46178. -- Alter Date: 2016-11-07
  46179. -- Description: 视频榜信息
  46180. -- ==============================================
  46181. CREATE PROCEDURE [dbo].[WS_Rank_GetVideo]
  46182. @UserID INT --用户ID
  46183. AS
  46184. SET NOCOUNT ON
  46185. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46186. SET XACT_ABORT ON
  46187. BEGIN
  46188. DECLARE @Score BIGINT --积分
  46189. DECLARE @DateFlag SMALLDATETIME
  46190. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  46191. SELECT
  46192. @Score = SUM(VideoPlayTimes)
  46193. FROM
  46194. [UserDailyStat]
  46195. WHERE
  46196. DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag AND UserID = @UserID
  46197. SET @Score = ISNULL(@Score, 0)
  46198. --返回信息
  46199. SELECT @Score AS Score
  46200. RETURN
  46201. END
  46202. GO
  46203. /****** Object: StoredProcedure [dbo].[WS_Rank_GetWinAmount] Script Date: 2024/1/12 11:01:14 ******/
  46204. SET ANSI_NULLS ON
  46205. GO
  46206. SET QUOTED_IDENTIFIER ON
  46207. GO
  46208. -- EXEC [WS_Rank_GetWinAmount]
  46209. -- ==============================================
  46210. -- Author: wolf
  46211. -- Create Date: 2014-01-21
  46212. -- Mendor: wolf
  46213. -- Alter Date: 2016-11-07
  46214. -- Description: 盈利额
  46215. -- ==============================================
  46216. CREATE PROCEDURE [dbo].[WS_Rank_GetWinAmount]
  46217. @UserID INT, --用户ID
  46218. @RankType INT --榜单类型
  46219. AS
  46220. SET NOCOUNT ON
  46221. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46222. SET XACT_ABORT ON
  46223. BEGIN
  46224. DECLARE @CurrTime DATETIME --系统当前时间
  46225. DECLARE @DateFlag SMALLDATETIME --日期标识
  46226. DECLARE @TimeFlag SMALLDATETIME --日期标识
  46227. DECLARE @WeekFlag SMALLDATETIME --周开始
  46228. DECLARE @MonthFlag SMALLDATETIME --月开始
  46229. DECLARE @EndFlag SMALLDATETIME --截止时间
  46230. DECLARE @WinAmount BIGINT --盈利额
  46231. SET @CurrTime = GETDATE()
  46232. SET @TimeFlag = DATEADD(MINUTE, -2, @CurrTime)
  46233. SET @DateFlag = CONVERT(CHAR(10), @TimeFlag, 120)
  46234. SET @MonthFlag = CONVERT(CHAR(8), @TimeFlag, 120) + '01'
  46235. --本周日
  46236. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) + 7, @TimeFlag))
  46237. --本周日还没到,取上周日日期
  46238. IF(@WeekFlag > @DateFlag)
  46239. BEGIN
  46240. SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) - 0, @TimeFlag))
  46241. END
  46242. --2=每日赚金榜
  46243. IF(@RankType = 2)
  46244. BEGIN
  46245. SELECT
  46246. @WinAmount = SUM(WinAmount)
  46247. FROM
  46248. [DailyBetStat]
  46249. WHERE
  46250. DateFlag = @DateFlag AND UserID = @UserID AND WinAmount > 0
  46251. END
  46252. --3=每周赚金榜
  46253. ELSE IF(@RankType = 3)
  46254. BEGIN
  46255. SELECT
  46256. @WinAmount = SUM(WinAmount)
  46257. FROM
  46258. [DailyBetStat]
  46259. WHERE
  46260. DateFlag >= @WeekFlag AND DateFlag < @EndFlag AND UserID = @UserID AND WinAmount > 0
  46261. END
  46262. --4=每月赚金榜
  46263. ELSE IF(@RankType = 4)
  46264. BEGIN
  46265. SELECT
  46266. @WinAmount = SUM(WinAmount)
  46267. FROM
  46268. [DailyBetStat]
  46269. WHERE
  46270. DateFlag >= @MonthFlag AND DateFlag < @EndFlag AND UserID = @UserID AND WinAmount > 0
  46271. END
  46272. SET @WinAmount = ISNULL(@WinAmount, 0)
  46273. --返回信息
  46274. SELECT @WinAmount AS WinAmount
  46275. RETURN
  46276. END
  46277. GO
  46278. /****** Object: StoredProcedure [dbo].[WS_Rank_ReloadBadgeRanking] Script Date: 2024/1/12 11:01:14 ******/
  46279. SET ANSI_NULLS ON
  46280. GO
  46281. SET QUOTED_IDENTIFIER ON
  46282. GO
  46283. -- EXEC [WS_Rank_ReloadBadgeRanking]
  46284. -- ==============================================
  46285. -- Author: wolf
  46286. -- Create Date: 2023-10-20
  46287. -- Mendor: wolf
  46288. -- Alter Date: 2023-10-20
  46289. -- Description: 重新加载徽章排名
  46290. -- ==============================================
  46291. CREATE PROCEDURE [dbo].[WS_Rank_ReloadBadgeRanking]
  46292. AS
  46293. SET NOCOUNT ON
  46294. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46295. SET XACT_ABORT ON
  46296. BEGIN
  46297. DECLARE @CurrTime DATETIME -- 当前日期
  46298. SET @CurrTime = GETDATE()
  46299. IF(DATEPART(MINUTE, @CurrTime) < 3)
  46300. BEGIN
  46301. SET @CurrTime = DATEADD(MINUTE, -3, @CurrTime)
  46302. END
  46303. --删除榜单数据(5=徽章榜)
  46304. DELETE FROM [AllRank] WHERE RankType = 5
  46305. --5=徽章榜
  46306. INSERT INTO [AllRank]
  46307. (
  46308. RankType, Rank, UserID, Amount, Crdate, IsGift
  46309. )
  46310. SELECT TOP 50
  46311. 5, ROW_NUMBER() OVER(ORDER BY SUM(Points) DESC) AS Rank, UserID, SUM(Points), @CurrTime, 1
  46312. FROM
  46313. [UserBadge]
  46314. WHERE
  46315. Points > 0
  46316. GROUP BY
  46317. UserID
  46318. RETURN
  46319. END
  46320. GO
  46321. /****** Object: StoredProcedure [dbo].[WS_RechargeCard_Use] Script Date: 2024/1/12 11:01:14 ******/
  46322. SET ANSI_NULLS ON
  46323. GO
  46324. SET QUOTED_IDENTIFIER ON
  46325. GO
  46326. -- EXEC [WS_RechargeCard_Use]
  46327. -- ==============================================
  46328. -- Author: wolf
  46329. -- Create Date: 2014-12-29
  46330. -- Mendor: wolf
  46331. -- Alter Date: 2015-06-01
  46332. -- Description: 充值卡使用
  46333. -- ==============================================
  46334. CREATE PROCEDURE [dbo].[WS_RechargeCard_Use]
  46335. @UserID INT, --用户ID
  46336. @CardNo VARCHAR(32) --卡号
  46337. AS
  46338. SET NOCOUNT ON
  46339. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46340. SET XACT_ABORT ON
  46341. BEGIN
  46342. DECLARE @RetCode TINYINT --操作结果
  46343. DECLARE @CurrTime DATETIME --系统当前时间
  46344. DECLARE @GoldAmount BIGINT --金币数
  46345. DECLARE @ErrorTimes INT --错误次数
  46346. DECLARE @Crdate DATETIME --时间
  46347. DECLARE @CoolSeconds INT --冷却时长
  46348. SET @RetCode = 0
  46349. SET @GoldAmount = 0
  46350. SET @ErrorTimes = 0
  46351. SET @CoolSeconds = 0
  46352. SET @CurrTime = GETDATE()
  46353. --充值卡已使用
  46354. IF EXISTS(SELECT CardNo FROM [RechargeCard] WHERE CardNo = @CardNo AND UserID > 0)
  46355. BEGIN
  46356. SET @RetCode = 11
  46357. SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
  46358. RETURN
  46359. END
  46360. --获取充值卡日志
  46361. SELECT
  46362. @ErrorTimes = ErrorTimes, @Crdate = Crdate
  46363. FROM
  46364. [CardErrorLog]
  46365. WHERE
  46366. UserID = @UserID
  46367. --初始化数据
  46368. IF(@@ROWCOUNT = 0)
  46369. BEGIN
  46370. INSERT INTO [CardErrorLog]
  46371. (
  46372. UserID, ErrorTimes, Crdate
  46373. )
  46374. VALUES
  46375. (
  46376. @UserID, 0, @CurrTime
  46377. )
  46378. END
  46379. --每5秒仅能输入1次兑换码
  46380. IF(@Crdate >= DATEADD(SECOND, -5, @CurrTime))
  46381. BEGIN
  46382. SET @RetCode = 12
  46383. SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
  46384. RETURN
  46385. END
  46386. --当5分钟内连续输错10次兑换码时,禁止使用此功能5分钟
  46387. IF(@Crdate >= DATEADD(MINUTE, -5, @CurrTime) AND @ErrorTimes >= 10)
  46388. BEGIN
  46389. SET @RetCode = 13
  46390. --计算冷却时间
  46391. SET @CoolSeconds = DATEDIFF(SECOND, @CurrTime, DATEADD(MINUTE, 5, @Crdate))
  46392. SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
  46393. RETURN
  46394. END
  46395. --使用充值卡
  46396. UPDATE
  46397. [RechargeCard]
  46398. SET
  46399. UserID = @UserID, UseTime = @CurrTime, @GoldAmount = GoldAmount
  46400. WHERE
  46401. CardNo = @CardNo AND UserID <= 0
  46402. IF(@@ROWCOUNT = 0)
  46403. BEGIN
  46404. --超过5分钟
  46405. IF(@Crdate < DATEADD(MINUTE, -5, @CurrTime))
  46406. BEGIN
  46407. SET @ErrorTimes = 0
  46408. END
  46409. --错误次数+1
  46410. UPDATE
  46411. [CardErrorLog]
  46412. SET
  46413. ErrorTimes = @ErrorTimes + 1, Crdate = @CurrTime
  46414. WHERE
  46415. UserID = @UserID
  46416. SET @RetCode = 14
  46417. SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
  46418. RETURN
  46419. END
  46420. --充值卡使用记录
  46421. UPDATE [CardErrorLog] SET ErrorTimes = 0, Crdate = @CurrTime WHERE UserID = @UserID
  46422. --使用成功
  46423. SET @RetCode = 1
  46424. SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
  46425. RETURN
  46426. END
  46427. GO
  46428. /****** Object: StoredProcedure [dbo].[WS_RedPoint_Check] Script Date: 2024/1/12 11:01:14 ******/
  46429. SET ANSI_NULLS ON
  46430. GO
  46431. SET QUOTED_IDENTIFIER ON
  46432. GO
  46433. -- EXEC [WS_RedPoint_Check]
  46434. -- ==============================================
  46435. -- Author: wolf
  46436. -- Create Date: 2014-06-17
  46437. -- Mendor: wolf
  46438. -- Alter Date: 2016-08-16
  46439. -- Description: 小红点检查
  46440. -- ==============================================
  46441. CREATE PROCEDURE [dbo].[WS_RedPoint_Check]
  46442. @UserID INT --用户ID
  46443. AS
  46444. SET NOCOUNT ON
  46445. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46446. SET XACT_ABORT ON
  46447. BEGIN
  46448. DECLARE @CurrTime DATETIME --系统当前时间
  46449. DECLARE @SignTime DATETIME --签到时间
  46450. DECLARE @MailTip TINYINT --邮件提醒
  46451. DECLARE @MailVIPTip TINYINT --重要邮件提醒
  46452. DECLARE @MsgTip TINYINT --留言提醒
  46453. DECLARE @SpreadTip TINYINT --邀请(推广)提醒
  46454. DECLARE @ReviewTip TINYINT --评论提醒
  46455. SET @CurrTime = GETDATE()
  46456. SET @SignTime = '2021-01-01'
  46457. SET @MailTip = 0
  46458. SET @MailVIPTip = 0
  46459. SET @MsgTip = 0
  46460. SET @SpreadTip = 0
  46461. SET @ReviewTip = 0
  46462. --最近签到时间
  46463. SELECT TOP 1 @SignTime = Crdate FROM [UserSigninHistory] WHERE UserID = @UserID ORDER BY Rid DESC
  46464. --未读邮件
  46465. SELECT
  46466. @MailTip = CASE WHEN MsgType = 0 THEN 1 ELSE @MailTip END, -- 0=普通邮件
  46467. @MailVIPTip = CASE WHEN MsgType = 1 THEN 1 ELSE @MailVIPTip END -- 1=重要邮件
  46468. FROM
  46469. [SysMessage]
  46470. WHERE
  46471. UserID = @UserID AND Crdate >= @CurrTime - 3 AND Status = 0
  46472. --留言提醒
  46473. IF EXISTS(SELECT TOP 1 MessageID FROM [ServiceMessage] WHERE ToUserID = @UserID AND Crdate > @CurrTime - 3 AND IsRead = 0)
  46474. BEGIN
  46475. SET @MsgTip = 1
  46476. END
  46477. --邀请(推广)提醒
  46478. IF EXISTS(SELECT TOP 1 Code FROM [SpreadMember] WHERE Code = @UserID AND IsGift = 0)
  46479. BEGIN
  46480. SET @SpreadTip = 1
  46481. END
  46482. --状态
  46483. IF EXISTS(SELECT TOP 1 UserID FROM [UserReview] WHERE UserID = @UserID AND AppName = 'google' AND Status = 0)
  46484. BEGIN
  46485. SET @ReviewTip = 1
  46486. END
  46487. --返回信息
  46488. SELECT
  46489. CONVERT(VARCHAR(20), @SignTime, 120) AS SignTime, @MailTip AS MailTip, @MsgTip AS MsgTip,
  46490. @SpreadTip AS SpreadTip, @ReviewTip AS ReviewTip, 0 AS AgentGrade, @MailVIPTip AS MailVIPTip
  46491. RETURN
  46492. END
  46493. GO
  46494. /****** Object: StoredProcedure [dbo].[WS_Request_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  46495. SET ANSI_NULLS ON
  46496. GO
  46497. SET QUOTED_IDENTIFIER ON
  46498. GO
  46499. -- EXEC [WS_Request_GetInfo]
  46500. -- ==============================================
  46501. -- Author: wolf
  46502. -- Create Date: 2015-03-13
  46503. -- Mendor: wolf
  46504. -- Alter Date: 2015-11-05
  46505. -- Description: 游戏审核显示的游戏名
  46506. -- ==============================================
  46507. CREATE PROCEDURE [dbo].[WS_Request_GetInfo]
  46508. AS
  46509. SET NOCOUNT ON
  46510. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46511. SET XACT_ABORT ON
  46512. BEGIN
  46513. SELECT
  46514. PartnerID, VersionCode, GameName
  46515. FROM
  46516. [GameRequest]
  46517. RETURN
  46518. END
  46519. GO
  46520. /****** Object: StoredProcedure [dbo].[WS_Review_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  46521. SET ANSI_NULLS ON
  46522. GO
  46523. SET QUOTED_IDENTIFIER ON
  46524. GO
  46525. -- EXEC [WS_Review_GetInfo]
  46526. -- ==============================================
  46527. -- Author: wolf
  46528. -- Create Date: 2014-09-04
  46529. -- Mendor: wolf
  46530. -- Alter Date: 2015-04-03
  46531. -- Description: 获取评论信息
  46532. -- ==============================================
  46533. CREATE PROCEDURE [dbo].[WS_Review_GetInfo]
  46534. @UserID INT, --用户ID
  46535. @AppName VARCHAR(32) --应用名称
  46536. AS
  46537. SET NOCOUNT ON
  46538. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46539. SET XACT_ABORT ON
  46540. BEGIN
  46541. DECLARE @RetCode TINYINT --操作结果 1=可以领取 11=已经领取过 12=玩家连续登录未超过2天 13=玩家在游戏未充值或者平台、游戏内累计观看视频未超过3次
  46542. DECLARE @CurrTime DATETIME --系统当前时间
  46543. DECLARE @DateFlag SMALLDATETIME --日期标识
  46544. DECLARE @RegTime SMALLDATETIME --注册日期
  46545. DECLARE @PayMoney DECIMAL(18, 2) --充值金额
  46546. DECLARE @Status TINYINT --状态
  46547. SET @RetCode = 13
  46548. SET @CurrTime = GETDATE()
  46549. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  46550. --状态
  46551. SELECT @Status = Status FROM [UserReview] WHERE UserID = @UserID AND AppName = @AppName
  46552. --用户评论
  46553. IF(@Status = 1)
  46554. BEGIN
  46555. SET @RetCode = 11
  46556. SELECT @RetCode AS RetCode
  46557. RETURN
  46558. END
  46559. --判断是否连续2天登录
  46560. IF NOT EXISTS(SELECT Crdate FROM [UserLoginLog_bak] WHERE Crdate >= @DateFlag - 1 AND Crdate < @DateFlag AND UserID = @UserID)
  46561. BEGIN
  46562. SET @RetCode = 12
  46563. SELECT @RetCode AS RetCode
  46564. RETURN
  46565. END
  46566. --用户信息
  46567. SELECT @PayMoney = PayMoney, @RegTime = CONVERT(CHAR(10), RegTime, 120) FROM [AllUser] WHERE UserID = @UserID
  46568. --有充值
  46569. IF(@PayMoney > 0)
  46570. BEGIN
  46571. SET @RetCode = 1
  46572. END
  46573. --充值或观看视频超过3次
  46574. IF((SELECT SUM(VideoPlayTimes) FROM [UserDailyStat] WHERE DateFlag >= @RegTime AND UserID = @UserID) >= 3)
  46575. BEGIN
  46576. SET @RetCode = 1
  46577. END
  46578. --首次触发
  46579. IF(@Status IS NULL)
  46580. BEGIN
  46581. --记录
  46582. INSERT INTO [UserReview]
  46583. (
  46584. UserID, AppName, Status, Crdate
  46585. )
  46586. VALUES
  46587. (
  46588. @UserID, @AppName, 0, GETDATE()
  46589. )
  46590. END
  46591. --返回信息
  46592. SELECT @RetCode AS RetCode
  46593. RETURN
  46594. END
  46595. GO
  46596. /****** Object: StoredProcedure [dbo].[WS_Review_Gift] Script Date: 2024/1/12 11:01:14 ******/
  46597. SET ANSI_NULLS ON
  46598. GO
  46599. SET QUOTED_IDENTIFIER ON
  46600. GO
  46601. -- EXEC [WS_Review_Gift]
  46602. -- ==============================================
  46603. -- Author: wolf
  46604. -- Create Date: 2014-09-04
  46605. -- Mendor: wolf
  46606. -- Alter Date: 2015-04-03
  46607. -- Description: 领取评论
  46608. -- ==============================================
  46609. CREATE PROCEDURE [dbo].[WS_Review_Gift]
  46610. @UserID INT, --用户ID
  46611. @AppName VARCHAR(32) --应用名称
  46612. AS
  46613. SET NOCOUNT ON
  46614. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46615. SET XACT_ABORT ON
  46616. BEGIN
  46617. --领取
  46618. UPDATE
  46619. [UserReview]
  46620. SET
  46621. Status = 1
  46622. WHERE
  46623. UserID = @UserID AND AppName = @AppName AND Status = 0
  46624. IF(@@ROWCOUNT > 0)
  46625. BEGIN
  46626. SELECT 1 AS RetCode
  46627. RETURN
  46628. END
  46629. SELECT 0 AS RetCode
  46630. RETURN
  46631. END
  46632. GO
  46633. /****** Object: StoredProcedure [dbo].[WS_SafeBox_Transfer] Script Date: 2024/1/12 11:01:14 ******/
  46634. SET ANSI_NULLS ON
  46635. GO
  46636. SET QUOTED_IDENTIFIER ON
  46637. GO
  46638. /*************************
  46639. 用途:保险柜转账
  46640. 说明:税为0%、单次转账最大额1E、最小额100、
  46641. 说明:同时判断接收方加金币不超过20E(INT最大值)
  46642. **************************/
  46643. CREATE PROCEDURE [dbo].[WS_SafeBox_Transfer]
  46644. @UserID INT, --转账方ID
  46645. @AcceptUserID INT, --接收方ID
  46646. @WantAmount BIGINT, --要转多少金币,保证为正数
  46647. @Esafeboxpwd VARCHAR(32), --保险柜密码
  46648. @IPAddress VARCHAR(15), --IP地址
  46649. @ErrMsg NVARCHAR(128) OUTPUT, --消息
  46650. @StillAmount BIGINT OUTPUT, --剩余保险柜
  46651. @RetCode INT OUTPUT --操作结果
  46652. AS
  46653. SET NOCOUNT ON
  46654. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  46655. SET XACT_ABORT ON
  46656. BEGIN
  46657. DECLARE @MAX_AMOUNT BIGINT --单次转账最大量
  46658. DECLARE @MIN_AMOUNT BIGINT --单次转账最小量
  46659. DECLARE @AcceptCurrAmount BIGINT --接收者的当前金币量
  46660. DECLARE @TaxAmount BIGINT --税
  46661. DECLARE @CurrAmount BIGINT --当前的金币量
  46662. DECLARE @TotalAmount BIGINT --实际总共改变的金币量,等于@WantAmount +@TaxAmount
  46663. DECLARE @NickName NVARCHAR(32) --昵称
  46664. DECLARE @AcceptNickName NVARCHAR(32) --接收方昵称
  46665. DECLARE @AcceptStillAmount BIGINT --接收者剩余金币
  46666. DECLARE @CurrTime DATETIME --时间
  46667. DECLARE @Msg NVARCHAR(256) --消息
  46668. DECLARE @DailyTransferAmount BIGINT --日转账
  46669. DECLARE @TransferAmount BIGINT --转账金额
  46670. DECLARE @SysMsgID INT
  46671. SET @StillAmount = 0
  46672. SET @TaxAmount = 0
  46673. SET @TotalAmount = @WantAmount + @TaxAmount -- 消耗的金币 = 转出的金币+税
  46674. SET @NickName = ''
  46675. SET @AcceptNickName = ''
  46676. SET @MAX_AMOUNT = 100000000
  46677. SET @MIN_AMOUNT = 1
  46678. SET @RetCode = 0
  46679. SET @CurrTime = GETDATE()
  46680. IF(@WantAmount IS NULL OR @WantAmount < 0)
  46681. BEGIN
  46682. SET @RetCode = -1
  46683. SET @ErrMsg = N'Safe amount input error'
  46684. RETURN
  46685. END
  46686. IF(@UserID IS NULL OR @AcceptUserID IS NULL OR @UserID < 0 OR @AcceptUserID < 0)
  46687. BEGIN
  46688. IF @UserID IS NULL
  46689. SET @UserID = 0
  46690. IF @AcceptUserID IS NULL
  46691. SET @AcceptUserID = 0
  46692. INSERT INTO [MoneyLog]
  46693. (
  46694. [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  46695. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  46696. )
  46697. VALUES
  46698. (
  46699. 0, 'BANK', @UserID, 0, -@WantAmount,
  46700. 0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming user parameter error', @CurrTime, 0
  46701. )
  46702. SET @RetCode = -2
  46703. SET @ErrMsg = N'User parameter error'
  46704. RETURN
  46705. END
  46706. IF(@WantAmount < @MIN_AMOUNT OR @WantAmount > @MAX_AMOUNT)
  46707. BEGIN
  46708. INSERT INTO [MoneyLog]
  46709. (
  46710. [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  46711. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  46712. )
  46713. VALUES
  46714. (
  46715. 0, 'BANK', @UserID, 0, -@WantAmount,
  46716. 0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming amount error', @CurrTime, 0
  46717. )
  46718. SET @RetCode = -3
  46719. SET @ErrMsg = N'The transfer amount of safe exceeds the limit'
  46720. RETURN
  46721. END
  46722. --获取当前自己的昵称
  46723. SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
  46724. IF(@@ROWCOUNT = 0)
  46725. BEGIN
  46726. INSERT INTO [MoneyLog]
  46727. (
  46728. [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  46729. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  46730. )
  46731. VALUES
  46732. (
  46733. 0, 'BANK', @UserID, 0, -@WantAmount,
  46734. 0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming user parameter error', @CurrTime, 0
  46735. )
  46736. SET @RetCode = -2
  46737. SET @ErrMsg = N'User parameter error'
  46738. RETURN
  46739. END
  46740. --获取当前自己的昵称
  46741. SELECT @AcceptNickName = NickName FROM [AllUser] WHERE UserID = @AcceptUserID
  46742. IF(@@ROWCOUNT = 0)
  46743. BEGIN
  46744. INSERT INTO [MoneyLog]
  46745. (
  46746. [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  46747. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  46748. )
  46749. VALUES
  46750. (
  46751. 0, 'BANK', @UserID, 0, -@WantAmount,
  46752. 0, @TaxAmount, @IPAddress, N'Safe transfer:Receive ID does not exist', @CurrTime, 0
  46753. )
  46754. SET @RetCode = -5
  46755. SET @ErrMsg = N'Receive ID does not exist'
  46756. RETURN
  46757. END
  46758. --日转账限额
  46759. SELECT @DailyTransferAmount = DailyTransferAmount FROM [PlatformConfig] WHERE ConfigID = 1
  46760. --有设置转账限额
  46761. IF(@DailyTransferAmount > 0)
  46762. BEGIN
  46763. --今天转账金额
  46764. SELECT
  46765. @TransferAmount = ISNULL(SUM(-WantAmount), 0)
  46766. FROM
  46767. [TransferLog]
  46768. WHERE
  46769. Crdate >= CONVERT(CHAR(10), @CurrTime, 120) AND UserID = @UserID
  46770. --判断是否达到上限
  46771. IF((@TransferAmount + @WantAmount) > @DailyTransferAmount)
  46772. BEGIN
  46773. SET @RetCode = -9
  46774. SET @ErrMsg = N'Up to today transfer limit'
  46775. RETURN
  46776. END
  46777. END
  46778. SET @AcceptCurrAmount = (SELECT [Bank] FROM [Money] WHERE [UserID] = @AcceptUserID)
  46779. IF @AcceptCurrAmount IS NULL
  46780. SET @AcceptCurrAmount = 0
  46781. --接收方的现金看会不会超过INT值的最大限度,一个账号上现金最多接收转账不超过10E
  46782. IF(@AcceptCurrAmount + @WantAmount > 1000000000)
  46783. BEGIN
  46784. INSERT INTO [MoneyLog]
  46785. (
  46786. [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  46787. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  46788. )
  46789. VALUES
  46790. (
  46791. 0, 'BANK', @UserID, 0, @WantAmount,
  46792. 0, @TaxAmount, @IPAddress, N'Safe transfer:The amount is too large!', @CurrTime, 0
  46793. )
  46794. SET @RetCode = -6
  46795. SET @ErrMsg = N'The receiver safe is more than 10 million yuan and cannot be sent!'
  46796. RETURN
  46797. END
  46798. --开始金币的转账操作
  46799. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  46800. BEGIN TRAN
  46801. --检查用户现金
  46802. SET @CurrAmount = (SELECT [Bank] FROM [Money] WHERE [UserID] = @UserID)
  46803. IF @CurrAmount IS NULL
  46804. SET @CurrAmount = 0
  46805. IF(@CurrAmount < @TotalAmount)
  46806. BEGIN
  46807. ROLLBACK TRAN
  46808. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  46809. INSERT INTO [MoneyLog]
  46810. (
  46811. [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  46812. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  46813. )
  46814. VALUES
  46815. (
  46816. 0, 'BANK', @UserID, 0, @WantAmount,
  46817. 0, @TaxAmount, @IPAddress, N'Safe transfer:Cash is not enough', @CurrTime, 0
  46818. )
  46819. SET @RetCode = -7
  46820. SET @ErrMsg = N'Your current safe is not less than the amount sent'
  46821. RETURN
  46822. END
  46823. --可以进行保险柜操作了
  46824. UPDATE [Money] SET [Bank] = [Bank] - @TotalAmount WHERE [UserID] = @UserID
  46825. UPDATE [Money] SET [Bank] = [Bank] + @WantAmount WHERE [UserID] = @AcceptUserID
  46826. IF(@@RowCount = 0)
  46827. BEGIN
  46828. INSERT INTO [Money]
  46829. (
  46830. [UserID],[Amount], RegisterTime, RefreshTime, bank
  46831. )
  46832. VALUES
  46833. (
  46834. @AcceptUserID, @WantAmount, @CurrTime, @CurrTime, 0
  46835. )
  46836. END
  46837. COMMIT TRAN
  46838. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  46839. --写日志
  46840. INSERT INTO [MoneyLog]
  46841. (
  46842. [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
  46843. [StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
  46844. )
  46845. SELECT
  46846. 0, 'BANK', @AcceptUserID, @AcceptCurrAmount, @WantAmount,
  46847. @AcceptCurrAmount + @WantAmount, @TaxAmount, @IPAddress, N'Safe transfer:Receiving OK', @CurrTime, 11
  46848. UNION ALL
  46849. SELECT
  46850. 0, 'BANK', @UserID, @CurrAmount, -@WantAmount,
  46851. @CurrAmount - @WantAmount, @TaxAmount, @IPAddress, N'Safe transfer:Send OK', @CurrTime, 111
  46852. --剩余金币
  46853. SET @StillAmount = @CurrAmount - @TotalAmount
  46854. SET @AcceptStillAmount = @AcceptCurrAmount + @WantAmount
  46855. SET @ErrMsg = N'Safe transfer succeeded, you have sent ' + CAST(@WantAmount AS VARCHAR(32)) + ',You still have the safe account ' + CAST(@StillAmount AS VARCHAR(32))
  46856. --保险柜日志
  46857. INSERT INTO [BankLog]
  46858. (
  46859. UserID, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
  46860. )
  46861. SELECT @UserID, @AcceptUserID, @CurrAmount, -@WantAmount, @StillAmount, N'Safe transfer out', @CurrTime, @IPAddress
  46862. UNION ALL
  46863. SELECT @AcceptUserID, @UserID, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount, N'Safe transfer in', @CurrTime, @IPAddress
  46864. --转账日志
  46865. INSERT INTO [TransferLog]
  46866. (
  46867. [UserID], [NickName],[CurrAmount],[WantAmount], [StillAmount],
  46868. [AcceptUserID], [AcceptNickName], [AcceptCurrAmount], [AcceptWantAmount], [AcceptStillAmount],
  46869. [TaxAmount], [IPAddress], [Memo], [Crdate]
  46870. )
  46871. VALUES
  46872. (
  46873. @UserID, @NickName, @CurrAmount, -@WantAmount, @StillAmount,
  46874. @AcceptUserID, @AcceptNickName, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount,
  46875. @TaxAmount, @IPAddress, @ErrMsg, @CurrTime
  46876. )
  46877. SET @Msg = N'You recieved a transfer from ' + LTRIM(STR(@UserID)) + '(' + @NickName + ').'
  46878. --发送消息
  46879. EXEC [WS_SysMessage_Send] @UserID = @AcceptUserID, @Title = N'System', @Content = @Msg, @Status = 0, @SourceName = 'Transfer',
  46880. @Crdate = @CurrTime, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
  46881. SET @RetCode = 1
  46882. RETURN
  46883. END
  46884. GO
  46885. /****** Object: StoredProcedure [dbo].[WS_SavingPot_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  46886. SET ANSI_NULLS ON
  46887. GO
  46888. SET QUOTED_IDENTIFIER ON
  46889. GO
  46890. -- EXEC [WS_SavingPot_GetInfo]
  46891. -- ==============================================
  46892. -- Author: wolf
  46893. -- Create Date: 2023-06-28
  46894. -- Mendor: wolf
  46895. -- Alter Date: 2023-06-28
  46896. -- Description: 存钱罐信息
  46897. -- ==============================================
  46898. CREATE PROCEDURE [dbo].[WS_SavingPot_GetInfo]
  46899. @UserID INT --用户ID
  46900. AS
  46901. SET NOCOUNT ON
  46902. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46903. SET XACT_ABORT ON
  46904. BEGIN
  46905. --返回信息
  46906. SELECT
  46907. UserID, BuyTimes, BuyAmount,
  46908. dbo.fn_TimeToStamp(UpdateTime) AS UpdateTime
  46909. FROM
  46910. [UserSavingPot]
  46911. WHERE
  46912. UserID = @UserID
  46913. RETURN
  46914. END
  46915. GO
  46916. /****** Object: StoredProcedure [dbo].[WS_SavingPot_Update] Script Date: 2024/1/12 11:01:14 ******/
  46917. SET ANSI_NULLS ON
  46918. GO
  46919. SET QUOTED_IDENTIFIER ON
  46920. GO
  46921. -- EXEC [WS_SavingPot_Update]
  46922. -- ==============================================
  46923. -- Author: wolf
  46924. -- Create Date: 2023-06-28
  46925. -- Mendor: wolf
  46926. -- Alter Date: 2023-06-28
  46927. -- Description: 存钱罐更新
  46928. -- ==============================================
  46929. CREATE PROCEDURE [dbo].[WS_SavingPot_Update]
  46930. @UserID INT, --用户ID
  46931. @BuyTimes INT,
  46932. @BuyAmount INT,
  46933. @UpdateTime INT
  46934. AS
  46935. SET NOCOUNT ON
  46936. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46937. SET XACT_ABORT ON
  46938. BEGIN
  46939. --更新
  46940. UPDATE
  46941. [UserSavingPot]
  46942. SET
  46943. BuyTimes = @BuyTimes, BuyAmount = @BuyAmount,
  46944. UpdateTime = dbo.fn_StampToTime(@UpdateTime)
  46945. WHERE
  46946. UserID = @UserID
  46947. IF(@@ROWCOUNT = 0)
  46948. BEGIN
  46949. INSERT INTO [UserSavingPot]
  46950. (
  46951. UserID, BuyTimes, BuyAmount, UpdateTime
  46952. )
  46953. VALUES
  46954. (
  46955. @UserID, @BuyTimes, @BuyAmount, dbo.fn_StampToTime(@UpdateTime)
  46956. )
  46957. END
  46958. RETURN
  46959. END
  46960. GO
  46961. /****** Object: StoredProcedure [dbo].[WS_ServiceMessage_GetList] Script Date: 2024/1/12 11:01:14 ******/
  46962. SET ANSI_NULLS ON
  46963. GO
  46964. SET QUOTED_IDENTIFIER ON
  46965. GO
  46966. -- EXEC [WS_ServiceMessage_GetList]
  46967. -- @UserID = 1
  46968. -- ==============================================
  46969. -- Author: wolf
  46970. -- Create Date: 2014-08-29
  46971. -- Mendor: wolf
  46972. -- Alter Date: 2015-08-13
  46973. -- Description: 获取客服留言列表(分页显示)
  46974. -- ==============================================
  46975. CREATE PROCEDURE [dbo].[WS_ServiceMessage_GetList]
  46976. @UserID INT, --用户ID
  46977. @MessageID INT, --客服留言ID
  46978. @SendImgCount INT OUTPUT --发送图片次数
  46979. AS
  46980. SET NOCOUNT ON
  46981. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  46982. SET XACT_ABORT ON
  46983. BEGIN
  46984. DECLARE @Msg VARCHAR(1024) --操作描述
  46985. --申请表变量
  46986. DECLARE @tmptable TABLE(
  46987. MessageID INT NOT NULL, --消息ID
  46988. Title VARCHAR(256) NOT NULL, --标题
  46989. UserID INT NOT NULL, --用户ID
  46990. ToUserID INT NOT NULL, --对方用户ID
  46991. Msg NVARCHAR(512) NOT NULL, --消息
  46992. Crdate DATETIME NOT NULL --创建时间
  46993. )
  46994. --获取最新的客服留言ID
  46995. IF(@MessageID > 0)
  46996. BEGIN
  46997. --初始化表变量
  46998. INSERT INTO @tmptable
  46999. (
  47000. MessageID, Title, UserID, ToUserID, Msg, Crdate
  47001. )
  47002. SELECT
  47003. MessageID, Title, UserID, ToUserID, Msg, Crdate
  47004. FROM
  47005. [ServiceMessage]
  47006. WHERE
  47007. (UserID = @UserID OR ToUserID = @UserID) AND MessageID > @MessageID AND Crdate > GETDATE() - 5
  47008. END
  47009. --第1次进来,获取所有客服留言
  47010. ELSE
  47011. BEGIN
  47012. --初始化表变量
  47013. INSERT INTO @tmptable
  47014. (
  47015. MessageID, Title, UserID, ToUserID, Msg, Crdate
  47016. )
  47017. SELECT TOP 50
  47018. MessageID, Title, UserID, ToUserID, Msg, Crdate
  47019. FROM
  47020. [ServiceMessage]
  47021. WHERE
  47022. (UserID = @UserID OR ToUserID = @UserID) AND Crdate > GETDATE() - 5
  47023. ORDER BY
  47024. MessageID DESC
  47025. END
  47026. --置为已读
  47027. UPDATE [ServiceMessage] SET IsRead = 1 WHERE ToUserID = @UserID AND IsRead = 0
  47028. --发送图片次数
  47029. SELECT
  47030. @SendImgCount = COUNT(ImgID)
  47031. FROM
  47032. [ServiceMessageImage]
  47033. WHERE
  47034. Crdate >= CONVERT(VARCHAR(10), GETDATE(), 120) AND UserID = @UserID
  47035. --可使用次数
  47036. SET @SendImgCount = 15 - @SendImgCount
  47037. --返回信息
  47038. SELECT
  47039. MessageID, Title, UserID, ToUserID, Msg, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
  47040. FROM
  47041. @tmptable
  47042. ORDER BY
  47043. MessageID ASC
  47044. RETURN
  47045. END
  47046. GO
  47047. /****** Object: StoredProcedure [dbo].[WS_ServiceMessage_GetTip] Script Date: 2024/1/12 11:01:14 ******/
  47048. SET ANSI_NULLS ON
  47049. GO
  47050. SET QUOTED_IDENTIFIER ON
  47051. GO
  47052. -- EXEC [WS_ServiceMessage_GetTip]
  47053. -- @UserID = 1
  47054. -- ==============================================
  47055. -- Author: wolf
  47056. -- Create Date: 2014-08-29
  47057. -- Mendor: wolf
  47058. -- Alter Date: 2015-08-13
  47059. -- Description: 获取客服留言提示
  47060. -- ==============================================
  47061. CREATE PROCEDURE [dbo].[WS_ServiceMessage_GetTip]
  47062. @UserID INT --用户ID
  47063. AS
  47064. SET NOCOUNT ON
  47065. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47066. SET XACT_ABORT ON
  47067. BEGIN
  47068. SELECT TOP 1
  47069. MessageID
  47070. FROM
  47071. [ServiceMessage]
  47072. WHERE
  47073. ToUserID = @UserID AND Crdate > GETDATE() - 5 AND IsRead = 0
  47074. RETURN
  47075. END
  47076. GO
  47077. /****** Object: StoredProcedure [dbo].[WS_ServiceMessage_Send] Script Date: 2024/1/12 11:01:14 ******/
  47078. SET ANSI_NULLS ON
  47079. GO
  47080. SET QUOTED_IDENTIFIER ON
  47081. GO
  47082. -- EXEC [WS_ServiceMessage_Send]
  47083. -- @UserID = 1,
  47084. -- @Msg = ''
  47085. -- ==============================================
  47086. -- Author: wolf
  47087. -- Create Date: 2014-08-29
  47088. -- Mendor: wolf
  47089. -- Alter Date: 2016-08-18
  47090. -- Description: 给客服留言
  47091. -- ==============================================
  47092. CREATE PROCEDURE [dbo].[WS_ServiceMessage_Send]
  47093. @UserID INT, --用户ID
  47094. @Title NVARCHAR(256), --标题
  47095. @Msg NVARCHAR(512), --留言内容
  47096. @Img VARCHAR(1024) --图片(十六进制)
  47097. AS
  47098. SET NOCOUNT ON
  47099. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47100. SET XACT_ABORT ON
  47101. BEGIN
  47102. DECLARE @CurrTime DATETIME --系统当前时间
  47103. DECLARE @MessageID INT --留言ID
  47104. DECLARE @SendImgCount INT --发送图片次数
  47105. SET @MessageID = 0
  47106. SET @SendImgCount = 0
  47107. SET @CurrTime = GETDATE()
  47108. --插入客服留言信息
  47109. INSERT INTO [ServiceMessage]
  47110. (
  47111. UserID, Title, ToUserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
  47112. )
  47113. VALUES
  47114. (
  47115. @UserID, @Title, -1, @Msg, 0, @CurrTime, -1, '', '', 0
  47116. )
  47117. --消息ID
  47118. SET @MessageID = SCOPE_IDENTITY()
  47119. --发送图片次数
  47120. SELECT
  47121. @SendImgCount = COUNT(MessageID)
  47122. FROM
  47123. [ServiceMessageImage]
  47124. WHERE
  47125. Crdate >= CONVERT(VARCHAR(10), @CurrTime, 120) AND UserID = @UserID
  47126. --可使用次数
  47127. SET @SendImgCount = 15 - @SendImgCount
  47128. --有图片
  47129. IF(LEN(@Img) > 0)
  47130. BEGIN
  47131. INSERT INTO [ServiceMessageImage]
  47132. (
  47133. MessageID, UserID, Img, Crdate
  47134. )
  47135. VALUES
  47136. (
  47137. @MessageID, @UserID, @Img, @CurrTime
  47138. )
  47139. --可使用次数-1
  47140. SET @SendImgCount = @SendImgCount - 1
  47141. END
  47142. --返回信息
  47143. SELECT @MessageID AS MessageID, @SendImgCount AS SendImgCount
  47144. RETURN
  47145. END
  47146. GO
  47147. /****** Object: StoredProcedure [dbo].[WS_SettleVideo_GetList] Script Date: 2024/1/12 11:01:14 ******/
  47148. SET ANSI_NULLS ON
  47149. GO
  47150. SET QUOTED_IDENTIFIER ON
  47151. GO
  47152. -- EXEC [WS_SettleVideo_GetList]
  47153. -- ==============================================
  47154. -- Author: wolf
  47155. -- Create Date: 2015-10-10
  47156. -- Mendor: wolf
  47157. -- Alter Date: 2015-10-10
  47158. -- Description: 结算视频列表
  47159. -- ==============================================
  47160. CREATE PROCEDURE [dbo].[WS_SettleVideo_GetList]
  47161. AS
  47162. SET NOCOUNT ON
  47163. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47164. SET XACT_ABORT ON
  47165. BEGIN
  47166. --返回信息
  47167. SELECT
  47168. GameID, LoseAmount, MaxTimes, MaxRate
  47169. FROM
  47170. [SettleVideo]
  47171. ORDER BY
  47172. LoseAmount ASC
  47173. RETURN
  47174. END
  47175. GO
  47176. /****** Object: StoredProcedure [dbo].[WS_Share_GetItems] Script Date: 2024/1/12 11:01:14 ******/
  47177. SET ANSI_NULLS ON
  47178. GO
  47179. SET QUOTED_IDENTIFIER ON
  47180. GO
  47181. -- EXEC [WS_Share_GetItems]
  47182. -- ==============================================
  47183. -- Author: wolf
  47184. -- Create Date: 2014-01-21
  47185. -- Mendor: wolf
  47186. -- Alter Date: 2016-11-07
  47187. -- Description: 分享
  47188. -- ==============================================
  47189. CREATE PROCEDURE [dbo].[WS_Share_GetItems]
  47190. @UserID INT, --用户ID
  47191. @Reward TINYINT --isReward: 0 表示查询 1 表示领取,需要写数据库
  47192. AS
  47193. SET NOCOUNT ON
  47194. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47195. SET XACT_ABORT ON
  47196. BEGIN
  47197. DECLARE @Items VARCHAR(128) --奖励
  47198. DECLARE @Crdate DATETIME --时间
  47199. DECLARE @DateFlag DATETIME --日期时间
  47200. --日期标识
  47201. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  47202. --获取分享信息
  47203. SELECT @Crdate = Crdate FROM [UserShare] WHERE Crdate >= @DateFlag AND UserID = @UserID
  47204. --已经领取过了
  47205. IF(@Crdate > 0)
  47206. RETURN
  47207. --物品
  47208. SET @Items = '[{"ItemId":1,"Count":3000}]'
  47209. --查询
  47210. IF(@Reward = 0)
  47211. BEGIN
  47212. --返回信息
  47213. SELECT @Items AS Items
  47214. RETURN
  47215. END
  47216. --添加
  47217. INSERT INTO [UserShare](UserID, Crdate) VALUES(@UserID, GETDATE())
  47218. --返回信息
  47219. SELECT @Items AS Items
  47220. RETURN
  47221. END
  47222. GO
  47223. /****** Object: StoredProcedure [dbo].[WS_Shop_GetExchangeRate] Script Date: 2024/1/12 11:01:14 ******/
  47224. SET ANSI_NULLS ON
  47225. GO
  47226. SET QUOTED_IDENTIFIER ON
  47227. GO
  47228. -- EXEC [WS_Shop_GetExchangeRate]
  47229. -- ==============================================
  47230. -- Author: wolf
  47231. -- Create Date: 2015-10-10
  47232. -- Mendor: wolf
  47233. -- Alter Date: 2015-10-10
  47234. -- Description: 获取汇率列表
  47235. -- ==============================================
  47236. CREATE PROCEDURE [dbo].[WS_Shop_GetExchangeRate]
  47237. AS
  47238. SET NOCOUNT ON
  47239. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47240. SET XACT_ABORT ON
  47241. BEGIN
  47242. --返回信息
  47243. SELECT
  47244. Currency, CountryName, CountryCode, Rate
  47245. FROM
  47246. [ExchangeRate]
  47247. RETURN
  47248. END
  47249. GO
  47250. /****** Object: StoredProcedure [dbo].[WS_Shop_GetFirstPurchase] Script Date: 2024/1/12 11:01:14 ******/
  47251. SET ANSI_NULLS ON
  47252. GO
  47253. SET QUOTED_IDENTIFIER ON
  47254. GO
  47255. -- EXEC [WS_Shop_GetFirstPurchase]
  47256. -- ==============================================
  47257. -- Author: wolf
  47258. -- Create Date: 2014-01-21
  47259. -- Mendor: wolf
  47260. -- Alter Date: 2016-11-07
  47261. -- Description: 获取首次充值
  47262. -- ==============================================
  47263. CREATE PROCEDURE [dbo].[WS_Shop_GetFirstPurchase]
  47264. @UserID INT --用户ID
  47265. AS
  47266. SET NOCOUNT ON
  47267. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47268. SET XACT_ABORT ON
  47269. BEGIN
  47270. DECLARE @tmptable TABLE(
  47271. ProductID VARCHAR(32) NOT NULL, --产品ID
  47272. IsFirst TINYINT NOT NULL --是否首次
  47273. )
  47274. --初始化表变量
  47275. INSERT INTO @tmptable(ProductID, IsFirst)
  47276. SELECT ProductID, 0 FROM [DiamondMall] WHERE PayType = 1
  47277. --获取用户充值
  47278. UPDATE
  47279. @tmptable
  47280. SET
  47281. IsFirst = 1
  47282. WHERE
  47283. ProductID NOT IN (SELECT ProductID FROM [UserRechargeProduct] WHERE UserID = @UserID)
  47284. --返回信息
  47285. SELECT ProductID, IsFirst FROM @tmptable
  47286. RETURN
  47287. END
  47288. GO
  47289. /****** Object: StoredProcedure [dbo].[WS_Shop_GetList] Script Date: 2024/1/12 11:01:14 ******/
  47290. SET ANSI_NULLS ON
  47291. GO
  47292. SET QUOTED_IDENTIFIER ON
  47293. GO
  47294. -- EXEC [WS_Shop_GetList]
  47295. -- ==============================================
  47296. -- Author: wolf
  47297. -- Create Date: 2015-10-10
  47298. -- Mendor: wolf
  47299. -- Alter Date: 2015-10-10
  47300. -- Description: 获取商城列表
  47301. -- ==============================================
  47302. CREATE PROCEDURE [dbo].[WS_Shop_GetList]
  47303. AS
  47304. SET NOCOUNT ON
  47305. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47306. SET XACT_ABORT ON
  47307. BEGIN
  47308. --返回信息
  47309. SELECT
  47310. ProductID, ProductName, Amount, Price, PayType, IsHot, Bonus, Extra, ShopType, ShowPrice,
  47311. Sort, AnimationType, UserType, IsBottom, ProductDesc
  47312. FROM
  47313. [DiamondMall]
  47314. UNION ALL
  47315. SELECT
  47316. ProductID, PackName, 1, Price, 1, 0, 0, '', 5, Price,
  47317. 0, 0, 0, 0, ''
  47318. FROM
  47319. [GiftPack]
  47320. UNION ALL
  47321. SELECT
  47322. ProductID, PackName, 1, Price, 1, 0, 0, '', 6, Price,
  47323. 0, 0, 0, 0, ''
  47324. FROM
  47325. [GrowthPack]
  47326. UNION ALL
  47327. SELECT
  47328. ProductID, ProductName, 1, Price, 1, 0, 0, '', 7, Price,
  47329. 0, 0, 0, 0, ''
  47330. FROM
  47331. [MonthlyCard]
  47332. UNION ALL
  47333. SELECT
  47334. ProductID, VipDealName, 1, Price, 1, 0, 0, '', 8, Price,
  47335. 0, 0, 0, 0, ''
  47336. FROM
  47337. [VipDeal]
  47338. RETURN
  47339. END
  47340. GO
  47341. /****** Object: StoredProcedure [dbo].[WS_Shop_GetLotteryList] Script Date: 2024/1/12 11:01:14 ******/
  47342. SET ANSI_NULLS ON
  47343. GO
  47344. SET QUOTED_IDENTIFIER ON
  47345. GO
  47346. -- EXEC [WS_Shop_GetLotteryList]
  47347. -- ==============================================
  47348. -- Author: wolf
  47349. -- Create Date: 2014-01-21
  47350. -- Mendor: wolf
  47351. -- Alter Date: 2016-11-07
  47352. -- Description: 抽奖商城列表
  47353. -- ==============================================
  47354. CREATE PROCEDURE [dbo].[WS_Shop_GetLotteryList]
  47355. AS
  47356. SET NOCOUNT ON
  47357. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47358. SET XACT_ABORT ON
  47359. BEGIN
  47360. SELECT
  47361. ShopType, ProductID, Ratio, MinOdds, MaxOdds
  47362. FROM
  47363. [LotteryMall]
  47364. ORDER BY
  47365. ProductID ASC
  47366. RETURN
  47367. END
  47368. GO
  47369. /****** Object: StoredProcedure [dbo].[WS_Shop_GetRechargeList] Script Date: 2024/1/12 11:01:14 ******/
  47370. SET ANSI_NULLS ON
  47371. GO
  47372. SET QUOTED_IDENTIFIER ON
  47373. GO
  47374. -- EXEC [WS_Shop_GetRechargeList]
  47375. -- ==============================================
  47376. -- Author: wolf
  47377. -- Create Date: 2014-01-21
  47378. -- Mendor: wolf
  47379. -- Alter Date: 2016-11-07
  47380. -- Description: 充值记录列表
  47381. -- ==============================================
  47382. CREATE PROCEDURE [dbo].[WS_Shop_GetRechargeList]
  47383. @UserID INT, --用户ID
  47384. @ShopType INT --产品类型
  47385. AS
  47386. SET NOCOUNT ON
  47387. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47388. SET XACT_ABORT ON
  47389. BEGIN
  47390. IF(@ShopType > 0)
  47391. BEGIN
  47392. --返回信息
  47393. SELECT
  47394. ProductID, ShopType
  47395. FROM
  47396. [UserRechargeProduct]
  47397. WHERE
  47398. UserID = @UserID AND Crdate >= CONVERT(CHAR(10), GETDATE(), 120) AND ShopType = @ShopType
  47399. RETURN
  47400. END
  47401. --返回信息
  47402. SELECT
  47403. ProductId, ShopType
  47404. FROM
  47405. [UserRechargeProduct]
  47406. WHERE
  47407. UserID = @UserID AND Crdate >= CONVERT(CHAR(10), GETDATE(), 120)
  47408. RETURN
  47409. END
  47410. GO
  47411. /****** Object: StoredProcedure [dbo].[WS_Shop_GetShopTypeCount] Script Date: 2024/1/12 11:01:14 ******/
  47412. SET ANSI_NULLS ON
  47413. GO
  47414. SET QUOTED_IDENTIFIER ON
  47415. GO
  47416. -- EXEC [WS_Shop_GetShopTypeCount]
  47417. -- @UserID = 0
  47418. -- @ShopType = 0
  47419. -- ==============================================
  47420. -- Author: wolf
  47421. -- Create Date: 2014-01-21
  47422. -- Mendor: wolf
  47423. -- Alter Date: 2016-11-07
  47424. -- Description: 获取商品类型的数量
  47425. -- ==============================================
  47426. CREATE PROCEDURE [dbo].[WS_Shop_GetShopTypeCount]
  47427. @UserID INT, --用户ID
  47428. @ShopType INT --产品类型
  47429. AS
  47430. SET NOCOUNT ON
  47431. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47432. SET XACT_ABORT ON
  47433. BEGIN
  47434. --返回信息
  47435. SELECT
  47436. COUNT(ProductID) as Num
  47437. FROM
  47438. [UserRechargeProduct]
  47439. WHERE
  47440. UserID = @UserID AND ShopType = @ShopType
  47441. RETURN
  47442. END
  47443. GO
  47444. /****** Object: StoredProcedure [dbo].[WS_Sign_GetContinueList] Script Date: 2024/1/12 11:01:14 ******/
  47445. SET ANSI_NULLS ON
  47446. GO
  47447. SET QUOTED_IDENTIFIER ON
  47448. GO
  47449. -- EXEC [WS_Sign_GetContinueList]
  47450. -- ==============================================
  47451. -- Author: wolf
  47452. -- Create Date: 2015-10-10
  47453. -- Mendor: wolf
  47454. -- Alter Date: 2015-10-10
  47455. -- Description: 连续签到信息列表
  47456. -- ==============================================
  47457. CREATE PROCEDURE [dbo].[WS_Sign_GetContinueList]
  47458. AS
  47459. SET NOCOUNT ON
  47460. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47461. SET XACT_ABORT ON
  47462. BEGIN
  47463. --返回信息
  47464. SELECT Day, Award FROM [ContinueSignInfo] ORDER BY Day ASC
  47465. RETURN
  47466. END
  47467. GO
  47468. /****** Object: StoredProcedure [dbo].[WS_Sign_GetList] Script Date: 2024/1/12 11:01:14 ******/
  47469. SET ANSI_NULLS ON
  47470. GO
  47471. SET QUOTED_IDENTIFIER ON
  47472. GO
  47473. -- EXEC [WS_Sign_GetList]
  47474. -- ==============================================
  47475. -- Author: wolf
  47476. -- Create Date: 2015-10-10
  47477. -- Mendor: wolf
  47478. -- Alter Date: 2015-10-10
  47479. -- Description: 签到信息列表
  47480. -- ==============================================
  47481. CREATE PROCEDURE [dbo].[WS_Sign_GetList]
  47482. AS
  47483. SET NOCOUNT ON
  47484. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47485. SET XACT_ABORT ON
  47486. BEGIN
  47487. --返回信息
  47488. SELECT SignID, Award, DoubleVipLevel FROM [SignInfo] ORDER BY SignID ASC
  47489. RETURN
  47490. END
  47491. GO
  47492. /****** Object: StoredProcedure [dbo].[WS_SigninWheel_DoSignin] Script Date: 2024/1/12 11:01:14 ******/
  47493. SET ANSI_NULLS ON
  47494. GO
  47495. SET QUOTED_IDENTIFIER ON
  47496. GO
  47497. -- EXEC [WS_SigninWheel_DoSignin]
  47498. -- ==============================================
  47499. -- Author: wolf
  47500. -- Create Date: 2014-01-21
  47501. -- Mendor: wolf
  47502. -- Alter Date: 2016-11-07
  47503. -- Description: 签到
  47504. -- ==============================================
  47505. CREATE PROCEDURE [dbo].[WS_SigninWheel_DoSignin]
  47506. @UserID INT, --用户ID
  47507. @Base INT, --基础数值
  47508. @Multiple INT, --倍率
  47509. @Amount BIGINT, --金币
  47510. @ItemID INT, --道具ID
  47511. @ItemPack VARCHAR(128) --道具
  47512. AS
  47513. SET NOCOUNT ON
  47514. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47515. SET XACT_ABORT ON
  47516. BEGIN
  47517. --添加
  47518. INSERT INTO [UserSigninHistory]
  47519. (
  47520. UserID, Base, Multiple, ItemID, Amount, Crdate, Awards
  47521. )
  47522. VALUES
  47523. (
  47524. @UserID, @Base, @Multiple, @ItemID, @Amount, GETDATE(), @ItemPack
  47525. )
  47526. RETURN
  47527. END
  47528. GO
  47529. /****** Object: StoredProcedure [dbo].[WS_SigninWheel_GetConfig] Script Date: 2024/1/12 11:01:14 ******/
  47530. SET ANSI_NULLS ON
  47531. GO
  47532. SET QUOTED_IDENTIFIER ON
  47533. GO
  47534. -- EXEC [WS_SigninWheel_GetConfig]
  47535. -- ==============================================
  47536. -- Author: wolf
  47537. -- Create Date: 2014-01-21
  47538. -- Mendor: wolf
  47539. -- Alter Date: 2016-11-07
  47540. -- Description: 签到配置信息
  47541. -- ==============================================
  47542. CREATE PROCEDURE [dbo].[WS_SigninWheel_GetConfig]
  47543. AS
  47544. SET NOCOUNT ON
  47545. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47546. SET XACT_ABORT ON
  47547. BEGIN
  47548. --返回信息
  47549. SELECT Info FROM [SigninConfig] WHERE ConfigID = 1
  47550. RETURN
  47551. END
  47552. GO
  47553. /****** Object: StoredProcedure [dbo].[WS_SigninWheel_GetHistory] Script Date: 2024/1/12 11:01:14 ******/
  47554. SET ANSI_NULLS ON
  47555. GO
  47556. SET QUOTED_IDENTIFIER ON
  47557. GO
  47558. -- EXEC [WS_SigninWheel_History]
  47559. -- ==============================================
  47560. -- Author: wolf
  47561. -- Create Date: 2014-01-21
  47562. -- Mendor: wolf
  47563. -- Alter Date: 2016-11-07
  47564. -- Description: 签到历史
  47565. -- ==============================================
  47566. CREATE PROCEDURE [dbo].[WS_SigninWheel_GetHistory]
  47567. AS
  47568. SET NOCOUNT ON
  47569. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47570. SET XACT_ABORT ON
  47571. BEGIN
  47572. DECLARE @tmptable TABLE(
  47573. Rid INT NOT NULL, --标识
  47574. UserID INT NOT NULL, --用户ID
  47575. Base INT NOT NULL, --基础数值
  47576. Multiple INT NOT NULL, --倍率
  47577. ItemID INT NOT NULL, --道具ID
  47578. Awards VARCHAR(128) NOT NULL --道具
  47579. )
  47580. --初始化表变量
  47581. INSERT INTO @tmptable
  47582. (
  47583. Rid, UserID, Base, Multiple, ItemID, Awards
  47584. )
  47585. SELECT TOP 50
  47586. Rid, UserID, Base, Multiple, ItemID, Awards
  47587. FROM
  47588. [UserSigninHistory]
  47589. ORDER BY
  47590. Rid DESC
  47591. --返回信息
  47592. SELECT
  47593. UserID, Base, Multiple, ItemID, Awards
  47594. FROM
  47595. @tmptable
  47596. ORDER BY
  47597. Rid DESC
  47598. RETURN
  47599. END
  47600. GO
  47601. /****** Object: StoredProcedure [dbo].[WS_SigninWheel_GetLastTime] Script Date: 2024/1/12 11:01:14 ******/
  47602. SET ANSI_NULLS ON
  47603. GO
  47604. SET QUOTED_IDENTIFIER ON
  47605. GO
  47606. -- EXEC [WS_SigninWheel_GetLastTime]
  47607. -- ==============================================
  47608. -- Author: wolf
  47609. -- Create Date: 2014-01-21
  47610. -- Mendor: wolf
  47611. -- Alter Date: 2016-11-07
  47612. -- Description: 签到最近签到时间
  47613. -- ==============================================
  47614. CREATE PROCEDURE [dbo].[WS_SigninWheel_GetLastTime]
  47615. @UserID INT --用户ID
  47616. AS
  47617. SET NOCOUNT ON
  47618. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47619. SET XACT_ABORT ON
  47620. BEGIN
  47621. --返回最近签到时间
  47622. SELECT TOP 1 CONVERT(VARCHAR(20), Crdate, 120) AS Crdate FROM [UserSigninHistory] WHERE UserID = @UserID ORDER BY Rid DESC
  47623. RETURN
  47624. END
  47625. GO
  47626. /****** Object: StoredProcedure [dbo].[WS_SlotUser_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  47627. SET ANSI_NULLS ON
  47628. GO
  47629. SET QUOTED_IDENTIFIER ON
  47630. GO
  47631. -- EXEC [WS_SlotUser_GetInfo]
  47632. -- ==============================================
  47633. -- Author: wolf
  47634. -- Create Date: 2014-09-03
  47635. -- Mendor: wolf
  47636. -- Alter Date: 2014-09-04
  47637. -- Description: Slot广告用户
  47638. -- ==============================================
  47639. CREATE PROCEDURE [dbo].[WS_SlotUser_GetInfo]
  47640. @UserID INT, --用户ID
  47641. @GameID INT --游戏ID
  47642. AS
  47643. SET NOCOUNT ON
  47644. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47645. SET XACT_ABORT ON
  47646. BEGIN
  47647. DECLARE @TotalAdCount INT --广告次数
  47648. DECLARE @FreeSpinCount INT --免费次数
  47649. DECLARE @MoneySum BIGINT --输赢金币
  47650. DECLARE @StillAdCount INT --剩余广告次数
  47651. DECLARE @UpdateTime DATETIME --更新时间
  47652. DECLARE @CurrTime DATETIME --时间
  47653. DECLARE @DateFlag SMALLDATETIME --日期
  47654. SET @CurrTime = GETDATE()
  47655. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  47656. SET @MoneySum = 0
  47657. SET @GameID = CASE WHEN @GameID = 0 THEN 51 ELSE @GameID END
  47658. --输赢金币
  47659. SELECT @MoneySum = MoneySum FROM [DailyBetStat] WHERE DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID
  47660. --配置信息
  47661. SELECT @TotalAdCount = TotalAdCount, @FreeSpinCount = FreeSpinCount FROM [SlotAdCfg] WHERE GameID = @GameID
  47662. --Slot广告用户信息
  47663. SELECT
  47664. @StillAdCount = StillAdCount, @UpdateTime = UpdateTime
  47665. FROM
  47666. [SlotAdUser]
  47667. WHERE
  47668. UserID = @UserID AND GameID = @GameID
  47669. --还没有数据
  47670. IF(@@ROWCOUNT = 0)
  47671. BEGIN
  47672. SET @StillAdCount = @TotalAdCount
  47673. INSERT INTO [SlotAdUser]
  47674. (
  47675. UserID, GameID, StillAdCount, UpdateTime
  47676. )
  47677. VALUES
  47678. (
  47679. @UserID, @GameID, @StillAdCount, @CurrTime
  47680. )
  47681. END
  47682. --过期了
  47683. IF(@UpdateTime <= @DateFlag)
  47684. BEGIN
  47685. SET @StillAdCount = @TotalAdCount
  47686. UPDATE
  47687. [SlotAdUser]
  47688. SET
  47689. StillAdCount = @StillAdCount, UpdateTime = @CurrTime
  47690. WHERE
  47691. UserID = @UserID AND GameID = @GameID
  47692. END
  47693. --返回信息
  47694. SELECT
  47695. @MoneySum AS MoneySum, @StillAdCount AS StillAdCount, @TotalAdCount AS TotalAdCount,
  47696. @FreeSpinCount AS FreeSpinCount
  47697. RETURN
  47698. END
  47699. GO
  47700. /****** Object: StoredProcedure [dbo].[WS_SlotUser_UseAd] Script Date: 2024/1/12 11:01:14 ******/
  47701. SET ANSI_NULLS ON
  47702. GO
  47703. SET QUOTED_IDENTIFIER ON
  47704. GO
  47705. -- EXEC [WS_SlotUser_UseAd]
  47706. -- ==============================================
  47707. -- Author: wolf
  47708. -- Create Date: 2014-09-03
  47709. -- Mendor: wolf
  47710. -- Alter Date: 2014-09-04
  47711. -- Description: Slot广告用户
  47712. -- ==============================================
  47713. CREATE PROCEDURE [dbo].[WS_SlotUser_UseAd]
  47714. @UserID INT, --用户ID
  47715. @GameID INT = 51 --游戏ID
  47716. AS
  47717. SET NOCOUNT ON
  47718. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47719. SET XACT_ABORT ON
  47720. BEGIN
  47721. DECLARE @RetCode TINYINT --操作结果
  47722. DECLARE @StillAdCount INT --剩余广告次数
  47723. SET @RetCode = 0
  47724. SET @StillAdCount = 0
  47725. --剩余免费次数-1
  47726. UPDATE
  47727. [SlotAdUser]
  47728. SET
  47729. StillAdCount = StillAdCount - 1, @StillAdCount = StillAdCount - 1
  47730. WHERE
  47731. UserID = @UserID AND GameID = @GameID AND StillAdCount > 0
  47732. IF(@@ROWCOUNT = 0)
  47733. BEGIN
  47734. SELECT @RetCode AS RetCode, @StillAdCount AS StillAdCount
  47735. RETURN
  47736. END
  47737. --操作成功
  47738. SET @RetCode = 1
  47739. SELECT @RetCode AS RetCode, @StillAdCount AS StillAdCount
  47740. RETURN
  47741. END
  47742. GO
  47743. /****** Object: StoredProcedure [dbo].[WS_SNGMatch_WriteHistory] Script Date: 2024/1/12 11:01:14 ******/
  47744. SET ANSI_NULLS ON
  47745. GO
  47746. SET QUOTED_IDENTIFIER ON
  47747. GO
  47748. -- EXEC [WS_SNGMatch_WriteHistory]
  47749. -- ==============================================
  47750. -- Author: wolf
  47751. -- Create Date: 2016-07-21
  47752. -- Mendor: wolf
  47753. -- Alter Date: 2016-11-07
  47754. -- Description: SNG比赛历史记录
  47755. -- ==============================================
  47756. CREATE PROCEDURE [dbo].[WS_SNGMatch_WriteHistory]
  47757. @MatchID INT, --比赛ID
  47758. @MatchNo VARCHAR(32), --比赛号
  47759. @MatchName VARCHAR(32), --比赛名称
  47760. @GameID INT, --游戏ID
  47761. @GameName VARCHAR(32), --游戏名称
  47762. @StartTime INT, --开始时间
  47763. @EndTime INT, --结束时间
  47764. @UserInfo VARCHAR(2048) --用户信息(用户ID1,名次1,积分1,报名费用ID1,报名费用1;用户ID2,昵称2,积分2,报名费用ID2,报名费用2;)
  47765. AS
  47766. SET NOCOUNT ON
  47767. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47768. SET XACT_ABORT ON
  47769. BEGIN
  47770. DECLARE @SerialNumber BIGINT --流水号
  47771. DECLARE @UserID INT --用户ID
  47772. DECLARE @RankId INT --名次
  47773. DECLARE @Score INT --积分
  47774. DECLARE @ItemId INT --道具ID
  47775. DECLARE @Fee BIGINT --费用(报名)
  47776. DECLARE @StartIndex INT --起始索引
  47777. DECLARE @EndIndex INT --截止索引
  47778. DECLARE @tmptable TABLE(
  47779. UserID INT NOT NULL, --用户ID
  47780. RankId INT NOT NULL, --名次
  47781. Score INT NOT NULL, --积分
  47782. ItemId INT NOT NULL, --道具ID
  47783. Fee BIGINT NOT NULL --费用(报名)
  47784. )
  47785. --房间记录
  47786. INSERT INTO [SNGMatchHistory]
  47787. (
  47788. MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
  47789. )
  47790. VALUES
  47791. (
  47792. @MatchID, @MatchNo, @MatchName, @GameID, @GameName, dbo.fn_StampToTime(@StartTime), dbo.fn_StampToTime(@EndTime)
  47793. )
  47794. --流水号
  47795. SET @SerialNumber = SCOPE_IDENTITY()
  47796. SET @StartIndex = 0
  47797. SET @EndIndex = 0
  47798. --用户ID1,名次1,积分1,报名费用1;
  47799. WHILE(1=1)
  47800. BEGIN
  47801. SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
  47802. IF(@EndIndex <= 0)
  47803. BREAK
  47804. SET @UserID = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
  47805. SET @StartIndex = @EndIndex + 1
  47806. SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
  47807. SET @RankId = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
  47808. SET @StartIndex = @EndIndex + 1
  47809. SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
  47810. SET @Score = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
  47811. SET @StartIndex = @EndIndex + 1
  47812. SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
  47813. SET @ItemId = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
  47814. SET @StartIndex = @EndIndex + 1
  47815. SET @EndIndex = CHARINDEX(';', @UserInfo, @StartIndex)
  47816. SET @Fee = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
  47817. SET @StartIndex = @EndIndex + 1
  47818. --初始化表变量
  47819. INSERT INTO @tmptable
  47820. (
  47821. UserID, RankId, Score, ItemId, Fee
  47822. )
  47823. VALUES
  47824. (
  47825. @UserID, @RankId, @Score, @ItemId, @Fee
  47826. )
  47827. END
  47828. --SNG比赛椅子历史
  47829. INSERT INTO [SNGMatchChairHistory]
  47830. (
  47831. SerialNumber, UserID, RankId, Score, ItemId, Fee, Crdate
  47832. )
  47833. SELECT
  47834. @SerialNumber, UserID, RankId, Score, ItemId, Fee, dbo.fn_StampToTime(@StartTime)
  47835. FROM
  47836. @tmptable
  47837. ORDER BY
  47838. RankId ASC
  47839. RETURN
  47840. END
  47841. GO
  47842. /****** Object: StoredProcedure [dbo].[WS_Spread_Apply] Script Date: 2024/1/12 11:01:14 ******/
  47843. SET ANSI_NULLS ON
  47844. GO
  47845. SET QUOTED_IDENTIFIER ON
  47846. GO
  47847. -- EXEC [WS_Spread_Apply]
  47848. -- ==============================================
  47849. -- Author: wolf
  47850. -- Create Date: 2015-03-13
  47851. -- Mendor: wolf
  47852. -- Alter Date: 2017-02-16
  47853. -- Description: 会员申请
  47854. -- ==============================================
  47855. CREATE PROCEDURE [dbo].[WS_Spread_Apply]
  47856. @UserID INT, --用户ID
  47857. @Code INT, --推荐码(用户ID)
  47858. @RetCode TINYINT OUTPUT --操作结果
  47859. AS
  47860. SET NOCOUNT ON
  47861. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47862. SET XACT_ABORT ON
  47863. BEGIN
  47864. SET @RetCode = 0
  47865. --不能绑定自己
  47866. IF(@UserID = @Code)
  47867. BEGIN
  47868. SET @RetCode = 11
  47869. RETURN
  47870. END
  47871. --判断是否用户存在
  47872. IF NOT EXISTS(SELECT UserID FROM [AllUser] WHERE UserID = @Code)
  47873. BEGIN
  47874. SET @RetCode = 13
  47875. RETURN
  47876. END
  47877. --判断是否有过申请
  47878. IF EXISTS(SELECT UserID FROM [SpreadMember] WHERE UserID = @UserID)
  47879. BEGIN
  47880. SET @RetCode = 12
  47881. RETURN
  47882. END
  47883. --推广会员
  47884. INSERT INTO [SpreadMember]
  47885. (
  47886. UserID, Code, IsGift, Crdate
  47887. )
  47888. VALUES
  47889. (
  47890. @UserID, @Code, 0, GETDATE()
  47891. )
  47892. --操作成功
  47893. SET @RetCode = 1
  47894. RETURN
  47895. END
  47896. GO
  47897. /****** Object: StoredProcedure [dbo].[WS_Spread_GetMembers] Script Date: 2024/1/12 11:01:14 ******/
  47898. SET ANSI_NULLS ON
  47899. GO
  47900. SET QUOTED_IDENTIFIER ON
  47901. GO
  47902. -- EXEC [WS_Spread_GetMembers]
  47903. -- ==============================================
  47904. -- Author: wolf
  47905. -- Create Date: 2015-03-13
  47906. -- Mendor: wolf
  47907. -- Alter Date: 2017-02-16
  47908. -- Description: 推广会员
  47909. -- ==============================================
  47910. CREATE PROCEDURE [dbo].[WS_Spread_GetMembers]
  47911. @Code INT, --推广码(用户ID)
  47912. @PageIndex INT, --页索引
  47913. @PageSize INT, --页大小
  47914. @RecordCount INT OUTPUT --记录数
  47915. AS
  47916. SET NOCOUNT ON
  47917. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47918. SET XACT_ABORT ON
  47919. BEGIN
  47920. DECLARE @StartIndex INT --起始行索引
  47921. DECLARE @EndIndex INT --截止行索引
  47922. DECLARE @tmptable TABLE(
  47923. UserID INT NOT NULL, --用户ID
  47924. IsGift TINYINT NOT NULL, --是否领取奖励
  47925. Crdate DATETIME NOT NULL --时间
  47926. )
  47927. SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
  47928. SET @EndIndex = @PageIndex * @PageSize
  47929. --初始化
  47930. INSERT INTO @tmptable
  47931. (
  47932. UserID, IsGift, Crdate
  47933. )
  47934. SELECT
  47935. UserID, IsGift, Crdate
  47936. FROM
  47937. [SpreadMember]
  47938. WHERE
  47939. Code = @Code
  47940. --记录数
  47941. SET @RecordCount = @@ROWCOUNT
  47942. ;WITH [List] AS
  47943. (
  47944. SELECT
  47945. ROW_NUMBER() OVER(ORDER BY Crdate ASC) AS RowNumber,
  47946. UserID, IsGift, Crdate
  47947. FROM
  47948. @tmptable
  47949. )
  47950. --返回信息
  47951. SELECT
  47952. UserID, IsGift, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
  47953. FROM
  47954. [List]
  47955. WHERE
  47956. RowNumber BETWEEN @StartIndex AND @EndIndex
  47957. ORDER BY
  47958. RowNumber ASC
  47959. RETURN
  47960. END
  47961. GO
  47962. /****** Object: StoredProcedure [dbo].[WS_Spread_Gift] Script Date: 2024/1/12 11:01:14 ******/
  47963. SET ANSI_NULLS ON
  47964. GO
  47965. SET QUOTED_IDENTIFIER ON
  47966. GO
  47967. -- EXEC [WS_Spread_Gift]
  47968. -- ==============================================
  47969. -- Author: wolf
  47970. -- Create Date: 2015-03-13
  47971. -- Mendor: wolf
  47972. -- Alter Date: 2017-02-16
  47973. -- Description: 领取奖励
  47974. -- ==============================================
  47975. CREATE PROCEDURE [dbo].[WS_Spread_Gift]
  47976. @Code INT, --推广码
  47977. @FromUserID INT, --用户ID
  47978. @RetCode TINYINT OUTPUT --操作结果
  47979. AS
  47980. SET NOCOUNT ON
  47981. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  47982. SET XACT_ABORT ON
  47983. BEGIN
  47984. SET @RetCode = 0
  47985. --领取奖励
  47986. UPDATE [SpreadMember] SET IsGift = 1 WHERE Code = @Code AND UserID = @FromUserID AND IsGift = 0
  47987. IF(@@ROWCOUNT = 0)
  47988. RETURN
  47989. --领取成功
  47990. SET @RetCode = 1
  47991. RETURN
  47992. END
  47993. GO
  47994. /****** Object: StoredProcedure [dbo].[WS_SysBroadcast_GetList] Script Date: 2024/1/12 11:01:14 ******/
  47995. SET ANSI_NULLS ON
  47996. GO
  47997. SET QUOTED_IDENTIFIER ON
  47998. GO
  47999. -- EXEC [WS_SysBroadcast_GetList]
  48000. -- @BroadcastID = 0
  48001. -- ==============================================
  48002. -- Author: wolf
  48003. -- Create Date: 2013-08-10
  48004. -- Mendor: wolf
  48005. -- Alter Date: 2015-05-28
  48006. -- Description: 获取广播列表
  48007. -- ==============================================
  48008. CREATE PROCEDURE [dbo].[WS_SysBroadcast_GetList]
  48009. @BroadcastID INT --广播ID
  48010. AS
  48011. SET NOCOUNT ON
  48012. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48013. SET XACT_ABORT ON
  48014. BEGIN
  48015. DECLARE @CurrTime DATETIME --系统当前时间
  48016. DECLARE @Rid INT --标识
  48017. DECLARE @InterMinutes INT --间隔分钟
  48018. DECLARE @Msg VARCHAR(512) --广播消息
  48019. SET @CurrTime = GETDATE()
  48020. --获取定时广播信息
  48021. SELECT TOP 1
  48022. @Rid = Rid, @Msg = Msg, @InterMinutes = InterMinutes
  48023. FROM
  48024. [TimeBroadcast]
  48025. WHERE
  48026. BeginDate + BeginTime <= @CurrTime
  48027. AND EndDate + EndTime >= @CurrTime
  48028. AND CONVERT(CHAR(11), @CurrTime, 120) + BeginTime <= @CurrTime
  48029. AND CONVERT(CHAR(11), @CurrTime, 120) + EndTime >= @CurrTime
  48030. AND DATEDIFF(MINUTE, UpdateTime, @CurrTime) >= InterMinutes
  48031. ORDER BY
  48032. UpdateTime ASC
  48033. --有定时广播消息
  48034. IF(@Rid > 0)
  48035. BEGIN
  48036. --加间隔分钟
  48037. UPDATE [TimeBroadcast] SET UpdateTime = @CurrTime WHERE Rid = @Rid
  48038. --广播消息
  48039. SET @Msg = 'System message:' + @Msg
  48040. --发送消息
  48041. INSERT INTO [SysBroadcast](UserID, Msg, Crdate, Priority) VALUES(-1, @Msg, @CurrTime, 110)
  48042. END
  48043. --第1次进来
  48044. IF(@BroadCastID = 0)
  48045. BEGIN
  48046. SELECT TOP 10
  48047. BroadcastID, Msg, Priority, UserID, '' AS Ext
  48048. FROM
  48049. [SysBroadcast]
  48050. WHERE
  48051. Crdate >= DATEADD(MINUTE, -1, @CurrTime)
  48052. ORDER BY
  48053. BroadcastID ASC
  48054. RETURN
  48055. END
  48056. --返回信息:广播ID(bid)(int)、消息(m)(varchar(1024))
  48057. SELECT TOP 10
  48058. BroadcastID, Msg, Priority, UserID, '' AS Ext
  48059. FROM
  48060. [SysBroadcast]
  48061. WHERE
  48062. BroadcastID > @BroadcastID AND Crdate >= DATEADD(MINUTE, -1, @CurrTime)
  48063. ORDER BY
  48064. BroadcastID ASC
  48065. RETURN
  48066. END
  48067. GO
  48068. /****** Object: StoredProcedure [dbo].[WS_SysMessage_Del] Script Date: 2024/1/12 11:01:14 ******/
  48069. SET ANSI_NULLS ON
  48070. GO
  48071. SET QUOTED_IDENTIFIER ON
  48072. GO
  48073. -- EXEC [WS_SysMessage_Del]
  48074. -- ==============================================
  48075. -- Author: wolf
  48076. -- Create Date: 2015-10-10
  48077. -- Mendor: wolf
  48078. -- Alter Date: 2015-10-10
  48079. -- Description: 删除系统消息
  48080. -- ==============================================
  48081. CREATE PROCEDURE [dbo].[WS_SysMessage_Del]
  48082. @UserID INT, --用户ID
  48083. @SysMsgID INT, --系统消息ID
  48084. @RetCode INT OUTPUT --操作结果
  48085. AS
  48086. SET NOCOUNT ON
  48087. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48088. SET XACT_ABORT ON
  48089. BEGIN
  48090. SET @RetCode = 0
  48091. --删除系统消息
  48092. --DELETE FROM [SysMessage] WHERE UserID = @UserID AND SysMsgID = @SysMsgID
  48093. UPDATE [SysMessage] SET Status = 3 WHERE UserID = @UserID AND SysMsgID = @SysMsgID AND Status IN (1, 2)
  48094. IF(@@ROWCOUNT > 0)
  48095. BEGIN
  48096. SET @RetCode = 1
  48097. END
  48098. RETURN
  48099. END
  48100. GO
  48101. /****** Object: StoredProcedure [dbo].[WS_SysMessage_GetGiftList] Script Date: 2024/1/12 11:01:14 ******/
  48102. SET ANSI_NULLS ON
  48103. GO
  48104. SET QUOTED_IDENTIFIER ON
  48105. GO
  48106. -- EXEC [WS_SysMessage_GetGiftList]
  48107. -- ==============================================
  48108. -- Author: wolf
  48109. -- Create Date: 2015-10-10
  48110. -- Mendor: wolf
  48111. -- Alter Date: 2015-10-10
  48112. -- Description: 获取系统领取列表
  48113. -- ==============================================
  48114. CREATE PROCEDURE [dbo].[WS_SysMessage_GetGiftList]
  48115. @UserID INT --用户ID
  48116. AS
  48117. SET NOCOUNT ON
  48118. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48119. SET XACT_ABORT ON
  48120. BEGIN
  48121. SELECT
  48122. SysMsgID, Title, Content, Status, SourceName,
  48123. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate, Tools, MsgType
  48124. FROM
  48125. [SysMessage]
  48126. WHERE
  48127. UserID = @UserID AND Crdate >= GETDATE() - 15 AND Status IN (0, 1)
  48128. ORDER BY
  48129. SysMsgID DESC
  48130. RETURN
  48131. END
  48132. GO
  48133. /****** Object: StoredProcedure [dbo].[WS_SysMessage_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  48134. SET ANSI_NULLS ON
  48135. GO
  48136. SET QUOTED_IDENTIFIER ON
  48137. GO
  48138. -- EXEC [WS_SysMessage_GetInfo]
  48139. -- ==============================================
  48140. -- Author: wolf
  48141. -- Create Date: 2015-10-10
  48142. -- Mendor: wolf
  48143. -- Alter Date: 2015-10-10
  48144. -- Description: 获取系统消息信息
  48145. -- ==============================================
  48146. CREATE PROCEDURE [dbo].[WS_SysMessage_GetInfo]
  48147. @UserID INT, --用户ID
  48148. @SysMsgID INT --系统消息ID
  48149. AS
  48150. SET NOCOUNT ON
  48151. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48152. SET XACT_ABORT ON
  48153. BEGIN
  48154. SELECT
  48155. SysMsgID, Title, Content, Status, SourceName,
  48156. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate, Tools
  48157. FROM
  48158. [SysMessage]
  48159. WHERE
  48160. UserID = @UserID AND SysMsgID = @SysMsgID AND Status < 3
  48161. RETURN
  48162. END
  48163. GO
  48164. /****** Object: StoredProcedure [dbo].[WS_SysMessage_GetList] Script Date: 2024/1/12 11:01:14 ******/
  48165. SET ANSI_NULLS ON
  48166. GO
  48167. SET QUOTED_IDENTIFIER ON
  48168. GO
  48169. -- EXEC [WS_SysMessage_GetList]
  48170. -- ==============================================
  48171. -- Author: wolf
  48172. -- Create Date: 2015-10-10
  48173. -- Mendor: wolf
  48174. -- Alter Date: 2015-10-10
  48175. -- Description: 获取系统消息列表
  48176. -- ==============================================
  48177. CREATE PROCEDURE [dbo].[WS_SysMessage_GetList]
  48178. @UserID INT, --用户ID
  48179. @SysMsgID INT --系统消息ID
  48180. AS
  48181. SET NOCOUNT ON
  48182. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48183. SET XACT_ABORT ON
  48184. BEGIN
  48185. IF(@SysMsgID = 0)
  48186. BEGIN
  48187. SELECT TOP 50
  48188. SysMsgID, Title, Content, Status, SourceName,
  48189. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate, Tools, MsgType
  48190. FROM
  48191. [SysMessage]
  48192. WHERE
  48193. UserID = @UserID AND Crdate >= GETDATE() - 10 AND Status < 3
  48194. ORDER BY
  48195. SysMsgID DESC
  48196. RETURN
  48197. END
  48198. SELECT
  48199. SysMsgID, Title, Content, Status, SourceName,
  48200. CONVERT(VARCHAR(20), Crdate, 120) AS Crdate, Tools, MsgType
  48201. FROM
  48202. [SysMessage]
  48203. WHERE
  48204. UserID = @UserID AND SysMsgID > @SysMsgID AND Status < 3
  48205. ORDER BY
  48206. SysMsgID DESC
  48207. RETURN
  48208. END
  48209. GO
  48210. /****** Object: StoredProcedure [dbo].[WS_SysMessage_Send] Script Date: 2024/1/12 11:01:14 ******/
  48211. SET ANSI_NULLS ON
  48212. GO
  48213. SET QUOTED_IDENTIFIER ON
  48214. GO
  48215. -- EXEC [WS_SysMessage_Send]
  48216. -- ==============================================
  48217. -- Author: wolf
  48218. -- Create Date: 2018-03-20
  48219. -- Mendor: wolf
  48220. -- Alter Date: 2018-03-20
  48221. -- Description: 发送邮件
  48222. -- ==============================================
  48223. CREATE PROCEDURE [dbo].[WS_SysMessage_Send]
  48224. @UserID INT, --用户ID
  48225. @Title NVARCHAR(32), --标题
  48226. @Content NVARCHAR(256), --内容
  48227. @Status INT, --状态
  48228. @SourceName NVARCHAR(64), --源名称
  48229. @Crdate INT, --时间
  48230. @Tools VARCHAR(1024), --附件(json格式)
  48231. @SysMsgID INT OUTPUT, --邮件ID
  48232. @MsgType TINYINT = 0 --邮件类型(0=普通邮件 1=重要邮件)
  48233. AS
  48234. SET NOCOUNT ON
  48235. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48236. SET XACT_ABORT ON
  48237. BEGIN
  48238. --邮件
  48239. INSERT INTO [SysMessage]
  48240. (
  48241. UserID, Title, Content, Status, SourceName, Crdate, Tools, MsgType
  48242. )
  48243. VALUES
  48244. (
  48245. @UserID, @Title, @Content, @Status, @SourceName, dbo.fn_StampToTime(@Crdate), @Tools, @MsgType
  48246. )
  48247. SET @SysMsgID = SCOPE_IDENTITY()
  48248. RETURN
  48249. END
  48250. GO
  48251. /****** Object: StoredProcedure [dbo].[WS_SysMessage_Update] Script Date: 2024/1/12 11:01:14 ******/
  48252. SET ANSI_NULLS ON
  48253. GO
  48254. SET QUOTED_IDENTIFIER ON
  48255. GO
  48256. -- EXEC [WS_SysMessage_Update]
  48257. -- ==============================================
  48258. -- Author: wolf
  48259. -- Create Date: 2015-10-10
  48260. -- Mendor: wolf
  48261. -- Alter Date: 2015-10-10
  48262. -- Description: 更新系统消息
  48263. -- ==============================================
  48264. CREATE PROCEDURE [dbo].[WS_SysMessage_Update]
  48265. @UserID INT, --用户ID
  48266. @SysMsgID INT, --系统消息ID
  48267. @Status INT, --状态
  48268. @RetCode TINYINT OUTPUT --操作结果
  48269. AS
  48270. SET NOCOUNT ON
  48271. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48272. SET XACT_ABORT ON
  48273. BEGIN
  48274. SET @RetCode = 0
  48275. --修改信息
  48276. UPDATE [SysMessage] SET Status = @Status WHERE SysMsgID = @SysMsgID AND UserID = @UserID
  48277. IF(@@ROWCOUNT > 0)
  48278. BEGIN
  48279. SET @RetCode = 1
  48280. END
  48281. RETURN
  48282. END
  48283. GO
  48284. /****** Object: StoredProcedure [dbo].[WS_Task_GetList] Script Date: 2024/1/12 11:01:14 ******/
  48285. SET ANSI_NULLS ON
  48286. GO
  48287. SET QUOTED_IDENTIFIER ON
  48288. GO
  48289. -- EXEC [WS_Task_GetList]
  48290. -- ==============================================
  48291. -- Author: wolf
  48292. -- Create Date: 2015-10-10
  48293. -- Mendor: wolf
  48294. -- Alter Date: 2015-10-10
  48295. -- Description: 系统任务数值列表
  48296. -- ==============================================
  48297. CREATE PROCEDURE [dbo].[WS_Task_GetList]
  48298. AS
  48299. SET NOCOUNT ON
  48300. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48301. SET XACT_ABORT ON
  48302. BEGIN
  48303. --返回信息
  48304. SELECT
  48305. TaskID, Title, [Desc], Action, Target, Repeatable, Duration, PreTask,
  48306. LimitedStart, LimitedDuration, Awards, SceneID, [Scope]
  48307. FROM
  48308. [Task]
  48309. ORDER BY
  48310. TaskID ASC
  48311. RETURN
  48312. END
  48313. GO
  48314. /****** Object: StoredProcedure [dbo].[WS_TransferCfg_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  48315. SET ANSI_NULLS ON
  48316. GO
  48317. SET QUOTED_IDENTIFIER ON
  48318. GO
  48319. -- EXEC [WS_TransferCfg_GetInfo]
  48320. -- ==============================================
  48321. -- Author: wolf
  48322. -- Create Date: 2015-02-06
  48323. -- Mendor: wolf
  48324. -- Alter Date: 2016-09-11
  48325. -- Description: 赠送配置信息
  48326. -- ==============================================
  48327. CREATE PROCEDURE [dbo].[WS_TransferCfg_GetInfo]
  48328. AS
  48329. SET NOCOUNT ON
  48330. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48331. SET XACT_ABORT ON
  48332. BEGIN
  48333. DECLARE @CurrTime DATETIME --系统当前时间
  48334. SET @CurrTime = GETDATE()
  48335. --返回信息
  48336. SELECT
  48337. Fee, CONVERT(VARCHAR(16), FreeBeginTime, 120) AS FreeBeginTime, CONVERT(VARCHAR(16), FreeEndTime, 120) AS FreeEndTime,
  48338. CASE WHEN @CurrTime BETWEEN FreeBeginTime AND FreeEndTime THEN 1 ELSE 0 END AS FreeFlag,
  48339. CONVERT(VARCHAR(16), RefundBeginTime, 120) AS RefundBeginTime, CONVERT(VARCHAR(16), RefundEndTime, 120) AS RefundEndTime,
  48340. RefundRatio, RefundMaxAmount,
  48341. CASE WHEN @CurrTime BETWEEN RefundBeginTime AND RefundEndTime THEN 1 ELSE 0 END AS RefundFlag,
  48342. CONVERT(VARCHAR(16), MinBeginTime, 120) AS MinBeginTime, CONVERT(VARCHAR(16), MinEndTime, 120) AS MinEndTime,
  48343. MinAmount, CASE WHEN @CurrTime BETWEEN MinBeginTime AND MinEndTime THEN 1 ELSE 0 END AS MinFlag
  48344. FROM
  48345. [TransferConfig]
  48346. WHERE
  48347. ConfigID = 1
  48348. RETURN
  48349. END
  48350. GO
  48351. /****** Object: StoredProcedure [dbo].[WS_UserAchievement_GetList] Script Date: 2024/1/12 11:01:14 ******/
  48352. SET ANSI_NULLS ON
  48353. GO
  48354. SET QUOTED_IDENTIFIER ON
  48355. GO
  48356. -- EXEC [WS_UserAchievement_GetList]
  48357. -- ==============================================
  48358. -- Author: wolf
  48359. -- Create Date: 2015-03-13
  48360. -- Mendor: wolf
  48361. -- Alter Date: 2017-02-16
  48362. -- Description: 用户成就列表
  48363. -- ==============================================
  48364. CREATE PROCEDURE [dbo].[WS_UserAchievement_GetList]
  48365. @UserID INT --用户ID
  48366. AS
  48367. SET NOCOUNT ON
  48368. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48369. SET XACT_ABORT ON
  48370. BEGIN
  48371. --返回信息
  48372. SELECT TaskID FROM [UserAchievement] WHERE UserID = @UserID
  48373. RETURN
  48374. END
  48375. GO
  48376. /****** Object: StoredProcedure [dbo].[WS_UserAchievement_Update] Script Date: 2024/1/12 11:01:14 ******/
  48377. SET ANSI_NULLS ON
  48378. GO
  48379. SET QUOTED_IDENTIFIER ON
  48380. GO
  48381. -- EXEC [WS_UserAchievement_Update]
  48382. -- ==============================================
  48383. -- Author: wolf
  48384. -- Create Date: 2015-03-13
  48385. -- Mendor: wolf
  48386. -- Alter Date: 2017-02-16
  48387. -- Description: 用户成就设置
  48388. -- ==============================================
  48389. CREATE PROCEDURE [dbo].[WS_UserAchievement_Update]
  48390. @UserID INT, --用户ID
  48391. @TaskID INT, --任务ID
  48392. @Status TINYINT --状态 1=设置 2=清理
  48393. AS
  48394. SET NOCOUNT ON
  48395. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48396. SET XACT_ABORT ON
  48397. BEGIN
  48398. --1=设置
  48399. IF(@Status = 1)
  48400. BEGIN
  48401. IF EXISTS(SELECT UserID FROM [UserAchievement] WHERE UserID = @UserID AND TaskID = @TaskID)
  48402. RETURN
  48403. INSERT INTO [UserAchievement](UserID, TaskID) VALUES(@UserID, @TaskID)
  48404. RETURN
  48405. END
  48406. --2=清理
  48407. IF(@Status = 2)
  48408. BEGIN
  48409. DELETE FROM [UserAchievement] WHERE UserID = @UserID AND TaskID = @TaskID
  48410. RETURN
  48411. END
  48412. RETURN
  48413. END
  48414. GO
  48415. /****** Object: StoredProcedure [dbo].[WS_UserAgent_Apply] Script Date: 2024/1/12 11:01:14 ******/
  48416. SET ANSI_NULLS ON
  48417. GO
  48418. SET QUOTED_IDENTIFIER ON
  48419. GO
  48420. -- EXEC [WS_UserAgent_Apply]
  48421. -- ==============================================
  48422. -- Author: wolf
  48423. -- Create Date: 2014-06-11
  48424. -- Mendor: wolf
  48425. -- Alter Date: 2014-12-29
  48426. -- Description: 代理--申请
  48427. -- ==============================================
  48428. CREATE PROCEDURE [dbo].[WS_UserAgent_Apply]
  48429. @UserID INT, --用户信息
  48430. @Memo NVARCHAR(128) --备注(联系信息,如:电话)
  48431. AS
  48432. SET NOCOUNT ON
  48433. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48434. SET XACT_ABORT ON
  48435. BEGIN
  48436. DECLARE @IMei VARCHAR(64)
  48437. DECLARE @deviceid VARCHAR(64)
  48438. DECLARE @RetCode TINYINT
  48439. DECLARE @AuditEnabled TINYINT --审核是否启用
  48440. DECLARE @HigherUserID INT --上级ID
  48441. SET @RetCode = 0
  48442. SET @HigherUserID = 0
  48443. --判断是否已注册
  48444. IF EXISTS(SELECT UserID FROM [UserAgent] WHERE UserID = @UserID)
  48445. BEGIN
  48446. --操作成功
  48447. SET @RetCode = 11
  48448. SELECT @RetCode AS RetCode
  48449. RETURN
  48450. END
  48451. --IMei
  48452. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
  48453. IF(@@ROWCOUNT = 0)
  48454. BEGIN
  48455. --操作成功
  48456. SET @RetCode = 12
  48457. SELECT @RetCode AS RetCode
  48458. RETURN
  48459. END
  48460. --不是facebook账号
  48461. IF(LEFT(@IMei, 3) != 'fb.' AND LEFT(@deviceid, 3) != 'fb.' AND LEFT(@IMei, 3) != 'gg.' AND LEFT(@deviceid, 3) != 'gg.')
  48462. BEGIN
  48463. --操作成功
  48464. SET @RetCode = 12
  48465. SELECT @RetCode AS RetCode
  48466. RETURN
  48467. END
  48468. --是否需要审核
  48469. SELECT @AuditEnabled = AuditEnabled FROM [AgentConfig] WHERE ConfigID = 1
  48470. --审核,需要加入申请表
  48471. IF(@AuditEnabled = 1)
  48472. BEGIN
  48473. --判断是否已经申请过
  48474. --状态(0=审核 1=已通过 2=拒绝)
  48475. IF EXISTS(SELECT UserID FROM [AgentApply] WHERE UserID = @UserID AND ApplyStatus = 0)
  48476. BEGIN
  48477. SET @RetCode = 13
  48478. SELECT @RetCode AS RetCode
  48479. RETURN
  48480. END
  48481. --上级
  48482. SELECT @HigherUserID = HigherUserID FROM [AgentMember] WHERE UserID = @UserID
  48483. --申请代理
  48484. INSERT INTO [AgentApply]
  48485. (
  48486. UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
  48487. )
  48488. VALUES
  48489. (
  48490. @UserID, @HigherUserID, 0, @Memo, GETDATE(), GETDATE()
  48491. )
  48492. END
  48493. --不需要审核,直接成为代理
  48494. ELSE
  48495. BEGIN
  48496. --初始化
  48497. INSERT INTO [UserAgent]
  48498. (
  48499. UserID, Commission, Profit, Members, Enabled, Crdate
  48500. )
  48501. VALUES
  48502. (
  48503. @UserID, 0, 0, 0, 1, GETDATE()
  48504. )
  48505. END
  48506. --操作成功
  48507. SET @RetCode = 1
  48508. SELECT @RetCode AS RetCode
  48509. RETURN
  48510. END
  48511. GO
  48512. /****** Object: StoredProcedure [dbo].[WS_UserAgent_Bind] Script Date: 2024/1/12 11:01:14 ******/
  48513. SET ANSI_NULLS ON
  48514. GO
  48515. SET QUOTED_IDENTIFIER ON
  48516. GO
  48517. -- EXEC [WS_UserAgent_Bind]
  48518. -- ==============================================
  48519. -- Author: wolf
  48520. -- Create Date: 2014-06-11
  48521. -- Mendor: wolf
  48522. -- Alter Date: 2014-12-29
  48523. -- Description: 代理--绑定
  48524. -- ==============================================
  48525. CREATE PROCEDURE [dbo].[WS_UserAgent_Bind]
  48526. @UserID INT, --用户ID
  48527. @HigherUserID INT --代理ID
  48528. AS
  48529. SET NOCOUNT ON
  48530. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48531. SET XACT_ABORT ON
  48532. BEGIN
  48533. DECLARE @RetCode TINYINT
  48534. DECLARE @IMei VARCHAR(64)
  48535. DECLARE @deviceid VARCHAR(64)
  48536. DECLARE @SysMsgID INT
  48537. DECLARE @TimeStamp INT --时间戳
  48538. DECLARE @Msg VARCHAR(256) --消息
  48539. DECLARE @DateFlag SMALLDATETIME --日期标识
  48540. SET @RetCode = 0
  48541. --不能绑定自己
  48542. IF(@UserID = 0 OR @UserID = @HigherUserID)
  48543. BEGIN
  48544. SET @RetCode = 11
  48545. SELECT @RetCode AS RetCode
  48546. RETURN
  48547. END
  48548. --IMei
  48549. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
  48550. IF(@@ROWCOUNT = 0)
  48551. BEGIN
  48552. --操作成功
  48553. SET @RetCode = 13
  48554. SELECT @RetCode AS RetCode
  48555. RETURN
  48556. END
  48557. --不是facebook账号
  48558. IF(LEFT(@IMei, 3) != 'fb.' AND LEFT(@deviceid, 3) != 'fb.' AND LEFT(@IMei, 3) != 'gg.' AND LEFT(@deviceid, 3) != 'gg.')
  48559. BEGIN
  48560. --操作成功
  48561. SET @RetCode = 13
  48562. SELECT @RetCode AS RetCode
  48563. RETURN
  48564. END
  48565. --判断是否是代理
  48566. IF NOT EXISTS(SELECT UserID FROM [UserAgent] WHERE UserID = @HigherUserID)
  48567. BEGIN
  48568. SET @RetCode = 12
  48569. SELECT @RetCode AS RetCode
  48570. RETURN
  48571. END
  48572. --判断是否已经绑定
  48573. IF EXISTS(SELECT UserID FROM [UserAgent] WHERE UserID = @UserID)
  48574. BEGIN
  48575. SET @RetCode = 14
  48576. SELECT @RetCode AS RetCode
  48577. RETURN
  48578. END
  48579. --判断是否已经绑定
  48580. IF EXISTS(SELECT UserID FROM [AgentMember] WHERE UserID = @UserID)
  48581. BEGIN
  48582. SET @RetCode = 15
  48583. SELECT @RetCode AS RetCode
  48584. RETURN
  48585. END
  48586. --绑定
  48587. INSERT INTO [AgentMember]
  48588. (
  48589. UserID, HigherUserID, Commission, BindTime, LoginTime
  48590. )
  48591. VALUES
  48592. (
  48593. @UserID, @HigherUserID, 0, GETDATE(), GETDATE()
  48594. )
  48595. --徒弟数+1
  48596. UPDATE [UserAgent] SET Members = Members + 1 WHERE UserID = @HigherUserID
  48597. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  48598. --生成任务
  48599. INSERT INTO [UserTask]
  48600. (
  48601. UserID, TaskID, Scheduled, Status, Start, Duration
  48602. )
  48603. SELECT
  48604. @UserID, TaskID, 0, 0, @DateFlag, 0
  48605. FROM
  48606. [Task]
  48607. WHERE
  48608. Action = 14
  48609. UNION ALL
  48610. SELECT
  48611. @UserID, TaskID, 0, 0, @DateFlag + (TaskID % 1400000 - 1), 86400
  48612. FROM
  48613. [Task]
  48614. WHERE
  48615. Action = 12 AND SceneID = 4
  48616. ORDER BY
  48617. TaskID ASC
  48618. --更新utm渠道流量,4方支付
  48619. UPDATE [UTM] SET Source = 'agentinvite' WHERE UserID = @UserID
  48620. IF(@@ROWCOUNT = 0)
  48621. BEGIN
  48622. INSERT INTO [UTM]
  48623. (
  48624. UserID, Source, Medium, Term, Content, Campaign
  48625. )
  48626. VALUES
  48627. (
  48628. @UserID, 'agentinvite', '', '', '', ''
  48629. )
  48630. END
  48631. --操作成功
  48632. SET @RetCode = 1
  48633. SELECT @RetCode AS RetCode
  48634. RETURN
  48635. END
  48636. GO
  48637. /****** Object: StoredProcedure [dbo].[WS_UserAgent_BindAwards] Script Date: 2024/1/12 11:01:14 ******/
  48638. SET ANSI_NULLS ON
  48639. GO
  48640. SET QUOTED_IDENTIFIER ON
  48641. GO
  48642. -- EXEC [WS_UserAgent_BindAwards]
  48643. -- ==============================================
  48644. -- Author: wolf
  48645. -- Create Date: 2014-07-18
  48646. -- Mendor: wolf
  48647. -- Alter Date: 2017-01-05
  48648. -- Description: 代理--绑定奖励
  48649. -- ==============================================
  48650. CREATE PROCEDURE [dbo].[WS_UserAgent_BindAwards]
  48651. AS
  48652. SET NOCOUNT ON
  48653. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48654. SET XACT_ABORT ON
  48655. BEGIN
  48656. SELECT Members, Profit FROM [AgentBindAward] ORDER BY Members ASC
  48657. RETURN
  48658. END
  48659. GO
  48660. /****** Object: StoredProcedure [dbo].[WS_UserAgent_CommissionLog] Script Date: 2024/1/12 11:01:14 ******/
  48661. SET ANSI_NULLS ON
  48662. GO
  48663. SET QUOTED_IDENTIFIER ON
  48664. GO
  48665. -- EXEC [WS_UserAgent_CommissionLog]
  48666. -- ==============================================
  48667. -- Author: wolf
  48668. -- Create Date: 2014-07-18
  48669. -- Mendor: wolf
  48670. -- Alter Date: 2017-01-05
  48671. -- Description: 代理--收益列表
  48672. -- ==============================================
  48673. CREATE PROCEDURE [dbo].[WS_UserAgent_CommissionLog]
  48674. @UserID INT, --用户ID
  48675. @FromUserID INT, --源用户ID
  48676. @PageIndex INT, --页索引
  48677. @PageSize INT, --页大小
  48678. @Commission BIGINT OUTPUT, --佣金
  48679. @RecordCount INT OUTPUT --记录数
  48680. AS
  48681. SET NOCOUNT ON
  48682. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48683. SET XACT_ABORT ON
  48684. BEGIN
  48685. DECLARE @StartRowIndex INT --起始行索引
  48686. DECLARE @EndRowIndex INT --截止行索引
  48687. DECLARE @tmptable TABLE(
  48688. GameID INT NOT NULL, --游戏ID
  48689. FromUserID INT NOT NULL, --源用户ID
  48690. WantCommission BIGINT NOT NULL, --操作佣金
  48691. Crdate DATETIME NOT NULL --时间
  48692. )
  48693. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  48694. SET @EndRowIndex = @PageIndex * @PageSize
  48695. IF(@FromUserID > 0)
  48696. BEGIN
  48697. --初始化表变量
  48698. INSERT INTO @tmptable(GameID, FromUserID, WantCommission, Crdate)
  48699. SELECT
  48700. GameID, FromUserID, WantCommission, Crdate
  48701. FROM
  48702. [CommissionLog]
  48703. WHERE
  48704. Crdate >= GETDATE() - 30 AND UserID = @UserID AND FromUserID = @FromUserID AND Direct > 0
  48705. UNION ALL
  48706. SELECT
  48707. GameID, FromUserID, WantCommission, Crdate
  48708. FROM
  48709. [CommissionLogHistory]
  48710. WHERE
  48711. Crdate >= GETDATE() - 30 AND UserID = @UserID AND FromUserID = @FromUserID AND Direct > 0
  48712. END
  48713. ELSE
  48714. BEGIN
  48715. --初始化表变量
  48716. INSERT INTO @tmptable(GameID, FromUserID, WantCommission, Crdate)
  48717. SELECT
  48718. GameID, FromUserID, WantCommission, Crdate
  48719. FROM
  48720. [CommissionLog]
  48721. WHERE
  48722. Crdate >= GETDATE() - 30 AND UserID = @UserID AND Direct > 0
  48723. UNION ALL
  48724. SELECT
  48725. GameID, FromUserID, WantCommission, Crdate
  48726. FROM
  48727. [CommissionLogHistory]
  48728. WHERE
  48729. Crdate >= GETDATE() - 30 AND UserID = @UserID AND Direct > 0
  48730. END
  48731. --记录数
  48732. SET @RecordCount = @@ROWCOUNT
  48733. --累计收益
  48734. SET @Commission = ISNULL((SELECT SUM(WantCommission) FROM @tmptable WHERE WantCommission > 0), 0)
  48735. ;WITH [List] AS
  48736. (
  48737. SELECT
  48738. ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
  48739. GameID, FromUserID, WantCommission, Crdate
  48740. FROM
  48741. @tmptable
  48742. )
  48743. --返回信息
  48744. SELECT
  48745. ISNULL(g.ChineseName, '') AS ChineseName, l.FromUserID, l.WantCommission,
  48746. CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate
  48747. FROM
  48748. [List] l LEFT JOIN [AllGame] g ON l.GameID = g.GameID
  48749. WHERE
  48750. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  48751. ORDER BY
  48752. l.RowNumber ASC
  48753. RETURN
  48754. END
  48755. GO
  48756. /****** Object: StoredProcedure [dbo].[WS_UserAgent_CommissionStat] Script Date: 2024/1/12 11:01:14 ******/
  48757. SET ANSI_NULLS ON
  48758. GO
  48759. SET QUOTED_IDENTIFIER ON
  48760. GO
  48761. -- EXEC [WS_UserAgent_CommissionStat]
  48762. -- ==============================================
  48763. -- Author: wolf
  48764. -- Create Date: 2014-07-18
  48765. -- Mendor: wolf
  48766. -- Alter Date: 2017-01-05
  48767. -- Description: 代理--收益统计
  48768. -- ==============================================
  48769. CREATE PROCEDURE [dbo].[WS_UserAgent_CommissionStat]
  48770. @UserID INT, --用户ID
  48771. @PageIndex INT, --页索引
  48772. @PageSize INT, --页大小
  48773. @Commission BIGINT OUTPUT, --佣金
  48774. @Profit BIGINT OUTPUT, --收益
  48775. @RecordCount INT OUTPUT --记录数
  48776. AS
  48777. SET NOCOUNT ON
  48778. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48779. SET XACT_ABORT ON
  48780. BEGIN
  48781. DECLARE @StartRowIndex INT --起始行索引
  48782. DECLARE @EndRowIndex INT --截止行索引
  48783. DECLARE @tmptable TABLE(
  48784. DateFlag SMALLDATETIME NOT NULL, --日期标识
  48785. Commission BIGINT NOT NULL, --佣金
  48786. Direct TINYINT NOT NULL --属级
  48787. )
  48788. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  48789. SET @EndRowIndex = @PageIndex * @PageSize
  48790. --初始化表变量
  48791. INSERT INTO @tmptable(DateFlag, Commission, Direct)
  48792. SELECT
  48793. DateFlag, SUM(Commission), Direct
  48794. FROM
  48795. [CommissionStat]
  48796. WHERE
  48797. DateFlag >= GETDATE() - 30 AND UserID = @UserID AND Direct > 0
  48798. GROUP BY
  48799. DateFlag, Direct
  48800. --记录数
  48801. SET @RecordCount = @@ROWCOUNT
  48802. --累计佣金
  48803. SET @Commission = ISNULL((SELECT SUM(Commission) FROM @tmptable WHERE Direct > 0), 0)
  48804. INSERT INTO @tmptable(DateFlag, Commission, Direct)
  48805. SELECT
  48806. Crdate, WantCommission, Direct
  48807. FROM
  48808. [CommissionLog]
  48809. WHERE
  48810. Crdate >= GETDATE() - 30 AND UserID = @UserID AND Direct = 0
  48811. UNION ALL
  48812. SELECT
  48813. Crdate, WantCommission, Direct
  48814. FROM
  48815. [CommissionLogHistory]
  48816. WHERE
  48817. Crdate >= GETDATE() - 30 AND UserID = @UserID AND Direct = 0
  48818. --记录数
  48819. SET @RecordCount = @RecordCount + @@ROWCOUNT
  48820. --累计收益
  48821. SET @Profit = ISNULL((SELECT SUM(Commission) FROM @tmptable WHERE Direct = 0), 0)
  48822. ;WITH [List] AS
  48823. (
  48824. SELECT
  48825. ROW_NUMBER() OVER(ORDER BY DateFlag DESC, Direct ASC) AS RowNumber,
  48826. DateFlag, Commission, Direct
  48827. FROM
  48828. @tmptable
  48829. )
  48830. --返回信息
  48831. SELECT
  48832. CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag, Commission, Direct
  48833. FROM
  48834. [List]
  48835. WHERE
  48836. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  48837. ORDER BY
  48838. RowNumber ASC
  48839. RETURN
  48840. END
  48841. GO
  48842. /****** Object: StoredProcedure [dbo].[WS_UserAgent_CommissionToAmount] Script Date: 2024/1/12 11:01:14 ******/
  48843. SET ANSI_NULLS ON
  48844. GO
  48845. SET QUOTED_IDENTIFIER ON
  48846. GO
  48847. -- EXEC [WS_UserAgent_CommissionToAmount]
  48848. -- ==============================================
  48849. -- Author: wolf
  48850. -- Create Date: 2016-07-11
  48851. -- Mendor: wolf
  48852. -- Alter Date: 2017-02-23
  48853. -- Description: 佣金转金币
  48854. -- ==============================================
  48855. CREATE PROCEDURE [dbo].[WS_UserAgent_CommissionToAmount]
  48856. @UserID INT, --用户ID
  48857. @IPAddress VARCHAR(16) --IP地址
  48858. AS
  48859. SET NOCOUNT ON
  48860. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  48861. SET XACT_ABORT ON
  48862. BEGIN
  48863. DECLARE @WantCommission BIGINT --操作佣金
  48864. DECLARE @DateFlag SMALLDATETIME --日期标识
  48865. DECLARE @RetCode TINYINT --操作结果
  48866. SET @RetCode = 0
  48867. SET @WantCommission = 0
  48868. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  48869. --不用事务隔离级别,UPDATE 具有原子性
  48870. UPDATE
  48871. [UserAgent]
  48872. SET
  48873. Commission = 0, Profit = Profit + Commission, @WantCommission = Commission
  48874. WHERE
  48875. UserID = @UserID AND Commission > 0
  48876. IF(@@ROWCOUNT = 0)
  48877. BEGIN
  48878. SET @RetCode = 11
  48879. SELECT @RetCode AS RetCode, @WantCommission AS Commission
  48880. RETURN
  48881. END
  48882. --佣金日志
  48883. INSERT INTO [CommissionLog]
  48884. (
  48885. UserID, GameID, FromUserID, Tax, WantCommission, StillCommission, Direct,
  48886. Memo, Crdate
  48887. )
  48888. VALUES
  48889. (
  48890. @UserID, 0, @UserID, 0, -@WantCommission, 0, 0,
  48891. N'Commission To Cash', GETDATE()
  48892. )
  48893. --加金币
  48894. EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = N'Commission', @GameID = 0, @WantedAmount = @WantCommission,
  48895. @LogType = 8, @Remark = N'Commission To Cash', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
  48896. --更新佣金统计
  48897. UPDATE
  48898. [CommissionStat]
  48899. SET
  48900. Commission = Commission - @WantCommission
  48901. WHERE
  48902. DateFlag = @DateFlag AND UserID = @UserID AND Direct = 0
  48903. IF(@@ROWCOUNT = 0)
  48904. BEGIN
  48905. INSERT INTO [CommissionStat]
  48906. (
  48907. DateFlag, UserID, GameID, FromUserID, Commission, Direct
  48908. )
  48909. VALUES
  48910. (
  48911. @DateFlag, @UserID, 0, @UserID, -@WantCommission, 0
  48912. )
  48913. END
  48914. --操作成功
  48915. SET @RetCode = 1
  48916. SELECT @RetCode AS RetCode, @WantCommission AS Commission
  48917. RETURN
  48918. END
  48919. GO
  48920. /****** Object: StoredProcedure [dbo].[WS_UserAgent_ConfigInfo] Script Date: 2024/1/12 11:01:14 ******/
  48921. SET ANSI_NULLS ON
  48922. GO
  48923. SET QUOTED_IDENTIFIER ON
  48924. GO
  48925. -- EXEC [WS_UserAgent_ConfigInfo]
  48926. -- ==============================================
  48927. -- Author: wolf
  48928. -- Create Date: 2014-07-18
  48929. -- Mendor: wolf
  48930. -- Alter Date: 2017-01-05
  48931. -- Description: 代理--配置信息
  48932. -- ==============================================
  48933. CREATE PROCEDURE [dbo].[WS_UserAgent_ConfigInfo]
  48934. AS
  48935. SET NOCOUNT ON
  48936. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48937. SET XACT_ABORT ON
  48938. BEGIN
  48939. SELECT
  48940. IsOpen, BindSend, BetOneDirect, BetTwoDirect,
  48941. TaxOneDirect, TaxTwoDirect, PayOneDirect, PayTwoDirect
  48942. FROM
  48943. [AgentConfig]
  48944. END
  48945. GO
  48946. /****** Object: StoredProcedure [dbo].[WS_UserAgent_GetGroup] Script Date: 2024/1/12 11:01:14 ******/
  48947. SET ANSI_NULLS ON
  48948. GO
  48949. SET QUOTED_IDENTIFIER ON
  48950. GO
  48951. -- EXEC [WS_UserAgent_GetGroup]
  48952. -- ==============================================
  48953. -- Author: wolf
  48954. -- Create Date: 2014-06-11
  48955. -- Mendor: wolf
  48956. -- Alter Date: 2014-12-29
  48957. -- Description: 代理--群组
  48958. -- ==============================================
  48959. CREATE PROCEDURE [dbo].[WS_UserAgent_GetGroup]
  48960. @UserID INT --用户ID
  48961. AS
  48962. SET NOCOUNT ON
  48963. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48964. SET XACT_ABORT ON
  48965. BEGIN
  48966. --群组信息
  48967. SELECT Info FROM [AgentGroup] WHERE UserID = @UserID
  48968. RETURN
  48969. END
  48970. GO
  48971. /****** Object: StoredProcedure [dbo].[WS_UserAgent_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  48972. SET ANSI_NULLS ON
  48973. GO
  48974. SET QUOTED_IDENTIFIER ON
  48975. GO
  48976. -- EXEC [WS_UserAgent_GetInfo]
  48977. -- ==============================================
  48978. -- Author: wolf
  48979. -- Create Date: 2014-07-18
  48980. -- Mendor: wolf
  48981. -- Alter Date: 2017-01-05
  48982. -- Description: 代理--获取信息
  48983. -- ==============================================
  48984. CREATE PROCEDURE [dbo].[WS_UserAgent_GetInfo]
  48985. @UserID INT --用户ID
  48986. AS
  48987. SET NOCOUNT ON
  48988. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  48989. SET XACT_ABORT ON
  48990. BEGIN
  48991. DECLARE @Members INT --会员数
  48992. DECLARE @Commission BIGINT --佣金
  48993. DECLARE @Profit BIGINT --收益
  48994. DECLARE @Enabled TINYINT --是否代理 0=不是代理 1=代理 2=申请中
  48995. DECLARE @Crdate DATETIME --时间
  48996. DECLARE @ValidMembers INT --有效会员数
  48997. SET @Members = 0
  48998. SET @Commission = 0
  48999. SET @Profit = 0
  49000. SET @Enabled = 0
  49001. SET @Crdate = '2022-01-01'
  49002. SET @ValidMembers = 0
  49003. --申请中
  49004. IF EXISTS(SELECT UserID FROM [AgentApply] WHERE UserID = @UserID AND ApplyStatus = 0)
  49005. BEGIN
  49006. SET @Enabled = 2
  49007. END
  49008. --代理信息
  49009. SELECT
  49010. @Members = Members, @Commission = Commission, @Profit = Profit,
  49011. @Enabled = Enabled, @Crdate = Crdate
  49012. FROM
  49013. [UserAgent]
  49014. WHERE
  49015. UserID = @UserID
  49016. --有效会员数
  49017. SELECT @ValidMembers = COUNT(UserID) FROM [AgentMember] WHERE HigherUserID = @UserID AND Commission > 0
  49018. --返回信息
  49019. SELECT
  49020. @Members AS Members, @Commission AS Commission, @Profit AS Profit,
  49021. @Enabled AS Enabled, CONVERT(VARCHAR(16), @Crdate, 120) AS Crdate,
  49022. @ValidMembers AS ValidMembers
  49023. RETURN
  49024. END
  49025. GO
  49026. /****** Object: StoredProcedure [dbo].[WS_UserAgent_GetMembers] Script Date: 2024/1/12 11:01:14 ******/
  49027. SET ANSI_NULLS ON
  49028. GO
  49029. SET QUOTED_IDENTIFIER ON
  49030. GO
  49031. -- EXEC [WS_UserAgent_GetMembers]
  49032. -- ==============================================
  49033. -- Author: wolf
  49034. -- Create Date: 2014-07-18
  49035. -- Mendor: wolf
  49036. -- Alter Date: 2017-01-05
  49037. -- Description: 代理--会员列表
  49038. -- ==============================================
  49039. CREATE PROCEDURE [dbo].[WS_UserAgent_GetMembers]
  49040. @UserID INT, --用户ID
  49041. @PageIndex INT, --页索引
  49042. @PageSize INT, --页大小
  49043. @RecordCount INT OUTPUT, --记录数
  49044. @OnlineCount INT OUTPUT --在线人数
  49045. AS
  49046. SET NOCOUNT ON
  49047. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49048. SET XACT_ABORT ON
  49049. BEGIN
  49050. DECLARE @StartRowIndex INT --起始行索引
  49051. DECLARE @EndRowIndex INT --截止行索引
  49052. DECLARE @tmptable TABLE(
  49053. UserID INT NOT NULL, --用户ID
  49054. BindTime DATETIME NOT NULL, --绑定时间
  49055. IsOnline TINYINT NOT NULL --是否在线
  49056. )
  49057. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  49058. SET @EndRowIndex = @PageIndex * @PageSize
  49059. --初始化表变量
  49060. INSERT INTO @tmptable(UserID, BindTime, IsOnline)
  49061. SELECT
  49062. UserID, BindTime, 0
  49063. FROM
  49064. [AgentMember]
  49065. WHERE
  49066. HigherUserID = @UserID AND LoginTime != BindTime
  49067. --记录数
  49068. SET @RecordCount = @@ROWCOUNT
  49069. --实时在线
  49070. UPDATE t SET t.IsOnline = 1 FROM @tmptable t INNER JOIN [t_onlineuser] c ON t.UserID = c.UserID
  49071. --在线人数
  49072. SELECT @OnlineCount = COUNT(UserID) FROM @tmptable WHERE IsOnline = 1
  49073. ;WITH [List] AS
  49074. (
  49075. SELECT
  49076. ROW_NUMBER() OVER(ORDER BY BindTime DESC) AS RowNumber,
  49077. UserID, BindTime, IsOnline
  49078. FROM
  49079. @tmptable
  49080. )
  49081. --返回信息
  49082. SELECT
  49083. UserID, CONVERT(VARCHAR(16), BindTime, 120) AS BindTime, IsOnline
  49084. FROM
  49085. [List]
  49086. WHERE
  49087. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  49088. ORDER BY
  49089. RowNumber ASC
  49090. RETURN
  49091. END
  49092. GO
  49093. /****** Object: StoredProcedure [dbo].[WS_UserAgent_UpdateGroup] Script Date: 2024/1/12 11:01:14 ******/
  49094. SET ANSI_NULLS ON
  49095. GO
  49096. SET QUOTED_IDENTIFIER ON
  49097. GO
  49098. -- EXEC [WS_UserAgent_UpdateGroup]
  49099. -- ==============================================
  49100. -- Author: wolf
  49101. -- Create Date: 2014-06-11
  49102. -- Mendor: wolf
  49103. -- Alter Date: 2014-12-29
  49104. -- Description: 代理--修改群组
  49105. -- ==============================================
  49106. CREATE PROCEDURE [dbo].[WS_UserAgent_UpdateGroup]
  49107. @UserID INT, --用户ID
  49108. @Info NVARCHAR(MAX) --群组信息
  49109. AS
  49110. SET NOCOUNT ON
  49111. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49112. SET XACT_ABORT ON
  49113. BEGIN
  49114. --修改代理信息
  49115. UPDATE [AgentGroup] SET Info = @Info WHERE UserID = @UserID
  49116. IF(@@ROWCOUNT = 0)
  49117. BEGIN
  49118. INSERT INTO [AgentGroup](UserID, Info) VALUES(@UserID, @Info)
  49119. END
  49120. RETURN
  49121. END
  49122. GO
  49123. /****** Object: StoredProcedure [dbo].[WS_UserAward_GetSysInfo] Script Date: 2024/1/12 11:01:14 ******/
  49124. SET ANSI_NULLS ON
  49125. GO
  49126. SET QUOTED_IDENTIFIER ON
  49127. GO
  49128. -- EXEC [WS_UserAward_GetSysInfo]
  49129. -- ==============================================
  49130. -- Author: wolf
  49131. -- Create Date: 2014-09-03
  49132. -- Mendor: wolf
  49133. -- Alter Date: 2014-12-02
  49134. -- Description: 活动系统数值
  49135. -- ==============================================
  49136. CREATE PROCEDURE [dbo].[WS_UserAward_GetSysInfo]
  49137. AS
  49138. SET NOCOUNT ON
  49139. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49140. SET XACT_ABORT ON
  49141. BEGIN
  49142. --返回信息
  49143. SELECT
  49144. ActiveID, ActiveName, TotalTimes, Awards, PerDay
  49145. FROM
  49146. [AwardInfo]
  49147. ORDER BY
  49148. ActiveID ASC
  49149. RETURN
  49150. END
  49151. GO
  49152. /****** Object: StoredProcedure [dbo].[WS_UserAward_Send] Script Date: 2024/1/12 11:01:14 ******/
  49153. SET ANSI_NULLS ON
  49154. GO
  49155. SET QUOTED_IDENTIFIER ON
  49156. GO
  49157. -- EXEC [WS_UserAward_Send]
  49158. -- ==============================================
  49159. -- Author: wolf
  49160. -- Create Date: 2014-09-03
  49161. -- Mendor: wolf
  49162. -- Alter Date: 2014-12-02
  49163. -- Description: 活动记录
  49164. -- ==============================================
  49165. CREATE PROCEDURE [dbo].[WS_UserAward_Send]
  49166. @UserID INT, --用户ID
  49167. @ActiveID INT, --活动ID
  49168. @TotalTimes INT, --总次数
  49169. @PerDay INT, --每隔几天
  49170. @IPAddress VARCHAR(16) --IP地址
  49171. AS
  49172. SET NOCOUNT ON
  49173. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49174. SET XACT_ABORT ON
  49175. BEGIN
  49176. DECLARE @RetCode TINYINT --操作结果
  49177. DECLARE @CurrTimes INT --当前次数
  49178. DECLARE @DateFlag SMALLDATETIME --日期标识
  49179. SET @RetCode = 0
  49180. SET @CurrTimes = 0
  49181. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  49182. --统计次数
  49183. SELECT
  49184. @CurrTimes = COUNT(UserID)
  49185. FROM
  49186. [UserAwardLog]
  49187. WHERE
  49188. UserID = @UserID AND ActiveID = @ActiveID AND Crdate >= @DateFlag - @PerDay
  49189. --超过总次数
  49190. IF(@CurrTimes >= @TotalTimes)
  49191. BEGIN
  49192. SET @RetCode = 13
  49193. SELECT @RetCode AS RetCode
  49194. RETURN
  49195. END
  49196. --记录
  49197. INSERT INTO [UserAwardLog]
  49198. (
  49199. UserID, ActiveID, IPAddress, Crdate
  49200. )
  49201. VALUES
  49202. (
  49203. @UserID, @ActiveID, @IPAddress, GETDATE()
  49204. )
  49205. --操作成功
  49206. SET @RetCode = 1
  49207. --返回信息
  49208. SELECT @RetCode AS RetCode
  49209. RETURN
  49210. END
  49211. GO
  49212. /****** Object: StoredProcedure [dbo].[WS_UserBadge_GetBadgeList] Script Date: 2024/1/12 11:01:14 ******/
  49213. SET ANSI_NULLS ON
  49214. GO
  49215. SET QUOTED_IDENTIFIER ON
  49216. GO
  49217. -- EXEC [WS_UserBadge_GetBadgeList]
  49218. -- @UserId = 100
  49219. -- ==============================================
  49220. -- Author: wolf
  49221. -- Create Date: 2023-05-12
  49222. -- Mendor: wolf
  49223. -- Alter Date: 2023-05-12
  49224. -- Description: 获取用户的徽章列表
  49225. -- ==============================================
  49226. CREATE PROCEDURE [dbo].[WS_UserBadge_GetBadgeList]
  49227. @UserId INT --用户ID
  49228. AS
  49229. SET NOCOUNT ON
  49230. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49231. SET XACT_ABORT ON
  49232. BEGIN
  49233. SELECT
  49234. BadgeId, [Level], Exps, Points, Times, [Position], ExpiresTime, ObtainDate, Crdate
  49235. FROM
  49236. [UserBadge]
  49237. WHERE
  49238. UserId = @UserId
  49239. END
  49240. GO
  49241. /****** Object: StoredProcedure [dbo].[WS_UserBadge_SaveBadge] Script Date: 2024/1/12 11:01:14 ******/
  49242. SET ANSI_NULLS ON
  49243. GO
  49244. SET QUOTED_IDENTIFIER ON
  49245. GO
  49246. -- EXEC [WS_UserBadge_SaveBadge]
  49247. -- @UserId = 100
  49248. -- @BadgeId = 100
  49249. -- @Level = 1
  49250. -- @Exps = 150
  49251. -- @Points = 1
  49252. -- @Times = 1
  49253. -- @Position = 1
  49254. -- @ExpiresTime = 0
  49255. -- @ObtainDate = "[\"2023-05-16 15:15:15\"]"
  49256. -- ==============================================
  49257. -- Author: wolf
  49258. -- Create Date: 2023-05-16
  49259. -- Mendor: wolf
  49260. -- Alter Date: 2023-05-16
  49261. -- Description: 保存用户徽章
  49262. -- ==============================================
  49263. CREATE PROCEDURE [dbo].[WS_UserBadge_SaveBadge]
  49264. @UserId INT, -- 用户ID
  49265. @BadgeId INT, -- 徽章id
  49266. @Level SMALLINT, -- 徽章等级
  49267. @Exps INT, -- 徽章经验
  49268. @Points TINYINT, -- 徽章点数(用于排行榜)
  49269. @Times INT, -- 获取次数
  49270. @Position SMALLINT, -- 位置(-1=未佩戴 0递增对应位置)
  49271. @ExpiresTime INT, -- 到期时间戳
  49272. @ObtainDate VARCHAR(128), -- 徽章多个等级的获得日期
  49273. @Crdate DATETIME -- 创建日期
  49274. AS
  49275. SET NOCOUNT ON
  49276. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49277. SET XACT_ABORT ON
  49278. BEGIN
  49279. -- 修改数据:穿戴徽章
  49280. UPDATE
  49281. [UserBadge]
  49282. SET
  49283. [Level] = @Level, Exps = @Exps, Points = @Points, Times = @Times, [Position] = @Position,
  49284. ExpiresTime = @ExpiresTime, ObtainDate = @ObtainDate, Crdate = @Crdate
  49285. WHERE
  49286. BadgeId = @BadgeId AND UserId = @UserId
  49287. IF(@@ROWCOUNT = 0)
  49288. BEGIN
  49289. -- 新增用户徽章信息
  49290. INSERT INTO [UserBadge]
  49291. (
  49292. UserId, BadgeId, [Level], Exps, Points, Times, [Position], ExpiresTime, ObtainDate, Crdate
  49293. )
  49294. VALUES
  49295. (
  49296. @UserId, @BadgeId, @Level, @Exps, @Points, @Times, @Position, @ExpiresTime, @ObtainDate, @Crdate
  49297. )
  49298. END
  49299. RETURN
  49300. END
  49301. GO
  49302. /****** Object: StoredProcedure [dbo].[WS_UserCharm_Update] Script Date: 2024/1/12 11:01:14 ******/
  49303. SET ANSI_NULLS ON
  49304. GO
  49305. SET QUOTED_IDENTIFIER ON
  49306. GO
  49307. -- EXEC [WS_UserCharm_Update]
  49308. -- ==============================================
  49309. -- Author: wolf
  49310. -- Create Date: 2015-10-10
  49311. -- Mendor: wolf
  49312. -- Alter Date: 2015-10-10
  49313. -- Description: 更新魅力值
  49314. -- ==============================================
  49315. CREATE PROCEDURE [dbo].[WS_UserCharm_Update]
  49316. @UserID INT, --用户ID
  49317. @Charm INT --魅力值
  49318. AS
  49319. SET NOCOUNT ON
  49320. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49321. SET XACT_ABORT ON
  49322. BEGIN
  49323. DECLARE @DateFlag SMALLDATETIME --日期标识
  49324. DECLARE @WantCharm INT --变化魅力值
  49325. SET @WantCharm = 0
  49326. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  49327. --更新魅力值信息
  49328. UPDATE
  49329. [UserCharm]
  49330. SET
  49331. Charm = @Charm, @WantCharm = @Charm - Charm
  49332. WHERE
  49333. UserID = @UserID
  49334. IF(@@ROWCOUNT = 0)
  49335. BEGIN
  49336. INSERT INTO [UserCharm]
  49337. (
  49338. UserID, Charm
  49339. )
  49340. VALUES
  49341. (
  49342. @UserID, @Charm
  49343. )
  49344. --变化魅力值
  49345. SET @WantCharm = @Charm
  49346. END
  49347. --历史
  49348. UPDATE
  49349. [UserCharmHistory]
  49350. SET
  49351. Charm = Charm + @WantCharm
  49352. WHERE
  49353. DateFlag = @DateFlag AND UserID = @UserID
  49354. IF(@@ROWCOUNT = 0)
  49355. BEGIN
  49356. --记录历史
  49357. INSERT INTO [UserCharmHistory]
  49358. (
  49359. DateFlag, UserID, Charm
  49360. )
  49361. VALUES
  49362. (
  49363. @DateFlag, @UserID, @WantCharm
  49364. )
  49365. END
  49366. RETURN
  49367. END
  49368. GO
  49369. /****** Object: StoredProcedure [dbo].[WS_UserChipScore_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  49370. SET ANSI_NULLS ON
  49371. GO
  49372. SET QUOTED_IDENTIFIER ON
  49373. GO
  49374. -- EXEC [WS_UserChipScore_GetInfo]
  49375. -- ==============================================
  49376. -- Author: wolf
  49377. -- Create Date: 2014-01-21
  49378. -- Mendor: wolf
  49379. -- Alter Date: 2016-11-07
  49380. -- Description: 用户元宝积分信息
  49381. -- ==============================================
  49382. CREATE PROCEDURE [dbo].[WS_UserChipScore_GetInfo]
  49383. @UserID INT, --用户ID
  49384. @RankType TINYINT --榜单类型 (9=元宝积分昨天榜 10=元宝积分今天榜 11=元宝积分总榜)
  49385. AS
  49386. SET NOCOUNT ON
  49387. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49388. SET XACT_ABORT ON
  49389. BEGIN
  49390. DECLARE @DateFlag SMALLDATETIME --日期标识
  49391. DECLARE @Score BIGINT --积分
  49392. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  49393. --9=昨天的
  49394. IF(@RankType = 9)
  49395. BEGIN
  49396. SELECT @Score = SUM(Score) FROM [UserChipScore] WHERE DateFlag = @DateFlag - 1 AND UserID = @UserID
  49397. END
  49398. --10=今天的
  49399. ELSE IF(@RankType = 10)
  49400. BEGIN
  49401. SELECT @Score = SUM(Score) FROM [UserChipScore] WHERE DateFlag = @DateFlag AND UserID = @UserID
  49402. END
  49403. --11=总分榜
  49404. ELSE IF(@RankType = 11)
  49405. BEGIN
  49406. SELECT @Score = SUM(Score) FROM [UserChipScore] WHERE UserID = @UserID
  49407. END
  49408. SELECT ISNULL(@Score, 0) AS Score
  49409. RETURN
  49410. END
  49411. GO
  49412. /****** Object: StoredProcedure [dbo].[WS_UserChipSubsidy_Gift] Script Date: 2024/1/12 11:01:14 ******/
  49413. SET ANSI_NULLS ON
  49414. GO
  49415. SET QUOTED_IDENTIFIER ON
  49416. GO
  49417. -- EXEC [WS_UserChipSubsidy_Gift]
  49418. -- ==============================================
  49419. -- Author: wolf
  49420. -- Create Date: 2014-01-21
  49421. -- Mendor: wolf
  49422. -- Alter Date: 2016-11-07
  49423. -- Description: 元宝补助
  49424. -- ==============================================
  49425. CREATE PROCEDURE [dbo].[WS_UserChipSubsidy_Gift]
  49426. @UserID INT, --用户ID
  49427. @LowerAmount BIGINT, --最低金额
  49428. @IPAddress VARCHAR(16) --IP地址
  49429. AS
  49430. SET NOCOUNT ON
  49431. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49432. SET XACT_ABORT ON
  49433. BEGIN
  49434. DECLARE @RetCode TINYINT --操作结果
  49435. DECLARE @Amount BIGINT --金币数
  49436. DECLARE @Bank BIGINT --保险柜
  49437. DECLARE @CurrTime DATETIME --系统当前时间
  49438. DECLARE @DateFlag SMALLDATETIME --日期标识
  49439. SET @CurrTime = GETDATE()
  49440. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  49441. SET @RetCode = 0
  49442. --是否超过3次
  49443. IF((SELECT COUNT(Rid) FROM [UserChipSubsidy] WHERE Crdate >= @DateFlag AND UserID = @UserID) >= 3)
  49444. BEGIN
  49445. SET @RetCode = 11
  49446. SELECT @RetCode AS RetCode
  49447. RETURN
  49448. END
  49449. --IP已经领取过
  49450. IF EXISTS(SELECT Rid FROM [UserChipSubsidy] WHERE Crdate >= @DateFlag AND IPAddress = @IPAddress AND UserID != @UserID)
  49451. BEGIN
  49452. SET @RetCode = 12
  49453. SELECT @RetCode AS RetCode
  49454. RETURN
  49455. END
  49456. --筹码
  49457. EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @Amount OUTPUT, @Bank = @Bank OUTPUT
  49458. --判断是否触发低保
  49459. IF((@Amount + @Bank) >= @LowerAmount)
  49460. BEGIN
  49461. SET @RetCode = 13
  49462. SELECT @RetCode AS RetCode
  49463. RETURN
  49464. END
  49465. --初始化
  49466. INSERT INTO [UserChipSubsidy](UserID, IPAddress, Crdate) VALUES(@UserID, @IPAddress, @CurrTime)
  49467. --返回信息
  49468. SET @RetCode = 1
  49469. SELECT @RetCode AS RetCode
  49470. RETURN
  49471. END
  49472. GO
  49473. /****** Object: StoredProcedure [dbo].[WS_UserDecoration_GetList] Script Date: 2024/1/12 11:01:14 ******/
  49474. SET ANSI_NULLS ON
  49475. GO
  49476. SET QUOTED_IDENTIFIER ON
  49477. GO
  49478. -- EXEC [WS_UserDecoration_GetList]
  49479. -- ==============================================
  49480. -- Author: wolf
  49481. -- Create Date: 2015-10-10
  49482. -- Mendor: wolf
  49483. -- Alter Date: 2015-10-10
  49484. -- Description: 获取用户装扮列表
  49485. -- ==============================================
  49486. CREATE PROCEDURE [dbo].[WS_UserDecoration_GetList]
  49487. @UserID INT
  49488. AS
  49489. SET NOCOUNT ON
  49490. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49491. SET XACT_ABORT ON
  49492. BEGIN
  49493. --返回信息
  49494. SELECT
  49495. DecorationType AS [Type], ItemID
  49496. FROM
  49497. [UserDecoration]
  49498. WHERE
  49499. UserID = @UserID
  49500. RETURN
  49501. END
  49502. GO
  49503. /****** Object: StoredProcedure [dbo].[WS_UserDecoration_SaveInfo] Script Date: 2024/1/12 11:01:14 ******/
  49504. SET ANSI_NULLS ON
  49505. GO
  49506. SET QUOTED_IDENTIFIER ON
  49507. GO
  49508. -- EXEC [WS_UserDecoration_SaveInfo]
  49509. -- ==============================================
  49510. -- Author: wolf
  49511. -- Create Date: 2015-10-10
  49512. -- Mendor: wolf
  49513. -- Alter Date: 2015-10-10
  49514. -- Description: 保存用户装扮
  49515. -- ==============================================
  49516. CREATE PROCEDURE [dbo].[WS_UserDecoration_SaveInfo]
  49517. @UserID INT,
  49518. @DecorationType INT, --装扮类型
  49519. @ItemID INT --道具ID
  49520. AS
  49521. SET NOCOUNT ON
  49522. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49523. SET XACT_ABORT ON
  49524. BEGIN
  49525. DECLARE @RetCode TINYINT --操作结果
  49526. SET @RetCode = 0
  49527. --修改
  49528. UPDATE
  49529. [UserDecoration]
  49530. SET
  49531. ItemID = @ItemID
  49532. WHERE
  49533. UserID = @UserID AND DecorationType = @DecorationType
  49534. IF(@@ROWCOUNT = 0)
  49535. BEGIN
  49536. INSERT INTO [UserDecoration]
  49537. (
  49538. UserID, DecorationType, ItemID
  49539. )
  49540. VALUES
  49541. (
  49542. @UserID, @DecorationType, @ItemID
  49543. )
  49544. END
  49545. SET @RetCode = 1
  49546. --返回信息
  49547. SELECT @RetCode AS RetCode
  49548. RETURN
  49549. END
  49550. GO
  49551. /****** Object: StoredProcedure [dbo].[WS_UserDot_Insert] Script Date: 2024/1/12 11:01:14 ******/
  49552. SET ANSI_NULLS ON
  49553. GO
  49554. SET QUOTED_IDENTIFIER ON
  49555. GO
  49556. -- EXEC [WS_UserDot_Insert]
  49557. -- ==============================================
  49558. -- Author: wolf
  49559. -- Create Date: 2016-07-21
  49560. -- Mendor: wolf
  49561. -- Alter Date: 2016-11-07
  49562. -- Description: 添加打点数据
  49563. -- ==============================================
  49564. CREATE PROCEDURE [dbo].[WS_UserDot_Insert]
  49565. @UserID VARCHAR(16), --用户ID
  49566. @DateFlag SMALLDATETIME, --日期标识
  49567. @Scene VARCHAR(32), --场景
  49568. @Event VARCHAR(32), --事件
  49569. @Action TINYINT, --动作(1=点击 2=完成 3=领取)
  49570. @Times INT --次数
  49571. AS
  49572. SET NOCOUNT ON
  49573. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49574. SET XACT_ABORT ON
  49575. BEGIN
  49576. --更新统计
  49577. UPDATE
  49578. [UserDot]
  49579. SET
  49580. Times = Times + @Times
  49581. WHERE
  49582. UserID = @UserID AND DateFlag = @DateFlag AND Scene = @Scene AND Event = @Event AND Action = @Action
  49583. IF(@@ROWCOUNT = 0)
  49584. BEGIN
  49585. INSERT INTO [UserDot]
  49586. (
  49587. UserID, DateFlag, Scene, Event, Action, Times
  49588. )
  49589. VALUES
  49590. (
  49591. @UserID, @DateFlag, @Scene, @Event, @Action, @Times
  49592. )
  49593. END
  49594. RETURN
  49595. END
  49596. GO
  49597. /****** Object: StoredProcedure [dbo].[WS_UserFacebook_Bind] Script Date: 2024/1/12 11:01:14 ******/
  49598. SET ANSI_NULLS ON
  49599. GO
  49600. SET QUOTED_IDENTIFIER ON
  49601. GO
  49602. -- EXEC [WS_UserFacebook_Bind]
  49603. -- ==============================================
  49604. -- Author: wolf
  49605. -- Create Date: 2016-07-21
  49606. -- Mendor: wolf
  49607. -- Alter Date: 2016-11-07
  49608. -- Description: facebook 绑定
  49609. -- ==============================================
  49610. CREATE PROCEDURE [dbo].[WS_UserFacebook_Bind]
  49611. @UserID INT, --用户ID
  49612. @OpenID VARCHAR(64), --openid
  49613. @NickName NVARCHAR(32), --昵称
  49614. @FaceUrl VARCHAR(1024) --头像URL
  49615. AS
  49616. SET NOCOUNT ON
  49617. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49618. SET XACT_ABORT ON
  49619. BEGIN
  49620. DECLARE @RetCode TINYINT --操作结果 1=绑定成功 11=该账号已绑定 12=facebook账号已使用
  49621. DECLARE @IMei VARCHAR(64) --IMei
  49622. DECLARE @deviceid VARCHAR(64) --设备号
  49623. DECLARE @Amount INT --赠送金币
  49624. SET @RetCode = 0
  49625. SET @Amount = 0
  49626. --不是facebook账号
  49627. IF(LEFT(@OpenID, 3) != 'fb.' AND LEFT(@OpenID, 3) != 'gg.')
  49628. BEGIN
  49629. SELECT @RetCode AS RetCode, @Amount AS Amount
  49630. RETURN
  49631. END
  49632. --设备号
  49633. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
  49634. --已绑定
  49635. IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.')
  49636. BEGIN
  49637. SET @RetCode = 11
  49638. SELECT @RetCode AS RetCode, @Amount AS Amount
  49639. RETURN
  49640. END
  49641. --已绑定
  49642. IF(LEFT(@deviceid, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'gg.')
  49643. BEGIN
  49644. SET @RetCode = 11
  49645. SELECT @RetCode AS RetCode, @Amount AS Amount
  49646. RETURN
  49647. END
  49648. --判断是否已绑定
  49649. IF EXISTS(SELECT deviceid FROM [AllUser] WHERE deviceid = @OpenID)
  49650. BEGIN
  49651. SET @RetCode = 12
  49652. SELECT @RetCode AS RetCode, @Amount AS Amount
  49653. RETURN
  49654. END
  49655. --判断是否已绑定
  49656. IF EXISTS(SELECT IMei FROM [AllUser] WHERE IMei = @OpenID)
  49657. BEGIN
  49658. SET @RetCode = 12
  49659. SELECT @RetCode AS RetCode, @Amount AS Amount
  49660. RETURN
  49661. END
  49662. --修改信息
  49663. UPDATE [AllUser] SET NickName = @NickName, deviceid = @OpenID WHERE UserID = @UserID
  49664. --更新头像
  49665. UPDATE [UserFace] SET FaceUrl = @FaceUrl, FaceID = 0 WHERE UserID = @UserID
  49666. --获取绑定赠送
  49667. SELECT @Amount = BindFacebook FROM [PlatformConfig] WHERE ConfigID = 1
  49668. --操作结果
  49669. SET @RetCode = 1
  49670. --返回信息
  49671. SELECT @RetCode AS RetCode, @Amount AS Amount
  49672. RETURN
  49673. END
  49674. GO
  49675. /****** Object: StoredProcedure [dbo].[WS_UserFriends_AddBlack] Script Date: 2024/1/12 11:01:14 ******/
  49676. SET ANSI_NULLS ON
  49677. GO
  49678. SET QUOTED_IDENTIFIER ON
  49679. GO
  49680. -- EXEC [WS_UserFriends_AddBlack]
  49681. -- ==============================================
  49682. -- Author: wolf
  49683. -- Create Date: 2014-06-17
  49684. -- Mendor: wolf
  49685. -- Alter Date: 2016-08-16
  49686. -- Description: 添加黑名单
  49687. -- ==============================================
  49688. CREATE PROCEDURE [dbo].[WS_UserFriends_AddBlack]
  49689. @UserID INT, --用户ID
  49690. @ToUserID INT, --目标用户ID
  49691. @Crdate DATETIME --时间
  49692. AS
  49693. SET NOCOUNT ON
  49694. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49695. SET XACT_ABORT ON
  49696. BEGIN
  49697. UPDATE [BlackFriends] SET Crdate = @Crdate WHERE UserID = @UserID AND ToUserID = @ToUserID
  49698. IF(@@ROWCOUNT = 0)
  49699. BEGIN
  49700. INSERT INTO [BlackFriends]
  49701. (
  49702. UserID, ToUserID, Crdate
  49703. )
  49704. VALUES
  49705. (
  49706. @UserID, @ToUserID, @Crdate
  49707. )
  49708. END
  49709. RETURN
  49710. END
  49711. GO
  49712. /****** Object: StoredProcedure [dbo].[WS_UserFriends_AddPotential] Script Date: 2024/1/12 11:01:14 ******/
  49713. SET ANSI_NULLS ON
  49714. GO
  49715. SET QUOTED_IDENTIFIER ON
  49716. GO
  49717. -- EXEC [WS_UserFriends_AddPotential]
  49718. -- ==============================================
  49719. -- Author: wolf
  49720. -- Create Date: 2014-06-11
  49721. -- Mendor: wolf
  49722. -- Alter Date: 2014-06-11
  49723. -- Description: 添加潜在好友
  49724. -- ==============================================
  49725. CREATE PROCEDURE [dbo].[WS_UserFriends_AddPotential]
  49726. @UserID INT, --用户ID
  49727. @FriendUserID INT, --潜在好友ID
  49728. @Memo NVARCHAR(64), --描述
  49729. @MetTime INT --时间戳
  49730. AS
  49731. SET NOCOUNT ON
  49732. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49733. SET XACT_ABORT ON
  49734. BEGIN
  49735. --添加
  49736. INSERT INTO [PotentialFriends]
  49737. (
  49738. UserID, FriendUserID, Memo, MetTime
  49739. )
  49740. VALUES
  49741. (
  49742. @UserID, @FriendUserID, @Memo, dbo.fn_StampToTime(@MetTime)
  49743. )
  49744. RETURN
  49745. END
  49746. GO
  49747. /****** Object: StoredProcedure [dbo].[WS_UserFriends_Apply] Script Date: 2024/1/12 11:01:14 ******/
  49748. SET ANSI_NULLS ON
  49749. GO
  49750. SET QUOTED_IDENTIFIER ON
  49751. GO
  49752. -- EXEC [WS_UserFriends_Apply]
  49753. -- ==============================================
  49754. -- Author: wolf
  49755. -- Create Date: 2015-03-13
  49756. -- Mendor: wolf
  49757. -- Alter Date: 2017-02-16
  49758. -- Description: 好友申请
  49759. -- ==============================================
  49760. CREATE PROCEDURE [dbo].[WS_UserFriends_Apply]
  49761. @UserID INT, --用户ID
  49762. @ToUserID INT --目标用户ID
  49763. AS
  49764. SET NOCOUNT ON
  49765. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49766. SET XACT_ABORT ON
  49767. BEGIN
  49768. --好友申请
  49769. INSERT INTO [UserFriendsApply]
  49770. (
  49771. UserID, ToUserID, Status, DealTime, Crdate
  49772. )
  49773. VALUES
  49774. (
  49775. @UserID, @ToUserID, 0, GETDATE(), GETDATE()
  49776. )
  49777. RETURN
  49778. END
  49779. GO
  49780. /****** Object: StoredProcedure [dbo].[WS_UserFriends_DealApply] Script Date: 2024/1/12 11:01:14 ******/
  49781. SET ANSI_NULLS ON
  49782. GO
  49783. SET QUOTED_IDENTIFIER ON
  49784. GO
  49785. -- EXEC [WS_UserFriends_DealApply]
  49786. -- ==============================================
  49787. -- Author: wolf
  49788. -- Create Date: 2015-03-13
  49789. -- Mendor: wolf
  49790. -- Alter Date: 2017-02-16
  49791. -- Description: 好友申请处理
  49792. -- ==============================================
  49793. CREATE PROCEDURE [dbo].[WS_UserFriends_DealApply]
  49794. @UserID INT, --用户ID
  49795. @FromUserID INT, --请求用户ID
  49796. @Status TINYINT --状态 1=同意 2=拒绝
  49797. AS
  49798. SET NOCOUNT ON
  49799. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49800. SET XACT_ABORT ON
  49801. BEGIN
  49802. --处理
  49803. UPDATE
  49804. [UserFriendsApply]
  49805. SET
  49806. Status = @Status, DealTime = GETDATE()
  49807. WHERE
  49808. ToUserID = @UserID AND UserID = @FromUserID AND Status = 0
  49809. --拒绝
  49810. IF(@Status != 1)
  49811. RETURN
  49812. --好友
  49813. INSERT INTO [UserFriends]
  49814. (
  49815. UserID, ToUserID, IsGift, GiftTime, GiveTime, Crdate
  49816. )
  49817. SELECT @UserID, @FromUserID, 0, '2021-01-01', '2021-01-01', GETDATE()
  49818. UNION ALL
  49819. SELECT @FromUserID, @UserID, 0, '2021-01-01', '2021-01-01', GETDATE()
  49820. RETURN
  49821. END
  49822. GO
  49823. /****** Object: StoredProcedure [dbo].[WS_UserFriends_Del] Script Date: 2024/1/12 11:01:14 ******/
  49824. SET ANSI_NULLS ON
  49825. GO
  49826. SET QUOTED_IDENTIFIER ON
  49827. GO
  49828. -- EXEC [WS_UserFriends_Del]
  49829. -- ==============================================
  49830. -- Author: wolf
  49831. -- Create Date: 2015-03-13
  49832. -- Mendor: wolf
  49833. -- Alter Date: 2017-02-16
  49834. -- Description: 好友删除
  49835. -- ==============================================
  49836. CREATE PROCEDURE [dbo].[WS_UserFriends_Del]
  49837. @UserID INT, --用户ID
  49838. @ToUserID INT --删除用户
  49839. AS
  49840. SET NOCOUNT ON
  49841. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49842. SET XACT_ABORT ON
  49843. BEGIN
  49844. --好友历史
  49845. INSERT INTO [UserFriendsHistory]
  49846. (
  49847. FriendID, UserID, ToUserID, Crdate, DelTime
  49848. )
  49849. SELECT
  49850. FriendID, UserID, ToUserID, Crdate, GETDATE()
  49851. FROM
  49852. [UserFriends]
  49853. WHERE
  49854. UserID = @UserID AND ToUserID = @ToUserID
  49855. UNION ALL
  49856. SELECT
  49857. FriendID, UserID, ToUserID, Crdate, GETDATE()
  49858. FROM
  49859. [UserFriends]
  49860. WHERE
  49861. UserID = @ToUserID AND ToUserID = @UserID
  49862. --删除自己好友
  49863. DELETE FROM [UserFriends] WHERE UserID = @UserID AND ToUserID = @ToUserID
  49864. --删除对方好友
  49865. DELETE FROM [UserFriends] WHERE UserID = @ToUserID AND ToUserID = @UserID
  49866. END
  49867. GO
  49868. /****** Object: StoredProcedure [dbo].[WS_UserFriends_DelBlack] Script Date: 2024/1/12 11:01:14 ******/
  49869. SET ANSI_NULLS ON
  49870. GO
  49871. SET QUOTED_IDENTIFIER ON
  49872. GO
  49873. -- EXEC [WS_UserFriends_DelBlack]
  49874. -- ==============================================
  49875. -- Author: wolf
  49876. -- Create Date: 2014-06-17
  49877. -- Mendor: wolf
  49878. -- Alter Date: 2016-08-16
  49879. -- Description: 删除黑名单
  49880. -- ==============================================
  49881. CREATE PROCEDURE [dbo].[WS_UserFriends_DelBlack]
  49882. @UserID INT, --用户ID
  49883. @ToUserID INT --目标用户ID
  49884. AS
  49885. SET NOCOUNT ON
  49886. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49887. SET XACT_ABORT ON
  49888. BEGIN
  49889. --删除
  49890. DELETE FROM [BlackFriends] WHERE UserID = @UserID AND ToUserID = @ToUserID
  49891. RETURN
  49892. END
  49893. GO
  49894. /****** Object: StoredProcedure [dbo].[WS_UserFriends_DelPotential] Script Date: 2024/1/12 11:01:14 ******/
  49895. SET ANSI_NULLS ON
  49896. GO
  49897. SET QUOTED_IDENTIFIER ON
  49898. GO
  49899. -- EXEC [WS_UserFriends_DelPotential]
  49900. -- ==============================================
  49901. -- Author: wolf
  49902. -- Create Date: 2014-06-11
  49903. -- Mendor: wolf
  49904. -- Alter Date: 2014-06-11
  49905. -- Description: 删除潜在好友
  49906. -- ==============================================
  49907. CREATE PROCEDURE [dbo].[WS_UserFriends_DelPotential]
  49908. @UserID INT, --用户ID
  49909. @FriendUserID INT --潜在好友ID
  49910. AS
  49911. SET NOCOUNT ON
  49912. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49913. SET XACT_ABORT ON
  49914. BEGIN
  49915. --删除
  49916. DELETE FROM [PotentialFriends] WHERE UserID = @UserID AND FriendUserID = @FriendUserID
  49917. RETURN
  49918. END
  49919. GO
  49920. /****** Object: StoredProcedure [dbo].[WS_UserFriends_ExistBlack] Script Date: 2024/1/12 11:01:14 ******/
  49921. SET ANSI_NULLS ON
  49922. GO
  49923. SET QUOTED_IDENTIFIER ON
  49924. GO
  49925. -- EXEC [WS_UserFriends_ExistBlack]
  49926. -- ==============================================
  49927. -- Author: wolf
  49928. -- Create Date: 2014-06-17
  49929. -- Mendor: wolf
  49930. -- Alter Date: 2016-08-16
  49931. -- Description: 是否在黑名单中
  49932. -- ==============================================
  49933. CREATE PROCEDURE [dbo].[WS_UserFriends_ExistBlack]
  49934. @UserID INT, --用户ID
  49935. @ToUserID INT --目标用户ID
  49936. AS
  49937. SET NOCOUNT ON
  49938. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49939. SET XACT_ABORT ON
  49940. BEGIN
  49941. DECLARE @RetCode TINYINT --是否存在
  49942. SET @RetCode = 0
  49943. IF EXISTS(SELECT UserID FROM [BlackFriends] WHERE UserID = @UserID AND ToUserID = @ToUserID)
  49944. BEGIN
  49945. SET @RetCode = 1
  49946. SELECT @RetCode AS RetCode
  49947. RETURN
  49948. END
  49949. IF EXISTS(SELECT UserID FROM [BlackFriends] WHERE UserID = @ToUserID AND ToUserID = @UserID)
  49950. BEGIN
  49951. SET @RetCode = 1
  49952. SELECT @RetCode AS RetCode
  49953. RETURN
  49954. END
  49955. SELECT @RetCode AS RetCode
  49956. RETURN
  49957. END
  49958. GO
  49959. /****** Object: StoredProcedure [dbo].[WS_UserFriends_GetApplyList] Script Date: 2024/1/12 11:01:14 ******/
  49960. SET ANSI_NULLS ON
  49961. GO
  49962. SET QUOTED_IDENTIFIER ON
  49963. GO
  49964. -- EXEC [WS_UserFriends_GetApplyList]
  49965. -- ==============================================
  49966. -- Author: wolf
  49967. -- Create Date: 2015-03-13
  49968. -- Mendor: wolf
  49969. -- Alter Date: 2017-02-16
  49970. -- Description: 申请列表(自己申请的)
  49971. -- ==============================================
  49972. CREATE PROCEDURE [dbo].[WS_UserFriends_GetApplyList]
  49973. @UserID INT --用户ID
  49974. AS
  49975. SET NOCOUNT ON
  49976. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  49977. SET XACT_ABORT ON
  49978. BEGIN
  49979. --申请表变量
  49980. DECLARE @tmptable TABLE(
  49981. UserID INT NOT NULL --目标用户ID
  49982. )
  49983. --初始化表变量
  49984. INSERT INTO @tmptable
  49985. (
  49986. UserID
  49987. )
  49988. SELECT
  49989. ToUserID
  49990. FROM
  49991. [UserFriendsApply]
  49992. WHERE
  49993. UserID = @UserID AND Status = 0
  49994. --没有用户信息
  49995. IF(@@ROWCOUNT = 0)
  49996. BEGIN
  49997. --返回信息
  49998. SELECT UserID FROM @tmptable
  49999. RETURN
  50000. END
  50001. --返回信息
  50002. SELECT UserID FROM @tmptable
  50003. RETURN
  50004. END
  50005. GO
  50006. /****** Object: StoredProcedure [dbo].[WS_UserFriends_GetBlackList] Script Date: 2024/1/12 11:01:14 ******/
  50007. SET ANSI_NULLS ON
  50008. GO
  50009. SET QUOTED_IDENTIFIER ON
  50010. GO
  50011. -- EXEC [WS_UserFriends_GetBlackList]
  50012. -- ==============================================
  50013. -- Author: wolf
  50014. -- Create Date: 2014-06-17
  50015. -- Mendor: wolf
  50016. -- Alter Date: 2016-08-16
  50017. -- Description: 黑名单列表
  50018. -- ==============================================
  50019. CREATE PROCEDURE [dbo].[WS_UserFriends_GetBlackList]
  50020. @UserID INT --用户ID
  50021. AS
  50022. SET NOCOUNT ON
  50023. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50024. SET XACT_ABORT ON
  50025. BEGIN
  50026. --返回信息
  50027. SELECT
  50028. ToUserID AS UserID, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  50029. FROM
  50030. [BlackFriends]
  50031. WHERE
  50032. UserID = @UserID
  50033. RETURN
  50034. END
  50035. GO
  50036. /****** Object: StoredProcedure [dbo].[WS_UserFriends_GetGift] Script Date: 2024/1/12 11:01:14 ******/
  50037. SET ANSI_NULLS ON
  50038. GO
  50039. SET QUOTED_IDENTIFIER ON
  50040. GO
  50041. -- EXEC [WS_UserFriends_GetGift]
  50042. -- ==============================================
  50043. -- Author: wolf
  50044. -- Create Date: 2015-03-13
  50045. -- Mendor: wolf
  50046. -- Alter Date: 2017-02-16
  50047. -- Description: 领取好友礼物
  50048. -- ==============================================
  50049. CREATE PROCEDURE [dbo].[WS_UserFriends_GetGift]
  50050. @UserID INT, --用户ID
  50051. @ToUserID INT --目标用户ID
  50052. AS
  50053. SET NOCOUNT ON
  50054. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50055. SET XACT_ABORT ON
  50056. BEGIN
  50057. --好友
  50058. UPDATE
  50059. [UserFriends]
  50060. SET
  50061. IsGift = 2, GiftTime = GETDATE()
  50062. WHERE
  50063. UserID = @UserID AND ToUserID = @ToUserID
  50064. RETURN
  50065. END
  50066. GO
  50067. /****** Object: StoredProcedure [dbo].[WS_UserFriends_GetList] Script Date: 2024/1/12 11:01:14 ******/
  50068. SET ANSI_NULLS ON
  50069. GO
  50070. SET QUOTED_IDENTIFIER ON
  50071. GO
  50072. -- EXEC [WS_UserFriends_GetList]
  50073. -- ==============================================
  50074. -- Author: wolf
  50075. -- Create Date: 2015-03-13
  50076. -- Mendor: wolf
  50077. -- Alter Date: 2017-02-16
  50078. -- Description: 好友列表
  50079. -- ==============================================
  50080. CREATE PROCEDURE [dbo].[WS_UserFriends_GetList]
  50081. @UserID INT, --用户ID
  50082. @ToUserID INT --目标用户ID
  50083. AS
  50084. SET NOCOUNT ON
  50085. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50086. SET XACT_ABORT ON
  50087. BEGIN
  50088. --申请表变量
  50089. DECLARE @tmptable TABLE(
  50090. ToUserID INT NOT NULL, --目标用户ID
  50091. IsGift TINYINT NOT NULL, --是否有礼物领取(0=没有礼物 1=有礼物还没领 2=有礼物已领取)
  50092. GiftTime DATETIME NOT NULL, --礼物时间
  50093. GiveTime DATETIME NOT NULL --赠送时间
  50094. )
  50095. --查询某个用户
  50096. IF(@ToUserID > 0)
  50097. BEGIN
  50098. --初始化表变量
  50099. INSERT INTO @tmptable
  50100. (
  50101. ToUserID, IsGift, GiftTime, GiveTime
  50102. )
  50103. SELECT
  50104. ToUserID, IsGift, GiftTime, GiveTime
  50105. FROM
  50106. [UserFriends]
  50107. WHERE
  50108. UserID = @UserID AND ToUserID = @ToUserID
  50109. END
  50110. --查询所有用户
  50111. ELSE
  50112. BEGIN
  50113. --初始化表变量
  50114. INSERT INTO @tmptable
  50115. (
  50116. ToUserID, IsGift, GiftTime, GiveTime
  50117. )
  50118. SELECT
  50119. ToUserID, IsGift, GiftTime, GiveTime
  50120. FROM
  50121. [UserFriends]
  50122. WHERE
  50123. UserID = @UserID
  50124. END
  50125. --没有用户信息
  50126. IF(@@ROWCOUNT = 0)
  50127. BEGIN
  50128. --返回信息
  50129. SELECT
  50130. ToUserID, IsGift, CONVERT(VARCHAR(20), GiftTime, 120) AS GiftTime,
  50131. CONVERT(VARCHAR(20), GiveTime, 120) AS GiveTime
  50132. FROM
  50133. @tmptable
  50134. RETURN
  50135. END
  50136. --返回信息
  50137. SELECT
  50138. ToUserID, IsGift, CONVERT(VARCHAR(20), GiftTime, 120) AS GiftTime,
  50139. CONVERT(VARCHAR(20), GiveTime, 120) AS GiveTime
  50140. FROM
  50141. @tmptable
  50142. RETURN
  50143. END
  50144. GO
  50145. /****** Object: StoredProcedure [dbo].[WS_UserFriends_GetPotentialList] Script Date: 2024/1/12 11:01:14 ******/
  50146. SET ANSI_NULLS ON
  50147. GO
  50148. SET QUOTED_IDENTIFIER ON
  50149. GO
  50150. -- EXEC [WS_UserFriends_GetPotentialList]
  50151. -- ==============================================
  50152. -- Author: wolf
  50153. -- Create Date: 2014-06-11
  50154. -- Mendor: wolf
  50155. -- Alter Date: 2014-06-11
  50156. -- Description: 潜在好友列表
  50157. -- ==============================================
  50158. CREATE PROCEDURE [dbo].[WS_UserFriends_GetPotentialList]
  50159. @UserID INT
  50160. AS
  50161. SET NOCOUNT ON
  50162. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50163. SET XACT_ABORT ON
  50164. BEGIN
  50165. --返回信息
  50166. SELECT
  50167. FriendUserID AS UserId, Memo, dbo.fn_TimeToStamp(MetTime) AS MetTime
  50168. FROM
  50169. [PotentialFriends]
  50170. WHERE
  50171. UserID = @UserID
  50172. ORDER BY
  50173. MetTime DESC
  50174. RETURN
  50175. END
  50176. GO
  50177. /****** Object: StoredProcedure [dbo].[WS_UserFriends_GetVerifyList] Script Date: 2024/1/12 11:01:14 ******/
  50178. SET ANSI_NULLS ON
  50179. GO
  50180. SET QUOTED_IDENTIFIER ON
  50181. GO
  50182. -- EXEC [WS_UserFriends_GetVerifyList]
  50183. -- ==============================================
  50184. -- Author: wolf
  50185. -- Create Date: 2015-03-13
  50186. -- Mendor: wolf
  50187. -- Alter Date: 2017-02-16
  50188. -- Description: 审核列表(谁来申请的)
  50189. -- ==============================================
  50190. CREATE PROCEDURE [dbo].[WS_UserFriends_GetVerifyList]
  50191. @UserID INT --用户ID
  50192. AS
  50193. SET NOCOUNT ON
  50194. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50195. SET XACT_ABORT ON
  50196. BEGIN
  50197. --申请表变量
  50198. DECLARE @tmptable TABLE(
  50199. UserID INT NOT NULL --目标用户ID
  50200. )
  50201. --初始化表变量
  50202. INSERT INTO @tmptable
  50203. (
  50204. UserID
  50205. )
  50206. SELECT
  50207. UserID
  50208. FROM
  50209. [UserFriendsApply]
  50210. WHERE
  50211. ToUserID = @UserID AND Status = 0
  50212. --没有用户信息
  50213. IF(@@ROWCOUNT = 0)
  50214. BEGIN
  50215. --返回信息
  50216. SELECT UserID FROM @tmptable
  50217. RETURN
  50218. END
  50219. --返回信息
  50220. SELECT UserID FROM @tmptable
  50221. RETURN
  50222. END
  50223. GO
  50224. /****** Object: StoredProcedure [dbo].[WS_UserFriends_GiveGift] Script Date: 2024/1/12 11:01:14 ******/
  50225. SET ANSI_NULLS ON
  50226. GO
  50227. SET QUOTED_IDENTIFIER ON
  50228. GO
  50229. -- EXEC [WS_UserFriends_GiveGift]
  50230. -- ==============================================
  50231. -- Author: wolf
  50232. -- Create Date: 2015-03-13
  50233. -- Mendor: wolf
  50234. -- Alter Date: 2017-02-16
  50235. -- Description: 好友赠送礼物
  50236. -- ==============================================
  50237. CREATE PROCEDURE [dbo].[WS_UserFriends_GiveGift]
  50238. @UserID INT, --用户ID
  50239. @ToUserID INT --目标用户ID
  50240. AS
  50241. SET NOCOUNT ON
  50242. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50243. SET XACT_ABORT ON
  50244. BEGIN
  50245. --赠送时间
  50246. UPDATE [UserFriends] SET GiveTime = GETDATE() WHERE UserID = @UserID AND ToUserID = @ToUserID
  50247. --获赠方标识
  50248. UPDATE [UserFriends] SET IsGift = 1 WHERE UserID = @ToUserID AND ToUserID = @UserID
  50249. RETURN
  50250. END
  50251. GO
  50252. /****** Object: StoredProcedure [dbo].[WS_UserGameCount_GetList] Script Date: 2024/1/12 11:01:14 ******/
  50253. SET ANSI_NULLS ON
  50254. GO
  50255. SET QUOTED_IDENTIFIER ON
  50256. GO
  50257. -- EXEC [WS_UserGameCount_GetList]
  50258. -- ==============================================
  50259. -- Author: wolf
  50260. -- Create Date: 2015-10-10
  50261. -- Mendor: wolf
  50262. -- Alter Date: 2015-10-10
  50263. -- Description: 用户游戏局数列表
  50264. -- ==============================================
  50265. CREATE PROCEDURE [dbo].[WS_UserGameCount_GetList]
  50266. @UserID INT, --用户ID
  50267. @GameID INT --游戏ID
  50268. AS
  50269. SET NOCOUNT ON
  50270. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50271. SET XACT_ABORT ON
  50272. BEGIN
  50273. IF(@GameID > 0)
  50274. BEGIN
  50275. SELECT
  50276. GameID, TotalCount, WinCount, MaxWinAmount, CardStat
  50277. FROM
  50278. [UserGameCount]
  50279. WHERE
  50280. UserID = @UserID AND GameID = @GameID
  50281. RETURN
  50282. END
  50283. --返回信息
  50284. SELECT
  50285. GameID, TotalCount, WinCount, MaxWinAmount, CardStat
  50286. FROM
  50287. [UserGameCount]
  50288. WHERE
  50289. UserID = @UserID
  50290. RETURN
  50291. END
  50292. GO
  50293. /****** Object: StoredProcedure [dbo].[WS_UserGameCount_Update] Script Date: 2024/1/12 11:01:14 ******/
  50294. SET ANSI_NULLS ON
  50295. GO
  50296. SET QUOTED_IDENTIFIER ON
  50297. GO
  50298. -- EXEC [WS_UserGameCount_Update]
  50299. -- ==============================================
  50300. -- Author: wolf
  50301. -- Create Date: 2015-10-10
  50302. -- Mendor: wolf
  50303. -- Alter Date: 2015-10-10
  50304. -- Description: 用户游戏局数更新
  50305. -- ==============================================
  50306. CREATE PROCEDURE [dbo].[WS_UserGameCount_Update]
  50307. @UserID INT, --用户ID
  50308. @GameID INT, --游戏ID
  50309. @CardStat VARCHAR(1024) --牌型统计
  50310. AS
  50311. SET NOCOUNT ON
  50312. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50313. SET XACT_ABORT ON
  50314. BEGIN
  50315. --更新信息
  50316. UPDATE
  50317. [UserGameCount]
  50318. SET
  50319. CardStat = CASE WHEN @CardStat != '' THEN @CardStat ELSE CardStat END
  50320. WHERE
  50321. UserID = @UserID AND GameID = @GameID
  50322. IF(@@ROWCOUNT > 0)
  50323. RETURN
  50324. --用户游戏局数
  50325. INSERT INTO [UserGameCount]
  50326. (
  50327. UserID, GameID, TotalCount, WinCount, MaxWinAmount, CardStat
  50328. )
  50329. VALUES
  50330. (
  50331. @UserID, @GameID, 0, 0, 0, @CardStat
  50332. )
  50333. RETURN
  50334. END
  50335. GO
  50336. /****** Object: StoredProcedure [dbo].[WS_UserGameSettleVideo_Add] Script Date: 2024/1/12 11:01:14 ******/
  50337. SET ANSI_NULLS ON
  50338. GO
  50339. SET QUOTED_IDENTIFIER ON
  50340. GO
  50341. -- EXEC [WS_UserGameSettleVideo_Add]
  50342. -- ==============================================
  50343. -- Author: wolf
  50344. -- Create Date: 2015-10-10
  50345. -- Mendor: wolf
  50346. -- Alter Date: 2015-10-10
  50347. -- Description: 游戏返还视频添加
  50348. -- ==============================================
  50349. CREATE PROCEDURE [dbo].[WS_UserGameSettleVideo_Add]
  50350. @UserID INT, --用户ID
  50351. @GameID INT, --游戏ID
  50352. @LoseAmount BIGINT, --输金币
  50353. @MaxTimes TINYINT, --最大次数
  50354. @SettleTimes TINYINT, --返还次数
  50355. @MaxAmount BIGINT, --最大金币
  50356. @SettleAmount BIGINT, --返还金币
  50357. @Crdate DATETIME --时间
  50358. AS
  50359. SET NOCOUNT ON
  50360. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50361. SET XACT_ABORT ON
  50362. BEGIN
  50363. DECLARE @SettleID INT --结算ID
  50364. INSERT INTO [UserSettleVideo]
  50365. (
  50366. UserID, GameID, LoseAmount, MaxTimes, SettleTimes, MaxAmount, SettleAmount, Crdate
  50367. )
  50368. VALUES
  50369. (
  50370. @UserID, @GameID, @LoseAmount, @MaxTimes, @SettleTimes, @MaxAmount, @SettleAmount, @Crdate
  50371. )
  50372. SET @SettleID = SCOPE_IDENTITY()
  50373. --返回信息
  50374. SELECT @SettleID AS SettleID
  50375. END
  50376. GO
  50377. /****** Object: StoredProcedure [dbo].[WS_UserGameSettleVideo_Award] Script Date: 2024/1/12 11:01:14 ******/
  50378. SET ANSI_NULLS ON
  50379. GO
  50380. SET QUOTED_IDENTIFIER ON
  50381. GO
  50382. -- EXEC [WS_UserGameSettleVideo_Award]
  50383. -- ==============================================
  50384. -- Author: wolf
  50385. -- Create Date: 2014-08-29
  50386. -- Mendor: wolf
  50387. -- Alter Date: 2015-08-10
  50388. -- Description: 游戏返还视频奖励
  50389. -- ==============================================
  50390. CREATE PROCEDURE [dbo].[WS_UserGameSettleVideo_Award]
  50391. @UserID INT, --用户ID
  50392. @SettleID INT, --结算ID
  50393. @SettleTimes TINYINT, --结算次数
  50394. @SettleAmount BIGINT --结算金额
  50395. AS
  50396. SET NOCOUNT ON
  50397. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50398. SET XACT_ABORT ON
  50399. BEGIN
  50400. --更新信息
  50401. UPDATE
  50402. [UserSettleVideo]
  50403. SET
  50404. SettleTimes = @SettleTimes, SettleAmount = @SettleAmount
  50405. WHERE
  50406. SettleID = @SettleID AND UserID = @UserID
  50407. RETURN
  50408. END
  50409. GO
  50410. /****** Object: StoredProcedure [dbo].[WS_UserGameSettleVideo_GetList] Script Date: 2024/1/12 11:01:14 ******/
  50411. SET ANSI_NULLS ON
  50412. GO
  50413. SET QUOTED_IDENTIFIER ON
  50414. GO
  50415. -- EXEC [WS_UserGameSettleVideo_GetList]
  50416. -- ==============================================
  50417. -- Author: wolf
  50418. -- Create Date: 2014-08-29
  50419. -- Mendor: wolf
  50420. -- Alter Date: 2015-08-10
  50421. -- Description: 用户游戏返还视频
  50422. -- ==============================================
  50423. CREATE PROCEDURE [dbo].[WS_UserGameSettleVideo_GetList]
  50424. @UserID INT --用户ID
  50425. AS
  50426. SET NOCOUNT ON
  50427. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50428. SET XACT_ABORT ON
  50429. BEGIN
  50430. --返还信息
  50431. SELECT TOP 20
  50432. SettleID, GameID, LoseAmount, MaxTimes, SettleTimes,
  50433. MaxAmount, SettleAmount, dbo.fn_TimeToStamp(Crdate) AS ts,
  50434. CONVERT(CHAR(16), Crdate, 120) AS Crdate
  50435. FROM
  50436. [UserSettleVideo]
  50437. WHERE
  50438. UserID = @UserID
  50439. ORDER BY
  50440. SettleID DESC
  50441. RETURN
  50442. END
  50443. GO
  50444. /****** Object: StoredProcedure [dbo].[WS_UserGiftPack_GetHistory] Script Date: 2024/1/12 11:01:14 ******/
  50445. SET ANSI_NULLS ON
  50446. GO
  50447. SET QUOTED_IDENTIFIER ON
  50448. GO
  50449. -- EXEC [WS_UserGiftPack_GetHistory]
  50450. -- ==============================================
  50451. -- Author: wolf
  50452. -- Create Date: 2014-01-21
  50453. -- Mendor: wolf
  50454. -- Alter Date: 2016-11-07
  50455. -- Description: 用户礼包历史
  50456. -- ==============================================
  50457. CREATE PROCEDURE [dbo].[WS_UserGiftPack_GetHistory]
  50458. @UserID INT --用户ID
  50459. AS
  50460. SET NOCOUNT ON
  50461. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50462. SET XACT_ABORT ON
  50463. BEGIN
  50464. --返回信息
  50465. SELECT
  50466. GiftPackId, LastPhaseTime
  50467. FROM
  50468. [UserGiftPackHistory]
  50469. WHERE
  50470. UserID = @UserID
  50471. UNION ALL
  50472. SELECT
  50473. GiftPackId = 0, LastPhaseTime = RegTime
  50474. FROM
  50475. [AllUser]
  50476. WHERE
  50477. UserID = @UserID
  50478. RETURN
  50479. END
  50480. GO
  50481. /****** Object: StoredProcedure [dbo].[WS_UserGiftPack_UpdateHistory] Script Date: 2024/1/12 11:01:14 ******/
  50482. SET ANSI_NULLS ON
  50483. GO
  50484. SET QUOTED_IDENTIFIER ON
  50485. GO
  50486. -- EXEC [WS_UserGiftPack_UpdateHistory]
  50487. -- ==============================================
  50488. -- Author: wolf
  50489. -- Create Date: 2014-01-21
  50490. -- Mendor: wolf
  50491. -- Alter Date: 2016-11-07
  50492. -- Description: 更新用户礼包历史
  50493. -- ==============================================
  50494. CREATE PROCEDURE [dbo].[WS_UserGiftPack_UpdateHistory]
  50495. @UserID INT, --用户ID
  50496. @GiftPackId INT, --礼包ID
  50497. @LastPhaseTime DATETIME, --时间
  50498. @RetCode TINYINT OUTPUT --操作结果
  50499. AS
  50500. SET NOCOUNT ON
  50501. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50502. SET XACT_ABORT ON
  50503. BEGIN
  50504. SET @RetCode = 0
  50505. --更新用户礼包历史
  50506. UPDATE
  50507. [UserGiftPackHistory]
  50508. SET
  50509. LastPhaseTime = @LastPhaseTime
  50510. WHERE
  50511. UserID = @UserID AND GiftPackId = @GiftPackId
  50512. IF(@@ROWCOUNT > 0)
  50513. BEGIN
  50514. SET @RetCode = 1
  50515. RETURN
  50516. END
  50517. --初始化
  50518. INSERT INTO [UserGiftPackHistory]
  50519. (
  50520. UserId, GiftPackId, LastPhaseTime
  50521. )
  50522. VALUES
  50523. (
  50524. @UserID, @GiftPackId, @LastPhaseTime
  50525. )
  50526. SET @RetCode = 1
  50527. RETURN
  50528. END
  50529. GO
  50530. /****** Object: StoredProcedure [dbo].[WS_UserGrowthPack_GetList] Script Date: 2024/1/12 11:01:14 ******/
  50531. SET ANSI_NULLS ON
  50532. GO
  50533. SET QUOTED_IDENTIFIER ON
  50534. GO
  50535. -- EXEC [WS_UserGrowthPack_GetList]
  50536. -- ==============================================
  50537. -- Author: wolf
  50538. -- Create Date: 2014-12-02
  50539. -- Mendor: wolf
  50540. -- Alter Date: 2014-12-10
  50541. -- Description: 获取用户成长礼包
  50542. -- ==============================================
  50543. CREATE PROCEDURE [dbo].[WS_UserGrowthPack_GetList]
  50544. @UserID INT --用户ID
  50545. AS
  50546. SET NOCOUNT ON
  50547. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50548. SET XACT_ABORT ON
  50549. BEGIN
  50550. SELECT
  50551. GrowthPackID, TermIndex, Bullet, Status
  50552. FROM
  50553. [UserGrowthPack]
  50554. WHERE
  50555. UserID = @UserID
  50556. ORDER BY
  50557. GrowthPackID ASC
  50558. RETURN
  50559. END
  50560. GO
  50561. /****** Object: StoredProcedure [dbo].[WS_UserGrowthPack_Update] Script Date: 2024/1/12 11:01:14 ******/
  50562. SET ANSI_NULLS ON
  50563. GO
  50564. SET QUOTED_IDENTIFIER ON
  50565. GO
  50566. -- EXEC [WS_UserGrowthPack_Update]
  50567. -- ==============================================
  50568. -- Author: wolf
  50569. -- Create Date: 2014-12-02
  50570. -- Mendor: wolf
  50571. -- Alter Date: 2014-12-10
  50572. -- Description: 更新用户成长礼包
  50573. -- ==============================================
  50574. CREATE PROCEDURE [dbo].[WS_UserGrowthPack_Update]
  50575. @UserID INT, --用户ID
  50576. @GrowthPackID INT, --礼包ID
  50577. @TermIndex INT, --解锁条件Index
  50578. @Bullet INT, --目标炮台等级
  50579. @Status TINYINT, --状态(0=没有 1=可领取 2=已领取)
  50580. @RetCode TINYINT OUTPUT --操作结果
  50581. AS
  50582. SET NOCOUNT ON
  50583. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50584. SET XACT_ABORT ON
  50585. BEGIN
  50586. SET @RetCode = 0
  50587. --更新信息
  50588. UPDATE
  50589. [UserGrowthPack]
  50590. SET
  50591. Bullet = @Bullet, Status = @Status
  50592. WHERE
  50593. UserID = @UserID AND GrowthPackID = @GrowthPackID AND TermIndex = @TermIndex
  50594. IF(@@ROWCOUNT > 0)
  50595. BEGIN
  50596. SET @RetCode = 1
  50597. RETURN
  50598. END
  50599. --初始化
  50600. INSERT INTO [UserGrowthPack]
  50601. (
  50602. UserID, GrowthPackID, TermIndex, Bullet, Status
  50603. )
  50604. VALUES
  50605. (
  50606. @UserID, @GrowthPackID, @TermIndex, @Bullet, @Status
  50607. )
  50608. --操作成功
  50609. SET @RetCode = 1
  50610. RETURN
  50611. END
  50612. GO
  50613. /****** Object: StoredProcedure [dbo].[WS_UserItem_AddLog] Script Date: 2024/1/12 11:01:14 ******/
  50614. SET ANSI_NULLS ON
  50615. GO
  50616. SET QUOTED_IDENTIFIER ON
  50617. GO
  50618. -- EXEC [WS_UserItem_AddLog]
  50619. -- ==============================================
  50620. -- Author: wolf
  50621. -- Create Date: 2015-10-10
  50622. -- Mendor: wolf
  50623. -- Alter Date: 2015-10-10
  50624. -- Description: 用户道具日志
  50625. -- ==============================================
  50626. CREATE PROCEDURE [dbo].[WS_UserItem_AddLog]
  50627. @UserID INT, --用户ID
  50628. @ItemID INT, --道具ID
  50629. @CurrCount BIGINT, --当前数量
  50630. @WantCount BIGINT, --道具数量
  50631. @StillCount BIGINT, --剩余数量
  50632. @Remark NVARCHAR(128), --备注
  50633. @IPAddress VARCHAR(16) --IP地址
  50634. AS
  50635. SET NOCOUNT ON
  50636. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50637. SET XACT_ABORT ON
  50638. BEGIN
  50639. DECLARE @DateFlag SMALLDATETIME --日期标识
  50640. --记录日志
  50641. INSERT INTO [UserItemLog]
  50642. (
  50643. UserID, ItemID, CurrCount, WantCount, StillCount,
  50644. Remark, IPAddress, Crdate
  50645. )
  50646. VALUES
  50647. (
  50648. @UserID, @ItemID, @CurrCount, @WantCount, @StillCount,
  50649. @Remark, @IPAddress, GETDATE()
  50650. )
  50651. --620100=红包券
  50652. IF(@ItemID = 620100)
  50653. BEGIN
  50654. SET @DateFlag = CONVERT(CHAR(11), GETDATE(), 120) + LTRIM(STR(DATEPART(HOUR, GETDATE()))) + ':00'
  50655. --更新
  50656. UPDATE
  50657. [UserCouponStat]
  50658. SET
  50659. CouponCount = CouponCount + @WantCount
  50660. WHERE
  50661. DateFlag = @DateFlag AND UserID = @UserID AND Remark = @Remark
  50662. IF(@@ROWCOUNT = 0)
  50663. BEGIN
  50664. INSERT INTO [UserCouponStat]
  50665. (
  50666. DateFlag, UserID, Remark, CouponCount
  50667. )
  50668. VALUES
  50669. (
  50670. @DateFlag, @UserID, @Remark, @WantCount
  50671. )
  50672. END
  50673. END
  50674. RETURN
  50675. END
  50676. GO
  50677. /****** Object: StoredProcedure [dbo].[WS_UserItem_Del] Script Date: 2024/1/12 11:01:14 ******/
  50678. SET ANSI_NULLS ON
  50679. GO
  50680. SET QUOTED_IDENTIFIER ON
  50681. GO
  50682. -- EXEC [WS_UserItem_Del]
  50683. -- ==============================================
  50684. -- Author: wolf
  50685. -- Create Date: 2015-10-10
  50686. -- Mendor: wolf
  50687. -- Alter Date: 2015-10-10
  50688. -- Description: 用户道具删除
  50689. -- ==============================================
  50690. CREATE PROCEDURE [dbo].[WS_UserItem_Del]
  50691. @UserID INT, --用户ID
  50692. @ItemID INT --道具ID
  50693. AS
  50694. SET NOCOUNT ON
  50695. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50696. SET XACT_ABORT ON
  50697. BEGIN
  50698. --删除
  50699. DELETE FROM [UserItem] WHERE UserID = @UserID AND ItemID = @ItemID
  50700. RETURN
  50701. END
  50702. GO
  50703. /****** Object: StoredProcedure [dbo].[WS_UserItem_GetList] Script Date: 2024/1/12 11:01:14 ******/
  50704. SET ANSI_NULLS ON
  50705. GO
  50706. SET QUOTED_IDENTIFIER ON
  50707. GO
  50708. -- EXEC [WS_UserItem_GetList]
  50709. -- ==============================================
  50710. -- Author: wolf
  50711. -- Create Date: 2015-10-10
  50712. -- Mendor: wolf
  50713. -- Alter Date: 2015-10-10
  50714. -- Description: 用户道具列表
  50715. -- ==============================================
  50716. CREATE PROCEDURE [dbo].[WS_UserItem_GetList]
  50717. @UserID INT --用户ID
  50718. AS
  50719. SET NOCOUNT ON
  50720. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50721. SET XACT_ABORT ON
  50722. BEGIN
  50723. --返回信息
  50724. SELECT
  50725. ItemID AS ItemId, ItemCount AS Count, Start,
  50726. Duration, EnegyPoint
  50727. FROM
  50728. [UserItem]
  50729. WHERE
  50730. UserID = @UserID
  50731. ORDER BY
  50732. ItemID ASC
  50733. RETURN
  50734. END
  50735. GO
  50736. /****** Object: StoredProcedure [dbo].[WS_UserItem_Update] Script Date: 2024/1/12 11:01:14 ******/
  50737. SET ANSI_NULLS ON
  50738. GO
  50739. SET QUOTED_IDENTIFIER ON
  50740. GO
  50741. -- EXEC [WS_UserItem_Update]
  50742. -- ==============================================
  50743. -- Author: wolf
  50744. -- Create Date: 2015-10-10
  50745. -- Mendor: wolf
  50746. -- Alter Date: 2015-10-10
  50747. -- Description: 用户道具更新
  50748. -- ==============================================
  50749. CREATE PROCEDURE [dbo].[WS_UserItem_Update]
  50750. @UserID INT, --用户ID
  50751. @ItemID INT, --道具ID
  50752. @ItemCount INT, --道具数
  50753. @Start INT, --开始时间
  50754. @Duration INT, --持续时间(叠加)
  50755. @EnegyPoint INT --道具能量
  50756. AS
  50757. SET NOCOUNT ON
  50758. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50759. SET XACT_ABORT ON
  50760. BEGIN
  50761. --更新
  50762. UPDATE
  50763. [UserItem]
  50764. SET
  50765. ItemCount = @ItemCount, Start = @Start, Duration = @Duration, EnegyPoint = @EnegyPoint
  50766. WHERE
  50767. UserID = @UserID AND ItemID = @ItemID
  50768. IF(@@ROWCOUNT > 0)
  50769. RETURN
  50770. --添加数据
  50771. INSERT INTO [UserItem]
  50772. (
  50773. UserID, ItemID, ItemCount, Start, Duration, EnegyPoint
  50774. )
  50775. VALUES
  50776. (
  50777. @UserID, @ItemID, @ItemCount, @Start, @Duration, @EnegyPoint
  50778. )
  50779. RETURN
  50780. END
  50781. GO
  50782. /****** Object: StoredProcedure [dbo].[WS_UserLabel_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  50783. SET ANSI_NULLS ON
  50784. GO
  50785. SET QUOTED_IDENTIFIER ON
  50786. GO
  50787. -- EXEC [WS_UserLabel_GetInfo]
  50788. -- ==============================================
  50789. -- Author: wolf
  50790. -- Create Date: 2015-10-10
  50791. -- Mendor: wolf
  50792. -- Alter Date: 2015-10-10
  50793. -- Description: 用户标签信息
  50794. -- ==============================================
  50795. CREATE PROCEDURE [dbo].[WS_UserLabel_GetInfo]
  50796. @UserID INT --用户ID
  50797. AS
  50798. SET NOCOUNT ON
  50799. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50800. SET XACT_ABORT ON
  50801. BEGIN
  50802. --数据
  50803. SELECT
  50804. TypeID, LabelID, TotalValue, JsonData
  50805. FROM
  50806. [UserLabel]
  50807. WHERE
  50808. UserID = @UserID
  50809. ORDER BY
  50810. TypeID ASC
  50811. RETURN
  50812. END
  50813. GO
  50814. /****** Object: StoredProcedure [dbo].[WS_UserLabel_Save] Script Date: 2024/1/12 11:01:14 ******/
  50815. SET ANSI_NULLS ON
  50816. GO
  50817. SET QUOTED_IDENTIFIER ON
  50818. GO
  50819. -- EXEC [WS_UserLabel_Save]
  50820. -- ==============================================
  50821. -- Author: wolf
  50822. -- Create Date: 2015-10-10
  50823. -- Mendor: wolf
  50824. -- Alter Date: 2015-10-10
  50825. -- Description: 用户标签保存
  50826. -- ==============================================
  50827. CREATE PROCEDURE [dbo].[WS_UserLabel_Save]
  50828. @UserID INT, --用户ID
  50829. @TypeID INT, --类型ID
  50830. @LabelID VARCHAR(32), --标签ID
  50831. @TotalValue INT, --累计值
  50832. @JsonData VARCHAR(4096),
  50833. @Days INT --时间
  50834. AS
  50835. SET NOCOUNT ON
  50836. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50837. SET XACT_ABORT ON
  50838. BEGIN
  50839. UPDATE
  50840. [UserLabel]
  50841. SET
  50842. LabelID = @LabelID, TotalValue = @TotalValue, JsonData = @JsonData, UpdateTime = GETDATE()
  50843. WHERE
  50844. UserID = @UserID AND TypeID = @TypeID
  50845. IF(@@ROWCOUNT = 0)
  50846. BEGIN
  50847. INSERT INTO [UserLabel]
  50848. (
  50849. UserID, TypeID, LabelID, TotalValue, JsonData, UpdateTime
  50850. )
  50851. VALUES
  50852. (
  50853. @UserID, @TypeID, @LabelID, @TotalValue, @JsonData, GETDATE()
  50854. )
  50855. END
  50856. --标签池
  50857. UPDATE
  50858. [LabelPool]
  50859. SET
  50860. LabelID = @LabelID, RegTime = GETDATE(), Expire = GETDATE() + @Days
  50861. WHERE
  50862. UserID = @UserID AND TypeID = @TypeID
  50863. IF(@@ROWCOUNT = 0)
  50864. BEGIN
  50865. INSERT INTO [LabelPool]
  50866. (
  50867. TypeID, LabelID, UserID, RegTime, Expire
  50868. )
  50869. VALUES
  50870. (
  50871. @TypeID, @LabelID, @UserID, GETDATE(), GETDATE() + @Days
  50872. )
  50873. END
  50874. RETURN
  50875. END
  50876. GO
  50877. /****** Object: StoredProcedure [dbo].[WS_UserMonthlyCard_Buy] Script Date: 2024/1/12 11:01:14 ******/
  50878. SET ANSI_NULLS ON
  50879. GO
  50880. SET QUOTED_IDENTIFIER ON
  50881. GO
  50882. -- EXEC [WS_UserMonthlyCard_Buy]
  50883. -- ==============================================
  50884. -- Author: wolf
  50885. -- Create Date: 2014-06-11
  50886. -- Mendor: wolf
  50887. -- Alter Date: 2014-12-29
  50888. -- Description: 用户月卡购买
  50889. -- ==============================================
  50890. CREATE PROCEDURE [dbo].[WS_UserMonthlyCard_Buy]
  50891. @UserID INT, --用户ID
  50892. @MonthExpire INT, --月卡过期时间戳
  50893. @WeekExpire INT, --周卡过期时间戳
  50894. @RetCode TINYINT OUTPUT --操作结果
  50895. AS
  50896. SET NOCOUNT ON
  50897. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50898. SET XACT_ABORT ON
  50899. BEGIN
  50900. SET @RetCode = 0
  50901. --购买
  50902. UPDATE
  50903. [UserMonthlyCard]
  50904. SET
  50905. MonthExpire = CASE WHEN @MonthExpire > 0 THEN dbo.fn_StampToTime(@MonthExpire) ELSE MonthExpire END,
  50906. WeekExpire = CASE WHEN @WeekExpire > 0 THEN dbo.fn_StampToTime(@WeekExpire) ELSE WeekExpire END
  50907. WHERE
  50908. UserID = @UserID
  50909. IF(@@ROWCOUNT > 0)
  50910. BEGIN
  50911. SET @RetCode = 1
  50912. RETURN
  50913. END
  50914. --初始化
  50915. INSERT INTO [UserMonthlyCard]
  50916. (
  50917. UserID, MonthGift, MonthExpire, WeekGift, WeekExpire
  50918. )
  50919. VALUES
  50920. (
  50921. @UserID, '1970-01-01', dbo.fn_StampToTime(@MonthExpire), '1970-01-01', dbo.fn_StampToTime(@WeekExpire)
  50922. )
  50923. --操作成功
  50924. SET @RetCode = 1
  50925. RETURN
  50926. END
  50927. GO
  50928. /****** Object: StoredProcedure [dbo].[WS_UserMonthlyCard_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  50929. SET ANSI_NULLS ON
  50930. GO
  50931. SET QUOTED_IDENTIFIER ON
  50932. GO
  50933. -- EXEC [WS_UserMonthlyCard_GetInfo]
  50934. -- ==============================================
  50935. -- Author: wolf
  50936. -- Create Date: 2014-06-11
  50937. -- Mendor: wolf
  50938. -- Alter Date: 2014-12-29
  50939. -- Description: 月卡信息
  50940. -- ==============================================
  50941. CREATE PROCEDURE [dbo].[WS_UserMonthlyCard_GetInfo]
  50942. @UserID INT --用户ID
  50943. AS
  50944. SET NOCOUNT ON
  50945. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50946. SET XACT_ABORT ON
  50947. BEGIN
  50948. --返回信息
  50949. SELECT
  50950. CONVERT(VARCHAR(20), MonthGift, 120) AS MonthGift, CONVERT(VARCHAR(20), MonthExpire, 120) AS MonthExpire,
  50951. CONVERT(VARCHAR(20), WeekGift, 120) AS WeekGift, CONVERT(VARCHAR(20), WeekExpire, 120) AS WeekExpire
  50952. FROM
  50953. [UserMonthlyCard]
  50954. WHERE
  50955. UserID = @UserID
  50956. RETURN
  50957. END
  50958. GO
  50959. /****** Object: StoredProcedure [dbo].[WS_UserMonthlyCard_Gift] Script Date: 2024/1/12 11:01:14 ******/
  50960. SET ANSI_NULLS ON
  50961. GO
  50962. SET QUOTED_IDENTIFIER ON
  50963. GO
  50964. -- EXEC [WS_UserMonthlyCard_Gift]
  50965. -- ==============================================
  50966. -- Author: wolf
  50967. -- Create Date: 2014-06-11
  50968. -- Mendor: wolf
  50969. -- Alter Date: 2014-12-29
  50970. -- Description: 用户月卡领取物品
  50971. -- ==============================================
  50972. CREATE PROCEDURE [dbo].[WS_UserMonthlyCard_Gift]
  50973. @UserID INT, --用户ID
  50974. @MonthGift INT, --月卡领取时间戳
  50975. @WeekGift INT, --周卡领取时间戳
  50976. @RetCode TINYINT OUTPUT --操作结果
  50977. AS
  50978. SET NOCOUNT ON
  50979. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  50980. SET XACT_ABORT ON
  50981. BEGIN
  50982. SET @RetCode = 0
  50983. --更新领取时间
  50984. UPDATE
  50985. [UserMonthlyCard]
  50986. SET
  50987. MonthGift = CASE WHEN @MonthGift > 0 THEN dbo.fn_StampToTime(@MonthGift) ELSE MonthGift END,
  50988. WeekGift = CASE WHEN @WeekGift > 0 THEN dbo.fn_StampToTime(@WeekGift) ELSE WeekGift END
  50989. WHERE
  50990. UserID = @UserID
  50991. IF(@@ROWCOUNT <= 0)
  50992. RETURN
  50993. --操作成功
  50994. SET @RetCode = 1
  50995. RETURN
  50996. END
  50997. GO
  50998. /****** Object: StoredProcedure [dbo].[WS_UserSign_GetContinueList] Script Date: 2024/1/12 11:01:14 ******/
  50999. SET ANSI_NULLS ON
  51000. GO
  51001. SET QUOTED_IDENTIFIER ON
  51002. GO
  51003. -- EXEC [WS_UserSign_GetContinueList]
  51004. -- ==============================================
  51005. -- Author: wolf
  51006. -- Create Date: 2015-10-10
  51007. -- Mendor: wolf
  51008. -- Alter Date: 2015-10-10
  51009. -- Description: 用户连续签到信息
  51010. -- ==============================================
  51011. CREATE PROCEDURE [dbo].[WS_UserSign_GetContinueList]
  51012. @UserID INT --用户ID
  51013. AS
  51014. SET NOCOUNT ON
  51015. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51016. SET XACT_ABORT ON
  51017. BEGIN
  51018. --返回信息
  51019. SELECT
  51020. [Day], Status
  51021. FROM
  51022. [UserContinueSign]
  51023. WHERE
  51024. UserID = @UserID
  51025. ORDER BY
  51026. [Day] ASC
  51027. RETURN
  51028. END
  51029. GO
  51030. /****** Object: StoredProcedure [dbo].[WS_UserSign_GetList] Script Date: 2024/1/12 11:01:14 ******/
  51031. SET ANSI_NULLS ON
  51032. GO
  51033. SET QUOTED_IDENTIFIER ON
  51034. GO
  51035. -- EXEC [WS_UserSign_GetList]
  51036. -- ==============================================
  51037. -- Author: wolf
  51038. -- Create Date: 2015-10-10
  51039. -- Mendor: wolf
  51040. -- Alter Date: 2015-10-10
  51041. -- Description: 用户签到信息列表
  51042. -- ==============================================
  51043. CREATE PROCEDURE [dbo].[WS_UserSign_GetList]
  51044. @UserID INT --用户ID
  51045. AS
  51046. SET NOCOUNT ON
  51047. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51048. SET XACT_ABORT ON
  51049. BEGIN
  51050. --返回信息
  51051. SELECT SignID, dbo.fn_TimeToStamp(SignTime) AS SignTime FROM [UserSign] WHERE UserID = @UserID ORDER BY SignID ASC
  51052. RETURN
  51053. END
  51054. GO
  51055. /****** Object: StoredProcedure [dbo].[WS_UserSign_Update] Script Date: 2024/1/12 11:01:14 ******/
  51056. SET ANSI_NULLS ON
  51057. GO
  51058. SET QUOTED_IDENTIFIER ON
  51059. GO
  51060. -- EXEC [WS_UserSign_Update]
  51061. -- ==============================================
  51062. -- Author: wolf
  51063. -- Create Date: 2015-10-10
  51064. -- Mendor: wolf
  51065. -- Alter Date: 2015-10-10
  51066. -- Description: 用户签到信息更新
  51067. -- ==============================================
  51068. CREATE PROCEDURE [dbo].[WS_UserSign_Update]
  51069. @UserID INT, --用户ID
  51070. @SignID INT, --签到id
  51071. @SignTime INT --签到时间
  51072. AS
  51073. SET NOCOUNT ON
  51074. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51075. SET XACT_ABORT ON
  51076. BEGIN
  51077. --更新用户签到信息
  51078. UPDATE [UserSign] SET SignTime = dbo.fn_StampToTime(@SignTime) WHERE UserID = @UserID AND SignID = @SignID
  51079. IF(@@ROWCOUNT > 0)
  51080. RETURN
  51081. --生成数据
  51082. INSERT INTO [UserSign]
  51083. (
  51084. UserID, SignID, SignTime
  51085. )
  51086. VALUES
  51087. (
  51088. @UserID, @SignID, dbo.fn_StampToTime(@SignTime)
  51089. )
  51090. RETURN
  51091. END
  51092. GO
  51093. /****** Object: StoredProcedure [dbo].[WS_UserSign_UpdateContinue] Script Date: 2024/1/12 11:01:14 ******/
  51094. SET ANSI_NULLS ON
  51095. GO
  51096. SET QUOTED_IDENTIFIER ON
  51097. GO
  51098. -- EXEC [WS_UserSign_UpdateContinue]
  51099. -- ==============================================
  51100. -- Author: wolf
  51101. -- Create Date: 2015-10-10
  51102. -- Mendor: wolf
  51103. -- Alter Date: 2015-10-10
  51104. -- Description: 用户连续签到信息更新
  51105. -- ==============================================
  51106. CREATE PROCEDURE [dbo].[WS_UserSign_UpdateContinue]
  51107. @UserID INT, --用户ID
  51108. @Day INT, --连续多少天
  51109. @Status TINYINT --状态 0=空闲,未完成 1=完成,未领取 2=完成,已领取
  51110. AS
  51111. SET NOCOUNT ON
  51112. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51113. SET XACT_ABORT ON
  51114. BEGIN
  51115. --更新用户连续签到信息
  51116. UPDATE [UserContinueSign] SET Status = @Status WHERE UserID = @UserID AND Day = @Day
  51117. --还没有数据
  51118. IF(@@ROWCOUNT > 0)
  51119. RETURN
  51120. --生成数据
  51121. INSERT INTO [UserContinueSign]
  51122. (
  51123. UserID, Day, Status
  51124. )
  51125. VALUES
  51126. (
  51127. @UserID, @Day, @Status
  51128. )
  51129. RETURN
  51130. END
  51131. GO
  51132. /****** Object: StoredProcedure [dbo].[WS_UserSubsidy_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  51133. SET ANSI_NULLS ON
  51134. GO
  51135. SET QUOTED_IDENTIFIER ON
  51136. GO
  51137. -- EXEC [WS_UserSubsidy_GetInfo]
  51138. -- ==============================================
  51139. -- Author: wolf
  51140. -- Create Date: 2014-01-21
  51141. -- Mendor: wolf
  51142. -- Alter Date: 2016-11-07
  51143. -- Description: 用户补助信息
  51144. -- ==============================================
  51145. CREATE PROCEDURE [dbo].[WS_UserSubsidy_GetInfo]
  51146. @UserID INT --用户ID
  51147. AS
  51148. SET NOCOUNT ON
  51149. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51150. SET XACT_ABORT ON
  51151. BEGIN
  51152. --返回信息
  51153. SELECT
  51154. GiftTimes, dbo.fn_TimeToStamp(Crdate) AS Crdate, dbo.fn_TimeToStamp(CoolTime) AS CoolTime
  51155. FROM
  51156. [UserSubsidy]
  51157. WHERE
  51158. UserID = @UserID
  51159. RETURN
  51160. END
  51161. GO
  51162. /****** Object: StoredProcedure [dbo].[WS_UserSubsidy_Update] Script Date: 2024/1/12 11:01:14 ******/
  51163. SET ANSI_NULLS ON
  51164. GO
  51165. SET QUOTED_IDENTIFIER ON
  51166. GO
  51167. -- EXEC [WS_UserSubsidy_Update]
  51168. -- ==============================================
  51169. -- Author: wolf
  51170. -- Create Date: 2014-01-21
  51171. -- Mendor: wolf
  51172. -- Alter Date: 2016-11-07
  51173. -- Description: 修改补助信息
  51174. -- ==============================================
  51175. CREATE PROCEDURE [dbo].[WS_UserSubsidy_Update]
  51176. @UserID INT, --用户ID
  51177. @GiftTimes INT, --领取次数
  51178. @CoolTime INT, --冷却时间
  51179. @Crdate INT, --时间
  51180. @RetCode TINYINT OUTPUT --操作结果
  51181. AS
  51182. SET NOCOUNT ON
  51183. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51184. SET XACT_ABORT ON
  51185. BEGIN
  51186. SET @RetCode = 0
  51187. --修改补助信息
  51188. UPDATE
  51189. [UserSubsidy]
  51190. SET
  51191. GiftTimes = @GiftTimes, Crdate = dbo.fn_StampToTime(@Crdate), CoolTime = dbo.fn_StampToTime(@CoolTime)
  51192. WHERE
  51193. UserID = @UserID
  51194. IF(@@ROWCOUNT > 0)
  51195. BEGIN
  51196. SET @RetCode = 1
  51197. RETURN
  51198. END
  51199. --初始化
  51200. INSERT INTO [UserSubsidy]
  51201. (
  51202. UserID, GiftTimes, CoolTime, Crdate
  51203. )
  51204. VALUES
  51205. (
  51206. @UserID, @GiftTimes, dbo.fn_StampToTime(@CoolTime), dbo.fn_StampToTime(@Crdate)
  51207. )
  51208. --操作结果
  51209. SET @RetCode = 1
  51210. RETURN
  51211. END
  51212. GO
  51213. /****** Object: StoredProcedure [dbo].[WS_UserSwitch_ChangeStatus] Script Date: 2024/1/12 11:01:14 ******/
  51214. SET ANSI_NULLS ON
  51215. GO
  51216. SET QUOTED_IDENTIFIER ON
  51217. GO
  51218. -- EXEC [WS_UserSwitch_ChangeStatus]
  51219. -- @UserID = 100,
  51220. -- @Status = 1,
  51221. -- @SwitchType = 0
  51222. -- ==============================================
  51223. -- Author: wolf
  51224. -- Create Date: 2023-04-06
  51225. -- Mendor: wolf
  51226. -- Alter Date: 2023-04-06
  51227. -- Description: 用户开关修改
  51228. -- ==============================================
  51229. CREATE PROCEDURE [dbo].[WS_UserSwitch_ChangeStatus]
  51230. @UserID INT, --用户ID
  51231. @SwitchType NVARCHAR(32), --开关类型(旁观、跟踪)
  51232. @SwitchStatus TINYINT --开关状态(0=关闭 1=开启)
  51233. AS
  51234. SET NOCOUNT ON
  51235. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51236. SET XACT_ABORT ON
  51237. BEGIN
  51238. --更新
  51239. UPDATE
  51240. [UserSwitch]
  51241. SET
  51242. SwitchStatus = @SwitchStatus
  51243. WHERE
  51244. UserID = @UserID AND SwitchType = @SwitchType
  51245. IF(@@ROWCOUNT = 0)
  51246. BEGIN
  51247. INSERT INTO [UserSwitch]
  51248. (
  51249. UserID, SwitchType, SwitchStatus
  51250. )
  51251. VALUES
  51252. (
  51253. @UserID, @SwitchType, @SwitchStatus
  51254. )
  51255. END
  51256. RETURN
  51257. END
  51258. GO
  51259. /****** Object: StoredProcedure [dbo].[WS_UserSwitch_GetSwitchInfo] Script Date: 2024/1/12 11:01:14 ******/
  51260. SET ANSI_NULLS ON
  51261. GO
  51262. SET QUOTED_IDENTIFIER ON
  51263. GO
  51264. -- EXEC [WS_UserSwitch_GetSwitchInfo]
  51265. -- @UserID = 100
  51266. -- ==============================================
  51267. -- Author: wolf
  51268. -- Create Date: 2023-04-06
  51269. -- Mendor: wolf
  51270. -- Alter Date: 2023-04-06
  51271. -- Description: 获取用户开关信息
  51272. -- ==============================================
  51273. CREATE PROCEDURE [dbo].[WS_UserSwitch_GetSwitchInfo]
  51274. @UserID INT --用户ID
  51275. AS
  51276. SET NOCOUNT ON
  51277. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51278. SET XACT_ABORT ON
  51279. BEGIN
  51280. --返回信息
  51281. SELECT
  51282. SwitchType, SwitchStatus
  51283. FROM
  51284. [UserSwitch]
  51285. WHERE
  51286. UserID = @UserID
  51287. RETURN
  51288. END
  51289. GO
  51290. /****** Object: StoredProcedure [dbo].[WS_UserTask_GetList] Script Date: 2024/1/12 11:01:14 ******/
  51291. SET ANSI_NULLS ON
  51292. GO
  51293. SET QUOTED_IDENTIFIER ON
  51294. GO
  51295. -- EXEC [WS_UserTask_GetList]
  51296. -- ==============================================
  51297. -- Author: wolf
  51298. -- Create Date: 2015-10-10
  51299. -- Mendor: wolf
  51300. -- Alter Date: 2015-10-10
  51301. -- Description: 用户任务列表
  51302. -- ==============================================
  51303. CREATE PROCEDURE [dbo].[WS_UserTask_GetList]
  51304. @UserID INT --用户ID
  51305. AS
  51306. SET NOCOUNT ON
  51307. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51308. SET XACT_ABORT ON
  51309. BEGIN
  51310. --返回信息
  51311. SELECT
  51312. TaskID, Scheduled, Status, CONVERT(VARCHAR(20), Start, 120) AS Start, Duration
  51313. FROM
  51314. [UserTask]
  51315. WHERE
  51316. UserID = @UserID
  51317. ORDER BY
  51318. TaskID ASC
  51319. RETURN
  51320. END
  51321. GO
  51322. /****** Object: StoredProcedure [dbo].[WS_UserTask_Remove] Script Date: 2024/1/12 11:01:14 ******/
  51323. SET ANSI_NULLS ON
  51324. GO
  51325. SET QUOTED_IDENTIFIER ON
  51326. GO
  51327. -- EXEC [WS_UserTask_Remove]
  51328. -- ==============================================
  51329. -- Author: wolf
  51330. -- Create Date: 2014-01-21
  51331. -- Mendor: wolf
  51332. -- Alter Date: 2016-11-07
  51333. -- Description: 删除用户任务
  51334. -- ==============================================
  51335. CREATE PROCEDURE [dbo].[WS_UserTask_Remove]
  51336. @UserID INT, --用户ID
  51337. @TaskID INT --任务ID
  51338. AS
  51339. SET NOCOUNT ON
  51340. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51341. SET XACT_ABORT ON
  51342. BEGIN
  51343. DELETE FROM [UserTask] WHERE UserID = @UserID AND TaskID = @TaskID
  51344. RETURN
  51345. END
  51346. GO
  51347. /****** Object: StoredProcedure [dbo].[WS_UserTask_Update] Script Date: 2024/1/12 11:01:14 ******/
  51348. SET ANSI_NULLS ON
  51349. GO
  51350. SET QUOTED_IDENTIFIER ON
  51351. GO
  51352. -- EXEC [WS_UserTask_Update]
  51353. -- ==============================================
  51354. -- Author: wolf
  51355. -- Create Date: 2015-10-10
  51356. -- Mendor: wolf
  51357. -- Alter Date: 2015-10-10
  51358. -- Description: 用户任务列表
  51359. -- ==============================================
  51360. CREATE PROCEDURE [dbo].[WS_UserTask_Update]
  51361. @UserID INT, --用户ID
  51362. @TaskID INT, --任务ID
  51363. @Scheduled INT, --进度
  51364. @Status TINYINT, --状态(0=active 任务进行中 1=complete 完成 2=awarded 已领取奖励 3=inactive 未开始 4=expired 已过期)
  51365. @Start INT, --开始时间戳
  51366. @Duration INT --持续时间
  51367. AS
  51368. SET NOCOUNT ON
  51369. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51370. SET XACT_ABORT ON
  51371. BEGIN
  51372. --更新信息
  51373. UPDATE
  51374. [UserTask]
  51375. SET
  51376. Scheduled = @Scheduled, Status = @Status, Start = dbo.fn_StampToTime(@Start), Duration = @Duration
  51377. WHERE
  51378. UserID = @UserID AND TaskID = @TaskID
  51379. IF(@@ROWCOUNT > 0)
  51380. RETURN
  51381. --生成数据
  51382. INSERT INTO [UserTask]
  51383. (
  51384. UserID, TaskID, Scheduled, Status, Start, Duration
  51385. )
  51386. VALUES
  51387. (
  51388. @UserID, @TaskID, @Scheduled, @Status, dbo.fn_StampToTime(@Start), @Duration
  51389. )
  51390. RETURN
  51391. END
  51392. GO
  51393. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_AddProfit] Script Date: 2024/1/12 11:01:14 ******/
  51394. SET ANSI_NULLS ON
  51395. GO
  51396. SET QUOTED_IDENTIFIER ON
  51397. GO
  51398. -- EXEC [WS_UserTeacher_AddProfit]
  51399. -- ==============================================
  51400. -- Author: wolf
  51401. -- Create Date: 2014-06-11
  51402. -- Mendor: wolf
  51403. -- Alter Date: 2014-12-29
  51404. -- Description: 师徒--添加收益
  51405. -- ==============================================
  51406. CREATE PROCEDURE [dbo].[WS_UserTeacher_AddProfit]
  51407. @StudentID INT, --徒弟ID
  51408. @Price DECIMAL(18, 2) --充值金额
  51409. AS
  51410. SET NOCOUNT ON
  51411. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51412. SET XACT_ABORT ON
  51413. BEGIN
  51414. DECLARE @TeacherID INT --师父ID
  51415. DECLARE @Profit DECIMAL(18, 2) --收益
  51416. --师父ID
  51417. SELECT @TeacherID = TeacherID FROM [UserTeacher] WHERE StudentID = @StudentID
  51418. --师父ID无效
  51419. IF(@TeacherID IS NULL OR @TeacherID <= 0)
  51420. RETURN
  51421. --计算收益(比例5%)
  51422. SET @Profit = @Price * 0.05
  51423. --收益
  51424. UPDATE
  51425. [Teacher]
  51426. SET
  51427. Profit = Profit + @Profit, TotalProfit = TotalProfit + @Profit
  51428. WHERE
  51429. UserID = @TeacherID
  51430. --累加收益
  51431. UPDATE [UserTeacher] SET Profit = Profit + @Profit WHERE StudentID = @StudentID
  51432. --添加收益记录
  51433. INSERT INTO [TeacherProfit]
  51434. (
  51435. StudentID, TeacherID, Profit, ProfitType, Price, Remark, Crdate
  51436. )
  51437. VALUES
  51438. (
  51439. @StudentID, @TeacherID, @Profit, 2, @Price, '充值收益', GETDATE()
  51440. )
  51441. RETURN
  51442. END
  51443. GO
  51444. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_Bind] Script Date: 2024/1/12 11:01:14 ******/
  51445. SET ANSI_NULLS ON
  51446. GO
  51447. SET QUOTED_IDENTIFIER ON
  51448. GO
  51449. -- EXEC [WS_UserTeacher_Bind]
  51450. -- ==============================================
  51451. -- Author: wolf
  51452. -- Create Date: 2014-06-11
  51453. -- Mendor: wolf
  51454. -- Alter Date: 2014-12-29
  51455. -- Description: 师徒--绑定
  51456. -- ==============================================
  51457. CREATE PROCEDURE [dbo].[WS_UserTeacher_Bind]
  51458. @StudentID INT, --徒弟ID
  51459. @TeacherID INT --师父ID
  51460. AS
  51461. SET NOCOUNT ON
  51462. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51463. SET XACT_ABORT ON
  51464. BEGIN
  51465. DECLARE @RetCode TINYINT
  51466. DECLARE @Students INT --徒弟数
  51467. DECLARE @Profit BIGINT --收益
  51468. DECLARE @DateFlag SMALLDATETIME --日期标识
  51469. DECLARE @IMei VARCHAR(64)
  51470. DECLARE @deviceid VARCHAR(64)
  51471. DECLARE @Amount BIGINT --金额
  51472. DECLARE @SysMsgID INT
  51473. DECLARE @TimeStamp INT --时间戳
  51474. DECLARE @Msg VARCHAR(256) --消息
  51475. SET @RetCode = 0
  51476. SET @Amount = 0
  51477. --不能绑定自己
  51478. IF(@StudentID = 0 OR @StudentID = @TeacherID)
  51479. BEGIN
  51480. SET @RetCode = 11
  51481. SELECT @RetCode AS RetCode, @Amount AS Amount
  51482. RETURN
  51483. END
  51484. --IMei
  51485. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @StudentID
  51486. IF(@@ROWCOUNT = 0)
  51487. BEGIN
  51488. --操作成功
  51489. SET @RetCode = 13
  51490. SELECT @RetCode AS RetCode, @Amount AS Amount
  51491. RETURN
  51492. END
  51493. --不是facebook账号
  51494. IF(LEFT(@IMei, 3) != 'fb.' AND LEFT(@deviceid, 3) != 'fb.')
  51495. BEGIN
  51496. --操作成功
  51497. SET @RetCode = 13
  51498. SELECT @RetCode AS RetCode, @Amount AS Amount
  51499. RETURN
  51500. END
  51501. --判断师父ID有效
  51502. IF NOT EXISTS(SELECT UserID FROM [Teacher] WHERE UserID = @TeacherID)
  51503. BEGIN
  51504. SET @RetCode = 11
  51505. SELECT @RetCode AS RetCode, @Amount AS Amount
  51506. RETURN
  51507. END
  51508. --判断是否已经绑定
  51509. IF EXISTS(SELECT StudentID FROM [UserTeacher] WHERE StudentID = @StudentID)
  51510. BEGIN
  51511. SET @RetCode = 12
  51512. SELECT @RetCode AS RetCode, @Amount AS Amount
  51513. RETURN
  51514. END
  51515. --绑定
  51516. INSERT INTO [UserTeacher]
  51517. (
  51518. StudentID, TeacherID, Profit, Crdate
  51519. )
  51520. VALUES
  51521. (
  51522. @StudentID, @TeacherID, 0, GETDATE()
  51523. )
  51524. --徒弟数+1
  51525. UPDATE [Teacher] SET Students = Students + 1, @Students = Students + 1 WHERE UserID = @TeacherID
  51526. --收益
  51527. SELECT @Profit = Profit FROM [TeacherBindAward] WHERE Students = @Students
  51528. IF(@Profit > 0)
  51529. BEGIN
  51530. --加收益
  51531. UPDATE [Teacher] SET Profit = Profit + @Profit WHERE UserID = @TeacherID
  51532. IF(@@ROWCOUNT > 0)
  51533. BEGIN
  51534. INSERT INTO [TeacherProfit]
  51535. (
  51536. StudentID, TeacherID, Profit, ProfitType, Price, Remark, Crdate
  51537. )
  51538. VALUES
  51539. (
  51540. @StudentID, @TeacherID, @Profit, 1, 0, '绑码成功', GETDATE()
  51541. )
  51542. END
  51543. SET @TimeStamp = dbo.fn_TimeToStamp(GETDATE())
  51544. SET @Msg = 'Selamat, jumlah pengguna yang diundang telah mencapai ' + LTRIM(STR(@Students)) + ', dan Anda telah memperoleh ' + LTRIM(STR(@Profit)) +
  51545. ' dari pendapatan agensi. Hadiah telah didistribusikan secara langsung. Silakan periksa halaman agensi'
  51546. --发送消息
  51547. EXEC [WS_SysMessage_Send] @UserID = @TeacherID, @Title = 'Pemberitahuan Agen', @Content = @Msg, @Status = 0, @SourceName = '绑码',
  51548. @Crdate = @TimeStamp, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
  51549. END
  51550. --操作成功
  51551. SET @RetCode = 1
  51552. SET @Amount = 2000000
  51553. SELECT @RetCode AS RetCode, @Amount AS Amount
  51554. RETURN
  51555. END
  51556. GO
  51557. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  51558. SET ANSI_NULLS ON
  51559. GO
  51560. SET QUOTED_IDENTIFIER ON
  51561. GO
  51562. -- EXEC [WS_UserTeacher_GetInfo]
  51563. -- ==============================================
  51564. -- Author: wolf
  51565. -- Create Date: 2014-06-11
  51566. -- Mendor: wolf
  51567. -- Alter Date: 2014-12-29
  51568. -- Description: 师徒--师父信息
  51569. -- ==============================================
  51570. CREATE PROCEDURE [dbo].[WS_UserTeacher_GetInfo]
  51571. @TeacherID INT --师父ID
  51572. AS
  51573. SET NOCOUNT ON
  51574. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51575. SET XACT_ABORT ON
  51576. BEGIN
  51577. DECLARE @Students INT --徒弟数
  51578. DECLARE @Profit BIGINT --收益
  51579. DECLARE @TotalProfit BIGINT --总收益
  51580. DECLARE @TodayProfit BIGINT --今日收益
  51581. DECLARE @RetCode TINYINT --操作结果
  51582. SET @Students = 0
  51583. SET @Profit = 0
  51584. SET @TotalProfit = 0
  51585. SET @TodayProfit = 0
  51586. SET @RetCode = 0
  51587. --基本信息
  51588. SELECT
  51589. @Profit = Profit, @Students = Students, @TotalProfit = TotalProfit
  51590. FROM
  51591. [Teacher]
  51592. WHERE
  51593. UserID = @TeacherID
  51594. IF(@@ROWCOUNT = 0)
  51595. BEGIN
  51596. SET @RetCode = 11
  51597. SELECT
  51598. @RetCode AS RetCode, @Students AS Students, @Profit AS Profit,
  51599. @TodayProfit AS TodayProfit, @TotalProfit AS TotalProfit
  51600. RETURN
  51601. END
  51602. --今日收益
  51603. SELECT
  51604. @TodayProfit = ISNULL(SUM(Profit), 0)
  51605. FROM
  51606. [TeacherProfit]
  51607. WHERE
  51608. Crdate >= CONVERT(CHAR(10), GETDATE(), 120) AND TeacherID = @TeacherID
  51609. SET @RetCode = 1
  51610. --返回信息
  51611. SELECT
  51612. @RetCode AS RetCode, @Students AS Students, @Profit AS Profit,
  51613. @TodayProfit AS TodayProfit, @TotalProfit AS TotalProfit
  51614. RETURN
  51615. END
  51616. GO
  51617. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_GetLoginAwardLog] Script Date: 2024/1/12 11:01:14 ******/
  51618. SET ANSI_NULLS ON
  51619. GO
  51620. SET QUOTED_IDENTIFIER ON
  51621. GO
  51622. -- EXEC [WS_UserTeacher_GetLoginAwardLog]
  51623. -- ==============================================
  51624. -- Author: wolf
  51625. -- Create Date: 2014-06-11
  51626. -- Mendor: wolf
  51627. -- Alter Date: 2014-12-29
  51628. -- Description: 师徒--登录奖励日志
  51629. -- ==============================================
  51630. CREATE PROCEDURE [dbo].[WS_UserTeacher_GetLoginAwardLog]
  51631. @StudentID int --徒弟ID
  51632. AS
  51633. SET NOCOUNT ON
  51634. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51635. SET XACT_ABORT ON
  51636. BEGIN
  51637. --返回信息
  51638. SELECT
  51639. Rid, dbo.fn_TimeToStamp(DateFlag) AS DayIndex, Days, TeacherID, Status
  51640. FROM
  51641. [TeacherLoginAwardLog]
  51642. WHERE
  51643. StudentID = @StudentID AND DateFlag >= CONVERT(CHAR(10), GETDATE() - 1, 120)
  51644. ORDER BY
  51645. Days ASC
  51646. RETURN
  51647. END
  51648. GO
  51649. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_GetProfitList] Script Date: 2024/1/12 11:01:14 ******/
  51650. SET ANSI_NULLS ON
  51651. GO
  51652. SET QUOTED_IDENTIFIER ON
  51653. GO
  51654. -- EXEC [WS_UserTeacher_GetProfitList]
  51655. -- ==============================================
  51656. -- Author: wolf
  51657. -- Create Date: 2014-06-11
  51658. -- Mendor: wolf
  51659. -- Alter Date: 2014-12-29
  51660. -- Description: 师徒--收益列表
  51661. -- ==============================================
  51662. CREATE PROCEDURE [dbo].[WS_UserTeacher_GetProfitList]
  51663. @TeacherID INT, --师父ID
  51664. @Days INT, --最近天数
  51665. @PageIndex INT, --页索引
  51666. @PageSize INT, --页大小
  51667. @RecordCount INT OUTPUT --记录数
  51668. AS
  51669. SET NOCOUNT ON
  51670. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51671. SET XACT_ABORT ON
  51672. BEGIN
  51673. DECLARE @DateFlag SMALLDATETIME --日期标志
  51674. DECLARE @StartRowIndex INT --起始行索引
  51675. DECLARE @EndRowIndex INT --截止行索引
  51676. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  51677. SET @EndRowIndex = @PageIndex * @PageSize
  51678. SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  51679. SET @RecordCount = 0
  51680. --表变量
  51681. DECLARE @tmptable TABLE(
  51682. StudentID INT NOT NULL, --徒弟ID
  51683. Profit DECIMAL(18, 2) NOT NULL, --收益
  51684. Price DECIMAL(18, 2) NOT NULL --充值金额
  51685. )
  51686. INSERT INTO @tmptable
  51687. (
  51688. StudentID, Profit, Price
  51689. )
  51690. SELECT
  51691. StudentID, SUM(Profit), SUM(Price)
  51692. FROM
  51693. [TeacherProfit]
  51694. WHERE
  51695. Crdate >= @DateFlag - @Days AND TeacherID = @TeacherID AND ProfitType = 2
  51696. GROUP BY
  51697. StudentID
  51698. --记录数
  51699. SET @RecordCount = @@ROWCOUNT
  51700. ;WITH [List] AS
  51701. (
  51702. SELECT
  51703. ROW_NUMBER() OVER(ORDER BY Profit DESC) AS RowNumber,
  51704. StudentID, Profit, Price
  51705. FROM
  51706. @tmptable
  51707. )
  51708. --返回信息
  51709. SELECT
  51710. RowNumber, StudentID, Profit, Price
  51711. FROM
  51712. [List]
  51713. WHERE
  51714. RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  51715. ORDER BY
  51716. RowNumber ASC
  51717. RETURN
  51718. END
  51719. GO
  51720. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_GetStudentList] Script Date: 2024/1/12 11:01:14 ******/
  51721. SET ANSI_NULLS ON
  51722. GO
  51723. SET QUOTED_IDENTIFIER ON
  51724. GO
  51725. -- EXEC [WS_UserTeacher_GetStudentList]
  51726. -- ==============================================
  51727. -- Author: wolf
  51728. -- Create Date: 2014-06-11
  51729. -- Mendor: wolf
  51730. -- Alter Date: 2014-12-29
  51731. -- Description: 师徒--徒弟列表
  51732. -- ==============================================
  51733. CREATE PROCEDURE [dbo].[WS_UserTeacher_GetStudentList]
  51734. @TeacherID INT --师父ID
  51735. AS
  51736. SET NOCOUNT ON
  51737. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51738. SET XACT_ABORT ON
  51739. BEGIN
  51740. SELECT
  51741. StudentID, Profit, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
  51742. FROM
  51743. [UserTeacher]
  51744. WHERE
  51745. TeacherID = @TeacherID
  51746. ORDER BY
  51747. Crdate DESC
  51748. RETURN
  51749. END
  51750. GO
  51751. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_GiftBindAward] Script Date: 2024/1/12 11:01:14 ******/
  51752. SET ANSI_NULLS ON
  51753. GO
  51754. SET QUOTED_IDENTIFIER ON
  51755. GO
  51756. -- EXEC [WS_UserTeacher_GiftBindAward]
  51757. -- ==============================================
  51758. -- Author: wolf
  51759. -- Create Date: 2014-06-11
  51760. -- Mendor: wolf
  51761. -- Alter Date: 2014-12-29
  51762. -- Description: 师徒--领取绑定奖励
  51763. -- ==============================================
  51764. CREATE PROCEDURE [dbo].[WS_UserTeacher_GiftBindAward]
  51765. @TeacherID INT, --师父ID
  51766. @Rid INT --标志
  51767. AS
  51768. SET NOCOUNT ON
  51769. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51770. SET XACT_ABORT ON
  51771. BEGIN
  51772. DECLARE @RetCode TINYINT --操作结果
  51773. DECLARE @Profit BIGINT --收益
  51774. SET @RetCode = 0
  51775. SET @Profit = 0
  51776. SELECT @RetCode AS RetCode, @Profit AS Profit
  51777. RETURN
  51778. --更新
  51779. UPDATE
  51780. [TeacherBindAwardLog]
  51781. SET
  51782. Status = 1, @Profit = Profit
  51783. WHERE
  51784. Rid = @Rid AND TeacherID = @TeacherID AND Status = 0
  51785. IF(@@ROWCOUNT = 0)
  51786. BEGIN
  51787. SET @RetCode = 11
  51788. SELECT @RetCode AS RetCode, @Profit AS Profit
  51789. RETURN
  51790. END
  51791. --操作成功
  51792. SET @RetCode = 1
  51793. SELECT @RetCode AS RetCode, @Profit AS Profit
  51794. RETURN
  51795. END
  51796. GO
  51797. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_GiftLoginAward] Script Date: 2024/1/12 11:01:14 ******/
  51798. SET ANSI_NULLS ON
  51799. GO
  51800. SET QUOTED_IDENTIFIER ON
  51801. GO
  51802. -- EXEC [WS_UserTeacher_GiftLoginAward]
  51803. -- ==============================================
  51804. -- Author: wolf
  51805. -- Create Date: 2014-06-11
  51806. -- Mendor: wolf
  51807. -- Alter Date: 2014-12-29
  51808. -- Description: 师徒--领取登录奖励
  51809. -- ==============================================
  51810. CREATE PROCEDURE [dbo].[WS_UserTeacher_GiftLoginAward]
  51811. @TeacherID INT, --师父ID
  51812. @Rid INT --标识
  51813. AS
  51814. SET NOCOUNT ON
  51815. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51816. SET XACT_ABORT ON
  51817. BEGIN
  51818. DECLARE @RetCode TINYINT --操作结果
  51819. DECLARE @Days INT --天数
  51820. DECLARE @Profit INT --收益
  51821. SET @RetCode = 0
  51822. SET @Profit = 0
  51823. SELECT @RetCode AS RetCode, @Profit AS Profit
  51824. RETURN
  51825. --更新
  51826. UPDATE
  51827. [TeacherLoginAwardLog]
  51828. SET
  51829. Status = 1, @Days = Days
  51830. WHERE
  51831. Rid = @Rid AND TeacherID = @TeacherID
  51832. IF(@@ROWCOUNT = 0)
  51833. BEGIN
  51834. SET @RetCode = 11
  51835. SELECT @RetCode AS RetCode, @Profit AS Profit
  51836. RETURN
  51837. END
  51838. --收益
  51839. SELECT @Profit = Profit FROM [TeacherLoginAward] WHERE Days = @Days
  51840. --操作成功
  51841. SET @RetCode = 1
  51842. SELECT @RetCode AS RetCode, @Profit AS Profit
  51843. RETURN
  51844. END
  51845. GO
  51846. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_PlayVideo] Script Date: 2024/1/12 11:01:14 ******/
  51847. SET ANSI_NULLS ON
  51848. GO
  51849. SET QUOTED_IDENTIFIER ON
  51850. GO
  51851. -- EXEC [WS_UserTeacher_PlayVideo]
  51852. -- ==============================================
  51853. -- Author: wolf
  51854. -- Create Date: 2014-06-11
  51855. -- Mendor: wolf
  51856. -- Alter Date: 2014-12-29
  51857. -- Description: 师徒--播放广告视频
  51858. -- ==============================================
  51859. CREATE PROCEDURE [dbo].[WS_UserTeacher_PlayVideo]
  51860. @TeacherID INT, --师父ID
  51861. @StudentID INT, --徒弟ID
  51862. @Rid INT --标志
  51863. AS
  51864. SET NOCOUNT ON
  51865. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51866. SET XACT_ABORT ON
  51867. BEGIN
  51868. DECLARE @Retcode TINYINT --操作结果
  51869. DECLARE @DBTeacherID INT --师父ID
  51870. DECLARE @DBStudentID INT --徒弟ID
  51871. DECLARE @Profit BIGINT --收益
  51872. SET @RetCode = 0
  51873. SET @Profit = 0
  51874. SELECT @RetCode AS RetCode, @Profit AS Profit
  51875. RETURN
  51876. --获取
  51877. SELECT
  51878. @DBTeacherID = TeacherID, @DBStudentID = StudentID, @Profit = Profit
  51879. FROM
  51880. [TeacherProfit]
  51881. WHERE
  51882. Rid = @Rid
  51883. IF(@@ROWCOUNT = 0)
  51884. BEGIN
  51885. SET @RetCode = 11
  51886. SELECT @RetCode AS RetCode, @Profit AS Profit
  51887. RETURN
  51888. END
  51889. IF(@TeacherID != @DBTeacherID OR @StudentID != @DBStudentID)
  51890. BEGIN
  51891. SET @RetCode = 11
  51892. SELECT @RetCode AS RetCode, @Profit AS Profit
  51893. RETURN
  51894. END
  51895. --更新
  51896. UPDATE
  51897. [TeacherProfit]
  51898. SET
  51899. Profit = Profit + @Profit
  51900. WHERE
  51901. Rid = @Rid
  51902. IF(@@ROWCOUNT = 0)
  51903. BEGIN
  51904. SET @RetCode = 12
  51905. SELECT @RetCode AS RetCode, @Profit AS Profit
  51906. RETURN
  51907. END
  51908. --操作成功
  51909. SET @RetCode = 1
  51910. SELECT @RetCode AS RetCode, @Profit AS Profit
  51911. RETURN
  51912. END
  51913. GO
  51914. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_ReduceProfit] Script Date: 2024/1/12 11:01:14 ******/
  51915. SET ANSI_NULLS ON
  51916. GO
  51917. SET QUOTED_IDENTIFIER ON
  51918. GO
  51919. -- EXEC [WS_UserTeacher_ReduceProfit]
  51920. -- ==============================================
  51921. -- Author: wolf
  51922. -- Create Date: 2014-06-11
  51923. -- Mendor: wolf
  51924. -- Alter Date: 2014-12-29
  51925. -- Description: 扣减代理收益
  51926. -- ==============================================
  51927. CREATE PROCEDURE [dbo].[WS_UserTeacher_ReduceProfit]
  51928. @UserID INT, --用户ID
  51929. @Profit BIGINT, --收益
  51930. @ProfitType TINYINT --收益类型(1=绑码 2=充值 3=兑换 4=提现)
  51931. AS
  51932. SET NOCOUNT ON
  51933. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51934. SET XACT_ABORT ON
  51935. BEGIN
  51936. DECLARE @RetCode TINYINT --操作结果
  51937. DECLARE @Remark VARCHAR(128)
  51938. SET @RetCode = 0
  51939. IF(@Profit IS NULL OR @Profit <= 0)
  51940. BEGIN
  51941. SET @RetCode = 11
  51942. SELECT @RetCode AS RetCode
  51943. RETURN
  51944. END
  51945. --扣减收益
  51946. UPDATE [Teacher] SET Profit = Profit - @Profit WHERE UserID = @UserID AND Profit >= @Profit
  51947. IF(@@ROWCOUNT = 0)
  51948. BEGIN
  51949. SET @RetCode = 11
  51950. SELECT @RetCode AS RetCode
  51951. RETURN
  51952. END
  51953. SET @Remark = CASE
  51954. WHEN @ProfitType = 3 THEN '兑换'
  51955. WHEN @ProfitType = 4 THEN '提现'
  51956. ELSE ''
  51957. END
  51958. --记录
  51959. INSERT INTO [TeacherProfit]
  51960. (
  51961. StudentID, TeacherID, Profit, ProfitType, Price, Remark, Crdate
  51962. )
  51963. VALUES
  51964. (
  51965. @UserID, @UserID, -@Profit, @ProfitType, 0, @Remark, GETDATE()
  51966. )
  51967. SET @RetCode = 1
  51968. --返回信息
  51969. SELECT @RetCode AS RetCode
  51970. RETURN
  51971. END
  51972. GO
  51973. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_Register] Script Date: 2024/1/12 11:01:14 ******/
  51974. SET ANSI_NULLS ON
  51975. GO
  51976. SET QUOTED_IDENTIFIER ON
  51977. GO
  51978. -- EXEC [WS_UserTeacher_Register]
  51979. -- ==============================================
  51980. -- Author: wolf
  51981. -- Create Date: 2014-06-11
  51982. -- Mendor: wolf
  51983. -- Alter Date: 2014-12-29
  51984. -- Description: 师徒--注册
  51985. -- ==============================================
  51986. CREATE PROCEDURE [dbo].[WS_UserTeacher_Register]
  51987. @UserID INT
  51988. AS
  51989. SET NOCOUNT ON
  51990. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  51991. SET XACT_ABORT ON
  51992. BEGIN
  51993. DECLARE @IMei VARCHAR(64)
  51994. DECLARE @deviceid VARCHAR(64)
  51995. DECLARE @RetCode TINYINT
  51996. SET @RetCode = 0
  51997. --判断是否已注册
  51998. IF EXISTS(SELECT UserID FROM [Teacher] WHERE UserID = @UserID)
  51999. BEGIN
  52000. --操作成功
  52001. SET @RetCode = 11
  52002. SELECT @RetCode AS RetCode
  52003. RETURN
  52004. END
  52005. --IMei
  52006. SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
  52007. IF(@@ROWCOUNT = 0)
  52008. BEGIN
  52009. --操作成功
  52010. SET @RetCode = 12
  52011. SELECT @RetCode AS RetCode
  52012. RETURN
  52013. END
  52014. --不是facebook账号
  52015. IF(LEFT(@IMei, 3) != 'fb.' AND LEFT(@deviceid, 3) != 'fb.')
  52016. BEGIN
  52017. --操作成功
  52018. SET @RetCode = 12
  52019. SELECT @RetCode AS RetCode
  52020. RETURN
  52021. END
  52022. --初始化
  52023. INSERT INTO [Teacher]
  52024. (
  52025. UserID, Profit, Students, TotalProfit, Crdate
  52026. )
  52027. VALUES
  52028. (
  52029. @UserID, 0, 0, 0, GETDATE()
  52030. )
  52031. --操作成功
  52032. SET @RetCode = 1
  52033. SELECT @RetCode AS RetCode
  52034. RETURN
  52035. END
  52036. GO
  52037. /****** Object: StoredProcedure [dbo].[WS_UserTeacher_SysBindAward] Script Date: 2024/1/12 11:01:14 ******/
  52038. SET ANSI_NULLS ON
  52039. GO
  52040. SET QUOTED_IDENTIFIER ON
  52041. GO
  52042. -- EXEC [WS_UserTeacher_SysBindAward]
  52043. -- ==============================================
  52044. -- Author: wolf
  52045. -- Create Date: 2014-01-21
  52046. -- Mendor: wolf
  52047. -- Alter Date: 2016-11-07
  52048. -- Description: 师徒绑定奖励
  52049. -- ==============================================
  52050. CREATE PROCEDURE [dbo].[WS_UserTeacher_SysBindAward]
  52051. AS
  52052. SET NOCOUNT ON
  52053. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52054. SET XACT_ABORT ON
  52055. BEGIN
  52056. --返回信息
  52057. SELECT
  52058. AwardID, Students, Profit
  52059. FROM
  52060. [TeacherBindAward]
  52061. ORDER BY
  52062. Students
  52063. RETURN
  52064. END
  52065. GO
  52066. /****** Object: StoredProcedure [dbo].[WS_UserTrack_Record] Script Date: 2024/1/12 11:01:14 ******/
  52067. SET ANSI_NULLS ON
  52068. GO
  52069. SET QUOTED_IDENTIFIER ON
  52070. GO
  52071. -- EXEC [WS_UserTrack_Record]
  52072. -- ==============================================
  52073. -- Author: wolf
  52074. -- Create Date: 2016-07-21
  52075. -- Mendor: wolf
  52076. -- Alter Date: 2016-11-18
  52077. -- Description: 游戏轨迹记录
  52078. -- ==============================================
  52079. CREATE PROCEDURE [dbo].[WS_UserTrack_Record]
  52080. @UserID INT, --用户ID
  52081. @Level_1 NVARCHAR(32), --1级类目
  52082. @Level_2 NVARCHAR(32), --2级类目
  52083. @Level_3 NVARCHAR(32), --3级类目
  52084. @VideoName NVARCHAR(32), --视频广告名称
  52085. @Amount BIGINT --金币数
  52086. AS
  52087. SET NOCOUNT ON
  52088. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52089. SET XACT_ABORT ON
  52090. BEGIN
  52091. DECLARE @CurrTime DATETIME --系统当前时间
  52092. DECLARE @DateFlag SMALLDATETIME --日期标识
  52093. DECLARE @Status TINYINT --状态(0=请求 1=播放 2=未播放)
  52094. DECLARE @PartnerID INT --渠道ID
  52095. SET @CurrTime = GETDATE()
  52096. SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
  52097. INSERT INTO [UserTrack]
  52098. (
  52099. UserID, Level_1, Level_2, Level_3, Crdate
  52100. )
  52101. VALUES
  52102. (
  52103. @UserID, @Level_1, @Level_2, @Level_3, @CurrTime
  52104. )
  52105. --游戏轨迹统计
  52106. UPDATE
  52107. [UserTrackStat]
  52108. SET
  52109. Times = Times + 1
  52110. WHERE
  52111. UserID = @UserID AND Level_1 = @Level_1 AND Level_2 = @Level_2 AND Level_3 = @Level_3 AND DateFlag = @DateFlag
  52112. IF(@@ROWCOUNT = 0)
  52113. BEGIN
  52114. INSERT INTO [UserTrackStat]
  52115. (
  52116. DateFlag, UserID, Level_1, Level_2, Level_3, Times
  52117. )
  52118. VALUES
  52119. (
  52120. @DateFlag, @UserID, @Level_1, @Level_2, @Level_3, 1
  52121. )
  52122. END
  52123. --视频广告统计
  52124. IF(@Level_2 IN (N'请求广告', N'请求游戏广告'))
  52125. BEGIN
  52126. SET @VideoName = ISNULL(@VideoName, '')
  52127. SET @Amount = ISNULL(@Amount, 0)
  52128. SET @Status = 0
  52129. --广告播放
  52130. IF(LEFT(@Level_3, 2) = N'获得')
  52131. BEGIN
  52132. --更新
  52133. UPDATE
  52134. [UserDailyStat]
  52135. SET
  52136. VideoPlayTimes = VideoPlayTimes + 1, VideoSendAmount = VideoSendAmount + @Amount
  52137. WHERE
  52138. DateFlag = @DateFlag AND UserID = @UserID
  52139. IF(@@ROWCOUNT = 0)
  52140. BEGIN
  52141. INSERT INTO [UserDailyStat]
  52142. (
  52143. DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
  52144. PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
  52145. )
  52146. VALUES
  52147. (
  52148. @DateFlag, @UserID, 0, 0, 0, '2021-01-01', '2021-01-01',
  52149. 0, 0, 0, 1, @Amount
  52150. )
  52151. END
  52152. --播放
  52153. SET @Status = 1
  52154. END
  52155. --未播放
  52156. ELSE IF(LEFT(@Level_3, 3) = N'未获得')
  52157. BEGIN
  52158. --未播放
  52159. SET @Status = 2
  52160. END
  52161. --广告记录
  52162. INSERT INTO [UserVideoLog]
  52163. (
  52164. VideoName, UserID, ModuleName, Status, Amount, Crdate
  52165. )
  52166. VALUES
  52167. (
  52168. @VideoName, @UserID, @Level_1, @Status, @Amount, @CurrTime
  52169. )
  52170. --广告统计(状态(0=请求 1=播放 2=未播放))
  52171. UPDATE
  52172. [UserVideoStat]
  52173. SET
  52174. ReqTimes = CASE WHEN @Status = 0 THEN ReqTimes + 1 ELSE ReqTimes END,
  52175. PlayTimes = CASE WHEN @Status = 1 THEN PlayTimes + 1 ELSE PlayTimes END,
  52176. UnPlayTimes = CASE WHEN @Status = 2 THEN UnPlayTimes + 1 ELSE UnPlayTimes END,
  52177. Amount = Amount + @Amount
  52178. WHERE
  52179. UserID = @UserID AND VideoName = @VideoName AND DateFlag = @DateFlag AND ModuleName = @Level_1
  52180. IF(@@ROWCOUNT = 0)
  52181. BEGIN
  52182. --渠道ID
  52183. SELECT @PartnerID = PartnerID FROM [AllUser] WHERE UserID = @UserID
  52184. --视频统计
  52185. INSERT INTO [UserVideoStat]
  52186. (
  52187. DateFlag, UserID, PartnerID, VideoName, ModuleName,
  52188. ReqTimes, PlayTimes, UnPlayTimes, Amount
  52189. )
  52190. VALUES
  52191. (
  52192. @DateFlag, @UserID, @PartnerID, @VideoName, @Level_1,
  52193. CASE WHEN @Status = 0 THEN 1 ELSE 0 END,
  52194. CASE WHEN @Status = 1 THEN 1 ELSE 0 END,
  52195. CASE WHEN @Status = 2 THEN 1 ELSE 0 END,
  52196. @Amount
  52197. )
  52198. END
  52199. END
  52200. RETURN
  52201. END
  52202. GO
  52203. /****** Object: StoredProcedure [dbo].[WS_UserVideo_GetList] Script Date: 2024/1/12 11:01:14 ******/
  52204. SET ANSI_NULLS ON
  52205. GO
  52206. SET QUOTED_IDENTIFIER ON
  52207. GO
  52208. -- EXEC [WS_UserVideo_GetList]
  52209. -- ==============================================
  52210. -- Author: wolf
  52211. -- Create Date: 2015-10-10
  52212. -- Mendor: wolf
  52213. -- Alter Date: 2015-10-10
  52214. -- Description: 用户视频列表
  52215. -- ==============================================
  52216. CREATE PROCEDURE [dbo].[WS_UserVideo_GetList]
  52217. @UserID INT --用户ID
  52218. AS
  52219. SET NOCOUNT ON
  52220. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52221. SET XACT_ABORT ON
  52222. BEGIN
  52223. --返回信息
  52224. SELECT
  52225. VideoID, PlayTimes, dbo.fn_TimeToStamp(UpdateTime) AS UpdateTime
  52226. FROM
  52227. [UserVideo]
  52228. WHERE
  52229. UserID = @UserID
  52230. ORDER BY
  52231. VideoID ASC
  52232. RETURN
  52233. END
  52234. GO
  52235. /****** Object: StoredProcedure [dbo].[WS_UserVideo_Update] Script Date: 2024/1/12 11:01:14 ******/
  52236. SET ANSI_NULLS ON
  52237. GO
  52238. SET QUOTED_IDENTIFIER ON
  52239. GO
  52240. -- EXEC [WS_UserVideo_Update]
  52241. -- ==============================================
  52242. -- Author: wolf
  52243. -- Create Date: 2015-10-10
  52244. -- Mendor: wolf
  52245. -- Alter Date: 2015-10-10
  52246. -- Description: 用户视频更新
  52247. -- ==============================================
  52248. CREATE PROCEDURE [dbo].[WS_UserVideo_Update]
  52249. @UserID INT, --用户ID
  52250. @VideoID INT, --视频ID
  52251. @PlayTimes INT, --播放次数
  52252. @UpdateTime INT, --更新时间
  52253. @IsStat TINYINT --是否统计
  52254. AS
  52255. SET NOCOUNT ON
  52256. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52257. SET XACT_ABORT ON
  52258. BEGIN
  52259. DECLARE @DateFlag SMALLDATETIME --日期标识
  52260. --修改
  52261. UPDATE
  52262. [UserVideo]
  52263. SET
  52264. PlayTimes = @PlayTimes, UpdateTime = dbo.fn_StampToTime(@UpdateTime)
  52265. WHERE
  52266. UserID = @UserID AND VideoID = @VideoID
  52267. IF(@@ROWCOUNT = 0)
  52268. BEGIN
  52269. --初始化
  52270. INSERT INTO [UserVideo]
  52271. (
  52272. UserID, VideoID, PlayTimes, UpdateTime
  52273. )
  52274. VALUES
  52275. (
  52276. @UserID, @VideoID, @PlayTimes, dbo.fn_StampToTime(@UpdateTime)
  52277. )
  52278. END
  52279. RETURN
  52280. END
  52281. GO
  52282. /****** Object: StoredProcedure [dbo].[WS_UserVip_GetDealHistory] Script Date: 2024/1/12 11:01:14 ******/
  52283. SET ANSI_NULLS ON
  52284. GO
  52285. SET QUOTED_IDENTIFIER ON
  52286. GO
  52287. -- EXEC [WS_UserVip_GetDealHistory]
  52288. -- ==============================================
  52289. -- Author: wolf
  52290. -- Create Date: 2014-01-21
  52291. -- Mendor: wolf
  52292. -- Alter Date: 2016-11-07
  52293. -- Description: 获取Vip购买记录
  52294. -- ==============================================
  52295. CREATE PROCEDURE [dbo].[WS_UserVip_GetDealHistory]
  52296. @UserID INT --用户ID
  52297. AS
  52298. SET NOCOUNT ON
  52299. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52300. SET XACT_ABORT ON
  52301. BEGIN
  52302. --Vip购买记录
  52303. SELECT VipDealId, LastExchangeTime FROM [VipDealHistory] WHERE UserID = @UserID
  52304. RETURN
  52305. END
  52306. GO
  52307. /****** Object: StoredProcedure [dbo].[WS_UserVip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  52308. SET ANSI_NULLS ON
  52309. GO
  52310. SET QUOTED_IDENTIFIER ON
  52311. GO
  52312. -- EXEC [WS_UserVip_GetInfo]
  52313. -- ==============================================
  52314. -- Author: wolf
  52315. -- Create Date: 2014-01-21
  52316. -- Mendor: wolf
  52317. -- Alter Date: 2016-11-07
  52318. -- Description: 获取Vip信息
  52319. -- ==============================================
  52320. CREATE PROCEDURE [dbo].[WS_UserVip_GetInfo]
  52321. @UserID INT --用户ID
  52322. AS
  52323. SET NOCOUNT ON
  52324. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52325. SET XACT_ABORT ON
  52326. BEGIN
  52327. --Vip信息
  52328. SELECT VipLevel, VipPoint FROM [UserVip] WHERE UserID = @UserID
  52329. RETURN
  52330. END
  52331. GO
  52332. /****** Object: StoredProcedure [dbo].[WS_UserVip_Update] Script Date: 2024/1/12 11:01:14 ******/
  52333. SET ANSI_NULLS ON
  52334. GO
  52335. SET QUOTED_IDENTIFIER ON
  52336. GO
  52337. -- EXEC [WS_UserVip_Update]
  52338. -- ==============================================
  52339. -- Author: wolf
  52340. -- Create Date: 2014-01-21
  52341. -- Mendor: wolf
  52342. -- Alter Date: 2016-11-07
  52343. -- Description: 用户Vip信息更新
  52344. -- ==============================================
  52345. CREATE PROCEDURE [dbo].[WS_UserVip_Update]
  52346. @UserID INT, --用户ID
  52347. @VipLevel SMALLINT, --Vip等级
  52348. @VipPoint BIGINT --分数
  52349. AS
  52350. SET NOCOUNT ON
  52351. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52352. SET XACT_ABORT ON
  52353. BEGIN
  52354. --更新Vip信息
  52355. UPDATE [UserVip] SET VipLevel = @VipLevel, VipPoint = @VipPoint WHERE UserID = @UserID
  52356. IF(@@ROWCOUNT > 0)
  52357. RETURN
  52358. --初始化数据
  52359. INSERT INTO [UserVip]
  52360. (
  52361. UserID, VipLevel, VipPoint
  52362. )
  52363. VALUES
  52364. (
  52365. @UserID, @VipLevel, @VipPoint
  52366. )
  52367. RETURN
  52368. END
  52369. GO
  52370. /****** Object: StoredProcedure [dbo].[WS_UserVip_UpdateDealHistory] Script Date: 2024/1/12 11:01:14 ******/
  52371. SET ANSI_NULLS ON
  52372. GO
  52373. SET QUOTED_IDENTIFIER ON
  52374. GO
  52375. -- EXEC [WS_UserVip_UpdateDealHistory]
  52376. -- ==============================================
  52377. -- Author: wolf
  52378. -- Create Date: 2014-01-21
  52379. -- Mendor: wolf
  52380. -- Alter Date: 2016-11-07
  52381. -- Description: 更新用户vip特惠购买记录
  52382. -- ==============================================
  52383. CREATE PROCEDURE [dbo].[WS_UserVip_UpdateDealHistory]
  52384. @UserID INT, --用户ID
  52385. @VipDealId INT, --特惠礼包ID
  52386. @LastExchangeTime DATETIME --最近特惠时间
  52387. AS
  52388. SET NOCOUNT ON
  52389. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52390. SET XACT_ABORT ON
  52391. BEGIN
  52392. --更新信息
  52393. UPDATE
  52394. [VipDealHistory]
  52395. SET
  52396. LastExchangeTime = @LastExchangeTime
  52397. WHERE
  52398. UserID = @UserID AND VipDealId = @VipDealId
  52399. IF(@@ROWCOUNT > 0)
  52400. RETURN
  52401. --添加特惠礼包新记录
  52402. INSERT INTO [VipDealHistory]
  52403. (
  52404. UserID, VipDealId, LastExchangeTime
  52405. )
  52406. VALUES
  52407. (
  52408. @UserID, @VipDealId, @LastExchangeTime
  52409. )
  52410. RETURN
  52411. END
  52412. GO
  52413. /****** Object: StoredProcedure [dbo].[WS_UserVitality_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
  52414. SET ANSI_NULLS ON
  52415. GO
  52416. SET QUOTED_IDENTIFIER ON
  52417. GO
  52418. -- EXEC [WS_UserVitality_GetInfo]
  52419. -- ==============================================
  52420. -- Author: wolf
  52421. -- Create Date: 2014-01-21
  52422. -- Mendor: wolf
  52423. -- Alter Date: 2016-11-07
  52424. -- Description: 获取活跃度
  52425. -- ==============================================
  52426. CREATE PROCEDURE [dbo].[WS_UserVitality_GetInfo]
  52427. @UserID INT --用户ID
  52428. AS
  52429. SET NOCOUNT ON
  52430. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52431. SET XACT_ABORT ON
  52432. BEGIN
  52433. --返回信息
  52434. SELECT
  52435. DayIndex, DayPoint, WeekIndex, WeekPoint
  52436. FROM
  52437. [UserVitality]
  52438. WHERE
  52439. UserID = @UserID
  52440. RETURN
  52441. END
  52442. GO
  52443. /****** Object: StoredProcedure [dbo].[WS_UserVitality_Update] Script Date: 2024/1/12 11:01:14 ******/
  52444. SET ANSI_NULLS ON
  52445. GO
  52446. SET QUOTED_IDENTIFIER ON
  52447. GO
  52448. -- EXEC [WS_UserVitality_Update]
  52449. -- ==============================================
  52450. -- Author: wolf
  52451. -- Create Date: 2014-01-21
  52452. -- Mendor: wolf
  52453. -- Alter Date: 2016-11-07
  52454. -- Description: 活跃度更新
  52455. -- ==============================================
  52456. CREATE PROCEDURE [dbo].[WS_UserVitality_Update]
  52457. @UserID INT, --用户ID
  52458. @DayIndex INT, --天索引
  52459. @DayPoint INT, --天度数
  52460. @WeekIndex INT, --周索引
  52461. @WeekPoint INT, --周度数
  52462. @RetCode TINYINT OUTPUT --操作结果
  52463. AS
  52464. SET NOCOUNT ON
  52465. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52466. SET XACT_ABORT ON
  52467. BEGIN
  52468. SET @RetCode = 0
  52469. --更新活跃度
  52470. UPDATE
  52471. [UserVitality]
  52472. SET
  52473. DayIndex = @DayIndex, DayPoint = @DayPoint, WeekIndex = @WeekIndex, WeekPoint = @WeekPoint
  52474. WHERE
  52475. UserID = @UserID
  52476. IF(@@ROWCOUNT > 0)
  52477. BEGIN
  52478. SET @RetCode = 1
  52479. RETURN
  52480. END
  52481. --初始化活跃度
  52482. INSERT INTO [UserVitality]
  52483. (
  52484. UserID, DayIndex, DayPoint, WeekIndex, WeekPoint
  52485. )
  52486. VALUES
  52487. (
  52488. @UserID, @DayIndex, @DayPoint, @WeekIndex, @WeekPoint
  52489. )
  52490. SET @RetCode = 1
  52491. RETURN
  52492. END
  52493. GO
  52494. /****** Object: StoredProcedure [dbo].[WS_UTM_Insert] Script Date: 2024/1/12 11:01:14 ******/
  52495. SET ANSI_NULLS ON
  52496. GO
  52497. SET QUOTED_IDENTIFIER ON
  52498. GO
  52499. -- EXEC [WS_UTM_Insert]
  52500. -- ==============================================
  52501. -- Author: wolf
  52502. -- Create Date: 2014-12-29
  52503. -- Mendor: wolf
  52504. -- Alter Date: 2015-06-01
  52505. -- Description: 流量渠道追踪全解析
  52506. -- ==============================================
  52507. CREATE PROCEDURE [dbo].[WS_UTM_Insert]
  52508. @UserID INT, --用户ID
  52509. @Source NVARCHAR(128), --广告系列来源。用来标识搜索引擎、简报名称或其他来源。示例: utm_source=google
  52510. @Medium NVARCHAR(128), --广告系列媒介。用来标识媒介,比如电子邮件或每次点击费用。示例:utm_medium=cpc
  52511. @Term NVARCHAR(128), --广告系列字词。用于付费搜索,用来注明此广告的关键字。示例:utm_term=running+shoes
  52512. @Content NVARCHAR(256), --广告系列内容。用于A/B测试和按内容进行定位的广告。区分指向同一网址的广告或链接。示例:utm_content=logolink或utm_content=textlink
  52513. @Campaign NVARCHAR(128) --广告系列名称。用于关键字分析。用来标识特定的产品促销活动或战略性广告系列。示例:utm_campaign=spring_sale
  52514. AS
  52515. SET NOCOUNT ON
  52516. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52517. SET XACT_ABORT ON
  52518. BEGIN
  52519. UPDATE
  52520. [UTM]
  52521. SET
  52522. Source = @Source, Medium = @Medium, Term = @Term,
  52523. Content = @Content, Campaign = @Campaign
  52524. WHERE
  52525. UserID = @UserID
  52526. IF(@@ROWCOUNT = 0)
  52527. BEGIN
  52528. INSERT INTO [UTM]
  52529. (
  52530. UserID, Source, Medium, Term, Content, Campaign
  52531. )
  52532. VALUES
  52533. (
  52534. @UserID, @Source, @Medium, @Term, @Content, @Campaign
  52535. )
  52536. END
  52537. IF(LEN(@Source) <= 0)
  52538. RETURN
  52539. --新增源渠道
  52540. IF NOT EXISTS(SELECT Source FROM [UTMSource] WHERE Source = @Source)
  52541. BEGIN
  52542. INSERT INTO [UTMSource](Source) VALUES(@Source)
  52543. END
  52544. RETURN
  52545. END
  52546. GO
  52547. /****** Object: StoredProcedure [dbo].[WS_Video_GetList] Script Date: 2024/1/12 11:01:14 ******/
  52548. SET ANSI_NULLS ON
  52549. GO
  52550. SET QUOTED_IDENTIFIER ON
  52551. GO
  52552. -- EXEC [WS_Video_GetList]
  52553. -- ==============================================
  52554. -- Author: wolf
  52555. -- Create Date: 2015-10-10
  52556. -- Mendor: wolf
  52557. -- Alter Date: 2015-10-10
  52558. -- Description: 视频列表
  52559. -- ==============================================
  52560. CREATE PROCEDURE [dbo].[WS_Video_GetList]
  52561. AS
  52562. SET NOCOUNT ON
  52563. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52564. SET XACT_ABORT ON
  52565. BEGIN
  52566. --返回信息
  52567. SELECT
  52568. VideoID, PlayTimes, Awards
  52569. FROM
  52570. [Video]
  52571. ORDER BY
  52572. VideoID ASC
  52573. RETURN
  52574. END
  52575. GO
  52576. /****** Object: StoredProcedure [dbo].[WS_Vip_GetList] Script Date: 2024/1/12 11:01:14 ******/
  52577. SET ANSI_NULLS ON
  52578. GO
  52579. SET QUOTED_IDENTIFIER ON
  52580. GO
  52581. -- EXEC [WS_Vip_GetList]
  52582. -- ==============================================
  52583. -- Author: wolf
  52584. -- Create Date: 2014-01-21
  52585. -- Mendor: wolf
  52586. -- Alter Date: 2016-11-07
  52587. -- Description: Vip系统数值
  52588. -- ==============================================
  52589. CREATE PROCEDURE [dbo].[WS_Vip_GetList]
  52590. AS
  52591. SET NOCOUNT ON
  52592. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52593. SET XACT_ABORT ON
  52594. BEGIN
  52595. SELECT
  52596. VipLevel, VipPoint, GiftPack, Privilege, Description
  52597. FROM
  52598. [VipInfo]
  52599. ORDER BY
  52600. VipLevel ASC
  52601. RETURN
  52602. END
  52603. GO
  52604. /****** Object: StoredProcedure [dbo].[WS_VipDeal_GetList] Script Date: 2024/1/12 11:01:14 ******/
  52605. SET ANSI_NULLS ON
  52606. GO
  52607. SET QUOTED_IDENTIFIER ON
  52608. GO
  52609. -- EXEC [WS_VipDeal_GetList]
  52610. -- ==============================================
  52611. -- Author: wolf
  52612. -- Create Date: 2014-01-21
  52613. -- Mendor: wolf
  52614. -- Alter Date: 2016-11-07
  52615. -- Description: Vip特惠礼包
  52616. -- ==============================================
  52617. CREATE PROCEDURE [dbo].[WS_VipDeal_GetList]
  52618. AS
  52619. SET NOCOUNT ON
  52620. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52621. SET XACT_ABORT ON
  52622. BEGIN
  52623. --特惠礼包
  52624. SELECT VipDealId, VipDealName, VipLevel, Items, Price, ProductID FROM [VipDeal] ORDER BY VipDealId ASC
  52625. RETURN
  52626. END
  52627. GO
  52628. /****** Object: StoredProcedure [dbo].[WS_WaterPool_GetRecordList] Script Date: 2024/1/12 11:01:14 ******/
  52629. SET ANSI_NULLS ON
  52630. GO
  52631. SET QUOTED_IDENTIFIER ON
  52632. GO
  52633. -- EXEC [WS_WaterPool_GetRecordList]
  52634. -- ==============================================
  52635. -- Author: wolf
  52636. -- Create Date: 2014-01-21
  52637. -- Mendor: wolf
  52638. -- Alter Date: 2016-11-07
  52639. -- Description: 个人奖池记录列表
  52640. -- ==============================================
  52641. CREATE PROCEDURE [dbo].[WS_WaterPool_GetRecordList]
  52642. @UserID INT, --用户ID
  52643. @BeginTime DATETIME, --开始时间
  52644. @EndTime DATETIME, --截止时间
  52645. @PageIndex INT, --页索引
  52646. @PageSize INT, --页大小
  52647. @RecordCount INT OUTPUT --记录数
  52648. AS
  52649. SET NOCOUNT ON
  52650. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52651. SET XACT_ABORT ON
  52652. BEGIN
  52653. DECLARE @StartRowIndex INT --起始行索引
  52654. DECLARE @EndRowIndex INT --截止行索引
  52655. DECLARE @tmptable TABLE(
  52656. Rid INT NOT NULL, --标识
  52657. UserID INT NOT NULL, --用户ID
  52658. PoolValue BIGINT NOT NULL, --生成后的数值
  52659. WantValue BIGINT NOT NULL, --操作的数值
  52660. GenType VARCHAR(32) NOT NULL, --生成方式
  52661. RoomType INT NOT NULL, --房间类型(1.普通房间,2.加倍场,3.快速场)
  52662. RoomName VARCHAR(32) NOT NULL, --房间名称
  52663. Crdate DATETIME NOT NULL --时间
  52664. )
  52665. SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
  52666. SET @EndRowIndex = @PageIndex * @PageSize
  52667. --查询某一用户
  52668. IF(@UserID > 0)
  52669. BEGIN
  52670. INSERT INTO @tmptable
  52671. (
  52672. Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
  52673. )
  52674. SELECT
  52675. Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
  52676. FROM
  52677. [WaterPoolRecord]
  52678. WHERE
  52679. Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
  52680. END
  52681. ELSE
  52682. BEGIN
  52683. INSERT INTO @tmptable
  52684. (
  52685. Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
  52686. )
  52687. SELECT
  52688. Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
  52689. FROM
  52690. [WaterPoolRecord]
  52691. WHERE
  52692. Crdate BETWEEN @BeginTime AND @EndTime
  52693. END
  52694. --记录数
  52695. SET @RecordCount = @@ROWCOUNT
  52696. ;WITH [List] AS
  52697. (
  52698. SELECT
  52699. ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
  52700. Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
  52701. FROM
  52702. @tmptable
  52703. )
  52704. --返回信息
  52705. SELECT
  52706. l.Rid, l.UserID, u.NickName, l.PoolValue, l.WantValue, l.GenType,
  52707. CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate, RoomType, RoomName
  52708. FROM
  52709. [List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
  52710. WHERE
  52711. l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
  52712. ORDER BY
  52713. l.RowNumber ASC
  52714. RETURN
  52715. END
  52716. GO
  52717. /****** Object: StoredProcedure [dbo].[WS_WaterPool_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
  52718. SET ANSI_NULLS ON
  52719. GO
  52720. SET QUOTED_IDENTIFIER ON
  52721. GO
  52722. -- EXEC [WS_WaterPool_GetUserInfo]
  52723. -- ==============================================
  52724. -- Author: wolf
  52725. -- Create Date: 2014-01-21
  52726. -- Mendor: wolf
  52727. -- Alter Date: 2016-11-07
  52728. -- Description: 个人奖池请求
  52729. -- ==============================================
  52730. CREATE PROCEDURE [dbo].[WS_WaterPool_GetUserInfo]
  52731. @UserID INT --用户ID
  52732. AS
  52733. SET NOCOUNT ON
  52734. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52735. SET XACT_ABORT ON
  52736. BEGIN
  52737. --返回信息
  52738. SELECT
  52739. PoolType, PoolValue
  52740. FROM
  52741. [WaterPool]
  52742. WHERE
  52743. UserID = @UserID
  52744. RETURN
  52745. END
  52746. GO
  52747. /****** Object: StoredProcedure [dbo].[WS_WaterPool_GrantRecord] Script Date: 2024/1/12 11:01:14 ******/
  52748. SET ANSI_NULLS ON
  52749. GO
  52750. SET QUOTED_IDENTIFIER ON
  52751. GO
  52752. -- EXEC [WS_WaterPool_GrantRecord]
  52753. -- ==============================================
  52754. -- Author: wolf
  52755. -- Create Date: 2014-01-21
  52756. -- Mendor: wolf
  52757. -- Alter Date: 2016-11-07
  52758. -- Description: 个人奖池生成记录
  52759. -- ==============================================
  52760. CREATE PROCEDURE [dbo].[WS_WaterPool_GrantRecord]
  52761. @UserID INT, --用户ID
  52762. @PoolValue BIGINT, --生成后的数值
  52763. @WantValue BIGINT, --操作的数值
  52764. @GenType VARCHAR(32), --生成方式
  52765. @RoomType INT, --房间类型(1.普通房间,2.加倍场,3.快速场)
  52766. @RoomName VARCHAR(32) --房间名称
  52767. AS
  52768. SET NOCOUNT ON
  52769. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52770. SET XACT_ABORT ON
  52771. BEGIN
  52772. --添加记录
  52773. INSERT INTO [WaterPoolRecord]
  52774. (
  52775. UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
  52776. )
  52777. VALUES
  52778. (
  52779. @UserID, @PoolValue, @WantValue, @GenType, @RoomType, @RoomName, GETDATE()
  52780. )
  52781. RETURN
  52782. END
  52783. GO
  52784. /****** Object: StoredProcedure [dbo].[WS_WaterPool_UpdateTotalInfo] Script Date: 2024/1/12 11:01:14 ******/
  52785. SET ANSI_NULLS ON
  52786. GO
  52787. SET QUOTED_IDENTIFIER ON
  52788. GO
  52789. -- EXEC [WS_WaterPool_UpdateTotalInfo]
  52790. -- ==============================================
  52791. -- Author: wolf
  52792. -- Create Date: 2014-01-21
  52793. -- Mendor: wolf
  52794. -- Alter Date: 2016-11-07
  52795. -- Description: 更新总奖池信息(累加)
  52796. -- ==============================================
  52797. CREATE PROCEDURE [dbo].[WS_WaterPool_UpdateTotalInfo]
  52798. @PositiveGenAmount BIGINT, --正向生成金
  52799. @PositiveExecAmount BIGINT, --正向执行金
  52800. @NagetiveGenAmount BIGINT, --负向生成金
  52801. @NagetiveExecAmount BIGINT, --负向执行金
  52802. @GrantAmount BIGINT --个人发放体验金
  52803. AS
  52804. SET NOCOUNT ON
  52805. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52806. SET XACT_ABORT ON
  52807. BEGIN
  52808. UPDATE
  52809. [WaterPoolTotal]
  52810. SET
  52811. PositiveGenAmount = PositiveGenAmount + @PositiveGenAmount,
  52812. PositiveExecAmount = PositiveExecAmount + @PositiveExecAmount,
  52813. NagetiveGenAmount = NagetiveGenAmount + @NagetiveGenAmount,
  52814. NagetiveExecAmount = NagetiveExecAmount + @NagetiveExecAmount,
  52815. GrantAmount = GrantAmount + @GrantAmount
  52816. WHERE
  52817. DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
  52818. IF(@@ROWCOUNT = 0)
  52819. BEGIN
  52820. INSERT INTO [WaterPoolTotal]
  52821. (
  52822. DateFlag, PositiveGenAmount, PositiveExecAmount,
  52823. NagetiveGenAmount, NagetiveExecAmount, GrantAmount
  52824. )
  52825. VALUES
  52826. (
  52827. CONVERT(CHAR(10), GETDATE(), 120), @PositiveGenAmount, @PositiveExecAmount,
  52828. @NagetiveGenAmount, @NagetiveExecAmount, @GrantAmount
  52829. )
  52830. END
  52831. RETURN
  52832. END
  52833. GO
  52834. /****** Object: StoredProcedure [dbo].[WS_WaterPool_UpdateUserInfo] Script Date: 2024/1/12 11:01:14 ******/
  52835. SET ANSI_NULLS ON
  52836. GO
  52837. SET QUOTED_IDENTIFIER ON
  52838. GO
  52839. -- EXEC [WS_WaterPool_UpdateUserInfo]
  52840. -- ==============================================
  52841. -- Author: wolf
  52842. -- Create Date: 2014-01-21
  52843. -- Mendor: wolf
  52844. -- Alter Date: 2016-11-07
  52845. -- Description: 更新玩家个人奖池信息
  52846. -- ==============================================
  52847. CREATE PROCEDURE [dbo].[WS_WaterPool_UpdateUserInfo]
  52848. @UserID INT, --用户ID
  52849. @PoolType INT, --调控模式
  52850. @PoolValue BIGINT --奖池数据
  52851. AS
  52852. SET NOCOUNT ON
  52853. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  52854. SET XACT_ABORT ON
  52855. BEGIN
  52856. UPDATE
  52857. [WaterPool]
  52858. SET
  52859. PoolType = @PoolType, PoolValue = @PoolValue
  52860. WHERE
  52861. UserID = @UserID
  52862. IF(@@ROWCOUNT = 0)
  52863. BEGIN
  52864. INSERT INTO [WaterPool]
  52865. (
  52866. UserID, PoolType, PoolValue
  52867. )
  52868. VALUES
  52869. (
  52870. @UserID, @PoolType, @PoolValue
  52871. )
  52872. END
  52873. RETURN
  52874. END
  52875. GO