12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251 |
- package cygx
- import (
- "encoding/json"
- "fmt"
- "github.com/rdlucklib/rdluck_tools/paging"
- "github.com/tealeg/xlsx"
- "hongze/hz_crm_api/controllers"
- "hongze/hz_crm_api/models"
- "hongze/hz_crm_api/models/company"
- "hongze/hz_crm_api/models/cygx"
- "hongze/hz_crm_api/models/roadshow"
- "hongze/hz_crm_api/models/system"
- "hongze/hz_crm_api/services"
- cygxService "hongze/hz_crm_api/services/cygx"
- "hongze/hz_crm_api/utils"
- "os"
- "path/filepath"
- "sort"
- "strconv"
- "strings"
- "time"
- "unicode/utf8"
- )
- // 权益用户管理
- type UserController struct {
- controllers.BaseAuthController
- }
- // List
- // @Title 用户列表
- // @Description 用户列表接口
- // @Param PageSize query int true "每页数据条数"
- // @Param CurrentIndex query int true "当前页页码,从1开始"
- // @Param Status query string true "状态:”试用','永续','冻结','流失','正式'"
- // @Param IsMaker query int false "是否决策人,1:是,0:否 ,2:全部'"
- // @Param IsRegister query int false "是否决策人,1:是,0:否 ,2:全部'"
- // @Param AdminId query string true "销售id,多个用英文逗号隔开,空字符串为全部"
- // @Param KeyWord query string true "搜索关键词"
- // @Param Label query string true "搜索用户标签"
- // @Param TryStage query int false "试用客户子标签:0全部、1未分类、2 推进、3 跟踪、4 预备。正式:套餐类型,0:无,1:大套餐,2:小套餐"
- // @Param SortType query string true "如何排序,是正序还是倒序,枚举值:`asc 正序`,`desc 倒叙`"
- // @Param IsSubscribeCygx query int true "是否关注了查研观向小助手公众号: -1-默认全部; 0-未关注; 1-已关注"
- // @Success 200 {object} cygx.CompanyUserListResp
- // @router /user/list [get]
- func (this *UserController) List() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- roleTypeCode := sysUser.RoleTypeCode
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- isMaker, _ := this.GetInt("IsMaker")
- isRegister, _ := this.GetInt("IsRegister")
- status := this.GetString("Status")
- adminId := this.GetString("AdminId")
- keyWord := this.GetString("KeyWord")
- label := this.GetString("Label")
- tryStage, _ := this.GetInt("TryStage") //试用客户标签
- sortType := this.GetString("SortType") //试用客户标签
- // 套餐类型
- //packageType, _ := this.GetInt("PackageType")
- keyWord = strings.Trim(keyWord, " ")
- keyWord = strings.Replace(keyWord, "'", "", -1)
- isSubscribeCygx, _ := this.GetInt("IsSubscribeCygx", -1)
- if status == "X类试用" {
- status = "永续"
- }
- var total int
- page := paging.GetPaging(currentIndex, pageSize, total)
- //statusItems := make([]*company.CompanyStatus, 0)
- //var statusArr = [...]string{"全部", "试用", "正式", "冻结", "流失", "永续"}
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = paging.StartIndex(currentIndex, pageSize)
- var condition string
- var sqlOrder string
- var usercondition string
- var kwywordcondition string
- var pars []interface{}
- var parsUser []interface{}
- //流失
- var lossCondition string
- //var lossPars []interface{}
- //状态分类查询条件
- //var permissionCondition string
- if adminId != "" {
- condition += ` AND b.seller_id IN (` + adminId + `) `
- }
- lossCondition = condition
- //lossPars = pars
- //permissionCondition = condition
- //流失客户统计
- lossCondition += ` AND status='流失' `
- if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER { //权益销售的查询逻辑
- condition += ` AND ( cp.seller_id = ` + strconv.Itoa(sysUser.AdminId) + ` OR cp.share_seller_id = ` + strconv.Itoa(sysUser.AdminId) + `)`
- } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP { // 权益销售组长查询逻辑
- adminList, err := system.GetAdminListByGroupId(sysUser.GroupId)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,GetAdminListByGroupIdErr:" + err.Error()
- return
- }
- var adminIds []string
- var companyIdsStr []string
- for _, v := range adminList {
- adminIds = append(adminIds, strconv.Itoa(v.AdminId))
- }
- //再获取组员下被共享的公司
- var parsShare []interface{}
- var conditionShare string
- conditionShare = " AND share_seller_id IN (" + strings.Join(adminIds, ",") + ") "
- listCompanyProduct, err := company.GetCompanyProductList(conditionShare, parsShare)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,GetCompanyProductList:" + err.Error()
- return
- }
- for _, v := range listCompanyProduct {
- companyIdsStr = append(companyIdsStr, strconv.Itoa(v.CompanyId))
- }
- companyIdsStr = append(companyIdsStr, "0")
- //本组的或者被分享到本组下面的公司
- condition += ` AND (cp.group_id = ` + strconv.Itoa(sysUser.GroupId) + ` OR cp.company_id IN (` + strings.Join(companyIdsStr, ",") + `) )`
- }
- //状态控制
- if status != "" && status != "全部" {
- condition += ` AND b.status= '` + status + `'`
- usercondition += ` AND cp.status= '` + status + `'`
- } else {
- condition += ` AND b.status IN ('正式','试用','冻结','永续') `
- }
- // 试用客户标签
- if (status == "试用" || status == "永续") && tryStage > 0 {
- condition += ` AND b.try_stage= '` + strconv.Itoa(tryStage) + `'`
- usercondition += ` AND cp.try_stage= '` + strconv.Itoa(tryStage) + `'`
- }
- //套餐类型 权益客户除了大套餐就是小套餐
- if status == "正式" && tryStage > 0 {
- if tryStage == 1 {
- condition += ` AND b.package_type= '` + strconv.Itoa(tryStage) + `'`
- usercondition += ` AND cp.package_type= '` + strconv.Itoa(tryStage) + `'`
- } else {
- condition += ` AND b.package_type!= 1 `
- usercondition += ` AND cp.package_type != 1 `
- }
- }
- if isMaker != 2 {
- if isMaker == 1 {
- usercondition += ` AND u.is_maker = 1 `
- } else {
- //部分脏数据
- usercondition += ` AND u.is_maker != 1 `
- }
- //parsUser = append(parsUser, isMaker)
- }
- if isRegister != 2 {
- if isRegister == 1 {
- usercondition += ` AND u.register_time IS NOT NULL`
- } else {
- //部分脏数据
- usercondition += ` AND u.register_time IS NULL`
- }
- //parsUser = append(parsUser, isRegister)
- }
- kwywordcondition = condition
- if keyWord != "" {
- companyIdStr, err := company.GetCompanyIdByKeyWord(keyWord)
- if err != nil {
- br.Msg = "获取客户信息失败"
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
- return
- }
- if companyIdStr != "" {
- condition += ` AND (a.company_name LIKE '%` + keyWord + `%' OR a.credit_code LIKE '%` + keyWord + `%' AND a.company_id IN(` + companyIdStr + `)) `
- } else {
- condition += ` AND (a.company_name LIKE '%` + keyWord + `%' OR a.credit_code LIKE '%` + keyWord + `%' ) `
- }
- }
- if label != "" && utf8.RuneCountInString(label) > 1 {
- //usercondition += ` AND u.user_label LIKE '%` + label + `%'`
- usercondition += ` AND u.user_id IN ( SELECT user_id FROM ` + utils.GetCygxDatabase() + `.wx_user_rai_label WHERE label LIKE '%` + label + `%' AND create_time >= '` + time.Now().AddDate(0, -4, 0).Format(utils.FormatDate) + `' ) `
- }
- //
- usercondition += ` AND cp.product_id = 2 AND sr.product_id = 2 `
- // 是否关注弘则研究公众号
- if isSubscribeCygx == 0 {
- usercondition += ` AND (u.cygx_subscribe = 0 OR ISNULL(u.cygx_subscribe)) `
- }
- if isSubscribeCygx == 1 {
- usercondition += ` AND u.cygx_subscribe = 1 `
- }
- condition += ` AND cp.product_id = 2 `
- total, err := cygx.GetCompanyListCount(usercondition, keyWord, kwywordcondition, condition, roleTypeCode, pars)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据总数失败,Err:" + err.Error()
- return
- }
- if sortType == "" {
- sqlOrder = ` GROUP by u.user_id ORDER BY c.created_time DESC, u.register_time DESC `
- } else {
- if sortType == "asc" {
- sqlOrder = ` GROUP by u.user_id ORDER BY u.interaction_num ASC , u.register_time DESC `
- } else {
- sqlOrder = ` GROUP by u.user_id ORDER BY u.interaction_num DESC , u.register_time DESC `
- }
- }
- list, err := cygx.GetCygxCompanyUserList(usercondition, keyWord, kwywordcondition, condition, roleTypeCode, sqlOrder, parsUser, startSize, pageSize)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- var isAdminRole bool
- //如果不是管理员身份或者研究员身份则需要添加可见范围处理
- if sysUser.Role == utils.ROLE_TYPE_CODE_ADMIN || sysUser.Role == utils.ROLE_TYPE_CODE_RESEARCHR {
- isAdminRole = true
- }
- var userIds string
- var userIdArr []int
- var companyIds []int
- var mobilesSlice []string
- if list != nil {
- for k, v := range list {
- if v.RegisterTime != "" {
- list[k].IsRegister = true
- } else {
- list[k].IsRegister = false
- }
- if v.IsShowSeeNum > 0 {
- list[k].IsShowSee = true
- }
- if v.Status == "正式" {
- if v.PackageType == 1 {
- list[k].Status += "(大套餐)"
- } else {
- list[k].Status += "(小套餐)"
- }
- }
- if v.Status == "试用" {
- if v.TryStage == 1 {
- list[k].Status += "(未分类)"
- } else if v.TryStage == 2 {
- list[k].Status += "(推进)"
- } else if v.TryStage == 3 {
- list[k].Status += "(跟踪)"
- } else if v.TryStage == 4 {
- list[k].Status += "(预备)"
- }
- }
- if v.Status == "永续" {
- v.Status = "X类试用"
- }
- userIds += strconv.Itoa(int(v.UserId)) + ","
- userIdArr = append(userIdArr, int(v.UserId))
- if !isAdminRole {
- list[k].CompanyInteractionNum = v.CompanyInteractionNumSeller
- }
- companyIds = append(companyIds, v.CompanyId)
- if v.Mobile != "" {
- mobilesSlice = append(mobilesSlice, v.Mobile)
- }
- }
- userIds = strings.TrimRight(userIds, ",")
- splitList, err := cygx.GetCygxCompanyUserListSplit(userIds)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- //用户备注
- userRemarksList, err := cygx.GetUserRemarksListByUserIds(userIds)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- mapUserRemarks := make(map[int]string)
- for _, v := range userRemarksList {
- if mapUserRemarks[v.UserId] == "" {
- mapUserRemarks[v.UserId] = v.Content
- }
- }
- UserRemindListMap := cygxService.GetCygxUserRemindListMap(userIdArr)
- mapIsUserMaker := cygxService.GetCompanyProductIsUserMakerByCompanyIds(companyIds) //根据公司ID获取近四周之内有决策人互动的客户
- userHaveMoveMap := services.GetWxUserHaveMoveMap(mobilesSlice) // 处理用户是否移动过按钮回显
- userLabelMap := cygxService.GetUserLabelByUserIdArr(userIdArr) // 根据多个userId 获取每个UserId最新的十条数据
- for k, v := range list {
- for _, vsplit := range splitList {
- if vsplit.UserId == v.UserId {
- list[k].HistoryNum = vsplit.HistoryNum
- list[k].CountNum = vsplit.CountNum
- list[k].IndustryFllowNum = vsplit.IndustryFllowNum
- list[k].DepartmentFollowNum = vsplit.DepartmentFollowNum
- list[k].KeyWordNum = vsplit.KeyWordNum
- list[k].OnLineNum = vsplit.OnLineNum
- list[k].OfficeNum = vsplit.OfficeNum
- list[k].ChartNum = vsplit.ChartNum
- list[k].TripNum = vsplit.TripNum
- list[k].RoadshowVideoNum = vsplit.RoadshowVideoNum
- list[k].ActivityVideoNum = vsplit.ActivityVideoNum
- list[k].ActivityVoiceNum = vsplit.ActivityVoiceNum
- list[k].YanxuanspecialNum = vsplit.YanxuanspecialNum
- }
- }
- if mapUserRemarks[int(v.UserId)] != "" {
- list[k].Content = mapUserRemarks[int(v.UserId)]
- }
- list[k].IsRemind = UserRemindListMap[int(v.UserId)]
- list[k].IsUserMaker = mapIsUserMaker[v.CompanyId]
- if v.Mobile != "" {
- v.HaveMoveButton = userHaveMoveMap[v.Mobile]
- }
- if len(userLabelMap[int(v.UserId)]) == 0 {
- list[k].RaiLabelList = make([]*cygx.WxUserRaiLabelListResp, 0)
- } else {
- list[k].RaiLabelList = userLabelMap[int(v.UserId)]
- }
- }
- for k := range list {
- list[k].InteractionNum = list[k].HistoryNum + list[k].CountNum + list[k].IndustryFllowNum + list[k].DepartmentFollowNum + list[k].KeyWordNum + list[k].OnLineNum + list[k].OfficeNum + list[k].ChartNum + list[k].TripNum + list[k].RoadshowVideoNum + list[k].ActivityVideoNum + list[k].ActivityVoiceNum + list[k].YanxuanspecialNum
- }
- } else {
- list = make([]*cygx.CygxCompanyUser, 0)
- }
- page = paging.GetPaging(currentIndex, pageSize, total)
- resp := new(cygx.CompanyUserListResp)
- resp.List = list
- resp.Paging = page
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 新增备注接口
- // @Description 新增备注
- // @Param request body cygx.UserRemarAddReq true "type json string"
- // @Success 200 新增成功
- // @router /user/addRemarks [post]
- func (this *UserController) Add() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req cygx.UserRemarAddReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.Content == "" {
- br.Msg = "请填写内容"
- return
- }
- item := new(cygx.UserRemarks)
- item.UserId = req.UserId
- item.AdminId = sysUser.AdminId
- item.Content = req.Content
- item.CreateTime = time.Now()
- err = cygx.AddUserRemarks(item)
- if err != nil {
- br.Msg = "新增失败."
- br.ErrMsg = "新增失败,Err:" + err.Error()
- return
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "新增成功"
- }
- // @Title 备注列表
- // @Description 备注列表接口
- // @Param UserId query int true "用户id"
- // @Success 200 {object} cygx.UserRemarksListResp
- // @router /user/remark/list [get]
- func (this *UserController) RemarkList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- userId, _ := this.GetInt("UserId")
- if userId < 1 {
- br.Msg = "用户不存在"
- return
- }
- list, err := cygx.GetUserRemarksList(userId)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取备注信息失败,Err:" + err.Error()
- return
- }
- resp := new(cygx.UserRemarksListResp)
- resp.List = list
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 互动详情table栏
- // @Description 互动详情table栏接口
- // @Param UserId query int true "用户id"
- // @Param ClassType query int true "列表类型,1:权益,2:研选,默认1"
- // @Success 200 {object} cygx.UserRemarksListResp
- // @router /user/table/list [get]
- func (this *UserController) TableList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- userId, _ := this.GetInt("UserId")
- if userId < 1 {
- br.Msg = "用户不存在"
- return
- }
- classType, _ := this.GetInt("ClassType", 1)
- wxUser, err := models.GetWxUserByUserId(userId)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取信息失败"
- return
- }
- comanyDetail, err := company.GetCompanyDetailById(wxUser.CompanyId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- resp := new(cygx.CygxUserTableListRep)
- if classType == 1 {
- countDetail, err := cygx.GetUserInteractionTableCount(userId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取各个阅读总数失败,Err:" + err.Error()
- return
- }
- calendarTotal, err := roadshow.GetRsCalendarMeetingUserCountByUserId(userId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "GetCygxUserFeedbackCountByUserId,Err:" + err.Error()
- return
- }
- List := []*cygx.CygxUserTableRep{{PermissionName: "报告阅读列表", Source: 1, TotalNum: countDetail.HistoryNum},
- {PermissionName: "活动互动记录", Source: 2, TotalNum: countDetail.OnLineNum + countDetail.OfficeNum},
- {PermissionName: "专项调研", Source: 8, TotalNum: countDetail.TripNum},
- {PermissionName: "1v1路演", Source: 15, TotalNum: calendarTotal},
- {PermissionName: "收藏的报告", Source: 3, TotalNum: countDetail.CountNum},
- {PermissionName: "收藏的图表", Source: 4, TotalNum: countDetail.ChartNum},
- {PermissionName: "关注的产业", Source: 5, TotalNum: countDetail.IndustryFllowNum},
- {PermissionName: "搜索", Source: 7, TotalNum: countDetail.KeyWordNum},
- {PermissionName: "音视频播放", Source: 9, TotalNum: countDetail.RoadshowVideoNum + countDetail.ActivityVideoNum + countDetail.ActivityVoiceNum},
- {PermissionName: "首页标签点击", Source: 10, TotalNum: countDetail.TagNum},
- {PermissionName: "交流反馈", Source: 14, TotalNum: countDetail.FeedbackNum}}
- resp.List = List
- } else {
- countDetail, err := cygx.GetUserInteractionTableCountByYanXuan(userId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取各个阅读总数失败,Err:" + err.Error()
- return
- }
- List := []*cygx.CygxUserTableRep{{PermissionName: "报告阅读列表", Source: 1, TotalNum: countDetail.HistoryNum},
- {PermissionName: "活动互动记录", Source: 2, TotalNum: countDetail.OnLineNum + countDetail.OfficeNum},
- {PermissionName: "收藏的报告", Source: 3, TotalNum: countDetail.CountNum},
- {PermissionName: "关注的产业", Source: 5, TotalNum: countDetail.IndustryFllowNum},
- {PermissionName: "关注的作者", Source: 6, TotalNum: countDetail.DepartmentFollowNum},
- {PermissionName: "专栏文章阅读记录", Source: 11, TotalNum: countDetail.YanxuanSpecialNum},
- {PermissionName: "收藏的专栏文章", Source: 12, TotalNum: countDetail.YanxuanSpecialCollectNum},
- {PermissionName: "关注的专栏作者", Source: 13, TotalNum: countDetail.YanxuanSpecialFollowNum},
- {PermissionName: "搜索", Source: 7, TotalNum: countDetail.KeyWordNum}}
- resp.List = List
- }
- //阅读记录总数
- resp.UserName = wxUser.RealName
- resp.Mobile = wxUser.Mobile
- resp.ComapnyName = comanyDetail.CompanyName
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 互动详情
- // @Description 互动详情接口
- // @Param UserId query int true "用户id"
- // @Param Source query int true "来源"
- // @Param IdentityType query int true "身份类型,1:用户,2机构。默认1 (图表分页使用)"
- // @Param IsMeeting query string true "是否到会 1到会、2未到会"
- // @Param MeetType query string true "参会方式 1线上,2线下 默认为线上"
- // @Param PageSize query int true "每页数据条数"
- // @Param CurrentIndex query int true "当前页页码,从1开始"
- // @Param StartDate query string true "开始时间"
- // @Param EndDate query string true "结束时间"
- // @Param KeyWord query string true "搜索关键词"
- // @Param ClassType query int true "列表类型,1:权益,2:研选,默认1"
- // @Param IsExport query bool false "是否导出excel,默认是false"
- // @Success 200 {object} cygx.UserInteractionListResp
- // @router /user/interaction/detail [get]
- func (this *UserController) TableDetail() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = paging.StartIndex(currentIndex, pageSize)
- userId, _ := this.GetInt("UserId")
- isMeeting := this.GetString("IsMeeting")
- meetType := this.GetString("MeetType")
- startDate := this.GetString("StartDate")
- endDate := this.GetString("EndDate")
- keyWord := this.GetString("KeyWord")
- source, _ := this.GetInt("Source")
- identityType, _ := this.GetInt("IdentityType")
- classType, _ := this.GetInt("ClassType", 1)
- //是否导出报表
- isExport, _ := this.GetBool("IsExport")
- if isExport {
- pageSize = 10000
- currentIndex = 1
- }
- if userId < 1 {
- br.Msg = "用户不存在"
- return
- }
- // 1.标记用户表
- //操作权限校验
- var err error
- wxUser, err := models.GetWxUserByUserId(userId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- mobile := wxUser.Mobile
- //var checkSource bool
- var MeetingNum int
- var NoMeetingNum int
- var list []*cygx.UserInteraction
- var total int
- var condition string
- var pars []interface{}
- if source == 1 {
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- if wxUser.Mobile == "" {
- wxUser.Mobile = wxUser.Email
- }
- //total, err = cygx.GetCygxArticleHistoryCount(wxUser.Mobile, wxUser.Email, condition)
- //if err != nil {
- // br.Msg = "获取信息失败"
- // br.ErrMsg = "获取用户阅读记录总数失败,Err:" + err.Error()
- // return
- //}
- if classType == 1 {
- condition += " AND art.article_type_id = 0 "
- } else {
- condition += " AND art.article_type_id > 0 "
- }
- condition += " AND (r.mobile = '" + wxUser.Mobile + "' OR r.email = '" + wxUser.Mobile + "') "
- total, list, err = cygx.GetCygxArticleHistoryRecordByUserNew(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- var articleIds string
- var articleIdArr []int
- if len(list) > 0 {
- articleIds = ""
- mapAricleId := make(map[int]int)
- mapAricleIndustrialSubjectName := make(map[int]*cygx.ArticleIndustrialSubjectNameResp)
- for k, v := range list {
- if v.ArticleId >= utils.SummaryArticleId {
- list[k].ArticleType = 1
- } else {
- list[k].ArticleType = 2
- }
- if mapAricleId[v.ArticleId] == 0 {
- articleIds += strconv.Itoa(v.ArticleId) + ","
- mapAricleId[v.ArticleId] = v.ArticleId
- }
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- articleIdArr = append(articleIdArr, v.ArticleId)
- }
- articleIds = strings.TrimRight(articleIds, ",")
- listArticleIndustrialSubjectList, err := cygx.GetCygxArticleIndustrialSubjectName(articleIds)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- if len(listArticleIndustrialSubjectList) > 0 {
- for _, v := range listArticleIndustrialSubjectList {
- mapAricleIndustrialSubjectName[v.ArticleId] = v
- }
- for k, v := range list {
- if mapAricleIndustrialSubjectName[v.ArticleId] != nil {
- list[k].IndustryName = mapAricleIndustrialSubjectName[v.ArticleId].IndustryName // 产业
- list[k].SubjectNameStr = mapAricleIndustrialSubjectName[v.ArticleId].SubjectNameStr // 标的
- }
- }
- }
- //行业
- mapPerssionName := cygxService.GetCygxArticlePerssionNameListMap(articleIdArr)
- for k, v := range list {
- if v.SpecialType > 0 {
- list[k].PermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
- } else {
- list[k].PermissionName = mapPerssionName[v.ArticleId]
- }
- if classType == 1 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- } else {
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- }
- if v.ReportId > 0 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/ricc/yb/report/" + strconv.Itoa(v.ReportId)
- }
- }
- //导出excel
- if isExport {
- exportListArticle(this, list, 1, br)
- return
- }
- }
- } else if source == 2 {
- if mobile != "" {
- condition = ` AND s.mobile = '` + mobile + `' `
- if classType == 1 {
- condition += " AND a.chart_permission_id != 31 "
- } else {
- condition += " AND a.chart_permission_id = 31 "
- }
- if isMeeting == "1" {
- condition += ` AND s.is_meeting = 1 `
- }
- if isMeeting == "2" {
- condition += ` AND s.is_meeting = 0 `
- }
- if meetType == "1" {
- condition += ` AND t.activity_type = 1 `
- }
- if meetType == "2" {
- condition += ` AND t.activity_type = 0 `
- }
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND a.activity_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND a.activity_time <= '` + endDate + `' `
- }
- if keyWord != "" {
- condition += ` AND a.activity_name LIKE '%` + keyWord + `%' `
- }
- total, err = cygx.GetActivityMeetByUserCount(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取参会总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetActivityMeetByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- if len(list) > 0 {
- for k, v := range list {
- if v.ActivityType == 1 {
- if v.SignupType == "2" {
- list[k].InteractionType = "自主拨入"
- } else {
- list[k].InteractionType = "预约外呼"
- }
- if v.ReminderNum > 0 {
- list[k].InteractionType += "会议提醒"
- }
- }
- if v.IsMeeting == 0 {
- list[k].FirstMeetingTime = ""
- list[k].LastMeetingTime = ""
- }
- if v.FirstMeetingTime == "0000-00-00 00:00:00" {
- list[k].FirstMeetingTime = ""
- list[k].LastMeetingTime = ""
- }
- }
- }
- }
- //导出excel
- if isExport {
- exportListActivity(this, list, 1, br)
- return
- }
- } else if source == 3 {
- if classType == 1 {
- condition += " AND art.article_type_id = 0 "
- } else {
- condition += " AND art.article_type_id > 0 "
- }
- total, err = cygx.GetCygxArticleCollectCount(userId, condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxArticleCollectByUser(userId, startSize, pageSize, condition)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
- return
- }
- if len(list) > 0 {
- for k, v := range list {
- if v.ArticleId >= utils.SummaryArticleId {
- list[k].ArticleType = 1
- } else {
- list[k].ArticleType = 2
- }
- if classType == 1 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- } else {
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- }
- if v.ReportId > 0 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/ricc/yb/report/" + strconv.Itoa(v.ReportId)
- }
- }
- }
- } else if source == 4 {
- if identityType == 2 {
- condition += ` AND r.create_time < date_format(now(),'%Y-%m-%d') ` //过滤当天时间
- }
- condition += ` AND a.publish_status = 1 AND user_id = ` + strconv.Itoa(userId)
- var err error
- total, err = cygx.GetChartCountByUser(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetChartListCollectionWithCygx(condition, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- for k, v := range list {
- if v.PtagName != "" {
- list[k].CtagNamePc = v.PtagName
- }
- if v.CtagName != "" {
- list[k].CtagNamePc += "," + v.CtagName
- }
- if v.PtagNameTwo != "" {
- list[k].CtagNamePc += "," + v.PtagNameTwo
- }
- if v.CtagNameTwo != "" {
- list[k].CtagNamePc += "," + v.CtagNameTwo
- }
- }
- } else if source == 5 {
- if classType == 1 {
- condition += " AND a.chart_permission_id != 31 "
- } else {
- condition += " AND a.chart_permission_id = 31 "
- }
- total, err = cygx.GetCygxIndustryFllowCount(userId, condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- list, err = cygx.GetCygxIndustryFllowByUser(userId, startSize, pageSize, condition)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- } else if source == 6 {
- total, err = cygx.GetCygArticleDepartmentFollowCount(userId)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者总数失败"
- return
- }
- list, err = cygx.GetCygArticleDepartmentFollowByUser(userId, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者列表失败"
- return
- }
- if len(list) > 0 {
- for k, v := range list {
- var condition string
- var pars []interface{}
- condition += ` WHERE art.source = 1 AND art.is_summary = 1 AND art.department_id = ` + strconv.Itoa(v.DepartmentId)
- listArt, errList := cygx.GetSummaryManageList(condition, pars, 0, 20)
- if errList != nil && errList.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,Err:" + errList.Error()
- return
- }
- if len(listArt) > 0 {
- mapIndustryName := make(map[string]string)
- mapSubjectName := make(map[string]string)
- var articleIdStr string
- for _, vArt := range listArt {
- if vArt.IndustryName != "" && mapIndustryName[vArt.IndustryName] == "" {
- list[k].IndustryName += vArt.IndustryName + "/"
- mapIndustryName[vArt.IndustryName] = vArt.IndustryName
- }
- articleIdStr += strconv.Itoa(vArt.ArticleId) + ","
- }
- list[k].IndustryName = strings.TrimRight(list[k].IndustryName, "/")
- articleIdStr = strings.TrimRight(articleIdStr, ",")
- listSubject, err := cygx.GetArticleSubjectList(articleIdStr)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,Err:" + err.Error()
- return
- }
- if len(listSubject) > 0 {
- for _, vSub := range listSubject {
- if vSub.SubjectName != "" && mapSubjectName[vSub.SubjectName] == "" {
- list[k].SubjectNameStr += vSub.SubjectName + "/"
- mapSubjectName[vSub.SubjectName] = vSub.SubjectName
- }
- }
- list[k].SubjectNameStr = strings.TrimRight(list[k].SubjectNameStr, "/")
- }
- }
- }
- }
- } else if source == 7 {
- if classType == 1 {
- condition += " AND register_platform IN (1,2) "
- } else {
- condition += " AND register_platform IN (5,6) "
- }
- total, err = cygx.GetCygxSearchKeyWordCount(userId, condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- list, err = cygx.GetCygxSearchKeyWordByUser(condition, userId, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录列表失败"
- return
- }
- } else if source == 8 {
- condition += ` AND h.user_id = ? `
- pars = append(pars, userId)
- total, err = cygx.GetCygxActivitySpecialTripCount(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- list, err = cygx.GetCygxActivitySpecialTripByUser(userId, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录列表失败"
- return
- }
- } else if source == 9 {
- total, err = cygx.GetCygxRoadshowCount(userId)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- list, err = cygx.GetCygxRoadshowByUser(userId, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录列表失败"
- return
- }
- } else if source == 10 { //标签点击记录
- total, err = cygx.GetCygxTagHistoryCountByUserId(userId)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- list, err = cygx.GetCygxTagHistoryByUserId(userId, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录列表失败"
- return
- }
- } else if source == 11 { //专栏文章阅读记录
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- if wxUser.Mobile == "" {
- wxUser.Mobile = wxUser.Email
- }
- condition += " AND (r.mobile = '" + wxUser.Mobile + "' OR r.email = '" + wxUser.Mobile + "') "
- total, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- if len(list) > 0 {
- for k, v := range list {
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/detail/" + strconv.Itoa(v.ArticleId)
- }
- }
- //导出excel
- if isExport {
- exportListYanxuanSpecial(this, list, 1, br)
- return
- }
- } else if source == 12 { //收藏的专栏文章
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- if wxUser.Mobile == "" {
- wxUser.Mobile = wxUser.Email
- }
- condition += " AND (r.mobile = '" + wxUser.Mobile + "' OR r.email = '" + wxUser.Mobile + "') "
- total, list, err = cygx.GetCygxYanxuanSpecialCollectByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- if len(list) > 0 {
- for k, v := range list {
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/detail/" + strconv.Itoa(v.ArticleId)
- }
- }
- } else if source == 13 { //关注的专栏作者
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- if wxUser.Mobile == "" {
- wxUser.Mobile = wxUser.Email
- }
- condition += " AND (r.mobile = '" + wxUser.Mobile + "' OR r.email = '" + wxUser.Mobile + "') "
- total, list, err = cygx.GetCygxYanxuanSpecialAuthorByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- if len(list) > 0 {
- for k, v := range list {
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/view/" + strconv.Itoa(v.DepartmentId)
- }
- }
- } else if source == 14 { //交流反馈
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- if wxUser.Mobile == "" {
- wxUser.Mobile = wxUser.Email
- }
- condition += " AND (r.mobile = '" + wxUser.Mobile + "' OR r.email = '" + wxUser.Mobile + "') "
- total, list, err = cygx.GetCygxUserFeedback(condition, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else if source == 15 { //1V1路演
- if startDate != "" {
- condition += ` AND b.start_date >= '` + startDate + `' `
- }
- if endDate != "" {
- condition += ` AND b.start_date <= '` + endDate + `' `
- }
- if wxUser.Mobile == "" {
- wxUser.Mobile = wxUser.Email
- }
- condition += " AND (r.mobile = '" + wxUser.Mobile + "' OR r.email = '" + wxUser.Mobile + "') "
- totalRsCalendar, listRsCalendar, err := roadshow.GetRsCalendarMeetingUserByRai(condition, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,GetRsCalendarMeetingUserByRai Err:" + err.Error()
- return
- }
- total = totalRsCalendar
- list, err = cygxService.HandleListRsCalendar(listRsCalendar)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "HandleListRsCalendar,Err:" + err.Error()
- return
- }
- //导出excel
- if isExport {
- exportListRsCalendar(this, list, 1, br)
- return
- }
- }
- page := paging.GetPaging(currentIndex, pageSize, total)
- resp := new(cygx.UserInteractionListResp)
- if len(list) == 0 {
- list = make([]*cygx.UserInteraction, 0)
- }
- resp.MeetingNum = MeetingNum
- resp.NoMeetingNum = NoMeetingNum
- resp.List = list
- resp.Paging = page
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 获取用户标签详情
- // @Description 获取用户标签详情接口
- // @Param UserId query int true "用户id"
- // @Success 200 {object} cygx.UserLabel
- // @router /user/label/detail [get]
- func (this *UserController) LabelDetail() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- userId, _ := this.GetInt("UserId")
- if userId < 1 {
- br.Msg = "用户不存在"
- return
- }
- wxUser, err := models.GetWxUserByUserId(userId)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取信息失败"
- return
- }
- if userId > 0 {
- resp := new(cygx.UserLabel)
- resp.Label = wxUser.UserLabel
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- return
- }
- list, err := cygx.GetCygxCompanyUserListSplit(strconv.Itoa(userId))
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- mapLabels := make(map[string]string)
- var labelsListStr []*cygx.UserLabel
- mapActivityLabels := make(map[string]string)
- for k := range list {
- labels := list[k].Labels
- labelsList := strings.Split(labels, ",")
- for _, vL := range labelsList {
- if mapLabels[vL] == "" && vL != "" {
- mapLabels[vL] = vL
- item := new(cygx.UserLabel)
- item.Label = vL
- labelsListStr = append(labelsListStr, item)
- }
- }
- }
- dateTime := time.Now().AddDate(0, -3, 0).Format(utils.FormatDate)
- listArticlePv, err := cygx.GetArticlePvCount(wxUser.Mobile, wxUser.Email, dateTime)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- var articleIds string
- mapArticleIdLabelTotal := make(map[string]int)
- mapArticleIdPv := make(map[int]int)
- if len(listArticlePv) > 0 {
- for _, v := range listArticlePv {
- articleIds += strconv.Itoa(v.ArticleId) + ","
- mapArticleIdPv[v.ArticleId] = v.Pv
- }
- articleIds = strings.TrimRight(articleIds, ",")
- //产业、标的标签
- listLabelName, err := cygx.GetArticleGroupyIndustryName(articleIds)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- if len(listLabelName) > 0 {
- for _, v := range listLabelName {
- labelsIndustryList := strings.Split(v.IndustryName, "/")
- labelsSubjectList := strings.Split(v.SubjectName, "/")
- //添加产业统计
- if len(labelsIndustryList) > 0 {
- for _, vIn := range labelsIndustryList {
- if mapActivityLabels[vIn] != "" {
- mapArticleIdLabelTotal[vIn] += mapArticleIdPv[v.ArticleId]
- } else {
- mapArticleIdLabelTotal[vIn] = mapArticleIdPv[v.ArticleId]
- mapActivityLabels[vIn] = vIn
- }
- }
- }
- if len(labelsSubjectList) > 0 {
- //添加标的统计
- for _, vIn := range labelsSubjectList {
- if mapActivityLabels[vIn] != "" {
- mapArticleIdLabelTotal[vIn] += mapArticleIdPv[v.ArticleId]
- } else {
- mapArticleIdLabelTotal[vIn] = mapArticleIdPv[v.ArticleId]
- mapActivityLabels[vIn] = vIn
- }
- }
- }
- }
- }
- }
- articleIds, err = cygx.GetCygxArticleCollectId(userId, dateTime)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户搜藏记录失败"
- return
- }
- if articleIds != "" {
- //产业、标的标签
- listLabelName, err := cygx.GetArticleGroupyIndustryName(articleIds)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- if len(listLabelName) > 0 {
- for _, v := range listLabelName {
- labelsIndustryList := strings.Split(v.IndustryName, "/")
- labelsSubjectList := strings.Split(v.SubjectName, "/")
- //添加产业统计
- if len(labelsIndustryList) > 0 {
- for _, vIn := range labelsIndustryList {
- if mapActivityLabels[vIn] != "" {
- mapArticleIdLabelTotal[vIn] += 1
- } else {
- mapArticleIdLabelTotal[vIn] = 1
- mapActivityLabels[vIn] = vIn
- }
- }
- }
- if len(labelsSubjectList) > 0 {
- //添加标的统计
- for _, vIn := range labelsSubjectList {
- if mapActivityLabels[vIn] != "" {
- mapArticleIdLabelTotal[vIn] += 1
- } else {
- mapArticleIdLabelTotal[vIn] = 1
- mapActivityLabels[vIn] = vIn
- }
- }
- }
- }
- }
- }
- //活动标签计算
- listActivityPv, err := cygx.GetActivitySignCount(wxUser.Mobile, dateTime)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- if len(listActivityPv) > 0 {
- for _, v := range listActivityPv {
- labelsList := strings.Split(v.Label, "-")
- for _, v2 := range labelsList {
- labelsListSon := strings.Split(v2, "/")
- for _, v3 := range labelsListSon {
- if mapActivityLabels[v3] != "" {
- mapArticleIdLabelTotal[v3] += 1
- } else {
- mapArticleIdLabelTotal[v3] = 1
- mapActivityLabels[v3] = v3
- }
- }
- }
- }
- }
- //会议提醒部分标签
- listActivityPvByReminder, err := cygx.GetActivityMeetingReminder(wxUser.Mobile, dateTime)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- if len(listActivityPvByReminder) > 0 {
- for _, v := range listActivityPvByReminder {
- labelsList := strings.Split(v.Label, "-")
- for _, v2 := range labelsList {
- labelsListSon := strings.Split(v2, "/")
- for _, v3 := range labelsListSon {
- if mapActivityLabels[v3] != "" {
- mapArticleIdLabelTotal[v3] += 1
- } else {
- mapArticleIdLabelTotal[v3] = 1
- mapActivityLabels[v3] = v3
- }
- }
- }
- }
- }
- //对标签数量进行排序
- type KvPair struct {
- Key string
- Val int
- }
- tmpList := make([]KvPair, 0)
- for k, v := range mapArticleIdLabelTotal {
- tmpList = append(tmpList, KvPair{Key: k, Val: v})
- }
- sort.Slice(tmpList, func(i, j int) bool {
- return tmpList[i].Val > tmpList[j].Val // 降序
- })
- for _, v := range tmpList {
- if v.Key != "" {
- mapLabels[v.Key] = v.Key
- item := new(cygx.UserLabel)
- item.Label = v.Key
- labelsListStr = append(labelsListStr, item)
- }
- }
- var labelNew string
- for _, v := range labelsListStr {
- labelNew += v.Label + ","
- }
- labelNew = strings.TrimRight(labelNew, ",")
- resp := new(cygx.UserLabel)
- resp.Label = labelNew
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 状态搜索栏
- // @Description 状态搜索栏接口
- // @Success 200 {object} cygx.CygxUserTableStatusListRep
- // @router /user/status/table [get]
- func (this *UserController) StatusTable() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- listType := []*cygx.CygxTryStageRep{{Name: "大套餐", TryStage: 1}, {Name: "小套餐", TryStage: 2}}
- listStatus := []*cygx.CygxTryStageRep{{Name: "未分类", TryStage: 1}, {Name: "推进", TryStage: 2}, {Name: "跟踪", TryStage: 3}, {Name: "预备", TryStage: 4}}
- List := []*cygx.CygxUserTableStatusRep{{Name: "正式", List: listType, TryStage: "正式"}, {Name: "试用", List: listStatus, TryStage: "试用"}, {Name: "冻结", List: []*cygx.CygxTryStageRep{}, TryStage: "冻结"}, {Name: "X类试用", List: []*cygx.CygxTryStageRep{}, TryStage: "X类试用"}}
- resp := new(cygx.CygxUserTableStatusListRep)
- resp.List = List
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 用户互动量
- // @Description 状态搜索栏接口
- // @Param UserId query int true "用户id"
- // @Success 200 {object} cygx.CygxUserTableStatusListRep
- // @router /user/interactionNum [get]
- func (this *UserController) InteractionNum() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- userId, _ := this.GetInt("UserId")
- if userId < 1 {
- br.Msg = "用户不存在"
- return
- }
- wxUser, err := models.GetWxUserByUserId(userId)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取信息失败"
- return
- }
- cp, err := company.GetCompanyProductByCompanyIdAndProductId(wxUser.CompanyId, 2)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取客户信息失败"
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
- return
- }
- resp := new(cygx.CygxCygxInteractionNumRespListResp)
- for i := 0; i < 4; i++ {
- item := new(cygx.CygxInteractionNumResp)
- if cp != nil && cp.Status == "正式" {
- //阅读记录总数
- var startDate, endDate string
- item.DateTime = time.Now().AddDate(0, -i, 0).Format("2006.01")
- startDate = utils.GetOneMonthFirstDay(time.Now().AddDate(0, -i, 0)).Format(utils.FormatDate)
- endDate = utils.GetOneMonthLastDay(time.Now().AddDate(0, -i, 0)).Format(utils.FormatDate)
- countDetail, err := cygx.GetCompanyInteractionTableCountBytime(wxUser.CompanyId, startDate, endDate)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取各个阅读总数失败,Err:" + err.Error()
- return
- }
- item.InteractionNum = countDetail.HistoryNum + countDetail.CountNum + countDetail.IndustryFllowNum + countDetail.DepartmentFollowNum + countDetail.KeyWordNum + countDetail.OnLineNum + countDetail.OfficeNum + countDetail.ChartNum
- } else {
- var weekStr string
- switch i {
- case 0:
- weekStr = "本周("
- case 1:
- weekStr = "上周("
- case 2:
- weekStr = "上两周("
- case 3:
- weekStr = "上三周("
- }
- item.DateTime = weekStr + utils.GetNowWeekMonday().AddDate(0, 0, -i*7).Format("01.02") + "~" + utils.GetNowWeekMonday().AddDate(0, 0, -i*7+6).Format("01.02") + ")"
- var startDate, endDate string
- startDate = utils.GetNowWeekMonday().AddDate(0, 0, -i*7).Format(utils.FormatDate)
- endDate = utils.GetNowWeekMonday().AddDate(0, 0, -i*7+6).Format(utils.FormatDate)
- countDetail, err := cygx.GetCompanyInteractionTableCountBytime(wxUser.CompanyId, startDate, endDate)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取各个阅读总数失败,Err:" + err.Error()
- return
- }
- item.InteractionNum = countDetail.HistoryNum + countDetail.CountNum + countDetail.IndustryFllowNum + countDetail.DepartmentFollowNum + countDetail.KeyWordNum + countDetail.OnLineNum + countDetail.OfficeNum + countDetail.ChartNum + countDetail.TripNum + countDetail.RoadshowVideoNum + countDetail.ActivityVideoNum + countDetail.ActivityVoiceNum
- }
- resp.List = append(resp.List, item)
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 标签检索用户相关互动
- // @Description 标签检索用户相关互动接口
- // @Param UserId query int true "用户id"
- // @Param KeyWord query string true "搜索关键词"
- // @Param Source query int true "来源 1:报告阅读,2:报告收藏,3:相关活动,4:专项产业调研"
- // @Success 200 {object} cygx.UserInteractionrelevantListResp
- // @router /user/interaction/relevant [get]
- func (this *UserController) InteractionRelevant() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- userId, _ := this.GetInt("UserId")
- source, _ := this.GetInt("Source")
- keyWord := this.GetString("KeyWord")
- if userId < 1 {
- br.Msg = "用户不存在"
- return
- }
- wxUser, err := models.GetWxUserByUserId(userId)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取信息失败"
- return
- }
- managementIds, err := cygx.GetManagementIdsByName(keyWord)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取产业信息失败,Err:" + err.Error()
- return
- }
- subjectIds, err := cygx.GetIndustrialSubjectIdsByName(keyWord)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取标的信息失败,Err:" + err.Error()
- return
- }
- resp := new(cygx.UserInteractionrelevantListResp)
- var condition string
- if source == 1 || source == 2 {
- var articleIds string
- if managementIds != "" || subjectIds != "" {
- var articleIdmanagement string
- var articleIdsubject string
- if managementIds != "" {
- articleIdmanagement, err = cygx.GetArticleIdsByIndustrialManagementId(managementIds)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取活动ID信息失败,Err:" + err.Error()
- return
- }
- }
- if subjectIds != "" {
- articleIdsubject, err = cygx.GetArticleIdsBySubjectId(subjectIds)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取活动ID信息失败,Err:" + err.Error()
- return
- }
- }
- if articleIdmanagement != "" && articleIdsubject != "" {
- articleIds = articleIdmanagement + "," + articleIdsubject
- } else if articleIdmanagement != "" && articleIdsubject == "" {
- articleIds = articleIdmanagement
- } else if articleIdmanagement == "" && articleIdsubject != "" {
- articleIds = articleIdsubject
- }
- } else {
- matchDetail, err := cygx.GetCygxReportMappingCygxDetailByName(keyWord)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "GetCygxReportMappingCygxDetail,Err:" + err.Error()
- return
- }
- if matchDetail != nil {
- var condition string
- var pars []interface{}
- condition = ` AND id_cygx = ? `
- pars = append(pars, matchDetail.Id)
- listGroup, err := cygx.GetCygxReportMappingGroupList(condition, pars, 0, 999)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,Err:" + err.Error()
- return
- }
- var categoryIds []int
- for _, v := range listGroup {
- categoryIds = append(categoryIds, v.CategoryIdCelue)
- }
- pars = make([]interface{}, 0)
- condition = ` AND category_id IN (` + utils.GetOrmInReplace(len(categoryIds)) + `)`
- pars = append(pars, categoryIds)
- listArticle, err := cygx.GetArticlList(condition, pars, 0, 999)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,Err:" + err.Error()
- return
- }
- for _, v := range listArticle {
- articleIds += strconv.Itoa(v.ArticleId) + ","
- }
- articleIds = strings.TrimRight(articleIds, ",")
- }
- }
- if articleIds != "" {
- condition = ` AND r.article_id IN (` + articleIds + `)`
- if source == 1 {
- condition += ` AND r.stop_time > 4 `
- resp.List, err = cygx.GetCygxArticleHistoryRecordByUser(wxUser.Mobile, wxUser.Email, condition, 0, 0)
- } else {
- resp.List, err = cygx.GetCygxArticleCollectByUser(userId, 0, 0, condition)
- }
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户阅读记录"
- return
- }
- if len(resp.List) > 0 {
- for k, v := range resp.List {
- resp.List[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- resp.List[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- if v.ArticleId >= utils.SummaryArticleId {
- resp.List[k].ArticleType = 1
- } else {
- resp.List[k].ArticleType = 2
- }
- }
- }
- }
- } else if source == 3 {
- activityIdByLabel, err := cygx.GetactivityIdsByLabel(keyWord)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取活动ID信息失败,Err:" + err.Error()
- return
- }
- activityId := activityIdByLabel
- if activityId != "" {
- condition = ` AND s.is_meeting = 1 AND s.activity_id IN (` + activityId + `) AND s.mobile = ` + wxUser.Mobile
- resp.List, err = cygx.GetActivityMeetByUser(condition, 0, 0)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
- return
- }
- }
- } else if source == 4 {
- activityIdByLabel, err := cygx.GetactivitySpecilIdsByLabel(keyWord)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取活动ID信息失败,Err:" + err.Error()
- return
- }
- activityId := activityIdByLabel
- if activityId != "" {
- condition = ` AND s.is_meeting = 1 AND s.activity_id IN (` + activityId + `) AND s.mobile = ` + wxUser.Mobile
- resp.List, err = cygx.GetActivitySpecialMeetByUser(condition, 0, 0)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
- return
- }
- }
- }
- if len(resp.List) == 0 {
- resp.List = make([]*cygx.UserInteraction, 0)
- }
- resp.IndustryName = keyWord
- if managementIds != "" {
- count, err := cygx.GetCygxIndustryFllowCountByUser(userId, managementIds)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户是否关注失败,Err:" + err.Error()
- return
- }
- if count > 0 {
- resp.IsFllow = true
- }
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 用户相关互动下载
- // @Description 用户相关互动下载接口
- // @Param UserId query int true "用户id"
- // @Param Source query int true "来源 报告阅读列表: 1, 活动互动记录: 2"
- // @Param IsMeeting query string true "是否到会 1到会、2未到会"
- // @Param MeetType query string true "参会方式 1线上,2线下 默认为线上"
- // @Param StartDate query string true "开始时间"
- // @Param EndDate query string true "结束时间"
- // @Param KeyWord query string true "搜索关键词"
- // @Param ClassType query int true "列表类型,1:权益,2:研选,默认1"
- // @Success 200 {object} cygx.CygxUserTableStatusListRep
- // @router /user/export/interaction [get]
- func (this *UserController) ExportInteraction() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- userId, _ := this.GetInt("UserId")
- isMeeting := this.GetString("IsMeeting")
- meetType := this.GetString("MeetType")
- startDate := this.GetString("StartDate")
- endDate := this.GetString("EndDate")
- keyWord := this.GetString("KeyWord")
- source, _ := this.GetInt("Source")
- classType, _ := this.GetInt("ClassType", 1)
- if userId < 1 {
- br.Msg = "用户不存在"
- return
- }
- wxUser, err := models.GetWxUserByUserId(userId)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取信息失败"
- return
- }
- mobile := wxUser.Mobile
- var list []*cygx.UserInteraction
- var condition string
- var sheetName string
- if source == 1 {
- sheetName = "报告阅读列表"
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- if wxUser.Mobile == "" {
- wxUser.Mobile = wxUser.Email
- }
- //total, err = cygx.GetCygxArticleHistoryCount(wxUser.Mobile, wxUser.Email, condition)
- //if err != nil {
- // br.Msg = "获取信息失败"
- // br.ErrMsg = "获取用户阅读记录总数失败,Err:" + err.Error()
- // return
- //}
- if classType == 1 {
- condition += " AND art.article_type_id = 0 "
- } else {
- condition += " AND art.article_type_id > 0 "
- }
- condition += " AND (r.mobile = '" + wxUser.Mobile + "' OR r.email = '" + wxUser.Mobile + "') "
- _, list, err = cygx.GetCygxArticleHistoryRecordByUserNew(condition, 0, 9999)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- var articleIds []int
- if len(list) > 0 {
- for k, v := range list {
- if v.ArticleId >= utils.SummaryArticleId {
- list[k].ArticleType = 1
- } else {
- list[k].ArticleType = 2
- }
- if list[k].PermissionName == "" {
- list[k].PermissionName = v.CategoryName
- }
- if v.SpecialType == 0 {
- articleIds = append(articleIds, v.ArticleId)
- }
- }
- mapIndustrialLabel := cygxService.GetArticleIndustrialLabelByArticleId(articleIds) // 关联产业
- mapSubjectLabel := cygxService.GetArticleSubjectLabelByArticleId(articleIds) // 关联标的
- for _, v := range list {
- v.IndustryName = strings.Join(mapIndustrialLabel[v.ArticleId], "/")
- v.SubjectNameStr = strings.Join(mapSubjectLabel[v.ArticleId], "/")
- }
- }
- } else if source == 2 {
- sheetName = "到会管理名单"
- if mobile != "" {
- condition = ` AND s.mobile = '` + mobile + `' `
- if classType == 1 {
- condition += " AND a.chart_permission_id != 31 "
- } else {
- condition += " AND a.chart_permission_id = 31 "
- }
- if isMeeting == "1" {
- condition += ` AND s.is_meeting = 1 `
- }
- if isMeeting == "2" {
- condition += ` AND s.is_meeting = 0 `
- }
- if meetType == "1" {
- condition += ` AND t.activity_type = 1 `
- }
- if meetType == "2" {
- condition += ` AND t.activity_type = 0 `
- }
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND a.activity_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND a.activity_time <= '` + endDate + `' `
- }
- if keyWord != "" {
- condition += ` AND a.activity_name LIKE '%` + keyWord + `%' `
- }
- list, err = cygx.GetActivityMeetByUser(condition, 0, 0)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- if len(list) > 0 {
- for k, v := range list {
- if v.ActivityType == 1 {
- if v.SignupType == "2" {
- list[k].InteractionType = "自主拨入"
- } else {
- list[k].InteractionType = "预约外呼"
- }
- if v.ReminderNum > 0 {
- list[k].InteractionType += ",会议提醒"
- }
- }
- }
- }
- }
- } else if source == 11 {
- sheetName = "专栏文章阅读记录"
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- if wxUser.Mobile == "" {
- wxUser.Mobile = wxUser.Email
- }
- condition += " AND (r.mobile = '" + wxUser.Mobile + "' OR r.email = '" + wxUser.Mobile + "') "
- _, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUser(condition, 0, 9999)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- //创建excel
- dir, err := os.Executable()
- exPath := filepath.Dir(dir)
- downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
- xlsxFile := xlsx.NewFile()
- if err != nil {
- br.Msg = "生成文件失败"
- br.ErrMsg = "生成文件失败"
- return
- }
- style := xlsx.NewStyle()
- alignment := xlsx.Alignment{
- Horizontal: "center",
- Vertical: "center",
- WrapText: true,
- }
- style.Alignment = alignment
- style.ApplyAlignment = true
- sheet, err := xlsxFile.AddSheet(sheetName)
- if err != nil {
- br.Msg = "新增Sheet失败"
- br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
- return
- }
- if source == 1 {
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "报告标题"
- cellB := rowTitle.AddCell()
- cellB.Value = "所属行业"
- cellC := rowTitle.AddCell()
- cellC.Value = "所属产业"
- cellD := rowTitle.AddCell()
- cellD.Value = "关联标的"
- cellE := rowTitle.AddCell()
- cellE.Value = "发布时间"
- cellF := rowTitle.AddCell()
- cellF.Value = "阅读时间"
- cellG := rowTitle.AddCell()
- cellG.Value = "阅读时长"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.Title
- cellB := row.AddCell()
- cellB.Value = item.PermissionName
- cellC := row.AddCell()
- cellC.Value = item.IndustryName
- cellD := row.AddCell()
- cellD.Value = item.SubjectNameStr
- cellE := row.AddCell()
- cellE.Value = item.PublishDate
- cellF := row.AddCell()
- cellF.Value = item.CreateTime
- cellG := row.AddCell()
- cellG.Value = item.StopTime
- }
- } else if source == 2 {
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "活动名称"
- cellB := rowTitle.AddCell()
- cellB.Value = "所属行业"
- cellC := rowTitle.AddCell()
- cellC.Value = "活动类型"
- cellD := rowTitle.AddCell()
- cellD.Value = "活动主题"
- cellE := rowTitle.AddCell()
- cellE.Value = "活动时间"
- cellF := rowTitle.AddCell()
- cellF.Value = "是否到会"
- cellG := rowTitle.AddCell()
- cellG.Value = "首次入会时间"
- cellH := rowTitle.AddCell()
- cellH.Value = "最后退出时间"
- cellI := rowTitle.AddCell()
- cellI.Value = "参与总时长"
- cellJ := rowTitle.AddCell()
- cellJ.Value = "参会方式"
- cellK := rowTitle.AddCell()
- cellK.Value = "参会权鉴"
- cellL := rowTitle.AddCell()
- cellL.Value = "参会状态"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.ActivityName
- cellB := row.AddCell()
- cellB.Value = item.PermissionName
- cellC := row.AddCell()
- cellC.Value = item.ActivityTypeName
- cellD := row.AddCell()
- cellD.Value = item.Label
- cellE := row.AddCell()
- cellE.Value = item.ActivityTime
- cellF := row.AddCell()
- if item.IsMeeting == 1 {
- cellF.Value = "到会"
- cellG := row.AddCell()
- cellG.Value = item.FirstMeetingTime
- cellH := row.AddCell()
- cellH.Value = item.LastMeetingTime
- cellI := row.AddCell()
- cellI.Value = item.Duration
- cellJ := row.AddCell()
- cellJ.Value = item.LastMeetingTime
- cellK := row.AddCell()
- cellK.Value = item.MeetingTypeStr
- cellL := row.AddCell()
- cellL.Value = item.MeetingStatusStr
- } else {
- cellF.Value = "未到会"
- }
- }
- } else if source == 11 {
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "文章标题"
- cellB := rowTitle.AddCell()
- cellB.Value = "文章类型"
- cellC := rowTitle.AddCell()
- cellC.Value = "标签"
- cellD := rowTitle.AddCell()
- cellD.Value = "发布时间"
- cellE := rowTitle.AddCell()
- cellE.Value = "阅读时间"
- cellF := rowTitle.AddCell()
- cellF.Value = "阅读时长"
- cellG := rowTitle.AddCell()
- cellG.Value = "阅读来源"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.Title
- cellB := row.AddCell()
- if item.SpecialType == 1 {
- cellB.Value = "笔记"
- } else {
- cellB.Value = "观点"
- }
- cellC := row.AddCell()
- cellC.Value = item.IndustryName
- cellD := row.AddCell()
- cellD.Value = item.PublishDate
- cellE := row.AddCell()
- cellE.Value = item.CreateTime
- cellF := row.AddCell()
- cellF.Value = item.StopTime
- cellG := row.AddCell()
- cellG.Value = cygxService.GetArticleSourcePlatformText(item.RegisterPlatform)
- }
- } else if source == 11 {
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "文章标题"
- cellB := rowTitle.AddCell()
- cellB.Value = "文章类型"
- cellC := rowTitle.AddCell()
- cellC.Value = "标签"
- cellD := rowTitle.AddCell()
- cellD.Value = "发布时间"
- cellE := rowTitle.AddCell()
- cellE.Value = "阅读时间"
- cellF := rowTitle.AddCell()
- cellF.Value = "阅读时长"
- cellG := rowTitle.AddCell()
- cellG.Value = "阅读来源"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.Title
- cellB := row.AddCell()
- if item.SpecialType == 1 {
- cellB.Value = "笔记"
- } else {
- cellB.Value = "观点"
- }
- cellC := row.AddCell()
- cellC.Value = item.IndustryName
- cellD := row.AddCell()
- cellD.Value = item.PublishDate
- cellE := row.AddCell()
- cellE.Value = item.CreateTime
- cellF := row.AddCell()
- cellF.Value = item.StopTime
- cellG := row.AddCell()
- cellG.Value = cygxService.GetArticleSourcePlatformText(item.RegisterPlatform)
- }
- }
- err = xlsxFile.Save(downLoadnFilePath)
- if err != nil {
- br.Msg = "保存文件失败"
- br.ErrMsg = "保存文件失败"
- return
- }
- randStr := time.Now().Format(utils.FormatDateTimeUnSpace)
- downloadFileName := wxUser.RealName + randStr + ".xlsx"
- this.Ctx.Output.Download(downLoadnFilePath, downloadFileName)
- defer func() {
- os.Remove(downLoadnFilePath)
- }()
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- }
- // @Title 机构互动详情table栏
- // @Description 互动详情table栏接口
- // @Param CompanyId query int true "公司ID"
- // @Param ClassType query int true "列表类型,1:权益,2:研选,默认1"
- // @Success 200 {object} cygx.UserRemarksListResp
- // @router /user/company/table/list [get]
- func (this *UserController) CompanyTableList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- companyId, _ := this.GetInt("CompanyId")
- classType, _ := this.GetInt("ClassType", 1)
- if companyId < 1 {
- br.Msg = "机构不存在"
- return
- }
- comanyDetail, err := company.GetCompanyDetailById(companyId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- resp := new(cygx.CygxUserTableListRep)
- var isAdminRole bool
- //如果不是管理员身份或者研究员身份则需要添加可见范围处理
- if sysUser.Role == utils.ROLE_TYPE_CODE_ADMIN || sysUser.Role == utils.ROLE_TYPE_CODE_RESEARCHR {
- isAdminRole = true
- }
- var pars []interface{}
- condition := ` AND r.company_id IN ( ` + strconv.Itoa(companyId) + ` ) AND r.create_time < '` + time.Now().Format(utils.FormatDate) + `' ` //过滤当天时间
- //totalEs, _, err := services.SearcCygxArticleHistoryData(utils.IndexNameArticleHistory, "", "", "", strconv.Itoa(companyId), 0, 0)
- //if err != nil {
- // br.Msg = "获取信息失败"
- // br.ErrMsg = "获取Es文章阅读数量失败,Err:" + err.Error()
- // return
- //}
- conditionArtcile := condition //文章搜索条件
- conditionActivityMeet := condition //活动到会搜索条件
- conditionIndustryFllow := condition //产业关注搜索条件
- conditionKeyWord := condition //关键词记录搜索条件
- if classType == 1 {
- conditionArtcile += " AND art.article_type_id = 0 "
- conditionActivityMeet += " AND a.chart_permission_id != 31 "
- conditionIndustryFllow += " AND m.chart_permission_id != 31 "
- conditionKeyWord += " AND r.register_platform IN (1,2) "
- } else {
- conditionArtcile += " AND art.article_type_id > 0 "
- conditionActivityMeet += " AND a.chart_permission_id = 31 "
- conditionIndustryFllow += " AND m.chart_permission_id = 31 "
- conditionKeyWord += " AND r.register_platform IN (5,6) "
- }
- var historyNum int //报告阅读列表
- var activityNum int //活动互动记录
- var triptotal int //专项调研
- var articleCollect int //收藏的报告
- var chartNum int //收藏图表
- var industryFllowNum int //关注的产业
- var departmentFollowNum int //关注的作者
- var keyWordNum int //搜索
- var roadshowTotal int //音视频播放
- var tagNum int //首页标签点击
- var yanxuanSpecialNum int //专栏文章阅读记录
- var yanxuanSpecialCollectNum int //收藏的专栏文章
- var yanxuanSpecialFollowNum int //关注的专栏作者
- var feedbackNum int //交流反馈数量
- var calendarMeetingNum int //1v1 路演数量
- if isAdminRole {
- historyNum, err = cygx.GetCygxArticleAndYanxuanRecordCount(conditionArtcile, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
- return
- }
- activityNum, err = cygx.GetActivityMeetByCompanyCount(conditionActivityMeet)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取参会总数失败,Err:" + err.Error()
- return
- }
- //获取用户收藏记录总数
- articleCollect, err = cygx.GetCygxArticleCollectCountByCompany(conditionArtcile)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
- return
- }
- //获取用户关注总数
- industryFllowNum, err = cygx.GetCygxIndustryFllowCountByCompany(conditionIndustryFllow)
- if err != nil {
- br.Msg = "获取信息失败 "
- br.ErrMsg = "获取用户关注总数失败,Err:" + err.Error()
- return
- }
- //获取关注作者总数
- departmentFollowNum, err = cygx.GetCygArticleDepartmentFollowCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取关注作者总数失败,Err:" + err.Error()
- return
- }
- //获取搜索记录
- keyWordNum, err = cygx.GetCygxSearchKeyWordCountBuCompany(conditionKeyWord)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- chartNum, err = cygx.GetChartCountByUserMobile(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取总数失败,Err:" + err.Error()
- return
- }
- triptotal, err = cygx.GetCygxActivitySpecialTripCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- roadshowTotal, err = cygx.GetCygxRoadshowCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- tagNum, err = cygx.GetCygxTagHistoryCount(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- yanxuanSpecialNum, err = cygx.GetCygxYanxuanSpecialRecordCount(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取研选专栏阅读数量失败"
- return
- }
- yanxuanSpecialCollectNum, err = cygx.GetCygxYanxuanSpecialCollectCount(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取收藏的专栏文章数量失败"
- return
- }
- yanxuanSpecialFollowNum, err = cygx.GetCygxYanxuanSpecialFollowCount(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注的专栏作者数量失败"
- return
- }
- feedbackNum, err = cygx.GetCygxUserFeedbackCountByUserModel(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取交流反馈数量失败"
- return
- }
- calendarMeetingNum, err = roadshow.GetRsCalendarMeetingUserCountByUserModel(condition, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "GetRsCalendarMeetingUserCountByUserModel,Err:" + err.Error()
- return
- }
- } else {
- historyNum, err = cygx.GetCygxArticleAndYanxuanRecordCountWeekly(conditionArtcile, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
- return
- }
- activityNum, err = cygx.GetActivityMeetByCompanyCountWeekly(conditionActivityMeet)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取参会总数失败,Err:" + err.Error()
- return
- }
- //获取用户收藏记录总数
- articleCollect, err = cygx.GetCygxArticleCollectCountByCompanyWeekly(conditionArtcile)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
- return
- }
- //获取用户关注总数
- industryFllowNum, err = cygx.GetCygxIndustryFllowCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败 "
- br.ErrMsg = "获取用户关注总数失败,Err:" + err.Error()
- return
- }
- //获取关注作者总数
- departmentFollowNum, err = cygx.GetCygArticleDepartmentFollowCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取关注作者总数失败,Err:" + err.Error()
- return
- }
- //获取搜索记录
- keyWordNum, err = cygx.GetCygxSearchKeyWordCountBuCompanyWeekly(conditionKeyWord)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- chartNum, err = cygx.GetChartCountByUserMobileWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取总数失败,Err:" + err.Error()
- return
- }
- triptotal, err = cygx.GetCygxActivitySpecialTripCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- roadshowTotal, err = cygx.GetCygxRoadshowCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- tagNum, err = cygx.GetCygxTagHistoryCountWeekly(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- yanxuanSpecialNum, err = cygx.GetCygxYanxuanSpecialRecordCountWeekly(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取研选专栏阅读数量失败"
- return
- }
- yanxuanSpecialCollectNum, err = cygx.GetCygxYanxuanSpecialCollectCountWeekly(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取收藏的专栏文章数量失败"
- return
- }
- yanxuanSpecialFollowNum, err = cygx.GetCygxYanxuanSpecialFollowCountWeekly(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注的专栏作者数量失败"
- return
- }
- feedbackNum, err = cygx.GetCygxUserFeedbackCountByUserModelWeekly(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取交流反馈数量失败"
- return
- }
- calendarMeetingNum, err = roadshow.GetRsCalendarMeetingUserCountByUserModelWeekly(condition, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "GetRsCalendarMeetingUserCountByUserModelWeekly,Err:" + err.Error()
- return
- }
- }
- if classType == 1 {
- List := []*cygx.CygxUserTableRep{{PermissionName: "报告阅读列表", Source: 1, TotalNum: historyNum},
- {PermissionName: "活动互动记录", Source: 2, TotalNum: activityNum},
- {PermissionName: "专项调研", Source: 8, TotalNum: triptotal},
- {PermissionName: "1v1路演", Source: 15, TotalNum: calendarMeetingNum},
- {PermissionName: "收藏的报告", Source: 3, TotalNum: articleCollect},
- {PermissionName: "收藏图表", Source: 4, TotalNum: chartNum},
- {PermissionName: "关注的产业", Source: 5, TotalNum: industryFllowNum},
- {PermissionName: "搜索", Source: 7, TotalNum: keyWordNum},
- {PermissionName: "音视频播放", Source: 9, TotalNum: roadshowTotal},
- {PermissionName: "首页标签点击", Source: 10, TotalNum: tagNum},
- {PermissionName: "交流反馈", Source: 14, TotalNum: feedbackNum}}
- resp.List = List
- } else {
- List := []*cygx.CygxUserTableRep{{PermissionName: "报告阅读列表", Source: 1, TotalNum: historyNum},
- {PermissionName: "活动互动记录", Source: 2, TotalNum: activityNum},
- {PermissionName: "收藏的报告", Source: 3, TotalNum: articleCollect},
- {PermissionName: "关注的产业", Source: 5, TotalNum: industryFllowNum},
- {PermissionName: "关注的作者", Source: 6, TotalNum: departmentFollowNum},
- {PermissionName: "专栏文章阅读记录", Source: 11, TotalNum: yanxuanSpecialNum},
- {PermissionName: "收藏的专栏文章", Source: 12, TotalNum: yanxuanSpecialCollectNum},
- {PermissionName: "关注的专栏作者", Source: 13, TotalNum: yanxuanSpecialFollowNum},
- {PermissionName: "搜索", Source: 7, TotalNum: keyWordNum}}
- resp.List = List
- }
- resp.ComapnyName = comanyDetail.CompanyName
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 机构互动详情
- // @Description 机构互动详情接口
- // @Param CompanyId query int true "公司ID"
- // @Param Source query int true "来源"
- // @Param IsMeeting query string false "是否到会 1到会、2未到会"
- // @Param MeetType query string false "参会方式 1线上,2线下 默认为线上"
- // @Param PageSize query int true "每页数据条数"
- // @Param CurrentIndex query int true "当前页页码,从1开始"
- // @Param StartDate query string false "开始时间"
- // @Param EndDate query string false "结束时间"
- // @Param KeyWord query string false "搜索关键词"
- // @Param ActivityName query string false "活动名称"
- // @Param ClassType query int true "列表类型,1:权益,2:研选,默认1"
- // @Param IsExport query bool false "是否导出excel,默认是false"
- // @Success 200 {object} cygx.UserInteractionListResp
- // @router /user/company/interaction/detail [get]
- func (this *UserController) CompanyTableDetail() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = paging.StartIndex(currentIndex, pageSize)
- companyId, _ := this.GetInt("CompanyId")
- isMeeting := this.GetString("IsMeeting")
- meetType := this.GetString("MeetType")
- startDate := this.GetString("StartDate")
- endDate := this.GetString("EndDate")
- keyWord := this.GetString("KeyWord")
- activityName := this.GetString("ActivityName")
- source, _ := this.GetInt("Source")
- classType, _ := this.GetInt("ClassType", 1)
- if companyId < 1 {
- br.Msg = "用户不存在"
- return
- }
- isExport, _ := this.GetBool("IsExport")
- if isExport {
- pageSize = 10000
- currentIndex = 1
- }
- // 1.标记用户表
- //操作权限校验
- resp := new(cygx.UserInteractionListResp)
- var err error
- var list []*cygx.UserInteraction
- var total int
- var condition string
- var pars []interface{}
- condition += ` AND r.company_id = ` + strconv.Itoa(companyId) + ` AND r.create_time < '` + time.Now().Format(utils.FormatDate) + `' `
- if keyWord != "" {
- condition += ` AND ( r.mobile LIKE '%` + keyWord + `%' OR r.email LIKE '%` + keyWord + `%' OR r.real_name LIKE '%` + keyWord + `%')`
- }
- var isAdminRole bool
- //如果不是管理员身份或者研究员身份则需要添加可见范围处理
- if sysUser.Role == utils.ROLE_TYPE_CODE_ADMIN || sysUser.Role == utils.ROLE_TYPE_CODE_RESEARCHR {
- isAdminRole = true
- }
- if source == 1 {
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- condition += " AND r.source = 'article' "
- if classType == 1 {
- condition += " AND art.article_type_id = 0 "
- } else {
- condition += " AND art.article_type_id > 0 "
- }
- condition += " ORDER BY r.create_time DESC "
- var listRecord []*cygx.CygxArticleAndYanxuanRecordResp
- if isAdminRole {
- total, err = cygx.GetCygxArticleAndYanxuanRecordCount(condition, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
- return
- }
- listRecord, err = cygx.GetCygxArticleAndYanxuanRecordRespList(condition, pars, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetCygxArticleAndYanxuanRecordCountWeekly(condition, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
- return
- }
- listRecord, err = cygx.GetCygxArticleAndYanxuanRecordRespListWeekly(condition, pars, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- //处理查询信息回显
- list, err = cygxService.HandleArticleAndYanxuanRecordList(listRecord)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- for k, v := range list {
- if classType == 1 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- } else {
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- }
- if v.ReportId > 0 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/ricc/yb/report/" + strconv.Itoa(v.ReportId)
- }
- }
- //导出excel
- if isExport {
- exportListArticle(this, list, 2, br)
- return
- }
- } else if source == 2 {
- if isMeeting == "1" {
- condition += ` AND r.is_meeting = 1 `
- }
- if isMeeting == "2" {
- condition += ` AND r.is_meeting = 0 `
- }
- if meetType == "1" {
- condition += ` AND t.activity_type = 1 `
- }
- if meetType == "2" {
- condition += ` AND t.activity_type = 0 `
- }
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND a.activity_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND a.activity_time <= '` + endDate + `' `
- }
- if activityName != "" {
- condition += ` AND a.activity_name LIKE '%` + activityName + `%' `
- }
- if classType == 1 {
- condition += " AND a.chart_permission_id != 31 "
- } else {
- condition += " AND a.chart_permission_id = 31 "
- }
- if isAdminRole {
- total, err = cygx.GetActivityMeetByCompanyCount(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取参会总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetActivityMeetByCompany(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- } else {
- total, err = cygx.GetActivityMeetByCompanyCountWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取参会总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetActivityMeetByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- if v.ActivityType == 1 {
- if v.SignupType == "2" {
- list[k].InteractionType = "自主拨入"
- } else {
- list[k].InteractionType = "预约外呼"
- }
- if v.ReminderNum > 0 {
- list[k].InteractionType += ",会议提醒"
- }
- }
- if v.IsMeeting == 0 || v.FirstMeetingTime == "0000-00-00 00:00:00" {
- list[k].FirstMeetingTime = ""
- list[k].LastMeetingTime = ""
- }
- if v.FirstMeetingTime == "0000-00-00 00:00:00" {
- list[k].FirstMeetingTime = ""
- list[k].LastMeetingTime = ""
- }
- }
- }
- //导出excel
- if isExport {
- exportListActivity(this, list, 2, br)
- return
- }
- } else if source == 3 {
- if classType == 1 {
- condition += " AND art.article_type_id = 0 "
- } else {
- condition += " AND art.article_type_id > 0 "
- }
- if isAdminRole {
- total, err = cygx.GetCygxArticleCollectCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxArticleCollectByCompany(startSize, pageSize, condition)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetCygxArticleCollectCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxArticleCollectByCompanyWeekly(startSize, pageSize, condition)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- if v.ArticleId >= utils.SummaryArticleId {
- list[k].ArticleType = 1
- } else {
- list[k].ArticleType = 2
- }
- if classType == 1 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- } else {
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- }
- if v.ReportId > 0 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/ricc/yb/report/" + strconv.Itoa(v.ReportId)
- }
- }
- }
- } else if source == 4 {
- if isAdminRole {
- list, err = cygx.GetChartCollectList(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- } else {
- list, err = cygx.GetChartCollectListWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- var err error
- condition = ` AND a.publish_status = 1 AND r.company_id = ` + strconv.Itoa(companyId) + ` AND r.mobile = ` + v.Mobile + ` AND r.create_time < '` + time.Now().Format(utils.FormatDate) + `' ` //过滤当天时间
- total, err = cygx.GetChartCountByUserMobile(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取总数失败,Err:" + err.Error()
- return
- }
- listChart, err := cygx.GetChartListCollectionWithCygxByMobile(condition, 0, 18)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- for k, vChart := range listChart {
- if vChart.PtagName != "" {
- listChart[k].CtagNamePc = vChart.PtagName
- }
- if vChart.CtagName != "" {
- listChart[k].CtagNamePc += "," + vChart.CtagName
- }
- if vChart.PtagNameTwo != "" {
- listChart[k].CtagNamePc += "," + vChart.PtagNameTwo
- }
- if vChart.CtagNameTwo != "" {
- listChart[k].CtagNamePc += "," + vChart.CtagNameTwo
- }
- }
- pageChart := paging.GetPaging(currentIndex, 18, total)
- list[k].ListChart = listChart
- list[k].Paging = pageChart
- list[k].IsEnd = pageChart.IsEnd
- list[k].CurrentIndex = pageChart.CurrentIndex
- }
- }
- } else if source == 5 {
- if classType == 1 {
- condition += " AND m.chart_permission_id != 31 "
- } else {
- condition += " AND m.chart_permission_id = 31 "
- }
- if isAdminRole {
- total, err = cygx.GetCygxIndustryFllowCountByCompany(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- list, err = cygx.GetCygxIndustryFllowByCompany(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- } else {
- total, err = cygx.GetCygxIndustryFllowCountByCompanyWeekly(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- list, err = cygx.GetCygxIndustryFllowByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- }
- } else if source == 6 {
- if isAdminRole {
- total, err = cygx.GetCygArticleDepartmentFollowCountByCompany(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者总数失败"
- return
- }
- list, err = cygx.GetCygArticleDepartmentFollowByCompany(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者列表失败"
- return
- }
- } else {
- total, err = cygx.GetCygArticleDepartmentFollowCountByCompanyWeekly(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者总数失败"
- return
- }
- list, err = cygx.GetCygArticleDepartmentFollowByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者列表失败"
- return
- }
- }
- if len(list) > 0 {
- var departmentIds []int
- for _, v := range list {
- departmentIds = append(departmentIds, v.DepartmentId)
- }
- mapIndustrialLabel := cygxService.GetArticleIndustrialLabelByDepartmentId(departmentIds) // 关联产业
- for _, v := range list {
- v.SubjectNameStr = strings.Join(mapIndustrialLabel[v.DepartmentId], "/")
- }
- }
- } else if source == 7 {
- if classType == 1 {
- condition += " AND r.register_platform IN (1,2) "
- } else {
- condition += " AND r.register_platform IN (5,6) "
- }
- if isAdminRole {
- total, err = cygx.GetCygxSearchKeyWordCountBuCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxSearchKeyWordByCompany(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetCygxSearchKeyWordCountBuCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxSearchKeyWordByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- }
- } else if source == 8 {
- if isAdminRole {
- total, err = cygx.GetCygxActivitySpecialTripCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.CygxActivitySpecialTripByCompany(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetCygxActivitySpecialTripCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.CygxActivitySpecialTripByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- }
- } else if source == 9 {
- if isAdminRole {
- total, err = cygx.GetCygxRoadshowCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxRoadshowByCompany(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetCygxRoadshowCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxRoadshowByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- }
- } else if source == 10 { //标签点击记录
- if isAdminRole {
- total, err = cygx.GetCygxTagHistoryCount(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- list, err = cygx.GetCygxTagHistoryListBycondition(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录列表失败"
- return
- }
- } else {
- total, err = cygx.GetCygxTagHistoryCountWeekly(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- list, err = cygx.GetCygxTagHistoryListByconditionWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录列表失败"
- return
- }
- }
- } else if source == 11 { //专栏文章阅读记录
- if isAdminRole {
- total, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- total, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUserWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/detail/" + strconv.Itoa(v.ArticleId)
- }
- }
- //导出excel
- if isExport {
- exportListYanxuanSpecial(this, list, 2, br)
- return
- }
- } else if source == 12 { //收藏的专栏文章
- if isAdminRole {
- total, list, err = cygx.GetCygxYanxuanSpecialCollectByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- total, list, err = cygx.GetCygxYanxuanSpecialCollectByUserWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/detail/" + strconv.Itoa(v.ArticleId)
- }
- }
- } else if source == 13 { //关注的专栏作者
- if isAdminRole {
- total, list, err = cygx.GetCygxYanxuanSpecialAuthorByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- total, list, err = cygx.GetCygxYanxuanSpecialAuthorByUserWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/view/" + strconv.Itoa(v.DepartmentId)
- }
- }
- } else if source == 14 { //交流反馈
- if isAdminRole {
- total, list, err = cygx.GetCygxUserFeedback(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户交流反馈,Err:" + err.Error()
- return
- }
- } else {
- total, list, err = cygx.GetCygxUserFeedbackWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户交流反馈,Err:" + err.Error()
- return
- }
- }
- } else if source == 15 { //1V1路演
- if startDate != "" {
- condition += ` AND b.start_date >= '` + startDate + `' `
- }
- if endDate != "" {
- condition += ` AND b.start_date <= '` + endDate + `' `
- }
- var totalRsCalendar int
- var listRsCalendar []*roadshow.RsCalendarMeetingUserByRai
- if isAdminRole {
- totalRsCalendar, listRsCalendar, err = roadshow.GetRsCalendarMeetingUserByRai(condition, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- totalRsCalendar, listRsCalendar, err = roadshow.GetRsCalendarMeetingUserByRaiWeekly(condition, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- total = totalRsCalendar
- list, err = cygxService.HandleListRsCalendar(listRsCalendar)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "HandleListRsCalendar,Err:" + err.Error()
- return
- }
- //导出excel
- if isExport {
- exportListRsCalendar(this, list, 2, br)
- return
- }
- }
- page := paging.GetPaging(currentIndex, pageSize, total)
- if len(list) == 0 {
- list = make([]*cygx.UserInteraction, 0)
- }
- resp.List = list
- resp.Paging = page
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 机构相关互动下载
- // @Description 机构相关互动下载接口
- // @Param CompanyId query int true "公司id"
- // @Param Source query int true "来源 报告阅读列表: 1, 活动互动记录: 2"
- // @Param IsMeeting query string true "是否到会 1到会、2未到会"
- // @Param MeetType query string true "参会方式 1线上,2线下 默认为线上"
- // @Param StartDate query string true "开始时间"
- // @Param EndDate query string true "结束时间"
- // @Param KeyWord query string true "搜索关键词"
- // @Param ActivityName query string true "活动名称"
- // @Param ClassType query int true "列表类型,1:权益,2:研选,默认1"
- // @Success 200 {object} cygx.CygxUserTableStatusListRep
- // @router /user/company/export/interaction [get]
- func (this *UserController) CompanyExportInteraction() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- companyId, _ := this.GetInt("CompanyId")
- isMeeting := this.GetString("IsMeeting")
- meetType := this.GetString("MeetType")
- startDate := this.GetString("StartDate")
- endDate := this.GetString("EndDate")
- keyWord := this.GetString("KeyWord")
- activityName := this.GetString("ActivityName")
- source, _ := this.GetInt("Source")
- classType, _ := this.GetInt("ClassType", 1)
- if companyId < 1 {
- br.Msg = "用户不存在"
- return
- }
- //获取企业客户信息
- companyInfo, err := company.GetCompanyById(companyId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "GetCompanyById,Err:" + err.Error()
- return
- }
- var isAdminRole bool
- //如果不是管理员身份或者研究员身份则需要添加可见范围处理
- if sysUser.Role == utils.ROLE_TYPE_CODE_ADMIN || sysUser.Role == utils.ROLE_TYPE_CODE_RESEARCHR {
- isAdminRole = true
- }
- var pageSize = 9999
- var list []*cygx.UserInteraction
- var condition string
- condition += ` AND r.company_id = ` + strconv.Itoa(companyId) + ` AND r.create_time < date_format(now(),'%Y-%m-%d') ` //过滤当天时间
- if keyWord != "" {
- //condition += ` AND r.user_id IN (SELECT user_id FROM wx_user WHERE mobile LIKE '%` + keyWord + `%' OR email LIKE '%` + keyWord + `%' OR real_name LIKE '%` + keyWord + `%')`
- condition += ` AND ( r.mobile LIKE '%` + keyWord + `%' OR r.email LIKE '%` + keyWord + `%' OR r.real_name LIKE '%` + keyWord + `%')`
- }
- if source == 1 {
- if classType == 1 {
- condition += " AND art.article_type_id = 0 "
- } else {
- condition += " AND art.article_type_id > 0 "
- }
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- condition += ` ORDER BY r.create_time DESC `
- var pars []interface{}
- var listRecord []*cygx.CygxArticleAndYanxuanRecordResp
- if isAdminRole {
- listRecord, err = cygx.GetCygxArticleAndYanxuanRecordRespList(condition, pars, 0, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- listRecord, err = cygx.GetCygxArticleAndYanxuanRecordRespListWeekly(condition, pars, 0, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- //处理查询信息回显
- list, err = cygxService.HandleArticleAndYanxuanRecordList(listRecord)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- if len(list) > 0 {
- var articleIds string
- mapAricleId := make(map[int]int)
- mapAricleIndustrialSubjectName := make(map[int]*cygx.ArticleIndustrialSubjectNameResp)
- for k, v := range list {
- if v.ArticleId >= utils.SummaryArticleId {
- list[k].ArticleType = 1
- } else {
- list[k].ArticleType = 2
- }
- if list[k].PermissionName == "" {
- list[k].PermissionName = v.CategoryName
- }
- if mapAricleId[v.ArticleId] == 0 {
- articleIds += strconv.Itoa(v.ArticleId) + ","
- mapAricleId[v.ArticleId] = v.ArticleId
- }
- }
- articleIds = strings.TrimRight(articleIds, ",")
- if articleIds != "" {
- listArticleIndustrialSubjectList, err := cygx.GetCygxArticleIndustrialSubjectName(articleIds)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- if len(listArticleIndustrialSubjectList) > 0 {
- for _, v := range listArticleIndustrialSubjectList {
- mapAricleIndustrialSubjectName[v.ArticleId] = v
- }
- for k, v := range list {
- if mapAricleIndustrialSubjectName[v.ArticleId] != nil {
- list[k].IndustryName = mapAricleIndustrialSubjectName[v.ArticleId].IndustryName
- list[k].SubjectNameStr = mapAricleIndustrialSubjectName[v.ArticleId].SubjectNameStr
- }
- }
- }
- }
- }
- } else if source == 2 {
- if classType == 1 {
- condition += " AND a.chart_permission_id != 31 "
- } else {
- condition += " AND a.chart_permission_id = 31 "
- }
- if isMeeting == "1" {
- condition += ` AND r.is_meeting = 1 `
- }
- if isMeeting == "2" {
- condition += ` AND r.is_meeting = 0 `
- }
- if meetType == "1" {
- condition += ` AND t.activity_type = 1 `
- }
- if meetType == "2" {
- condition += ` AND t.activity_type = 0 `
- }
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND a.activity_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND a.activity_time <= '` + endDate + `' `
- }
- if activityName != "" {
- condition += ` AND a.activity_name LIKE '%` + activityName + `%' `
- }
- if isAdminRole {
- list, err = cygx.GetActivityMeetByCompany(condition, 0, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- } else {
- list, err = cygx.GetActivityMeetByCompanyWeekly(condition, 0, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- if v.ActivityType == 1 {
- if v.SignupType == "2" {
- list[k].InteractionType = "自主拨入"
- } else {
- list[k].InteractionType = "预约外呼"
- }
- if v.ReminderNum > 0 {
- list[k].InteractionType += ",会议提醒"
- }
- }
- }
- }
- } else if source == 11 {
- if isAdminRole {
- _, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUser(condition, 0, 9999)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- _, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUserWeekly(condition, 0, 9999)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- }
- //创建excel
- dir, err := os.Executable()
- exPath := filepath.Dir(dir)
- downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
- xlsxFile := xlsx.NewFile()
- if err != nil {
- br.Msg = "生成文件失败"
- br.ErrMsg = "生成文件失败"
- return
- }
- style := xlsx.NewStyle()
- alignment := xlsx.Alignment{
- Horizontal: "center",
- Vertical: "center",
- WrapText: true,
- }
- style.Alignment = alignment
- style.ApplyAlignment = true
- sheet, err := xlsxFile.AddSheet("用户名单")
- if err != nil {
- br.Msg = "新增Sheet失败"
- br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
- return
- }
- var excelName string
- if source == 1 {
- excelName = "阅读记录"
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "姓名"
- cellB := rowTitle.AddCell()
- cellB.Value = "手机号"
- cellC := rowTitle.AddCell()
- cellC.Value = "报告标题"
- cellD := rowTitle.AddCell()
- cellD.Value = "所属行业"
- cellE := rowTitle.AddCell()
- cellE.Value = "所属产业"
- cellF := rowTitle.AddCell()
- cellF.Value = "关联标的"
- cellG := rowTitle.AddCell()
- cellG.Value = "发布时间"
- cellH := rowTitle.AddCell()
- cellH.Value = "阅读时间"
- cellI := rowTitle.AddCell()
- cellI.Value = "阅读时长"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.RealName
- cellB := row.AddCell()
- cellB.Value = item.Mobile
- cellC := row.AddCell()
- cellC.Value = item.Title
- cellD := row.AddCell()
- cellD.Value = item.PermissionName
- cellE := row.AddCell()
- cellE.Value = item.IndustryName
- cellF := row.AddCell()
- cellF.Value = item.SubjectNameStr
- cellG := row.AddCell()
- cellG.Value = item.PublishDate
- cellH := row.AddCell()
- cellH.Value = item.CreateTime
- cellI := row.AddCell()
- cellI.Value = item.StopTime
- }
- } else if source == 2 {
- excelName = "参会记录"
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "姓名"
- cellB := rowTitle.AddCell()
- cellB.Value = "手机号"
- cellC := rowTitle.AddCell()
- cellC.Value = "活动名称"
- cellD := rowTitle.AddCell()
- cellD.Value = "所属行业"
- cellE := rowTitle.AddCell()
- cellE.Value = "活动类型"
- cellF := rowTitle.AddCell()
- cellF.Value = "活动主题"
- cellG := rowTitle.AddCell()
- cellG.Value = "活动时间"
- cellH := rowTitle.AddCell()
- cellH.Value = "是否到会"
- cellI := rowTitle.AddCell()
- cellI.Value = "首次入会时间"
- cellJ := rowTitle.AddCell()
- cellJ.Value = "最后退出时间"
- cellK := rowTitle.AddCell()
- cellK.Value = "参与总时长"
- cellL := rowTitle.AddCell()
- cellL.Value = "参会方式"
- cellM := rowTitle.AddCell()
- cellM.Value = "参会权鉴"
- cellN := rowTitle.AddCell()
- cellN.Value = "参会状态"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.RealName
- cellB := row.AddCell()
- cellB.Value = item.Mobile
- cellC := row.AddCell()
- cellC.Value = item.ActivityName
- cellD := row.AddCell()
- cellD.Value = item.PermissionName
- cellE := row.AddCell()
- cellE.Value = item.ActivityTypeName
- cellF := row.AddCell()
- cellF.Value = item.Label
- cellG := row.AddCell()
- cellG.Value = item.ActivityTime
- cellH := row.AddCell()
- if item.IsMeeting == 1 {
- cellH.Value = "到会"
- } else {
- cellH.Value = "未到会"
- }
- cellI := row.AddCell()
- cellI.Value = item.FirstMeetingTime
- cellJ := row.AddCell()
- cellJ.Value = item.LastMeetingTime
- cellK := row.AddCell()
- cellK.Value = item.Duration
- cellL := row.AddCell()
- cellL.Value = item.LastMeetingTime
- cellM := row.AddCell()
- cellM.Value = item.MeetingTypeStr
- cellN := row.AddCell()
- cellN.Value = item.MeetingStatusStr
- }
- } else if source == 11 {
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "文章标题"
- cellB := rowTitle.AddCell()
- cellB.Value = "文章类型"
- cellC := rowTitle.AddCell()
- cellC.Value = "标签"
- cellD := rowTitle.AddCell()
- cellD.Value = "发布时间"
- cellE := rowTitle.AddCell()
- cellE.Value = "阅读时间"
- cellF := rowTitle.AddCell()
- cellF.Value = "阅读时长"
- cellG := rowTitle.AddCell()
- cellG.Value = "阅读来源"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.Title
- cellB := row.AddCell()
- if item.SpecialType == 1 {
- cellB.Value = "笔记"
- } else {
- cellB.Value = "观点"
- }
- cellC := row.AddCell()
- cellC.Value = item.IndustryName
- cellD := row.AddCell()
- cellD.Value = item.PublishDate
- cellE := row.AddCell()
- cellE.Value = item.CreateTime
- cellF := row.AddCell()
- cellF.Value = item.StopTime
- cellG := row.AddCell()
- cellG.Value = cygxService.GetArticleSourcePlatformText(item.RegisterPlatform)
- }
- }
- err = xlsxFile.Save(downLoadnFilePath)
- if err != nil {
- br.Msg = "保存文件失败"
- br.ErrMsg = "保存文件失败"
- return
- }
- randStr := time.Now().Format(utils.FormatDate)
- downloadFileName := excelName + companyInfo.CompanyName + randStr + ".xlsx"
- this.Ctx.Output.Download(downLoadnFilePath, downloadFileName)
- defer func() {
- os.Remove(downLoadnFilePath)
- }()
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- }
- // @Title 全机构互动列表
- // @Description 全机构互动列表接口
- // @Param Source query int true "来源"
- // @Param AdminId query string true "销售id,多个用英文逗号隔开,空字符串为全部"
- // @Param IsMeeting query string false "是否到会 1到会、2未到会"
- // @Param MeetType query string false "参会方式 1线上,2线下 默认为线上"
- // @Param PageSize query int true "每页数据条数"
- // @Param CurrentIndex query int true "当前页页码,从1开始"
- // @Param StartDate query string false "开始时间"
- // @Param EndDate query string false "结束时间"
- // @Param KeyWord query string false "搜索关键词"
- // @Param ActivityName query string false "活动名称"
- // @Param ClassType query int true "列表类型,1:权益,2:研选,默认1"
- // @Param IsExport query bool false "是否导出excel,默认是false"
- // @Success 200 {object} cygx.UserInteractionListResp
- // @router /user/company/list [get]
- func (this *UserController) CompanyList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- roleTypeCode := sysUser.RoleTypeCode
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- adminId := this.GetString("AdminId")
- keyWord := this.GetString("KeyWord")
- isMeeting := this.GetString("IsMeeting")
- meetType := this.GetString("MeetType")
- startDate := this.GetString("StartDate")
- endDate := this.GetString("EndDate")
- activityName := this.GetString("ActivityName")
- source, _ := this.GetInt("Source")
- status := this.GetString("Status")
- classType, _ := this.GetInt("ClassType", 1)
- // 套餐类型
- //packageType, _ := this.GetInt("PackageType")
- keyWord = strings.Trim(keyWord, " ")
- keyWord = strings.Replace(keyWord, "'", "", -1)
- isExport, _ := this.GetBool("IsExport")
- if isExport {
- pageSize = 10000
- currentIndex = 1
- }
- var total int
- //statusItems := make([]*company.CompanyStatus, 0)
- //var statusArr = [...]string{"全部", "试用", "正式", "冻结", "流失", "永续"}
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = paging.StartIndex(currentIndex, pageSize)
- var condition string
- resp := new(cygx.UserInteractionListResp)
- var err error
- var list []*cygx.UserInteraction
- //流失
- var lossCondition string
- //var lossPars []interface{}
- //状态分类查询条件
- var permissionCondition string
- if adminId != "" {
- condition += ` AND b.seller_id IN (` + adminId + `) `
- }
- lossCondition = condition
- //lossPars = pars
- permissionCondition = condition
- //流失客户统计
- lossCondition += ` AND status='流失' `
- //productId := services.GetProductId(roleTypeCode)
- productId := 2
- //权限控制
- {
- //如果不是超级管理员或者财务
- if roleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_FINANCE {
- //如果是部门管理员
- if roleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
- condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- } else {
- condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- if status == "全部" {
- ////如果是筛选了流失客户状态
- if sysUser.Authority <= 0 {
- condition += ` AND (b.seller_id= '` + strconv.Itoa(sysUser.AdminId) + `' OR status='流失') `
- permissionCondition += ` AND b.seller_id= ` + strconv.Itoa(sysUser.AdminId)
- } else {
- if sysUser.Authority == 1 {
- condition += ` AND (b.department_id=` + strconv.Itoa(sysUser.DepartmentId) + ` OR status='流失')`
- permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id=` + strconv.Itoa(sysUser.GroupId) + ` OR status='流失') `
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
- pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "查询父级id异常" + err.Error()
- return
- }
- var ids []*string
- if pid != nil {
- if *pid != 0 {
- //销售主管放在三级列表中
- ids, err = company.GetGroupIdsByParentId(*pid)
- if err != nil {
- fmt.Println(err.Error())
- }
- } else {
- //销售主管放在二级列表中
- ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
- if err != nil {
- fmt.Println(err.Error())
- }
- }
- }
- var idSlice []string
- var sid string
- for _, id := range ids {
- idSlice = append(idSlice, *id)
- }
- //加入父级groupId
- if *pid > 0 {
- idSlice = append(idSlice, strconv.Itoa(*pid))
- } else {
- idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
- }
- sid = strings.Join(idSlice, ",")
- if len(sid) > 0 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
- }
- permissionCondition += ` AND b.group_id IN (` + sid + `) `
- } else {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
- }
- permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
- }
- }
- if sysUser.Authority == 4 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id =` + strconv.Itoa(sysUser.GroupId) + ` OR status='流失') `
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- //permissionPars = append(permissionPars, sysUser.GroupId)
- }
- }
- } else {
- //如果没有筛选了流失客户状态,那么需要加客户归属条件加入到查询中去
- if sysUser.Authority <= 0 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
- //pars = append(pars, sysUser.AdminId)
- }
- permissionCondition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
- //permissionPars = append(permissionPars, sysUser.AdminId)
- } else {
- if sysUser.Authority == 1 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
- //pars = append(pars, sysUser.DepartmentId)
- }
- permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
- //permissionPars = append(permissionPars, sysUser.DepartmentId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.group_id= ` + strconv.Itoa(sysUser.GroupId)
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- //permissionPars = append(permissionPars, sysUser.GroupId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
- pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "查询父级id异常" + err.Error()
- return
- }
- var ids []*string
- if pid != nil {
- if *pid != 0 {
- //销售主管放在三级列表中
- ids, err = company.GetGroupIdsByParentId(*pid)
- if err != nil {
- fmt.Println(err.Error())
- }
- } else {
- //销售主管放在二级列表中
- ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
- if err != nil {
- fmt.Println(err.Error())
- }
- }
- }
- var idSlice []string
- var sid string
- for _, id := range ids {
- idSlice = append(idSlice, *id)
- }
- //加入父级groupId
- if *pid > 0 {
- idSlice = append(idSlice, strconv.Itoa(*pid))
- } else {
- idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
- }
- sid = strings.Join(idSlice, ",")
- if len(sid) > 0 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id IN (` + sid + `) `
- } else {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
- }
- }
- if sysUser.Authority == 4 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.group_id =` + strconv.Itoa(sysUser.GroupId)
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- //permissionPars = append(permissionPars, sysUser.GroupId)
- }
- }
- }
- }
- }
- }
- condition += ` AND b.status IN ('正式','试用','冻结') `
- companyCondition := `SELECT a.company_id FROM company AS a INNER JOIN company_product AS b ON a.company_id=b.company_id WHERE a.enabled=1 `
- companyIdsCondition := `SELECT GROUP_CONCAT( DISTINCT a.company_id SEPARATOR ',' ) AS company_ids FROM company AS a INNER JOIN company_product AS b ON a.company_id=b.company_id WHERE a.enabled=1 `
- if condition != "" {
- companyCondition += condition
- }
- companyIdsCondition += condition
- var companyIds string
- companyIds, err = cygx.GetCompanyIdsCondition(companyIdsCondition)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取公司ID数据失败,Err:" + err.Error()
- return
- }
- condition = ` AND r.company_id IN ( ` + companyIds + ` ) AND r.create_time < '` + time.Now().Format(utils.FormatDate) + `' ` // 过滤当天查询时间
- if keyWord != "" {
- condition += ` AND (r.mobile LIKE '%` + keyWord + `%' OR r.email LIKE '%` + keyWord + `%' OR r.real_name LIKE '%` + keyWord + `%'` + ` OR r.company_name LIKE '%` + keyWord + `%') `
- }
- var isAdminRole bool
- //如果不是管理员身份或者研究员身份则需要添加可见范围处理
- if sysUser.Role == utils.ROLE_TYPE_CODE_ADMIN || sysUser.Role == utils.ROLE_TYPE_CODE_RESEARCHR {
- isAdminRole = true
- }
- if source == 1 {
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- if classType == 1 {
- condition += " AND art.article_type_id = 0 "
- } else {
- condition += " AND art.article_type_id > 0 "
- }
- condition += " AND r.source = 'article' "
- var pars []interface{}
- condition += " ORDER BY r.create_time DESC "
- var listRecord []*cygx.CygxArticleAndYanxuanRecordResp
- if isAdminRole {
- listRecord, err = cygx.GetCygxArticleAndYanxuanRecordRespList(condition, pars, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- total, err = cygx.GetCygxArticleAndYanxuanRecordCount(condition, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
- return
- }
- } else {
- listRecord, err = cygx.GetCygxArticleAndYanxuanRecordRespListWeekly(condition, pars, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- total, err = cygx.GetCygxArticleAndYanxuanRecordCountWeekly(condition, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
- return
- }
- }
- //处理查询信息回显
- list, err = cygxService.HandleArticleAndYanxuanRecordList(listRecord)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- for k, v := range list {
- if classType == 1 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- } else {
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- }
- if v.ReportId > 0 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/ricc/yb/report/" + strconv.Itoa(v.ReportId)
- }
- }
- //导出excel
- if isExport {
- exportListArticle(this, list, 3, br)
- return
- }
- } else if source == 2 {
- if isMeeting == "1" {
- condition += ` AND r.is_meeting = 1 `
- }
- if isMeeting == "2" {
- condition += ` AND r.is_meeting = 0 `
- }
- if meetType == "1" {
- condition += ` AND t.activity_type = 1 `
- }
- if meetType == "2" {
- condition += ` AND t.activity_type = 0 `
- }
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND a.activity_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND a.activity_time <= '` + endDate + `' `
- }
- if activityName != "" {
- condition += ` AND a.activity_name LIKE '%` + activityName + `%' `
- }
- if classType == 1 {
- condition += " AND a.chart_permission_id != 31 "
- } else {
- condition += " AND a.chart_permission_id = 31 "
- }
- if isAdminRole {
- total, err = cygx.GetActivityMeetByCompanyCount(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取参会总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetActivityMeetByCompanyList(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- } else {
- total, err = cygx.GetActivityMeetByCompanyCountWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取参会总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetActivityMeetByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- }
- //根据公司ID获取对应销售
- var sellerCompanyIds []int
- for _, v := range list {
- sellerCompanyIds = append(sellerCompanyIds, v.CompanyId)
- }
- sellNameMap := services.GetSellNameMapByCompanyIds(sellerCompanyIds)
- if len(list) > 0 {
- for k, v := range list {
- if v.ActivityType == 1 {
- if v.SignupType == "2" {
- list[k].InteractionType = "自主拨入"
- } else {
- list[k].InteractionType = "预约外呼"
- }
- if v.ReminderNum > 0 {
- list[k].InteractionType += ",会议提醒"
- }
- }
- if v.IsMeeting == 0 {
- list[k].FirstMeetingTime = ""
- list[k].LastMeetingTime = ""
- }
- v.SellerName = sellNameMap[v.CompanyId]
- }
- }
- //导出excel
- if isExport {
- exportListActivity(this, list, 3, br)
- return
- }
- } else if source == 3 {
- if classType == 1 {
- condition += " AND art.article_type_id = 0 "
- } else {
- condition += " AND art.article_type_id > 0 "
- }
- if isAdminRole {
- total, err = cygx.GetCygxArticleCollectCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxArticleCollectByCompanyList(startSize, pageSize, condition)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetCygxArticleCollectCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxArticleCollectByCompanyWeekly(startSize, pageSize, condition)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
- return
- }
- }
- //根据公司ID获取对应销售
- var sellerCompanyIds []int
- for _, v := range list {
- sellerCompanyIds = append(sellerCompanyIds, v.CompanyId)
- }
- sellNameMap := services.GetSellNameMapByCompanyIds(sellerCompanyIds)
- if len(list) > 0 {
- for k, v := range list {
- if v.ArticleId >= utils.SummaryArticleId {
- list[k].ArticleType = 1
- } else {
- list[k].ArticleType = 2
- }
- v.SellerName = sellNameMap[v.CompanyId]
- if classType == 1 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- } else {
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/material/info/" + strconv.Itoa(v.ArticleId)
- }
- if v.ReportId > 0 {
- list[k].HttpUrl = utils.CYGX_WEB_URL + "/material/ricc/yb/report/" + strconv.Itoa(v.ReportId)
- }
- }
- }
- } else if source == 4 {
- if isAdminRole {
- total, err = cygx.GetChartCountByUserCount(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取总数失败,Err:" + err.Error()
- return
- }
- //condition += ` AND r.company_id = ` + strconv.Itoa(companyId) + ` AND r.create_time < date_format(now(),'%Y-%m-%d')` //过滤当天时间
- list, err = cygx.GetChartCollectBycompanyList(condition, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetChartCountByUserMobileWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取总数失败,Err:" + err.Error()
- return
- }
- //condition += ` AND r.company_id = ` + strconv.Itoa(companyId) + ` AND r.create_time < date_format(now(),'%Y-%m-%d')` //过滤当天时间
- list, err = cygx.GetChartCollectBycompanyListWeekly(condition, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- var err error
- condition = ` AND a.publish_status = 1 AND r.mobile = ` + v.Mobile + ` AND r.create_time < date_format(now(),'%Y-%m-%d')` //过滤当天时间
- totalUser, err := cygx.GetChartCountByUserMobile(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取总数失败,Err:" + err.Error()
- return
- }
- listChart, err := cygx.GetChartListCollectionWithCygxByMobile(condition, 0, 18)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- for k, vChart := range listChart {
- if vChart.PtagName != "" {
- listChart[k].CtagNamePc = vChart.PtagName
- }
- if vChart.CtagName != "" {
- listChart[k].CtagNamePc += "," + vChart.CtagName
- }
- if vChart.PtagNameTwo != "" {
- listChart[k].CtagNamePc += "," + vChart.PtagNameTwo
- }
- if vChart.CtagNameTwo != "" {
- listChart[k].CtagNamePc += "," + vChart.CtagNameTwo
- }
- }
- pageChart := paging.GetPaging(currentIndex, pageSize, totalUser)
- list[k].ListChart = listChart
- list[k].Paging = pageChart
- list[k].IsEnd = pageChart.IsEnd
- list[k].CurrentIndex = pageChart.CurrentIndex
- }
- }
- } else if source == 5 {
- if classType == 1 {
- condition += " AND m.chart_permission_id != 31 "
- } else {
- condition += " AND m.chart_permission_id = 31 "
- }
- if isAdminRole {
- total, err = cygx.GetCygxIndustryFllowCountByCompany(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- list, err = cygx.GetCygxIndustryFllowByCompanyList(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- } else {
- total, err = cygx.GetCygxIndustryFllowCountByCompanyWeekly(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- list, err = cygx.GetCygxIndustryFllowByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取用户关注总数失败"
- return
- }
- }
- //根据公司ID获取对应销售
- var sellerCompanyIds []int
- for _, v := range list {
- sellerCompanyIds = append(sellerCompanyIds, v.CompanyId)
- }
- sellNameMap := services.GetSellNameMapByCompanyIds(sellerCompanyIds)
- for _, v := range list {
- v.SellerName = sellNameMap[v.CompanyId]
- }
- } else if source == 6 {
- if isAdminRole {
- total, err = cygx.GetCygArticleDepartmentFollowCountByCompany(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者总数失败"
- return
- }
- list, err = cygx.GetCygArticleDepartmentFollowByCompanyList(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者列表失败"
- return
- }
- } else {
- total, err = cygx.GetCygArticleDepartmentFollowCountByCompanyWeekly(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者总数失败"
- return
- }
- list, err = cygx.GetCygArticleDepartmentFollowByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注作者列表失败"
- return
- }
- }
- if len(list) > 0 {
- //根据公司ID获取对应销售
- var sellerCompanyIds []int
- var departmentIds []int
- for _, v := range list {
- sellerCompanyIds = append(sellerCompanyIds, v.CompanyId)
- departmentIds = append(departmentIds, v.DepartmentId)
- }
- sellNameMap := services.GetSellNameMapByCompanyIds(sellerCompanyIds)
- mapIndustrialLabel := cygxService.GetArticleIndustrialLabelByDepartmentId(departmentIds) // 关联产业
- for _, v := range list {
- v.SellerName = sellNameMap[v.CompanyId]
- v.SubjectNameStr = strings.Join(mapIndustrialLabel[v.DepartmentId], "/")
- }
- }
- } else if source == 7 {
- if classType == 1 {
- condition += " AND r.register_platform IN (1,2) "
- } else {
- condition += " AND r.register_platform IN (5,6) "
- }
- if isAdminRole {
- total, err = cygx.GetCygxSearchKeyWordCountBuCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxSearchKeyWordByCompanyList(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetCygxSearchKeyWordCountBuCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxSearchKeyWordByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- }
- //根据公司ID获取对应销售
- var sellerCompanyIds []int
- for _, v := range list {
- sellerCompanyIds = append(sellerCompanyIds, v.CompanyId)
- }
- sellNameMap := services.GetSellNameMapByCompanyIds(sellerCompanyIds)
- for _, v := range list {
- v.SellerName = sellNameMap[v.CompanyId]
- }
- } else if source == 8 {
- if isAdminRole {
- total, err = cygx.GetCygxActivitySpecialTripCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxActivitySpecialTripByCompanyList(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetCygxActivitySpecialTripCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.CygxActivitySpecialTripByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- }
- } else if source == 9 {
- if isAdminRole {
- total, err = cygx.GetCygxRoadshowCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxRoadshowByCompanyList(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- } else {
- total, err = cygx.GetCygxRoadshowCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- list, err = cygx.GetCygxRoadshowByCompanyWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
- return
- }
- }
- //根据公司ID获取对应销售
- var sellerCompanyIds []int
- for _, v := range list {
- sellerCompanyIds = append(sellerCompanyIds, v.CompanyId)
- }
- sellNameMap := services.GetSellNameMapByCompanyIds(sellerCompanyIds)
- for _, v := range list {
- v.SellerName = sellNameMap[v.CompanyId]
- }
- } else if source == 10 { //标签点击记录
- if isAdminRole {
- total, err = cygx.GetCygxTagHistoryCount(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- list, err = cygx.GetCygxTagHistoryListBycondition(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录列表失败"
- return
- }
- } else {
- total, err = cygx.GetCygxTagHistoryCountWeekly(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- list, err = cygx.GetCygxTagHistoryListByconditionWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录列表失败"
- return
- }
- }
- } else if source == 11 { //专栏文章阅读记录
- if isAdminRole {
- total, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- total, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUserWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/detail/" + strconv.Itoa(v.ArticleId)
- }
- for k, v := range list {
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/detail/" + strconv.Itoa(v.ArticleId)
- }
- }
- //导出excel
- if isExport {
- exportListYanxuanSpecial(this, list, 3, br)
- return
- }
- } else if source == 12 { //收藏的专栏文章
- if isAdminRole {
- total, list, err = cygx.GetCygxYanxuanSpecialCollectByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- total, list, err = cygx.GetCygxYanxuanSpecialCollectByUserWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/detail/" + strconv.Itoa(v.ArticleId)
- }
- }
- } else if source == 13 { //关注的专栏作者
- if isAdminRole {
- total, list, err = cygx.GetCygxYanxuanSpecialAuthorByUser(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- total, list, err = cygx.GetCygxYanxuanSpecialAuthorByUserWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
- list[k].RegisterPlatformText = cygxService.GetArticleSourcePlatformText(v.RegisterPlatform)
- list[k].HttpUrl = utils.CYGX_MFYX_URL + "/column/view/" + strconv.Itoa(v.DepartmentId)
- }
- }
- } else if source == 14 { //交流反馈
- if isAdminRole {
- total, list, err = cygx.GetCygxUserFeedback(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- total, list, err = cygx.GetCygxUserFeedbackWeekly(condition, startSize, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- } else if source == 15 {
- if startDate != "" {
- condition += ` AND b.start_date >= '` + startDate + `' `
- }
- if endDate != "" {
- condition += ` AND b.start_date <= '` + endDate + `' `
- }
- var totalRsCalendar int
- var listRsCalendar []*roadshow.RsCalendarMeetingUserByRai
- if isAdminRole {
- totalRsCalendar, listRsCalendar, err = roadshow.GetRsCalendarMeetingUserByRai(condition, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- totalRsCalendar, listRsCalendar, err = roadshow.GetRsCalendarMeetingUserByRaiWeekly(condition, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- total = totalRsCalendar
- list, err = cygxService.HandleListRsCalendar(listRsCalendar)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "HandleListRsCalendar,Err:" + err.Error()
- return
- }
- //导出excel
- if isExport {
- exportListRsCalendar(this, list, 3, br)
- return
- }
- }
- page := paging.GetPaging(currentIndex, pageSize, total)
- if len(list) == 0 {
- list = make([]*cygx.UserInteraction, 0)
- }
- resp.List = list
- resp.Paging = page
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 机构列表相关互动下载
- // @Description 机构相关互动下载接口
- // @Param Source query int true "来源 报告阅读列表: 1, 活动互动记录: 2"
- // @Param IsMeeting query string true "是否到会 1到会、2未到会"
- // @Param MeetType query string true "参会方式 1线上,2线下 默认为线上"
- // @Param StartDate query string true "开始时间"
- // @Param EndDate query string true "结束时间"
- // @Param KeyWord query string true "搜索关键词"
- // @Param ActivityName query string true "活动名称"
- // @Param ClassType query int true "列表类型,1:权益,2:研选,默认1"
- // @Success 200 {object} cygx.CygxUserTableStatusListRep
- // @router /user/companyList/export/interaction [get]
- func (this *UserController) CompanyExportInteractionList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- roleTypeCode := sysUser.RoleTypeCode
- adminId := this.GetString("AdminId")
- keyWord := this.GetString("KeyWord")
- isMeeting := this.GetString("IsMeeting")
- meetType := this.GetString("MeetType")
- startDate := this.GetString("StartDate")
- endDate := this.GetString("EndDate")
- activityName := this.GetString("ActivityName")
- source, _ := this.GetInt("Source")
- status := this.GetString("Status")
- classType, _ := this.GetInt("ClassType", 1)
- // 套餐类型
- //packageType, _ := this.GetInt("PackageType")
- keyWord = strings.Trim(keyWord, " ")
- keyWord = strings.Replace(keyWord, "'", "", -1)
- var list []*cygx.UserInteraction
- var err error
- var condition string
- //流失
- var lossCondition string
- //var lossPars []interface{}
- //状态分类查询条件
- var permissionCondition string
- if adminId != "" {
- condition += ` AND b.seller_id IN (` + adminId + `) `
- }
- lossCondition = condition
- //lossPars = pars
- permissionCondition = condition
- //流失客户统计
- lossCondition += ` AND status='流失' `
- //productId := services.GetProductId(roleTypeCode)
- productId := 2
- //权限控制
- {
- //如果不是超级管理员或者财务
- if roleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_FINANCE {
- //如果是部门管理员
- if roleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
- condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- } else {
- condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- if status == "全部" {
- ////如果是筛选了流失客户状态
- if sysUser.Authority <= 0 {
- condition += ` AND (b.seller_id= '` + strconv.Itoa(sysUser.AdminId) + `' OR status='流失') `
- permissionCondition += ` AND b.seller_id= ` + strconv.Itoa(sysUser.AdminId)
- } else {
- if sysUser.Authority == 1 {
- condition += ` AND (b.department_id=` + strconv.Itoa(sysUser.DepartmentId) + ` OR status='流失')`
- permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id=` + strconv.Itoa(sysUser.GroupId) + ` OR status='流失') `
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
- pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "查询父级id异常" + err.Error()
- return
- }
- var ids []*string
- if pid != nil {
- if *pid != 0 {
- //销售主管放在三级列表中
- ids, err = company.GetGroupIdsByParentId(*pid)
- if err != nil {
- fmt.Println(err.Error())
- }
- } else {
- //销售主管放在二级列表中
- ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
- if err != nil {
- fmt.Println(err.Error())
- }
- }
- }
- var idSlice []string
- var sid string
- for _, id := range ids {
- idSlice = append(idSlice, *id)
- }
- //加入父级groupId
- if *pid > 0 {
- idSlice = append(idSlice, strconv.Itoa(*pid))
- } else {
- idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
- }
- sid = strings.Join(idSlice, ",")
- if len(sid) > 0 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
- }
- permissionCondition += ` AND b.group_id IN (` + sid + `) `
- } else {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
- }
- permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
- }
- }
- if sysUser.Authority == 4 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id =` + strconv.Itoa(sysUser.GroupId) + ` OR status='流失') `
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- //permissionPars = append(permissionPars, sysUser.GroupId)
- }
- }
- } else {
- //如果没有筛选了流失客户状态,那么需要加客户归属条件加入到查询中去
- if sysUser.Authority <= 0 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
- //pars = append(pars, sysUser.AdminId)
- }
- permissionCondition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
- //permissionPars = append(permissionPars, sysUser.AdminId)
- } else {
- if sysUser.Authority == 1 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
- //pars = append(pars, sysUser.DepartmentId)
- }
- permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
- //permissionPars = append(permissionPars, sysUser.DepartmentId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.group_id= ` + strconv.Itoa(sysUser.GroupId)
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- //permissionPars = append(permissionPars, sysUser.GroupId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
- pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "查询父级id异常" + err.Error()
- return
- }
- var ids []*string
- if pid != nil {
- if *pid != 0 {
- //销售主管放在三级列表中
- ids, err = company.GetGroupIdsByParentId(*pid)
- if err != nil {
- fmt.Println(err.Error())
- }
- } else {
- //销售主管放在二级列表中
- ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
- if err != nil {
- fmt.Println(err.Error())
- }
- }
- }
- var idSlice []string
- var sid string
- for _, id := range ids {
- idSlice = append(idSlice, *id)
- }
- //加入父级groupId
- if *pid > 0 {
- idSlice = append(idSlice, strconv.Itoa(*pid))
- } else {
- idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
- }
- sid = strings.Join(idSlice, ",")
- if len(sid) > 0 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id IN (` + sid + `) `
- } else {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
- }
- }
- if sysUser.Authority == 4 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.group_id =` + strconv.Itoa(sysUser.GroupId)
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- //permissionPars = append(permissionPars, sysUser.GroupId)
- }
- }
- }
- }
- }
- }
- //condition += ` AND b.status IN ('正式','试用','冻结') `
- //companyCondition := `SELECT a.company_id FROM company AS a INNER JOIN company_product AS b ON a.company_id=b.company_id WHERE a.enabled=1 `
- //if condition != "" {
- // companyCondition += condition
- //}
- condition += ` AND b.status IN ('正式','试用','冻结') `
- companyCondition := `SELECT a.company_id FROM company AS a INNER JOIN company_product AS b ON a.company_id=b.company_id WHERE a.enabled=1 `
- companyIdsCondition := `SELECT GROUP_CONCAT( DISTINCT a.company_id SEPARATOR ',' ) AS company_ids FROM company AS a INNER JOIN company_product AS b ON a.company_id=b.company_id WHERE a.enabled=1 `
- if condition != "" {
- companyCondition += condition
- }
- companyIdsCondition += condition
- var companyIds string
- companyIds, err = cygx.GetCompanyIdsCondition(companyIdsCondition)
- companyIds, err = cygx.GetCompanyIdsCondition(companyIdsCondition)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取公司ID数据失败,Err:" + err.Error()
- return
- }
- condition = ` AND r.company_id IN ( ` + companyIds + ` )AND r.create_time < date_format(now(),'%Y-%m-%d') ` //过滤当天时间
- if keyWord != "" {
- condition += ` AND (r.mobile LIKE '%` + keyWord + `%' OR r.email LIKE '%` + keyWord + `%' OR r.real_name LIKE '%` + keyWord + `%'` + ` OR r.company_name LIKE '%` + keyWord + `%') `
- }
- var isAdminRole bool
- var pageSize = 9999
- //如果不是管理员身份或者研究员身份则需要添加可见范围处理
- if sysUser.Role == utils.ROLE_TYPE_CODE_ADMIN || sysUser.Role == utils.ROLE_TYPE_CODE_RESEARCHR {
- isAdminRole = true
- }
- if source == 1 {
- if classType == 1 {
- condition += " AND art.article_type_id = 0 "
- } else {
- condition += " AND art.article_type_id > 0 "
- }
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND r.create_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND r.create_time <= '` + endDate + `' `
- }
- condition += ` ORDER BY r.create_time DESC `
- var pars []interface{}
- var listRecord []*cygx.CygxArticleAndYanxuanRecordResp
- if isAdminRole {
- listRecord, err = cygx.GetCygxArticleAndYanxuanRecordRespList(condition, pars, 0, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- listRecord, err = cygx.GetCygxArticleAndYanxuanRecordRespListWeekly(condition, pars, 0, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- //处理查询信息回显
- list, err = cygxService.HandleArticleAndYanxuanRecordList(listRecord)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- if len(list) > 0 {
- var articleIds string
- mapAricleId := make(map[int]int)
- mapAricleIndustrialSubjectName := make(map[int]*cygx.ArticleIndustrialSubjectNameResp)
- for k, v := range list {
- if v.ArticleId >= utils.SummaryArticleId {
- list[k].ArticleType = 1
- } else {
- list[k].ArticleType = 2
- }
- if list[k].PermissionName == "" {
- list[k].PermissionName = v.CategoryName
- }
- if mapAricleId[v.ArticleId] == 0 {
- articleIds += strconv.Itoa(v.ArticleId) + ","
- mapAricleId[v.ArticleId] = v.ArticleId
- }
- }
- articleIds = strings.TrimRight(articleIds, ",")
- if articleIds != "" {
- listArticleIndustrialSubjectList, err := cygx.GetCygxArticleIndustrialSubjectName(articleIds)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- if len(listArticleIndustrialSubjectList) > 0 {
- for _, v := range listArticleIndustrialSubjectList {
- mapAricleIndustrialSubjectName[v.ArticleId] = v
- }
- for k, v := range list {
- if mapAricleIndustrialSubjectName[v.ArticleId] != nil {
- fmt.Println(mapAricleIndustrialSubjectName[v.ArticleId].IndustryName)
- list[k].IndustryName = mapAricleIndustrialSubjectName[v.ArticleId].IndustryName
- list[k].SubjectNameStr = mapAricleIndustrialSubjectName[v.ArticleId].SubjectNameStr
- }
- }
- }
- }
- }
- } else if source == 2 {
- if classType == 1 {
- condition += " AND a.chart_permission_id != 31 "
- } else {
- condition += " AND a.chart_permission_id = 31 "
- }
- if isMeeting == "1" {
- condition += ` AND r.is_meeting = 1 `
- }
- if isMeeting == "2" {
- condition += ` AND r.is_meeting = 0 `
- }
- if meetType == "1" {
- condition += ` AND t.activity_type = 1 `
- }
- if meetType == "2" {
- condition += ` AND t.activity_type = 0 `
- }
- if startDate != "" {
- startDate += " 00:00:00"
- condition += ` AND a.activity_time >= '` + startDate + `' `
- }
- if endDate != "" {
- endDate += " 23:59:59"
- condition += ` AND a.activity_time <= '` + endDate + `' `
- }
- if activityName != "" {
- condition += ` AND a.activity_name LIKE '%` + activityName + `%' `
- }
- if isAdminRole {
- list, err = cygx.GetActivityMeetByCompany(condition, 0, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- } else {
- list, err = cygx.GetActivityMeetByCompanyWeekly(condition, 0, pageSize)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取参会人数列表失败"
- return
- }
- }
- if len(list) > 0 {
- for k, v := range list {
- if v.ActivityType == 1 {
- if v.SignupType == "2" {
- list[k].InteractionType = "自主拨入"
- } else {
- list[k].InteractionType = "预约外呼"
- }
- if v.ReminderNum > 0 {
- list[k].InteractionType += ",会议提醒"
- }
- }
- }
- }
- } else if source == 11 {
- if isAdminRole {
- _, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUser(condition, 0, 9999)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- } else {
- _, list, err = cygx.GetCygxYanxuaSspecialHistoryRecordByUserWeekly(condition, 0, 9999)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
- return
- }
- }
- }
- //创建excel
- dir, err := os.Executable()
- exPath := filepath.Dir(dir)
- downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
- xlsxFile := xlsx.NewFile()
- if err != nil {
- br.Msg = "生成文件失败"
- br.ErrMsg = "生成文件失败"
- return
- }
- style := xlsx.NewStyle()
- alignment := xlsx.Alignment{
- Horizontal: "center",
- Vertical: "center",
- WrapText: true,
- }
- var excelName string
- style.Alignment = alignment
- style.ApplyAlignment = true
- sheet, err := xlsxFile.AddSheet("到会管理名单")
- if err != nil {
- br.Msg = "新增Sheet失败"
- br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
- return
- }
- if source == 1 {
- excelName = "客户阅读记录"
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "客户名称"
- cellB := rowTitle.AddCell()
- cellB.Value = "所属销售"
- cellC := rowTitle.AddCell()
- cellC.Value = "姓名"
- cellD := rowTitle.AddCell()
- cellD.Value = "手机号"
- cellE := rowTitle.AddCell()
- cellE.Value = "报告标题"
- cellF := rowTitle.AddCell()
- cellF.Value = "所属行业"
- cellG := rowTitle.AddCell()
- cellG.Value = "所属产业"
- cellH := rowTitle.AddCell()
- cellH.Value = "关联标的"
- cellI := rowTitle.AddCell()
- cellI.Value = "发布时间"
- cellJ := rowTitle.AddCell()
- cellJ.Value = "阅读时间"
- cellK := rowTitle.AddCell()
- cellK.Value = "阅读时长"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.CompanyName
- cellB := row.AddCell()
- cellB.Value = item.SellerName
- cellC := row.AddCell()
- cellC.Value = item.RealName
- cellD := row.AddCell()
- cellD.Value = item.Mobile
- cellE := row.AddCell()
- cellE.Value = item.Title
- cellF := row.AddCell()
- cellF.Value = item.PermissionName
- cellG := row.AddCell()
- cellG.Value = item.IndustryName
- cellH := row.AddCell()
- cellH.Value = item.SubjectNameStr
- cellI := row.AddCell()
- cellI.Value = item.PublishDate
- cellJ := row.AddCell()
- cellJ.Value = item.CreateTime
- cellK := row.AddCell()
- cellK.Value = item.StopTime
- }
- } else if source == 2 {
- excelName = "客户参会记录"
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "客户名称"
- cellB := rowTitle.AddCell()
- cellB.Value = "所属销售"
- cellC := rowTitle.AddCell()
- cellC.Value = "姓名"
- cellD := rowTitle.AddCell()
- cellD.Value = "手机号"
- cellE := rowTitle.AddCell()
- cellE.Value = "活动名称"
- cellF := rowTitle.AddCell()
- cellF.Value = "所属行业"
- cellG := rowTitle.AddCell()
- cellG.Value = "活动类型"
- cellH := rowTitle.AddCell()
- cellH.Value = "活动主题"
- cellI := rowTitle.AddCell()
- cellI.Value = "活动时间"
- cellJ := rowTitle.AddCell()
- cellJ.Value = "是否到会"
- cellK := rowTitle.AddCell()
- cellK.Value = "首次入会时间"
- cellL := rowTitle.AddCell()
- cellL.Value = "最后退出时间"
- cellM := rowTitle.AddCell()
- cellM.Value = "参与总时长"
- cellN := rowTitle.AddCell()
- cellN.Value = "参会方式"
- cellO := rowTitle.AddCell()
- cellO.Value = "参会权鉴"
- cellP := rowTitle.AddCell()
- cellP.Value = "参会状态"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.CompanyName
- cellB := row.AddCell()
- cellB.Value = item.SellerName
- cellC := row.AddCell()
- cellC.Value = item.RealName
- cellD := row.AddCell()
- cellD.Value = item.Mobile
- cellE := row.AddCell()
- cellE.Value = item.ActivityName
- cellF := row.AddCell()
- cellF.Value = item.PermissionName
- cellG := row.AddCell()
- cellG.Value = item.ActivityTypeName
- cellH := row.AddCell()
- cellH.Value = item.Label
- cellI := row.AddCell()
- cellI.Value = item.ActivityTime
- cellJ := row.AddCell()
- if item.IsMeeting == 1 {
- cellJ.Value = "到会"
- } else {
- cellJ.Value = "未到会"
- }
- cellK := row.AddCell()
- cellK.Value = item.FirstMeetingTime
- cellL := row.AddCell()
- cellL.Value = item.LastMeetingTime
- cellM := row.AddCell()
- cellM.Value = item.Duration
- cellN := row.AddCell()
- cellN.Value = item.LastMeetingTime
- cellO := row.AddCell()
- cellO.Value = item.MeetingTypeStr
- cellP := row.AddCell()
- cellP.Value = item.MeetingStatusStr
- }
- } else if source == 11 {
- //标头
- rowTitle := sheet.AddRow()
- cellA := rowTitle.AddCell()
- cellA.Value = "文章标题"
- cellB := rowTitle.AddCell()
- cellB.Value = "文章类型"
- cellC := rowTitle.AddCell()
- cellC.Value = "标签"
- cellD := rowTitle.AddCell()
- cellD.Value = "发布时间"
- cellE := rowTitle.AddCell()
- cellE.Value = "阅读时间"
- cellF := rowTitle.AddCell()
- cellF.Value = "阅读时长"
- cellG := rowTitle.AddCell()
- cellG.Value = "阅读来源"
- for _, item := range list {
- row := sheet.AddRow()
- cellA := row.AddCell()
- cellA.Value = item.Title
- cellB := row.AddCell()
- if item.SpecialType == 1 {
- cellB.Value = "笔记"
- } else {
- cellB.Value = "观点"
- }
- cellC := row.AddCell()
- cellC.Value = item.IndustryName
- cellD := row.AddCell()
- cellD.Value = item.PublishDate
- cellE := row.AddCell()
- cellE.Value = item.CreateTime
- cellF := row.AddCell()
- cellF.Value = item.StopTime
- cellG := row.AddCell()
- cellG.Value = cygxService.GetArticleSourcePlatformText(item.RegisterPlatform)
- }
- }
- err = xlsxFile.Save(downLoadnFilePath)
- if err != nil {
- br.Msg = "保存文件失败"
- br.ErrMsg = "保存文件失败"
- return
- }
- randStr := time.Now().Format(utils.FormatDateTimeUnSpace)
- downloadFileName := excelName + randStr + ".xlsx"
- this.Ctx.Output.Download(downLoadnFilePath, downloadFileName)
- defer func() {
- os.Remove(downLoadnFilePath)
- }()
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- }
- // @Title 机构列表互动详情table栏
- // @Description 机构列表互动详情table栏接口
- // @Param ClassType query int true "列表类型,1:权益,2:研选,默认1"
- // @Success 200 {object} cygx.CygxUserTableListRep
- // @router /user/table/companyList [get]
- func (this *UserController) TableCompanyList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- roleTypeCode := sysUser.RoleTypeCode
- status := this.GetString("Status")
- classType, _ := this.GetInt("ClassType", 1)
- //流失
- var lossCondition string
- var condition string
- //var lossPars []interface{}
- //状态分类查询条件
- var permissionCondition string
- lossCondition = condition
- //lossPars = pars
- permissionCondition = condition
- //流失客户统计
- lossCondition += ` AND status='流失' `
- //productId := services.GetProductId(roleTypeCode)
- productId := 2
- //权限控制
- {
- //如果不是超级管理员或者财务
- if roleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_FINANCE {
- //如果是部门管理员
- if roleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
- condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- } else {
- condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
- if status == "全部" {
- ////如果是筛选了流失客户状态
- if sysUser.Authority <= 0 {
- condition += ` AND (b.seller_id= '` + strconv.Itoa(sysUser.AdminId) + `' OR status='流失') `
- permissionCondition += ` AND b.seller_id= ` + strconv.Itoa(sysUser.AdminId)
- } else {
- if sysUser.Authority == 1 {
- condition += ` AND (b.department_id=` + strconv.Itoa(sysUser.DepartmentId) + ` OR status='流失')`
- permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id=` + strconv.Itoa(sysUser.GroupId) + ` OR status='流失') `
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
- pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "查询父级id异常" + err.Error()
- return
- }
- var ids []*string
- if pid != nil {
- if *pid != 0 {
- //销售主管放在三级列表中
- ids, err = company.GetGroupIdsByParentId(*pid)
- if err != nil {
- fmt.Println(err.Error())
- }
- } else {
- //销售主管放在二级列表中
- ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
- if err != nil {
- fmt.Println(err.Error())
- }
- }
- }
- var idSlice []string
- var sid string
- for _, id := range ids {
- idSlice = append(idSlice, *id)
- }
- //加入父级groupId
- if *pid > 0 {
- idSlice = append(idSlice, strconv.Itoa(*pid))
- } else {
- idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
- }
- sid = strings.Join(idSlice, ",")
- if len(sid) > 0 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
- }
- permissionCondition += ` AND b.group_id IN (` + sid + `) `
- } else {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
- }
- permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
- }
- }
- if sysUser.Authority == 4 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id =` + strconv.Itoa(sysUser.GroupId) + ` OR status='流失') `
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- //permissionPars = append(permissionPars, sysUser.GroupId)
- }
- }
- } else {
- //如果没有筛选了流失客户状态,那么需要加客户归属条件加入到查询中去
- if sysUser.Authority <= 0 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
- //pars = append(pars, sysUser.AdminId)
- }
- permissionCondition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
- //permissionPars = append(permissionPars, sysUser.AdminId)
- } else {
- if sysUser.Authority == 1 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
- //pars = append(pars, sysUser.DepartmentId)
- }
- permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
- //permissionPars = append(permissionPars, sysUser.DepartmentId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.group_id= ` + strconv.Itoa(sysUser.GroupId)
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- //permissionPars = append(permissionPars, sysUser.GroupId)
- }
- if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
- pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "查询父级id异常" + err.Error()
- return
- }
- var ids []*string
- if pid != nil {
- if *pid != 0 {
- //销售主管放在三级列表中
- ids, err = company.GetGroupIdsByParentId(*pid)
- if err != nil {
- fmt.Println(err.Error())
- }
- } else {
- //销售主管放在二级列表中
- ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
- if err != nil {
- fmt.Println(err.Error())
- }
- }
- }
- var idSlice []string
- var sid string
- for _, id := range ids {
- idSlice = append(idSlice, *id)
- }
- //加入父级groupId
- if *pid > 0 {
- idSlice = append(idSlice, strconv.Itoa(*pid))
- } else {
- idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
- }
- sid = strings.Join(idSlice, ",")
- if len(sid) > 0 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id IN (` + sid + `) `
- } else {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
- }
- }
- if sysUser.Authority == 4 {
- if status != utils.COMPANY_STATUS_LOSE {
- condition += ` AND b.group_id =` + strconv.Itoa(sysUser.GroupId)
- //pars = append(pars, sysUser.GroupId)
- }
- permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
- //permissionPars = append(permissionPars, sysUser.GroupId)
- }
- }
- }
- }
- }
- }
- condition += ` AND b.status IN ('正式','试用','冻结') `
- companyCondition := ` AND a.enabled=1 `
- if condition != "" {
- companyCondition += condition
- }
- resp := new(cygx.CygxUserTableListRep)
- var isAdminRole bool
- //如果不是管理员身份或者研究员身份则需要添加可见范围处理
- if sysUser.Role == utils.ROLE_TYPE_CODE_ADMIN || sysUser.Role == utils.ROLE_TYPE_CODE_RESEARCHR {
- isAdminRole = true
- }
- var pars []interface{}
- lsitCompany, err := company.GetCompanyProductListBycondition(condition, pars)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,GetCompanyProductListBycondition Err:" + err.Error()
- return
- }
- var companyIds []string
- for _, v := range lsitCompany {
- companyIds = append(companyIds, strconv.Itoa(v.CompanyId))
- }
- condition = " AND r.company_id IN (" + strings.Join(companyIds, ",") + ")"
- condition += ` AND r.create_time < date_format(now(),'%Y-%m-%d') ` //过滤当天时间
- conditionArtcile := condition //文章搜索条件
- conditionActivityMeet := condition //活动到会搜索条件
- conditionIndustryFllow := condition //产业关注搜索条件
- conditionKeyWord := condition //关键词记录搜索条件
- if classType == 1 {
- conditionArtcile += " AND art.article_type_id = 0 "
- conditionActivityMeet += " AND a.chart_permission_id != 31 "
- conditionIndustryFllow += " AND m.chart_permission_id != 31 "
- conditionKeyWord += " AND r.register_platform IN (1,2) "
- } else {
- conditionArtcile += " AND art.article_type_id > 0 "
- conditionActivityMeet += " AND a.chart_permission_id = 31 "
- conditionIndustryFllow += " AND m.chart_permission_id = 31 "
- conditionKeyWord += " AND r.register_platform IN (5,6) "
- }
- var historyNum int //报告阅读列表
- var activityNum int //活动互动记录
- var triptotal int //专项调研
- var articleCollect int //收藏的报告
- var chartNum int //收藏图表
- var industryFllowNum int //关注的产业
- var departmentFollowNum int //关注的作者
- var keyWordNum int //搜索
- var roadshowTotal int //音视频播放
- var tagNum int //首页标签点击
- var yanxuanSpecialNum int //专栏文章阅读记录
- var yanxuanSpecialCollectNum int //收藏的专栏文章
- var yanxuanSpecialFollowNum int //关注的专栏作者
- var feedbackNum int //交流反馈数量
- var calendarMeetingNum int //1v1 路演数量
- if isAdminRole {
- historyNum, err = cygx.GetCygxArticleAndYanxuanRecordCount(conditionArtcile, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
- return
- }
- //获取参会总数
- activityNum, err = cygx.GetActivityMeetByCompanyCount(conditionActivityMeet)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取参会总数失败,Err:" + err.Error()
- return
- }
- //获取用户收藏记录总数
- articleCollect, err = cygx.GetCygxArticleCollectCountByCompany(conditionArtcile)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
- return
- }
- //获取用户关注总数
- industryFllowNum, err = cygx.GetCygxIndustryFllowCountByCompany(conditionIndustryFllow)
- if err != nil {
- br.Msg = "获取信息失败 "
- br.ErrMsg = "获取用户关注总数失败,Err:" + err.Error()
- return
- }
- //获取关注作者总数
- departmentFollowNum, err = cygx.GetCygArticleDepartmentFollowCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取关注作者总数失败,Err:" + err.Error()
- return
- }
- //获取搜索记录
- keyWordNum, err = cygx.GetCygxSearchKeyWordCountBuCompany(conditionKeyWord)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- chartNum, err = cygx.GetChartCountByUserMobile(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取总数失败,Err:" + err.Error()
- return
- }
- triptotal, err = cygx.GetCygxActivitySpecialTripCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- roadshowTotal, err = cygx.GetCygxRoadshowCountByCompany(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- tagNum, err = cygx.GetCygxTagHistoryCount(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- yanxuanSpecialNum, err = cygx.GetCygxYanxuanSpecialRecordCount(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取研选专栏阅读数量失败"
- return
- }
- yanxuanSpecialCollectNum, err = cygx.GetCygxYanxuanSpecialCollectCount(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取收藏的专栏文章数量失败"
- return
- }
- yanxuanSpecialFollowNum, err = cygx.GetCygxYanxuanSpecialFollowCount(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取关注的专栏作者数量失败"
- return
- }
- feedbackNum, err = cygx.GetCygxUserFeedbackCountByUserModel(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取交流反馈数量失败"
- return
- }
- calendarMeetingNum, err = roadshow.GetRsCalendarMeetingUserCountByUserModel(condition, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "GetRsCalendarMeetingUserCountByUserModel,Err:" + err.Error()
- return
- }
- } else {
- historyNum, err = cygx.GetCygxArticleAndYanxuanRecordCountWeekly(conditionArtcile, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
- return
- }
- //获取参会总数
- activityNum, err = cygx.GetActivityMeetByCompanyCountWeekly(conditionActivityMeet)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取参会总数失败,Err:" + err.Error()
- return
- }
- //获取用户收藏记录总数
- articleCollect, err = cygx.GetCygxArticleCollectCountByCompanyWeekly(conditionArtcile)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
- return
- }
- //获取用户关注总数
- industryFllowNum, err = cygx.GetCygxIndustryFllowCountByCompanyWeekly(conditionIndustryFllow)
- if err != nil {
- br.Msg = "获取信息失败 "
- br.ErrMsg = "获取用户关注总数失败,Err:" + err.Error()
- return
- }
- //获取关注作者总数
- departmentFollowNum, err = cygx.GetCygArticleDepartmentFollowCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取关注作者总数失败,Err:" + err.Error()
- return
- }
- //获取搜索记录
- keyWordNum, err = cygx.GetCygxSearchKeyWordCountBuCompanyWeekly(conditionKeyWord)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- chartNum, err = cygx.GetChartCountByUserMobileWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取总数失败,Err:" + err.Error()
- return
- }
- triptotal, err = cygx.GetCygxActivitySpecialTripCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- roadshowTotal, err = cygx.GetCygxRoadshowCountByCompanyWeekly(condition)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
- return
- }
- tagNum, err = cygx.GetCygxTagHistoryCountWeekly(condition)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取搜索记录失败"
- return
- }
- yanxuanSpecialNum, err = cygx.GetCygxYanxuanSpecialRecordCountWeekly(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取研选专栏阅读数量失败"
- return
- }
- yanxuanSpecialCollectNum, err = cygx.GetCygxYanxuanSpecialCollectCountWeekly(condition, pars)
- if err != nil {
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- br.Msg = "获取收藏的专栏文章数量失败"
- return
- }
- yanxuanSpecialFollowNum, err = cygx.GetCygxYanxuanSpecialFollowCountWeekly(condition, pars)
- if err != nil {
- br.Msg = "获取关注的专栏作者数量失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- feedbackNum, err = cygx.GetCygxUserFeedbackCountByUserModelWeekly(condition, pars)
- if err != nil {
- br.Msg = "获取交流反馈数量失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- calendarMeetingNum, err = roadshow.GetRsCalendarMeetingUserCountByUserModelWeekly(condition, pars)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "GetRsCalendarMeetingUserCountByUserModelWeekly,Err:" + err.Error()
- return
- }
- }
- if classType == 1 {
- List := []*cygx.CygxUserTableRep{{PermissionName: "报告阅读列表", Source: 1, TotalNum: historyNum},
- {PermissionName: "活动互动记录", Source: 2, TotalNum: activityNum},
- {PermissionName: "专项调研", Source: 8, TotalNum: triptotal},
- {PermissionName: "1v1路演", Source: 15, TotalNum: calendarMeetingNum},
- {PermissionName: "收藏的报告", Source: 3, TotalNum: articleCollect},
- {PermissionName: "收藏图表", Source: 4, TotalNum: chartNum},
- {PermissionName: "关注的产业", Source: 5, TotalNum: industryFllowNum},
- {PermissionName: "搜索", Source: 7, TotalNum: keyWordNum},
- {PermissionName: "音视频播放", Source: 9, TotalNum: roadshowTotal},
- {PermissionName: "首页标签点击", Source: 10, TotalNum: tagNum},
- {PermissionName: "交流反馈", Source: 14, TotalNum: feedbackNum}}
- resp.List = List
- } else {
- List := []*cygx.CygxUserTableRep{{PermissionName: "报告阅读列表", Source: 1, TotalNum: historyNum},
- {PermissionName: "活动互动记录", Source: 2, TotalNum: activityNum},
- {PermissionName: "收藏的报告", Source: 3, TotalNum: articleCollect},
- {PermissionName: "关注的产业", Source: 5, TotalNum: industryFllowNum},
- {PermissionName: "关注的作者", Source: 6, TotalNum: departmentFollowNum},
- {PermissionName: "专栏文章阅读记录", Source: 11, TotalNum: yanxuanSpecialNum},
- {PermissionName: "收藏的专栏文章", Source: 12, TotalNum: yanxuanSpecialCollectNum},
- {PermissionName: "关注的专栏作者", Source: 13, TotalNum: yanxuanSpecialFollowNum},
- {PermissionName: "搜索", Source: 7, TotalNum: keyWordNum}}
- resp.List = List
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 添加/取消用户提醒
- // @Description 添加/取消用户提醒
- // @Param request body cygx.UserRemarAddReq true "type json string"
- // @Success 200 新增成功
- // @router /user/remind [post]
- func (this *UserController) UserRemind() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req cygx.UserRemarAddReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- userId := req.UserId
- sourceType := req.SourceType
- doType := req.DoType
- wxUser, err := cygx.GetUserAndCompanyNameList(userId)
- if err != nil {
- br.Msg = "设置互动提醒失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- if sourceType != 1 && sourceType != 2 {
- br.Msg = "设置互动提醒失败"
- br.ErrMsg = "设置互动提醒失败,sourceType:" + strconv.Itoa(sourceType)
- return
- }
- if doType != 1 && doType != 2 {
- br.Msg = "设置互动提醒失败"
- br.ErrMsg = "设置互动提醒失败,doType:" + strconv.Itoa(doType)
- return
- }
- count, err := cygx.GetCygxUserRemindCount(userId)
- if err != nil {
- br.Msg = "获取数据失败!"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- resp := new(cygx.CygxUserRemindResp)
- if count <= 0 {
- var items []*cygx.CygxUserRemind
- if sourceType == 1 {
- item := new(cygx.CygxUserRemind)
- item.AdminId = sysUser.AdminId
- item.AdminName = sysUser.RealName
- item.UserId = userId
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.RealName = wxUser.RealName
- item.CreateTime = time.Now()
- item.ModifyTime = time.Now()
- items = append(items, item)
- } else {
- //获取机构下所有的用户
- listUser, err := models.GetWxUserListCompanyId(wxUser.CompanyId)
- if err != nil {
- br.Msg = "获取数据失败!"
- br.ErrMsg = "获取数据失败,GetWxUserListCompanyId Err:" + err.Error()
- return
- }
- //获取已经添加消息提醒的
- listUserRemind, err := cygx.GetCygxUserRemindListByCompanyId(wxUser.CompanyId)
- if err != nil {
- br.Msg = "获取数据失败!"
- br.ErrMsg = "获取数据失败,GetCygxUserRemindListByCompanyId Err:" + err.Error()
- return
- }
- mapUserRemind := make(map[int]bool)
- for _, v := range listUserRemind {
- mapUserRemind[v.UserId] = true
- }
- for _, v := range listUser {
- //如果已经添加了提醒的用户就不做添加处理
- if mapUserRemind[v.UserId] {
- continue
- }
- item := new(cygx.CygxUserRemind)
- item.AdminId = sysUser.AdminId
- item.AdminName = sysUser.RealName
- item.UserId = v.UserId
- item.Mobile = v.Mobile
- item.Email = v.Email
- item.CompanyId = v.CompanyId
- item.CompanyName = v.CompanyName
- item.RealName = v.RealName
- item.CreateTime = time.Now()
- item.ModifyTime = time.Now()
- items = append(items, item)
- }
- }
- //批量加入
- err = cygx.AddCygxUserRemindMulti(items)
- if err != nil {
- br.Msg = "添加失败"
- br.ErrMsg = "添加失败,Err:" + err.Error()
- return
- }
- br.Msg = "收藏成功"
- resp.Status = 1
- } else {
- if sourceType == 1 {
- err = cygx.RemoveCygxUserRemind(userId) //取消个人提醒
- } else {
- err = cygx.RemoveCygxUserRemindByCompanyId(wxUser.CompanyId) //取消整个机构提醒
- }
- if err != nil {
- br.Msg = "取消失败"
- br.ErrMsg = "取消失败,Err:" + err.Error()
- return
- }
- br.Msg = "已取消收藏"
- resp.Status = 2
- }
- br.Ret = 200
- br.Success = true
- br.Data = resp
- }
- // exportListRsCalendar 1v1路演导出Excel
- func exportListRsCalendar(this *UserController, list []*cygx.UserInteraction, excelType int, br *models.BaseResponse) {
- dir, err := os.Executable()
- exPath := filepath.Dir(dir)
- downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
- xlsxFile := xlsx.NewFile()
- if err != nil {
- br.Msg = "生成文件失败"
- br.ErrMsg = "生成文件失败"
- return
- }
- style := xlsx.NewStyle()
- border := xlsx.NewBorder("thin", "thin", "thin", "thin")
- alignment := xlsx.Alignment{
- Horizontal: "center",
- Vertical: "center",
- WrapText: true,
- }
- redStyle := xlsx.NewStyle()
- redStyle.Alignment = alignment
- redStyle.ApplyAlignment = true
- redStyle.Font.Color = "ff0000"
- redStyle.Border = *border
- style.Alignment = alignment
- style.ApplyAlignment = true
- sheel, err := xlsxFile.AddSheet("1V1路演")
- if err != nil {
- br.Msg = "新增Sheet失败"
- br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
- return
- }
- sheel.SetColWidth(0, 0, 30)
- sheel.SetColWidth(1, 1, 15)
- sheel.SetColWidth(2, 2, 15)
- sheel.SetColWidth(3, 3, 18)
- titleRow := sheel.AddRow()
- if excelType > 2 {
- cellA := titleRow.AddCell()
- cellA.SetStyle(style)
- cellA.SetValue("客户名称")
- }
- if excelType > 1 {
- cellB := titleRow.AddCell()
- cellB.SetStyle(style)
- cellB.SetValue("姓名")
- cellC := titleRow.AddCell()
- cellC.SetStyle(style)
- cellC.SetValue("手机号")
- }
- cellD := titleRow.AddCell()
- cellD.SetStyle(style)
- cellD.SetValue("路演时间")
- cellE := titleRow.AddCell()
- cellE.SetStyle(style)
- cellE.SetValue("研究员")
- cellF := titleRow.AddCell()
- cellF.SetStyle(style)
- cellF.SetValue("路演形式")
- cellG := titleRow.AddCell()
- cellG.SetStyle(style)
- cellG.SetValue("主题标签")
- for _, v := range list {
- dataRow := sheel.AddRow()
- dataRow.SetHeight(20)
- if excelType > 2 {
- cellAData := dataRow.AddCell()
- cellAData.SetStyle(style)
- cellAData.Value = v.CompanyName
- }
- if excelType > 1 {
- cellBData := dataRow.AddCell()
- cellBData.SetStyle(style)
- cellBData.Value = v.RealName
- cellCData := dataRow.AddCell()
- cellCData.SetStyle(style)
- cellCData.Value = v.Mobile
- }
- cellDData := dataRow.AddCell()
- cellDData.SetStyle(style)
- cellDData.Value = v.ActivityTimeText
- cellEData := dataRow.AddCell()
- cellEData.SetStyle(style)
- cellEData.Value = v.ResearcherName
- cellFData := dataRow.AddCell()
- cellFData.SetStyle(style)
- if v.ActivityType == 1 {
- cellFData.Value = "线上"
- } else {
- cellFData.Value = "线下"
- }
- cellGData := dataRow.AddCell()
- cellGData.SetStyle(style)
- cellGData.Value = v.LabelKeyWord
- }
- err = xlsxFile.Save(downLoadnFilePath)
- if err != nil {
- br.Msg = "保存文件失败"
- br.ErrMsg = "保存文件失败"
- return
- }
- randStr := time.Now().Format(utils.FormatDateTimeUnSpace)
- downloadFileName := "1V1路演导出数据_" + randStr + ".xlsx"
- this.Ctx.Output.Download(downLoadnFilePath, downloadFileName)
- defer func() {
- os.Remove(downLoadnFilePath)
- }()
- br.Ret = 200
- br.Success = true
- br.Msg = "导出成功"
- }
- // exportListArticle 文章阅读数据导出
- func exportListArticle(this *UserController, list []*cygx.UserInteraction, excelType int, br *models.BaseResponse) {
- //创建excel
- dir, err := os.Executable()
- exPath := filepath.Dir(dir)
- downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
- xlsxFile := xlsx.NewFile()
- if err != nil {
- br.Msg = "生成文件失败"
- br.ErrMsg = "生成文件失败"
- return
- }
- style := xlsx.NewStyle()
- alignment := xlsx.Alignment{
- Horizontal: "center",
- Vertical: "center",
- WrapText: true,
- }
- style.Alignment = alignment
- style.ApplyAlignment = true
- sheet, err := xlsxFile.AddSheet("报告阅读列表")
- if err != nil {
- br.Msg = "新增Sheet失败"
- br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
- return
- }
- //标头
- rowTitle := sheet.AddRow()
- if excelType > 2 {
- cellA := rowTitle.AddCell()
- cellA.Value = "客户名称"
- cellB := rowTitle.AddCell()
- cellB.Value = "所属销售"
- }
- if excelType > 1 {
- cellC := rowTitle.AddCell()
- cellC.Value = "姓名"
- cellD := rowTitle.AddCell()
- cellD.Value = "手机号"
- }
- cellE := rowTitle.AddCell()
- cellE.Value = "报告标题"
- cellF := rowTitle.AddCell()
- cellF.Value = "所属行业"
- cellG := rowTitle.AddCell()
- cellG.Value = "所属产业"
- cellH := rowTitle.AddCell()
- cellH.Value = "关联标的"
- cellI := rowTitle.AddCell()
- cellI.Value = "发布时间"
- cellJ := rowTitle.AddCell()
- cellJ.Value = "阅读时间"
- cellK := rowTitle.AddCell()
- cellK.Value = "阅读时长"
- for _, item := range list {
- row := sheet.AddRow()
- if excelType > 2 {
- cellA := row.AddCell()
- cellA.Value = item.CompanyName
- cellB := row.AddCell()
- cellB.Value = item.SellerName
- }
- if excelType > 1 {
- cellC := row.AddCell()
- cellC.Value = item.RealName
- cellD := row.AddCell()
- cellD.Value = item.Mobile
- }
- cellEData := row.AddCell()
- cellEData.Value = item.Title
- cellFData := row.AddCell()
- cellFData.Value = item.PermissionName
- cellGData := row.AddCell()
- cellGData.Value = item.IndustryName
- cellHData := row.AddCell()
- cellHData.Value = item.SubjectNameStr
- cellIData := row.AddCell()
- cellIData.Value = item.PublishDate
- cellJData := row.AddCell()
- cellJData.Value = item.CreateTime
- cellKData := row.AddCell()
- cellKData.Value = item.StopTime
- }
- err = xlsxFile.Save(downLoadnFilePath)
- if err != nil {
- br.Msg = "保存文件失败"
- br.ErrMsg = "保存文件失败"
- return
- }
- randStr := time.Now().Format(utils.FormatDateTimeUnSpace)
- downloadFileName := "报告阅读列表导出数据_" + randStr + ".xlsx"
- this.Ctx.Output.Download(downLoadnFilePath, downloadFileName)
- defer func() {
- os.Remove(downLoadnFilePath)
- }()
- br.Ret = 200
- br.Success = true
- br.Msg = "导出成功"
- }
- // exportListArticle 文章阅读数据导出
- func exportListActivity(this *UserController, list []*cygx.UserInteraction, excelType int, br *models.BaseResponse) {
- //创建excel
- dir, err := os.Executable()
- exPath := filepath.Dir(dir)
- downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
- xlsxFile := xlsx.NewFile()
- if err != nil {
- br.Msg = "生成文件失败"
- br.ErrMsg = "生成文件失败"
- return
- }
- style := xlsx.NewStyle()
- alignment := xlsx.Alignment{
- Horizontal: "center",
- Vertical: "center",
- WrapText: true,
- }
- style.Alignment = alignment
- style.ApplyAlignment = true
- sheet, err := xlsxFile.AddSheet("客户参会记录")
- if err != nil {
- br.Msg = "新增Sheet失败"
- br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
- return
- }
- //标头
- rowTitle := sheet.AddRow()
- if excelType > 2 {
- cellA := rowTitle.AddCell()
- cellA.Value = "客户名称"
- cellB := rowTitle.AddCell()
- cellB.Value = "所属销售"
- }
- if excelType > 1 {
- cellC := rowTitle.AddCell()
- cellC.Value = "姓名"
- cellD := rowTitle.AddCell()
- cellD.Value = "手机号"
- }
- cellE := rowTitle.AddCell()
- cellE.Value = "活动名称"
- cellF := rowTitle.AddCell()
- cellF.Value = "所属行业"
- cellG := rowTitle.AddCell()
- cellG.Value = "活动类型"
- cellH := rowTitle.AddCell()
- cellH.Value = "活动主题"
- cellI := rowTitle.AddCell()
- cellI.Value = "活动时间"
- cellJ := rowTitle.AddCell()
- cellJ.Value = "是否到会"
- cellK := rowTitle.AddCell()
- cellK.Value = "首次入会时间"
- cellL := rowTitle.AddCell()
- cellL.Value = "最后退出时间"
- cellM := rowTitle.AddCell()
- cellM.Value = "参与总时长"
- cellN := rowTitle.AddCell()
- cellN.Value = "参会方式"
- cellO := rowTitle.AddCell()
- cellO.Value = "参会权鉴"
- cellP := rowTitle.AddCell()
- cellP.Value = "参会状态"
- for _, item := range list {
- row := sheet.AddRow()
- if excelType > 2 {
- cellAData := row.AddCell()
- cellAData.Value = item.CompanyName
- cellBData := row.AddCell()
- cellBData.Value = item.SellerName
- }
- if excelType > 1 {
- cellCData := row.AddCell()
- cellCData.Value = item.RealName
- cellDData := row.AddCell()
- cellDData.Value = item.Mobile
- }
- cellEData := row.AddCell()
- cellEData.Value = item.ActivityName
- cellFData := row.AddCell()
- cellFData.Value = item.PermissionName
- cellGData := row.AddCell()
- cellGData.Value = item.ActivityTypeName
- cellHData := row.AddCell()
- cellHData.Value = item.Label
- cellIData := row.AddCell()
- cellIData.Value = item.ActivityTime
- cellJData := row.AddCell()
- if item.IsMeeting == 1 {
- cellJData.Value = "到会"
- } else {
- cellJData.Value = "未到会"
- }
- cellKData := row.AddCell()
- cellKData.Value = item.FirstMeetingTime
- cellLData := row.AddCell()
- cellLData.Value = item.LastMeetingTime
- cellMData := row.AddCell()
- cellMData.Value = item.Duration
- cellNData := row.AddCell()
- cellNData.Value = item.LastMeetingTime
- cellOData := row.AddCell()
- cellOData.Value = item.MeetingTypeStr
- cellPData := row.AddCell()
- cellPData.Value = item.MeetingStatusStr
- }
- err = xlsxFile.Save(downLoadnFilePath)
- if err != nil {
- br.Msg = "保存文件失败"
- br.ErrMsg = "保存文件失败"
- return
- }
- randStr := time.Now().Format(utils.FormatDateTimeUnSpace)
- downloadFileName := "客户参会记录导出数据_" + randStr + ".xlsx"
- this.Ctx.Output.Download(downLoadnFilePath, downloadFileName)
- defer func() {
- os.Remove(downLoadnFilePath)
- }()
- br.Ret = 200
- br.Success = true
- br.Msg = "导出成功"
- }
- // exportListYanxuanSpecial 研选专栏阅读记录
- func exportListYanxuanSpecial(this *UserController, list []*cygx.UserInteraction, excelType int, br *models.BaseResponse) {
- //创建excel
- dir, err := os.Executable()
- exPath := filepath.Dir(dir)
- downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
- xlsxFile := xlsx.NewFile()
- if err != nil {
- br.Msg = "生成文件失败"
- br.ErrMsg = "生成文件失败"
- return
- }
- style := xlsx.NewStyle()
- alignment := xlsx.Alignment{
- Horizontal: "center",
- Vertical: "center",
- WrapText: true,
- }
- style.Alignment = alignment
- style.ApplyAlignment = true
- sheet, err := xlsxFile.AddSheet("客户参会记录")
- if err != nil {
- br.Msg = "新增Sheet失败"
- br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
- return
- }
- //标头
- rowTitle := sheet.AddRow()
- if excelType > 2 {
- cellAy := rowTitle.AddCell()
- cellAy.Value = "客户名称"
- cellBy := rowTitle.AddCell()
- cellBy.Value = "所属销售"
- }
- if excelType > 1 {
- cellC := rowTitle.AddCell()
- cellC.Value = "姓名"
- cellD := rowTitle.AddCell()
- cellD.Value = "手机号"
- }
- cellA := rowTitle.AddCell()
- cellA.Value = "文章标题"
- cellB := rowTitle.AddCell()
- cellB.Value = "文章类型"
- cellC := rowTitle.AddCell()
- cellC.Value = "标签"
- cellD := rowTitle.AddCell()
- cellD.Value = "发布时间"
- cellE := rowTitle.AddCell()
- cellE.Value = "阅读时间"
- cellF := rowTitle.AddCell()
- cellF.Value = "阅读时长"
- cellG := rowTitle.AddCell()
- cellG.Value = "阅读来源"
- for _, item := range list {
- row := sheet.AddRow()
- if excelType > 2 {
- cellADatay := row.AddCell()
- cellADatay.Value = item.CompanyName
- cellBDatay := row.AddCell()
- cellBDatay.Value = item.SellerName
- }
- if excelType > 1 {
- cellCData := row.AddCell()
- cellCData.Value = item.RealName
- cellDData := row.AddCell()
- cellDData.Value = item.Mobile
- }
- cellAData := row.AddCell()
- cellAData.Value = item.Title
- cellBData := row.AddCell()
- if item.SpecialType == 1 {
- cellBData.Value = "笔记"
- } else {
- cellBData.Value = "观点"
- }
- cellCData := row.AddCell()
- cellCData.Value = item.IndustryName
- cellDData := row.AddCell()
- cellDData.Value = item.PublishDate
- cellEData := row.AddCell()
- cellEData.Value = item.CreateTime
- cellFData := row.AddCell()
- cellFData.Value = item.StopTime
- cellGData := row.AddCell()
- cellGData.Value = cygxService.GetArticleSourcePlatformText(item.RegisterPlatform)
- }
- err = xlsxFile.Save(downLoadnFilePath)
- if err != nil {
- br.Msg = "保存文件失败"
- br.ErrMsg = "保存文件失败"
- return
- }
- randStr := time.Now().Format(utils.FormatDateTimeUnSpace)
- downloadFileName := "客户参会记录导出数据_" + randStr + ".xlsx"
- this.Ctx.Output.Download(downLoadnFilePath, downloadFileName)
- defer func() {
- os.Remove(downLoadnFilePath)
- }()
- br.Ret = 200
- br.Success = true
- br.Msg = "导出成功"
- }
|