1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460 |
- <?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`=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");
- exit;
- 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 {
- if (intval($workInfo["status"]) != 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;
- $sqlTemp = " update biz_trader_account set";
- $sqlTemp .= " wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid ";
- $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["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(
- (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 = 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`=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"]);
- $data["btr_begindatetime"] = date("Y-m-d", $data["btr_begindatetime"]);
- $data["btr_finishdatetime"] = date("Y-m-d", $data["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;
- $sqlTemp = " update biz_worker_account set";
- $sqlTemp .= " wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid ";
- $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["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!");
- }
- }
|