12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476 |
- <?php
- defined('ONLY_ONLY_ONLY') or exit('Access Denied');
- /*****************活动即劳资双方因某个工作事项关联起来的活动******************/
- /**********************招聘信息相关逻辑**************************************/
- function bizbase_recruitEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC)
- {
- if (intval($baseUser["subsystem"]) == SUBSYS_LABOUR_MINA) {
- $bizWorker = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL_MINA) {
- $bizTrader = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL2_MINA) {
- $bizTrader2 = $bizUser;
- }
- switch ($handleMode) {
- case "fetchByTrader":
- case "fetchByTrader2":
- case "fetchByWorker":
- case "fetchByPlater":
- case "fetchByPublic":
- if ($handleMode == "fetchByTrader") {
- $bizTrader = $bizUser;
- }
- if ($handleMode == "fetchByWorker") {
- $bizWorker = $bizUser;
- }
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- $backdata = pdo_fetch("select btr.*
- ,bt.company_name bt_companyname,bu.mobile as bt_mobile,bt.catalog as bt_catalog,bt.certif_confirmed as bt_certif_confirmed
- ,bt.profile_photo as bt_profile_photo , bt.linker_gender as bt_linker_gender ,bt.company_desc as bt_company_desc,bt.nickname as bt_nickname,bt.linker_name as bt_linker_name ,bt.company_addr as bt_company_addr
- ,(select concat(id,'-',workteam_mode,'-',workteamid,'-',teamstatus,'-',`status`) from biz_todowork tdwk where tdwk.biz_recruitid=btr.id and tdwk.biz_workerid=:biz_workerid order by id desc limit 1 ) as lasttodowork
- ,(select ifnull(avg(result_level),0) from biz_appraisal bapr where bapr.biz_catalog=1 and bapr.toerid=btr.biz_traderid ) as trader_appraisal_avg
- ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=btr.id and ( btdw.`status`>=2 ) ) as now_worker_total
- ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=btr.id and ( btdw.`status`>=1 ) ) as now_worker_total000
- ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=btr.id and ( btdw.`status`=-1 or btdw.`status`=-3 ) ) as num_abnormal_total
- ,(select concat(brd.id,'-',brd.begin_datetime,'-',brd.finish_datetime,'-',bt.id,'-',bu.id,'-',bu.mobile,'-',bt.true_name)
- from biz_recruit_delegate brd
- left join biz_trader2 bt on bt.id=brd.biz_trader2id
- left join base_user bu on bu.id=bt.base_userid
- where brd.biz_recruitid=:recruitid and brd.finish_datetime>:verify_datetime
- limit 1) as delegate_info
- from biz_trader_recruit btr
- left join biz_trader bt on bt.id=btr.biz_traderid
- left join base_user bu on bu.id=bt.base_userid
- where btr.id=:recruitid", array(
- ":recruitid" => intval($bizId),
- ":verify_datetime" => time(),
- ":biz_workerid" => empty($bizWorker) ? 0 : $bizWorker["id"],
- ));
- if (empty($backdata)) {
- throw new GeneralException("", "无此记录,请核查bizId是否正确!");
- }
- if (intval($backdata["deleted"]) != 0) {
- throw new GeneralException("", "此记录已删除了,请核查后再处理!");
- }
- if ($handleMode == "fetchByTrader" && intval($backdata["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "此记录不是您所拥有的招聘信息,请核查后再处理!");
- }
- if ($handleMode == "fetchByTrader2") {
- bizTrader2_verifyRecuritDelegate($bizTrader2, $backdata["id"]);
- }
- //----------------------
- $lasttodowork = explode("-", $backdata["lasttodowork"]);
- $backdata["todoinfo"] = array();
- if (!empty($lasttodowork) && count($lasttodowork) == 5) {
- $tdwkid = intval($lasttodowork[0]);
- $workteam_mode = intval($lasttodowork[1]);
- $workteamid = intval($lasttodowork[2]);
- $teamstatus = intval($lasttodowork[3]);
- $tdwkstatus = intval($lasttodowork[4]);
- $backdata["todoinfo"]["tdwkid"] = $tdwkid; //单独取消团组报名 使用
- $backdata["todoinfo"]["workteam_mode"] = $workteam_mode;
- $backdata["todoinfo"]["workteamid"] = $workteamid; //团长取消团组报名 使用
- $backdata["todoinfo"]["teamstatus"] = $teamstatus;
- $backdata["todoinfo"]["tdwkstatus"] = $tdwkstatus;
- if ($tdwkstatus == 1) {
- if ($workteam_mode <= 0) {
- $backdata["todoinfo"]["canToEnroll"] = false; //是否可报名
- $backdata["todoinfo"]["canCancelEnroll"] = 1; //是否可以取消报名 0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "单独报名待审核状态,可取消报名"; //相关说明
- } else if ($workteam_mode == 1) {
- $backdata["todoinfo"]["canToEnroll"] = false;
- $backdata["todoinfo"]["canCancelEnroll"] = 2; //0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "组团报名待审核状态,团长可取消报名";
- }
- } else if ($tdwkstatus > 1) {
- $backdata["todoinfo"]["canToEnroll"] = false;
- $backdata["todoinfo"]["canCancelEnroll"] = 0; //0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "已报名过此招聘,并已进入实际工作阶段";
- } else if ($tdwkstatus <= -2 && $tdwkstatus >= -4) { //-2,-3,-4,0
- $backdata["todoinfo"]["canToEnroll"] = true;
- $backdata["todoinfo"]["canCancelEnroll"] = 0; //0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "主被动取消或被违约后,可再次报名";
- } else if ($tdwkstatus == 0) { //0
- if ($workteam_mode <= 0) {
- $backdata["todoinfo"]["canToEnroll"] = true;
- $backdata["todoinfo"]["canCancelEnroll"] = 0; //0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "可再次报名11";
- } else {
- if ($teamstatus >= 1) {
- $backdata["todoinfo"]["canToEnroll"] = false;
- $backdata["todoinfo"]["canCancelEnroll"] = 0; //0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "已开参团,不可再次报名";
- } else {
- $backdata["todoinfo"]["canToEnroll"] = true;
- $backdata["todoinfo"]["canCancelEnroll"] = 0; //0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "可再次报名22";
- }
- }
- } else {
- $backdata["todoinfo"]["canToEnroll"] = false;
- $backdata["todoinfo"]["canCancelEnroll"] = 0; //0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "录用被驳回,以及未开始工作,未结束工作等状态,不可再次报名";
- }
- } else {
- if (empty($bizWorker)) {
- $backdata["todoinfo"]["canToEnroll"] = false;
- $backdata["todoinfo"]["canCancelEnroll"] = 0; //0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "非会员态";
- } else {
- $backdata["todoinfo"]["canToEnroll"] = true;
- $backdata["todoinfo"]["canCancelEnroll"] = 0; //0-不可;1-单消;2-团消
- $backdata["todoinfo"]["remark"] = "还未报名过此招聘";
- }
- }
- //----------------------
- $backdata["btr_canTerminate"] = false;
- if (intval($backdata["status"]) == 2) {
- $backdata["btr_canTerminate"] = true;
- }
- $backdata["btr_canBreakoff"] = false;
- if (intval($backdata["status"]) >= 2//提前违约
- && ((
- intval($backdata["settle_catalog"]) == 0
- ) || (
- intval($backdata["settle_catalog"]) > 0
- ))
- ) {
- $backdata["btr_canBreakoff"] = true;
- }
- $backdata["remarks"] = explode("\n", $backdata["remark"]);
- $backdata["remark"] = trim(explode("\n", $backdata["remark"])[0]);
- $backdata["trader_appraisal_avg"] = round($backdata["trader_appraisal_avg"], 2);
- $delegateInfo = bizbase_recruitDelegateInfo($backdata);
- foreach ($delegateInfo as $key => $val) {
- $backdata["delegate_" . $key] = $val;
- }
- unset($backdata["delegate_info"]);
- if (intval($backdata["status"]) == -1) {
- $backdata["refuseReason"] = trim(explode("\n", $backdata["remark"])[0]);
- }
- if (intval($backdata["status"]) == 3) {
- $backdata["interuptReason"] = trim(explode("\n", $backdata["remark"])[0]);
- }
- if (intval($backdata["status"]) == 4) {
- $backdata["breakdownReason"] = trim(explode("\n", $backdata["remark"])[0]);
- }
- $backdata["statusName"] = bizbase_recruitStatusName($backdata["status"]);
- $backdata["settleModeName"] = intval($backdata["settle_mode"]) <= 0 ? "二维码核销" : "手动核销";
- if (!empty($bizWorker)) {
- $favorite = pdo_fetchcolumn("select count(*) as count from biz_worker_favorite
- where biz_workerid=" . intval($bizWorker["id"]) . " and biz_catalog=0 and biz_id=" . intval($bizId) . ";");
- $backdata["favorite"] = (intval($favorite) > 0);
- $trace = pdo_fetchcolumn("select count(*) as count from biz_worker_trace
- where biz_workerid=" . intval($bizWorker["id"]) . " and biz_catalog=0 and biz_id=" . intval($bizId) . ";");
- $backdata["trace"] = (intval($trace) > 0);
- }
- $now_worker_total = pdo_fetchcolumn("select count(*) from biz_todowork btdw where btdw.biz_recruitid=" . intval($bizId) . " and ( btdw.`status`>=2 );");
- $backdata["now_worker_total"] = $now_worker_total;
- //-----
- $backdata["pickDateList"] = bizbase_recruitWorkLock($bizId, 0, null, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain, $pickDateList) {
- return $pickDateList;
- });
- $backdata["begin_datetime22"] = $backdata["begin_datetime"];
- if (strtotime(date("Y-m-d", $backdata["begin_datetime22"])) < strtotime(date("Y-m-d", time()))) {
- $backdata["begin_datetime22"] = strtotime(date("Y-m-d", time()));
- }
- $backdata["begin_datetime22"] = date("Y-m-d", $backdata["begin_datetime22"]);
- $backdata["restdays"] = "";
- if (intval($backdata["finish_datetime"] > strtotime(date("Y-m-d", time())))) {
- $backdata["restdays"] = round((intval($backdata["finish_datetime"]) - strtotime(date("Y-m-d", time()))) / 86400);
- }
- $backdata = bizbase_recruitFieldTrans($fromSubSystem, "BtoF", $backdata);
- if ($handleMode == "fetchByPlater") {
- //$backdata = bizbase_recruitFieldAttrMap($fromSubSystem,"BtoF",$backdata);
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":biz_id"] = intval($backdata["id"]);
- $sqlTemp = "";
- $sqlTemp .= " set @handle_id=0; ";
- $sqlTemp .= " select @handle_id:=id from biz_trader_recruit where id=:biz_id and ifnull(readed,0)=0 limit 1;";
- $sqlTemp .= " update biz_trader_recruit set `updatetime`=:nowtime,readed=1 where ifnull(@handle_id,0)=0 and id=:biz_id;";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- }
- if (!empty($bizWorker)) {
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":biz_id"] = intval($backdata["id"]);
- $sqlParam[":biz_workerid"] = intval($bizWorker["id"]);
- $sqlTemp = "";
- $sqlTemp .= " set @handle_id=0; ";
- $sqlTemp .= " select @handle_id:=id from biz_worker_trace where biz_catalog=0 and biz_id=:biz_id and biz_workerid=:biz_workerid limit 1;";
- $sqlTemp .= " insert into biz_worker_trace ( `createtime`,`biz_catalog`, `biz_id`, `biz_workerid`, count )";
- $sqlTemp .= " select :nowtime, 0, :biz_id, :biz_workerid , 1 from dual where ifnull(@handle_id,0)=0;";
- $sqlTemp .= " update biz_worker_trace set `count`=ifnull(count,0)+1 where ifnull(@handle_id,0)<>0 and biz_catalog=0 and biz_id=:biz_id and biz_workerid=:biz_workerid;";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- }
- $base_config = pdo_fetch("select * from base_config where name = 'enroll_premoney'");
- $backdata['base_config'] = $base_config;
- //报名列表
- $backdata['todo_list'] = [];
- if ($backdata['now_worker_total000'] > 0) {
- $sql = "select bw.id,bw.profile_photo from biz_trader_recruit as btr
- join biz_todowork as bt on btr.id=bt.biz_recruitid and bt.`status`>=1
- join biz_worker as bw on bw.id =bt.biz_workerid
- where btr.id=:btrid limit 7";
- $backdata['todo_list'] = pdo_fetchall($sql, array(
- ":btrid" => intval($bizId),
- ));
- }
- return $backdata;
- break;
- case "pushTop":
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- $trader = pdo_fetch("select * from biz_trader_recruit where id=" . intval($bizId));
- if (empty($trader)) {
- throw new GeneralException("", "此id对应的招聘信息记录不存在,请核查bizId是否正确!");
- }
- if (intval($trader["status"]) != 2) {
- throw new GeneralException("", "招聘信息当前不是【进行中】状态,请核查招聘信息实际状态后再处理!");
- }
- if (intval($trader["deleted"]) != 0) {
- throw new GeneralException("", "招聘信息已删除了,请核查招聘信息实际状态后再处理!");
- }
- $sqlTemp = ""; //不设置remark避免覆盖
- $sqlTemp .= " update biz_trader_recruit set updatetime=:nowtime,istop=0 where istop=1;";
- $sqlTemp .= " update biz_trader_recruit set updatetime=:nowtime,istop=1 where id=:id;";
- $backdata = pdo_query($sqlTemp, array(":nowtime" => time(), ":id" => intval($bizId)));
- return $backdata;
- break;
- case "topHandle":
- $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
- if (empty($todo)) {
- throw new GeneralException("", "没有传递必要的todo参数");
- }
- $bizIds = isset($ajaxdata["bizIds"]) ? $ajaxdata["bizIds"] : $GPC["bizIds"];
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $query = "";
- if (is_array($bizIds)) {
- $query = "and id in(" . implode(",", $bizIds) . ") ";
- }
- switch (trim($todo)) {
- case "set":
- $sqlParam[":istop"] = 1;
- break;
- case "unset":
- $sqlParam[":istop"] = 0;
- break;
- default:throw new GeneralException("", "不支持的todo");
- }
- $sqlTemp = ""; //不设置remark避免覆盖
- $sqlTemp .= " update biz_trader_recruit set updatetime=:nowtime,istop=:istop where 1=1 {$query};";
- $backdata = pdo_query($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "downdrop":
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- $recruit = pdo_fetch("select * from biz_trader_recruit where id=" . intval($bizId));
- if (empty($recruit)) {
- throw new GeneralException("", "此id对应的招聘信息记录不存在,请核查bizId是否正确!");
- }
- if (intval($recruit["status"]) != 2) {
- throw new GeneralException("", "招聘信息当前不是【进行中】状态,请核查招聘信息实际状态后再处理!");
- }
- if (intval($recruit["deleted"]) != 0) {
- throw new GeneralException("", "招聘信息已删除了,请核查招聘信息实际状态后再处理!");
- }
- $bizArgs = array("recruit" => $recruit, "reason" => $reason);
- $backdata = bizbase_recruitWorkLock($recruit["id"], 0, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain, $pickDateList) {
- $recruit = $bizArgs["recruit"];
- $reason = $bizArgs["reason"];
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":recruitId"] = intval($recruit["id"]);
- $sqlParam[":biz_traderid"] = intval($recruit["biz_traderid"]);
- $sqlParam[":status"] = 4;
- $sqlParam[":remain_numtotal"] = intval($mainRemain);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 手工下架 {$reason} \n";
- $sqlTemp = " update biz_trader_recruit set updatetime=:nowtime,istop=0 ";
- $sqlTemp .= " ,`status`=:status, remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " where id=:recruitId;";
- $sqlTemp .= " set @placeholder111=:biz_traderid;";
- $sqlTemp .= " set @placeholder222=:remain_numtotal;";
- if (intval($mainRemain) > 0) {
- $sqlTemp .= " insert into biz_trader_numaccount set createtime=:nowtime";
- $sqlTemp .= " ,biz_traderid=:biz_traderid "; //直接返还到非免费次数即可;账目可平!
- $sqlTemp .= " ,type=0,biz_catalog=1,biz_id=:recruitId,`status`=1,`count`=:remain_numtotal";
- $sqlTemp .= " ,remark='[" . date("Y-m-d H:i:s", time()) . "] 因手工下架返回剩余次数';";
- }
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- });
- return $backdata;
- break;
- case "upsert":
- case "upsertLaunchAudit":
- case "upsertReset":
- if (intval($baseUser["subsystem"] != intval(SUBSYS_CAPITAL_MINA))) {
- throw new GeneralException("", "只能是商家发布招聘信息");
- }
- $bizTrader = $bizUser;
- if ($handleMode == "upsertLaunchAudit") {
- bizbase_verifyUserAccount($bizTrader, true, "无法发布新招聘信息");
- $accountInfo = bizbase_traderAccountInfo($bizTrader);
- $balance = round(floatval($accountInfo["balance"]), 2);
- //if($balance==0) throw new GeneralException("", "您的账户余额为零,无法发布新招聘信息");
- if ($balance < 0) {
- throw new GeneralException("", "您尚有欠款未还,无法发布新招聘信息");
- }
- if ($bizTrader["catalog"] < 0) {
- throw new GeneralException("", "您尚未完善信息,无法发布新招聘信息");
- }
- if ($bizTrader["catalog"] == 0 && empty($bizTrader["lawer_idcard"])) {
- throw new GeneralException("", "您尚未完成实名认证(提交身份证信息),无法发布新招聘信息");
- }
- if ($bizTrader["catalog"] == 1 && empty($bizTrader["bizlicense_pic"])) {
- throw new GeneralException("", "您尚未完成实名认证(提交营业执照),暂时无法发布新招聘信息");
- }
- }
- $bizData = isset($ajaxdata["bizData"]) ? $ajaxdata["bizData"] : $GPC["bizData"];
- if (empty($bizData)) {
- throw new GeneralException("", "没有传递必要的bizData参数");
- }
- /***字段参数收集并校验**start***/
- $saveData = array();
- $saveData["title"] = trim($bizData["title"]);
- if (mb_strlen($saveData["title"]) <= 0 || mb_strlen($saveData["title"]) > 180
- || !preg_match("/^.*$/", $saveData["title"])) {
- throw new GeneralException("", "标题必填,且长度范围为1-180!");
- }
- $saveData["profile_photo"] = trim($bizData["profile_photo"]);
- // if ($handleMode == "upsertLaunchAudit")//只在提交审核时验证
- // if(mb_strlen($saveData["profile_photo"])<=0 || mb_strlen($saveData["profile_photo"])>120
- // || !preg_match("/^.*$/",$saveData["profile_photo"]))
- // throw new GeneralException("","图片路径必填,且长度范围为1-120!");
- $saveData["work_typename"] = trim($bizData["work_typename"]);
- $saveData["feeper"] = floatval($bizData["feeper"]);
- $saveData["feetotal"] = floatval($bizData["feetotal"]);
- if ($handleMode == "upsertLaunchAudit" && intval($saveData["feetotal"]) <= 0) {
- throw new GeneralException("", "金额费用没有设置且不能小于等于0");
- }
- $saveData["meals_providing"] = intval($bizData["meals_providing"]);
- $saveData["urgent_level"] = intval($bizData["urgent_level"]);
- $saveData["settle_catalog"] = intval($bizData["settle_catalog"]);
- $saveData["begin_datetime"] = intval(strtotime(date("Y-m-d", strtotime($bizData["begin_datetime"]))));
- if ($handleMode == "upsertLaunchAudit") { //只在提交审核时验证
- if ($saveData["begin_datetime"] <= 0) {
- throw new GeneralException("", "开始日期必填");
- }
- if (intval($saveData["begin_datetime"]) < strtotime(date("Y-m-d", time()))) {
- throw new GeneralException("lessToday", "开始日期不能小于今天");
- }
- }
- $saveData["finish_datetime"] = intval(strtotime(date("Y-m-d", strtotime($bizData["finish_datetime"]))));
- if ($handleMode == "upsertLaunchAudit") { //只在提交审核时验证
- if ($saveData["settle_catalog"] <= 0 && ($saveData["finish_datetime"] - $saveData["begin_datetime"]) < 0) {
- throw new GeneralException("", "完工结日期不能小于开始日期!");
- }
- if (($saveData["finish_datetime"] - $saveData["begin_datetime"]) > 3600 * 24 * 6) {
- throw new GeneralException("", "完工结日期跨度不能大于7天!");
- }
- }
- $saveData["begin_hour"] = trim($bizData["begin_hour"]);
- if ($handleMode == "upsertLaunchAudit") //只在提交审核时验证
- {
- if (mb_strlen($saveData["begin_hour"]) != 5 || !preg_match("/^\d\d:\d\d$/", $saveData["begin_hour"])) {
- throw new GeneralException("", "开工时间不正确 应该是 nn:nn 模式");
- }
- }
- $begin_hour = explode(":", $saveData["begin_hour"]);
- $saveData["begin_hour2"] = intval($begin_hour[0]) * 3600 + intval($begin_hour[1]) * 60;
- if ($handleMode == "upsertLaunchAudit") { //只在提交审核时验证
- // 阿东注释代码 添加招聘时,时间限制去掉
- // if((intval($saveData["begin_datetime"])+(intval($saveData["begin_hour2"])))<(time()+3600*2))
- // throw new GeneralException("overdue","设置的开工日期时间已经进入自动下架了,请核查修正!");
- if ((intval($saveData["begin_datetime"]) + (intval($saveData["begin_hour2"]))) <= time()) {
- throw new GeneralException("overdue", "开工时间请大于当前时间");
- }
- }
- $saveData["finish_hour"] = trim($bizData["finish_hour"]);
- if ($handleMode == "upsertLaunchAudit") //只在提交审核时验证
- {
- if (mb_strlen($saveData["finish_hour"]) != 5 || !preg_match("/^\d\d:\d\d$/", $saveData["finish_hour"])) {
- throw new GeneralException("", "完工时间不正确 应该是 nn:nn 模式");
- }
- }
- $finish_hour = explode(":", $saveData["finish_hour"]);
- $saveData["finish_hour2"] = intval($finish_hour[0]) * 3600 + intval($finish_hour[1]) * 60;
- $saveData["need_total"] = intval($bizData["need_total"]);
- if ($handleMode == "upsertLaunchAudit") //只在提交审核时验证
- {
- if (intval($saveData["need_total"]) <= 0) {
- throw new GeneralException("", "需求总人数没有设置且不能小于等于0");
- }
- }
- $saveData["need_perday"] = intval($bizData["need_perday"]);
- $saveData["requirements"] = json_encode($bizData["requirements"]); //标签列表
- if ($handleMode == "upsertLaunchAudit") //只在提交审核时验证
- {
- if (empty($saveData["requirements"])) {
- throw new GeneralException("", "招聘要求必填");
- }
- }
- $saveData["linker_name"] = trim($bizData["linker_name"]);
- if ($handleMode == "upsertLaunchAudit") //只在提交审核时验证
- {
- if (mb_strlen($saveData["linker_name"]) <= 0 || mb_strlen($saveData["linker_name"]) > 30
- || !preg_match("/^.*$/", $saveData["linker_name"])) {
- throw new GeneralException("", "联系人姓名必填,且长度范围为1-30!");
- }
- }
- $saveData["linker_phone"] = trim($bizData["linker_phone"]);
- // if(mb_strlen($saveData["linker_phone"])<=0 || mb_strlen($saveData["linker_phone"])>20
- // || !preg_match("/^.*$/",$saveData["linker_phone"]))
- // throw new GeneralException("","联系人电话必填,且长度范围为1-20!");
- $saveData["age_mode"] = intval($bizData["age_mode"]);
- $saveData["age_min"] = intval($bizData["age_min"]);
- $saveData["age_max"] = intval($bizData["age_max"]);
- $saveData["gender_mode"] = intval($bizData["gender_mode"]);
- $saveData["work_addr"] = $bizData["work_addr"];
- if ($handleMode == "upsertLaunchAudit") //只在提交审核时验证
- {
- if (empty($saveData["work_addr"])) {
- throw new GeneralException("", "工作地址信息必填");
- }
- }
- $saveData["work_addr1"] = json_encode($bizData["work_addr1"]);
- $saveData["work_addr_lng"] = trim($bizData["work_addr_lng"]);
- if ($handleMode == "upsertLaunchAudit") //只在提交审核时验证
- {
- if (!preg_match("/^\d{1,}.\d{1,}$/", $saveData["work_addr_lng"])) {
- throw new GeneralException("", "工作地址经度不能为空或格式不正确");
- }
- }
- $saveData["work_addr_lat"] = trim($bizData["work_addr_lat"]);
- if ($handleMode == "upsertLaunchAudit") //只在提交审核时验证
- {
- if (!preg_match("/^\d{1,}.\d{1,}$/", $saveData["work_addr_lat"])) {
- throw new GeneralException("", "工作地址纬度不能为空或格式不正确");
- }
- }
- $saveData["work_desc"] = trim($bizData["work_desc"]);
- if ($handleMode == "upsertLaunchAudit") //只在提交审核时验证
- {
- if (mb_strlen($saveData["work_desc"]) <= 0) {
- throw new GeneralException("", "工作内容必填");
- }
- }
- $saveData["work_process"] = trim($bizData["work_process"]);
- $saveData["work_remark"] = trim($bizData["work_remark"]);
- $saveData["enroll_audit"] = intval($bizData["enroll_audit"]);
- $saveData["settle_mode"] = intval($bizData["settle_mode"]);
- //关联商家的id
- $saveData["biz_traderid"] = $bizTrader["id"];
- /***字段参数收集并校验**finish***/
- $lockid = intval($saveData["biz_traderid"]);
- $param = array("handleMode" => $handleMode, "bizTrader" => $bizTrader, "saveData" => $saveData, "bizData" => $bizData);
- $backdata = biz_flkForTrader($lockid, $param, function ($param) {
- $handleMode = $param["handleMode"];
- $bizTrader = $param["bizTrader"];
- $saveData = $param["saveData"];
- $bizData = $param["bizData"];
- $sqlTemp = "";
- $sqlParam = array();
- if (intval($bizData["id"]) <= 0) {
- if ($handleMode == "upsertLaunchAudit") {
- $saveData["status"] = 1; //一步提交审核
- $saveData["remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 提交审核 \n";
- }
- if ($handleMode == "upsertReset") {
- throw new GeneralException("", "新增模式下,进行驳回后的修复是不可能的啊!!");
- }
- $saveData["createtime"] = time();
- //随机生成报名头像列表
- $enrolled_heads = "";
- $tmpCount = 0;
- $enrolled_heads .= rand(1, 100) . ',';
- while ($tmpCount <= 5) {
- $newRomdom = rand(1, 100);
- while (mb_strpos($enrolled_heads, $newRomdom . ',') !== false) {
- $newRomdom = rand(1, 100);
- }
- $enrolled_heads .= $newRomdom . ',';
- $tmpCount++;
- }
- $saveData["enrolled_heads"] = $enrolled_heads;
- $upsertSet = pdo_buildSetSQL("", $saveData);
- $sqlParam += $upsertSet["params"]; //合并参数集合
- $sqlTemp .= " insert into biz_trader_recruit set " . $upsertSet["fields"] . ";";
- $sqlTemp .= " set @bizid=LAST_INSERT_ID();";
- } else {
- $oldData = pdo_fetch("select * from biz_trader_recruit where id=" . intval($bizData["id"]));
- if (empty($oldData)) {
- throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!");
- }
- if (intval($oldData["deleted"]) != 0) {
- throw new GeneralException("", "此记录已删除了,请核查后再处理!");
- }
- if (intval($oldData["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "此记录不是您所拥有的招聘信息,请核查后再处理!");
- }
- if ($handleMode == "upsert") {
- if (intval($oldData["status"]) != 0) {
- throw new GeneralException("", "当前招聘记录已不是待提交,无法保存到草稿,请核查!");
- }
- $saveData["status"] = 0;
- $saveData["remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 保存到草稿 \n" . trim($oldData["remark"]);
- }
- if ($handleMode == "upsertLaunchAudit") {
- if (intval($oldData["status"]) > 0) {
- throw new GeneralException("", "当前招聘记录已不是待提交和被驳回状态,无法提交审核,请核查!");
- }
- $saveData["status"] = 1; //一步提交审核
- $saveData["remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 提交审核 \n" . trim($oldData["remark"]);
- }
- if ($handleMode == "upsertReset") {
- if (intval($oldData["status"]) != -1) {
- throw new GeneralException("", "当前招聘记录已不是被驳回状态,无法保存到草稿,请核查!");
- }
- $saveData["status"] = 0; //驳回再保存,修复为待提交状态
- $saveData["remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 驳回再保存,修复为待提交状态 \n" . trim($oldData["remark"]);
- }
- $saveData["updatetime"] = time();
- $upsertSet = pdo_buildSetSQL("", $saveData);
- $sqlParam += $upsertSet["params"];
- $sqlTemp .= " update biz_trader_recruit set " . $upsertSet["fields"] . " ";
- $sqlTemp .= " where id=" . intval($bizData["id"]) . ";";
- $sqlTemp .= " set @bizid=" . intval($bizData["id"]) . ";";
- }
- if ($handleMode == "upsertLaunchAudit") { //自动审核处理过程逻辑
- $recuritRule = bizbase_fetchBaseConfig("RecuritRule", true);
- $feetotal = round($saveData["feetotal"], 2);
- if ($feetotal < $recuritRule["feeper_min"]) {
- throw new GeneralException("", "金额费用不能小于最低金额 " . $recuritRule["feeper_min"] . " 元");
- }
- if (true) { //自动审核处理过程逻辑
- $sqlParam[":plat_fetchrate"] = round(floatval($recuritRule["plater_getrate"] / 100), 2);
- $sqlParam[":plat_fetchmoney"] = round($feetotal * $sqlParam[":plat_fetchrate"], 2);
- $sqlParam[":sharer_fetchrate"] = round(floatval($recuritRule["share_getrate"] / 100), 2);
- $sqlParam[":sharer_fetchmoney"] = round($sqlParam[":plat_fetchmoney"] * $sqlParam[":sharer_fetchrate"], 2);
- $sqlParam[":salary"] = round($feetotal - $sqlParam[":plat_fetchmoney"], 2);
- if ($sqlParam[":salary"] <= 0) {
- throw new GeneralException("", "平台分的有点多了吧,工资都没了");
- }
- if ($sqlParam[":sharer_fetchmoney"] > $sqlParam[":plat_fetchmoney"]) {
- throw new GeneralException("", "分享分销分成金额大于了平台分成金额了");
- }
- $feeper = $sqlParam[":salary"];
- if (intval($saveData["settle_catalog"]) <= 0 && intval($saveData["finish_datetime"]) > intval($saveData["begin_datetime"])) {
- $startWorkDate = strtotime(date("Y-m-d", intval($saveData["begin_datetime"])));
- $days = 0;
- do {
- $days++;
- $startWorkDate = strtotime("+1day", strtotime(date("Y-m-d", $startWorkDate)));
- } while ($startWorkDate <= strtotime(date("Y-m-d", intval($saveData["finish_datetime"]))));
- $feeper = round($sqlParam[":salary"] / $days, 2);
- }
- $sqlParam[":auto_feeper"] = $feeper;
- $sqlParam[":auto_nowtime"] = time();
- $sqlParam[":auto_status"] = 2;
- $sqlParam[":auto_remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 自动审核通过 \n";
- // feeper和salary
- $sqlTemp .= " update biz_trader_recruit set updatetime=:auto_nowtime, `status`=:auto_status, remark=concat(:auto_remark,ifnull(remark,''))
- ,plat_fetchrate=:plat_fetchrate,plat_fetchmoney=:plat_fetchmoney
- ,sharer_fetchrate=:sharer_fetchrate,sharer_fetchmoney=:sharer_fetchmoney
- ,salary=:salary,feeper=:auto_feeper
- where id=@bizid;";
- }
- if (true) { //免费次数处理逻辑
- $need_total = intval($saveData["need_total"]);
- $freeCount = intval($bizTrader["freecount"]);
- $freeCount = $freeCount <= 0 ? 0 : $freeCount;
- $freecount_used = intval($bizTrader["freecount_used"]);
- $freecount_used = $freecount_used <= 0 ? 0 : $freecount_used;
- $canUseFreeCount = $freeCount - $freecount_used;
- $useFreeCount = 0;
- if (intval($canUseFreeCount) > 0) {
- $useFreeCount = ($canUseFreeCount >= $need_total) ? $need_total : $canUseFreeCount;
- }
- $payCount = $need_total - $useFreeCount;
- $accountInfo = pdo_fetchall("select type,ifnull(sum(ifnull(count,0)),0) as total
- from biz_trader_numaccount where `deleted`=0 and `status`=1 and biz_traderid=" . intval($saveData["biz_traderid"]) . "
- group by type");
- $totalIncome = 0;
- $totalOutgoing = 0;
- foreach ($accountInfo as $item) {
- switch (intval($item["type"])) {
- case 0:
- $totalIncome = intval($item["total"]);
- break;
- case 1:
- $totalOutgoing = intval($item["total"]);
- break;
- }
- }
- $totalbalance = $totalIncome - $totalOutgoing;
- if ($totalbalance < $payCount) {
- throw new GeneralException("NoEnoughCount", array(
- "tip" => "剩余次数不足支付本次招聘的人次,请先充值次数!",
- "useFreeCount" => $useFreeCount,
- "payCount" => $payCount,
- "balance" => $totalbalance,
- "dvalue" => $payCount - $totalbalance,
- ));
- }
- if (intval($useFreeCount) > 0) {
- $sqlTemp .= " update biz_trader set updatetime=" . time() . " ";
- $sqlTemp .= " ,freecount_used=ifnull(freecount_used,0)+" . intval($useFreeCount) . " ";
- $sqlParam[":freecount_used_remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 扣减免费" . intval($useFreeCount) . "次数 招聘记录id=>";
- $sqlTemp .= " ,freecount_used_remark=concat(:freecount_used_remark,@bizid,'\n',ifnull(freecount_used_remark,'')) ";
- $sqlTemp .= " where id=" . intval($bizTrader["id"]) . ";";
- }
- $sqlTemp .= " insert into biz_trader_numaccount set createtime=" . time() . " ";
- $sqlTemp .= " ,biz_traderid=" . intval($bizTrader["id"]) . " ";
- $sqlTemp .= " ,type=1,biz_catalog=0,biz_id=@bizid,`count`=" . intval($payCount) . ",`freecount`=" . intval($useFreeCount);
- $sqlParam[":numaccount_remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 扣减免费次数" . intval($useFreeCount) . ",额外次数" . intval($payCount) . " 招聘记录id=>";
- $sqlTemp .= " ,`status`=1,remark=concat(:numaccount_remark,@bizid,'\n',ifnull(remark,''));";
- }
- }
- $sqlTemp .= " select * from biz_trader_recruit where id=@bizid;";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- $backdata = $dataset[count($dataset) - 1][0];
- return $backdata;
- });
- return $backdata;
- break;
- case "deleteByTrader":
- if ($handleMode == "deleteByTrader") {
- $bizTrader = $bizUser;
- }
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- //if (empty($reason)) throw new GeneralException("", "下架必须输入要原因!");
- $trader = pdo_fetch("select * from biz_trader_recruit where id=" . intval($bizId));
- if (empty($trader)) {
- throw new GeneralException("", "此id对应的招聘信息记录不存在,请核查bizId是否正确!");
- }
- if (intval($trader["status"]) != -1) {
- throw new GeneralException("", "招聘信息当前不是【被驳回】状态,请核查招聘信息实际状态后再处理!");
- }
- if (intval($trader["deleted"]) != 0) {
- throw new GeneralException("", "招聘信息已删除了,请核查招聘信息实际状态后再处理!");
- }
- if ($handleMode == "deleteByTrader" && intval($trader["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "此记录不是您所拥有的招聘信息,请核查后再处理!");
- }
- $backdata = pdo_query("update biz_trader_recruit set updatetime=:nowtime, `deleted`=1, remark=concat(:remark,ifnull(remark,''))
- where id=:id;", array(
- ":nowtime" => time(), ":remark" => "[" . date("Y-m-d H:i:s", time()) . "] 删除 $reason\n", ":id" => intval($bizId),
- ));
- return $backdata;
- break;
- case "audit":
- //提取必要参数
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
- if (trim($todo) != "allow" && trim($todo) != "refuse") {
- throw new GeneralException("", "没有传递必要的todo参数,或参数值不正确");
- }
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- if (trim($todo) == "refuse" && empty($reason)) {
- throw new GeneralException("", "拒绝驳回必须输入要原因!");
- }
- //前置条件判定
- $recruit = pdo_fetch("select btr.*,bt.certif_confirmed as bt_certif_confirmed
- from biz_trader_recruit btr
- left join biz_trader bt on bt.id=btr.biz_traderid
- where btr.id=" . intval($bizId));
- if (empty($recruit)) {
- throw new GeneralException("", "此id对应的招聘信息记录不存在,请核查bizId是否正确!");
- }
- if (intval($recruit["status"]) != 1) {
- throw new GeneralException("", "招聘信息当前不是【待审核】状态,请核查招聘信息实际状态后再处理!");
- }
- if (intval($recruit["deleted"]) != 0) {
- throw new GeneralException("", "招聘信息已删除了,请核查招聘信息实际状态后再处理!");
- }
- $sqlParams = array();
- $sqlParams[":id"] = intval($bizId);
- $sqlParams[":nowtime"] = time();
- $operatorName = empty($baseUser["login_name"]) ? "" : " " . $baseUser["login_name"] . " ";
- if ((trim($todo) == "refuse")) {
- $sqlParams[":status"] = -1;
- $sqlParams[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 申请被{$operatorName}驳回:$reason \n";
- $lockid = intval($recruit["biz_traderid"]);
- $param = array("recruit" => $recruit, "sqlParams" => $sqlParams);
- $backdata = biz_flkForTrader($lockid, $param, function ($param) {
- $recruit = $param["recruit"];
- $sqlParams = $param["sqlParams"];
- $sqlParams[":biz_traderid"] = intval($recruit["biz_traderid"]);
- $sqlTemp = "";
- $sqlTemp .= " update biz_trader_recruit set updatetime=:nowtime, `status`=:status, remark=concat(:remark,ifnull(remark,'')) where id=:id;";
- $sqlTemp .= " select @numaccountId:=id,@useFreeCount:=`freecount` from biz_trader_numaccount ";
- $sqlTemp .= " where `deleted`=0 and biz_traderid=:biz_traderid and type=1 and biz_catalog=0 and biz_id=:id ";
- $sqlTemp .= " order by id desc limit 1;";
- $sqlTemp .= " update biz_trader_numaccount set updatetime=:nowtime, `deleted`=1 ";
- $sqlParams[":numaccount_remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 驳回后恢复次数 \n";
- $sqlTemp .= " ,remark=concat(:numaccount_remark,ifnull(remark,''))";
- $sqlTemp .= " where id=@numaccountId;";
- $sqlTemp .= " update biz_trader set updatetime=:nowtime ";
- $sqlTemp .= " ,freecount_used=ifnull(freecount_used,0)-ifnull(@useFreeCount,0) ";
- $sqlParams[":freecount_used_remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 驳回后恢复免费次数【";
- $sqlTemp .= " ,freecount_used_remark=concat(:freecount_used_remark,ifnull(@useFreeCount,0),'】招聘记录id=>',:id,'\n',ifnull(freecount_used_remark,'')) ";
- $sqlTemp .= " where id=:biz_traderid;";
- $backdata = pdo_query3($sqlTemp, $sqlParams);
- return $backdata;
- });
- return $backdata;
- } else {
- if (intval($recruit["bt_certif_confirmed"]) < 1) {
- throw new GeneralException("", "此招聘信息对应的商家实名认证还未确认,不应该审核通过,请核查!!");
- }
- $platcutMode = isset($ajaxdata["platcutMode"]) ? $ajaxdata["platcutMode"] : $GPC["platcutMode"];
- $platcutValue = isset($ajaxdata["platcutValue"]) ? $ajaxdata["platcutValue"] : $GPC["platcutValue"];
- switch (intval($platcutMode)) {
- case 0:
- $plat_fetchrate = round(floatval($platcutValue), 2);
- $plat_fetchmoney = round(floatval($recruit["feetotal"]) * $plat_fetchrate / 100, 2);
- $plat_fetchmoney = $plat_fetchmoney < 0 ? 0 : $plat_fetchmoney;
- break;
- case 1:
- $plat_fetchmoney = round(floatval($platcutValue), 2);
- $plat_fetchmoney = $plat_fetchmoney < 0 ? 0 : $plat_fetchmoney;
- $plat_fetchrate = round($plat_fetchmoney / floatval($recruit["feetotal"]) * 100, 2);
- break;
- default:throw new GeneralException("", "platcutMode参数不正确!");
- }
- $sharecutMode = isset($ajaxdata["sharecutMode"]) ? $ajaxdata["sharecutMode"] : $GPC["sharecutMode"];
- $sharecutValue = isset($ajaxdata["sharecutValue"]) ? $ajaxdata["sharecutValue"] : $GPC["sharecutValue"];
- switch (intval($sharecutMode)) {
- case 0:
- $sharer_fetchrate = round(floatval($sharecutValue), 2);
- $sharer_fetchmoney = round($plat_fetchmoney * $sharer_fetchrate / 100, 2);
- $sharer_fetchmoney = $sharer_fetchmoney < 0 ? 0 : $sharer_fetchmoney;
- break;
- case 1:
- $sharer_fetchmoney = round(floatval($sharecutValue), 2);
- $sharer_fetchmoney = $sharer_fetchmoney < 0 ? 0 : $sharer_fetchmoney;
- $sharer_fetchrate = round($sharer_fetchmoney / $plat_fetchmoney * 100, 2);
- break;
- default:throw new GeneralException("", "platcutMode参数不正确!");
- }
- $sqlParams[":status"] = 2;
- $sqlParams[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] {$operatorName}审核通过 \n";
- $sqlParams[":plat_fetchrate"] = $plat_fetchrate;
- $sqlParams[":plat_fetchmoney"] = $plat_fetchmoney;
- $sqlParams[":sharer_fetchrate"] = $sharer_fetchrate;
- $sqlParams[":sharer_fetchmoney"] = $sharer_fetchmoney;
- $sqlParams[":salary"] = (round(floatval($recruit["feetotal"]), 2) - $plat_fetchmoney);
- if ($sqlParams[":salary"] <= 0) {
- throw new GeneralException("", "平台分的有点多了吧,工资都没了");
- }
- if ($sharer_fetchmoney > $plat_fetchmoney) {
- throw new GeneralException("", "分享分销分成金额大于了平台分成金额了");
- }
- $feeper = $sqlParams[":salary"];
- if (intval($recruit["settle_catalog"]) <= 0 && intval($recruit["finish_datetime"]) > intval($recruit["begin_datetime"])) {
- $startWorkDate = strtotime(date("Y-m-d", intval($recruit["begin_datetime"])));
- $days = 0;
- do {
- $days++;
- $startWorkDate = strtotime("+1day", strtotime(date("Y-m-d", $startWorkDate)));
- } while ($startWorkDate <= strtotime(date("Y-m-d", intval($recruit["finish_datetime"]))));
- $feeper = round($sqlParams[":salary"] / $days, 2);
- }
- $sqlParams[":feeper"] = $feeper;
- $backdata = pdo_query("update biz_trader_recruit set updatetime=:nowtime, `status`=:status, remark=concat(:remark,ifnull(remark,''))
- ,plat_fetchrate=:plat_fetchrate,plat_fetchmoney=:plat_fetchmoney
- ,sharer_fetchrate=:sharer_fetchrate,sharer_fetchmoney=:sharer_fetchmoney
- ,salary=:salary,feeper=:feeper
- where id=:id;", $sqlParams);
- return $backdata;
- }
- break;
- case "terminate":
- $recuritIds = isset($ajaxdata["recuritIds"]) ? $ajaxdata["recuritIds"] : $GPC["recuritIds"];
- if (empty($recuritIds)) {
- throw new GeneralException("", "没有传递必要的recuritIds参数");
- }
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $idSet = array();
- foreach ($recuritIds as $item) {
- array_push($idSet, intval($item));
- }
- $idSet = implode(",", $idSet);
- $recuritList = pdo_fetchall("select * from biz_trader_recruit where id in ({$idSet}) ");
- if (empty($recuritList)) {
- throw new GeneralException("", "没有定位到任何招聘记录!");
- }
- $sqlTemp = "";
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":status"] = 3;
- $sqlParam[":biz_traderid"] = intval($bizTrader["id"]);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 终止招聘 $reason \n";
- // $sql = "select * from biz_todowork where biz_recruitid= 476 and ( `status`=-1 or `status`=-3 or `status`>=2 or `status`!=5)";
- // $recruit = pdo_fetch($sql, array());
- // var_dump($recruit);
- // die;
- foreach ($recuritList as $item) {
- if (intval($item["deleted"]) != 0) {
- throw new GeneralException("", "招聘记录已被删除了!");
- }
- if (intval($item["status"]) != 2) {
- throw new GeneralException("", "招聘记录不是进行中已审核状态了!");
- }
- if (intval($item["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "招聘记录不是您发布的!");
- }
- $no_count = "select count(*) as no_count from biz_todowork where biz_recruitid={$item["id"]} and status = 1"; //待审核数量
- $no = pdo_fetch($no_count, array());
- if ($no['no_count'] != 0) {
- throw new GeneralException("", "此招聘还有待录用待审核的报名记录,不能终止招聘,请核查!");
- }
- $ok_count = "select count(*) as ok_count from biz_todowork where biz_recruitid={$item["id"]} and status in (2,3,4,5,90)"; //已录用人数
- $ok = pdo_fetch($ok_count, array());
- $sum_count = " select * from biz_trader_recruit where id={$item["id"]};"; //总录用人数
- $sum = pdo_fetch($sum_count, array());
- $mainRemain2 = $sum['need_total'] - $ok['ok_count'];
- $sqlParam[":recruitId"] = intval($item["id"]);
- $sqlParam[":remain_numtotal"] = $mainRemain2;
- $sqlTemp = " update biz_trader_recruit set updatetime=:nowtime,istop=0 ";
- $sqlTemp .= " ,`status`=:status, remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " where id=:recruitId;";
- $sqlTemp .= " set @placeholder111=:biz_traderid;";
- $sqlTemp .= " set @placeholder222=:remain_numtotal;";
- if (intval($mainRemain2) > 0) {
- $sqlTemp .= " insert into biz_trader_numaccount set createtime=:nowtime";
- $sqlTemp .= " ,biz_traderid=:biz_traderid "; //直接返还到非免费次数即可;账目可平!
- $sqlTemp .= " ,type=0,biz_catalog=1,biz_id=:recruitId,`status`=1,`count`=:remain_numtotal";
- $sqlTemp .= " ,remark='[" . date("Y-m-d H:i:s", time()) . "] 因终止招聘返回剩余次数';";
- }
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- bizbase_recruitWorkLock($item["id"], 0, $sqlParam, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain, $pickDateList, $mainRemain2) {
- $sqlParam = $bizArgs;
- if (intval($mainRemain) != intval($mainRemain2)) {
- throw new GeneralException("", "此招聘还有待录用待审核的报名记录,不能终止招聘,请核查!");
- }
- $sqlParam[":recruitId"] = intval($recruitId);
- $sqlParam[":remain_numtotal"] = intval($mainRemain2);
- $sqlTemp = " update biz_trader_recruit set updatetime=:nowtime,istop=0 ";
- $sqlTemp .= " ,`status`=:status, remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " where id=:recruitId;";
- $sqlTemp .= " set @placeholder111=:biz_traderid;";
- $sqlTemp .= " set @placeholder222=:remain_numtotal;";
- if (intval($mainRemain2) > 0) {
- $sqlTemp .= " insert into biz_trader_numaccount set createtime=:nowtime";
- $sqlTemp .= " ,biz_traderid=:biz_traderid "; //直接返还到非免费次数即可;账目可平!
- $sqlTemp .= " ,type=0,biz_catalog=1,biz_id=:recruitId,`status`=1,`count`=:remain_numtotal";
- $sqlTemp .= " ,remark='[" . date("Y-m-d H:i:s", time()) . "] 因终止招聘返回剩余次数';";
- }
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- });
- }
- return true;
- break;
- case "breakoff":
- $breakdate = isset($ajaxdata["breakdate"]) ? $ajaxdata["breakdate"] : $GPC["breakdate"];
- if (empty($breakdate)) {
- throw new GeneralException("", "没有传递必要的breakdate参数");
- }
- $breakdate = strtotime(date("Y-m-d", strtotime($breakdate)));
- if ($breakdate < strtotime(date("Y-m-d", time()))) {
- throw new GeneralException("", "违约日期不能是今天以前啊");
- }
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $recuritIds = isset($ajaxdata["recuritIds"]) ? $ajaxdata["recuritIds"] : $GPC["recuritIds"];
- $idSet = array();
- foreach ($recuritIds as $item) {
- array_push($idSet, intval($item));
- }
- $idSet = implode(",", $idSet);
- $recuritList = pdo_fetchall("select * from biz_trader_recruit where id in ({$idSet}) ");
- if (empty($recuritList)) {
- throw new GeneralException("", "没有定位到任何招聘记录!");
- }
- $recuritRule = bizbase_fetchBaseConfig("RecuritRule", true);
- $errMsgs = array();
- foreach ($recuritList as $item) {
- try {
- $recuritTitle = $item["title"];
- if (intval($item["deleted"]) != 0) {
- throw new GeneralException("", "招聘记录[{$recuritTitle}]已被删除了!");
- }
- //if (!(intval($item["status"]) == 2 || intval($item["status"]) == 3)) throw new GeneralException("", "招聘记录[{$recuritTitle}]不是进行中已审核状态了!");
- if (intval($item["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "招聘记录[{$recuritTitle}]不是您发布的!");
- }
- $bizArgs = array("bizTrader" => $bizTrader, "recruitInfo" => $item, "breakdate" => $breakdate, "reason" => $reason, "recuritRule" => $recuritRule);
- $backdata = bizbase_recruitWorkLock($item["id"], 0, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain, $pickDateList) {
- $bizTrader = $bizArgs["bizTrader"];
- $recruitInfo = $bizArgs["recruitInfo"];
- $breakdate = $bizArgs["breakdate"];
- $reason = '【' . $bizArgs["reason"] . '】';
- $recuritRule = $bizArgs["recuritRule"];
- $recuritTitle = $recruitInfo["title"];
- if (!isset($pickDateList[$breakdate])) {
- throw new GeneralException("", "招聘记录工作日期中[{$recuritTitle}]不存在违约日期" . date("Y-m-d", $breakdate) . "!");
- }
- $tbreak_cutrate = round($recuritRule["tbreak_cutrate"] / 100, 2);
- $tbreak_cutmoney = round($recruitInfo["feetotal"] * $tbreak_cutrate, 2);
- if ($tbreak_cutmoney <= 0) {
- $tbreak_cutmoney = 0;
- }
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":biz_recruitid"] = $recruitInfo["id"];
- $sqlParam[":breakdate"] = strtotime(date("Y-m-d", $breakdate));
- $sqlParam[":breakDateStart"] = strtotime(date("Y-m-d", $breakdate));
- $sqlParam[":breakDateFinish"] = strtotime(date("Y-m-d 23:59:59", $breakdate));
- $sqlParam[":tdwkstatus111"] = -4; //-1-报名被驳回;-3-被违约 -4-被动取消;
- $sqlParam[":tdwkstatus222"] = -3;
- $sqlParam[":tbreak_cutmoney"] = $tbreak_cutmoney; //商家违约金
- $sqlParam[":remark111"] = "[" . date("Y-m-d H:i:s", time()) . "] 待录用违约处理,返还报名押金 $reason \n";
- $sqlParam[":remark222"] = "[" . date("Y-m-d H:i:s", time()) . "] 已录用违约处理,返还报名押金及商家支付违约金 $reason \n";
- $sqlTemp = "";
- //-------------待录用-------------------//
- //退还押金
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select biz_workerid , :nowtime , 0 , enroll_premoney, 1, 7 , id, :remark111 ";
- $sqlTemp .= " from biz_todowork";
- $sqlTempE111 = " where `workteam_mode`=0 and `status`=1 and biz_recruitid=:biz_recruitid";
- $sqlTempE111 .= " and todo_begindate>=:breakDateStart and todo_begindate<=:breakDateFinish";
- $sqlTemp .= $sqlTempE111 . ";";
- //后置修正状态
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime ";
- $sqlTemp .= " ,`status`=:tdwkstatus111, remark=concat(:remark111,ifnull(remark,''))";
- $sqlTemp .= $sqlTempE111 . ";";
- //-------------已录用-------------------//
- //------违约记录
- $sqlTemp .= " insert into biz_message_queue( createtime, biz_catalog, biz_id)";
- $sqlTemp .= " select :nowtime, 2, tdwk.id";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid "; //已结束工作了就不能再被违约了,都干完活了就进入结算流程了
- $sqlTempE111 = " where tdwk.`workteam_mode`=0 and tdwk.`status`>=2 and tdwk.`status`<4 and tdwk.biz_recruitid=:biz_recruitid";
- $sqlTempE111 .= " and tdwk.todo_begindate>=:breakDateStart and tdwk.todo_begindate<=:breakDateFinish";
- $sqlTemp .= $sqlTempE111 . ";";
- //退还押金
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select tdwk.biz_workerid , :nowtime , 0 , tdwk.enroll_premoney, 1, 7 , tdwk.id, :remark222 ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= $sqlTempE111 . ";";
- //商家冻结费用解冻
- $sqlTemp .= " insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select btr.biz_traderid, :nowtime , 0 , btr.feetotal, 1, 6 , tdwk.id, :remark222 ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= $sqlTempE111 . ";";
- //商家支付会员违约金
- $sqlTemp .= " insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select btr.biz_traderid, :nowtime , 1 , :tbreak_cutmoney, 1, 9 , tdwk.id, :remark222 ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= $sqlTempE111 . ";";
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select tdwk.biz_workerid , :nowtime , 0 , :tbreak_cutmoney, 1, 6 , tdwk.id, :remark222 ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= $sqlTempE111 . ";";
- //必须后置
- $sqlTemp .= " update biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " set tdwk.updatetime=:nowtime, tdwk.`status`=:tdwkstatus222, tdwk.remark=concat(:remark222,ifnull(tdwk.remark,''))";
- $sqlTemp .= $sqlTempE111 . ";";
- //--------------------------------------------------------------------------------------
- $sqlTemp .= " insert into biz_recruit_break set createtime=:nowtime ";
- $sqlTemp .= " , biz_recruitid=:biz_recruitid, `breakdate`=:breakdate";
- $sqlTemp .= " , remark=:remark222;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- });
- } catch (Throwable $ex) {
- array_push($errMsgs, $ex->getMessage());
- }
- }
- if (!empty($errMsgs)) {
- throw new GeneralException("hasError", implode(" ", $errMsgs));
- }
- return true;
- break;
- case "grabDelegate":
- $recruitId = isset($ajaxdata["recruitId"]) ? $ajaxdata["recruitId"] : $GPC["recruitId"];
- if (intval($recruitId) <= 0) {
- throw new GeneralException("", "没有传递必要的recruitId参数");
- }
- $bizArgs = array("handleMode" => $handleMode, "bizTrader2" => $bizTrader2);
- $backdata = bizbase_recruitWorkLock($recruitId, 0, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain, $pickDateList) {
- $bizTrader2 = $bizArgs["bizTrader2"];
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- if (intval($recruitInfo["status"]) != 2) {
- throw new GeneralException("", "当前招聘信息已不是进行中状态,无法授权!");
- }
- $nowDelegate = bizTrader2_getRecuritDelegate($recruitId);
- if (!empty($nowDelegate)) {
- if (intval($nowDelegate["biz_trader2id"]) != intval($bizTrader2["id"])) {
- throw new GeneralException("otherGrabed", "其他人已抢先获取到了此招聘的授权!");
- }
- } else {
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":biz_recruitid"] = $recruitInfo["id"];
- $sqlParam[":biz_trader2id"] = intval($bizTrader2["id"]);
- $sqlParam[":biz_traderid"] = intval($recruitInfo["biz_traderid"]);
- $sqlParam[":finish_datetime"] = strtotime("+12hour");
- $sqlParam[":remark"] = "授权";
- $sqlTemp = " insert into biz_recruit_delegate set createtime=:nowtime ";
- $sqlTemp .= " , biz_recruitid=:biz_recruitid, biz_trader2id=:biz_trader2id";
- $sqlTemp .= " , biz_traderid=:biz_traderid";
- $sqlTemp .= " , `begin_datetime`=:nowtime, `finish_datetime`=:finish_datetime";
- $sqlTemp .= " , remark=:remark;";
- $sqlTemp .= " select brd.*,btr.title as recuritTitle,bt.company_name ";
- $sqlTemp .= " from biz_recruit_delegate brd ";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=brd.biz_recruitid ";
- $sqlTemp .= " left join biz_trader bt on bt.id=btr.biz_traderid ";
- $sqlTemp .= " where brd.id=LAST_INSERT_ID();";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- $nowDelegate = $dataset[count($dataset) - 1][0];
- if (empty($nowDelegate)) {
- throw new GeneralException("", "异常!");
- }
- }
- $nowDelegate["begin_datetime"] = date("Y-m-d H:i:s", $nowDelegate["begin_datetime"]);
- $nowDelegate["finish_datetime"] = date("Y-m-d H:i:s", $nowDelegate["finish_datetime"]);
- return $nowDelegate;
- });
- return $backdata;
- case "feeCalculate":
- //提取必要参数
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- //前置条件判定
- $recruit = pdo_fetch("select btr.*,bt.certif_confirmed as bt_certif_confirmed
- from biz_trader_recruit btr
- left join biz_trader bt on bt.id=btr.biz_traderid
- where btr.id=" . intval($bizId));
- if (empty($recruit)) {
- throw new GeneralException("", "此id对应的招聘信息记录不存在,请核查bizId是否正确!");
- }
- $platcutMode = isset($ajaxdata["platcutMode"]) ? $ajaxdata["platcutMode"] : $GPC["platcutMode"];
- $platcutValue = isset($ajaxdata["platcutValue"]) ? $ajaxdata["platcutValue"] : $GPC["platcutValue"];
- switch (intval($platcutMode)) {
- case 0:
- $plat_fetchrate = round(floatval($platcutValue), 2);
- $plat_fetchmoney = round(floatval($recruit["feetotal"]) * $plat_fetchrate / 100, 2);
- $plat_fetchmoney = $plat_fetchmoney < 0 ? 0 : $plat_fetchmoney;
- break;
- case 1:
- $plat_fetchmoney = round(floatval($platcutValue), 2);
- $plat_fetchmoney = $plat_fetchmoney < 0 ? 0 : $plat_fetchmoney;
- $plat_fetchrate = round($plat_fetchmoney / floatval($recruit["feetotal"]) * 100, 2);
- break;
- default:throw new GeneralException("", "platcutMode参数不正确!");
- }
- $sharecutMode = isset($ajaxdata["sharecutMode"]) ? $ajaxdata["sharecutMode"] : $GPC["sharecutMode"];
- $sharecutValue = isset($ajaxdata["sharecutValue"]) ? $ajaxdata["sharecutValue"] : $GPC["sharecutValue"];
- switch (intval($sharecutMode)) {
- case 0:
- $sharer_fetchrate = round(floatval($sharecutValue), 2);
- $sharer_fetchmoney = round($plat_fetchmoney * $sharer_fetchrate / 100, 2);
- $sharer_fetchmoney = $sharer_fetchmoney < 0 ? 0 : $sharer_fetchmoney;
- break;
- case 1:
- $sharer_fetchmoney = round(floatval($sharecutValue), 2);
- $sharer_fetchmoney = $sharer_fetchmoney < 0 ? 0 : $sharer_fetchmoney;
- $sharer_fetchrate = round($sharer_fetchmoney / $plat_fetchmoney * 100, 2);
- break;
- default:throw new GeneralException("", "platcutMode参数不正确!");
- }
- if (is_nan($plat_fetchrate)) {
- $plat_fetchrate = "";
- }
- if (is_nan($plat_fetchmoney)) {
- $plat_fetchmoney = "";
- }
- if (is_nan($sharer_fetchrate)) {
- $sharer_fetchrate = "";
- }
- if (is_nan($sharer_fetchmoney)) {
- $sharer_fetchmoney = "";
- }
- if ($plat_fetchrate == INF) {
- $plat_fetchrate = "∞";
- }
- if ($plat_fetchmoney == INF) {
- $plat_fetchmoney = "∞";
- }
- if ($sharer_fetchrate == INF) {
- $sharer_fetchrate = "∞";
- }
- if ($sharer_fetchmoney == INF) {
- $sharer_fetchmoney = "∞";
- }
- $salary_money = round(floatval($recruit["feetotal"]) - floatval($plat_fetchmoney), 2);
- if (is_nan($salary_money)) {
- $salary_money = "";
- }
- if ($salary_money == INF) {
- $salary_money = "∞";
- }
- $backdata = array(
- "plat_fetchrate" => $plat_fetchrate,
- "plat_fetchmoney" => $plat_fetchmoney,
- "sharer_fetchrate" => $sharer_fetchrate,
- "sharer_fetchmoney" => $sharer_fetchmoney,
- "salary_money" => $salary_money,
- );
- return $backdata;
- break;
- case "markshareByWorker":
- $recruitId = isset($ajaxdata["recruitId"]) ? $ajaxdata["recruitId"] : $GPC["recruitId"];
- if (empty($recruitId)) {
- throw new GeneralException("", "没有传递必要的recruitId参数");
- }
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "此id对应的招聘信息记录不存在,请核查recruitId是否正确!");
- }
- $sharerWorkerId = isset($ajaxdata["sharerWorkerId"]) ? $ajaxdata["sharerWorkerId"] : $GPC["sharerWorkerId"];
- if (empty($sharerWorkerId)) {
- throw new GeneralException("", "没有传递必要的sharerWorkerId参数");
- }
- $sharerWorker = pdo_fetch("select * from biz_worker where id=" . intval($sharerWorkerId));
- if (empty($sharerWorker)) {
- throw new GeneralException("", "分享者id没有对应的记录,请核查!");
- }
- $sqlTemp = "";
- $sqlTemp .= " set @handle_id=0; ";
- $sqlTemp .= " select @handle_id:=id from biz_sharelink bsl";
- $sqlTemp .= " where bsl.deleted=0 and bsl.biz_catalog=:biz_catalog and bsl.biz_id=:biz_id and bsl.toerid=:toerid; ";
- $sqlTemp .= " insert into biz_sharelink(`biz_catalog`, biz_id, toerid, fromerid, remark)";
- $sqlTemp .= " select :biz_catalog,:biz_id,:toerid,:fromerid,:remark";
- $sqlTemp .= " from dual where ifnull(@handle_id,0)=0 ;";
- $sqlTemp .= " update biz_sharelink set fromerid=:fromerid, remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " where ifnull(@handle_id,0)>0 and id=@handle_id;";
- $backdata = pdo_query3($sqlTemp, array(
- ":biz_catalog" => 0,
- ":biz_id" => $recruitInfo["id"],
- ":toerid" => $bizWorker["id"],
- ":fromerid" => $sharerWorker["id"],
- ":remark" => "[" . date("Y-m-d H:i:s", time()) . "] 绑定分享者" . $sharerWorker["true_name"] . "(ID:" . $sharerWorker["id"] . ") \n",
- ));
- return $backdata;
- break;
- default:
- throw new GeneralException("", "不支持的handleMode!");
- }
- }
- function bizbase_recruitFieldTrans($fromSubSystem, $direct, $data)
- {
- if ($direct == "FtoB") { //前端到后端数据转换
- $data["requirements"] = json_encode($data["requirements"]);
- } else { //后端到前端数据转换
- $data["createtime"] = (intval($data["createtime"]) <= 0) ? "" : date("Y-m-d H:i:s", $data["createtime"]);
- $data["updatetime"] = (intval($data["updatetime"]) <= 0) ? "" : date("Y-m-d H:i:s", $data["updatetime"]);
- $data["settleType"] = (intval($data["settle_catalog"]) == 0 && intval($data["finish_datetime"]) > intval($data["begin_datetime"])); //1=完工结
- $data["catalogName"] = $data["settleType"] ? "完工结" : (intval($data["settle_catalog"]) == 0 ? "日结" : "批量招聘");
- $data["begin_datetime22"] = $data["begin_datetime"];
- if (strtotime(date("Y-m-d", $data["begin_datetime22"])) < strtotime(date("Y-m-d", time()))) {
- $data["begin_datetime22"] = strtotime(date("Y-m-d", time()));
- }
- $data["begin_datetime22"] = date("Y-m-d", $data["begin_datetime22"]);
- $data["begin_datetime"] = (intval($data["begin_datetime"]) <= 0) ? "" : date("Y-m-d", $data["begin_datetime"]);
- $data["finish_datetime"] = (intval($data["finish_datetime"]) <= 0) ? "" : date("Y-m-d", $data["finish_datetime"]);
- $data["requirements"] = @json_decode($data["requirements"], true);
- $data["work_addr1"] = @json_decode($data["work_addr1"], true);
- $data["requirements"] = empty($data["requirements"]) ? array() : $data["requirements"];
- $data["remark"] = trim(explode("\n", $data["remark"])[0]);
- $data["statusName"] = bizbase_recruitStatusName($data["status"]);
- //不用后端拼接,前端自己拼,否则提交保存就绝对化了 $data["profile_photo"] = bizbase_buildImgURL($data["profile_photo"]);
- }
- return $data;
- }
- function bizbase_recruitFieldAttrMap($fromSubSystem, $direct, $data)
- {
- $mapTable = array(
- "urlImage" => "profile_photo",
- "headline" => "title",
- "kind" => "work_typename",
- "work" => "work_duty",
- "recruitingNumbers" => "need_total",
- "salary" => "price",
- "startTime" => "begin_datetime",
- "finishTime" => "finish_datetime",
- "startHour" => "begin_hour",
- "finisHour" => "finish_hour",
- "askFor" => "requirements",
- "companyName" => "employer_name",
- "linkman" => "linker_name",
- "phone" => "linker_phone",
- "companyAddress" => "employer_addr",
- "longitude" => "work_addr_lng",
- "latitude" => "work_addr_lat",
- "job" => "work_detail",
- "remark" => "work_remark",
- );
- if (intval($fromSubSystem) !== intval(SUBSYS_PLAT_PCWEB)) {
- $mapTable = array(
- );
- }
- foreach ($mapTable as $front => $backend) {
- if ($direct == "FtoB") {
- $src = $front;
- $des = $backend;
- } else {
- $src = $backend;
- $des = $front;
- }
- $data[$des] = (isset($data[$src]) ? $data[$src] : null);unset($data[$src]);
- }
- //附加特殊情况
- if ($direct == "FtoB") {
- } else {
- $data["arrivalTime"] = $data["startTime"];
- $data["workingHours"] = $data["startTime"] . "--" . $data["finishTime"] . ";" . $data["startHour"] . "--" . $data["finisHour"];
- $data["statusCode"] = intval($data["status"]);
- $data["status"] = bizbase_recruitStatusName($data["statusCode"]);
- switch (intval($data["statusCode"])) {
- case 5:
- $data["status"] = "手动下架";
- break;
- case 2:
- case 4:
- if (strtotime($data["finishTime"]) < strtotime(date("Y-m-d", time()))) {
- $data["status"] = "到期自动下架 [" . $data["status"] . "]";
- }
- break;
- }
- }
- return $data;
- }
- function bizbase_recruitStatusName($statusCode)
- {
- switch (intval($statusCode)) {
- case 0:
- $statusName = "待提交";
- break;
- case 1:
- $statusName = "待审核";
- break;
- case 2:
- $statusName = "已通过";
- break;
- case -1:
- $statusName = "被驳回";
- break;
- case 3:
- $statusName = "已终止";
- break;
- case -2:
- $statusName = "已违约中断";
- break;
- case 4:
- $statusName = "手工下架";
- break;
- case 5:
- $statusName = "招满自动下架";
- break;
- case 6:
- $statusName = "过期自动下架";
- break;
- default:
- throw new GeneralException("", "招聘信息的状态码不正确!!");
- }
- return $statusName;
- }
- function bizbase_recruitDelegateInfo($data)
- {
- if (!empty(trim($data["delegate_info"]))) { //非空即有记录
- $delegateInfo = explode("-", $data["delegate_info"]);
- if (count($delegateInfo) < 7) {
- throw new GeneralException("", "传递的delegate_info参数值不正确!");
- }
- //brd.id,'-',brd.begin_datetime,'-',brd.finish_datetime,'-',bt.id,'-',bu.id,'-',bu.mobile,'-',bt.true_name
- $delegateId = $delegateInfo[0];
- $beginDatetime = $delegateInfo[1];
- $finishDatetime = $delegateInfo[2];
- $bizTrader2Id = $delegateInfo[3];
- $bizTrader2buId = $delegateInfo[4];
- $bizTrader2buPhone = $delegateInfo[5];
- $bizTrader2Name = "";
- for ($iii = 6; $iii < count($delegateInfo); $iii++) {
- if ($iii > 6) {
- $bizTrader2Name .= "-";
- }
- $bizTrader2Name .= $delegateInfo[$iii];
- }
- }
- return array(
- "delegateId" => empty($delegateId) ? "" : $delegateId,
- "beginDatetime" => empty($beginDatetime) ? "" : date("Y-m-d H:i:s", $beginDatetime),
- "finishDatetime" => empty($finishDatetime) ? "" : date("Y-m-d H:i:s", $finishDatetime),
- "bizTrader2Id" => empty($bizTrader2Id) ? "" : $bizTrader2Id,
- "bizTrader2buId" => empty($bizTrader2buId) ? "" : $bizTrader2buId,
- "bizTrader2buPhone" => empty($bizTrader2buPhone) ? "" : $bizTrader2buPhone,
- "bizTrader2Name" => empty($bizTrader2Name) ? "" : $bizTrader2Name,
- );
- }
- function bizbase_recruitWorkLock($recruitId, $workDate, $bizArgs, $bizHandle)
- {
- $params = array("recruitId" => $recruitId, "workDate" => $workDate, "bizArgs" => $bizArgs, "bizHandle" => $bizHandle);
- $result = biz_flkForRecruit($recruitId, $params, function ($params) {
- $recruitId = $params["recruitId"];
- $workDate = $params["workDate"];
- if (intval($workDate) <= 0) {
- $workDate = 0;
- }
- $bizArgs = $params["bizArgs"];
- $bizHandle = $params["bizHandle"];
- $recuritRule = bizbase_fetchBaseConfig("RecuritRule", true);
- //---------------------------------------
- $sqlParam = array();
- $sqlParam[":id"] = intval($recruitId);
- $sqlParam[":workDateStart"] = strtotime(date("Y-m-d", $workDate));
- $sqlParam[":workDateFinish"] = strtotime(date("Y-m-d 23:59:59", $workDate));
- $sqlParam[":todayStart"] = strtotime(date("Y-m-d", time()));
- $sqlTemp = "";
- $sqlTemp .= " select btr.* ";
- $sqlTemp .= " ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=:id and btdw.`status`=1) as main_worker_total1"; //总待录用数
- //$sqlTemp .= " ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=:id and ( btdw.`status`=-1 or btdw.`status`=-3 or btdw.`status`>=2 )) as main_worker_total2"; //有效人次数
- $sqlTemp .= " ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=:id and ( btdw.`status`=-3 or btdw.`status`>=2 )) as main_worker_total2"; //有效人次数 -1 被驳回
- $sqlTemp .= " ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=:id and btdw.`status`=1 "; //当日待审数
- $sqlTemp .= " and btdw.todo_begindate>=:workDateStart and btdw.todo_begindate<=:workDateFinish ) as date_worker_total1";
- $sqlTemp .= " ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=:id and ( btdw.`status`=-1 or btdw.`status`=-3 or btdw.`status`>=2 ) "; //当日有效人次数
- $sqlTemp .= " and btdw.todo_begindate>=:workDateStart and btdw.todo_begindate<=:workDateFinish ) as date_worker_total2";
- $sqlTemp .= " ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=:id and ( btdw.`status`=-1 or btdw.`status`=-3 or btdw.`status`>=2 ) ";
- $sqlTemp .= " and btdw.todo_begindate<:todayStart ) as history_worker_total"; //历史有效人次数
- $sqlTemp .= " from biz_trader_recruit btr ";
- $sqlTemp .= " where btr.id=:id;";
- $recruit = pdo_fetch($sqlTemp, $sqlParam);
- if (empty($recruit)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- if (intval($recruit["deleted"]) != 0) {
- throw new GeneralException("", "招聘记录信息已被删除,请核查!");
- }
- $remainNumTotal = intval($recruit["need_total"]);
- $mainRemain = $remainNumTotal - intval($recruit["main_worker_total2"]);
- if ($mainRemain < 0) {
- throw new GeneralException("", "怎么出现了总体报冒了的情况呢(含次数扣减),请核查!");
- }
- //还可溢报的总人数(非单天)
- $mainRemain = intval($mainRemain * intval($recuritRule["enroll_overate"])) - intval($recruit["main_worker_total1"]);
- //还可录用的总人数(非单天)
- $mainRemain2 = $remainNumTotal - intval($recruit["main_worker_total2"]);
- $breakdateList = pdo_fetchall("select breakdate from biz_recruit_break where biz_recruitid=" . intval($recruit["id"]));
- $breakdateSet = array();
- foreach ($breakdateList as $breakdate) {
- $breakdateSet[strtotime(date("Y-m-d", $breakdate["breakdate"]))] = date("Y-m-d", $breakdate["breakdate"]);
- }
- $pickDateList = array();
- if (intval($recruit["settle_catalog"]) <= 0) {
- $startWorkDate = strtotime(date("Y-m-d", $recruit["begin_datetime"]));
- if (!isset($breakdateSet[$startWorkDate])) {
- $pickDateList[$startWorkDate] = date("Y-m-d", $startWorkDate);
- }
- $lastDayNeedTotal = $remainNumTotal;
- } else {
- $restRemain = $remainNumTotal - intval($recruit["history_worker_total"]);
- if ($restRemain < 0) {
- throw new GeneralException("", "怎么出现了历史报冒了的情况呢(含次数扣减),请核查!");
- }
- if (intval($recruit["need_perday"]) <= 0) {
- throw new GeneralException("", "怎么出现了每日需求人数小于等于0的情况呢,请核查!");
- }
- $days = ceil($restRemain / intval($recruit["need_perday"]));
- $lastDayNeedTotal = $restRemain % intval($recruit["need_perday"]);
- if ($lastDayNeedTotal <= 0) {
- $lastDayNeedTotal = intval($recruit["need_perday"]);
- }
- if (strtotime(date("Y-m-d", $recruit["begin_datetime"])) <= strtotime(date("Y-m-d", time()))) {
- $startWorkDate = strtotime(date("Y-m-d", time()));
- } else {
- $startWorkDate = strtotime(date("Y-m-d", $recruit["begin_datetime"]));
- }
- do {
- if (!isset($breakdateSet[$startWorkDate])) {
- $pickDateList[$startWorkDate] = date("Y-m-d", $startWorkDate);
- }
- $startWorkDate = strtotime("+1day", strtotime(date("Y-m-d", $startWorkDate)));
- } while (count($pickDateList) < $days);
- }
- //----------------------------------------------------------------------
- if (empty($pickDateList) && (intval($recruit["status"]) == 2)) {
- $sqlParam = array();
- $sqlParam[":id"] = $recruit["id"];
- $sqlParam[":nowtime"] = time();
- $sqlParam[":status"] = -2; //0-待提交;1-已提交待审核发布;2-已审核;-1-被驳回;3-已终止;-2-违约中断;
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 违约中断,已无可报名日期 \n";
- $sqlTemp = " update biz_trader_recruit set updatetime=:nowtime,istop=0 ";
- $sqlTemp .= " ,`status`=:status, remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " where id=:id;";
- pdo_query($sqlTemp, $sqlParam);
- }
- //-------------------------------------------------------------------------
- if (intval($workDate) > 0 && $bizArgs["handleMode"] != "enrollCancel") {
- if (intval($recruit["settle_catalog"]) <= 0) { //非批量模式下,单天无限制
- $dateRemain = 999; //还可溢报的总人数(单天)
- $dateRemain2 = 999; //还可录用的总人数(单天)
- } else { //批量模式下,单天限制提取逻辑
- $workDate = strtotime(date("Y-m-d", $workDate));
- if ($workDate < strtotime(date("Y-m-d", time()))) {
- throw new GeneralException("", "报名日期不能小于今天啊!");
- }
- $workDateMatch = false;
- $workDateMatchIndex = 0;
- foreach ($pickDateList as $pickdateKey => $pickdateVal) {
- $workDateMatchIndex++;
- if ($pickdateKey == $workDate) {
- $workDateMatch = true;
- break;
- }
- }
- if ($workDateMatch == false) {
- throw new GeneralException("", "报名日期不在可选择的日期范围内!");
- }
- $need_perday = intval($recruit["need_perday"]);
- if ($workDateMatchIndex == count($pickDateList)) {
- $need_perday = $lastDayNeedTotal;
- }
- $dateRemain = $need_perday - intval($recruit["date_worker_total2"]);
- if ($dateRemain < 0) {
- throw new GeneralException("", "怎么出现了单天报冒了的情况呢333,请核查!");
- }
- //还可溢报的总人数(单天)
- $dateRemain = intval($dateRemain * intval($recuritRule["enroll_overate"])) - intval($recruit["date_worker_total1"]);
- //还可录用的总人数(单天)
- $dateRemain2 = $need_perday - intval($recruit["date_worker_total2"]);
- }
- }
- $result = $bizHandle($recruitId, $workDate, $bizArgs, $mainRemain, $dateRemain, $restRemain, $pickDateList, $mainRemain2, $dateRemain2);
- return $result;
- });
- return $result;
- }
- function bizbase_recruitAboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC)
- {
- if (intval($baseUser["subsystem"]) == SUBSYS_LABOUR_MINA) {
- $bizWorker = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL_MINA) {
- $bizTrader = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL2_MINA) {
- $bizTrader2 = $bizUser;
- }
- switch ($handleMode) {
- case "fetchallByPlater":
- case "fetchallByWorker":
- case "fetchallByTrader":
- case "fetchallByTrader2":
- case "fetchallByPublicer":
- case "fetchallDelegateByTrader":
- $sqlBody = "";
- $sqlSelectExt = "";
- $exportExcel = isset($ajaxdata["exportExcel"]) ? $ajaxdata["exportExcel"] : $GPC["exportExcel"];
- $sqlParam = array();
- //查询处理
- $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
- $query = empty(trim($exportExcel)) ? $query : json_decode($query, true);
- // $pageData = pdo_fetchall("select * from biz_trader_recruit order by id desc ", array());
- // print_r($pageData);die;
- if (empty($query) && !is_array($query)) { //验证一下query信息集
- $query = " and 1=1 ";
- } else {
- $queryNew = " and 1=1 ";
- foreach ($query as $fdName => $fdValue) {
- switch ($fdName) {
- case "title":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_title";
- $queryNew .= " and (btr.title like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "companyName":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_companyName";
- $queryNew .= " and (bt.company_name like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "workCity":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_workCity";
- $queryNew .= " and (btr.work_addr like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "workArea":
- if (empty($fdValue)) {
- continue;
- }
- $queryNew .= " and ( 1=0 ";
- foreach ($fdValue as $index => $subquery) {
- $paramName = ":qy_workArea_" . intval($index);
- $queryNew .= " or btr.work_addr like concat('%',{$paramName},'%') ";
- $sqlParam[$paramName] = $subquery;
- }
- $queryNew .= " ) ";
- break;
- case "traceMode":
- if (empty(trim($fdValue))) {
- continue;
- }
- switch (intval($fdValue)) {
- case 1:
- if (!empty($bizWorker)) {
- $queryNew .= " and (select count(*) from biz_worker_trace where biz_workerid=" . intval($bizWorker["id"]) . " and biz_catalog=0 and biz_id=btr.id)>0 ";
- }
- break;
- }
- break;
- case "settleType":
- if (empty(trim($fdValue))) {
- continue;
- }
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and ( btr.`settle_catalog`=1 or (btr.`settle_catalog`=0 and btr.finish_datetime=btr.begin_datetime)) ";
- break;
- case 2:
- $queryNew .= " and (btr.`settle_catalog`=0 and btr.finish_datetime>btr.begin_datetime) ";
- break;
- }
- break;
- case "genderMode":
- if (empty(trim($fdValue))) {
- continue;
- }
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and (btr.`gender_mode`=1) ";
- break;
- case 2:
- $queryNew .= " and (btr.`gender_mode`=2) ";
- break;
- }
- break;
- case "nowUrgent":
- if (empty(trim($fdValue))) {
- continue;
- }
- $tempTemp = " ( ";
- // $tempTemp .=" btr.`settle_catalog`=0 and btr.`urgent_level`>0 ";
- $tempTemp .= " btr.`urgent_level`=1 ";
- // $tempTemp .=" and btr.finish_datetime<=btr.begin_datetime and btr.begin_datetime=".strtotime(date('Y-m-d',time()));
- // $tempTemp .=" and btr.begin_datetime=".strtotime(date('Y-m-d',time()));
- //这里是测试
- $tempTemp .= " ) ";
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and ( urgent_level=1 ) ";
- $sqlParam[":query_nowdate_new_ma"] = date('YmdHi', (time() - 60 * 60 * 24 * 3));
- break;
- case 2:
- $queryNew .= " and ( urgent_level=0 )";
- $sqlParam[":query_nowdate_new_ma"] = date('YmdHi', time());
- break;
- }
- break;
- case "status":
- $queryStatusCode = intval($fdValue);
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and btr.`status`=0 ";
- break;
- case 2:
- $queryNew .= " and btr.`status`=1 ";
- break;
- case 3:
- $queryNew .= " and btr.`status`>=2 ";
- break;
- case 4:
- $queryNew .= " and btr.`status`=-1 ";
- break;
- case 91: //待上线
- $queryNew .= " and (btr.`status`<2) ";
- break;
- case 92: //招聘中
- $queryNew .= " and (btr.`status`=2) ";
- break;
- case 93: //其他
- $queryNew .= " and (btr.`status`>2 or btr.`status`=-1 or btr.`status`=-2) ";
- break;
- //判断查看招聘 ,开工日期,没有到开工日期就在查看招聘
- // 到开工日期就在查看工作
- }
- break;
- case "startDate":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and btr.begin_datetime>=" . strtotime(date("Y-m-d", strtotime($fdValue))) . " ";
- break;
- case "trader2Id":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and brd.biz_trader2id=" . intval($fdValue) . " ";
- break;
- case "verifyTime":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and brd.finish_datetime>=" . strtotime($fdValue) . " ";
- break;
- case "finishDate":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and btr.begin_datetime<=" . strtotime(date("Y-m-d", strtotime($fdValue))) . " ";
- break;
- case "mobile":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_mobile";
- $queryNew .= " and (bu.mobile like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "downed":
- if (empty(trim($fdValue))) {
- continue;
- }
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and btr.`status`<>4 ";
- break;
- case 2:
- $queryNew .= " and btr.`status`=4 ";
- break;
- }
- break;
- case "isDsiplay":
- if ($fdValue == 1) {
- $queryNew .= " and btr.`status` = 2 ";
- } elseif ($fdValue == 0) {
- $queryNew .= " and btr.`status` <> 2 ";
- } else {
- continue;
- }
- break;
- }
- }
- $query = $queryNew;
- }
- $sqlWorkerTotal = " (select count(*) from biz_todowork btdw where btdw.biz_recruitid=btr.id and ( btdw.`status`>=2 or btdw.`status`=-1 or btdw.`status`=-3 ) ) ";
- $sqlParam[":select_nowdate"] = strtotime(date("Y-m-d", time()));
- switch ($handleMode) {
- case "fetchallByWorker":
- case "fetchallByPublicer":
- // 这是是修改 会员端
- $query .= " and ((btr.settle_catalog=0 and btr.begin_time_new >= :query_nowdate_new_ma) or (btr.settle_catalog=1)) ";
- $query .= " and {$sqlWorkerTotal}<btr.need_total "; //肯定筛选掉已录满(含次数扣减)的招聘记录
- if (!empty($bizWorker)) { //非商户用户,则屏蔽当前用户已报名的招聘记录
- //$query.=" and (select count(*) from biz_todowork btdw where btdw.biz_recruitid=btr.id and btdw.biz_workerid=".intval($bizWorker["id"])." ) <=0 ";
- }
- break;
- case "fetchallByTrader":
- case "fetchallDelegateByTrader":
- $query .= " and btr.biz_traderid=" . intval($bizTrader["id"]) . " ";
- break;
- case "fetchallByTrader2":
- $query .= " and brd.biz_trader2id=" . intval($bizTrader2["id"]) . " ";
- break;
- }
- $nowLngLat = isset($ajaxdata["nowLngLat"]) ? $ajaxdata["nowLngLat"] : $GPC["nowLngLat"];
- if (!empty($nowLngLat)) {
- if (!preg_match("/^\d+\.\d+,\d+\.\d+$/", $nowLngLat)) {
- throw new GeneralException("", "nowLngLat经纬度格式不正确(经度,纬度)");
- }
- $sqlParam[":nowlng"] = floatval(explode(",", $nowLngLat)[0]);
- $sqlParam[":nowlat"] = floatval(explode(",", $nowLngLat)[1]);
- $sqlSelectExt .= ' ,(st_distance_sphere(point(CAST(btr.work_addr_lng AS decimal(11,8)),CAST(btr.work_addr_lat AS decimal(11,8))),point(CAST(:nowlng AS decimal(11,8)),CAST(:nowlat AS decimal(11,8))))) as distance ';
- }
- //排序处理
- $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
- switch (intval($orderby)) {
- case 0: //最新发布倒序排序
- $orderby = " order by btr.istop desc,btr.id desc ";
- break;
- case 1: //距离排序
- if (empty($nowLngLat) || !preg_match("/^\d+\.\d+,\d+\.\d+$/", $nowLngLat)) {
- throw new GeneralException("", "没有传递必要的nowLngLat参数,或者经纬度格式不正确(经度,纬度)");
- }
- $orderby = " order by btr.istop desc,distance asc ";
- break;
- case 2: //薪资大小排序
- $orderby = " order by btr.istop desc,btr.salary desc ";
- break;
- case 91: //最新发布倒序排序
- $orderby = " order by btr.id desc ";
- break;
- case 92: //足迹倒序
- $orderby = " order by wktr.id desc ";
- break;
- default:
- $orderby = " order by btr.istop desc,btr.id desc ";
- break;
- }
- // print_r($sqlBody);die;
- //构建sql串
- // $sqlBody.=" from biz_trader_recruit as btr ";
- $sqlBody .= " FROM (SELECT *, CONCAT(FROM_UNIXTIME(begin_datetime,\"%Y%m%d\"), REPLACE(begin_hour,':','')) AS begin_time_new FROM biz_trader_recruit ) btr ";
- $sqlBody .= " left join biz_trader bt on bt.id=btr.biz_traderid ";
- $sqlBody .= " left join base_user bu on bu.id=bt.base_userid ";
- $sqlBody .= " left join biz_recruit_delegate brd on brd.biz_recruitid=btr.id and brd.finish_datetime>" . time();
- $sqlBody .= " left join biz_trader2 bt2 on bt2.id=brd.biz_trader2id ";
- $sqlBody .= " left join base_user bt2bu on bt2bu.id=bt2.base_userid ";
- $sqlBody .= " left join biz_worker_trace wktr on wktr.biz_workerid=" . intval($bizWorker["id"]) . " and wktr.biz_catalog=0 and wktr.biz_id=btr.id ";
- $sqlBody .= " where 1=1 and btr.`deleted`=0 ";
- $sqlBody .= $query;
- //查询sql及统计sql
- $sqlFetch = " select btr.* ";
- $sqlFetch .= " ,round((btr.finish_datetime-:select_nowdate)/86400) as restdays ";
- $sqlFetch .= " ,bt.id as btid,bt.company_name,bt.catalog as bt_catalog,bt.certif_confirmed as bt_certif_confirmed ";
- $sqlFetch .= " ,bu.id as buid,bu.mobile bu_mobile ";
- $sqlFetch .= " ,concat(brd.id,'-',brd.begin_datetime,'-',brd.finish_datetime,'-',bt2.id,'-',bt2bu.id,'-',bt2bu.mobile,'-',bt2.true_name) as delegate_info ";
- $sqlFetch .= " ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=btr.id and ( btdw.`status`>=2 ) ) as now_worker_total";
- $sqlFetch .= " ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=btr.id and ( btdw.`status`>=1 ) ) as now_worker_total000"; //已报及有效报名人数/无效报名次数扣减总数
- $sqlFetch .= " ,(select count(*) from biz_todowork btdw where btdw.biz_recruitid=btr.id and ( btdw.`status`=-1 or btdw.`status`=-3 ) ) as num_abnormal_total ";
- $sqlFetch .= " {$sqlSelectExt} {$sqlBody} {$orderby} ";
- // print_r($sqlFetch);
- // print_r($sqlParam);die;
- $exportExcel = isset($ajaxdata["exportExcel"]) ? $ajaxdata["exportExcel"] : $GPC["exportExcel"];
- if (trim($exportExcel) != "true") { //正常输出
- $start = (intval($pageIndex) - 1) * $pageSize;
- $sqlFetch .= " limit {$start},{$pageSize} ";
- $pageData = pdo_fetchall($sqlFetch, $sqlParam);
- // print_r($sqlFetch);
- // print_r($sqlParam);
- // die;
- foreach ($pageData as &$item) { //后端到前端数据转换
- $delegateInfo = bizbase_recruitDelegateInfo($item);
- foreach ($delegateInfo as $key => $val) {
- $item["delegate_" . $key] = $val;
- }
- unset($item["delegate_info"]);
- $item = bizbase_recruitFieldTrans(1, "BtoF", $item); //状态码 映射
- //----------------------------------------------
- if ($handleMode == "fetchallByTrader" && intval($queryStatusCode) == 92) {
- $sqlTemp = "";
- $sqlTemp .= " set @handle_id=0; ";
- $sqlTemp .= " select @handle_id:=id from biz_basetrace bbt";
- $sqlTemp .= " where bbt.deleted=0 and bbt.biz_catalog=:biz_catalog and bbt.biz_id=:recruitid and bbt.biz_usertype=:biz_usertype and bbt.biz_userid=:biz_userid; ";
- $sqlTemp .= " insert into biz_basetrace(`biz_catalog`, biz_id, biz_usertype, biz_userid, count)";
- $sqlTemp .= " select :biz_catalog,:recruitid,:biz_usertype,:biz_userid, 1";
- $sqlTemp .= " from dual where ifnull(@handle_id,0)=0 ;";
- $backdata = pdo_query3($sqlTemp, array(
- ":recruitid" => $item["id"],
- ":biz_catalog" => 2,
- ":biz_usertype" => 1,
- ":biz_userid" => $bizTrader["id"],
- ));
- }
- $bizId = $item['id'];
- $item['todo_list'] = [];
- if ($item['now_worker_total000'] > 0) {
- $sql = "select bw.id,bw.profile_photo from biz_trader_recruit as btr
- join biz_todowork as bt on btr.id=bt.biz_recruitid and bt.`status`>=1
- join biz_worker as bw on bw.id =bt.biz_workerid
- where btr.id=:btrid limit 3";
- $item['todo_list'] = pdo_fetchall($sql, array(
- ":btrid" => intval($bizId),
- ));
- }
- }
- $sqlSummary = " select count(*) as count " . $sqlBody;
- unset($sqlParam[":select_nowdate"]);
- unset($sqlParam[":nowlng"]);
- unset($sqlParam[":nowlat"]);
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- return array(
- "pageData" => $pageData,
- "count" => intval($sumData["count"]),
- );
- } else {
- $nowlng = $sqlParam[":nowlng"];
- $nowlat = $sqlParam[":nowlat"];
- $select_nowdate = $sqlParam[":select_nowdate"];
- unset($sqlParam[":nowlng"]);
- unset($sqlParam[":nowlat"]);
- unset($sqlParam[":select_nowdate"]);
- $sqlSummary = " select count(*) as count " . $sqlBody;
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- $recordTotal = intval($sumData["count"]);
- $pageTotal = ceil($recordTotal / $pageSize);
- if (!empty($nowlng)) {
- $sqlParam[":nowlng"] = $nowlng;
- }
- if (!empty($nowlat)) {
- $sqlParam[":nowlat"] = $nowlat;
- }
- if (!empty($select_nowdate)) {
- $sqlParam[":select_nowdate"] = $select_nowdate;
- }
- $args = array(
- "pageIndex" => 0, "pageSize" => $pageSize, "pageTotal" => $pageTotal,
- "sqlFetch" => $sqlFetch, "sqlParam" => $sqlParam,
- );
- $csvTitle = array("标题", "商家名称", "联系电话", "人数", "费用", "开始日期");
- baseexcel_exportCsv("招聘列表", $csvTitle, $args, function ($args) {
- $pageIndex = intval($args["pageIndex"]) + 1;
- $args["pageIndex"] = $pageIndex;
- $pageSize = intval($args["pageSize"]);
- $pageTotal = intval($args["pageTotal"]);
- if ($pageIndex > $pageTotal) {
- return false;
- }
- $sqlFetch = $args["sqlFetch"];
- $sqlParam = $args["sqlParam"];
- $start = (intval($pageIndex) - 1) * $pageSize;
- $pageData111 = pdo_fetchall($sqlFetch . " limit {$start},{$pageSize} ", $sqlParam);
- $pageData = array();
- foreach ($pageData111 as &$rowdata) { //数据转换/映射
- $rowdata["sn"] = base_buildSNById("RP", $rowdata["id"]);
- $id = base_fetchIdBySN($rowdata["sn"]);
- $pageData[] = array(
- $rowdata["title"], $rowdata["company_name"], "\t" . $rowdata["bu_mobile"],
- $rowdata["need_total"], round($rowdata["feetotal"], 2),
- "\t" . date("Y-m-d H:i:s", $rowdata["begin_datetime"]),
- );
- }
- return array("pagedata" => $pageData, "args" => $args);
- });
- }
- break;
- default:throw new GeneralException("", "不支持的handleMode!");
- }
- }
- /**********************工作流程相关逻辑**************************************/
- function bizbase_todoWorkEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC)
- {
- if (intval($baseUser["subsystem"]) == SUBSYS_LABOUR_MINA) {
- $bizWorker = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL_MINA) {
- $bizTrader = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL2_MINA) {
- $bizTrader2 = $bizUser;
- }
- switch ($handleMode) {
- case "UpdateIsDelete":
- $trader_recruit_id = isset($ajaxdata["trader_recruit_id"]) ? $ajaxdata["trader_recruit_id"] : $GPC["trader_recruit_id"];
- if (intval($trader_recruit_id) <= 0) {
- throw new GeneralException("", "没有传递必要的recruitId参数或参数值不正确");
- }
- $sqlParam = array();
- $sqlParam[":id"] = $trader_recruit_id;
- $sqlTemp = "";
- $sqlTemp .= " update biz_trader_recruit set is_delete = 1";
- $sqlTemp .= " where id=:id;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "openTeam":
- throw new GeneralException("", "非常抱歉,本平台已不再支持团组报名,请直接单独报名吧!");
- bizbase_verifyUserAccount($bizWorker, true, "无法开团组队");
- $recruitId = isset($ajaxdata["recruitId"]) ? $ajaxdata["recruitId"] : $GPC["recruitId"];
- if (intval($recruitId) <= 0) {
- throw new GeneralException("", "没有传递必要的recruitId参数或参数值不正确");
- }
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- $planDotime = isset($ajaxdata["planDotime"]) ? $ajaxdata["planDotime"] : $GPC["planDotime"];
- $planDotime = strtotime($planDotime);
- if (intval($recruitInfo["settle_catalog"]) <= 0) {
- $planDotime = intval($recruitInfo["begin_datetime"]);
- } else if (intval($planDotime) <= 0) {
- throw new GeneralException("", "批量招聘模式下必须传递报名干活的日期planDotime,请核查!");
- }
- if (strtotime(date("Y-m-d", $planDotime)) < strtotime(date("Y-m-d", time()))) {
- throw new GeneralException("", "报名日期不能小于今日啊,请核查!");
- }
- //$sharerWorkerId = isset($ajaxdata["sharerWorkerId"]) ? $ajaxdata["sharerWorkerId"] : $GPC["sharerWorkerId"];
- $sharerWorkerId = pdo_fetchcolumn("select fromerid from biz_sharelink
- where deleted=0 and biz_catalog=0 and biz_id=:biz_id and toerid=:toerid order by id desc limit 1;", array(
- ":biz_id" => $recruitInfo["id"],
- ":toerid" => $bizWorker["id"],
- ));
- $sharerWorkerId = intval($sharerWorkerId);
- if ($sharerWorkerId == intval($bizWorker["id"])) {
- $sharerWorkerId = 0;
- }
- if ($sharerWorkerId > 0) {
- $sharerWorker = pdo_fetch("select * from biz_worker where id=" . intval($sharerWorkerId));
- if (empty($sharerWorker)) {
- throw new GeneralException("", "分享者id没有对应的记录,请核查!");
- }
- }
- $bizArgs = array("handleMode" => $handleMode, "bizWorker" => $bizWorker, "recruitInfo" => $recruitInfo, "sharerWorkerId" => $sharerWorkerId);
- $backdata = bizbase_recruitWorkLock($recruitId, $planDotime, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain) {
- $handleMode = $bizArgs["handleMode"];
- $bizWorker = $bizArgs["bizWorker"];
- $recruitInfo = $bizArgs["recruitInfo"];
- $sharerWorkerId = $bizArgs["sharerWorkerId"];
- if ($mainRemain <= 0) {
- throw new GeneralException("hasMainOverflow", "此招聘已报满");
- }
- if ($dateRemain <= 0) {
- throw new GeneralException("hasDateOverflow", "此招聘报名日期已报满!");
- }
- if ($mainRemain < 2) {
- throw new GeneralException("hasMainLessTeam", "此招聘总体上已不足2人名额,已不足开团报名,请单独报名吧!");
- }
- if ($dateRemain < 2) {
- throw new GeneralException("hasDateLessTeam", "此招聘报名日期已不足2人名额,已不足开团报名,请单独报名吧!");
- }
- bizbase_todoWorkEnrollVerify($handleMode, $bizWorker, $recruitInfo, $planDotime);
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":biz_recruitid"] = intval($recruitId);
- $sqlParam[":biz_workerid"] = intval($bizWorker["id"]);
- $sqlParam[":share_workerid"] = intval($sharerWorkerId);
- $sqlParam[":plan_dotime"] = intval($planDotime);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 团长开团 \n";
- $sqlTemp = "";
- $sqlTemp .= " insert into biz_todoworkteam set createtime=:nowtime";
- $sqlTemp .= " ,biz_recruitid=:biz_recruitid, leader_workerid=:biz_workerid ";
- $sqlTemp .= " ,plan_dotime=:plan_dotime, `status`=1, remark=:remark;";
- $sqlTemp .= " insert into biz_todowork set createtime=:nowtime,workteamid=LAST_INSERT_ID() ";
- $sqlTemp .= " ,biz_recruitid=:biz_recruitid, biz_workerid=:biz_workerid, share_workerid=:share_workerid ";
- $sqlTemp .= " ,workteam_mode=1, `teamstatus`=2, teamremark=:remark";
- $sqlTemp .= " ,todo_begindate=:plan_dotime, remark=:remark;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- });
- return $backdata;
- break;
- case "joinTeam":
- throw new GeneralException("", "非常抱歉,本平台已不再支持团组报名,请直接单独报名吧!");
- bizbase_verifyUserAccount($bizWorker, true, "无法参团组队");
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid参数或参数值不正确");
- }
- $teamInfo = pdo_fetch("select * from biz_todoworkteam where id=" . intval($teamid));
- if (empty($teamInfo)) {
- throw new GeneralException("", "团组id没有对应的记录,请核查!");
- }
- if (intval($teamInfo["status"]) > 1) {
- throw new GeneralException("", "此团组已不是可参团状态,请核查!");
- }
- $recruitId = intval($teamInfo["biz_recruitid"]);
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- $planDotime = intval($teamInfo["plan_dotime"]);
- if (strtotime(date("Y-m-d", $planDotime)) < strtotime(date("Y-m-d", time()))) {
- throw new GeneralException("", "报名日期不能小于今日啊,请核查!");
- }
- $sharerWorkerId = intval($teamInfo["leader_workerid"]);
- if ($sharerWorkerId == intval($bizWorker["id"])) {
- throw new GeneralException("", "您不能在参团您开的团啊,请核查!");
- }
- $bizArgs = array("handleMode" => $handleMode, "bizWorker" => $bizWorker, "recruitInfo" => $recruitInfo, "teamInfo" => $teamInfo, "sharerWorkerId" => $sharerWorkerId);
- $backdata = bizbase_recruitWorkLock($recruitId, $planDotime, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain) {
- $handleMode = $bizArgs["handleMode"];
- $bizWorker = $bizArgs["bizWorker"];
- $recruitInfo = $bizArgs["recruitInfo"];
- $teamInfo = $bizArgs["teamInfo"];
- $sharerWorkerId = $bizArgs["sharerWorkerId"];
- if ($mainRemain <= 0) {
- throw new GeneralException("hasMainOverflow", "此招聘已报满");
- }
- if ($dateRemain <= 0) {
- throw new GeneralException("hasDateOverflow", "此招聘报名日期已报满!");
- }
- bizbase_todoWorkEnrollVerify($handleMode, $bizWorker, $recruitInfo, $planDotime, 0, intval($teamInfo["id"]));
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":workteamid"] = intval($teamInfo["id"]);
- $sqlParam[":biz_recruitid"] = intval($recruitId);
- $sqlParam[":biz_workerid"] = intval($bizWorker["id"]);
- $sqlParam[":share_workerid"] = intval($sharerWorkerId);
- $sqlParam[":plan_dotime"] = intval($planDotime);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 参团 \n";
- $sqlTemp = "";
- $sqlTemp .= " insert into biz_todowork set createtime=:nowtime,workteamid=:workteamid ";
- $sqlTemp .= " ,biz_recruitid=:biz_recruitid, biz_workerid=:biz_workerid, share_workerid=:share_workerid ";
- $sqlTemp .= " ,workteam_mode=2, `teamstatus`=1, teamremark=:remark";
- $sqlTemp .= " ,todo_begindate=:plan_dotime, remark=:remark;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- });
- return $backdata;
- break;
- case "joinAudit":
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid参数或参数值不正确");
- }
- $teamInfo = pdo_fetch("select * from biz_todoworkteam where id=" . intval($teamid));
- if (empty($teamInfo)) {
- throw new GeneralException("", "团组id没有对应的记录,请核查!");
- }
- if (intval($teamInfo["status"]) > 1) {
- throw new GeneralException("", "此团组已不是成团进行中状态,请核查!");
- }
- $recruitId = intval($teamInfo["biz_recruitid"]);
- $planDotime = intval($teamInfo["plan_dotime"]);
- $leader_workerid = intval($teamInfo["leader_workerid"]);
- if ($leader_workerid != intval($bizWorker["id"])) {
- throw new GeneralException("", "这不是您开的团啊,请核查!");
- }
- $workerId = isset($ajaxdata["workerId"]) ? $ajaxdata["workerId"] : $GPC["workerId"];
- if (intval($workerId) <= 0) {
- throw new GeneralException("", "没有传递必要的workerId参数或参数值不正确");
- }
- if ($workerId == intval($bizWorker["id"])) {
- throw new GeneralException("", "怎么能审核自己呢,请核查!");
- }
- $todowork = pdo_fetch("select * from biz_todowork where workteamid=:workteamid and biz_workerid=:biz_workerid", array(
- ":workteamid" => $teamid,
- ":biz_workerid" => $workerId,
- ));
- if (empty($todowork)) {
- throw new GeneralException("", "没有定位到此组员的参团记录,请核查!");
- }
- if (intval($todowork["workteam_mode"]) != 2) {
- throw new GeneralException("", "此组员不是参团模式,请核查!");
- }
- if (intval($todowork["teamstatus"]) != 1) {
- throw new GeneralException("", "已不是参团待审核状态,请核查!");
- }
- if (intval($todowork["status"]) >= 1) {
- throw new GeneralException("", "团组状态已确定不能再进行参团审核处理,请核查!");
- }
- $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":id"] = intval($todowork["id"]);
- switch (trim($todo)) {
- case "allow":
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 同意参团 $reason \n";
- $sqlParam[":teamstatus"] = 2; //参团状态:0-待参团;1-已提交参团;2-已入团;-1-参团被驳回;-2-参团被踢出;-3-已解散;
- break;
- case "refuse":
- if (empty($reason)) {
- throw new GeneralException("", "拒绝理由不能为空啊");
- }
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 拒绝参团 $reason \n";
- $sqlParam[":teamstatus"] = -1; //参团状态:0-待参团;1-已提交参团;2-已入团;-1-参团被驳回;-2-参团被踢出;-3-已解散;
- break;
- default:throw new GeneralException("", "不支持的todo!");
- }
- $sqlTemp = "";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`teamstatus`=:teamstatus";
- $sqlTemp .= " ,teamremark=concat(:remark,ifnull(teamremark,'')), remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " where id=:id;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "removeMember":
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid参数或参数值不正确");
- }
- $teamInfo = pdo_fetch("select * from biz_todoworkteam where id=" . intval($teamid));
- if (empty($teamInfo)) {
- throw new GeneralException("", "团组id没有对应的记录,请核查!");
- }
- if (intval($teamInfo["status"]) > 1) {
- throw new GeneralException("", "此团组已不是成团进行中状态,请核查!");
- }
- $recruitId = intval($teamInfo["biz_recruitid"]);
- $planDotime = intval($teamInfo["plan_dotime"]);
- $leader_workerid = intval($teamInfo["leader_workerid"]);
- if ($leader_workerid != intval($bizWorker["id"])) {
- throw new GeneralException("", "这不是您开的团啊,请核查!");
- }
- $workerId = isset($ajaxdata["workerId"]) ? $ajaxdata["workerId"] : $GPC["workerId"];
- if (intval($workerId) <= 0) {
- throw new GeneralException("", "没有传递必要的workerId参数或参数值不正确");
- }
- if ($workerId == intval($bizWorker["id"])) {
- throw new GeneralException("", "怎么能踢出自己呢,请核查!");
- }
- $todowork = pdo_fetch("select * from biz_todowork where workteamid=:workteamid and biz_workerid=:biz_workerid", array(
- ":workteamid" => $teamid,
- ":biz_workerid" => $workerId,
- ));
- if (empty($todowork)) {
- throw new GeneralException("", "没有定位到此组员的参团记录,请核查!");
- }
- if (intval($todowork["workteam_mode"]) != 2) {
- throw new GeneralException("", "此组员不是参团模式,请核查!");
- }
- if (intval($todowork["teamstatus"]) != 0 && intval($todowork["teamstatus"]) != 1) {
- throw new GeneralException("", "团组状态已确定不能踢出了,请核查!");
- }
- if (intval($todowork["status"]) >= 1) {
- throw new GeneralException("", "团组状态已确定不能踢出了,请核查!");
- }
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":id"] = intval($todowork["id"]);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 被踢出团组 \n";
- $sqlTemp = "";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`teamstatus`=-2";
- $sqlTemp .= " ,teamremark=concat(:remark,ifnull(teamremark,'')), remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " where id=:id;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "dismiss":
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid参数或参数值不正确");
- }
- $teamInfo = pdo_fetch("select * from biz_todoworkteam where id=" . intval($teamid));
- if (empty($teamInfo)) {
- throw new GeneralException("", "团组id没有对应的记录,请核查!");
- }
- if (intval($teamInfo["status"]) > 1) {
- throw new GeneralException("", "此团组已不是成团进行中状态,请核查!");
- }
- $recruitId = intval($teamInfo["biz_recruitid"]);
- $planDotime = intval($teamInfo["plan_dotime"]);
- $leader_workerid = intval($teamInfo["leader_workerid"]);
- if ($leader_workerid != intval($bizWorker["id"])) {
- throw new GeneralException("", "这不是您开的团啊,请核查!");
- }
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":workteamid"] = intval($teamid);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 团组解散 \n";
- $sqlTemp = "";
- $sqlTemp .= " update biz_todoworkteam set updatetime=:nowtime,`status`=2, remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " where id=:workteamid;";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`teamstatus`=-3";
- $sqlTemp .= " ,teamremark=concat(:remark,ifnull(teamremark,'')), remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " where workteamid=:workteamid;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "fetchTeamByPlater":
- case "fetchTeamByTrader":
- case "fetchTeamByWorker":
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid参数或参数值不正确");
- }
- $teamInfo = pdo_fetch("select tdwkt.*,btr.biz_traderid as tdwk_biz_traderid
- ,btr.title as recruit_title
- ,bt.company_name as bt_company_name
- ,lwk.true_name as lwk_name,lbu.mobile as lbu_mobile,lwk.profile_photo as lwkprofile_photo
- from biz_todoworkteam tdwkt
- left join biz_trader_recruit btr on btr.id=tdwkt.biz_recruitid
- left join biz_trader bt on bt.id=btr.biz_traderid
- left join biz_worker lwk on lwk.id=tdwkt.leader_workerid
- left join base_user lbu on lbu.id=lwk.base_userid
- where tdwkt.id=" . intval($teamid));
- if (empty($teamInfo)) {
- throw new GeneralException("", "团组id没有对应的记录,请核查!");
- }
- if (!empty($bizTrader)) {
- if (intval($teamInfo["tdwk_biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "此团组不是报的您家的名,请核查!");
- }
- }
- $teamInfo["iamleader"] = ($teamInfo["leader_workerid"] == intval($bizWorker["id"]));
- $teamInfo["createtime"] = date("Y-m-d H:i:s", $teamInfo["createtime"]);
- $teamInfo["remark"] = trim(explode("\n", $teamInfo["remark"])[0]);
- $teamInfo["statusName"] = bizbase_todoWorkTeamStatusName(intval($teamInfo["status"]));
- return $teamInfo;
- break;
- case "fetchByPlater":
- case "fetchByTrader":
- case "fetchByTrader2":
- case "fetchByWorker":
- case "fetchTeamFollowByPlater":
- case "fetchTeamFollowByTrader":
- case "fetchTeamFollowByWorker":
- $workid = isset($ajaxdata["workid"]) ? $ajaxdata["workid"] : $GPC["workid"];
- if (intval($workid) <= 0) {
- throw new GeneralException("", "没有传递必要的workid参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select tdwk.*,btr.biz_traderid as tdwk_biz_traderid
- ,btr.title as recruit_title,btr.salary as btr_salary,btr.feetotal as btr_feetotal,btr.plat_fetchmoney as btr_plat_fetchmoney,btr.sharer_fetchmoney as btr_sharer_fetchmoney
- ,btr.begin_datetime as btr_begindatetime,btr.finish_datetime as btr_finishdatetime
- ,btr.linker_phone as btr_linker_phone,btr.begin_hour as btr_begin_hour,btr.finish_hour as btr_finish_hour
- ,bt.company_name as bt_company_name,bt.linker_gender as bt_linker_gender,btbu.mobile as btbu_mobile
- ,(case when ifnull(bt2.true_name,'')<>'' then bt2.true_name else bt2.nickname end) as bt2_true_name
- ,wk.id as wkid,(case when wk.true_name<>'' then wk.true_name else wk.nickname end) as wk_name,bu.mobile as bu_mobile,wk.profile_photo as wkprofile_photo,wk.idcard as wk_idcard
- ,(case when lwk.true_name<>'' then lwk.true_name else lwk.nickname end) as lwk_name,lbu.mobile as lbu_mobile,lwk.profile_photo as lwkprofile_photo
- ,swk.id as swkid,(case when swk.true_name<>'' then swk.true_name else swk.nickname end) as swk_name,sbu.mobile as sbu_mobile
- ,wkapa.id as wkapa_id,wkapa.deleted as wkapa_deleted,wkapa.result_level as wk_appraiseLevel,wkapa.result_desc as wk_appraiseRemark
- ,tdapa.id as tdapa_id,tdapa.deleted as tdapa_deleted,tdapa.result_level as td_appraiseLevel,tdapa.result_desc as td_appraiseRemark
- ,(select concat(brd.id,'-',brd.begin_datetime,'-',brd.finish_datetime,'-',bt.id,'-',bu.id,'-',bu.mobile,'-',bt.true_name)
- from biz_recruit_delegate brd
- left join biz_trader2 bt on bt.id=brd.biz_trader2id
- left join base_user bu on bu.id=bt.base_userid
- where brd.biz_recruitid=tdwk.biz_recruitid and brd.finish_datetime>:verify_datetime
- limit 1) as delegate_info
- ,tdwkat2.`biz_catalog` as tdwk_settlecatalog
- from biz_todowork tdwk
- left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- left join biz_trader bt on bt.id=btr.biz_traderid
- left join base_user btbu on btbu.id=bt.base_userid
- left join biz_trader2 bt2 on bt2.id=tdwk.settled_userid
- left join biz_worker lwk on lwk.id=tdwkt.leader_workerid
- left join base_user lbu on lbu.id=lwk.base_userid
- left join biz_worker wk on wk.id=tdwk.biz_workerid
- left join base_user bu on bu.id=wk.base_userid
- left join biz_worker swk on swk.id=tdwk.share_workerid
- left join base_user sbu on sbu.id=swk.base_userid
- left join biz_appraisal wkapa on wkapa.biz_catalog=1 and wkapa.biz_id=tdwk.id
- left join biz_appraisal tdapa on tdapa.biz_catalog=2 and tdapa.biz_id=tdwk.id
- left join biz_trader_account tdwkat1 on tdwk.`status`=5 and tdwkat1.`status`=1 and tdwkat1.`type`=0 and tdwkat1.biz_id=tdwk.id and (tdwkat1.`biz_catalog`=1 or tdwkat1.`biz_catalog`=4)
- left join biz_trader_account tdwkat2 on tdwk.`status`=5 and tdwkat2.`status`=1 and tdwkat2.`type`=1 and tdwkat2.biz_id=tdwkat1.id and (tdwkat2.`biz_catalog`=6 or tdwkat2.`biz_catalog`=7)
- where tdwk.id=:tdwkId", array(
- ":tdwkId" => intval($workid),
- ":verify_datetime" => time(),
- ));
- if (empty($workInfo)) {
- throw new GeneralException("", "团组成员项id没有对应的记录,请核查!");
- }
- if (!empty($bizTrader)) {
- if (intval($workInfo["tdwk_biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "此订单不是报的您家的名,请核查!");
- }
- }
- if (!empty($bizTrader2)) {
- bizTrader2_verifyRecuritDelegate($bizTrader2, $workInfo["biz_recruitid"]);
- }
- $delegateInfo = bizbase_recruitDelegateInfo($workInfo);
- foreach ($delegateInfo as $key => $val) {
- $workInfo["delegate_" . $key] = $val;
- }
- unset($workInfo["delegate_info"]);
- //----------------------
- $workInfo["tdwk_settlecatalogName"] = "";
- switch (intval($workInfo["tdwk_settlecatalog"])) {
- case 6:
- $workInfo["tdwk_settlecatalogName"] = "商家订单整体结算";
- break;
- case 7:
- $workInfo["tdwk_settlecatalogName"] = "平台代商家结算订单";
- break;
- }
- $workInfo["worksn"] = base_buildSNById("WK", $workInfo["id"], 12, 12);
- $workInfo["btr_salary"] = round(floatval($workInfo["btr_salary"]), 2);
- $workInfo["btr_feetotal"] = round(floatval($workInfo["btr_feetotal"]), 2);
- $workInfo["wkapa_id"] = intval($workInfo["wkapa_id"]); //小于等于0则会员未评价商家,否则已评价
- $workInfo["wk_appraiseLevel"] = intval($workInfo["wkapa_deleted"]) > 0 ? -1 : intval($workInfo["wk_appraiseLevel"]);
- $workInfo["tdapa_id"] = intval($workInfo["tdapa_id"]); //小于等于0则商家未评价会员,否则已评价
- $workInfo["td_appraiseLevel"] = intval($workInfo["tdapa_deleted"]) > 0 ? -1 : intval($workInfo["td_appraiseLevel"]);
- $workInfo["itisme"] = ($workInfo["wkid"] == intval($bizWorker["id"]));
- $workInfo["iamleader"] = ($workInfo["lwkid"] == intval($bizWorker["id"]));
- $workInfo["statusName"] = bizbase_todoWorkStatusName($workInfo["status"]);
- $workInfo["teamrole"] = bizbase_todoWorkTeamRoleName($workInfo["workteam_mode"]);
- $workInfo["memberRealed"] = empty(trim($workInfo["wk_idcard"])) ? false : true;
- $workInfo["createtime"] = date("Y-m-d H:i:s", $workInfo["createtime"]);
- $workInfo["btr_begindatetime"] = date("Y-m-d", $workInfo["btr_begindatetime"]);
- $workInfo["btr_finishdatetime"] = (intval($workInfo["btr_finishdatetime"]) <= 0 ? "" : date("Y-m-d", $workInfo["btr_finishdatetime"]));
- $workInfo["worked_begintime"] = intval($workInfo["worked_begintime"]) <= 0 ? "" : date("Y-m-d H:i:s", $workInfo["worked_begintime"]);
- $workInfo["worked_finishtime"] = intval($workInfo["worked_finishtime"]) <= 0 ? "" : date("Y-m-d H:i:s", $workInfo["worked_finishtime"]);
- $workInfo["settled_time"] = intval($workInfo["settled_time"]) <= 0 ? "" : date("Y-m-d H:i:s", $workInfo["settled_time"]);
- $workInfo["settled_modeName"] = intval($workInfo["settled_mode"]) <= 0 ? "商家自核销" : "现场经理核销";
- $workInfo["settled_userName"] = intval($workInfo["settled_mode"]) <= 0 ? $workInfo["bt2_true_name"] : $workInfo["bt_company_name"];
- $workInfo["remarks"] = explode("\n", $workInfo["remark"]);
- $workInfo["remark"] = trim(explode("\n", $workInfo["remark"])[0]);
- $workInfo["teamremark"] = trim(explode("\n", $workInfo["teamremark"])[0]);
- $workInfo["teamstatusName"] = bizbase_todoWorkSubTeamStatusName(intval($workInfo["teamstatus"]));
- return $workInfo;
- break;
- case "singleEnroll":
- bizbase_verifyUserAccount($bizWorker, true, "无法报名");
- $recruitId = isset($ajaxdata["recruitId"]) ? $ajaxdata["recruitId"] : $GPC["recruitId"];
- if (intval($recruitId) <= 0) {
- throw new GeneralException("", "没有传递必要的recruitId参数或参数值不正确");
- }
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- $planDotime = isset($ajaxdata["planDotime"]) ? $ajaxdata["planDotime"] : $GPC["planDotime"];
- $planDotime = strtotime($planDotime);
- if (intval($recruitInfo["settle_catalog"]) <= 0) {
- $planDotime = intval($recruitInfo["begin_datetime"]);
- } else if (intval($planDotime) <= 0) {
- throw new GeneralException("", "批量招聘模式下必须传递报名干活的日期planDotime,请核查!");
- }
- if (strtotime(date("Y-m-d", $planDotime)) < strtotime(date("Y-m-d", time()))) {
- throw new GeneralException("", "报名日期不能小于今日啊,请核查!");
- }
- //$sharerWorkerId = isset($ajaxdata["sharerWorkerId"]) ? $ajaxdata["sharerWorkerId"] : $GPC["sharerWorkerId"];
- $sharerWorkerId = pdo_fetchcolumn("select fromerid from biz_sharelink
- where deleted=0 and biz_catalog=0 and biz_id=:biz_id and toerid=:toerid order by id desc limit 1;", array(
- ":biz_id" => $recruitInfo["id"],
- ":toerid" => $bizWorker["id"],
- ));
- $sharerWorkerId = intval($sharerWorkerId);
- if ($sharerWorkerId == intval($bizWorker["id"])) {
- $sharerWorkerId = 0;
- }
- if ($sharerWorkerId > 0) {
- $sharerWorker = pdo_fetch("select * from biz_worker where id=" . intval($sharerWorkerId));
- if (empty($sharerWorker)) {
- throw new GeneralException("", "分享者id没有对应的记录,请核查!");
- }
- }
- $accountInfo = bizbase_workerAccountInfo($bizWorker);
- $balance = round(floatval($accountInfo["balance"]), 2);
- $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"];
- $recuritRule = bizbase_fetchBaseConfig("RecuritRule", true);
- $bizArgs = array("handleMode" => $handleMode, "bizWorker" => $bizWorker, "recruitInfo" => $recruitInfo, "sharerWorkerId" => $sharerWorkerId, "balance" => $balance, "minaCode" => $minaCode, "recuritRule" => $recuritRule);
- $backdata = bizbase_recruitWorkLock($recruitId, $planDotime, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain, $pickDateList, $mainRemain2, $dateRemain2) {
- $handleMode = $bizArgs["handleMode"];
- $bizWorker = $bizArgs["bizWorker"];
- $recruitInfo = $bizArgs["recruitInfo"];
- $sharerWorkerId = $bizArgs["sharerWorkerId"];
- $money_balance = $bizArgs["balance"];
- $minaCode = $bizArgs["minaCode"];
- $recuritRule = $bizArgs["recuritRule"];
- if ($mainRemain2 <= 0) {
- throw new GeneralException("hasMainOverflow", "此招聘已录满,已不能再报名");
- }
- if ($mainRemain <= 0) {
- throw new GeneralException("hasMainOverflow", "此招聘已报满,暂时不能报名");
- }
- if ($dateRemain2 <= 0) {
- throw new GeneralException("hasDateOverflow", "此招聘报名日期已录满,已不能再报名");
- }
- if ($dateRemain <= 0) {
- throw new GeneralException("hasDateOverflow", "此招聘报名日期已报满,暂时不能报名");
- }
- bizbase_todoWorkEnrollVerify($handleMode, $bizWorker, $recruitInfo, $planDotime);
- if (intval($recruitInfo["enroll_audit"]) <= 0) { //不需要审核报名
- throw new GeneralException("", "非常抱歉,本平台已不再支持报名后直接录取模式!");
- $sqlTemp = "";
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":biz_recruitid"] = intval($recruitId);
- $sqlParam[":biz_workerid"] = intval($bizWorker["id"]);
- $sqlParam[":share_workerid"] = intval($sharerWorkerId);
- $sqlParam[":plan_dotime"] = strtotime(date("Y-m-d", $planDotime));
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 单独报名并直通 \n";
- $sqlParam[":status"] = 2; //0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消
- $sqlParam[":cancel_remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 已被其他商家及时录取,本待录用申请被取消 \n";
- $sqlParam[":cancel_status"] = -4; //0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消
- $sqlParam[":cancel_teamstatus"] = -4; //0-待参团;1-已提交参团;2-已入团;-1-参团被驳回;-2-参团被踢出;-3-已解散;-4-被动取消;
- $sqlParam[":workDateStart"] = intval($recruitInfo["begin_datetime"]);
- $sqlParam[":workDateFinish"] = $sqlParam[":workDateStart"];
- if (intval($recruitInfo["settle_catalog"]) <= 0//普通招聘的多日招聘
- && intval($recruitInfo["begin_datetime"]) < intval($recruitInfo["finish_datetime"])) {
- $sqlParam[":workDateFinish"] = intval($recruitInfo["finish_datetime"]);
- }
- if (intval($recruitInfo["settle_catalog"]) > 0) {
- $sqlParam[":workDateStart"] = strtotime(date("Y-m-d", $planDotime));
- $sqlParam[":workDateFinish"] = strtotime(date("Y-m-d 23:59:59", $planDotime));
- }
- $sqlParam[":nowSettleCatalog"] = intval($recruitInfo["settle_catalog"]);
- $sqlParam[":plandoDateStart"] = strtotime(date("Y-m-d", $planDotime));
- $sqlParam[":plandoDateFinish"] = strtotime(date("Y-m-d 23:59:59", $planDotime));
- $sqlTemp .= " update biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid ";
- $sqlTemp .= " set tdwk.updatetime=:nowtime, tdwk.`status`=:cancel_status, tdwk.`teamstatus`=:cancel_teamstatus ";
- $sqlTemp .= " , tdwk.remark=concat(:cancel_remark,ifnull(tdwk.remark,'')), tdwk.teamremark=concat(:cancel_remark,ifnull(tdwk.teamremark,'')) ";
- $sqlTemp .= " where tdwk.biz_workerid=:biz_workerid and ( (tdwk.`workteam_mode`<=0 and tdwk.`status`=1) or (tdwk.`workteam_mode`>0 and tdwk.`teamstatus`>=2 and tdwkt.`status`=3) )
- and(
- (tdwk.todo_begindate>=:plandoDateStart and tdwk.todo_begindate<=:plandoDateFinish)
- or(:nowSettleCatalog=0 and tdwk.todo_begindate>=:workDateStart and tdwk.todo_begindate<=:workDateFinish)
- or( btr.settle_catalog<=0 and btr.finish_datetime>btr.begin_datetime and (
- (btr.begin_datetime>=:workDateStart and btr.begin_datetime<=:workDateFinish)
- or(btr.begin_datetime<=:workDateStart and btr.finish_datetime>=:workDateFinish)
- or(btr.finish_datetime>=:workDateStart and btr.finish_datetime<=:workDateFinish)
- ))
- )
- ;";
- $sqlTemp .= " insert into biz_todowork set createtime=:nowtime ";
- $sqlTemp .= " ,biz_recruitid=:biz_recruitid, biz_workerid=:biz_workerid, share_workerid=:share_workerid ";
- $sqlTemp .= " ,todo_begindate=:plan_dotime,`status`=:status,remark=:remark;";
- $sqlTemp .= empty($sqlTemp111) ? "" : $sqlTemp111;
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- } else {
- $enroll_premoney = round(floatval($recuritRule["enroll_premoney"]), 2);
- if ($enroll_premoney <= 0) {
- $enroll_premoney = 0;
- }
- $nowPayMoney = round(($enroll_premoney - $money_balance), 2);
- if ($nowPayMoney <= 0) {
- $nowPayMoney = 0;
- }
- //过滤掉0收支明细
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":biz_recruitid"] = intval($recruitId);
- $sqlParam[":biz_workerid"] = intval($bizWorker["id"]);
- $sqlParam[":share_workerid"] = intval($sharerWorkerId);
- $sqlParam[":enroll_premoney"] = $enroll_premoney;
- $sqlParam[":plan_dotime"] = strtotime(date("Y-m-d", $planDotime));
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 单独报名待支付押金 \n";
- $sqlParam[":status"] = 0; //0-待支付押金;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消
- $sqlTemp = "";
- $sqlTemp .= " insert into biz_todowork set createtime=:nowtime, enroll_premoney=:enroll_premoney ";
- $sqlTemp .= " ,biz_recruitid=:biz_recruitid, biz_workerid=:biz_workerid, share_workerid=:share_workerid ";
- $sqlTemp .= " ,todo_begindate=:plan_dotime,paytag=0,`status`=:status,remark=:remark;";
- $sqlTemp .= " set @handle_id=LAST_INSERT_ID();";
- $sqlParam[":type"] = 0; //此处必须为收入类型,支付收入成功后,再进行扣除业务
- $sqlParam[":money"] = $nowPayMoney;
- $sqlParam[":biz_catalog"] = 4; //报名押金支付
- $sqlTemp .= " insert into biz_worker_account set createtime=:nowtime";
- $sqlTemp .= " ,biz_workerid=:biz_workerid, biz_roletype=0, biz_userid=:biz_workerid ";
- $sqlTemp .= " ,type=:type, `money`=:money";
- $sqlTemp .= " ,biz_catalog=:biz_catalog, biz_id=@handle_id";
- $sqlTemp .= " ,biz_idtag=concat('TKID',@handle_id,'EE0')";
- $sqlTemp .= " ,`status`=0, remark=:remark;";
- $sqlTemp .= " select * from biz_worker_account where id=LAST_INSERT_ID();";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- $bizInfo = $dataset[count($dataset) - 1][0];
- if (empty($bizInfo)) {
- throw new GeneralException("", "构建预支付订单异常");
- }
- $payBizCatalog = "5"; //5-会员报名支付押金
- $payBizId = $bizInfo["id"];
- if ($nowPayMoney <= 0) {
- bizbase_paySuccess($payBizCatalog, $payBizId, false, $handleMode);
- return array("payResult" => true);
- } else {
- //---------------------------------------
- if (empty(trim($minaCode))) {
- throw new GeneralException("", "没有传递必要的minaCode参数");
- }
- $payScene = "JSAPI";
- $prePayArgs = array(
- "payBackBizCatalog" => $payBizCatalog,
- "payBackBizId" => $payBizId,
- "payScene" => $payScene,
- );
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_LABOUR_MINA);
- $wxmina_appid = $resObj["wxmina_appid"];
- $wxmina_openid = $resObj["openid"];
- $bizArgs = array(
- "minaCode" => $minaCode,
- "bizInfo" => $bizInfo,
- "wxmina_appid" => $wxmina_appid,
- "wxmina_openid" => $wxmina_openid,
- );
- try {
- $prePayInfo = bizbase_mactivityPayCore($prePayArgs, $bizArgs);
- } catch (Throwable $ex) {
- $errMsg = $ex->getMessage();
- if (mb_strpos($errMsg, "201 商户订单号重复") === false) {
- throw $ex;
- } else {
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $result = weixin_ordercloseV3($bizInfo["biz_idtag"]);
- $dataset = pdo_query3("
- update biz_todowork set updatetime=:nowtime
- ,paytag=ifnull(paytag,0)+1
- ,remark=concat('更新支付订单号后缀\n',ifnull(remark,''))
- where id=:bizid;
- select @paytag:=paytag from biz_todowork where id=:bizid;
- update biz_worker_account set updatetime=:nowtime
- ,biz_idtag=concat('TKID',:bizid,'EE',@paytag)
- ,remark=concat('更新支付订单号后缀\n',ifnull(remark,''))
- where id=:accid;
- select * from biz_worker_account where id=:accid;", array(
- ":nowtime" => time(),
- ":bizid" => intval($bizInfo["biz_id"]),
- ":accid" => intval($bizInfo["id"]),
- ));
- $bizInfo = $dataset[count($dataset) - 1][0];
- $bizArgs["bizInfo"] = $bizInfo;
- $prePayInfo = bizbase_mactivityPayCore($prePayArgs, $bizArgs);
- }
- }
- $prePayInfo = array_merge($prePayArgs, $prePayInfo);
- return array(
- "moneyBalance" => $money_balance,
- "payMoney" => $nowPayMoney,
- "prePayInfo" => $prePayInfo,
- );
- }
- }
- });
- return $backdata;
- break;
- case "teamEnroll":
- throw new GeneralException("", "非常抱歉,本平台已不再支持团组报名,请解散当前团组后单独报名吧!");
- bizbase_verifyUserAccount($bizWorker, true, "无法报名");
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid参数或参数值不正确");
- }
- $teamInfo = pdo_fetch("select * from biz_todoworkteam where id=" . intval($teamid));
- if (empty($teamInfo)) {
- throw new GeneralException("", "团组id没有对应的记录,请核查!");
- }
- if (intval($teamInfo["status"]) > 1) {
- throw new GeneralException("", "此团组已不是成团进行中状态,请核查!");
- }
- $recruitId = intval($teamInfo["biz_recruitid"]);
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- $planDotime = intval($teamInfo["plan_dotime"]);
- $leader_workerid = intval($teamInfo["leader_workerid"]);
- if ($leader_workerid != intval($bizWorker["id"])) {
- throw new GeneralException("", "这不是您开的团啊,请核查!");
- }
- $bizArgs = array("handleMode" => $handleMode, "bizWorker" => $bizWorker, "teamInfo" => $teamInfo, "recruitInfo" => $recruitInfo);
- $backdata = bizbase_recruitWorkLock($recruitId, $planDotime, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain) {
- $handleMode = $bizArgs["handleMode"];
- $bizWorker = $bizArgs["bizWorker"];
- $teamInfo = $bizArgs["teamInfo"];
- $recruitInfo = $bizArgs["recruitInfo"];
- if ($mainRemain <= 0) {
- throw new GeneralException("hasMainOverflow", "此招聘已报满");
- }
- if ($dateRemain <= 0) {
- throw new GeneralException("hasDateOverflow", "此招聘报名日期已报满!");
- }
- //------------------------------------------
- $sqlTemp = "";
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":teamid"] = $teamInfo["id"];
- if (intval($recruitInfo["enroll_audit"]) <= 0) { //不需要审核报名
- $sqlParam[":teamremark"] = "[" . date("Y-m-d H:i:s", time()) . "] 组团报名并直通 \n";
- $sqlParam[":teamstatus"] = 4; //0-待成团;1-已成团待提交报名;2-已解散;3-已报名待审核;4-报名已审核通过;5-报名被驳回;6-被违约;
- $sqlParam[":workremark"] = "[" . date("Y-m-d H:i:s", time()) . "] 组团报名并直通 \n";
- $sqlParam[":workstatus"] = 2; // 0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消
- $sqlParam[":cancel_remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 已被其他商家及时录取,本待录用申请被取消 \n";
- $sqlParam[":cancel_status"] = -4; //0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消
- $sqlParam[":cancel_teamstatus"] = -4; //0-待参团;1-已提交参团;2-已入团;-1-参团被驳回;-2-参团被踢出;-3-已解散;-4-被动取消;
- $sqlParam[":workDateStart"] = intval($recruitInfo["begin_datetime"]);
- $sqlParam[":workDateFinish"] = $sqlParam[":workDateStart"];
- if (intval($recruitInfo["settle_catalog"]) <= 0//普通招聘的多日招聘
- && intval($recruitInfo["begin_datetime"]) < intval($recruitInfo["finish_datetime"])) {
- $sqlParam[":workDateFinish"] = intval($recruitInfo["finish_datetime"]);
- }
- if (intval($recruitInfo["settle_catalog"]) > 0) {
- $sqlParam[":workDateStart"] = strtotime(date("Y-m-d", $planDotime));
- $sqlParam[":workDateFinish"] = strtotime(date("Y-m-d 23:59:59", $planDotime));
- }
- $sqlParam[":nowSettleCatalog"] = intval($recruitInfo["settle_catalog"]);
- $sqlParam[":plandoDateStart"] = strtotime(date("Y-m-d", $planDotime));
- $sqlParam[":plandoDateFinish"] = strtotime(date("Y-m-d 23:59:59", $planDotime));
- } else {
- $sqlParam[":teamremark"] = "[" . date("Y-m-d H:i:s", time()) . "] 组团报名待审核 \n";
- $sqlParam[":teamstatus"] = 3; //0-待成团;1-已成团待提交报名;2-已解散;3-已报名待审核;4-报名已审核通过;5-报名被驳回;6-被违约;
- $sqlParam[":workremark"] = "[" . date("Y-m-d H:i:s", time()) . "] 组团报名待审核 \n";
- $sqlParam[":workstatus"] = 1; // 0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消
- //-----
- $sqlTemp .= " insert into biz_message_queue( createtime, biz_catalog, biz_id)";
- $sqlTemp .= " select :nowtime, 1, id";
- $sqlTemp .= " from biz_todowork ";
- $sqlTemp .= " where workteamid=" . intval($teamInfo["id"]) . " and workteam_mode=1;";
- }
- $sqlTemp .= " update biz_todoworkteam set updatetime=:nowtime,`status`=:teamstatus,remark=concat(:teamremark,ifnull(remark,'')) ";
- $sqlTemp .= " where id=:teamid;";
- $teamWorkers = pdo_fetchall("select tdwk.id as tdwk_id,wk.*
- from biz_todowork tdwk
- inner join biz_worker wk on wk.id=tdwk.biz_workerid
- where tdwk.workteamid=:teamid and tdwk.teamstatus=1 ", array(
- ":teamid" => $teamInfo["id"],
- ));
- if (!empty($teamWorkers)) {
- throw new GeneralException("hasWaitJoiner", "团组中还有未通过的待参团团项!");
- }
- $teamWorkers = pdo_fetchall("select tdwk.id as tdwk_id,wk.*
- from biz_todowork tdwk
- inner join biz_worker wk on wk.id=tdwk.biz_workerid
- where tdwk.workteamid=:teamid and tdwk.teamstatus=2 and ifnull(tdwk.`status`,0)=0 ", array(
- ":teamid" => $teamInfo["id"],
- ));
- if (empty($teamWorkers)) {
- throw new GeneralException("", "团组竟然为空啊!");
- }
- $newTeamWorkers = array();
- foreach ($teamWorkers as $workerItem) {
- if (bizbase_todoWorkEnrollVerify($handleMode, $workerItem, $recruitInfo, $planDotime, $workerItem["tdwk_id"], intval($teamInfo["id"]))) {
- array_push($newTeamWorkers, $workerItem);
- $sqlTemp .= " update biz_todowork set workteam_flag=0 where workteamid=" . intval($teamInfo["id"]) . ";";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime, workteam_flag=1,`status`=:workstatus,remark=concat(:workremark,ifnull(remark,'')) ";
- $sqlTemp .= " where id=" . intval($workerItem["tdwk_id"]) . ";";
- if (intval($recruitInfo["enroll_audit"]) <= 0) { //不需要审核报名
- $sqlTemp .= " update biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid ";
- $sqlTemp .= " set tdwk.updatetime=:nowtime, tdwk.`status`=:cancel_status, tdwk.`teamstatus`=:cancel_teamstatus ";
- $sqlTemp .= " , tdwk.remark=concat(:cancel_remark,ifnull(tdwk.remark,'')), tdwk.teamremark=concat(:cancel_remark,ifnull(tdwk.teamremark,'')) ";
- $sqlTemp .= " where tdwk.biz_workerid=" . intval($workerItem["id"]) . " and ( (tdwk.`workteam_mode`<=0 and tdwk.`status`=1) or (tdwk.`workteam_mode`>0 and tdwk.`teamstatus`>=2 and tdwkt.`status`=3) )
- and(
- (tdwk.todo_begindate>=:plandoDateStart and tdwk.todo_begindate<=:plandoDateFinish)
- or(:nowSettleCatalog=0 and tdwk.todo_begindate>=:workDateStart and tdwk.todo_begindate<=:workDateFinish)
- or( btr.settle_catalog<=0 and btr.finish_datetime>btr.begin_datetime and (
- (btr.begin_datetime>=:workDateStart and btr.begin_datetime<=:workDateFinish)
- or(btr.begin_datetime<=:workDateStart and btr.finish_datetime>=:workDateFinish)
- or(btr.finish_datetime>=:workDateStart and btr.finish_datetime<=:workDateFinish)
- ))
- )
- ;";
- }
- } else {
- $sqlTemp .= " select :workstatus,:workremark; ";
- if (intval($recruitInfo["enroll_audit"]) <= 0) { //不需要审核报名
- $sqlTemp .= " select :cancel_status,:cancel_teamstatus,:cancel_remark,:plandoDateStart,:plandoDateFinish,:workDateStart,:workDateFinish,:nowSettleCatalog; ";
- }
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime ";
- $sqlTemp .= " ,`status`=-4 "; //0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消
- $sqlTemp .= " ,remark=concat('[" . date("Y-m-d H:i:s", time()) . "] 组团提交报名时,不符合条件,被动取消 \n',ifnull(remark,'')) ";
- $sqlTemp .= " where id=" . intval($workerItem["tdwk_id"]) . ";";
- }
- }
- if (empty($newTeamWorkers)) {
- throw new GeneralException("", "团组中竟然没有可报名项!");
- }
- if (count($newTeamWorkers) > $dateRemain) {
- throw new GeneralException("dateNoEnough", array(
- "tip" => "当日可报人数小于当前团组人数",
- "dateRemain" => $dateRemain,
- "teamTotal" => count($newTeamWorkers),
- ));
- }
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- });
- return $backdata;
- break;
- case "enrollCancel":
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) > 0) {
- throw new GeneralException("", "非常抱歉,本平台已不再支持团组报名!");
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid参数或参数值不正确");
- }
- $teamInfo = pdo_fetch("select * from biz_todoworkteam where id=" . intval($teamid));
- if (empty($teamInfo)) {
- throw new GeneralException("", "团组id没有对应的记录,请核查!");
- }
- if (intval($teamInfo["status"]) != 3) {
- throw new GeneralException("", "此团组已不是报名待审核状态,请核查!");
- }
- if (intval($teamInfo["leader_workerid"]) != intval($bizWorker["id"])) {
- throw new GeneralException("", "这不是您开的团,您无权取消此团的报名,请核查!");
- }
- $recruitId = intval($teamInfo["biz_recruitid"]);
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- $planDotime = intval($teamInfo["plan_dotime"]);
- $bizArgs = array("handleMode" => $handleMode, "bizWorker" => $bizWorker, "teamInfo" => $teamInfo, "recruitInfo" => $recruitInfo, "reason" => $reason);
- } else {
- $workId = isset($ajaxdata["workId"]) ? $ajaxdata["workId"] : $GPC["workId"];
- if (intval($workId) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid/workId参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select * from biz_todowork where id=" . intval($workId));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单id没有对应的记录,请核查!");
- }
- if (intval($workInfo["status"]) != 1) {
- throw new GeneralException("", "已不是报名待审核状态,请核查!");
- }
- if (intval($workInfo["workteam_mode"] != 0)) {
- throw new GeneralException("", "此订单不是独立报名的记录,请核查!");
- }
- if (intval($workInfo["workteamid"] != 0)) {
- throw new GeneralException("", "此订单不是独立报名的记录,请核查!");
- }
- if (intval($workInfo["biz_workerid"]) != intval($bizWorker["id"])) {
- throw new GeneralException("", "这不是您的报名记录,您无权取消此记录的报名,请核查!");
- }
- $recruitId = intval($workInfo["biz_recruitid"]);
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- $planDotime = intval($workInfo["todo_begindate"]);
- $bizArgs = array("handleMode" => $handleMode, "bizWorker" => $bizWorker, "workInfo" => $workInfo, "recruitInfo" => $recruitInfo, "reason" => $reason);
- }
- //此处设置 $planDotime 是有道理的; 例如不能取消已经过期的报名;以及未来日期中已被违约的日期;
- $backdata = bizbase_recruitWorkLock($recruitId, $planDotime, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain) {
- $handleMode = $bizArgs["handleMode"];
- $bizWorker = $bizArgs["bizWorker"];
- $recruitInfo = $bizArgs["recruitInfo"];
- $teamInfo = $bizArgs["teamInfo"];
- $workInfo = $bizArgs["workInfo"];
- $reason = $bizArgs["reason"];
- //-------------------------------------------
- $sqlTemp = "";
- $sqlParams = array();
- $sqlParams[":nowtime"] = time();
- $sqlParams[":wkstatus"] = -2; //0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消'
- $sqlParams[":wkremark"] = "[" . date("Y-m-d H:i:s", time()) . "] 取消报名并退还冻结的押金 $reason \n";
- if (!empty($teamInfo)) {
- throw new GeneralException("", "非常抱歉,本平台已不再支持团组报名!");
- $sqlParams[":status"] = 7; //0-待成团;1-已成团待提交报名;2-已解散;3-已报名待审核;4-报名已审核通过;5-报名被驳回;6-被违约;7-主动取消报名;8-被动取消报名'
- $sqlParams[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 取消报名 $reason \n";
- $sqlTemp .= " update biz_todoworkteam set updatetime=:nowtime,`status`=:status, remark=concat(:remark,ifnull(remark,'')) ";
- $sqlTemp .= " where id=" . intval($teamInfo["id"]) . ";";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`=:wkstatus, remark=concat(:wkremark,ifnull(remark,'')) ";
- $sqlTemp .= " where workteamid=" . intval($teamInfo["id"]) . " ";
- $sqlTemp .= " and workteam_mode>0 and teamstatus>=2;";
- } else {
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`=:wkstatus, remark=concat(:wkremark,ifnull(remark,'')) ";
- $sqlTemp .= " where id=" . intval($workInfo["id"]) . ";";
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- // $sqlTemp .=" select biz_workerid , :nowtime , 0 , enroll_premoney, 1, 5 , id, :wkremark ";
- $sqlTemp .= " select biz_workerid , :nowtime , 0 , enroll_premoney, 1, 7 , id, :wkremark ";
- $sqlTemp .= " from biz_todowork where id=" . intval($workInfo["id"]) . ";";
- }
- $backdata = pdo_query3($sqlTemp, $sqlParams);
- $cancelCount = pdo_fetchcolumn("select count(*)
- from biz_todowork tdwk
- left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid
- where
- ( (tdwk.workteam_mode<=0 and tdwk.biz_workerid=:biz_workerid
- and tdwk.`status`=-2 and tdwk.updatetime>=:queryDateTimeStart)
- or (tdwk.workteam_mode>0 and tdwkt.leader_workerid=:biz_workerid
- and tdwkt.`status`=7 and tdwkt.updatetime>=:queryDateTimeStart)) ", array(
- ":biz_workerid" => $bizWorker["id"],
- ":queryDateTimeStart" => strtotime("-30day", strtotime(date("Y-m-d", time()))),
- ));
- if (intval($cancelCount) >= 10) {
- $sqlParams = array();
- $sqlParams[":nowtime"] = time();
- $sqlParams[":biz_workerid"] = $bizWorker["id"];
- $sqlParams[":catalog"] = 3; //0-上班迟到;1-违规线下交易;2-主动违约;3-多次取消被停用;
- $sqlParams[":hanging_endtime"] = strtotime("+7day");
- $sqlParams[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 一个月内主动取消10次停用一周 \n";
- $backdata = pdo_query3("insert into biz_worker_breaklaw set createtime=:nowtime
- , `biz_workerid`=:biz_workerid, `catalog`=:catalog, remark=concat(:remark,ifnull(remark,''));
- update biz_worker set hanging=2,hanging_endtime=:hanging_endtime,hangopt_remak=concat(:remark,ifnull(hangopt_remak,'')) where id=:biz_workerid;
- ", $sqlParams);
- } else if (intval($cancelCount) >= 5) {
- try {
- include_once WEB_PHY_ROOT . "/base/smslib.php";
- $sended = alisms_sendSms($bizWorker["mobile"], AliSMS_TMPCODE_444, AliSMS_CODE_TMPSIGN, array(
- "name" => empty($bizWorker["true_name"]) ? $bizWorker["nickname"] : $bizWorker["true_name"],
- ));
- } catch (Throwable $ex) {
- eeglobal_log_handler("alisms", "error", "取消次数太多提醒,短信发送失败 {$workId} " . $ex->getMessage());
- }
- }
- return $cancelCount;
- });
- return $backdata;
- break;
- case "auditEnroll":
- $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"];
- // $update_sql = "update biz_worker_account set status=1 where biz_workerid = 314";
- // $backdata=pdo_query3($update_sql,array());
- // var_dump($backdata);die;
- if (intval($teamid) > 0) {
- throw new GeneralException("", "非常抱歉,本平台已不再支持团组报名!");
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid参数或参数值不正确");
- }
- $teamInfo = pdo_fetch("select * from biz_todoworkteam where id=" . intval($teamid));
- if (empty($teamInfo)) {
- throw new GeneralException("", "团组id没有对应的记录,请核查!");
- }
- if (intval($teamInfo["status"]) != 3) {
- throw new GeneralException("", "此团组已不是报名待审核状态,请核查!");
- }
- $recruitId = intval($teamInfo["biz_recruitid"]);
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- if (intval($recruitInfo["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "这个招聘记录不是您的信息,请核查!");
- }
- $planDotime = intval($teamInfo["plan_dotime"]);
- $bizArgs = array("handleMode" => $handleMode, "bizTrader" => $bizTrader, "teamInfo" => $teamInfo, "recruitInfo" => $recruitInfo, "todo" => $todo, "reason" => $reason);
- } else {
- $workId = isset($ajaxdata["workid"]) ? $ajaxdata["workid"] : $GPC["workid"];
- if (intval($workId) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid/workid参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select * from biz_todowork where id=" . intval($workId));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单id没有对应的记录,请核查!");
- }
- if (intval($workInfo["workteam_mode"] != 0)) {
- throw new GeneralException("", "此订单不是独立报名的记录,请核查!");
- }
- if (intval($workInfo["workteamid"] != 0)) {
- throw new GeneralException("", "此订单不是独立报名的记录,请核查!");
- }
- if (intval($workInfo["status"] != 1)) {
- throw new GeneralException("", "此订单已不是报名待审核状态,请核查!");
- }
- $recruitId = intval($workInfo["biz_recruitid"]);
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- if (intval($recruitInfo["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "这个招聘记录不是您的信息,请核查!");
- }
- $planDotime = intval($workInfo["todo_begindate"]);
- $bizArgs = array("handleMode" => $handleMode, "bizTrader" => $bizTrader, "workInfo" => $workInfo, "recruitInfo" => $recruitInfo, "todo" => $todo, "reason" => $reason, "minaCode" => $minaCode);
- }
- $biz_todowork_count = "select count(*) as todowork_count from biz_todowork where biz_recruitid={$bizArgs['recruitInfo']['id']} and status = 2";
- $biz_todowork_count_find = pdo_fetch($biz_todowork_count, array());
- if ($bizArgs['recruitInfo']['need_total'] == $biz_todowork_count_find['todowork_count']) {
- throw new GeneralException("", "招聘人数已满!");
- }
- $backdata = bizbase_recruitWorkLock($recruitId, $planDotime, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain) {
- $handleMode = $bizArgs["handleMode"];
- $bizTrader = $bizArgs["bizTrader"];
- $recruitInfo = $bizArgs["recruitInfo"];
- $teamInfo = $bizArgs["teamInfo"];
- $workInfo = $bizArgs["workInfo"];
- $todo = $bizArgs["todo"];
- $reason = $bizArgs["reason"];
- $minaCode = $bizArgs["minaCode"];
- //-------------------------------------------
- $sqlTemp = "";
- $sqlParams = array();
- $sqlParams[":nowtime"] = time();
- $sqlParams[":cancel_remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 已被其他商家及时录取,本待录用申请被取消 \n";
- $sqlParams[":cancel_status"] = -4; //0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消
- $sqlParams[":cancel_teamstatus"] = -4; //0-待参团;1-已提交参团;2-已入团;-1-参团被驳回;-2-参团被踢出;-3-已解散;-4-被动取消;
- $sqlParams[":workDateStart"] = intval($recruitInfo["begin_datetime"]);
- $sqlParams[":workDateFinish"] = $sqlParams[":workDateStart"];
- if (intval($recruitInfo["settle_catalog"]) <= 0//普通招聘的多日招聘
- && intval($recruitInfo["begin_datetime"]) < intval($recruitInfo["finish_datetime"])) {
- $sqlParams[":workDateFinish"] = intval($recruitInfo["finish_datetime"]);
- }
- if (intval($recruitInfo["settle_catalog"]) > 0) {
- $sqlParams[":workDateStart"] = strtotime(date("Y-m-d", $planDotime));
- $sqlParams[":workDateFinish"] = strtotime(date("Y-m-d 23:59:59", $planDotime));
- }
- $sqlParams[":nowSettleCatalog"] = intval($recruitInfo["settle_catalog"]);
- $sqlParams[":plandoDateStart"] = strtotime(date("Y-m-d", $planDotime));
- $sqlParams[":plandoDateFinish"] = strtotime(date("Y-m-d 23:59:59", $planDotime));
- $sqlTemp .= " set @a0=:cancel_status,@a1=:cancel_teamstatus,@a2=:cancel_remark,@a3=:plandoDateStart,@a4=:plandoDateFinish,@a5=:workDateStart,@a6=:workDateFinish,@a7=:nowSettleCatalog; ";
- if (!empty($teamInfo)) {
- throw new GeneralException("", "非常抱歉,本平台已不再支持团组报名!");
- $teamMemberCount = pdo_fetchcolumn("select count(*) from biz_todowork where workteam_mode>0 and teamstatus>=2 and workteamid=" . intval($teamInfo["id"]) . " ");
- if (intval($teamMemberCount) <= 0) {
- throw new GeneralException("", "此团组中竟然没有任何有效团项,请核查!");
- }
- switch (trim($todo)) {
- case "allow":
- $sqlParams[":status"] = 4; //0-待成团;1-已成团待提交报名;2-已解散;3-已报名待审核;4-报名已审核通过;5-报名被驳回;6-被违约;7-主动取消报名;8-被动取消报名'
- $sqlParams[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 组团报名已审核通过 $reason \n";
- $sqlParams[":wkstatus"] = 2; //0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消'
- $sqlParams[":wkremark"] = "[" . date("Y-m-d H:i:s", time()) . "] 组团报名已审核通过 $reason \n";
- $sqlTemp .= " insert into biz_message_queue( createtime, biz_catalog, biz_id)";
- $sqlTemp .= " select :nowtime, 0, id";
- $sqlTemp .= " from biz_todowork ";
- $sqlTemp .= " where workteamid=" . intval($teamInfo["id"]) . " ";
- $sqlTemp .= " and workteam_mode>0 and teamstatus>=2;";
- //----------------------------------------------------------
- $sqlTemp .= " update biz_todowork set workteam_flag=0 where workteam_mode>0 and teamstatus>=2 and workteamid=" . intval($teamInfo["id"]) . ";";
- $sqlTemp .= " select @teamflagid:=id from biz_todowork where workteam_mode>0 and teamstatus>=2 and workteamid=" . intval($teamInfo["id"]) . " limit 1;";
- $sqlTemp .= " update biz_todowork set workteam_flag=1 where ifnull(@teamflagid,0)>0 and id=@teamflagid;";
- //----------------------------------------------------------
- $sqlTemp .= " update biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid ";
- $sqlTemp .= " set tdwk.updatetime=:nowtime, tdwk.`status`=:cancel_status, tdwk.`teamstatus`=:cancel_teamstatus ";
- $sqlTemp .= " , tdwk.remark=concat(:cancel_remark,ifnull(tdwk.remark,'')), tdwk.teamremark=concat(:cancel_remark,ifnull(tdwk.teamremark,'')) ";
- $sqlTemp .= " where tdwk.workteamid<>" . intval($teamInfo["id"]) . "
- and tdwk.biz_workerid in (select biz_workerid from biz_todowork where workteam_mode>0 and teamstatus>=2 and workteamid=" . intval($teamInfo["id"]) . ")
- and ( (tdwk.`workteam_mode`<=0 and tdwk.`status`=1) or (tdwk.`workteam_mode`>0 and tdwk.`teamstatus`>=2 and tdwkt.`status`=3) )
- and(
- (tdwk.todo_begindate>=:plandoDateStart and tdwk.todo_begindate<=:plandoDateFinish)
- or(:nowSettleCatalog=0 and tdwk.todo_begindate>=:workDateStart and tdwk.todo_begindate<=:workDateFinish)
- or( btr.settle_catalog<=0 and btr.finish_datetime>btr.begin_datetime and (
- (btr.begin_datetime>=:workDateStart and btr.begin_datetime<=:workDateFinish)
- or(btr.begin_datetime<=:workDateStart and btr.finish_datetime>=:workDateFinish)
- or(btr.finish_datetime>=:workDateStart and btr.finish_datetime<=:workDateFinish)
- ))
- )
- ;";
- break;
- case "refuse":
- if (empty(trim($reason))) {
- throw new GeneralException("", "没有传递必要的reason参数");
- }
- $sqlParams[":status"] = 5; //0-待成团;1-已成团待提交报名;2-已解散;3-已报名待审核;4-报名已审核通过;5-报名被驳回;6-被违约;7-主动取消报名;8-被动取消报名'
- $sqlParams[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 组团报名被拒绝:$reason \n";
- $sqlParams[":wkstatus"] = -1; //0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消'
- $sqlParams[":wkremark"] = "[" . date("Y-m-d H:i:s", time()) . "] 报名被拒绝:$reason \n";
- break;
- default:
- throw new GeneralException("", "没有传递必要的todo参数或参数值不正确");
- }
- $sqlTemp .= " update biz_todoworkteam set updatetime=:nowtime,`status`=:status, remark=concat(:remark,ifnull(remark,'')) ";
- $sqlTemp .= " where id=" . intval($teamInfo["id"]) . ";";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`=:wkstatus, remark=concat(:wkremark,ifnull(remark,'')) ";
- $sqlTemp .= " where workteamid=" . intval($teamInfo["id"]) . " ";
- $sqlTemp .= " and workteam_mode>0 and teamstatus>=2;";
- } else {
- switch (trim($todo)) {
- case "allow": //带预支付工单费用模式的录用处理
- $accountInfo = bizbase_traderAccountInfo($bizTrader);
- $money_balance = round(floatval($accountInfo["balance"]), 2);
- $nowPayMoney = round(floatval($recruitInfo["feetotal"] - $money_balance), 2);
- if ($nowPayMoney <= 0) {
- $nowPayMoney = 0;
- }
- //将来在收支明细中过滤掉money=0的记录;
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":biz_traderid"] = $bizTrader["id"];
- $sqlParam[":biz_roletype"] = 0;
- $sqlParam[":biz_userid"] = $bizTrader["id"];
- $sqlParam[":type"] = 0; //收支类型:0-收入;1-支出;
- $sqlParam[":biz_catalog"] = 1; //工单支付业务
- if (intval($workInfo["status"]) != 1) {
- throw new GeneralException("", "此订单不是待录用状态,请核查!");
- }
- $sqlParam[":money"] = $nowPayMoney; //收入:0-次数支付;1-支付订单;
- $sqlParam[":biz_id"] = intval($workInfo["id"]);
- //统一固定的订单支付ID,避免重复支付
- $sqlParam[":biz_idtag"] = "WKID" . intval($workInfo["id"]) . "EE" . intval($workInfo["paytag"]);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 录用时预付工单费用 \n";
- $sqlTemp = "";
- $sqlTemp .= " insert into biz_trader_account set createtime=:nowtime";
- $sqlTemp .= " ,biz_traderid=:biz_traderid, biz_roletype=:biz_roletype, biz_userid=:biz_userid ";
- $sqlTemp .= " ,type=:type, `money`=:money";
- $sqlTemp .= " ,biz_catalog=:biz_catalog, biz_id=:biz_id, biz_idtag=:biz_idtag";
- $sqlTemp .= " ,`status`=0, remark=:remark;";
- $sqlTemp .= " select * from biz_trader_account where id=LAST_INSERT_ID();";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- $bizInfo = $dataset[count($dataset) - 1][0];
- if (empty($bizInfo)) {
- throw new GeneralException("", "构建预支付订单异常");
- }
- $payBizCatalog = "11"; //11-【新】订单支付业务
- $payBizId = $bizInfo["id"];
- if ($nowPayMoney <= 0) {
- bizbase_paySuccess($payBizCatalog, $payBizId, false, "manhandle");
- return array("payResult" => true);
- } else {
- //---------------------------------------
- if (empty(trim($minaCode))) {
- throw new GeneralException("", "没有传递必要的minaCode参数");
- }
- $payScene = "JSAPI";
- $prePayArgs = array(
- "payBackBizCatalog" => $payBizCatalog,
- "payBackBizId" => $payBizId,
- "payScene" => $payScene,
- );
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_CAPITAL_MINA);
- $wxmina_appid = $resObj["wxmina_appid"];
- $wxmina_openid = $resObj["openid"];
- $bizArgs = array(
- "minaCode" => $minaCode,
- "bizInfo" => $bizInfo,
- "handleMode" => $handleMode,
- "bizUser" => $bizTrader,
- "wxmina_appid" => $wxmina_appid,
- "wxmina_openid" => $wxmina_openid,
- );
- try {
- $prePayInfo = bizbase_todoWorkPayCore($prePayArgs, $bizArgs);
- } catch (Throwable $ex) {
- $errMsg = $ex->getMessage();
- if (mb_strpos($errMsg, "201 商户订单号重复") === false) {
- throw $ex;
- } else {
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $result = weixin_ordercloseV3($bizInfo["biz_idtag"]);
- $dataset = pdo_query3("update biz_todowork set updatetime=:nowtime
- ,paytag=ifnull(paytag,0)+1, remark=concat('更新支付订单号后缀',ifnull(remark,''))
- where id=:wkid;
- select @biz_idtag:=concat('WKID',id,'EE',paytag) from biz_todowork where id=:wkid;
- update biz_trader_account set updatetime=:nowtime
- ,biz_idtag=@biz_idtag, remark=concat('更新支付订单号后缀',ifnull(remark,''))
- where id=:bizid;
- select @biz_idtag:=concat('WKID',id,'EE',paytag) from biz_todowork where id=:wkid;
- select * from biz_trader_account where id=:bizid;", array(
- ":nowtime" => time(),
- ":wkid" => intval($workInfo["id"]),
- ":bizid" => intval($bizInfo["id"]),
- ));
- $bizInfo = $dataset[count($dataset) - 1][0];
- $bizArgs["bizInfo"] = $bizInfo;
- $prePayInfo = bizbase_todoWorkPayCore($prePayArgs, $bizArgs);
- }
- }
- $prePayInfo = array_merge($prePayArgs, $prePayInfo);
- return array(
- "moneyBalance" => $money_balance,
- "payMoney" => $nowPayMoney,
- "prePayInfo" => $prePayInfo,
- );
- }
- break;
- case "refuse":
- if (empty(trim($reason))) {
- throw new GeneralException("", "没有传递必要的reason参数");
- }
- $sqlParams[":wkstatus"] = -1; //0-待提交;1-已报名待审核;2-已审核;-1-报名被驳回;3-工资/佣金已全部结算;-2-取消报名;-3-被违约 -4-被动取消'
- $sqlParams[":wkremark"] = "[" . date("Y-m-d H:i:s", time()) . "] 报名被拒绝(退还押金):$reason \n";
- //返还押金对冲
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select biz_workerid , :nowtime , 0 , enroll_premoney, 1, 7 , id, :wkremark ";
- $sqlTemp .= " from biz_todowork where id=" . intval($workInfo["id"]) . ";";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`=:wkstatus, remark=concat(:wkremark,ifnull(remark,'')) ";
- $sqlTemp .= " where id=" . intval($workInfo["id"]) . ";";
- $dataset = pdo_query3($sqlTemp, $sqlParams);
- return $dataset;
- break;
- default:
- throw new GeneralException("", "没有传递必要的todo参数或参数值不正确");
- }
- }
- });
- return $backdata;
- break;
- case "processControlByWorker":
- $remark = isset($ajaxdata["remark"]) ? $ajaxdata["remark"] : $GPC["remark"];
- $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
- $workIds = isset($ajaxdata["workIds"]) ? $ajaxdata["workIds"] : $GPC["workIds"];
- if (empty($workIds)) {
- throw new GeneralException("", "没有传递必要的workIds参数");
- }
- $idSet = array();
- foreach ($workIds as $item) {
- array_push($idSet, intval($item));
- }
- $idSet = implode(",", $idSet);
- $todoworkList = pdo_fetchall("select tdwk.*,btr.begin_hour2 as btr_begin_hour2
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.id in ({$idSet}) ");
- if (empty($todoworkList)) {
- throw new GeneralException("", "没有定位到任何订单记录!");
- }
- $sqlTemp = "";
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- switch (trim($todo)) {
- case "start":
- $sqlParam[":status"] = 3;
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 开始工作 $remark \n";
- break;
- case "finish":
- $sqlParam[":status"] = 4;
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 结束工作 $remark \n";
- break;
- default:throw new GeneralException("", "不支持的todo!");
- }
- foreach ($todoworkList as $item) {
- if (intval($item["deleted"]) != 0) {
- throw new GeneralException("", "订单记录已被删除了!");
- }
- if (intval($item["biz_workerid"]) != intval($bizWorker["id"])) {
- throw new GeneralException("", "订单记录不是您的!");
- }
- $payqrParamName = ":payqr" . $item["id"];
- $paycodeParamName = ":paycode" . $item["id"];
- switch (trim($todo)) {
- case "start":
- $sqlParam[$payqrParamName] = "";
- $sqlParam[$paycodeParamName] = "";
- if (intval($item["status"]) != 2) {
- throw new GeneralException("", "订单不是待开工状态!");
- }
- // if (strtotime(date("Y-m-d",intval($item["todo_begindate"]))) > strtotime(date("Y-m-d",time())))
- // throw new GeneralException("", "还未到开工日期,还不能开工!");
- // if ((strtotime(date("Y-m-d",intval($item["todo_begindate"])))+intval($item["btr_begin_hour2"])) > time())
- // throw new GeneralException("", "还未到开工时间,还不能开工!");
- $sqlExtra = " ,worked_begintime=:nowtime ";
- break;
- case "finish":
- if (intval($item["status"]) != 3) {
- throw new GeneralException("", "订单不是待完工状态!");
- }
- $sqlExtra = " ,worked_finishtime=:nowtime ";
- $padLength = (6 - mb_strlen($item["id"] . ""));
- $padPrefix = "";
- for ($iii = 1; $iii <= $padLength; $iii++) {
- $padPrefix .= ($iii == 1 ? "A" : "0");
- }
- $sqlParam[$paycodeParamName] = $padPrefix . $item["id"];
- //-----------------------------------------------------
- $sqlParam[$payqrParamName] = WEB_URL_FILEROOT . "/SALARYPAY/PAYQR_" . $item["id"] . "_";
- $phySavePath = WEB_PHY_FILEROOT . "/SALARYPAY/PAYQR_" . $item["id"] . "_";
- $qrcatalog = 0; //0-普通二维码;1-小程序码;
- switch ($qrcatalog) {
- case 0:
- $sqlParam[$payqrParamName] .= "qr.png";
- $phySavePath .= "qr.png";
- require_once WEB_PHY_ROOT . "/base/lib_qr.php";
- //$linkhref=WEBAPI_IMG_HOSTURL."/index.php?workid=".intval($item["id"]);
- $linkhref = "workid=" . intval($item["id"]);
- lib_qrbuild2("png", $linkhref, $phySavePath, 200, 8);
- break;
- case 1:
- $sqlParam[$payqrParamName] .= "qrmina.png";
- $phySavePath .= "qrmina.png";
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $wxParams = bizwx_fetchWxParams(SUBSYS_CAPITAL2_MINA); //谁扫用谁
- $mina_appid = $wxParams["mina_appid"];
- $mina_appSecret = $wxParams["mina_appSecret"];
- $bizCatalog = 0;
- $bizId = intval($item["id"]);
- $userId = intval($bizWorker["id"]);
- weixin_getMinaQCode($mina_appid, $mina_appSecret, $phySavePath, $bizCatalog, $bizId, $userId, "pages/index/index");
- break;
- }
- break;
- default:throw new GeneralException("", "不支持的todo!");
- }
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime ";
- $sqlTemp .= " ,`status`=:status, remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " ,`payqr`=(case when {$payqrParamName}='' then payqr else {$payqrParamName} end) ";
- $sqlTemp .= " ,`paycode`=(case when {$paycodeParamName}='' then paycode else {$paycodeParamName} end) ";
- $sqlTemp .= $sqlExtra;
- $sqlTemp .= " where id=" . intval($item["id"]) . ";";
- }
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "denyPay":
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $workId = isset($ajaxdata["workid"]) ? $ajaxdata["workid"] : $GPC["workid"];
- if (intval($workId) <= 0) {
- throw new GeneralException("", "没有传递必要的workid参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select tdwk.*,btr.biz_traderid
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.id=" . intval($workId));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单id没有对应的记录,请核查!");
- }
- if (intval($workInfo["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- if (intval($workInfo["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "这个订单记录不是您的信息,请核查!");
- }
- if (intval($workInfo["status"] != 4)) {
- throw new GeneralException("", "不是待结算状态,请核查!");
- }
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":workid"] = intval($workInfo["id"]);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 提交拒绝支付申请 {$reason} \n";
- $sqlTemp = "";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`=90,remark=concat(:remark,remark) where id=:workid;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "denyPayAudit":
- $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $workId = isset($ajaxdata["workid"]) ? $ajaxdata["workid"] : $GPC["workid"];
- if (intval($workId) <= 0) {
- throw new GeneralException("", "没有传递必要的workid参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select tdwk.*,btr.biz_traderid,btr.title as btr_title
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.id=" . intval($workId));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单id没有对应的记录,请核查!");
- }
- if (intval($workInfo["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- if (intval($workInfo["status"] != 90)) {
- throw new GeneralException("", "不是拒绝支付待审核状态,请核查!");
- }
- switch (trim($todo)) {
- case "refuse": //将订单再次打回待结算状态,如果反反复复后,超过48小时未结算,则进入平台可强制结算;
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":workid"] = intval($workInfo["id"]);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 驳回拒绝支付的申请 {$reason} \n";
- $sqlTemp = "";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`=4,remark=concat(:remark,remark) where id=:workid;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "allow": //将会员押金转入商家账户,并返还商家工单费用,订单进入拒绝支付状态下;
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $operatorName = empty($baseUser["login_name"]) ? "" : "(" . $baseUser["login_name"] . ")";
- $sqlParam[":nowtime2"] = "[" . date("Y-m-d H:i:s", time()) . "] {$operatorName} ";
- $sqlParam[":workid"] = intval($workInfo["id"]);
- $sqlTemp = "";
- // 阿东【进行修改,下方注释代码,为原来代码】退还押金 2020-06-18 16:20
- $ratio = isset($ajaxdata["ratio"]) ? $ajaxdata["ratio"] : $GPC["ratio"]; //比例
- if ($ratio > 1) {
- throw new GeneralException("", "比例错误,不能大于 1 ");
- }
- // 为0的时候,代表商家预付款全额返还,即“完全会员责任”,此时需要将会员的押金补偿给商家,
- // 0-1之间为比例,大于0时商家预付款30%表示支付给会员的金额,70%商家,会员押金原路返还
- if ($ratio == 0) {
- //商家押金收入进账
- $sqlTemp .= " insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, remark )";
- $sqlTemp .= " select btr.biz_traderid, :nowtime , 0 , tdwk.enroll_premoney, 1, 7, tdwk.id, concat(:nowtime2,'会员违约,押金罚没收入\n') ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " where tdwk.id=:workid;";
- //商家工单费用解冻(即退还)
- $sqlTemp .= " insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, remark )";
- $sqlTemp .= " select btr.biz_traderid, :nowtime , 0 , btr.feetotal, 1, 6, tdwk.id, concat(:nowtime2,'会员违约,工单费用解冻退还\n') ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " where tdwk.id=:workid;";
- //工单状态修正
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`= -5,remark=concat(:nowtime2,'拒绝支付通过审核,将会员押金转入商家账户,并返还商家工单费用\n',remark) where id=:workid;";
- } else {
- //会员押金解冻
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select biz_workerid , :nowtime , 0 , enroll_premoney, 1, 7 , id, concat(:nowtime2,'会员押金解冻\n') ";
- $sqlTemp .= " from biz_todowork where id=:workid;";
- // 工单金额
- $feetotal = pdo_fetch("select btr.feetotal as feetotal from biz_todowork tdwk left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid where tdwk.id={$workInfo["id"]};");
- // 会员应得工单的%$ratio = 金额
- $user_money = round($feetotal['feetotal'] * $ratio, 2);
- $sqlParam[":user_money"] = $user_money;
- $sqlParam[":nowtime3"] = $sqlParam[":nowtime2"] . ",【工单({$workInfo['btr_title']})平台判定会员违约,商家补偿{$user_money}元】";
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select biz_workerid , :nowtime , 0 , :user_money, 1, 0 , id, :nowtime3 ";
- $sqlTemp .= " from biz_todowork where id=:workid;";
- // 商户应得工单的 = 总工单金额- 会员应得的金额
- $sqlParam[":shop_money"] = $feetotal['feetotal'] - $user_money;
- $sqlTemp .= " insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, remark )";
- $sqlTemp .= " select btr.biz_traderid, :nowtime , 0 , :shop_money, 1, 7, tdwk.id, :nowtime3 ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " where tdwk.id=:workid;";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`= 5,`salary_status`= 1,remark=concat(:nowtime2,'拒绝支付通过审核,将会员押金原路返回,商家针对会员进行补偿\n',remark) where id=:workid;";
- }
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- // //会员押金解冻
- // $sqlTemp.=" insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- // $sqlTemp.=" select biz_workerid , :nowtime , 0 , enroll_premoney, 1, 7 , id, concat(:nowtime2,'会员违约时,先将押金解冻\n') ";
- // $sqlTemp.=" from biz_todowork where id=:workid;";
- // //会员押金罚没支出
- // $sqlTemp.=" insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- // $sqlTemp.=" select biz_workerid , :nowtime , 1 , enroll_premoney, 1, 3 , id, concat(:nowtime2,'会员违约时,押金罚没支出\n') ";
- // $sqlTemp.=" from biz_todowork where id=:workid;";
- // //商家押金收入进账
- // $sqlTemp.=" insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, remark )";
- // $sqlTemp.=" select btr.biz_traderid, :nowtime , 0 , tdwk.enroll_premoney, 1, 7, tdwk.id, concat(:nowtime2,'会员违约时,押金罚没收入\n') ";
- // $sqlTemp.=" from biz_todowork tdwk";
- // $sqlTemp.=" left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- // $sqlTemp.=" where tdwk.id=:workid;";
- // //商家工单费用解冻(即退还)
- // $sqlTemp.=" insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, remark )";
- // $sqlTemp.=" select btr.biz_traderid, :nowtime , 0 , btr.feetotal, 1, 6, tdwk.id, concat(:nowtime2,'会员违约时,工单费用解冻退还\n') ";
- // $sqlTemp.=" from biz_todowork tdwk";
- // $sqlTemp.=" left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- // $sqlTemp.=" where tdwk.id=:workid;";
- // //工单状态修正
- // $sqlTemp.=" update biz_todowork set updatetime=:nowtime,`status`=-5,remark=concat(:nowtime2,'拒绝支付通过审核,将会员押金转入商家账户,并返还商家工单费用\n',remark) where id=:workid;";
- //
- // $backdata = pdo_query3($sqlTemp, $sqlParam);
- break;
- default:
- throw new GeneralException("", "没有传递必要的todo参数或参数值不正确");
- }
- break;
- case "waitPayByWorker":
- case "waitPayByTrader":
- case "waitPayByTrader2":
- $workId = isset($ajaxdata["workid"]) ? $ajaxdata["workid"] : $GPC["workid"];
- if (intval($workId) > 0) {
- $workInfo = pdo_fetch("select tdwk.*
- ,btr.biz_traderid, btr.feetotal as pay_feetotal
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.id=" . intval($workId));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单id没有对应的记录,请核查!");
- }
- } else {
- $workPayCode = isset($ajaxdata["workPayCode"]) ? $ajaxdata["workPayCode"] : $GPC["workPayCode"];
- if (empty(trim($workPayCode))) {
- throw new GeneralException("", "没有传递必要的workid/workPayCode参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select tdwk.*
- ,btr.biz_traderid, btr.feetotal as pay_feetotal
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.paycode=:paycode", array(":paycode" => trim($workPayCode)));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单核销码没有对应的记录,请核查!");
- }
- }
- $moneyUserId = intval($workInfo["biz_traderid"]);
- $moneyRoleType = 0;
- if ($handleMode == "waitPayByWorker") {
- if (intval($workInfo["biz_workerid"] != intval($bizWorker["id"]))) {
- throw new GeneralException("", "此订单不是您的记录,请核查!");
- }
- }
- if ($handleMode == "waitPayByTrader") {
- if (intval($workInfo["biz_traderid"] != intval($bizTrader["id"]))) {
- throw new GeneralException("", "此订单所对应的招聘信息不是您的,请核查!");
- }
- }
- if ($handleMode == "waitPayByTrader2") {
- $delegateInfo = bizTrader2_getRecuritDelegate(intval($workInfo["biz_recruitid"]));
- if (empty($delegateInfo) || intval($delegateInfo["biz_trader2id"]) != intval($bizTrader2["id"])) {
- throw new GeneralException("", "您没有被授权此订单所对应的招聘信息,或授权已过期,请核查!");
- }
- $moneyUserId = intval($bizTrader2["id"]);
- $moneyRoleType = 1;
- }
- if (intval($workInfo["status"] != 4)) {
- throw new GeneralException("", "此订单不是待结算状态,请核查!");
- }
- $recruitId = intval($workInfo["biz_recruitid"]);
- $recruitInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recruitId));
- if (empty($recruitInfo)) {
- throw new GeneralException("", "没有定位到招聘记录信息,请核查!");
- }
- $bizArgs = array("handleMode" => $handleMode, "bizUser" => $bizUser, "workInfo" => $workInfo, "recruitInfo" => $recruitInfo, "moneyUserId" => $moneyUserId, "moneyRoleType" => $moneyRoleType);
- $backdata = bizbase_recruitWorkLock($recruitId, 0, $bizArgs, function ($recruitId, $planDotime, $bizArgs, $mainRemain, $dateRemain, $restRemain) {
- $handleMode = $bizArgs["handleMode"];
- $bizUser = $bizArgs["bizUser"];
- $workInfo = $bizArgs["workInfo"];
- $recruitInfo = $bizArgs["recruitInfo"];
- $moneyUserId = $bizArgs["moneyUserId"];
- $moneyRoleType = $bizArgs["moneyRoleType"];
- $backdata = pdo_fetch("select tdwk.*
- ,btr.title as recruitTitle
- ,btr.feeper as totalfee
- ,btr.plat_fetchmoney as plat_fetchmoney
- ,btr.salary as salary
- ,btr.sharer_fetchmoney as sharer_fetchmoney
- ,bt.company_name,btbu.mobile as btbu_mobile
- ,(select (sum(case when bta.type=0 then ifnull(money,0) else 0 end)
- - sum(case when bta.type=1 then ifnull(money,0) else 0 end)) as money_balance
- from biz_trader_account bta
- where bta.deleted=0 and bta.biz_traderid=btr.biz_traderid
- and bta.`biz_roletype`=:money_roletype and bta.biz_userid=:money_userid
- and bta.`status`=1
- ) as money_balance
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- left join biz_trader bt on bt.id=btr.biz_traderid
- left join base_user btbu on btbu.id=bt.base_userid
- where tdwk.id=:workid", array(
- ":workid" => $workInfo["id"],
- ":money_userid" => intval($moneyUserId),
- ":money_roletype" => intval($moneyRoleType),
- ));
- $backdata["money_balance"] = round(floatval($backdata["money_balance"]), 2);
- unset($backdata["teamremark"]);
- unset($backdata["remark"]);
- return $backdata;
- });
- return $backdata;
- break;
- case "paySettleByTrader":
- case "paySettleByTrader2":
- case "paySettleByPlater":
- $workId = isset($ajaxdata["workid"]) ? $ajaxdata["workid"] : $GPC["workid"];
- if (intval($workId) > 0) {
- $workInfo = pdo_fetch("select tdwk.*
- ,btr.biz_traderid, btr.feetotal as pay_feetotal
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.id=" . intval($workId));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单id没有对应的记录,请核查!");
- }
- } else {
- $workPayCode = isset($ajaxdata["workPayCode"]) ? $ajaxdata["workPayCode"] : $GPC["workPayCode"];
- if (empty(trim($workPayCode))) {
- throw new GeneralException("", "没有传递必要的workid/workPayCode参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select tdwk.*
- ,btr.biz_traderid, btr.feetotal as pay_feetotal
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.paycode=:paycode", array(":paycode" => trim($workPayCode)));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单核销码没有对应的记录,请核查!");
- }
- }
- $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"];
- $params = array("handleMode" => $handleMode, "baseUser" => $baseUser, "bizUser" => $bizUser, "bizTrader" => $bizTrader, "bizTrader2" => $bizTrader2, "srcWorkInfo" => $workInfo, "minaCode" => $minaCode);
- $backdata = biz_flkForWork($workInfo["id"], $params, function ($params) {
- $handleMode = $params["handleMode"];
- $baseUser = $params["baseUser"];
- $bizUser = $params["bizUser"];
- $bizTrader = $params["bizTrader"];
- $bizTrader2 = $params["bizTrader2"];
- $srcWorkInfo = $params["srcWorkInfo"];
- $minaCode = $params["minaCode"];
- $operatorName = "";
- switch ($handleMode) {
- case "paySettleByTrader":
- $operatorName = " ";
- break;
- case "paySettleByTrader2":
- $operatorName = empty($baseUser["mobile"]) ? "" : "(" . $baseUser["mobile"] . ")";
- break;
- case "paySettleByPlater":
- $operatorName = empty($baseUser["login_name"]) ? "" : "(" . $baseUser["login_name"] . ")";
- break;
- }
- $workInfo = pdo_fetch("select tdwk.*
- ,btr.biz_traderid, btr.feetotal as pay_feetotal
- ,btr.plat_fetchmoney,btr.sharer_fetchmoney,btr.salary as wker_salary
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.id=" . intval($srcWorkInfo["id"]));
- if ($handleMode == "paySettleByTrader") {
- if (intval($workInfo["biz_traderid"] != intval($bizTrader["id"]))) {
- throw new GeneralException("", "此订单所对应的招聘信息不是您的,请核查!");
- }
- }
- if ($handleMode == "paySettleByTrader2") {
- $delegateInfo = bizTrader2_getRecuritDelegate(intval($workInfo["biz_recruitid"]));
- if (empty($delegateInfo) || intval($delegateInfo["biz_trader2id"]) != intval($bizTrader2["id"])) {
- throw new GeneralException("", "您没有被授权此订单所对应的招聘信息,或授权已过期,请核查!");
- }
- }
- if ($handleMode == "paySettleByPlater") {
- if (!(intval($workInfo["status"]) == 4 || intval($workInfo["status"]) == -5 || intval($workInfo["status"]) == -8)) {
- throw new GeneralException("", "此订单不是待结算或拒绝支付或超48小时未结算状态,请核查!");
- }
- } else {
- /*
- * 改为 录用即可核销
- * 20220929 wj
- */
- /*if (intval($workInfo["status"]) != 4) {
- throw new GeneralException("", "此订单不是待结算状态,请核查!");
- }*/
- if (!in_array(intval($workInfo["status"]), [2, 3, 4])) {
- throw new GeneralException("", "此订单不是可结算状态,请核查!");
- }
- }
- //-------------------------------------------------------
- $platerMoney = round(floatval($workInfo["plat_fetchmoney"]), 2);
- $sharerMoney = round(floatval($workInfo["sharer_fetchmoney"]), 2);
- $workerMoney = round(floatval($workInfo["wker_salary"]), 2);
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":nowtime2"] = "[" . date("Y-m-d H:i:s", time()) . "] {$operatorName} ";
- $sqlParam[":wkid"] = $workInfo["id"];
- $sqlParam[":biz_roletype"] = ($handleMode == "paySettleByTrader2" ? 1 : 0);
- $sqlParam[":biz_userid"] = intval($bizUser["id"]);
- $sqlTemp = "";
- //商家冻结费用解冻
- $sqlTemp .= " insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select btr.biz_traderid, :nowtime , 0 , btr.feetotal, 1, 6 , tdwk.id, concat(:nowtime2,'工单结算时解冻工单费用\n') ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " where tdwk.id=:wkid;";
- //工单结算支出
- $sqlParam[":biz_catalog1"] = ($handleMode == "paySettleByPlater" ? 7 : 6); //6-工单整体支出;7-平台代整体结算
- $sqlTemp .= " insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, remark )";
- $sqlTemp .= " select btr.biz_traderid, :nowtime , 1 , btr.feetotal, 1, :biz_catalog1 , tdwk.id, concat(:nowtime2,'工单结算时支出工单费用\n') ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " where tdwk.id=:wkid;";
- //------------------------------------
- $share_workerid = intval($workInfo["share_workerid"]);
- if ($share_workerid > 0) {
- $platerMoney = $platerMoney - $sharerMoney;
- }
- $sqlParam[":platerMoney"] = $platerMoney; //平台分成
- $sqlTemp .= " insert into biz_trader_account ( deleted, `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, remark )";
- $sqlTemp .= " select 9, btr.biz_traderid , :nowtime , 1 , :platerMoney, 1, 1 , tdwk.id, concat(:nowtime2,'工单结算时平台分成\n') ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " where tdwk.id=:wkid;";
- if ($share_workerid > 0) { //分享佣金
- $sqlParam[":sharerMoney"] = $sharerMoney;
- $sqlParam[":share_workerid"] = $share_workerid;
- $sqlTemp .= " insert into biz_trader_account ( deleted, `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, remark )";
- $sqlTemp .= " select 9, btr.biz_traderid , :nowtime , 1 , :sharerMoney, 1, 2 , :wkid, concat(:nowtime2,'工单结算时佣金分成支出\n') ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " where tdwk.id=:wkid;";
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select :share_workerid , :nowtime , 0 , :sharerMoney, 1, 1 , :wkid, concat(:nowtime2,'工单结算时佣金分成收入\n') from dual where 1=1;";
- }
- $sqlParam[":workerMoney"] = $workerMoney; //工人工资
- $sqlParam[":doed_workerid"] = intval($workInfo["biz_workerid"]);
- $sqlTemp .= " insert into biz_trader_account ( deleted, `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, remark )";
- $sqlTemp .= " select 9, btr.biz_traderid , :nowtime , 1 , :workerMoney, 1, 3 , :wkid, concat(:nowtime2,'工单结算时工资支出\n') ";
- $sqlTemp .= " from biz_todowork tdwk";
- $sqlTemp .= " left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp .= " where tdwk.id=:wkid;";
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select :doed_workerid , :nowtime , 0 , :workerMoney, 1, 0 , :wkid, concat(:nowtime2,'工单结算时工资收入\n') from dual where 1=1;";
- /*
- //报名押金退还
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select biz_workerid , :nowtime , 0 , enroll_premoney, 1, 7 , id, concat(:nowtime2,'工单结算时押金退还\n') ";
- $sqlTemp .= " from biz_todowork where id=:wkid;";
- //修正工单状态
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`=5 "; //已结算
- $sqlTemp .= " ,settled_time=:nowtime,settled_mode=:biz_roletype,settled_userid=:biz_userid";
- $sqlTemp .= " ,remark=concat(:nowtime2,'工单已结算\n',ifnull(remark,'')) where id=:wkid;";
- */
- //报名押金退还
- $sqlTemp .= " insert into biz_worker_account ( `biz_workerid`, `createtime`,`type`, `money`, `status`, `biz_catalog`,`biz_id`, remark )";
- $sqlTemp .= " select biz_workerid , :nowtime , 0 , enroll_premoney, 1, 7 , id, concat(:nowtime2,'工单结算时押金退还\n') ";
- $sqlTemp .= " from biz_todowork where id=:wkid;";
- //修正工单状态
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime,`status`=5 "; //已结算
- $sqlTemp .= " ,settled_time=:nowtime,settled_mode=:biz_roletype,settled_userid=:biz_userid";
- $sqlTemp .= " ,remark=concat(:nowtime2,'工单已结算\n',ifnull(remark,'')) where id=:wkid;";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- return true;
- });
- return $backdata;
- break;
- case "appraiseByWorker":
- $workId = isset($ajaxdata["workid"]) ? $ajaxdata["workid"] : $GPC["workid"];
- if (intval($workId) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid/workid参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select tdwk.*,btr.biz_traderid
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.id=" . intval($workId));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单id没有对应的记录,请核查!");
- }
- if (intval($workInfo["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- if (intval($workInfo["biz_workerid"]) != intval($bizWorker["id"])) {
- throw new GeneralException("", "此订单记录不是您的,请核查后再处理!");
- }
- if (intval($workInfo["status"] != 5)) {
- throw new GeneralException("", "不是已结算状态,不能进行评价!");
- }
- $appraiseLevel = isset($ajaxdata["appraiseLevel"]) ? $ajaxdata["appraiseLevel"] : $GPC["appraiseLevel"];
- $appraiseRemark = isset($ajaxdata["appraiseRemark"]) ? $ajaxdata["appraiseRemark"] : $GPC["appraiseRemark"];
- $sqlParam = array();
- $sqlParam[":biz_catalog"] = 1; //0-会员对活动评价;1-会员对工作过程雇主评价;2-雇主商家对会员工作过程评价;
- $sqlParam[":biz_id"] = intval($workInfo["id"]);
- $appraisal = pdo_fetch("select * from biz_appraisal where biz_catalog=:biz_catalog and biz_id=:biz_id", $sqlParam);
- if (!empty($appraisal)) {
- throw new GeneralException("hasAppraised", "您已评价过,不能重复评价!");
- }
- $sqlParam[":fromerid"] = intval($workInfo["biz_workerid"]);
- $sqlParam[":toerid"] = intval($workInfo["biz_traderid"]);
- $sqlParam[":nowtime"] = time();
- $sqlParam[":result_level"] = intval($appraiseLevel);
- $sqlParam[":result_desc"] = trim($appraiseRemark);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 会员对工作过程雇主评价\n";
- $sqlTemp = "";
- $sqlTemp .= " set @handle_id=0; ";
- $sqlTemp .= " select @handle_id:=id from biz_appraisal where biz_catalog=:biz_catalog and biz_id=:biz_id limit 1;";
- $sqlTemp .= " insert into biz_appraisal ( `createtime`,`biz_catalog`, biz_id, `fromerid`, `toerid`,`result_level`, result_desc, remark)";
- $sqlTemp .= " select :nowtime, :biz_catalog,:biz_id, :fromerid, :toerid , :result_level,:result_desc,:remark from dual where ifnull(@handle_id,0)=0;";
- $sqlTemp .= " update biz_appraisal set updatetime=:nowtime,fromerid=:fromerid,toerid=:toerid, `result_level`=:result_level, result_desc=:result_desc, remark=concat(:remark,remark) where ifnull(@handle_id,0)<>0 and id=ifnull(@handle_id,0);";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- case "appraiseByTrader":
- $workId = isset($ajaxdata["workid"]) ? $ajaxdata["workid"] : $GPC["workid"];
- if (intval($workId) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid/workid参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select tdwk.*,btr.biz_traderid
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.id=" . intval($workId));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单id没有对应的记录,请核查!");
- }
- if (intval($workInfo["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- if (intval($workInfo["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "此订单记录不属于您发布的招聘,请核查后再处理!");
- }
- if (intval($workInfo["status"] != 5)) {
- throw new GeneralException("", "不是已结算状态,不能进行评价!");
- }
- $appraiseLevel = isset($ajaxdata["appraiseLevel"]) ? $ajaxdata["appraiseLevel"] : $GPC["appraiseLevel"];
- $appraiseRemark = isset($ajaxdata["appraiseRemark"]) ? $ajaxdata["appraiseRemark"] : $GPC["appraiseRemark"];
- $sqlParam = array();
- $sqlParam[":biz_catalog"] = 2; //0-会员对活动评价;1-会员对工作过程雇主评价;2-雇主商家对会员工作过程评价;
- $sqlParam[":biz_id"] = intval($workInfo["id"]);
- $appraisal = pdo_fetch("select * from biz_appraisal where biz_catalog=:biz_catalog and biz_id=:biz_id", $sqlParam);
- if (!empty($appraisal)) {
- throw new GeneralException("hasAppraised", "您已评价过,不能重复评价!");
- }
- $sqlParam[":fromerid"] = intval($workInfo["biz_traderid"]);
- $sqlParam[":toerid"] = intval($workInfo["biz_workerid"]);
- $sqlParam[":nowtime"] = time();
- $sqlParam[":result_level"] = intval($appraiseLevel);
- $sqlParam[":result_desc"] = trim($appraiseRemark);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 雇主商家对会员工作过程评价\n";
- $sqlTemp = "";
- $sqlTemp .= " set @handle_id=0; ";
- $sqlTemp .= " select @handle_id:=id from biz_appraisal where biz_catalog=:biz_catalog and biz_id=:biz_id limit 1;";
- $sqlTemp .= " insert into biz_appraisal ( `createtime`,`biz_catalog`, biz_id, `fromerid`, `toerid`,`result_level`, result_desc, remark)";
- $sqlTemp .= " select :nowtime, :biz_catalog,:biz_id, :fromerid, :toerid , :result_level,:result_desc,:remark from dual where ifnull(@handle_id,0)=0;";
- $sqlTemp .= " update biz_appraisal set updatetime=:nowtime,fromerid=:fromerid,toerid=:toerid, `result_level`=:result_level, result_desc=:result_desc, remark=concat(:remark,remark) where ifnull(@handle_id,0)<>0 and id=ifnull(@handle_id,0);";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- case "fetchWorkPayQRByWorker":
- $workId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (intval($workId) <= 0) {
- throw new GeneralException("", "没有传递必要的bizId参数或参数值不正确");
- }
- $workInfo = pdo_fetch("select tdwk.*,btr.biz_traderid
- from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- where tdwk.id=" . intval($workId));
- if (empty($workInfo)) {
- throw new GeneralException("", "订单id没有对应的记录,请核查!");
- }
- if (intval($workInfo["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- if (intval($workInfo["biz_workerid"]) != intval($bizWorker["id"])) {
- throw new GeneralException("", "此订单记录不属于您的工单,请核查后再处理!");
- }
- if (intval($workInfo["status"] != 4)) {
- throw new GeneralException("", "工单已不是待结算状态了!");
- }
- //-----------------------------------------------------
- $payqr = WEB_URL_FILEROOT . "/SALARYPAY/PAYQR_" . intval($workId) . "_";
- $phySavePath = WEB_PHY_FILEROOT . "/SALARYPAY/PAYQR_" . intval($workId) . "_";
- $qrcatalog = 0; //0-普通二维码;1-小程序码;
- switch ($qrcatalog) {
- case 0:
- $payqr .= "qr.png";
- $phySavePath .= "qr.png";
- require_once WEB_PHY_ROOT . "/base/lib_qr.php";
- //$linkhref=WEBAPI_IMG_HOSTURL."/index.php?workid=".intval($item["id"]);
- $linkhref = "workid=" . intval($workInfo["id"]);
- lib_qrbuild2("png", $linkhref, $phySavePath, 200, 8);
- break;
- case 1:
- $payqr .= "qrmina.png";
- $phySavePath .= "qrmina.png";
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $wxParams = bizwx_fetchWxParams(SUBSYS_CAPITAL2_MINA); //谁扫用谁
- $mina_appid = $wxParams["mina_appid"];
- $mina_appSecret = $wxParams["mina_appSecret"];
- $bizCatalog = 0;
- $bizId = intval($workInfo["id"]);
- $userId = intval($bizWorker["id"]);
- weixin_getMinaQCode($mina_appid, $mina_appSecret, $phySavePath, $bizCatalog, $bizId, $userId, "pages/index/index");
- break;
- }
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 生成核销码 \n";
- $sqlParam[":wkid"] = intval($workInfo["id"]);
- $sqlParam[":payqr"] = $payqr;
- //paycode
- $padLength = (6 - mb_strlen(intval($workInfo["id"]) . ""));
- $padPrefix = "";
- for ($iii = 1; $iii <= $padLength; $iii++) {
- $padPrefix .= ($iii == 1 ? "A" : "0");
- }
- $sqlParam[":paycode"] = $padPrefix . intval($workInfo["id"]);
- $sqlTemp = "";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime, remark=concat(:remark,ifnull(remark,''))";
- $sqlTemp .= " ,`payqr`=:payqr ,`paycode`=:paycode ";
- $sqlTemp .= " where id=:wkid;";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return array("payqr" => $payqr, "paycode" => $sqlParam[":paycode"]);
- break;
- default:throw new GeneralException("", "不支持的handleMode!");
- }
- }
- function bizbase_todoWorkPayCore($prePayArgs, $bizArgs)
- {
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $prePayInfo = weixin_prepayBuildV3($prePayArgs, $bizArgs, function ($bizCatalog, $bizId, $bizArgs) {
- $minaCode = $bizArgs["minaCode"];
- $bizInfo = $bizArgs["bizInfo"];
- $handleMode = $bizArgs["handleMode"];
- $bizUser = $bizArgs["bizUser"];
- $wxmina_appid = $bizArgs["wxmina_appid"];
- $wxmina_openid = $bizArgs["wxmina_openid"];
- //---------------------------------------
- $payTotal = round(floatval($bizInfo["money"]), 2);
- if ($payTotal <= 0) {
- throw new GeneralException("", "购买金额竟然小于等于0");
- }
- $payTotal = $payTotal * 100; //转为分
- //---------------------------------------
- $sqlParam = array();
- $sqlParam[":id"] = intval($bizInfo["id"]);
- $sqlParam[":wxmina_appid"] = $wxmina_appid;
- $sqlParam[":wxmina_openid"] = $wxmina_openid;
- $outtradeno = substr(date('YmdHiis') . md5(uniqid()), 0, 32);
- $sqlParam[":outtradeno"] = $outtradeno;
- $sqlTemp = " update biz_trader_account set";
- $sqlTemp .= " wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid,weixin_outtradeno=:outtradeno";
- $sqlTemp .= " where id=:id; ";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- //---------------------------------------
- $prePayInfo = array();
- $prePayInfo["appid"] = $wxmina_appid;
- $prePayInfo["mchId"] = WeiXinPay_mchId;
- $prePayInfo["mch_paykeyV2"] = WeiXinPay_apiKey;
- $prePayInfo["mch_paykeyV3"] = WeiXinPay_apiKeyV3;
- $prePayInfo["out_trade_no"] = $outtradeno;
- //$prePayInfo["out_trade_no"] = $bizInfo["biz_idtag"];
- $prePayInfo["total"] = "{$payTotal}";
- $prePayInfo["description"] = "订单支付业务";
- $prePayInfo["openid"] = $wxmina_openid;
- return $prePayInfo;
- });
- return $prePayInfo;
- }
- function bizbase_todoWorkEnrollVerify($handleMode, $bizWorker, $recruitInfo, $planDotime, $nowWorkId = 0, $teamid = 0)
- {
- $logcommon = "handleMode=>" . $handleMode . " recruitInfoId=>" . $recruitInfo["id"] . " bizWorkerId=>" . $bizWorker["id"] . " planDotime=>" . $planDotime . " nowWorkId=>" . $nowWorkId;
- //招聘记录状态检测
- if (intval($recruitInfo["status"]) != 2) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "招聘已不是可报名状态 {$logcommon} ");
- if (intval($teamid) > 0) {
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":teamid"] = intval($teamid);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 招聘已不可报名,团组解散 \n";
- $sqlTemp = "";
- $sqlTemp .= " update biz_todoworkteam set updatetime=:nowtime";
- $sqlTemp .= " , `status`=2, remark=:remark";
- $sqlTemp .= " where id=:teamid;";
- $sqlTemp .= " update biz_todowork set updatetime=:nowtime ";
- $sqlTemp .= " , `teamstatus`=-3, teamremark=:remark";
- $sqlTemp .= " , `status`=-2, remark=:remark ";
- $sqlTemp .= " where workteamid=:teamid and `teamstatus`>=0 ";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- }
- throw new GeneralException("", "非常抱歉,招聘已不可报名!");
- }
- //性别限制逻辑 0-不限;1-限男;2-限女
- switch (intval($recruitInfo["gender_mode"])) {
- case 1:
- if (intval($bizWorker["gender"]) > 0) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "招聘限制男,但不是男 {$logcommon} ");
- if ($handleMode == "teamEnroll") {
- return false;
- }
- throw new GeneralException("hasEnrolled", "非常抱歉,此招聘限制性别为男!");
- }
- if (intval($bizWorker["gender"]) < 0) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "招聘限制男,但不是男 {$logcommon} ");
- if ($handleMode == "teamEnroll") {
- return false;
- }
- throw new GeneralException("hasEnrolled", "非常抱歉,此招聘限制性别为男,请完善信息后再报名!");
- }
- break;
- case 2:
- if (intval($bizWorker["gender"]) == 0) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "招聘限制女,但不是女 {$logcommon} ");
- if ($handleMode == "teamEnroll") {
- return false;
- }
- throw new GeneralException("hasEnrolled", "非常抱歉,此招聘限制性别为女!");
- }
- if (intval($bizWorker["gender"]) < 0) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "招聘限制女,但不是女 {$logcommon} ");
- if ($handleMode == "teamEnroll") {
- return false;
- }
- throw new GeneralException("hasEnrolled", "非常抱歉,此招聘限制性别为女,请完善信息后再报名!");
- }
- break;
- }
- //年龄限制逻辑
- if (intval($recruitInfo["age_mode"]) > 0) {
- $age_min = intval($recruitInfo["age_min"]);
- $age_max = intval($recruitInfo["age_max"]);
- $age = 0;
- if (intval($bizWorker["birthday"]) > 0) {
- $birthdate = date("Ymd", $bizWorker["birthday"]);
- $datetime1 = date_create_from_format("Ymd", $birthdate);
- $datetime1 = new \DateTime(date("Y-m-d", date_timestamp_get($datetime1)));
- $datetime2 = new \DateTime(date("Y-m-d", time()));
- $interval = $datetime1->diff($datetime2);
- $age = intval($interval->format('%Y'));
- }
- if ($age > 0) {
- if ($age < $age_min) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "招聘限制年龄,小于最小年龄要求 {$logcommon} ");
- if ($handleMode == "teamEnroll") {
- return false;
- }
- throw new GeneralException("hasEnrolled", "非常抱歉,您的年龄({$age}岁)小于此招聘要求的最小年龄({$age_min}岁)要求,无法报名!");
- }
- if ($age > $age_max) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "招聘限制年龄,大于最大年龄要求 {$logcommon} ");
- if ($handleMode == "teamEnroll") {
- return false;
- }
- throw new GeneralException("hasEnrolled", "非常抱歉,您的年龄({$age}岁)大于此招聘要求的最大年龄({$age_min}岁)要求,无法报名!");
- }
- }
- }
- $oldList = pdo_fetch("select * from biz_todowork
- where id<>:nowWorkId and biz_recruitid=:biz_recruitid and biz_workerid=:biz_workerid and !find_in_set(ifnull(`status`,0),:status) ", array(
- ":nowWorkId" => intval($nowWorkId),
- ":biz_recruitid" => $recruitInfo["id"],
- ":biz_workerid" => $bizWorker["id"],
- ":status" => "-2,-3,-4,0", //主动取消/被违约/被动取消后都可再报
- ));
- if (!empty($oldList)) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "您已成功报名过此招聘或已被驳回,不能重复报名此招聘 {$logcommon} ");
- if ($handleMode == "teamEnroll") {
- return false;
- }
- throw new GeneralException("hasEnrolled", "您已成功报名过此招聘或已被驳回,不能重复报名此招聘,请核查!");
- }
- $workDateStart = intval($recruitInfo["begin_datetime"]);
- $workDateFinish = $workDateStart;
- if (intval($recruitInfo["settle_catalog"]) <= 0//普通招聘的多日招聘
- && intval($recruitInfo["begin_datetime"]) < intval($recruitInfo["finish_datetime"])) {
- $workDateFinish = intval($recruitInfo["finish_datetime"]);
- }
- if (intval($recruitInfo["settle_catalog"]) > 0) {
- $workDateStart = strtotime(date("Y-m-d", $planDotime));
- $workDateFinish = strtotime(date("Y-m-d 23:59:59", $planDotime));
- }
- // if(($workDateStart+intval($recruitInfo["begin_hour2"]))<=time()+3600*2)
- if (($workDateStart + intval($recruitInfo["begin_hour2"])) <= time()) {
- throw new GeneralException("overdue", "已过招聘可报名时间,不能再报名!");
- }
- $oldList = pdo_fetch("select tdwk.* from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid
- where tdwk.id<>:nowWorkId and tdwk.biz_workerid=:biz_workerid and ifnull(tdwk.`status`,0)>=2 and ifnull(tdwk.`status`,0)!=5
- and(
- (tdwk.todo_begindate>=:plandoDateStart and tdwk.todo_begindate<=:plandoDateFinish)
- or(:nowSettleCatalog=0 and tdwk.todo_begindate>=:workDateStart and tdwk.todo_begindate<=:workDateFinish)
- or( btr.settle_catalog<=0 and btr.finish_datetime>btr.begin_datetime and (
- (btr.begin_datetime>=:workDateStart and btr.begin_datetime<=:workDateFinish)
- or(btr.begin_datetime<=:workDateStart and btr.finish_datetime>=:workDateFinish)
- or(btr.finish_datetime>=:workDateStart and btr.finish_datetime<=:workDateFinish)
- ))
- )", array(
- ":nowWorkId" => intval($nowWorkId),
- ":biz_workerid" => $bizWorker["id"],
- ":nowSettleCatalog" => intval($recruitInfo["settle_catalog"]),
- ":plandoDateStart" => strtotime(date("Y-m-d", $planDotime)),
- ":plandoDateFinish" => strtotime(date("Y-m-d 23:59:59", $planDotime)),
- ":workDateStart" => $workDateStart,
- ":workDateFinish" => $workDateFinish,
- ));
- //urgent_level 为1 则为今日零工 今日零工取消限制
- if (1 != $recruitInfo['urgent_level']) {
- if (!empty($oldList)) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "您已成功报名此日期(段)的招聘,同一天不能报名多个招聘 {$logcommon} ");
- if ($handleMode == "teamEnroll") {
- return false;
- }
- throw new GeneralException("hasDateEnrolled", "您已成功报名此日期(段)的招聘,同一天不能报名多个招聘,请核查!");
- }
- if (intval($recruitInfo["enroll_audit"]) > 0 || $handleMode == "openTeam" || $handleMode == "joinTeam") { //需要报名审核/开参团模式
- $oldList = pdo_fetchall("select tdwk.* from biz_todowork tdwk
- left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid
- left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid
- where tdwk.id<>:nowWorkId and tdwk.biz_workerid=:biz_workerid and ( (tdwk.`workteam_mode`<=0 and tdwk.`status`=1) or (tdwk.`workteam_mode`>0 and tdwk.`teamstatus`>=2 and tdwkt.`status`=3) )
- and(
- (tdwk.todo_begindate>=:plandoDateStart and tdwk.todo_begindate<=:plandoDateFinish)
- or(:nowSettleCatalog=0 and tdwk.todo_begindate>=:workDateStart and tdwk.todo_begindate<=:workDateFinish)
- or( btr.settle_catalog<=0 and btr.finish_datetime>btr.begin_datetime and (
- (btr.begin_datetime>=:workDateStart and btr.begin_datetime<=:workDateFinish)
- or(btr.begin_datetime<=:workDateStart and btr.finish_datetime>=:workDateFinish)
- or(btr.finish_datetime>=:workDateStart and btr.finish_datetime<=:workDateFinish)
- ))
- )", array(
- ":nowWorkId" => intval($nowWorkId),
- ":biz_workerid" => $bizWorker["id"],
- ":nowSettleCatalog" => intval($recruitInfo["settle_catalog"]),
- ":plandoDateStart" => strtotime(date("Y-m-d", $planDotime)),
- ":plandoDateFinish" => strtotime(date("Y-m-d 23:59:59", $planDotime)),
- ":workDateStart" => $workDateStart,
- ":workDateFinish" => $workDateFinish,
- ));
- if (count($oldList) >= 3) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "您报名此日期(段)的待录用招聘数量已达最大3个的限制 {$logcommon} ");
- if ($handleMode == "teamEnroll") {
- return false;
- }
- throw new GeneralException("hasDateQueue", "您报名此日期(段)的待录用招聘数量已达最大3个的限制,请核查!");
- }
- }
- }
- if ($handleMode == "openTeam" || $handleMode == "joinTeam") {
- $oldList = pdo_fetch("select * from biz_todoworkteam where biz_recruitid=:biz_recruitid and leader_workerid=:leader_workerid and !find_in_set(ifnull(`status`,0),:status) ", array(
- ":biz_recruitid" => $recruitInfo["id"],
- ":leader_workerid" => $bizWorker["id"],
- ":status" => "0,2,6", //解散/被违约
- ));
- if (!empty($oldList)) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "您已对此招聘开团了,不能重复开参团 {$logcommon} ");
- throw new GeneralException("hasOpenTeam", "您已对此招聘开团了,不能重复开参团,请核查!");
- }
- $oldList = pdo_fetch("select tdwk.* from biz_todowork tdwk
- left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid
- where tdwk.biz_recruitid=:biz_recruitid and tdwk.biz_workerid=:biz_workerid
- and tdwk.workteam_mode>0 and tdwk.teamstatus>=1
- and !find_in_set(ifnull(tdwkt.`status`,0),:status) ", array(
- ":biz_recruitid" => $recruitInfo["id"],
- ":biz_workerid" => $bizWorker["id"],
- ":status" => "0,2,6", //解散/被违约
- ));
- if (!empty($oldList)) {
- eeglobal_log_handler("bizbase_todoWorkEnrollVerify", "debug", "您已报名过此招聘的团组,不能重复开参团 {$logcommon} ");
- throw new GeneralException("hasJoinTeam", "您已报名过此招聘的团组,不能重复开参团,请核查!");
- }
- }
- return true;
- }
- function bizbase_todoWorkTeamStatusName($statusCode)
- {
- switch (intval($statusCode)) {
- case 0:
- $statusName = "待成团";
- break;
- case 1:
- $statusName = "已成团待提交报名";
- break;
- case 2:
- $statusName = "已解散";
- break;
- case 3:
- $statusName = "已报名待审核";
- break;
- case 4:
- $statusName = "报名已审核通过";
- break;
- case 5:
- $statusName = "报名被驳回";
- break;
- case 6:
- $statusName = "被违约";
- break;
- case 7:
- $statusName = "主动取消报名";
- break;
- case 8:
- $statusName = "被动取消报名";
- break;
- }
- return $statusName;
- }
- function bizbase_todoWorkSubTeamStatusName($statusCode)
- {
- switch (intval($statusCode)) {
- case 0: //0-待参团;1-已提交参团;2-已入团;-1-参团被驳回;-2-参团被踢出;-3-已解散;-4-被动取消;
- $statusName = "待参团";
- break;
- case 1:
- $statusName = "已提交参团";
- break;
- case 2:
- $statusName = "已入团";
- break;
- case -1:
- $statusName = "参团被驳回";
- break;
- case -2:
- $statusName = "参团被踢出";
- break;
- case -3:
- $statusName = "已解散";
- break;
- case -4:
- $statusName = "被动取消";
- break;
- }
- return $statusName;
- }
- function bizbase_todoWorkTeamRoleName($mode)
- {
- switch (intval($mode)) {
- case 0:
- $roleName = "单干";
- break;
- case 1:
- $roleName = "开团";
- break;
- case 2:
- $roleName = "参团";
- break;
- }
- return $roleName;
- }
- function bizbase_todoWorkStatusName($statusCode)
- {
- switch (intval($statusCode)) {
- case 0:
- $statusName = "已下单待付押金";
- break;
- case 1:
- $statusName = "已报名待录用";
- break;
- case 2:
- $statusName = "已录用待开工";
- break;
- case -1:
- $statusName = "报名被驳回";
- break;
- case 3:
- $statusName = "已开始工作";
- break;
- case 4:
- $statusName = "已结束工作待结算";
- break;
- case 5:
- $statusName = "已结算";
- break;
- case 90:
- $statusName = "拒绝支付待审核";
- break;
- case -2:
- $statusName = "取消报名";
- break;
- case -3:
- $statusName = "被违约";
- break;
- case -4:
- $statusName = "被动取消";
- break;
- case -5:
- $statusName = "拒绝支付";
- break;
- case -6:
- $statusName = "未开始工作";
- break;
- case -7:
- $statusName = "未结束工作";
- break;
- case -8:
- $statusName = "超48小时未结算";
- break;
- }
- return $statusName;
- }
- function bizbase_todoWorkAboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC)
- {
- if (intval($baseUser["subsystem"]) == SUBSYS_LABOUR_MINA) {
- $bizWorker = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL_MINA) {
- $bizTrader = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL2_MINA) {
- $bizTrader2 = $bizUser;
- }
- switch ($handleMode) {
- case "fetchallRecuritNew":
- $all = input_getPostObj();
- if (!$all['status'] || $all['status'] == 0 || $all['status'] > 3) {
- throw new GeneralException("", "status参数错误!");
- }
- $status = $all['status'];
- $start = (intval($pageIndex) - 1) * $pageSize;
- // if status=1 查看招聘,条件:没有开始的任务根据开始时间和时间进行判断
- $sql = "";
- //where发布人
- // if($status == 1){
- // //where发布人
- // $sql_select = "SELECT t.*,FROM_UNIXTIME(t.begin_datetime,\"%Y-%m-%d\") as begin_datetime_bright,FROM_UNIXTIME(t.finish_datetime,\"%Y-%m-%d\") as finish_datetime_bright";
- // // 1数据库里面begin_datetime开始时间(年月日)转成20201011格式
- // // 2begin_hour开工时间 11:00转换 1100
- // // 3将两个字段拼接成一个
- // $sql .=" FROM (SELECT *, CONCAT(FROM_UNIXTIME(begin_datetime,\"%Y%m%d\"), REPLACE(begin_hour,':','')) AS begin_time_new FROM biz_trader_recruit WHERE biz_traderid={$baseUser['biz_userid']}) t ";
- // $sql .= " where t.begin_time_new > ".date('YmdHi',time());
- // $sql .= " AND t.status != -2";
- // $sql .= " ORDER BY id DESC";
- // $sql .= " limit {$start},{$pageSize}";
- // $list = pdo_fetchall($sql_select.$sql, array());
- //
- // }elseif($status == 2){
- // $sql_select = "SELECT t.*,FROM_UNIXTIME(t.begin_datetime,\"%Y-%m-%d\") as begin_datetime_bright,FROM_UNIXTIME(t.finish_datetime,\"%Y-%m-%d\") as finish_datetime_bright,tdwk.status as biz_todowork_status";
- // $sql .=" FROM (SELECT *, CONCAT(FROM_UNIXTIME(begin_datetime,\"%Y%m%d\"), REPLACE(begin_hour,':','')) AS begin_time_new FROM biz_trader_recruit WHERE biz_traderid={$baseUser['biz_userid']}) t ";
- // $sql .= "left join biz_todowork tdwk on t.id=tdwk.biz_recruitid ";
- // $sql .= " where t.begin_time_new < ".date('YmdHi',time());
- // $sql .= " AND t.status != -2";
- // $sql .= " AND tdwk.status IN (2,3,4,90)";
- // $sql .= " ORDER BY id DESC";
- // $sql .= " limit {$start},{$pageSize}";
- // $list = pdo_fetchall($sql_select.$sql, array());
- // }elseif ($status == 3){
- // $sql_select = "SELECT t.*,FROM_UNIXTIME(t.begin_datetime,\"%Y-%m-%d\") as begin_datetime_bright,FROM_UNIXTIME(t.finish_datetime,\"%Y-%m-%d\") as finish_datetime_bright";
- // $sql .=" FROM (SELECT *, CONCAT(FROM_UNIXTIME(begin_datetime,\"%Y%m%d\"), REPLACE(begin_hour,':','')) AS begin_time_new FROM biz_trader_recruit WHERE biz_traderid={$baseUser['biz_userid']}) t ";
- //// $sql .= "left join biz_todowork tdwk on t.id=tdwk.biz_recruitid ";
- //// $sql .= " AND tdwk.status NOT IN (2,3,4,90)";
- // $sql .= " where t.begin_time_new < ".date('YmdHi',time());
- // $sql .= " OR t.status = -2";
- // $sql .= " ORDER BY id DESC";
- // $sql .= " limit {$start},{$pageSize}";
- // $list = pdo_fetchall($sql_select.$sql, array());
- // }
- if ($status == 1) {
- //where发布人
- $sql_select = "SELECT * FROM biz_trader_recruit WHERE biz_traderid={$baseUser['biz_userid']} ";
- $sql .= " AND status = 2 AND is_delete = 0 ";
- $sql .= " ORDER BY id DESC";
- $sql .= " limit {$start},{$pageSize}";
- $list = pdo_fetchall($sql_select . $sql, array());
- } elseif ($status == 2) {
- $sql_select = "SELECT t.* FROM ( SELECT *,( SELECT count(*) FROM biz_todowork WHERE biz_todowork.biz_recruitid = biz_trader_recruit.id AND status IN (2,3,4,90,-8,-7,-6) ) AS biz_todowork_count FROM biz_trader_recruit WHERE biz_traderid = {$baseUser['biz_userid']} ) t ";
- $sql .= " WHERE t.biz_todowork_count >= 1 AND t.is_delete = 0 ";
- $sql .= " ORDER BY id DESC";
- $sql .= " limit {$start},{$pageSize}";
- $list = pdo_fetchall($sql_select . $sql, array());
- } elseif ($status == 3) {
- $sql_select = "SELECT t.* FROM ( SELECT *,( SELECT count(*) FROM biz_todowork WHERE biz_todowork.biz_recruitid = biz_trader_recruit.id AND status NOT IN (2,3,4,90,-8,-7,-6) ) AS biz_todowork_count FROM biz_trader_recruit WHERE biz_traderid = {$baseUser['biz_userid']} ) t ";
- $sql .= " WHERE t.biz_todowork_count >= 0 AND t.is_delete = 0 ";
- $sql .= " AND t.status != 2";
- $sql .= " ORDER BY id DESC";
- $sql .= " limit {$start},{$pageSize}";
- $list = pdo_fetchall($sql_select . $sql, array());
- }
- foreach ($list as $k => $v) {
- $list[$k]['begin_datetime_bright'] = date('Y-m-d', $v['begin_datetime']);
- $list[$k]['finish_datetime_bright'] = date('Y-m-d', $v['finish_datetime']);
- // 已录用的数量
- $accepted_ok_sql = "SELECT COUNT(*) as count FROM biz_todowork where biz_recruitid = {$v['id']} AND status = 2";
- $list[$k]['accepted_ok'] = pdo_fetch($accepted_ok_sql, array())['count'];
- // 待录用
- $accepted_no_sql = "SELECT COUNT(*) as count FROM biz_todowork where biz_recruitid = {$v['id']} AND status = 1";
- $list[$k]['accepted_no'] = pdo_fetch($accepted_no_sql, array())['count'];
- // 已开始
- $status_three = "SELECT COUNT(*) as count FROM biz_todowork where biz_recruitid = {$v['id']} AND status = 3";
- $list[$k]['todowork_status_three'] = pdo_fetch($status_three, array())['count'];
- // 待结算
- $status_four = "SELECT COUNT(*) as count FROM biz_todowork where biz_recruitid = {$v['id']} AND status in (2,3,4)";
- $list[$k]['todowork_status_four'] = pdo_fetch($status_four, array())['count'];
- // 已结算
- $status_five = "SELECT COUNT(*) as count FROM biz_todowork where biz_recruitid = {$v['id']} AND status = 5";
- $list[$k]['todowork_status_five'] = pdo_fetch($status_five, array())['count'];
- $bizId = $v['id'];
- $sql = "select bw.id,bw.profile_photo from biz_trader_recruit as btr
- join biz_todowork as bt on btr.id=bt.biz_recruitid and bt.`status`>=1
- join biz_worker as bw on bw.id =bt.biz_workerid
- where btr.id=:btrid limit 3";
- $list[$k]['todo_list'] = pdo_fetchall($sql, array(
- ":btrid" => intval($bizId),
- ));
- }
- // 发布招聘的条数
- // $sql_one=" FROM (SELECT *, CONCAT(FROM_UNIXTIME(begin_datetime,\"%Y%m%d\"), REPLACE(begin_hour,':','')) AS begin_time_new FROM biz_trader_recruit WHERE biz_traderid={$baseUser['biz_userid']}) t ";
- // $sql_one .= " where t.begin_time_new > ".date('YmdHi',time());
- // $sql_one .= " AND t.status != -2";
- /*$sql_one = " FROM biz_trader_recruit WHERE biz_traderid={$baseUser['biz_userid']} AND status = 2 AND is_delete = 0 ";
- $count_one = "select count(*) as count " . $sql_one . ";";
- $sumDataOne = pdo_fetch($count_one, array());*/
- $sql_one = "select count(*) as count from biz_todowork as bit join biz_trader_recruit as btr on btr.id = bit.biz_recruitid where bit.`status`=1 and btr.`status`=2 and btr.biz_traderid = '{$baseUser['biz_userid']}' ";
- $sumDataOne = pdo_fetch($sql_one);
- // 查看工作的条数
- // $sql_two=" FROM (SELECT *, CONCAT(FROM_UNIXTIME(begin_datetime,\"%Y%m%d\"), REPLACE(begin_hour,':','')) AS begin_time_new FROM biz_trader_recruit WHERE biz_traderid={$baseUser['biz_userid']}) t ";
- // $sql_two .= "left join biz_todowork tdwk on t.id=tdwk.biz_recruitid ";
- // $sql_two .= " where t.begin_time_new < ".date('YmdHi',time());
- // $sql_two .= " AND t.status != -2";
- // $sql_two .= " AND tdwk.status IN (2,3,4,90)";
- // $count_two = "select count(*) as count ".$sql_two.";";
- $count_two = "SELECT COUNT(*) as count FROM ( SELECT *,( SELECT count(*) FROM biz_todowork WHERE biz_todowork.biz_recruitid = biz_trader_recruit.id AND status IN (2,3,4,90,-8,-7,-6) ) AS biz_todowork_count FROM biz_trader_recruit WHERE biz_traderid = {$baseUser['biz_userid']} ) t WHERE t.biz_todowork_count >= 1 AND t.is_delete = 0 ";
- $sumDataTwo = pdo_fetch($count_two, array());
- // 历史发布
- // $sql_three=" FROM (SELECT *, CONCAT(FROM_UNIXTIME(begin_datetime,\"%Y%m%d\"), REPLACE(begin_hour,':','')) AS begin_time_new FROM biz_trader_recruit WHERE biz_traderid={$baseUser['biz_userid']}) t ";
- // $sql_three .= " where t.begin_time_new < ".date('YmdHi',time());
- // $sql_three .= " OR t.status = -2";
- // $count_three = "select count(*) as count ".$sql_three.";";
- $count_three = "SELECT COUNT(*) as count FROM ( SELECT *,( SELECT count(*) FROM biz_todowork WHERE biz_todowork.biz_recruitid = biz_trader_recruit.id AND status NOT IN (2,3,4,90,-8,-7,-6) ) AS biz_todowork_count FROM biz_trader_recruit WHERE biz_traderid = {$baseUser['biz_userid']} ) t ";
- $count_three .= " WHERE t.biz_todowork_count >= 0 AND t.is_delete = 0 ";
- $count_three .= " AND t.status != 2";
- $sumDataThree = pdo_fetch($count_three, array());
- return array(
- "pageData" => $list,
- "count_one" => intval($sumDataOne["count"]),
- "count_two" => intval($sumDataTwo["count"]),
- "count_three" => intval($sumDataThree["count"]),
- );
- break;
- case "fetchallTeamByPlater":
- case "fetchallTeamByTrader":
- case "fetchallTeamByWorker":
- $sqlParam = array();
- //查询处理
- $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
- if (empty($query) && !is_array($query)) { //验证一下query信息集
- $query = " and 1=1 ";
- } else {
- $queryNew = " and 1=1 ";
- foreach ($query as $fdName => $fdValue) {
- if (empty($fdName) || empty($fdValue)) {
- continue;
- }
- switch ($fdName) {
- case "title":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_title";
- $queryNew .= " and (btr.title like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "status":
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and tdwkt.`status`=" . (intval($fdValue) - 1) . " ";
- break;
- }
- break;
- case "catalog":
- if (!empty($bizWorker)) {
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and tdwkt.leader_workerid=" . intval($bizWorker["id"]) . " ";
- break;
- case 2:
- $queryNew .= " and tdwkt.id in (select workteamid from biz_todowork where workteam_mode=2 and biz_workerid=" . intval($bizWorker["id"]) . " ) ";
- break;
- }
- }
- break;
- }
- }
- $query = $queryNew;
- }
- if (!empty($bizWorker)) {
- $query .= " and ( tdwkt.leader_workerid=" . intval($bizWorker["id"]);
- $query .= " or tdwkt.id in (select workteamid from biz_todowork where biz_workerid=" . intval($bizWorker["id"]) . " ) ";
- $query .= " )";
- }
- if (!empty($bizTrader)) {
- $query .= " and btr.biz_traderid=" . intval($bizTrader["id"]) . " ";
- }
- //排序处理
- $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
- switch (intval($orderby)) {
- case 1: //1-薪资额倒序
- $orderby = " order by btr.salary desc ";
- break;
- default: //0-默认时间倒序
- $orderby = " order by tdwkt.id desc ";
- break;
- }
- //构建sql串
- $sqlBody = "";
- $sqlBody .= " from biz_todoworkteam tdwkt ";
- $sqlBody .= " left join biz_trader_recruit btr on btr.id=tdwkt.biz_recruitid ";
- $sqlBody .= " left join biz_trader bt on bt.id=btr.biz_traderid ";
- $sqlBody .= " left join biz_worker lwk on lwk.id=tdwkt.leader_workerid ";
- $sqlBody .= " left join base_user lbu on lbu.id=lwk.base_userid ";
- $sqlBody .= " where 1=1 " . $query;
- //查询sql及统计sql
- $start = (intval($pageIndex) - 1) * $pageSize;
- $sqlFetch = " select tdwkt.* ";
- $sqlFetch .= " ,btr.title as recruit_title";
- $sqlFetch .= " ,bt.company_name as bt_company_name";
- $sqlFetch .= " ,(case when lwk.true_name<>'' then lwk.true_name else lwk.nickname end) as lwk_name,lbu.mobile as lbu_mobile,lwk.profile_photo as lwkprofile_photo";
- $sqlFetch .= " {$sqlBody} {$orderby} limit {$start},{$pageSize} ";
- $pageData = pdo_fetchall($sqlFetch, $sqlParam);
- //联合查询下,列项应该不算太多,可手工转换/映射!!或者以占主体的实体为主进行转换/映射;
- foreach ($pageData as &$data) { //数据转换/映射
- $data["iamleader"] = ($data["leader_workerid"] == intval($bizWorker["id"]));
- $data["createtime"] = date("Y-m-d H:i:s", $data["createtime"]);
- $data["plan_dotime"] = date("Y-m-d", $data["plan_dotime"]);
- $data["remark"] = trim(explode("\n", $data["remark"])[0]);
- $data["statusName"] = bizbase_todoWorkTeamStatusName(intval($data["status"]));
- }
- $sqlSummary = " select count(*) as count " . $sqlBody . ";";
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- return array(
- "pageData" => $pageData,
- "count" => intval($sumData["count"]),
- );
- break;
- case "fetchallTeamFollowByPlater":
- case "fetchallTeamFollowByTrader":
- case "fetchallTeamFollowByWorker":
- $teamid = isset($ajaxdata["teamid"]) ? $ajaxdata["teamid"] : $GPC["teamid"];
- if (intval($teamid) <= 0) {
- throw new GeneralException("", "没有传递必要的teamid参数或参数值不正确");
- }
- $teamInfo = pdo_fetch("select tdwkt.*, btr.biz_traderid
- from biz_todoworkteam tdwkt
- left join biz_trader_recruit btr on btr.id=tdwkt.biz_recruitid
- where tdwkt.id=" . intval($teamid));
- if (empty($teamInfo)) {
- throw new GeneralException("", "团组id没有对应的记录,请核查!");
- }
- if (!empty($bizTrader)) {
- if (intval($teamInfo["biz_traderid"]) != intval($bizTrader["id"])) {
- throw new GeneralException("", "此团组不是报的您家的名,请核查!");
- }
- }
- case "fetchallByPlater":
- case "fetchallByTrader":
- case "fetchallByTrader2":
- case "fetchallByWorker":
- case "fetchallRecurit":
- case "fetchallRecuritGroup":
- $exportExcel = isset($ajaxdata["exportExcel"]) ? $ajaxdata["exportExcel"] : $GPC["exportExcel"];
- $sqlParam = array();
- $sqlSelectExt = "";
- //查询处理
- $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
- $query = empty(trim($exportExcel)) ? $query : json_decode($query, true);
- if (empty($query) && !is_array($query)) { //验证一下query信息集
- $query = " and 1=1 and tdwk.status != 0 ";
- } else {
- $queryNew = " and 1=1 and tdwk.status != 0 ";
- foreach ($query as $fdName => $fdValue) {
- if (empty($fdName) || empty($fdValue)) {
- continue;
- }
- switch ($fdName) {
- case "nowUrgent":
- if (empty(trim($fdValue))) {
- continue;
- }
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and ( btr.urgent_level=1 ) ";
- break;
- case 2:
- $queryNew .= " and ( btr.urgent_level=0 )";
- break;
- }
- break;
- case "workerId":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and tdwk.biz_workerid=" . intval($fdValue) . " ";
- break;
- case "worksn":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and tdwk.id=" . base_fetchIdBySN($fdValue) . " ";
- break;
- case "traderId":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and btr.biz_traderid=" . intval($fdValue) . " ";
- break;
- case "recuritId":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and tdwk.biz_recruitid=" . intval($fdValue) . " ";
- break;
- case "recuritTitle":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_btrtitle";
- $queryNew .= " and (btr.title like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "workArea":
- if (empty($fdValue)) {
- continue;
- }
- if (trim($fdValue) == "全部") {
- continue;
- }
- $queryNew .= " and ( 1=0 ";
- foreach (explode("/", $fdValue) as $index => $subquery) {
- $paramName = ":qy_workArea_" . intval($index);
- $queryNew .= " or btr.work_addr like concat('%',{$paramName},'%') ";
- $sqlParam[$paramName] = $subquery;
- }
- $queryNew .= " ) ";
- break;
- case "memberName":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_wkname";
- $queryNew .= " and (wk.true_name like concat('%',{$paramName},'%') or wk.nickname like concat('%',{$paramName},'%')) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "memberMobile":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_memberMobile";
- $queryNew .= " and (bu.mobile like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "memberRealed":
- if (empty(trim($fdValue))) {
- continue;
- }
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and ifnull(wk.idcard,'')='' ";
- break;
- case 2:
- $queryNew .= " and ifnull(wk.idcard,'')<>'' ";
- break;
- }
- break;
- case "workSettleMode":
- if (empty(trim($fdValue))) {
- continue;
- }
- switch (intval($fdValue)) {
- case 1: //完工结
- $queryNew .= " and ( btr.settle_catalog=0 and btr.finish_datetime>btr.begin_datetime) ";
- break;
- case 2: //日结
- $queryNew .= " and ( btr.settle_catalog=0 and btr.finish_datetime<=btr.begin_datetime) ";
- break;
- case 3: //批量
- $queryNew .= " and ( btr.settle_catalog=1 ) ";
- break;
- }
- break;
- case "traderName":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_traderName";
- $queryNew .= " and (bt.company_name like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "startDate":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and tdwk.todo_begindate>=" . strtotime(date("Y-m-d", strtotime($fdValue))) . " and tdwk.todo_begindate<=" . strtotime(date("Y-m-d 23:59:59", strtotime($fdValue))) . " ";
- break;
- case "startDate2":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and tdwk.worked_begintime>=" . strtotime(date("Y-m-d", strtotime($fdValue))) . " and tdwk.worked_begintime<=" . strtotime(date("Y-m-d 23:59:59", strtotime($fdValue))) . " ";
- break;
- case "overtimePay":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and (tdwk.`status`=4 and " . time() . "-ifnull(tdwk.worked_finishtime,0)>24*3600) ";
- break;
- case "recuritStatus":
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and btr.`status`=0 ";
- break;
- case 2:
- $queryNew .= " and btr.`status`=1 ";
- break;
- case 3: //批量招聘 终止招聘 所以无法由时间判定进行中
- $queryNew .= " and (btr.`status`>=2 or btr.`status`=-2) ";
- break;
- case 4:
- $queryNew .= " and btr.`status`=-1 ";
- break;
- case 91: //待上线
- $queryNew .= " and (btr.`status`<2) ";
- break;
- }
- break;
- case "status": //0-待提交;1-已报名待审核;2-已审核待开工;-1-报名被驳回;3-已开始工作;4-已结束工作待结算;5-已结算;-2-取消报名;-3-被违约 -4-被动取消 -5-未结算
- switch (intval($fdValue)) {
- case 1: //结合一下团组态
- $queryNew .= " and ((tdwk.workteam_mode<=0 and tdwk.`status`=0) or (tdwk.workteam_mode>0 and tdwkt.`status`=0)) ";
- break;
- case 2:
- if (empty($teamInfo) && !empty($bizTrader)) { //商家待录用模式
- $bizTrader_EnrollWaitAudit = 9988;
- $queryNew .= " and ((tdwk.workteam_mode<=0 and tdwk.`status`=1) or (tdwk.workteam_mode=1 and tdwkt.`status`=3)) ";
- } else {
- $queryNew .= " and ((tdwk.workteam_mode<=0 and tdwk.`status`=1) or (tdwk.workteam_mode>0 and tdwkt.`status`=3 and tdwk.`status`=1)) ";
- }
- break;
- case 3:
- $queryNew .= " and ((tdwk.workteam_mode<=0 and tdwk.`status`=2) or (tdwk.workteam_mode>0 and tdwkt.`status`=4 and tdwk.`status`=2)) ";
- break;
- case 4:
- $queryNew .= " and ((tdwk.workteam_mode<=0 and tdwk.`status`=-1) or (tdwk.workteam_mode>0 and tdwkt.`status`=5)) ";
- break;
- case 5:
- $queryNew .= " and tdwk.`status`=3 ";
- break;
- case 6:
- $queryNew .= " and tdwk.`status` in (2,3,4) ";
- break;
- case 7:
- $queryNew .= " and tdwk.`status`=5 ";
- break;
- case 8:
- $queryNew .= " and tdwk.`status`=-2 ";
- break;
- case 9:
- $queryNew .= " and tdwk.`status`=-3 ";
- break;
- case 10:
- $queryNew .= " and tdwk.`status`=-4 ";
- break;
- case 11:
- $queryNew .= " and (tdwk.`status`=-5 or tdwk.`status`=-8) ";
- break;
- case 12:
- $queryNew .= " and tdwk.`status`=-6 ";
- break;
- case 13:
- $queryNew .= " and tdwk.`status`=-7 ";
- break;
- case 14:
- $queryNew .= " and (tdwk.`status`=-6 or tdwk.`status`=-7) ";
- break;
- case 15:
- $queryNew .= " and tdwk.`status`=-8 ";
- break;
- case 91: //进行中
- $queryNew .= " and tdwk.`status`>=2 and tdwk.`status`<=3 ";
- break;
- case 92: //异常订单
- $queryNew .= " and tdwk.`status`<0 ";
- break;
- case 93: //会员异常订单
- $workerExceptionQuery = 9988;
- $queryNew .= " and (tdwk.`status`=-6 or tdwk.`status`=-7";
- $queryNew .= " or (tdwk.`status`=4 and " . time() . "-ifnull(tdwk.worked_finishtime,0)>24*3600)";
- $queryNew .= " )";
- break;
- case 94: //商家异常订单
- $traderExceptionQuery = 9988;
- $queryNew .= " and (tdwk.`status`=-3 or tdwk.`status`=-5 or tdwk.`status`=-8";
- $queryNew .= " or (tdwk.`status`=4 and " . time() . "-ifnull(tdwk.worked_finishtime,0)>24*3600)";
- $queryNew .= " )";
- break;
- case 95: //平台代支付订单
- $queryNew .= " and ( tdwkat2.`biz_catalog`=7 )";
- break;
- case 96: //查看招聘信息
- //time()
- $queryNew .= " and ((btr.`begin_datetime` > '" . time() . "') and btr.status in (2,3,4,5)) ";
- // echo " and ((`createtime` between '".strtotime(date('Y-m-d',time())) ."' and '".time().")' and btr.status in (2,3,4,5)) ";
- // exit();
- // $pageData = pdo_fetchall($sql, array());
- // return array( "pagedata"=>$pageData,"args"=>array() );
- break;
- case 97: //查看工作,大于开始工作时间并且处于工作中的状态,并且没有纠纷
- $queryNew .= " and ( btr.`begin_datetime` < '" . strtotime(date('Y-m-d H:i:s', time())) . "' and btr.status in (2,3,4,5) and btr.id in (select biz_recruitid from biz_todowork where biz_todowork.status=2 or biz_todowork.status=3 or biz_todowork.status=4 or biz_todowork.status=90)) ";
- break;
- case 98: //历史发布
- // $queryNew .=" and ( btr.`finish_datetime` < '".strtotime(date('Y-m-d H:i:s',time()))."' and btr.id in (select biz_recruitid from biz_todowork where biz_todowork.status in (-1,-5,-2,-3,-4,5))
- // or btr.id in (select biz_trader_recruit.id from biz_trader_recruit left join biz_todowork on biz_todowork.biz_recruitid = biz_trader_recruit.id where (select count(*)as count from biz_todowork where biz_recruitid = biz_trader_recruit.id) = 0 and biz_trader_recruit.finish_datetime < '".strtotime(date('Y-m-d H:i:s',time()))."')
- // ) ";
- $sql = "select btr.id as btr_id,
- btr.*,btr.id as btr_id,tdwk.*,(case when (tdwk.`status`=4 and " . time() . "-ifnull(tdwk.worked_finishtime,0)>24*3600) then 1 else 0 end) as overtimePay
- ,tdwkt.id as tdwkt_id,tdwkt.`status` as tdwkt_status
- ,btr.`status` as recruit_status,btr.createtime as recruit_createtime,btr.updatetime as recruit_updatetime,btr.need_total as btr_need_total
- ,btr.title as recruit_title,from_unixtime(btr.begin_datetime,'%Y-%m-%d') as btr_begindatetime,from_unixtime(btr.finish_datetime,'%Y-%m-%d') as btr_finishdatetime
- ,btr.begin_hour as btr_begin_hour,btr.finish_hour as btr_finish_hour,btr.work_addr1 as btr_work_addr1,btr.feeper as btr_feeper,btr.feetotal as btr_feetotal
- ,btr.settle_catalog as btr_settle_catalog,btr.age_mode as btr_age_mode,btr.gender_mode as btr_gender_mode,btr.meals_providing as btr_meals_providing
- ,btr.salary as btr_salary,btr.feetotal as btr_feetotal,btr.settle_mode as btr_settle_mode
- ,bt.company_name as bt_company_name,btbu.mobile as btbu_mobile
- ,(case when ifnull(bt22.true_name,'')<>'' then bt22.true_name else bt22.nickname end) as bt22_true_name
- ,wk.id as wkid,(case when wk.true_name<>'' then wk.true_name else wk.nickname end) as wk_name,bu.mobile as bu_mobile,wk.profile_photo as wkprofile_photo
- ,wk.realname_handled as wk_realname_handled,wk.gender as wk_gender,wk.idcard as wk_idcard,wk.birthaddr as wk_birthaddr,wk.birthday as wk_birthday
- ,lwk.id as lwkid,(case when lwk.true_name<>'' then lwk.true_name else lwk.nickname end) as lwk_name,lbu.mobile as lbu_mobile,lwk.profile_photo as lwkprofile_photo
- ,concat(brd.id,'-',brd.begin_datetime,'-',brd.finish_datetime,'-',bt2.id,'-',bt2bu.id,'-',bt2bu.mobile,'-',bt2.true_name) as delegate_info
- ,wkapa.id as wkapa_id,wkapa.deleted as wkapa_deleted,wkapa.result_level as wk_appraiseLevel,wkapa.result_desc as wk_appraiseRemark
- ,tdapa.id as tdapa_id,tdapa.deleted as tdapa_deleted,tdapa.result_level as td_appraiseLevel,tdapa.result_desc as td_appraiseRemark
- ,tdwkat2.`biz_catalog` as tdwk_settlecatalog
- from biz_trader_recruit as btr
- left join biz_todowork tdwk on btr.id=tdwk.biz_recruitid
- left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid
- left join biz_trader bt on bt.id=btr.biz_traderid
- left join base_user btbu on btbu.id=bt.base_userid
- left join biz_trader2 bt22 on bt22.id=tdwk.settled_userid
- left join biz_worker lwk on lwk.id=tdwkt.leader_workerid left join base_user lbu on lbu.id=lwk.base_userid
- left join biz_worker wk on wk.id=tdwk.biz_workerid left join base_user bu on bu.id=wk.base_userid
- left join biz_recruit_delegate brd on brd.biz_recruitid=tdwk.biz_recruitid and brd.finish_datetime>1653529202
- left join biz_trader2 bt2 on bt2.id=brd.biz_trader2id
- left join base_user bt2bu on bt2bu.id=bt2.base_userid
- left join biz_appraisal wkapa on wkapa.biz_catalog=1 and wkapa.biz_id=tdwk.id
- left join biz_appraisal tdapa on tdapa.biz_catalog=2 and tdapa.biz_id=tdwk.id
- left join biz_trader_account tdwkat1 on tdwk.`status`=5 and tdwkat1.`status`=1 and tdwkat1.`type`=0 and tdwkat1.biz_id=tdwk.id and(tdwkat1.`biz_catalog`=1 or tdwkat1.`biz_catalog`=4)
- left join biz_trader_account tdwkat2 on tdwk.`status`=5 and tdwkat2.`status`=1 and tdwkat2.`type`=1 and tdwkat2.biz_id=tdwkat1.id and(tdwkat2.`biz_catalog`=6 or tdwkat2.`biz_catalog`=7)
- where (select count(*)as count from biz_todowork where biz_todowork.biz_recruitid=btr.id)=0
- and btr.biz_traderid=" . intval($bizTrader["id"]) . " and btr.finish_datetime<'" . strtotime(date('Y-m-d H:i:s', time())) . "' or (tdwk.status in(-1,-5,-2,-3,-4,5) and btr.biz_traderid=" . intval($bizTrader["id"]) . ") group by btr.id order by btr.id desc";
- $pageData = pdo_fetchall($sql, array());
- return array("pageData" => $pageData, "args" => array());
- break;
- //这里是工单
- //这里是修改 增加状态的条件,筛选 招聘信息
- // 查看工作和历史发布 查看招聘 放在招聘里面 调用不同的接口
- // 有人报名就是工单
- }
- break;
- case "teamstatus": //0-待参团;1-已提交参团;2-已入团;-1-参团被驳回;-2-参团被踢出;-3-已解散;-4-被动取消;
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and tdwk.`teamstatus`=0 ";
- break;
- case 2:
- $queryNew .= " and tdwk.`teamstatus`=1 ";
- break;
- case 3:
- $queryNew .= " and tdwk.`teamstatus`=2 ";
- break;
- case 4:
- $queryNew .= " and tdwk.`teamstatus`=-1 ";
- break;
- case 5:
- $queryNew .= " and tdwk.`teamstatus`=-2 ";
- break;
- case 6:
- $queryNew .= " and tdwk.`teamstatus`=-3 ";
- break;
- case 7:
- $queryNew .= " and tdwk.`teamstatus`=-4 ";
- break;
- }
- break;
- case "teamrole":
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and tdwk.workteam_mode=0 ";
- break;
- case 2:
- $queryNew .= " and tdwk.workteam_mode>0 ";
- break;
- case 3:
- $queryNew .= " and tdwk.workteam_mode=1 ";
- break;
- case 4:
- $queryNew .= " and tdwk.workteam_mode=2 ";
- break;
- case 5: //报名成功后的代表项(单报项及团组代表项)
- $queryNew .= " and (tdwk.workteam_mode>0 and tdwk.workteam_flag=1) ";
- break;
- }
- break;
- }
- }
- $query = $queryNew;
- }
- if (!empty($teamInfo)) {
- $query .= " and tdwkt.id=" . intval($teamInfo["id"]) . " ";
- } else {
- if (!empty($bizWorker)) {
- $query .= " and tdwk.biz_workerid=" . intval($bizWorker["id"]) . " ";
- }
- if (!empty($bizTrader)) {
- $query .= " and btr.biz_traderid=" . intval($bizTrader["id"]) . " ";
- }
- if (!empty($bizTrader2)) {
- $query .= " and brd.biz_trader2id=" . intval($bizTrader2["id"]) . " ";
- }
- }
- //排序处理
- $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
- switch (intval($orderby)) {
- case 1: //1-创建时间倒序
- $orderby = " order by tdwk.id desc ";
- break;
- default: //0-默认更新时间倒序
- $orderby = " order by tdwk.updatetime desc,tdwk.id desc ";
- break;
- }
- //构建sql串
- $sqlBody = "";
- //这里是修改,新增一个统计
- $sqlBody .= " ,(select count(id) from biz_todowork where status=1 and biz_recruitid=btr.id) as tdwk_count_status1";
- $sqlBody .= " ,(select count(id) from biz_todowork where status=2 and biz_recruitid=btr.id) as tdwk_count_status2";
- $sqlBody .= " ,(select count(id) from biz_todowork where status=4 and biz_recruitid=btr.id) as tdwk_count_status4";
- $sqlBody .= " ,(select count(id) from biz_todowork where status=5 and biz_recruitid=btr.id) as tdwk_count_status5";
- $sqlBody .= " from biz_trader_recruit btr ";
- // $sqlBody.=" left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlBody .= " left join biz_todowork tdwk on btr.id=tdwk.biz_recruitid ";
- //这里是修改
- $sqlBody .= " left join biz_todoworkteam tdwkt on tdwkt.id=tdwk.workteamid ";
- $sqlBody .= " left join biz_trader bt on bt.id=btr.biz_traderid ";
- $sqlBody .= " left join base_user btbu on btbu.id=bt.base_userid ";
- $sqlBody .= " left join biz_trader2 bt22 on bt22.id=tdwk.settled_userid ";
- $sqlBody .= " left join biz_worker lwk on lwk.id=tdwkt.leader_workerid ";
- $sqlBody .= " left join base_user lbu on lbu.id=lwk.base_userid ";
- $sqlBody .= " left join biz_worker wk on wk.id=tdwk.biz_workerid ";
- $sqlBody .= " left join base_user bu on bu.id=wk.base_userid ";
- $sqlBody .= " left join biz_recruit_delegate brd on brd.biz_recruitid=tdwk.biz_recruitid and brd.finish_datetime>" . time();
- $sqlBody .= " left join biz_trader2 bt2 on bt2.id=brd.biz_trader2id ";
- $sqlBody .= " left join base_user bt2bu on bt2bu.id=bt2.base_userid ";
- $sqlBody .= " left join biz_appraisal wkapa on wkapa.biz_catalog=1 and wkapa.biz_id=tdwk.id ";
- $sqlBody .= " left join biz_appraisal tdapa on tdapa.biz_catalog=2 and tdapa.biz_id=tdwk.id ";
- $sqlBody .= " left join biz_trader_account tdwkat1 on tdwk.`status`=5 and tdwkat1.`status`=1 and tdwkat1.`type`=0 and tdwkat1.biz_id=tdwk.id and (tdwkat1.`biz_catalog`=1 or tdwkat1.`biz_catalog`=4)";
- $sqlBody .= " left join biz_trader_account tdwkat2 on tdwk.`status`=5 and tdwkat2.`status`=1 and tdwkat2.`type`=1 and tdwkat2.biz_id=tdwkat1.id and (tdwkat2.`biz_catalog`=6 or tdwkat2.`biz_catalog`=7)";
- $sqlBody .= " where 1=1 " . $query;
- //这里是修改,工单分组
- if ($handleMode == "fetchallRecurit") {
- $sqlBody .= " group by tdwk.biz_recruitid ";
- $sqlSelectExt .= ",count(tdwk.id) as tdwk_total";
- }
- if ($handleMode == "fetchallRecuritGroup") {
- $sqlSelectExt .= ",count(tdwk.id) as tdwk_total";
- $sqlBody .= " and tdwk.workteam_mode>0 ";
- $sqlBody .= " group by tdwk.workteamid ";
- }
- //查询sql及统计sql
- $sqlFetch = " select btr.*,btr.id as btr_id,tdwk.*,(case when (tdwk.`status`=4 and " . time() . "-ifnull(tdwk.worked_finishtime,0)>24*3600) then 1 else 0 end) as overtimePay ";
- $sqlFetch .= " ,tdwkt.id as tdwkt_id,tdwkt.`status` as tdwkt_status";
- $sqlFetch .= " ,btr.`status` as recruit_status,btr.createtime as recruit_createtime,btr.updatetime as recruit_updatetime,btr.need_total as btr_need_total ";
- $sqlFetch .= " ,btr.title as recruit_title,btr.begin_datetime as btr_begindatetime,btr.finish_datetime as btr_finishdatetime";
- $sqlFetch .= " ,btr.begin_hour as btr_begin_hour,btr.finish_hour as btr_finish_hour,btr.work_addr1 as btr_work_addr1,btr.feeper as btr_feeper,btr.feetotal as btr_feetotal";
- $sqlFetch .= " ,btr.settle_catalog as btr_settle_catalog,btr.age_mode as btr_age_mode,btr.gender_mode as btr_gender_mode,btr.meals_providing as btr_meals_providing";
- $sqlFetch .= " ,btr.salary as btr_salary,btr.feetotal as btr_feetotal,btr.settle_mode as btr_settle_mode";
- $sqlFetch .= " ,bt.company_name as bt_company_name,btbu.mobile as btbu_mobile";
- $sqlFetch .= " ,(case when ifnull(bt22.true_name,'')<>'' then bt22.true_name else bt22.nickname end) as bt22_true_name";
- $sqlFetch .= " ,wk.id as wkid,(case when wk.true_name<>'' then wk.true_name else wk.nickname end) as wk_name,bu.mobile as bu_mobile,wk.profile_photo as wkprofile_photo";
- $sqlFetch .= " ,wk.realname_handled as wk_realname_handled,wk.gender as wk_gender,wk.idcard as wk_idcard,wk.birthaddr as wk_birthaddr,wk.birthday as wk_birthday";
- $sqlFetch .= " ,lwk.id as lwkid,(case when lwk.true_name<>'' then lwk.true_name else lwk.nickname end) as lwk_name,lbu.mobile as lbu_mobile,lwk.profile_photo as lwkprofile_photo";
- $sqlFetch .= " ,concat(brd.id,'-',brd.begin_datetime,'-',brd.finish_datetime,'-',bt2.id,'-',bt2bu.id,'-',bt2bu.mobile,'-',bt2.true_name) as delegate_info ";
- $sqlFetch .= " ,wkapa.id as wkapa_id,wkapa.deleted as wkapa_deleted,wkapa.result_level as wk_appraiseLevel,wkapa.result_desc as wk_appraiseRemark"; //wkapa_id小于等于0则会员未评价商家,否则已评价
- $sqlFetch .= " ,tdapa.id as tdapa_id,tdapa.deleted as tdapa_deleted,tdapa.result_level as td_appraiseLevel,tdapa.result_desc as td_appraiseRemark";
- $sqlFetch .= " ,tdwkat2.`biz_catalog` as tdwk_settlecatalog";
- $sqlFetch .= " {$sqlSelectExt} {$sqlBody} {$orderby} ";
- $exportExcel = isset($ajaxdata["exportExcel"]) ? $ajaxdata["exportExcel"] : $GPC["exportExcel"];
- if (trim($exportExcel) != "true") { //正常输出
- $start = (intval($pageIndex) - 1) * $pageSize;
- $sqlFetch .= " limit {$start},{$pageSize} ";
- $pageData = pdo_fetchall($sqlFetch, $sqlParam);
- //联合查询下,列项应该不算太多,可手工转换/映射!!或者以占主体的实体为主进行转换/映射;
- foreach ($pageData as &$data) { //数据转换/映射
- if (!empty($bizWorker)) {
- if (mb_strpos($data["worker_readed"], $data["status"] . ",") === false) {
- pdo_query("update biz_todowork set worker_readed=concat(worker_readed,`status`,',') where id=" . intval($data["id"]));
- }
- }
- if (!empty($bizTrader)) {
- if (mb_strpos($data["trader_readed"], $data["status"] . ",") === false) {
- pdo_query("update biz_todowork set trader_readed=concat(trader_readed,`status`,',') where id=" . intval($data["id"]));
- }
- }
- $delegateInfo = bizbase_recruitDelegateInfo($data);
- foreach ($delegateInfo as $key => $val) {
- $data["delegate_" . $key] = $val;
- }
- unset($data["delegate_info"]);
- //----------------------
- $data["wk_age"] = "";
- if (intval($data["wk_birthday"]) > 0) {
- $birthdate = date("Ymd", $data["wk_birthday"]);
- $datetime1 = date_create_from_format("Ymd", $birthdate);
- $datetime1 = new \DateTime(date("Y-m-d", date_timestamp_get($datetime1)));
- $datetime2 = new \DateTime(date("Y-m-d", time()));
- $interval = $datetime1->diff($datetime2);
- $data["wk_age"] = intval($interval->format('%Y'));
- }
- //----------------------
- $data["tdwk_settlecatalogName"] = "";
- switch (intval($data["tdwk_settlecatalog"])) {
- case 6:
- $data["tdwk_settlecatalogName"] = "商家订单整体结算";
- break;
- case 7:
- $data["tdwk_settlecatalogName"] = "平台代商家结算订单";
- break;
- }
- //----------------------
- if (intval($workerExceptionQuery) > 0) {
- $data["except_reason"] = "";
- switch (intval($data["status"])) {
- case -6:
- $data["except_reason"] = "未开始工作";
- break;
- case -7:
- $data["except_reason"] = "未结束工作";
- break;
- case 4:
- $data["except_reason"] = "超过24小时未支付";
- break;
- }
- }
- if (intval($traderExceptionQuery) > 0) {
- $data["except_reason"] = "";
- switch (intval($data["status"])) {
- case -3:
- $data["except_reason"] = "商家违约";
- break;
- case 4:
- $data["except_reason"] = "超过24小时未支付";
- break;
- }
- }
- //----------------------
- if (intval($bizTrader_EnrollWaitAudit) > 0 && intval($data["tdwkt_status"]) == 3) {
- $teamMembers = pdo_fetchall("select wk.id as wkid
- ,wk.true_name as wk_name,bu.mobile as bu_mobile,wk.profile_photo as wkprofile_photo
- ,wk.gender as wk_gender,wk.idcard as wk_idcard,wk.birthaddr as wk_birthaddr,wk.birthday as wk_birthday
- from biz_todowork tdwk
- left join biz_worker wk on wk.id=tdwk.biz_workerid
- left join base_user bu on bu.id=wk.base_userid
- where tdwk.workteamid=:workteamid and tdwk.teamstatus>=2
- order by tdwk.workteam_mode desc,tdwk.createtime asc", array(":workteamid" => $data["tdwkt_id"]));
- foreach ($teamMembers as &$subdata) { //数据转换/映射
- $subdata["wk_gender"] = intval($subdata["wk_gender"]) < 0 ? "" : (intval($subdata["wk_gender"]) == 0 ? "男" : "女");
- //----------------------
- $subdata["wk_age"] = "";
- if (intval($subdata["wk_birthday"]) > 0) {
- $birthdate = date("Ymd", $subdata["wk_birthday"]);
- $datetime1 = date_create_from_format("Ymd", $birthdate);
- $datetime1 = new \DateTime(date("Y-m-d", date_timestamp_get($datetime1)));
- $datetime2 = new \DateTime(date("Y-m-d", time()));
- $interval = $datetime1->diff($datetime2);
- $subdata["wk_age"] = intval($interval->format('%Y'));
- }
- }
- $data["teamMembers"] = $teamMembers;
- }
- //----------------------
- $data["btr_canTerminate"] = false;
- if (intval($data["recruit_status"]) == 2) {
- $data["btr_canTerminate"] = true;
- }
- $data["btr_canBreakoff"] = false;
- if (intval($data["recruit_status"]) == 2//提前违约
- && ((
- intval($data["btr_settle_catalog"]) == 0
- ) || (
- intval($data["btr_settle_catalog"]) > 0
- ))
- ) {
- $data["btr_canBreakoff"] = true;
- }
- $data["worksn"] = base_buildSNById("WK", $data["id"], 12, 12);
- $data["wkteamsn"] = base_buildSNById("TM", $data["tdwkt_id"], 12, 12);
- $data["btr_salary"] = round(floatval($data["btr_salary"]), 2);
- $data["btr_feetotal"] = round(floatval($data["btr_feetotal"]), 2);
- $data["itisme"] = ($data["wkid"] == intval($bizWorker["id"]));
- $data["iamleader"] = ($data["lwkid"] == intval($bizWorker["id"]));
- $data["statusName"] = bizbase_todoWorkStatusName($data["status"]);
- $data["teamrole"] = bizbase_todoWorkTeamRoleName($data["workteam_mode"]);
- $data["plan_dotime"] = date("Y-m-d", $data["todo_begindate"]);
- $data["createtime"] = date("Y-m-d H:i:s", $data["createtime"]);
- $data["recruit_createtime"] = intval($data["recruit_createtime"]) <= 0 ? "" : date("Y-m-d H:i:s", $data["recruit_createtime"]);
- $data["recruit_updatetime"] = intval($data["recruit_updatetime"]) <= 0 ? "" : date("Y-m-d H:i:s", $data["recruit_updatetime"]);
- $btr_begindatetime = $data['btr_begindatetime'];
- $btr_finishdatetime = $data['btr_finishdatetime'];
- $data["btr_begindatetime"] = date("Y-m-d", $btr_begindatetime);
- $data["btr_finishdatetime"] = date("Y-m-d", $btr_finishdatetime);
- $data["btr_begindatetime1"] = date("m-d", $btr_begindatetime);
- $data["btr_finishdatetime1"] = date("m-d", $btr_finishdatetime);
- $data["worked_begintime"] = intval($data["worked_begintime"]) <= 0 ? "" : date("Y-m-d H:i:s", $data["worked_begintime"]);
- $data["worked_finishtime"] = intval($data["worked_finishtime"]) <= 0 ? "" : date("Y-m-d H:i:s", $data["worked_finishtime"]);
- $data["settled_time"] = intval($data["settled_time"]) <= 0 ? "" : date("Y-m-d H:i:s", $data["settled_time"]);
- $data["settled_modeName"] = intval($data["settled_mode"]) <= 0 ? "现场经理核销" : "商家核销";
- $data["settled_userName"] = intval($data["settled_mode"]) <= 0 ? $data["bt22_true_name"] : $data["bt_company_name"];
- $data["remark"] = trim(explode("\n", $data["remark"])[0]);
- $data["teamremark"] = trim(explode("\n", $data["teamremark"])[0]);
- $data["teamstatusName"] = bizbase_todoWorkSubTeamStatusName(intval($data["teamstatus"]));
- $data["wk_appraiseLevel"] = intval($data["wkapa_deleted"]) > 0 ? -1 : intval($data["wk_appraiseLevel"]);
- $data["td_appraiseLevel"] = intval($data["tdapa_deleted"]) > 0 ? -1 : intval($data["td_appraiseLevel"]);
- }
- $sqlSummary = " select count(*) as count " . $sqlBody . ";";
- if ($handleMode == "fetchallRecurit") {
- $sqlSummary = " select count(*) as count from (select tdwk.id " . $sqlBody . " ) as temp;";
- }
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- // foreach ($pageData as $k=>$v){
- // $pageData[$k]['enrolled_heads'] = explode(',',$v['enrolled_heads']);
- // }
- return array(
- "pageData" => $pageData,
- "count" => intval($sumData["count"]),
- );
- } else {
- $sqlSummary = " select count(*) as count " . $sqlBody . ";";
- if ($handleMode == "fetchallRecurit") {
- $sqlSummary = " select count(*) as count from (select tdwk.id " . $sqlBody . " ) as temp;";
- }
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- $recordTotal = intval($sumData["count"]);
- $pageTotal = ceil($recordTotal / $pageSize);
- $args = array(
- "pageIndex" => 0, "pageSize" => $pageSize, "pageTotal" => $pageTotal,
- "sqlFetch" => $sqlFetch, "sqlParam" => $sqlParam,
- );
- $csvTitle = array("开工时间", "姓名", "身份证号", "手机号", "订单编号", "招聘标题");
- baseexcel_exportCsv("订单列表", $csvTitle, $args, function ($args) {
- $pageIndex = intval($args["pageIndex"]) + 1;
- $args["pageIndex"] = $pageIndex;
- $pageSize = intval($args["pageSize"]);
- $pageTotal = intval($args["pageTotal"]);
- if ($pageIndex > $pageTotal) {
- return false;
- }
- $sqlFetch = $args["sqlFetch"];
- $sqlParam = $args["sqlParam"];
- $start = (intval($pageIndex) - 1) * $pageSize;
- $pageData111 = pdo_fetchall($sqlFetch . " limit {$start},{$pageSize} ", $sqlParam);
- $pageData = array();
- foreach ($pageData111 as &$datarow) { //数据转换/映射
- $wk_name = json_encode($datarow["wk_name"]);
- $wk_name = preg_replace("/\\\u[ed][0-9a-f]{3}\\\u[ed][0-9a-f]{3}/", "*", $wk_name); //替换成*
- $wk_name = json_decode($wk_name);
- $pageData[] = array(
- //intval($datarow["worked_begintime"])<=0?"":"\t".date("Y-m-d H:i:s", $datarow["worked_begintime"])
- (intval($datarow["btr_begindatetime"]) <= 0 ? "" : "\t" . date("Y-m-d", $datarow["btr_begindatetime"])) . " " . $datarow["btr_begin_hour"]
- , $wk_name
- , "\t" . $datarow["wk_idcard"]
- , "\t" . $datarow["bu_mobile"]
- , base_buildSNById("WK", $datarow["id"], 12, 12)
- , $datarow["recruit_title"],
- );
- }
- return array("pagedata" => $pageData, "args" => $args);
- });
- }
- break;
- default:
- throw new GeneralException("", "不支持的handleMode!");
- }
- }
- /**********************营销活动相关逻辑**************************************/
- function bizbase_mactivityEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC)
- {
- if (intval($baseUser["subsystem"]) == SUBSYS_LABOUR_MINA) {
- $bizWorker = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL_MINA) {
- $bizTrader = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL2_MINA) {
- $bizTrader2 = $bizUser;
- }
- switch ($handleMode) {
- case "fetch":
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- $sqlSelectExt = "";
- $nowLngLat = isset($ajaxdata["nowLngLat"]) ? $ajaxdata["nowLngLat"] : $GPC["nowLngLat"];
- if (empty($nowLngLat) || !preg_match("/^\d+\.\d+,\d+\.\d+$/", $nowLngLat)) {
- $nowLngLat = "";
- } else {
- $nowlng = floatval(explode(",", $nowLngLat)[0]);
- $nowlat = floatval(explode(",", $nowLngLat)[1]);
- $sqlSelectExt .= " ,(st_distance_sphere(point(CAST(bma.addr_lng AS decimal(11,8)),CAST(bma.addr_lat AS decimal(11,8))),point(CAST({$nowlng} AS decimal(11,8)),CAST({$nowlat} AS decimal(11,8))))) as distance ";
- }
- $sqlSelectExt .= " ,(select count(*) from biz_market_activity_order bmao where bmao.`status`=1 and bmao.market_activityid=bma.id and bmao.biz_workerid=" . intval($bizWorker["id"]) . ")>0 as enrolled ";
- $activity = pdo_fetch("select bma.*,cbu.login_name as cbu_login_name,ubu.login_name as ubu_login_name {$sqlSelectExt}
- from biz_market_activity as bma
- left join base_user as cbu on cbu.id=bma.createuserid
- left join base_user as ubu on ubu.id=bma.updateuserid
- where bma.id=" . intval($bizId));
- if (empty($activity)) {
- throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!");
- }
- if (intval($activity["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- bizbase_mactivityStatus($activity);
- $activity["list_photos"] = json_decode($activity["list_photos"], true);
- $activity["detail_photos"] = json_decode($activity["detail_photos"], true);
- $activity["begin_datetime"] = date("Y-m-d H:i:s", $activity["begin_datetime"]);
- $activity["finish_datetime"] = date("Y-m-d H:i:s", $activity["finish_datetime"]);
- $activity["price"] = round($activity["price"], 2);
- $activity["activity_addr"] = json_decode($activity["activity_addr"], true);
- $activity["remark"] = trim(explode("\n", $activity["remark"])[0]);
- return $activity;
- case "pushTop":
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- $trader = pdo_fetch("select * from biz_market_activity where id=" . intval($bizId));
- if (empty($trader)) {
- throw new GeneralException("", "此id对应的营销活动记录不存在,请核查bizId是否正确!");
- }
- if (intval($trader["deleted"]) != 0) {
- throw new GeneralException("", "营销活动已删除了,请核查后再处理!");
- }
- if (intval($trader["finish_datetime"]) < time()) {
- throw new GeneralException("", "营销活动已结束,置顶无效!");
- }
- $sqlTemp = ""; //不设置remark避免覆盖
- $sqlTemp .= " update biz_market_activity set updatetime=:nowtime,istop=0 where istop=1;";
- $sqlTemp .= " update biz_market_activity set updatetime=:nowtime,istop=1 where id=:id;";
- $backdata = pdo_query($sqlTemp, array(":nowtime" => time(), ":id" => intval($bizId)));
- return $backdata;
- break;
- case "topHandle":
- $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
- if (empty($todo)) {
- throw new GeneralException("", "没有传递必要的todo参数");
- }
- $bizIds = isset($ajaxdata["bizIds"]) ? $ajaxdata["bizIds"] : $GPC["bizIds"];
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $query = "";
- if (is_array($bizIds)) {
- $query = "and id in(" . implode(",", $bizIds) . ") ";
- }
- switch (trim($todo)) {
- case "set":
- $sqlParam[":istop"] = 1;
- break;
- case "unset":
- $sqlParam[":istop"] = 0;
- break;
- default:throw new GeneralException("", "不支持的todo");
- }
- $sqlTemp = ""; //不设置remark避免覆盖
- $sqlTemp .= " update biz_market_activity set updatetime=:nowtime,istop=:istop where 1=1 {$query};";
- $backdata = pdo_query($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "upsert":
- $bizData = isset($ajaxdata["bizData"]) ? $ajaxdata["bizData"] : $GPC["bizData"];
- if (empty($bizData)) {
- throw new GeneralException("", "没有传递必要的bizData参数");
- }
- /***字段参数收集并校验**start***/
- $saveData = array();
- if (isset($bizData["profile_photo"])) {
- $saveData["profile_photo"] = trim($bizData["profile_photo"]);
- }
- if (isset($bizData["list_photos"])) {
- $saveData["list_photos"] = json_encode($bizData["list_photos"]);
- }
- if (isset($bizData["detail_photos"])) {
- $saveData["detail_photos"] = json_encode($bizData["detail_photos"]);
- }
- if (isset($bizData["title"])) {
- $saveData["title"] = trim($bizData["title"]);
- }
- if (isset($bizData["begin_datetime"])) {
- $saveData["begin_datetime"] = intval(strtotime(date("Y-m-d H:i:s", strtotime($bizData["begin_datetime"]))));
- }
- if (isset($bizData["finish_datetime"])) {
- $saveData["finish_datetime"] = intval(strtotime(date("Y-m-d H:i:s", strtotime($bizData["finish_datetime"]))));
- }
- if (isset($bizData["total"])) {
- $saveData["total"] = intval($bizData["total"]);
- }
- if (isset($bizData["price"])) {
- $saveData["price"] = floatval($bizData["price"]);
- }
- if (isset($bizData["company_name"])) {
- $saveData["company_name"] = trim($bizData["company_name"]);
- }
- if (isset($bizData["linker_name"])) {
- $saveData["linker_name"] = trim($bizData["linker_name"]);
- }
- if (isset($bizData["linker_phone"])) {
- $saveData["linker_phone"] = trim($bizData["linker_phone"]);
- }
- if (isset($bizData["activity_addr"])) {
- $saveData["activity_addr"] = json_encode($bizData["activity_addr"]);
- }
- if (isset($bizData["activity_addr1"])) {
- $saveData["activity_addr1"] = trim($bizData["activity_addr1"]);
- }
- if (isset($bizData["addr_lng"])) {
- $saveData["addr_lng"] = trim($bizData["addr_lng"]);
- }
- if (isset($bizData["addr_lat"])) {
- $saveData["addr_lat"] = trim($bizData["addr_lat"]);
- }
- if (isset($bizData["biz_desc"])) {
- $saveData["biz_desc"] = trim($bizData["biz_desc"]);
- }
- if (isset($bizData["biz_remark"])) {
- $saveData["biz_remark"] = trim($bizData["biz_remark"]);
- }
- if (isset($bizData["group_qrurl"])) {
- $saveData["group_qrurl"] = trim($bizData["group_qrurl"]);
- }
- if (isset($bizData["istop"])) {
- $saveData["istop"] = intval($bizData["istop"]);
- }
- /***字段参数收集并校验**finish***/
- $sqlParam = array();
- $sqlTemp = "";
- if (intval($bizData["id"]) <= 0) {
- $saveData["createtime"] = time();
- $saveData["createuserid"] = intval($baseUser["id"]);
- $upsertSet = pdo_buildSetSQL("", $saveData);
- $sqlParam += $upsertSet["params"]; //合并参数集合
- $sqlTemp .= " insert into biz_market_activity set " . $upsertSet["fields"] . ";";
- $sqlTemp .= " set @bizid=LAST_INSERT_ID();";
- } else {
- $oldData = pdo_fetch("select * from biz_market_activity where id=" . intval($bizData["id"]));
- if (empty($oldData)) {
- throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!");
- }
- if (intval($oldData["deleted"]) != 0) {
- throw new GeneralException("", "此记录已删除了,请核查后再处理!");
- }
- $saveData["remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 更新 \n" . trim($oldData["remark"]);
- $saveData["updatetime"] = time();
- $saveData["updateuserid"] = intval($baseUser["id"]);
- $upsertSet = pdo_buildSetSQL("", $saveData);
- $sqlParam += $upsertSet["params"];
- $sqlTemp .= " update biz_market_activity set " . $upsertSet["fields"] . " ";
- $sqlTemp .= " where id=" . intval($bizData["id"]) . ";";
- $sqlTemp .= " set @bizid=" . intval($bizData["id"]) . ";";
- }
- $sqlTemp .= " select * from biz_market_activity where id=@bizid;";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- $backdata = $dataset[count($dataset) - 1][0];
- return $backdata;
- break;
- case "delete":
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- //if (empty($reason)) throw new GeneralException("", "下架必须输入要原因!");
- $activity = pdo_fetch("select * from biz_market_activity where id=" . intval($bizId));
- if (empty($activity)) {
- throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!");
- }
- if (intval($activity["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- $backdata = pdo_query("update biz_market_activity set updatetime=:nowtime, `deleted`=1, remark=concat(:remark,ifnull(remark,''))
- where id=:id;", array(
- ":nowtime" => time(), ":remark" => "[" . date("Y-m-d H:i:s", time()) . "] 删除 $reason\n", ":id" => intval($bizId),
- ));
- return $backdata;
- break;
- case "dropdown":
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) {
- throw new GeneralException("", "没有传递必要的bizId参数");
- }
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- //if (empty($reason)) throw new GeneralException("", "下架必须输入要原因!");
- $activity = pdo_fetch("select * from biz_market_activity where id=" . intval($bizId));
- if (empty($activity)) {
- throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!");
- }
- if (intval($activity["status"]) != 0) {
- throw new GeneralException("", "已下架了,请核查后再处理!");
- }
- $backdata = pdo_query("update biz_market_activity set updatetime=:nowtime, `status`=4, remark=concat(:remark,ifnull(remark,''))
- where id=:id;", array(
- ":nowtime" => time(), ":remark" => "[" . date("Y-m-d H:i:s", time()) . "] 手工下架 $reason\n", ":id" => intval($bizId),
- ));
- return $backdata;
- break;
- case "enroll":
- $activityId = isset($ajaxdata["activityId"]) ? $ajaxdata["activityId"] : $GPC["activityId"];
- $activity = pdo_fetch("select * from biz_market_activity where id=" . intval($activityId));
- if (empty($activity)) {
- throw new GeneralException("", "此id对应的活动记录不存在,请核查activityId是否正确!");
- }
- if (intval($activity["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- if (intval($activity["finish_datetime"]) < time()) {
- throw new GeneralException("HasLater", "活动已过期,无法报名!");
- }
- $order = pdo_fetch("select * from biz_market_activity_order
- where `status`>=1 and market_activityid=" . intval($activityId) . " and biz_workerid=" . intval($bizWorker["id"]) . "");
- if (!empty($order)) {
- throw new GeneralException("HasErolled", "您已成功报名此活动,不能重复报名!");
- }
- $accountInfo = bizbase_workerAccountInfo($bizWorker);
- $balance = round(floatval($accountInfo["balance"]), 2);
- $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"];
- $params = array("activity" => $activity, "balance" => $balance, "bizWorker" => $bizWorker, "minaCode" => $minaCode);
- $backdata = biz_flkForMActivity($activity["id"], $params, function ($params) {
- $activity = $params["activity"];
- $money_balance = $params["balance"];
- $bizWorker = $params["bizWorker"];
- $minaCode = $params["minaCode"];
- $erollTotal = pdo_fetchcolumn("select count(*) from biz_market_activity_order
- where market_activityid=" . intval($activity["id"]) . " and `status`>=1");
- if (intval($erollTotal) >= intval($activity["total"])) {
- throw new GeneralException("overflow", "此活动已报满,无法报名了!");
- }
- $nowPayMoney = round(floatval($activity["price"] - $money_balance), 2);
- if ($nowPayMoney <= 0) {
- $nowPayMoney = 0;
- }
- //过滤掉0收支明细
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":market_activityid"] = $activity["id"];
- $sqlParam[":biz_workerid"] = intval($bizWorker["id"]);
- $sqlParam[":price"] = round(floatval($activity["price"]), 2);
- $sqlParam[":remark"] = "营销活动支付\n";
- $sqlTemp = "";
- $sqlTemp .= " set @handle_status=0; ";
- $sqlTemp .= " set @handle_id=0; ";
- $sqlTemp .= " select @handle_id:=id,@handle_status:=`status` from biz_market_activity_order where biz_workerid=:biz_workerid and market_activityid=:market_activityid limit 1;";
- $sqlTemp .= " insert into biz_market_activity_order ( `createtime`,`market_activityid`, `biz_workerid`, `price`,paytag,`status`, remark )";
- $sqlTemp .= " select :nowtime, :market_activityid, :biz_workerid, :price , 0, 0,:remark from dual where ifnull(@handle_id,0)=0;";
- $sqlTemp .= " update biz_market_activity_order set updatetime=:nowtime, `price`=:price, remark=concat(:remark,remark) where ifnull(@handle_id,0)<>0 and biz_workerid=:biz_workerid and market_activityid=:market_activityid;";
- $sqlTemp .= " select @handle_id:=id,@paytag:=paytag from biz_market_activity_order where biz_workerid=:biz_workerid and market_activityid=:market_activityid limit 1;";
- $sqlParam[":type"] = 0;
- $sqlParam[":money"] = $nowPayMoney;
- $sqlParam[":biz_catalog"] = 2;
- $sqlTemp .= " insert into biz_worker_account set createtime=:nowtime";
- $sqlTemp .= " ,biz_workerid=:biz_workerid, biz_roletype=0, biz_userid=:biz_workerid ";
- $sqlTemp .= " ,type=:type, `money`=:money";
- $sqlTemp .= " ,biz_catalog=:biz_catalog, biz_id=@handle_id";
- $sqlTemp .= " ,biz_idtag=concat('MAID',@handle_id,'EE',@paytag)";
- $sqlTemp .= " ,`status`=0, remark=:remark;";
- $sqlTemp .= " select * from biz_worker_account where id=LAST_INSERT_ID();";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- $bizInfo = $dataset[count($dataset) - 1][0];
- if (empty($bizInfo)) {
- throw new GeneralException("", "构建预支付订单异常");
- }
- $payBizCatalog = "3"; //3-会员购买营销活动
- $payBizId = $bizInfo["id"];
- if ($nowPayMoney <= 0) {
- bizbase_paySuccess($payBizCatalog, $payBizId, false);
- return array("payResult" => true);
- } else {
- //---------------------------------------
- if (empty(trim($minaCode))) {
- throw new GeneralException("", "没有传递必要的minaCode参数");
- }
- $payScene = "JSAPI";
- $prePayArgs = array(
- "payBackBizCatalog" => $payBizCatalog,
- "payBackBizId" => $payBizId,
- "payScene" => $payScene,
- );
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_LABOUR_MINA);
- $wxmina_appid = $resObj["wxmina_appid"];
- $wxmina_openid = $resObj["openid"];
- $bizArgs = array(
- "minaCode" => $minaCode,
- "bizInfo" => $bizInfo,
- "wxmina_appid" => $wxmina_appid,
- "wxmina_openid" => $wxmina_openid,
- );
- try {
- $prePayInfo = bizbase_mactivityPayCore($prePayArgs, $bizArgs);
- } catch (Throwable $ex) {
- $errMsg = $ex->getMessage();
- if (mb_strpos($errMsg, "201 商户订单号重复") === false) {
- throw $ex;
- } else {
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $result = weixin_ordercloseV3($bizInfo["biz_idtag"]);
- $dataset = pdo_query3("
- update biz_market_activity_order set updatetime=:nowtime
- ,paytag=ifnull(paytag,0)+1
- ,remark=concat('更新支付订单号后缀\n',ifnull(remark,''))
- where id=:bmaoid;
- select @paytag:=paytag from biz_market_activity_order where id=:bmaoid;
- update biz_worker_account set updatetime=:nowtime
- ,biz_idtag=concat('MAID',:bmaoid,'EE',@paytag)
- ,remark=concat('更新支付订单号后缀\n',ifnull(remark,''))
- where id=:bizid;
- select * from biz_worker_account where id=:bizid;", array(
- ":nowtime" => time(),
- ":bmaoid" => intval($bizInfo["biz_id"]),
- ":bizid" => intval($bizInfo["id"]),
- ));
- $bizInfo = $dataset[count($dataset) - 1][0];
- $bizArgs["bizInfo"] = $bizInfo;
- $prePayInfo = bizbase_mactivityPayCore($prePayArgs, $bizArgs);
- }
- }
- $prePayInfo = array_merge($prePayArgs, $prePayInfo);
- return array(
- "moneyBalance" => $money_balance,
- "payMoney" => $nowPayMoney,
- "prePayInfo" => $prePayInfo,
- );
- }
- });
- return $backdata;
- break;
- case "fetchEnrollInfo":
- $enrollId = isset($ajaxdata["enrollId"]) ? $ajaxdata["enrollId"] : $GPC["enrollId"];
- if (empty($enrollId)) {
- throw new GeneralException("", "没有传递必要的enrollId参数");
- }
- $sqlSelectExt = "";
- $nowLngLat = isset($ajaxdata["nowLngLat"]) ? $ajaxdata["nowLngLat"] : $GPC["nowLngLat"];
- if (empty($nowLngLat) || !preg_match("/^\d+\.\d+,\d+\.\d+$/", $nowLngLat)) {
- $nowLngLat = "";
- } else {
- $nowlng = floatval(explode(",", $nowLngLat)[0]);
- $nowlat = floatval(explode(",", $nowLngLat)[1]);
- $sqlSelectExt .= " ,(st_distance_sphere(point(CAST(bma.addr_lng AS decimal(11,8)),CAST(bma.addr_lat AS decimal(11,8))),point(CAST({$nowlng} AS decimal(11,8)),CAST({$nowlat} AS decimal(11,8))))) as distance ";
- }
- $enrollInfo = pdo_fetch("select bmao.*
- ,bma.price,bma.title,bma.begin_datetime,bma.finish_datetime,bma.activity_addr,bma.linker_phone
- ,bma.list_photos,bma.detail_photos
- ,apa.result_level as appraiseLevel,apa.result_desc as appraiseRemark
- {$sqlSelectExt}
- from biz_market_activity_order bmao
- left join biz_market_activity bma on bma.id=bmao.market_activityid
- left join biz_appraisal apa on apa.biz_catalog=0 and apa.fromerid=bmao.biz_workerid and apa.toerid=0 and apa.biz_id=bmao.id
- where bmao.id=" . intval($enrollId));
- if (empty($enrollInfo)) {
- throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!");
- }
- if (intval($enrollInfo["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- $enrollInfo["list_photos"] = json_decode($enrollInfo["list_photos"], true);
- $enrollInfo["detail_photos"] = json_decode($enrollInfo["detail_photos"], true);
- $enrollInfo["begin_datetime"] = date("Y-m-d H:i:s", $enrollInfo["begin_datetime"]);
- $enrollInfo["finish_datetime"] = date("Y-m-d H:i:s", $enrollInfo["finish_datetime"]);
- $enrollInfo["price"] = round($enrollInfo["price"], 2);
- $enrollInfo["activity_addr"] = json_decode($enrollInfo["activity_addr"], true);
- //------------------------------------------------------------
- bizbase_mactivityOrderStatus($enrollInfo);
- $enrollInfo["paytime"] = date("Y-m-d H:i:s", $enrollInfo["paytime"]);
- $enrollInfo["remark"] = trim(explode("\n", $enrollInfo["remark"])[0]);
- return $enrollInfo;
- case "appraiseByWorker":
- $enrollId = isset($ajaxdata["enrollId"]) ? $ajaxdata["enrollId"] : $GPC["enrollId"];
- if (empty($enrollId)) {
- throw new GeneralException("", "没有传递必要的enrollId参数");
- }
- $enrollInfo = pdo_fetch("select bmao.*
- ,bma.price,bma.title,bma.begin_datetime,bma.finish_datetime,bma.activity_addr,bma.linker_phone
- ,bma.list_photos,bma.detail_photos
- from biz_market_activity_order bmao
- left join biz_market_activity bma on bma.id=bmao.market_activityid
- where bmao.id=" . intval($enrollId));
- if (empty($enrollInfo)) {
- throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!");
- }
- if (intval($enrollInfo["deleted"]) != 0) {
- throw new GeneralException("", "信息已删除了,请核查后再处理!");
- }
- if (intval($enrollInfo["biz_workerid"]) != intval($bizWorker["id"])) {
- throw new GeneralException("", "此活动报名记录不是您的,请核查后再处理!");
- }
- bizbase_mactivityOrderStatus($enrollInfo);
- if ($enrollInfo["status"] != 2) {
- throw new GeneralException("", "不是待评价状态,不能进行评价!");
- }
- $appraiseLevel = isset($ajaxdata["appraiseLevel"]) ? $ajaxdata["appraiseLevel"] : $GPC["appraiseLevel"];
- $appraiseRemark = isset($ajaxdata["appraiseRemark"]) ? $ajaxdata["appraiseRemark"] : $GPC["appraiseRemark"];
- $sqlParam = array();
- $sqlParam[":nowtime"] = time();
- $sqlParam[":biz_catalog"] = 0; //0-会员对活动评价;1-会员对工作过程雇主评价;2-雇主商家对会员工作过程评价;
- $sqlParam[":fromerid"] = intval($bizWorker["id"]);
- $sqlParam[":toerid"] = 0;
- $sqlParam[":biz_id"] = intval($enrollId);
- $sqlParam[":result_level"] = intval($appraiseLevel);
- $sqlParam[":result_desc"] = trim($appraiseRemark);
- $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 会员对活动评价\n";
- $sqlTemp = "";
- $sqlTemp .= " update biz_market_activity_order set updatetime=:nowtime, `status`=3, remark=concat(:remark,remark) where id=:biz_id;";
- $sqlTemp .= " set @handle_id=0; ";
- $sqlTemp .= " select @handle_id:=id from biz_appraisal where biz_catalog=:biz_catalog and biz_id=:biz_id limit 1;";
- $sqlTemp .= " insert into biz_appraisal ( `createtime`,`biz_catalog`, biz_id,`fromerid`, `toerid`, `result_level`, result_desc, remark)";
- $sqlTemp .= " select :nowtime, :biz_catalog,:biz_id, :fromerid, :toerid , :result_level,:result_desc,:remark from dual where ifnull(@handle_id,0)=0;";
- $sqlTemp .= " update biz_appraisal set updatetime=:nowtime, fromerid=:fromerid, toerid=:toerid, `result_level`=:result_level, result_desc=:result_desc, remark=concat(:remark,remark) where ifnull(@handle_id,0)<>0 and id=ifnull(@handle_id,0);";
- $backdata = pdo_query3($sqlTemp, $sqlParam);
- return $backdata;
- default:
- throw new GeneralException("", "不支持的handleMode!");
- }
- }
- function bizbase_mactivityPayCore($prePayArgs, $bizArgs)
- {
- require_once WEB_PHY_ROOT . "/base/wxsrv.php";
- $prePayInfo = weixin_prepayBuildV3($prePayArgs, $bizArgs, function ($bizCatalog, $bizId, $bizArgs) {
- $bizInfo = $bizArgs["bizInfo"];
- $wxmina_appid = $bizArgs["wxmina_appid"];
- $wxmina_openid = $bizArgs["wxmina_openid"];
- //---------------------------------------
- $payTotal = round(floatval($bizInfo["money"]), 2);
- if ($payTotal <= 0) {
- throw new GeneralException("", "购买金额竟然小于等于0");
- }
- $payTotal = $payTotal * 100; //转为分
- //---------------------------------------
- $sqlParam = array();
- $sqlParam[":id"] = intval($bizInfo["id"]);
- $sqlParam[":wxmina_appid"] = $wxmina_appid;
- $sqlParam[":wxmina_openid"] = $wxmina_openid;
- $outtradeno = substr(date('YmdHiis') . md5(uniqid()), 0, 32);
- $sqlParam[":outtradeno"] = $outtradeno;
- $sqlTemp = " update biz_worker_account set";
- $sqlTemp .= " wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid,weixin_outtradeno=:outtradeno";
- $sqlTemp .= " where id=:id; ";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- //---------------------------------------
- $prePayInfo = array();
- $prePayInfo["appid"] = $wxmina_appid;
- $prePayInfo["mchId"] = WeiXinPay_mchId;
- $prePayInfo["mch_paykeyV2"] = WeiXinPay_apiKey;
- $prePayInfo["mch_paykeyV3"] = WeiXinPay_apiKeyV3;
- //$prePayInfo["out_trade_no"] = $bizInfo["biz_idtag"];
- $prePayInfo["out_trade_no"] = $outtradeno;
- $prePayInfo["total"] = "{$payTotal}";
- $prePayInfo["description"] = "营销活动支付业务";
- $prePayInfo["openid"] = $wxmina_openid;
- return $prePayInfo;
- });
- return $prePayInfo;
- }
- function bizbase_mactivityStatus(&$data)
- {
- $nowday11 = strtotime(date("Y-m-d", time()));
- $nowday22 = strtotime(date("Y-m-d 23:59:59", time()));
- $nextday11 = strtotime("+1 day", strtotime(date("Y-m-d", time())));
- $nextday22 = strtotime("+1 day", strtotime(date("Y-m-d 23:59:59", time())));
- $nextnextday11 = strtotime("+2 day", strtotime(date("Y-m-d", time())));
- $nextnextday22 = strtotime("+2 day", strtotime(date("Y-m-d 23:59:59", time())));
- if (intval($data["begin_datetime"]) >= $nowday22) {
- $data["statusACode"] = 1;
- $data["statusAName"] = "未开始";
- return;
- }
- // if(intval($data["begin_datetime"])>=$nextday11 && intval($data["begin_datetime"])<=$nextday22){
- // $data["statusACode"]=2;
- // $data["statusAName"]="待开始";
- // return;
- // }
- if ((intval($data["begin_datetime"]) <= $nowday11
- || (intval($data["begin_datetime"]) >= $nowday11
- && intval($data["begin_datetime"]) <= $nowday22
- )) && intval($data["finish_datetime"]) > time()) {
- $data["statusACode"] = 2;
- $data["statusAName"] = "进行中";
- return;
- }
- if (intval($data["finish_datetime"]) < time()) {
- $data["statusACode"] = 3;
- $data["statusAName"] = "已完成";
- return;
- }
- }
- function bizbase_mactivityOrderStatus(&$data)
- {
- switch (intval($data["status"])) {
- case 0:
- $data["statusName"] = "已报名下单待支付";
- break;
- case 1:
- $data["statusName"] = "已支付待使用";
- if (intval($data["finish_datetime"]) < time()) {
- $data["status"] = 2;
- $data["statusName"] = "已使用待评价";
- }
- break;
- case 2:
- $data["statusName"] = "已使用待评价";
- break;
- case 3:
- $data["statusName"] = "已评价";
- break;
- }
- return $data;
- }
- function bizbase_mactivityAboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC)
- {
- if (intval($baseUser["subsystem"]) == SUBSYS_LABOUR_MINA) {
- $bizWorker = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL_MINA) {
- $bizTrader = $bizUser;
- }
- if (intval($baseUser["subsystem"]) == SUBSYS_CAPITAL2_MINA) {
- $bizTrader2 = $bizUser;
- }
- switch ($handleMode) {
- case "fetchallByPlater":
- case "fetchallByWorker":
- case "fetchallByPublic":
- $sqlSelectExt = "";
- $sqlParam = array();
- $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
- if (empty($query) && !is_array($query)) { //验证一下query信息集
- $query = " and 1=1 ";
- } else {
- $queryNew = " and 1=1 ";
- foreach ($query as $fdName => $fdValue) {
- switch ($fdName) {
- case "title":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_title";
- $queryNew .= " and (bma.title like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "linkphone":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_linkphone";
- $queryNew .= " and (bma.linker_phone like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "startDate":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and bma.begin_datetime>=" . strtotime(date("Y-m-d", strtotime($fdValue))) . " and bma.begin_datetime<=" . strtotime(date("Y-m-d 23:59:59", strtotime($fdValue))) . " ";
- break;
- case "status":
- $nowday11 = strtotime(date("Y-m-d", time()));
- $nowday22 = strtotime(date("Y-m-d 23:59:59", time()));
- $nextday11 = strtotime("+1 day", strtotime(date("Y-m-d", time())));
- $nextday22 = strtotime("+1 day", strtotime(date("Y-m-d 23:59:59", time())));
- $nextnextday11 = strtotime("+2 day", strtotime(date("Y-m-d", time())));
- $nextnextday22 = strtotime("+2 day", strtotime(date("Y-m-d 23:59:59", time())));
- $sel_status1 = " and bma.begin_datetime>=" . $nowday22 . " ";
- $sel_status2 = " and bma.begin_datetime>=" . $nextday11 . " and bma.begin_datetime<=" . $nextday22 . " ";
- $sel_status3 = " and (bma.begin_datetime<={$nowday11} or (bma.begin_datetime>={$nowday11} and bma.begin_datetime<={$nowday22})) ";
- $sel_status3 .= " and bma.finish_datetime>" . time() . " and bma.`status`<=0 ";
- $sel_status4 = " and (bma.finish_datetime<" . time() . " or bma.`status`>2) ";
- $sel_status5 = " and ( ( 1=1 {$sel_status1} ) or ( 1=1 {$sel_status2} ) or ( 1=1 {$sel_status3} ) )";
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= $sel_status1;
- break;
- case 2:
- $queryNew .= $sel_status2;
- break;
- case 3:
- $queryNew .= $sel_status3;
- break;
- case 4:
- $queryNew .= $sel_status4;
- break;
- case 5:
- $queryNew .= $sel_status5;
- break;
- }
- $sqlSelectExt .= ",(case when (1=1 {$sel_status1}) then 1 ";
- $sqlSelectExt .= " when (1=1 {$sel_status2}) then 2 ";
- $sqlSelectExt .= " when (1=1 {$sel_status3}) then 3 ";
- $sqlSelectExt .= " when (1=1 {$sel_status4}) then 4 ";
- $sqlSelectExt .= " when (1=1 {$sel_status5}) then 5 ";
- $sqlSelectExt .= " else '' end) as statusCodeExt";
- break;
- }
- }
- $query = $queryNew;
- }
- if (!empty($bizWorker)) {
- if ($handleMode == "fetchallByWorker") {
- //$query .= " and (select count(*) from biz_market_activity_order where bmao.market_activityid=bma.id and bmao.biz_workerid=" . intval($bizWorker["id"]).")<=0 ";
- }
- }
- $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
- switch (intval($orderby)) {
- case 1: //1-人数倒序
- $orderby = " order by bma.istop desc,bma.total desc ";
- break;
- case 2: //2-距离倒序
- $nowLngLat = isset($ajaxdata["nowLngLat"]) ? $ajaxdata["nowLngLat"] : $GPC["nowLngLat"];
- if (empty($nowLngLat) || !preg_match("/^\d+\.\d+,\d+\.\d+$/", $nowLngLat)) {
- throw new GeneralException("", "没有传递必要的nowLngLat参数,或者经纬度格式不正确(经度,纬度)");
- }
- $sqlParam[":nowlng"] = floatval(explode(",", $nowLngLat)[0]);
- $sqlParam[":nowlat"] = floatval(explode(",", $nowLngLat)[1]);
- $sqlSelectExt .= ' ,(st_distance_sphere(point(CAST(bma.addr_lng AS decimal(11,8)),CAST(bma.addr_lat AS decimal(11,8))),point(CAST(:nowlng AS decimal(11,8)),CAST(:nowlat AS decimal(11,8))))) as distance ';
- $orderby = " order by distance asc ";
- break;
- default: //0-默认置顶倒序,时间倒序
- $orderby = " order by bma.istop desc,bma.id desc ";
- break;
- }
- //构建sql串
- $sqlBody = "";
- $sqlBody .= " from biz_market_activity bma ";
- $sqlBody .= " left join biz_market_activity_order bmao on bmao.market_activityid=bma.id ";
- $sqlBody .= " left join biz_worker wk on wk.id=bmao.biz_workerid ";
- $sqlBody .= " left join base_user bu on bu.id=wk.base_userid ";
- $sqlBody .= " where 1=1 " . $query;
- $sqlBody .= " group by bma.id ";
- //查询sql及统计sql
- $sqlFetch = " select bma.* ";
- $sqlFetch .= " ,sum(case when bmao.`status`>=0 then 1 else 0 end) as erolled_total";
- $sqlFetch .= " ,sum(case when bmao.`status`>=1 then 1 else 0 end) as payed_total";
- $sqlFetch .= " ,sum(case when bmao.`status`>=2 then 1 else 0 end) as used_total";
- $sqlFetch .= " ,sum(case when bmao.`status`>=3 then 1 else 0 end) as finished_total";
- $sqlFetch .= " {$sqlSelectExt} {$sqlBody} {$orderby} ";
- $exportExcel = isset($ajaxdata["exportExcel"]) ? $ajaxdata["exportExcel"] : $GPC["exportExcel"];
- if (trim($exportExcel) != "true") { //正常输出
- $start = (intval($pageIndex) - 1) * $pageSize;
- $sqlFetch .= " limit {$start},{$pageSize} ";
- $pageData = pdo_fetchall($sqlFetch, $sqlParam);
- foreach ($pageData as &$activity) { //数据转换/映射
- $activity["list_photos"] = json_decode($activity["list_photos"], true);
- $activity["detail_photos"] = json_decode($activity["detail_photos"], true);
- $activity["begin_datetime"] = date("Y-m-d H:i:s", $activity["begin_datetime"]);
- $activity["finish_datetime"] = date("Y-m-d H:i:s", $activity["finish_datetime"]);
- $activity["price"] = round($activity["price"], 2);
- $activity["activity_addr"] = json_decode($activity["activity_addr"], true);
- $activity["remark"] = trim(explode("\n", $activity["remark"])[0]);
- }
- unset($sqlParam[":nowlng"]);
- unset($sqlParam[":nowlat"]);
- $sqlSummary = " select count(*) as count from (select bma.id " . $sqlBody . " ) as temp;";
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- return array(
- "pageData" => $pageData,
- "count" => intval($sumData["count"]),
- );
- } else {
- $nowlng = $sqlParam[":nowlng"];
- $nowlat = $sqlParam[":nowlat"];
- unset($sqlParam[":nowlng"]);
- unset($sqlParam[":nowlat"]);
- $sqlSummary = " select count(*) as count from (select bma.id " . $sqlBody . " ) as temp;";
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- $recordTotal = intval($sumData["count"]);
- $pageTotal = ceil($recordTotal / $pageSize);
- $sqlParam[":nowlng"] = $nowlng;
- $sqlParam[":nowlat"] = $nowlat;
- $args = array(
- "pageIndex" => 0, "pageSize" => $pageSize, "pageTotal" => $pageTotal,
- "sqlFetch" => $sqlFetch, "sqlParam" => $sqlParam,
- );
- $csvTitle = array("标题", "开始日期", "结束日期", "商家名称", "地址", "电话");
- baseexcel_exportCsv("活动列表", $csvTitle, $args, function ($args) {
- $pageIndex = intval($args["pageIndex"]) + 1;
- $args["pageIndex"] = $pageIndex;
- $pageSize = intval($args["pageSize"]);
- $pageTotal = intval($args["pageTotal"]);
- if ($pageIndex > $pageTotal) {
- return false;
- }
- $sqlFetch = $args["sqlFetch"];
- $sqlParam = $args["sqlParam"];
- $start = (intval($pageIndex) - 1) * $pageSize;
- $pageData111 = pdo_fetchall($sqlFetch . " limit {$start},{$pageSize} ", $sqlParam);
- $pageData = array();
- foreach ($pageData111 as &$activity) { //数据转换/映射
- $activity_addr = json_decode($activity["activity_addr"], true);
- $activity_addr22 = trim($activity_addr["country"]);
- $activity_addr22 .= trim($activity_addr["province"]);
- $activity_addr22 .= trim($activity_addr["city"]);
- $activity_addr22 .= trim($activity_addr["district"]);
- $activity_addr22 .= trim($activity_addr["street"]);
- $activity_addr22 .= trim($activity_addr["streetNumber"]);
- $activity_addr22 .= trim($activity_addr["town"]);
- $activity_addr22 .= trim($activity_addr["village"]);
- $pageData[] = array(
- $activity["title"],
- "\t" . date("Y-m-d H:i:s", $activity["begin_datetime"]),
- "\t" . date("Y-m-d H:i:s", $activity["finish_datetime"]),
- $activity["company_name"], $activity_addr22, "\t" . $activity["linker_phone"],
- );
- }
- return array("pagedata" => $pageData, "args" => $args);
- });
- }
- break;
- case "fetchallSelf":
- $sqlParam = array();
- $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
- if (empty($query) && !is_array($query)) { //验证一下query信息集
- $query = " and 1=1 ";
- } else {
- $queryNew = " and 1=1 ";
- foreach ($query as $fdName => $fdValue) {
- if (empty($fdName) || empty($fdValue)) {
- continue;
- }
- switch ($fdName) {
- case "title":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_title";
- $queryNew .= " and (bma.title like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "linkphone":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_linkphone";
- $queryNew .= " and (bma.linker_phone like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "status":
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and bmao.`status`=0 ";
- break;
- case 2:
- $queryNew .= " and bmao.`status`=1 and bma.finish_datetime>" . time() . " ";
- break;
- case 3:
- $queryNew .= " and (bmao.`status`=2 or (bmao.`status`=1 and bma.finish_datetime<" . time() . ")) ";
- break;
- case 4:
- $queryNew .= " and bmao.`status`=3 ";
- break;
- }
- break;
- }
- }
- $query = $queryNew;
- }
- if (empty($bizWorker)) {
- throw new GeneralException("", "只针对会员的方法!!");
- }
- $query .= " and bmao.biz_workerid=" . intval($bizWorker["id"]) . " ";
- $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
- switch (intval($orderby)) {
- case 1: //1-价钱倒序
- $orderby = " order by bma.price desc ";
- break;
- case 2: //2-时间倒序
- $orderby = " order by bma.begin_datetime desc ";
- break;
- default: //0-默认时间倒序
- $orderby = " order by bmao.id desc ";
- break;
- }
- //构建sql串
- $sqlBody = "";
- $sqlBody .= " from biz_market_activity_order bmao ";
- $sqlBody .= " left join biz_market_activity bma on bmao.market_activityid=bma.id ";
- $sqlBody .= " left join biz_worker wk on wk.id=bmao.biz_workerid ";
- $sqlBody .= " left join base_user bu on bu.id=wk.base_userid ";
- $sqlBody .= " left join biz_appraisal apa on apa.biz_catalog=0 and apa.fromerid=bmao.biz_workerid and apa.toerid=0 and apa.biz_id=bmao.id ";
- $sqlBody .= " where 1=1 " . $query;
- //查询sql及统计sql
- $start = (intval($pageIndex) - 1) * $pageSize;
- $sqlFetch = " select bmao.* ";
- $sqlFetch .= " ,bma.price,bma.title,bma.begin_datetime,bma.finish_datetime,bma.activity_addr,bma.linker_phone";
- $sqlFetch .= " ,apa.result_level as appraiseLevel,apa.result_desc as appraiseRemark ";
- $sqlFetch .= " {$sqlBody} {$orderby} limit {$start},{$pageSize} ";
- $pageData = pdo_fetchall($sqlFetch, $sqlParam);
- //联合查询下,列项应该不算太多,可手工转换/映射!!或者以占主体的实体为主进行转换/映射;
- foreach ($pageData as &$data) { //数据转换/映射
- bizbase_mactivityOrderStatus($data);
- $data["begin_datetime"] = date("Y-m-d H:i:s", $data["begin_datetime"]);
- $data["finish_datetime"] = date("Y-m-d H:i:s", $data["finish_datetime"]);
- $data["price"] = round($data["price"], 2);
- $data["activity_addr"] = json_decode($data["activity_addr"], true);
- $data["remark"] = trim(explode("\n", $data["remark"])[0]);
- }
- $sqlSummary = " select count(*) as count " . $sqlBody . ";";
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- return array(
- "pageData" => $pageData,
- "count" => intval($sumData["count"]),
- );
- break;
- case "fetchallEnroll":
- $exportExcel = isset($ajaxdata["exportExcel"]) ? $ajaxdata["exportExcel"] : $GPC["exportExcel"];
- $sqlParam = array();
- //查询处理
- $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
- $query = empty(trim($exportExcel)) ? $query : json_decode($query, true);
- if (empty($query) && !is_array($query)) { //验证一下query信息集
- $query = " and 1=1 ";
- } else {
- $queryNew = " and 1=1 ";
- foreach ($query as $fdName => $fdValue) {
- if (empty($fdName) || empty($fdValue)) {
- continue;
- }
- switch ($fdName) {
- case "title":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_title";
- $queryNew .= " and (bma.title like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "memberName":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_memberName";
- $queryNew .= " and (wk.true_name like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "linkphone":
- if (empty(trim($fdValue))) {
- continue;
- }
- $paramName = ":qy_linkphone";
- $queryNew .= " and (bma.linker_phone like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "startDate":
- if (empty(trim($fdValue))) {
- continue;
- }
- $queryNew .= " and bmao.createtime>=" . strtotime(date("Y-m-d", strtotime($fdValue))) . " and bmao.createtime<=" . strtotime(date("Y-m-d 23:59:59", strtotime($fdValue))) . " ";
- break;
- case "status":
- switch (intval($fdValue)) {
- case 1:
- $queryNew .= " and bmao.`status`=0 ";
- break;
- case 2:
- $queryNew .= " and bmao.`status`=1 and bma.finish_datetime>" . time() . " ";
- break;
- case 3:
- $queryNew .= " and (bmao.`status`=2 or (bmao.`status`=1 and bma.finish_datetime<" . time() . ")) ";
- break;
- case 4:
- $queryNew .= " and bmao.`status`=3 ";
- break;
- }
- break;
- case "activityId":
- $queryNew .= " and bmao.`market_activityid`=" . intval($fdValue) . " ";
- break;
- }
- }
- $query = $queryNew;
- }
- $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
- switch (intval($orderby)) {
- default: //0-默认时间倒序
- $orderby = " order by bmao.id desc ";
- break;
- }
- //构建sql串
- $sqlBody = "";
- $sqlBody .= " from biz_market_activity_order bmao ";
- $sqlBody .= " left join biz_market_activity bma on bmao.market_activityid=bma.id ";
- $sqlBody .= " left join biz_worker wk on wk.id=bmao.biz_workerid ";
- $sqlBody .= " left join base_user bu on bu.id=wk.base_userid ";
- $sqlBody .= " left join biz_appraisal apa on apa.biz_catalog=0 and apa.fromerid=bmao.biz_workerid and apa.toerid=0 and apa.biz_id=bmao.id ";
- $sqlBody .= " where 1=1 and bmao.`status`>0 " . $query;
- //查询sql及统计sql
- $sqlFetch = " select bmao.* ";
- $sqlFetch .= " ,bma.price,bma.title,bma.begin_datetime,bma.finish_datetime,bma.activity_addr,bma.linker_phone";
- $sqlFetch .= " ,(case when wk.true_name<>'' then wk.true_name else wk.nickname end) as true_name,wk.idcard,wk.gender,bu.mobile as bu_mobile";
- $sqlFetch .= " ,apa.result_level as appraiseLevel,apa.result_desc as appraiseRemark ";
- $sqlFetch .= " {$sqlBody} {$orderby} ";
- $exportExcel = isset($ajaxdata["exportExcel"]) ? $ajaxdata["exportExcel"] : $GPC["exportExcel"];
- if (trim($exportExcel) != "true") { //正常输出
- $start = (intval($pageIndex) - 1) * $pageSize;
- $sqlFetch .= " limit {$start},{$pageSize} ";
- $pageData = pdo_fetchall($sqlFetch, $sqlParam);
- //联合查询下,列项应该不算太多,可手工转换/映射!!或者以占主体的实体为主进行转换/映射;
- foreach ($pageData as &$data) { //数据转换/映射
- bizbase_mactivityOrderStatus($data);
- $age = "";
- if (mb_strlen(trim($data["idcard"])) == 18) {
- $birthdate = mb_substr(trim($data["idcard"]), 6, 8);
- $datetime1 = date_create_from_format("Ymd", $birthdate);
- $datetime1 = new \DateTime(date("Y-m-d", date_timestamp_get($datetime1)));
- $datetime2 = new \DateTime(date("Y-m-d", time()));
- $interval = $datetime1->diff($datetime2);
- $age = intval($interval->format('%Y'));
- }
- $data["age"] = $age;
- $data["begin_datetime"] = date("Y-m-d H:i:s", $data["begin_datetime"]);
- $data["finish_datetime"] = date("Y-m-d H:i:s", $data["finish_datetime"]);
- $data["price"] = round($data["price"], 2);
- $data["activity_addr"] = json_decode($data["activity_addr"], true);
- $data["remark"] = trim(explode("\n", $data["remark"])[0]);
- pdo_query("update biz_market_activity_order set plater_readed=1 where id=" . intval($data["id"]));
- }
- $sqlSummary = " select count(*) as count " . $sqlBody . ";";
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- return array(
- "pageData" => $pageData,
- "count" => intval($sumData["count"]),
- );
- } else {
- $sqlSummary = " select count(*) as count " . $sqlBody . ";";
- $sumData = pdo_fetch($sqlSummary, $sqlParam);
- $recordTotal = intval($sumData["count"]);
- $pageTotal = ceil($recordTotal / $pageSize);
- $args = array(
- "pageIndex" => 0, "pageSize" => $pageSize, "pageTotal" => $pageTotal,
- "sqlFetch" => $sqlFetch, "sqlParam" => $sqlParam,
- );
- if ($recordTotal <= 0) {
- throw new GeneralException("", "竟然没有任何数据,没必要导出啊");
- }
- $csvTitle = array("开始时间", "姓名", "身份证号", "性别", "年龄", "电话");
- baseexcel_exportCsv("活动报名列表", $csvTitle, $args, function ($args) {
- $pageIndex = intval($args["pageIndex"]) + 1;
- $args["pageIndex"] = $pageIndex;
- $pageSize = intval($args["pageSize"]);
- $pageTotal = intval($args["pageTotal"]);
- if ($pageIndex > $pageTotal) {
- return false;
- }
- $sqlFetch = $args["sqlFetch"];
- $sqlParam = $args["sqlParam"];
- $start = (intval($pageIndex) - 1) * $pageSize;
- $pageData111 = pdo_fetchall($sqlFetch . " limit {$start},{$pageSize} ", $sqlParam);
- $pageData = array();
- foreach ($pageData111 as &$subdata) { //数据转换/映射
- $age = "";
- if (mb_strlen(trim($subdata["idcard"])) == 18) {
- $birthdate = mb_substr(trim($subdata["idcard"]), 6, 8);
- $datetime1 = date_create_from_format("Ymd", $birthdate);
- $datetime1 = new \DateTime(date("Y-m-d", date_timestamp_get($datetime1)));
- $datetime2 = new \DateTime(date("Y-m-d", time()));
- $interval = $datetime1->diff($datetime2);
- $age = intval($interval->format('%Y'));
- }
- $pageData[] = array(
- "\t" . date("Y-m-d H:i:s", $subdata["begin_datetime"])
- , $subdata["true_name"]
- , "\t" . $subdata["idcard"]
- , intval($subdata["gender"]) < 0 ? "" : (intval($subdata["gender"]) == 0 ? "男" : "女")
- , $age
- , "\t" . $subdata["bu_mobile"],
- );
- }
- return array("pagedata" => $pageData, "args" => $args);
- });
- }
- break;
- default:
- throw new GeneralException("", "不支持的handleMode!");
- }
- }
|