guangzuan.go 264 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946
  1. package models
  2. import (
  3. "encoding/hex"
  4. "fmt"
  5. "mtp2_if/db"
  6. "mtp2_if/mtpcache"
  7. "mtp2_if/utils"
  8. "strconv"
  9. "strings"
  10. "time"
  11. )
  12. // Warehouseinfo 仓库信息表
  13. type GZWarehouseinfo struct {
  14. AUTOID int64 `json:"autoid" xorm:"AUTOID"` // 自增ID
  15. WAREHOUSECODE string `json:"warehousecode" xorm:"WAREHOUSECODE"` // 仓库代码
  16. WAREHOUSENAME string `json:"warehousename" xorm:"WAREHOUSENAME"` // 仓库名称
  17. WAREHOUSETYPE int32 `json:"warehousetype" xorm:"WAREHOUSETYPE"` // 仓库类型 - 1 厂库 2 自有库 3 合作库
  18. AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 所属机构
  19. WAREHOUSESTATUS int32 `json:"warehousestatus" xorm:"WAREHOUSESTATUS"` // 仓库状态 - 1:正常 2:注销 3:待审核 4:审核拒绝
  20. COUNTRYID int32 `json:"countryid" xorm:"COUNTRYID"` // 国家
  21. PROVINCEID int32 `json:"provinceid" xorm:"PROVINCEID"` // 省
  22. CITYID int32 `json:"cityid" xorm:"CITYID"` // 市
  23. DISTRICTID int32 `json:"districtid" xorm:"DISTRICTID"` // 区
  24. ADDRESS string `json:"address" xorm:"ADDRESS"` // 详细地址
  25. REMARK string `json:"remark" xorm:"REMARK"` // 审核备注
  26. CREATETIME string `json:"createtime" xorm:"CREATETIME"` // 创建时间
  27. HASVIDEO int32 `json:"hasvideo" xorm:"HASVIDEO"` // 是否有视频 - 0:无 1:有
  28. VIDEOURL string `json:"videourl" xorm:"VIDEOURL"` // 视频地址
  29. CONTACTNAME string `json:"contactname" xorm:"CONTACTNAME"` // 联系人
  30. CONTACTNUM string `json:"contactnum" xorm:"CONTACTNUM"` // 联系电话
  31. COUNTRYNAME string `json:"countryname"` // 国家名称
  32. CITYNAME string `json:"cityname"` // 城市名称
  33. PROVINCENAME string `json:"provincename"` // 省名称
  34. DISTRICTNAME string `json:"districtname"` // 地区名称
  35. PageEx `xorm:"extends"` // 页码信息
  36. UserId int64 `json:"-" form:"userid" binding:"required"` // 用户ID
  37. Status string `json:"-" form:"status"` // 仓库状态(可多项,逗号隔开) 1:正常 2:注销 3:待审核 4:审核拒绝
  38. IsIncludeExchange bool `json:"-" form:"isincludeexchange"` // 是返回交易所仓库
  39. }
  40. // TableName is WAREHOUSEINFO
  41. func (r *GZWarehouseinfo) TableName() string {
  42. return "WAREHOUSEINFO"
  43. }
  44. func (r *GZWarehouseinfo) calc() {
  45. r.COUNTRYNAME = mtpcache.GetDivisionName(r.COUNTRYID)
  46. r.CITYNAME = mtpcache.GetDivisionName(r.CITYID)
  47. r.PROVINCENAME = mtpcache.GetDivisionName(r.PROVINCEID)
  48. r.DISTRICTNAME = mtpcache.GetDivisionName(r.DISTRICTID)
  49. }
  50. func (r *GZWarehouseinfo) buildSql() string {
  51. var sqlId utils.SQLVal = `SELECT t.AUTOID,
  52. t.WAREHOUSECODE,
  53. t.WAREHOUSENAME,
  54. t.WAREHOUSETYPE,
  55. t.AREAUSERID,
  56. t.WAREHOUSESTATUS,
  57. t.COUNTRYID,
  58. t.PROVINCEID,
  59. t.CITYID,
  60. t.DISTRICTID,
  61. t.ADDRESS,
  62. t.REMARK,
  63. to_char(t.CREATETIME,'yyyy-mm-dd hh24:mi:ss') CREATETIME,
  64. t.HASVIDEO,
  65. t.VIDEOURL,
  66. t.CONTACTNAME,
  67. t.CONTACTNUM
  68. FROM WAREHOUSEINFO t
  69. WHERE (t.AREAUSERID = %v) `
  70. sqlId.FormatParam(r.UserId)
  71. if r.IsIncludeExchange {
  72. sqlId.Join(" OR (t.AREAUSERID IS NULL) OR (t.AREAUSERID = 1)")
  73. }
  74. if len(r.Status) > 0 {
  75. sqlId.JoinFormat(" and (t.WAREHOUSESTATUS in (%v))", r.Status)
  76. }
  77. sqlId.Page(r.Page, r.PageSize)
  78. return sqlId.String()
  79. }
  80. // GetDataByPage 获取团队订单
  81. func (r *GZWarehouseinfo) GetDataByPage() (interface{}, error, int, int, int) {
  82. sData := make([]GZWarehouseinfo, 0)
  83. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  84. total := 0
  85. for i := range sData {
  86. sData[i].calc()
  87. total = sData[i].Total
  88. }
  89. return sData, err, r.Page, r.PageSize, total
  90. }
  91. // MyWRPosition 我的库存
  92. type MyWRPosition struct {
  93. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  94. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 账户名称(机构名称)
  95. SELLMOBILE string `json:"sellmobile" xorm:"SELLMOBILE"` // 手机号码(加密存储)
  96. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  97. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  98. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  99. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  100. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  101. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  102. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  103. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  104. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  105. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  106. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  107. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  108. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  109. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  110. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  111. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  112. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  113. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  114. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  115. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  116. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  117. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  118. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  119. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  120. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  121. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  122. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  123. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  124. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  125. WAREHOUSEID int64 `json:"warehouseid" xorm:"WAREHOUSEID" form:"warehouseid"` // 仓库ID
  126. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` // 市场价
  127. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` // 商品照片(相对地址)
  128. WRPATH string `json:"wrpath" xorm:"WRPATH"` // 仓单扫描件(相对地址)
  129. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  130. PRICE float64 `json:"price" xorm:"PRICE"` // 总价(价格) - 类型:1,2,3,4,5
  131. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  132. WEIGHTAVG float64 `json:"weightavg" xorm:"WEIGHTAVG"` // 平均单颗重量 - 类型:1,3
  133. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价 - 类型:1,2,3,5
  134. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  135. ZSCOLORTYPE1 int32 `json:"zscolortype1" xorm:"ZSCOLORTYPE1"` // 颜色1 - 枚举”ZSColorType“ - 类型:1,2,3,4
  136. ZSCOLORTYPE2 int32 `json:"zscolortype2" xorm:"ZSCOLORTYPE2"` // 颜色2 - 枚举”ZSColorType“ - 类型:1,3
  137. ZSCLARITYTYPE1 int32 `json:"zsclaritytype1" xorm:"ZSCLARITYTYPE1"` // 净度1 - 枚举”ZSClarityType“ - 类型:1,2,3,4,5
  138. ZSCLARITYTYPE2 int32 `json:"zsclaritytype2" xorm:"ZSCLARITYTYPE2"` // 净度2 - 枚举”ZSClarityType“ - 类型:1,3
  139. ZSCUTTYPE1 int32 `json:"zscuttype1" xorm:"ZSCUTTYPE1"` // 切工1 - 枚举”ZSCutType“ - 类型:1,2,4,5
  140. ZSCUTTYPE2 int32 `json:"zscuttype2" xorm:"ZSCUTTYPE2"` // 切工2 - 枚举”ZSCutType“ - 类型:1
  141. ZSSYMMETRYTYPE1 int32 `json:"zssymmetrytype1" xorm:"ZSSYMMETRYTYPE1"` // 对称度1 - 枚举”ZSSymmetryType“ - 类型:1,2,4,5
  142. ZSSYMMETRYTYPE2 int32 `json:"zssymmetrytype2" xorm:"ZSSYMMETRYTYPE2"` // 对称度2 - 枚举”ZSSymmetryType“ - 类型:1
  143. ZSPOLISHTYPE1 int32 `json:"zspolishtype1" xorm:"ZSPOLISHTYPE1"` // 抛光度1 - 枚举”ZSPolishType“ - 类型:1,2,4,5
  144. ZSPOLISHTYPE2 int32 `json:"zspolishtype2" xorm:"ZSPOLISHTYPE2"` // 抛光度2 - 枚举”ZSPolishType“ - 类型:1
  145. ZSFLUORESCENCETYPE1 int32 `json:"zsfluorescencetype1" xorm:"ZSFLUORESCENCETYPE1"` // 荧光1 - 枚举”ZSFluorescenceType“ - 类型:1,2,3,4,5
  146. ZSFLUORESCENCETYPE2 int32 `json:"zsfluorescencetype2" xorm:"ZSFLUORESCENCETYPE2"` // 荧光2 - 枚举”ZSFluorescenceType” - 类型:1,3
  147. SIZE1 string `json:"size1" xorm:"SIZE1"` // 尺寸1 - 类型:2,4,5
  148. SIZE2 string `json:"size2" xorm:"SIZE2"` // 尺寸2 - 类型:2,4,5
  149. SIZE3 string `json:"size3" xorm:"SIZE3"` // 尺寸3 - 类型:2,4,5
  150. ZSCERTTYPE int32 `json:"zscerttype" xorm:"ZSCERTTYPE"` // 证书类型 - 枚举”ZSCertType“ - 类型:2,4,5
  151. CERNO string `json:"cerno" xorm:"CERNO"` // 证书编号 - 类型:2,4,5
  152. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型范围 - 枚举“ZSCrystalType“ - 类型:3, 多个,逗号分隔
  153. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` // 金伯利证书编号 - 类型:3
  154. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地 - 类型:3
  155. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` // 金伯利证书重量 - 类型:3
  156. KPPATH string `json:"kppath" xorm:"KPPATH"` // 金伯利证书图片(相对地址) - 类型:3
  157. ZSSTYLETYPE int32 `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 类型:4
  158. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` // 配石描述 - 类型:4
  159. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` // 镶嵌材料 - 类型:4
  160. ZSCZCOLOR1TYPE int32 `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1 - 枚举”ZSCZColor1Type“ - 类型:5
  161. ZSCZCOLOR2TYPE int32 `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2 - 枚举”ZSCZColor2Type“ - 类型:5
  162. ZSCZCOLOR3TYPE int32 `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3 - 枚举”ZSCZColor3Type“ - 类型:5
  163. ISVALID int32 `json:"isvalid" xorm:"ISVALID"` // 是否有效 - 0:无效 1:有效
  164. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  165. QTY int64 `json:"-" xorm:"QTY"`
  166. FREEZERQTY int64 `json:"-" xorm:"FREEZERQTY"`
  167. FTOTALQTY float64 `json:"ftotalqty"` // 库存数量:WRPosition表:TOTALQTY /100 , 保留两位小数
  168. FFREEZEQTY float64 `json:"ffreezeqty"` // 冻结数量:WRPosition表:FREEZEQTY/100 , 保留两位小数
  169. LADINGBILLID string `json:"ladingbillid" xorm:"LADINGBILLID"` // 提单ID(208+Unix秒时间戳(10位)+xxxxxx)
  170. SUBNUM int32 `json:"subnum" xorm:"SUBNUM"` // 提单子单号
  171. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  172. WRTRADEORDERSTATUS int32 `json:"wrtradeorderstatus" xorm:"WRTRADEORDERSTATUS"` // 委托状态 - 参考枚举'WRTradeOrderStatus' - 1:委托请求 2:待冻结 3:委托成功 4:委托失败 5:配对成功 6:已撤 7:部成 8:已成 9:部成部撤 10:成交失败 11:委托拒绝 12:经过摘牌(先摘后挂专用) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用) 17:冻结PD成功 18:冻结PD失败 19:冻结能量成功 20:冻结能量失败 21:预约已报价 22:过期未付 23:优惠券处理中 24:仓单生成失败 25:首付扣款失败 26:履约失败 27:撤单解冻贷款失败WRTrade_OrderDetail、
  173. PageEx `xorm:"extends"` // 页码信息
  174. WRUSERID int64 `json:"wruserid" xorm:"WRUSERID" form:"wruserid" binding:"required"` // 登录用户ID
  175. MARKETFLAG int `json:"marketflag" form:"marketflag"` // 是否上架,1-已上架 2-未上架 3-履约中
  176. }
  177. func (r *MyWRPosition) calc() {
  178. if r.QTY != 0 {
  179. a := SFLOAT64(float64(r.QTY) / 100)
  180. a.Round(2)
  181. r.FTOTALQTY = a.Float64()
  182. }
  183. if r.FREEZERQTY != 0 {
  184. a := SFLOAT64(float64(r.FREEZERQTY) / 100)
  185. a.Round(2)
  186. r.FFREEZEQTY = a.Float64()
  187. }
  188. if r.FREEZERQTY > 0 {
  189. r.MARKETFLAG = 1
  190. } else {
  191. r.MARKETFLAG = 2
  192. }
  193. // 8:已成 时为 “履约中”,不能上架\下架
  194. if r.WRTRADEORDERSTATUS == 8 {
  195. r.MARKETFLAG = 3
  196. }
  197. }
  198. func (r *MyWRPosition) buildSql() string {
  199. var sqlId utils.SQLVal = `
  200. SELECT
  201. t.QTY,
  202. t.FREEZERQTY,
  203. od.WRTRADEORDERSTATUS,
  204. to_char(t.LADINGBILLID) LADINGBILLID,
  205. t.SUBNUM,
  206. to_char(od.WRTRADEORDERID) WRTRADEORDERID1,
  207. wr.*,
  208. CASE WHEN
  209. wr.SIZE1 IS NOT NULL AND wr.SIZE2 IS NOT NULL AND wr.SIZE2 IS NOT NULL THEN wr.SIZE1 || '*' || wr.SIZE2 || '*' || wr.SIZE3
  210. ELSE wr.SIZE1
  211. END AS SIZEDISPLAY
  212. FROM WRHoldLB t
  213. INNER JOIN WRFactorType ft ON t.wrfactortypeid = ft.wrfactortypeid
  214. INNER JOIN View_GZ_WRStandard_Ex_Query wr ON ft.wrstandardid = wr.wrstandardid
  215. LEFT JOIN WRTrade_OrderDetail od ON od.wrstandardid = wr.wrstandardid and od.wrtradeorderstatus in (3,7,8) and od.userid = %v
  216. WHERE t.qty > 0 AND t.userid = %v
  217. `
  218. sqlId.FormatParam(r.WRUSERID, r.WRUSERID)
  219. if r.ZSCATEGORYS != "" {
  220. sqlId.JoinFormat(" AND wr.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  221. }
  222. sqlId.AndLike("wr.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  223. sqlId.AndEx("wr.WAREHOUSEID", r.WAREHOUSEID, r.WAREHOUSEID > 0)
  224. sqlId.Page(r.Page, r.PageSize)
  225. return sqlId.String()
  226. }
  227. func (r *MyWRPosition) GetDataByPage() (interface{}, error, int, int, int) {
  228. sData := make([]MyWRPosition, 0)
  229. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  230. total := 0
  231. for i := range sData {
  232. sData[i].calc()
  233. total = sData[i].Total
  234. }
  235. return sData, err, r.Page, r.PageSize, total
  236. }
  237. // BuyOrder 求购大厅委托单
  238. type BuyOrder struct {
  239. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  240. ZSTABLEDISPLAY string `json:"zstabledisplay" xorm:"ZSTABLEDISPLAY"` // 求购信息
  241. BUYUSERNAME string `json:"buyusername" xorm:"BUYUSERNAME" form:"buyusername"` // 买方
  242. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  243. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  244. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  245. ZSCOLORTYPEDISPLAY string `json:"zscolortypedisplay" xorm:"ZSCOLORTYPEDISPLAY"` //
  246. ZSCLARITYTYPEDISPLAY string `json:"zsclaritytypedisplay" xorm:"ZSCLARITYTYPEDISPLAY"` //
  247. ZSCUTTYPEDISPLAY string `json:"zscuttypedisplay" xorm:"ZSCUTTYPEDISPLAY"` //
  248. ZSSYMMETRYTYPEDISPLAY string `json:"zssymmetrytypedisplay" xorm:"ZSSYMMETRYTYPEDISPLAY"` //
  249. ZSPOLISHTYPEDISPLAY string `json:"zspolishtypedisplay" xorm:"ZSPOLISHTYPEDISPLAY"` //
  250. ZSFLUORESCENCETYPEDISPLAY string `json:"zsfluorescencetypedisplay" xorm:"ZSFLUORESCENCETYPEDISPLAY"` //
  251. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  252. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  253. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  254. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  255. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  256. WAREHOUSEINFOSDISPLAY string `json:"warehouseinfosdisplay" xorm:"WAREHOUSEINFOSDISPLAY"` //
  257. ZSSIZEDISPLAY string `json:"zssizedisplay" xorm:"ZSSIZEDISPLAY"` // 颜色
  258. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // [委托单号]买委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  259. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  260. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  261. WRTRADEORDERSTATUS int32 `json:"wrtradeorderstatus" xorm:"WRTRADEORDERSTATUS"` // 委托状态 - 参考枚举'WRTradeOrderStatus' - 1:委托请求 2:待冻结 3:委托成功 4:委托失败 5:配对成功 6:已撤 7:部成 8:已成 9:部成部撤 10:成交失败 11:委托拒绝 12:经过摘牌(先摘后挂专用) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用) 17:冻结PD成功 18:冻结PD失败 19:冻结能量成功 20:冻结能量失败 21:预约已报价 22:过期未付 23:优惠券处理中 24:仓单生成失败 25:首付扣款失败 26:履约失败 27:撤单解冻贷款失败WRTrade_OrderDetail、
  262. VALIDTIME string `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  263. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME"` // 委托时间
  264. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  265. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  266. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  267. ZSCURRENCYTYPE string `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 多个, 逗号分隔
  268. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 多个, 逗号分隔
  269. ZSCOLORTYPE string `json:"zscolortype" xorm:"ZSCOLORTYPE"` // 颜色 - 两个, 逗号分隔
  270. ZSCLARITYTYPE string `json:"zsclaritytype" xorm:"ZSCLARITYTYPE"` // 净度 - 两个, 逗号分隔
  271. ZSCUTTYPE string `json:"zscuttype" xorm:"ZSCUTTYPE"` // 切工 - 两个, 逗号分隔
  272. ZSSYMMETRYTYPE string `json:"zssymmetrytype" xorm:"ZSSYMMETRYTYPE"` // 对称度 - 两个, 逗号分隔
  273. ZSPOLISHTYPE string `json:"zspolishtype" xorm:"ZSPOLISHTYPE"` // 抛光度 - 两个, 逗号分隔
  274. ZSFLUORESCENCETYPE string `json:"zsfluorescencetype" xorm:"ZSFLUORESCENCETYPE"` // 荧光 - 多个, 逗号分隔
  275. ZSSIZE string `json:"zssize" xorm:"ZSSIZE"` // 尺寸 - 两个小数, 逗号分隔
  276. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型 - 多个,逗号分隔
  277. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地
  278. ZSSTYLETYPE string `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 多个, 逗号分隔
  279. ZSCZCOLOR1TYPE string `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1, 逗号分隔
  280. ZSCZCOLOR2TYPE string `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2, 逗号分隔
  281. ZSCZCOLOR3TYPE string `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3, 逗号分隔
  282. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  283. WAREHOUSEIDS string `json:"warehouseids" xorm:"WAREHOUSEIDS"` // 仓库ID - 多个, 逗号分隔
  284. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  285. PageEx `xorm:"extends"` // 页码信息
  286. }
  287. func (r *BuyOrder) calc() {
  288. }
  289. func (r *BuyOrder) buildSql() string {
  290. var sqlId utils.SQLVal = `
  291. SELECT
  292. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  293. t.WRTRADEORDERSTATUS,
  294. to_char(t.VALIDTIME, 'yyyy-mm-dd') VALIDTIME,
  295. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME,
  296. t.PERFORMANCETEMPLATEID,
  297. q.*
  298. FROM WRTrade_OrderDetail t
  299. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  300. WHERE t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  301. `
  302. if r.ZSCATEGORYS != "" {
  303. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  304. }
  305. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  306. sqlId.AndEx("q.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  307. sqlId.AndLike("q.BUYUSERNAME", r.BUYUSERNAME)
  308. sqlId.Page(r.Page, r.PageSize)
  309. return sqlId.String()
  310. }
  311. func (r *BuyOrder) GetDataByPage() (interface{}, error, int, int, int) {
  312. sData := make([]BuyOrder, 0)
  313. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  314. total := 0
  315. for i := range sData {
  316. sData[i].calc()
  317. total = sData[i].Total
  318. }
  319. return sData, err, r.Page, r.PageSize, total
  320. }
  321. // SellOrderQueryReq 钻石搜索入参
  322. type SellOrderQueryReq struct {
  323. ZSCATEGORY int32 `json:"zscategory" binding:"required"` // 钻石分类 - 枚举”ZSCategory“
  324. ZSCURRENCYTYPE []string `json:"zscurrencytype"` // 货币类型 - 枚举“ZSCurrencyType”
  325. WAREHOUSEID int64 `json:"warehouseid"` // 仓库ID
  326. WEIGHT1 float64 `json:"weight1"` // 总重量(克拉重量)-从
  327. WEIGHT2 float64 `json:"weight2"` // 总重量(克拉重量)-至
  328. WEIGHTAVG1 float64 `json:"weightavg1"` // 平均单颗重量-从
  329. WEIGHTAVG2 float64 `json:"weightavg2"` // 平均单颗重量-至
  330. ZSSHAPETYPE []string `json:"zsshapetype"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  331. ZSCOLORTYPE []int32 `json:"zscolortype"` // 颜色
  332. ZSCLARITYTYPE []int32 `json:"zsclaritytype"` // 净度
  333. ZSCUTTYPE []int32 `json:"zscuttype"` // 切工
  334. ZSSYMMETRYTYPE []int32 `json:"zssymmetrytype"` // 对称度
  335. ZSPOLISHTYPE []int32 `json:"zspolishtype"` // 抛光度
  336. ZSFLUORESCENCETYPE []int32 `json:"zsfluorescencetype"` // 荧光
  337. ZSCERTTYPE []string `json:"zscerttype"` // 证书类型
  338. ORIGIN string `json:"origin"` // 原产地
  339. ZSSTYLETYPE []string `json:"zsstyletype"` // 款式
  340. ZSCZCOLOR1TYPE []string `json:"zsczcolor1type"` // 彩钻颜色1
  341. PageJosn // 分页
  342. }
  343. // SellOrder 出售大厅委托单
  344. type SellOrder struct {
  345. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  346. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME" form:"sellusername"` // 卖方(查询字段-模糊查询)
  347. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` // 钻石分类 - 描述
  348. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  349. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  350. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  351. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  352. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  353. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  354. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  355. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  356. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  357. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  358. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  359. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  360. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  361. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  362. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  363. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  364. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  365. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  366. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  367. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  368. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  369. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  370. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` //
  371. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` //
  372. WRPATH string `json:"wrpath" xorm:"WRPATH"` //
  373. REMARK string `json:"remark" xorm:"REMARK"` //
  374. PRICEPER string `json:"priceper" xorm:"PRICEPER"` //
  375. SIZE1 string `json:"size1" xorm:"SIZE1"` //
  376. SIZE2 string `json:"size2" xorm:"SIZE2"` //
  377. SIZE3 string `json:"size3" xorm:"SIZE3"` //
  378. CERNO string `json:"cerno" xorm:"CERNO"` //
  379. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` //
  380. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` //
  381. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` //
  382. KPPATH string `json:"kppath" xorm:"KPPATH"` //
  383. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` // 配石描述
  384. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` // 镶嵌材料
  385. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  386. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  387. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  388. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  389. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  390. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  391. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  392. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  393. IsQueryDiamond bool // 是否钻石查询
  394. ZSCURRENCYTYPE_S []string `json:"-"` // 货币类型 - 枚举“ZSCurrencyType”
  395. WAREHOUSEID int64 `json:"-"` // 仓库ID
  396. WEIGHT float64 `json:"-"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  397. WEIGHT_END float64 `json:"-"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  398. WEIGHTAVG float64 `json:"-"` // 平均单颗重量 - 类型:1,3
  399. WEIGHTAVG_END float64 `json:"-"` // 平均单颗重量 - 类型:1,3
  400. ZSSHAPETYPE []string `json:"-"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  401. ZSCOLORTYPE1 int32 `json:"-"` // 颜色1 - 枚举”ZSColorType“ - 类型:1,2,3,4
  402. ZSCOLORTYPE2 int32 `json:"-"` // 颜色2 - 枚举”ZSColorType“ - 类型:1,3
  403. ZSCOLORTYPE []int32 `json:"-"` // 颜色
  404. ZSCLARITYTYPE1 int32 `json:"-"` // 净度1 - 枚举”ZSClarityType“ - 类型:1,2,3,4,5
  405. ZSCLARITYTYPE2 int32 `json:"-"` // 净度2 - 枚举”ZSClarityType“ - 类型:1,3
  406. ZSCLARITYTYPE []int32 `json:"-"` // 净度
  407. ZSCUTTYPE1 int32 `json:"-"` // 切工1 - 枚举”ZSCutType“ - 类型:1,2,4,5
  408. ZSCUTTYPE2 int32 `json:"-"` // 切工2 - 枚举”ZSCutType“ - 类型:1
  409. ZSCUTTYPE []int32 `json:"-"` // 切工
  410. ZSSYMMETRYTYPE1 int32 `json:"-"` // 对称度1 - 枚举”ZSSymmetryType“ - 类型:1,2,4,5
  411. ZSSYMMETRYTYPE2 int32 `json:"-"` // 对称度2 - 枚举”ZSSymmetryType“ - 类型:1
  412. ZSSYMMETRYTYPE []int32 `json:"-"` // 对称度
  413. ZSPOLISHTYPE1 int32 `json:"-"` // 抛光度1 - 枚举”ZSPolishType“ - 类型:1,2,4,5
  414. ZSPOLISHTYPE2 int32 `json:"-"` // 抛光度2 - 枚举”ZSPolishType“ - 类型:1
  415. ZSPOLISHTYPE []int32 `json:"-"` // 抛光度
  416. ZSFLUORESCENCETYPE1 int32 `json:"-"` // 荧光1 - 枚举”ZSFluorescenceType“ - 类型:1,2,3,4,5
  417. ZSFLUORESCENCETYPE2 int32 `json:"-"` // 荧光2 - 枚举”ZSFluorescenceType” - 类型:1,3
  418. ZSFLUORESCENCETYPE []int32 `json:"-"` // 荧光
  419. ZSCERTTYPE []string `json:"-"` // 证书类型
  420. ORIGIN string `json:"-"` // 原产地 - 类型:3
  421. ZSSTYLETYPE []string `json:"-"` // 款式 - 类型:4
  422. ZSCZCOLOR1TYPE []string `json:"-" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1 - 枚举”ZSCZColor1Type“ - 类型:5
  423. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  424. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  425. WRTRADETYPE int32 `json:"wrtradetype" xorm:"WRTRADETYPE"` // 仓单贸易类型 - 1:挂牌 2:摘牌 3:提货卖(文化中国) 4:提货买(文化中国)
  426. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  427. RELATEDWRTRADEORDERID int64 `json:"relatedwrtradeorderid" xorm:"RELATEDWRTRADEORDERID"` // 关联委托单号(摘牌委托关联挂牌委托单ID)
  428. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  429. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账号
  430. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID/商品ID(77)
  431. ORDERQTY int64 `json:"-" xorm:"ORDERQTY"` // 委托数量
  432. TRADEQTY int64 `json:"-" xorm:"TRADEQTY"` // 成交数量
  433. CANCELQTY int64 `json:"cancelqty" xorm:"CANCELQTY"` // 撤销数量
  434. WRPRICETYPE int32 `json:"wrpricetype" xorm:"WRPRICETYPE"` // 价格方式 - 1:固定价 2-浮动价 - [挂牌]
  435. FIXEDPRICE float64 `json:"fixedprice" xorm:"FIXEDPRICE"` // [克拉单价]固定价格 - [挂牌]
  436. ISSPECIFIED int32 `json:"isspecified" xorm:"ISSPECIFIED"` // 是否指定对手 - 0:不指定 1:指定好友(贸易圈) 2:指定对手 - [挂牌]
  437. PRICEFACTOR float64 `json:"pricefactor" xorm:"PRICEFACTOR"` // 价格系数(浮动价时填写) - [挂牌]
  438. PRICEMOVE float64 `json:"pricemove" xorm:"PRICEMOVE"` // 升贴水(浮动价时填写) - [挂牌]
  439. FIRSTRATIO float64 `json:"firstratio" xorm:"FIRSTRATIO"` // 首付比率 - [挂牌时指定,摘牌时使用]
  440. WRTRANSFERUSERID int64 `json:"wrtransferuserid" xorm:"WRTRANSFERUSERID"` // 仓单受让用户 - [摘牌]
  441. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格 - [摘牌] (浮动价 ((商品1价格*商品1价格系数+升贴水)* 商品1重量系数 + 商品2价格*商品2价格系数+商品2升贴水)* 商品2重量系数 ...)* 委托单价格系数 + 委托单升贴水)
  442. FREEZEFIRSTAMOUNT float64 `json:"freezefirstamount" xorm:"FREEZEFIRSTAMOUNT"` // 冻结首付金额 - [摘牌]
  443. UNFREEZEFIRSTAMOUNT float64 `json:"unfreezefirstamount" xorm:"UNFREEZEFIRSTAMOUNT"` // 解冻首付金额 - [摘牌]
  444. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  445. VALIDTYPE int32 `json:"validtype" xorm:"VALIDTYPE"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效
  446. VALIDTIME time.Time `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  447. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME1"` // 委托时间
  448. CANCELTIME time.Time `json:"canceltime" xorm:"CANCELTIME"` // 撤销时间
  449. WRTRADEORDERSTATUS int32 `json:"wrtradeorderstatus" xorm:"WRTRADEORDERSTATUS"` // 委托状态 - 参考枚举'WRTradeOrderStatus' - 1:委托请求 2:待冻结 3:委托成功 4:委托失败 5:配对成功 6:已撤 7:部成 8:已成 9:部成部撤 10:成交失败 11:委托拒绝 12:经过摘牌(先摘后挂专用) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用) 17:冻结PD成功 18:冻结PD失败 19:冻结能量成功 20:冻结能量失败 21:预约已报价 22:过期未付 23:优惠券处理中 24:仓单生成失败 25:首付扣款失败 26:履约失败 27:撤单解冻贷款失败
  450. CLIENTTICKET string `json:"-" xorm:"CLIENTTICKET"` // 客户端流水号
  451. ORDERSRC int32 `json:"-" xorm:"ORDERSRC"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结
  452. CLIENTTYPE int32 `json:"-" xorm:"CLIENTTYPE"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
  453. UUID string `json:"uuid" xorm:"UUID"` // 发起端唯一id
  454. CLIENTORDERTIME time.Time `json:"clientordertime" xorm:"CLIENTORDERTIME"` // 客户端委托时间
  455. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 错误代码
  456. OPERATORID int64 `json:"-" xorm:"OPERATORID"` // 操作员ID
  457. PRICEDISPLAYMODE int32 `json:"-" xorm:"PRICEDISPLAYMODE"` // 浮动价显示方式 - 1:合并显示 2:分开显示1: 价格显示一个值 :(商品拟合价*价格系统+升贴水)2: 价格显示两个值:(商品拟合价*价格系统) 、 升贴水
  458. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金
  459. UNFREEZEMARGIN float64 `json:"unfreezemargin" xorm:"UNFREEZEMARGIN"` // 解冻保证金
  460. FREEZECHARGE float64 `json:"freezecharge" xorm:"FREEZECHARGE"` // 冻结手续费
  461. UNFREEZECHARGE float64 `json:"unfreezecharge" xorm:"UNFREEZECHARGE"` // 解冻手续费
  462. MARGINALGORITHM int32 `json:"marginalgorithm" xorm:"MARGINALGORITHM"` // 保证金方式 - 1:比率 2:固定
  463. MARGINVALUE float64 `json:"marginvalue" xorm:"MARGINVALUE"` // 保证金设置值
  464. CHARGEALGORITHM int32 `json:"chargealgorithm" xorm:"CHARGEALGORITHM"` // 手续费收取方式 1:比率 2:固定
  465. CHARGEALGORITHMVALUE float64 `json:"chargealgorithmvalue" xorm:"CHARGEALGORITHMVALUE"` // 手续费设置值(交易所部分)
  466. CHARGEALGORITHMVALUE2 float64 `json:"chargealgorithmvalue2" xorm:"CHARGEALGORITHMVALUE2"` // 手续费设置值(会员部分)
  467. CANBARGAIN int32 `json:"canbargain" xorm:"CANBARGAIN"` // 是否可议价 - 0:不可 1:可
  468. WRBARGAINID int64 `json:"wrbargainid" xorm:"WRBARGAINID"` // 议价申请单ID
  469. ATTACHMENT1 string `json:"attachment1" xorm:"ATTACHMENT1"` // 附件1
  470. ATTACHMENT2 string `json:"attachment2" xorm:"ATTACHMENT2"` // 附件2
  471. APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请单ID
  472. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率[67]
  473. ORDERAMOUNT float64 `json:"orderamount" xorm:"ORDERAMOUNT"` // 挂牌金额[账户] [67]= OrderQty * FixedPrice * ExchangeRate /100
  474. TOTALQTY float64 `json:"totalqty" xorm:"TOTALQTY"` // 总重量
  475. REMAINQTY float64 `json:"remainqty" xorm:"REMAINQTY"` // 剩余重量
  476. PageEx `xorm:"extends"` // 页码信息
  477. }
  478. func (r *SellOrder) calc() {
  479. }
  480. // buildSql 出售大厅
  481. func (r *SellOrder) buildSql() string {
  482. var sqlId utils.SQLVal = `
  483. SELECT
  484. (t.ORDERQTY / 100) TOTALQTY,
  485. ((t.ORDERQTY - t.TRADEQTY) / 100) REMAINQTY,
  486. q.ZSCATEGORYDISPLAY,
  487. q.SELLUSERNAME,
  488. q.ZSCATEGORY,
  489. q.ZSCURRENCYTYPE,
  490. q.GOODSNO,
  491. q.ZSCURRENCYTYPEDISPLAY ,
  492. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  493. q.WAREHOUSENAMEDISPLAY ,
  494. q.ZSSHAPETYPEDISPLAY ,
  495. q.ZSCOLORTYPE1DISPLAY ,
  496. q.ZSCOLORTYPE2DISPLAY ,
  497. q.ZSCLARITYTYPE1DISPLAY ,
  498. q.ZSCLARITYTYPE2DISPLAY ,
  499. q.ZSCUTTYPE1DISPLAY ,
  500. q.ZSCUTTYPE2DISPLAY ,
  501. q.ZSSYMMETRYTYPE1DISPLAY ,
  502. q.ZSSYMMETRYTYPE2DISPLAY ,
  503. q.ZSPOLISHTYPE1DISPLAY ,
  504. q.ZSPOLISHTYPE2DISPLAY ,
  505. q.ZSFLUORESCENCETYPE1DISPLAY,
  506. q.ZSFLUORESCENCETYPE2DISPLAY,
  507. q.ZSCERTTYPEDISPLAY ,
  508. q.ZSCRYSTALTYPEDISPLAY ,
  509. q.ZSSTYLETYPEDISPLAY ,
  510. q.ZSCZCOLOR1TYPEDISPLAY ,
  511. q.ZSCZCOLOR2TYPEDISPLAY ,
  512. q.ZSCZCOLOR3TYPEDISPLAY ,
  513. q.MARKETPRICE ,
  514. q.IMAGEPATH ,
  515. q.WRPATH ,
  516. q.REMARK ,
  517. q.PRICEPER ,
  518. q.SIZE1 ,
  519. q.SIZE2 ,
  520. q.SIZE3 ,
  521. q.CERNO ,
  522. q.ZSCRYSTALTYPE ,
  523. q.CPCERTNO ,
  524. q.KPWEIGHT ,
  525. q.KPPATH ,
  526. q.STONEDESC ,
  527. q.SETTINGMATERIAL ,
  528. q.PRICE,
  529. CASE WHEN
  530. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  531. ELSE q.SIZE1
  532. END AS SIZEDISPLAY,
  533. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME1,
  534. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  535. t.WRTRADEORDERID ,
  536. t.TRADEDATE ,
  537. t.WRTRADETYPE ,
  538. t.BUYORSELL ,
  539. t.RELATEDWRTRADEORDERID,
  540. t.MARKETID ,
  541. t.ACCOUNTID ,
  542. t.WRFACTORTYPEID ,
  543. t.ORDERQTY ,
  544. t.TRADEQTY ,
  545. t.CANCELQTY ,
  546. t.WRPRICETYPE ,
  547. t.FIXEDPRICE ,
  548. t.ISSPECIFIED ,
  549. t.PRICEFACTOR ,
  550. t.PRICEMOVE ,
  551. t.FIRSTRATIO ,
  552. t.WRTRANSFERUSERID ,
  553. t.TRADEPRICE ,
  554. t.FREEZEFIRSTAMOUNT ,
  555. t.UNFREEZEFIRSTAMOUNT ,
  556. t.PERFORMANCETEMPLATEID,
  557. t.VALIDTYPE ,
  558. t.VALIDTIME ,
  559. t.ORDERTIME ,
  560. t.CANCELTIME ,
  561. t.WRTRADEORDERSTATUS ,
  562. t.CLIENTTICKET ,
  563. t.ORDERSRC ,
  564. t.CLIENTTYPE ,
  565. t.UUID ,
  566. t.CLIENTORDERTIME ,
  567. t.RETCODE ,
  568. t.OPERATORID ,
  569. t.PRICEDISPLAYMODE ,
  570. t.FREEZEMARGIN ,
  571. t.UNFREEZEMARGIN ,
  572. t.FREEZECHARGE ,
  573. t.UNFREEZECHARGE ,
  574. t.MARGINALGORITHM ,
  575. t.MARGINVALUE ,
  576. t.CHARGEALGORITHM ,
  577. t.CHARGEALGORITHMVALUE ,
  578. t.CHARGEALGORITHMVALUE2,
  579. t.CANBARGAIN ,
  580. t.WRBARGAINID ,
  581. t.ATTACHMENT1 ,
  582. t.ATTACHMENT2 ,
  583. t.APPLYID ,
  584. t.EXCHANGERATE ,
  585. t.ORDERAMOUNT ,
  586. t.USERID
  587. FROM WRTrade_OrderDetail t
  588. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  589. WHERE t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  590. `
  591. if r.ZSCATEGORYS != "" {
  592. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  593. }
  594. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  595. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  596. sqlId.AndLike("q.SELLUSERNAME", r.SELLUSERNAME)
  597. sqlId.OrderByDesc("t.WRTRADEORDERID")
  598. sqlId.Page(r.Page, r.PageSize)
  599. return sqlId.String()
  600. }
  601. // buildQueryDiamond 钻石搜索
  602. func (r *SellOrder) buildQueryDiamond() string {
  603. var sqlId utils.SQLVal = `
  604. SELECT
  605. (t.ORDERQTY / 100) TOTALQTY,
  606. ((t.ORDERQTY - t.TRADEQTY) / 100) REMAINQTY,
  607. q.ZSCATEGORYDISPLAY,
  608. q.SELLUSERNAME,
  609. q.ZSCATEGORY,
  610. q.ZSCURRENCYTYPE,
  611. q.GOODSNO,
  612. q.ZSCURRENCYTYPEDISPLAY ,
  613. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  614. q.WAREHOUSENAMEDISPLAY ,
  615. q.ZSSHAPETYPEDISPLAY ,
  616. q.ZSCOLORTYPE1DISPLAY ,
  617. q.ZSCOLORTYPE2DISPLAY ,
  618. q.ZSCLARITYTYPE1DISPLAY ,
  619. q.ZSCLARITYTYPE2DISPLAY ,
  620. q.ZSCUTTYPE1DISPLAY ,
  621. q.ZSCUTTYPE2DISPLAY ,
  622. q.ZSSYMMETRYTYPE1DISPLAY ,
  623. q.ZSSYMMETRYTYPE2DISPLAY ,
  624. q.ZSPOLISHTYPE1DISPLAY ,
  625. q.ZSPOLISHTYPE2DISPLAY ,
  626. q.ZSFLUORESCENCETYPE1DISPLAY,
  627. q.ZSFLUORESCENCETYPE2DISPLAY,
  628. q.ZSCERTTYPEDISPLAY ,
  629. q.ZSCRYSTALTYPEDISPLAY ,
  630. q.ZSSTYLETYPEDISPLAY ,
  631. q.ZSCZCOLOR1TYPEDISPLAY ,
  632. q.ZSCZCOLOR2TYPEDISPLAY ,
  633. q.ZSCZCOLOR3TYPEDISPLAY ,
  634. q.MARKETPRICE ,
  635. q.IMAGEPATH ,
  636. q.WRPATH ,
  637. q.REMARK ,
  638. q.PRICEPER ,
  639. q.SIZE1 ,
  640. q.SIZE2 ,
  641. q.SIZE3 ,
  642. q.CERNO ,
  643. q.ZSCRYSTALTYPE ,
  644. q.CPCERTNO ,
  645. q.KPWEIGHT ,
  646. q.KPPATH ,
  647. q.STONEDESC ,
  648. q.SETTINGMATERIAL ,
  649. q.PRICE,
  650. CASE WHEN
  651. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  652. ELSE q.SIZE1
  653. END AS SIZEDISPLAY,
  654. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME1,
  655. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  656. t.TRADEDATE ,
  657. t.WRTRADETYPE ,
  658. t.BUYORSELL ,
  659. t.RELATEDWRTRADEORDERID,
  660. t.MARKETID ,
  661. t.ACCOUNTID ,
  662. t.WRFACTORTYPEID ,
  663. t.ORDERQTY ,
  664. t.TRADEQTY ,
  665. t.CANCELQTY ,
  666. t.WRPRICETYPE ,
  667. t.FIXEDPRICE ,
  668. t.ISSPECIFIED ,
  669. t.PRICEFACTOR ,
  670. t.PRICEMOVE ,
  671. t.FIRSTRATIO ,
  672. t.WRTRANSFERUSERID ,
  673. t.TRADEPRICE ,
  674. t.FREEZEFIRSTAMOUNT ,
  675. t.UNFREEZEFIRSTAMOUNT ,
  676. t.PERFORMANCETEMPLATEID,
  677. t.VALIDTYPE ,
  678. t.VALIDTIME ,
  679. t.ORDERTIME ,
  680. t.CANCELTIME ,
  681. t.WRTRADEORDERSTATUS ,
  682. t.CLIENTTICKET ,
  683. t.ORDERSRC ,
  684. t.CLIENTTYPE ,
  685. t.UUID ,
  686. t.CLIENTORDERTIME ,
  687. t.RETCODE ,
  688. t.OPERATORID ,
  689. t.PRICEDISPLAYMODE ,
  690. t.FREEZEMARGIN ,
  691. t.UNFREEZEMARGIN ,
  692. t.FREEZECHARGE ,
  693. t.UNFREEZECHARGE ,
  694. t.MARGINALGORITHM ,
  695. t.MARGINVALUE ,
  696. t.CHARGEALGORITHM ,
  697. t.CHARGEALGORITHMVALUE ,
  698. t.CHARGEALGORITHMVALUE2,
  699. t.CANBARGAIN ,
  700. t.WRBARGAINID ,
  701. t.ATTACHMENT1 ,
  702. t.ATTACHMENT2 ,
  703. t.APPLYID ,
  704. t.EXCHANGERATE ,
  705. t.ORDERAMOUNT,
  706. t.USERID
  707. FROM WRTrade_OrderDetail t
  708. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  709. WHERE t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  710. `
  711. sqlId.And("q.ZSCATEGORY", r.ZSCATEGORY)
  712. if len(r.ZSCURRENCYTYPE_S) > 0 {
  713. sqlId.JoinFormat(" AND q.ZSCURRENCYTYPE IN (%v)", strings.Join(r.ZSCURRENCYTYPE_S, ","))
  714. }
  715. sqlId.AndEx("q.WAREHOUSEID", r.WAREHOUSEID, r.WAREHOUSEID > 0)
  716. utils.AndBetween(&sqlId, "q.WEIGHT", r.WEIGHT, r.WEIGHT_END)
  717. utils.AndBetween(&sqlId, "q.WEIGHTAVG", r.WEIGHTAVG, r.WEIGHTAVG_END)
  718. zsshapetype := make([]string, 0)
  719. for _, item := range r.ZSSHAPETYPE {
  720. zsshapetype = append(zsshapetype, fmt.Sprintf(",%v,", item))
  721. }
  722. sqlId.OrLikes("q.ZSSHAPETYPE", zsshapetype...)
  723. // for _, t := range r.ZSCOLORTYPE {
  724. // sqlId.LessOrEq("q.ZSCOLORTYPE1", t)
  725. // sqlId.BiggerOrEq("q.ZSCOLORTYPE2", t)
  726. // }
  727. if len(r.ZSCOLORTYPE) > 0 {
  728. zscolortype := make([]string, 0)
  729. for _, item := range r.ZSCOLORTYPE {
  730. zscolortype = append(zscolortype, strconv.Itoa(int(item)))
  731. }
  732. sqlId.JoinFormat(" AND q.ZSCOLORTYPE1 IN (%v)", strings.Join(zscolortype, ","))
  733. }
  734. // for _, t := range r.ZSCLARITYTYPE {
  735. // sqlId.LessOrEq("q.ZSCLARITYTYPE1", t)
  736. // sqlId.BiggerOrEq("q.ZSCLARITYTYPE2", t)
  737. // }
  738. if len(r.ZSCLARITYTYPE) > 0 {
  739. zsclaritytype := make([]string, 0)
  740. for _, item := range r.ZSCLARITYTYPE {
  741. zsclaritytype = append(zsclaritytype, strconv.Itoa(int(item)))
  742. }
  743. sqlId.JoinFormat(" AND q.ZSCLARITYTYPE1 IN (%v)", strings.Join(zsclaritytype, ","))
  744. }
  745. // for _, t := range r.ZSCUTTYPE {
  746. // sqlId.LessOrEq("q.ZSCUTTYPE1", t)
  747. // sqlId.BiggerOrEq("q.ZSCUTTYPE2", t)
  748. // }
  749. if len(r.ZSCUTTYPE) > 0 {
  750. zscuttype := make([]string, 0)
  751. for _, item := range r.ZSCUTTYPE {
  752. zscuttype = append(zscuttype, strconv.Itoa(int(item)))
  753. }
  754. sqlId.JoinFormat(" AND q.ZSCUTTYPE1 IN (%v)", strings.Join(zscuttype, ","))
  755. }
  756. // for _, t := range r.ZSSYMMETRYTYPE {
  757. // sqlId.LessOrEq("q.ZSSYMMETRYTYPE1", t)
  758. // sqlId.BiggerOrEq("q.ZSSYMMETRYTYPE2", t)
  759. // }
  760. if len(r.ZSSYMMETRYTYPE) > 0 {
  761. zssymmetrytype := make([]string, 0)
  762. for _, item := range r.ZSSYMMETRYTYPE {
  763. zssymmetrytype = append(zssymmetrytype, strconv.Itoa(int(item)))
  764. }
  765. sqlId.JoinFormat(" AND q.ZSSYMMETRYTYPE1 IN (%v)", strings.Join(zssymmetrytype, ","))
  766. }
  767. // for _, t := range r.ZSPOLISHTYPE {
  768. // sqlId.LessOrEq("q.ZSPOLISHTYPE1", t)
  769. // sqlId.BiggerOrEq("q.ZSPOLISHTYPE2", t)
  770. // }
  771. if len(r.ZSPOLISHTYPE) > 0 {
  772. zspolishtype := make([]string, 0)
  773. for _, item := range r.ZSPOLISHTYPE {
  774. zspolishtype = append(zspolishtype, strconv.Itoa(int(item)))
  775. }
  776. sqlId.JoinFormat(" AND q.ZSPOLISHTYPE1 IN (%v)", strings.Join(zspolishtype, ","))
  777. }
  778. // for _, t := range r.ZSFLUORESCENCETYPE {
  779. // sqlId.LessOrEq("q.ZSFLUORESCENCETYPE1", t)
  780. // sqlId.BiggerOrEq("q.ZSFLUORESCENCETYPE2", t)
  781. // }
  782. if len(r.ZSFLUORESCENCETYPE) > 0 {
  783. zsfluorescencetype := make([]string, 0)
  784. for _, item := range r.ZSFLUORESCENCETYPE {
  785. zsfluorescencetype = append(zsfluorescencetype, strconv.Itoa(int(item)))
  786. }
  787. sqlId.JoinFormat(" AND q.ZSFLUORESCENCETYPE1 IN (%v)", strings.Join(zsfluorescencetype, ","))
  788. }
  789. if len(r.ZSCERTTYPE) > 0 {
  790. sqlId.JoinFormat(" AND q.ZSCERTTYPE IN (%v)", strings.Join(r.ZSCERTTYPE, ","))
  791. }
  792. sqlId.AndLike("q.ORIGIN", r.ORIGIN)
  793. if len(r.ZSSTYLETYPE) > 0 {
  794. sqlId.JoinFormat(" AND q.ZSSTYLETYPE IN (%v)", strings.Join(r.ZSSTYLETYPE, ","))
  795. }
  796. if len(r.ZSCZCOLOR1TYPE) > 0 {
  797. sqlId.JoinFormat(" AND q.ZSCZCOLOR1TYPE IN (%v)", strings.Join(r.ZSCZCOLOR1TYPE, ","))
  798. }
  799. sqlId.Page(r.Page, r.PageSize)
  800. return sqlId.String()
  801. }
  802. func (r *SellOrder) GetDataByPage() (interface{}, error, int, int, int) {
  803. sData := make([]SellOrder, 0)
  804. sql := ""
  805. if !r.IsQueryDiamond {
  806. // 出售大厅查询
  807. sql = r.buildSql()
  808. } else {
  809. // 钻石搜索
  810. sql = r.buildQueryDiamond()
  811. }
  812. err := db.GetEngine().SQL(sql).Find(&sData)
  813. total := 0
  814. for i := range sData {
  815. sData[i].calc()
  816. total = sData[i].Total
  817. }
  818. return sData, err, r.Page, r.PageSize, total
  819. }
  820. // MyBuyOrder 我的求购
  821. type MyBuyOrder struct {
  822. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  823. ZSTABLEDISPLAY string `json:"zstabledisplay" xorm:"ZSTABLEDISPLAY"` // 求购信息
  824. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  825. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  826. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  827. ZSCOLORTYPEDISPLAY string `json:"zscolortypedisplay" xorm:"ZSCOLORTYPEDISPLAY"` //
  828. ZSCLARITYTYPEDISPLAY string `json:"zsclaritytypedisplay" xorm:"ZSCLARITYTYPEDISPLAY"` //
  829. ZSCUTTYPEDISPLAY string `json:"zscuttypedisplay" xorm:"ZSCUTTYPEDISPLAY"` //
  830. ZSSYMMETRYTYPEDISPLAY string `json:"zssymmetrytypedisplay" xorm:"ZSSYMMETRYTYPEDISPLAY"` //
  831. ZSPOLISHTYPEDISPLAY string `json:"zspolishtypedisplay" xorm:"ZSPOLISHTYPEDISPLAY"` //
  832. ZSFLUORESCENCETYPEDISPLAY string `json:"zsfluorescencetypedisplay" xorm:"ZSFLUORESCENCETYPEDISPLAY"` //
  833. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  834. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  835. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  836. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  837. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  838. WAREHOUSEINFOSDISPLAY string `json:"warehouseinfosdisplay" xorm:"WAREHOUSEINFOSDISPLAY"` //
  839. ZSSIZEDISPLAY string `json:"zssizedisplay" xorm:"ZSSIZEDISPLAY"` // 颜色
  840. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // [委托单号]买委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  841. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  842. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  843. WRTRADEORDERSTATUS int32 `json:"wrtradeorderstatus" xorm:"WRTRADEORDERSTATUS"` // 委托状态 - 参考枚举'WRTradeOrderStatus' - 1:委托请求 2:待冻结 3:委托成功 4:委托失败 5:配对成功 6:已撤 7:部成 8:已成 9:部成部撤 10:成交失败 11:委托拒绝 12:经过摘牌(先摘后挂专用) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用) 17:冻结PD成功 18:冻结PD失败 19:冻结能量成功 20:冻结能量失败 21:预约已报价 22:过期未付 23:优惠券处理中 24:仓单生成失败 25:首付扣款失败 26:履约失败 27:撤单解冻贷款失败WRTrade_OrderDetail、
  844. VALIDTIME string `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  845. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME"` // 委托时间
  846. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  847. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  848. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  849. ZSCURRENCYTYPE string `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 多个, 逗号分隔
  850. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 多个, 逗号分隔
  851. ZSCOLORTYPE string `json:"zscolortype" xorm:"ZSCOLORTYPE"` // 颜色 - 两个, 逗号分隔
  852. ZSCLARITYTYPE string `json:"zsclaritytype" xorm:"ZSCLARITYTYPE"` // 净度 - 两个, 逗号分隔
  853. ZSCUTTYPE string `json:"zscuttype" xorm:"ZSCUTTYPE"` // 切工 - 两个, 逗号分隔
  854. ZSSYMMETRYTYPE string `json:"zssymmetrytype" xorm:"ZSSYMMETRYTYPE"` // 对称度 - 两个, 逗号分隔
  855. ZSPOLISHTYPE string `json:"zspolishtype" xorm:"ZSPOLISHTYPE"` // 抛光度 - 两个, 逗号分隔
  856. ZSFLUORESCENCETYPE string `json:"zsfluorescencetype" xorm:"ZSFLUORESCENCETYPE"` // 荧光 - 多个, 逗号分隔
  857. ZSSIZE string `json:"zssize" xorm:"ZSSIZE"` // 尺寸 - 两个小数, 逗号分隔
  858. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型 - 多个,逗号分隔
  859. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地
  860. ZSSTYLETYPE string `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 多个, 逗号分隔
  861. ZSCZCOLOR1TYPE string `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1, 逗号分隔
  862. ZSCZCOLOR2TYPE string `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2, 逗号分隔
  863. ZSCZCOLOR3TYPE string `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3, 逗号分隔
  864. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  865. WAREHOUSEIDS string `json:"warehouseids" xorm:"WAREHOUSEIDS"` // 仓库ID - 多个, 逗号分隔
  866. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  867. IsHis bool `json:"-" form:"ishis"` // 是否历史查询
  868. BeginDate string `json:"-" form:"begindate"` // 开始交易日
  869. EndDate string `json:"-" form:"enddate"` // 结束交易日
  870. PageEx `xorm:"extends"` // 页码信息
  871. }
  872. func (r *MyBuyOrder) calc() {
  873. }
  874. func (r *MyBuyOrder) buildSql() string {
  875. var sqlId utils.SQLVal = `
  876. SELECT
  877. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  878. t.WRTRADEORDERSTATUS,
  879. to_char(t.VALIDTIME, 'yyyy-mm-dd') VALIDTIME,
  880. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME,
  881. t.PERFORMANCETEMPLATEID,
  882. q.*
  883. FROM WRTrade_OrderDetail t
  884. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  885. WHERE t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  886. `
  887. sqlId.And("t.USERID", r.USERID)
  888. if r.ZSCATEGORYS != "" {
  889. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  890. }
  891. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  892. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  893. sqlId.OrderByDesc("t.WRTRADEORDERID")
  894. sqlId.Page(r.Page, r.PageSize)
  895. return sqlId.String()
  896. }
  897. func (r *MyBuyOrder) buildSql_His() string {
  898. var sqlId utils.SQLVal = `
  899. SELECT
  900. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  901. t.WRTRADEORDERSTATUS,
  902. to_char(t.VALIDTIME, 'yyyy-mm-dd') VALIDTIME,
  903. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME,
  904. t.PERFORMANCETEMPLATEID,
  905. q.*
  906. FROM HIS_WRTrade_OrderDetail t
  907. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  908. WHERE t.isvaliddata =1 AND t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  909. `
  910. sqlId.And("t.USERID", r.USERID)
  911. if r.ZSCATEGORYS != "" {
  912. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  913. }
  914. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  915. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  916. if r.BeginDate != "" && r.EndDate != "" {
  917. sqlId.JoinFormat(" AND (t.TRADEDATE >= '%v' AND t.TRADEDATE <= '%v')", r.BeginDate, r.EndDate)
  918. }
  919. sqlId.OrderByDesc("t.WRTRADEORDERID")
  920. sqlId.Page(r.Page, r.PageSize)
  921. return sqlId.String()
  922. }
  923. func (r *MyBuyOrder) GetDataByPage() (interface{}, error, int, int, int) {
  924. sData := make([]MyBuyOrder, 0)
  925. sql := ""
  926. if r.IsHis {
  927. sql = r.buildSql_His()
  928. } else {
  929. sql = r.buildSql()
  930. }
  931. err := db.GetEngine().SQL(sql).Find(&sData)
  932. total := 0
  933. for i := range sData {
  934. sData[i].calc()
  935. total = sData[i].Total
  936. }
  937. return sData, err, r.Page, r.PageSize, total
  938. }
  939. // MySellOrder 我的出售
  940. type MySellOrder struct {
  941. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  942. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  943. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  944. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  945. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  946. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  947. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  948. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` // 钻石分类 - 描述
  949. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  950. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  951. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  952. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  953. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  954. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  955. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  956. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  957. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  958. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  959. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  960. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  961. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  962. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  963. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  964. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  965. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  966. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  967. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  968. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  969. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  970. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  971. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` //
  972. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` //
  973. WRPATH string `json:"wrpath" xorm:"WRPATH"` //
  974. REMARK string `json:"remark" xorm:"REMARK"` //
  975. PRICEPER string `json:"priceper" xorm:"PRICEPER"` //
  976. SIZE1 string `json:"size1" xorm:"SIZE1"` //
  977. SIZE2 string `json:"size2" xorm:"SIZE2"` //
  978. SIZE3 string `json:"size3" xorm:"SIZE3"` //
  979. CERNO string `json:"cerno" xorm:"CERNO"` //
  980. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` //
  981. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` //
  982. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` //
  983. KPPATH string `json:"kppath" xorm:"KPPATH"` //
  984. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` //
  985. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` //
  986. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  987. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  988. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  989. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  990. WRTRADETYPE int32 `json:"wrtradetype" xorm:"WRTRADETYPE"` // 仓单贸易类型 - 1:挂牌 2:摘牌 3:提货卖(文化中国) 4:提货买(文化中国)
  991. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  992. RELATEDWRTRADEORDERID int64 `json:"relatedwrtradeorderid" xorm:"RELATEDWRTRADEORDERID"` // 关联委托单号(摘牌委托关联挂牌委托单ID)
  993. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  994. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账号
  995. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID/商品ID(77)
  996. ORDERQTY int64 `json:"-" xorm:"ORDERQTY"` // 委托数量
  997. TRADEQTY int64 `json:"-" xorm:"TRADEQTY"` // 成交数量
  998. CANCELQTY int64 `json:"cancelqty" xorm:"CANCELQTY"` // 撤销数量
  999. WRPRICETYPE int32 `json:"wrpricetype" xorm:"WRPRICETYPE"` // 价格方式 - 1:固定价 2-浮动价 - [挂牌]
  1000. FIXEDPRICE float64 `json:"fixedprice" xorm:"FIXEDPRICE"` // [克拉单价]固定价格 - [挂牌]
  1001. ISSPECIFIED int32 `json:"isspecified" xorm:"ISSPECIFIED"` // 是否指定对手 - 0:不指定 1:指定好友(贸易圈) 2:指定对手 - [挂牌]
  1002. PRICEFACTOR float64 `json:"pricefactor" xorm:"PRICEFACTOR"` // 价格系数(浮动价时填写) - [挂牌]
  1003. PRICEMOVE float64 `json:"pricemove" xorm:"PRICEMOVE"` // 升贴水(浮动价时填写) - [挂牌]
  1004. FIRSTRATIO float64 `json:"firstratio" xorm:"FIRSTRATIO"` // 首付比率 - [挂牌时指定,摘牌时使用]
  1005. WRTRANSFERUSERID int64 `json:"wrtransferuserid" xorm:"WRTRANSFERUSERID"` // 仓单受让用户 - [摘牌]
  1006. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格 - [摘牌] (浮动价 ((商品1价格*商品1价格系数+升贴水)* 商品1重量系数 + 商品2价格*商品2价格系数+商品2升贴水)* 商品2重量系数 ...)* 委托单价格系数 + 委托单升贴水)
  1007. FREEZEFIRSTAMOUNT float64 `json:"freezefirstamount" xorm:"FREEZEFIRSTAMOUNT"` // 冻结首付金额 - [摘牌]
  1008. UNFREEZEFIRSTAMOUNT float64 `json:"unfreezefirstamount" xorm:"UNFREEZEFIRSTAMOUNT"` // 解冻首付金额 - [摘牌]
  1009. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  1010. VALIDTYPE int32 `json:"validtype" xorm:"VALIDTYPE"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效
  1011. VALIDTIME time.Time `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  1012. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME1"` // 委托时间
  1013. CANCELTIME time.Time `json:"canceltime" xorm:"CANCELTIME"` // 撤销时间
  1014. WRTRADEORDERSTATUS int32 `json:"wrtradeorderstatus" xorm:"WRTRADEORDERSTATUS"` // 委托状态 - 参考枚举'WRTradeOrderStatus' - 1:委托请求 2:待冻结 3:委托成功 4:委托失败 5:配对成功 6:已撤 7:部成 8:已成 9:部成部撤 10:成交失败 11:委托拒绝 12:经过摘牌(先摘后挂专用) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用) 17:冻结PD成功 18:冻结PD失败 19:冻结能量成功 20:冻结能量失败 21:预约已报价 22:过期未付 23:优惠券处理中 24:仓单生成失败 25:首付扣款失败 26:履约失败 27:撤单解冻贷款失败
  1015. CLIENTTICKET string `json:"-" xorm:"CLIENTTICKET"` // 客户端流水号
  1016. ORDERSRC int32 `json:"-" xorm:"ORDERSRC"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结
  1017. CLIENTTYPE int32 `json:"-" xorm:"CLIENTTYPE"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
  1018. UUID string `json:"uuid" xorm:"UUID"` // 发起端唯一id
  1019. CLIENTORDERTIME time.Time `json:"clientordertime" xorm:"CLIENTORDERTIME"` // 客户端委托时间
  1020. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 错误代码
  1021. OPERATORID int64 `json:"-" xorm:"OPERATORID"` // 操作员ID
  1022. PRICEDISPLAYMODE int32 `json:"-" xorm:"PRICEDISPLAYMODE"` // 浮动价显示方式 - 1:合并显示 2:分开显示1: 价格显示一个值 :(商品拟合价*价格系统+升贴水)2: 价格显示两个值:(商品拟合价*价格系统) 、 升贴水
  1023. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金
  1024. UNFREEZEMARGIN float64 `json:"unfreezemargin" xorm:"UNFREEZEMARGIN"` // 解冻保证金
  1025. FREEZECHARGE float64 `json:"freezecharge" xorm:"FREEZECHARGE"` // 冻结手续费
  1026. UNFREEZECHARGE float64 `json:"unfreezecharge" xorm:"UNFREEZECHARGE"` // 解冻手续费
  1027. MARGINALGORITHM int32 `json:"marginalgorithm" xorm:"MARGINALGORITHM"` // 保证金方式 - 1:比率 2:固定
  1028. MARGINVALUE float64 `json:"marginvalue" xorm:"MARGINVALUE"` // 保证金设置值
  1029. CHARGEALGORITHM int32 `json:"chargealgorithm" xorm:"CHARGEALGORITHM"` // 手续费收取方式 1:比率 2:固定
  1030. CHARGEALGORITHMVALUE float64 `json:"chargealgorithmvalue" xorm:"CHARGEALGORITHMVALUE"` // 手续费设置值(交易所部分)
  1031. CHARGEALGORITHMVALUE2 float64 `json:"chargealgorithmvalue2" xorm:"CHARGEALGORITHMVALUE2"` // 手续费设置值(会员部分)
  1032. CANBARGAIN int32 `json:"canbargain" xorm:"CANBARGAIN"` // 是否可议价 - 0:不可 1:可
  1033. WRBARGAINID int64 `json:"wrbargainid" xorm:"WRBARGAINID"` // 议价申请单ID
  1034. ATTACHMENT1 string `json:"attachment1" xorm:"ATTACHMENT1"` // 附件1
  1035. ATTACHMENT2 string `json:"attachment2" xorm:"ATTACHMENT2"` // 附件2
  1036. APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请单ID
  1037. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率[67]
  1038. ORDERAMOUNT float64 `json:"orderamount" xorm:"ORDERAMOUNT"` // 挂牌金额[账户] [67]= OrderQty * FixedPrice * ExchangeRate /100
  1039. TOTALQTY float64 `json:"totalqty" xorm:"TOTALQTY"` // 总重量
  1040. SELLEDQTY float64 `json:"selledqty" xorm:"SELLEDQTY"` // 成交重量
  1041. IsHis bool `json:"-" form:"ishis"` // 是否历史查询
  1042. BeginDate string `json:"-" form:"begindate"` // 开始交易日
  1043. EndDate string `json:"-" form:"enddate"` // 结束交易日
  1044. PageEx `xorm:"extends"` // 页码信息
  1045. }
  1046. func (r *MySellOrder) calc() {
  1047. }
  1048. func (r *MySellOrder) buildSql() string {
  1049. var sqlId utils.SQLVal = `
  1050. SELECT
  1051. (t.ORDERQTY / 100) TOTALQTY,
  1052. (t.TRADEQTY / 100) SELLEDQTY,
  1053. q.ZSCATEGORY,
  1054. q.ZSCURRENCYTYPE,
  1055. q.GOODSNO,
  1056. q.ZSCURRENCYTYPEDISPLAY ,
  1057. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  1058. q.WAREHOUSENAMEDISPLAY ,
  1059. q.ZSSHAPETYPEDISPLAY ,
  1060. q.ZSCOLORTYPE1DISPLAY ,
  1061. q.ZSCOLORTYPE2DISPLAY ,
  1062. q.ZSCLARITYTYPE1DISPLAY ,
  1063. q.ZSCLARITYTYPE2DISPLAY ,
  1064. q.ZSCUTTYPE1DISPLAY ,
  1065. q.ZSCUTTYPE2DISPLAY ,
  1066. q.ZSSYMMETRYTYPE1DISPLAY ,
  1067. q.ZSSYMMETRYTYPE2DISPLAY ,
  1068. q.ZSPOLISHTYPE1DISPLAY ,
  1069. q.ZSPOLISHTYPE2DISPLAY ,
  1070. q.ZSFLUORESCENCETYPE1DISPLAY,
  1071. q.ZSFLUORESCENCETYPE2DISPLAY,
  1072. q.ZSCERTTYPEDISPLAY ,
  1073. q.ZSCRYSTALTYPEDISPLAY ,
  1074. q.ZSSTYLETYPEDISPLAY ,
  1075. q.ZSCZCOLOR1TYPEDISPLAY ,
  1076. q.ZSCZCOLOR2TYPEDISPLAY ,
  1077. q.ZSCZCOLOR3TYPEDISPLAY ,
  1078. q.MARKETPRICE ,
  1079. q.IMAGEPATH ,
  1080. q.WRPATH ,
  1081. q.REMARK ,
  1082. q.PRICEPER ,
  1083. q.SIZE1 ,
  1084. q.SIZE2 ,
  1085. q.SIZE3 ,
  1086. CASE WHEN
  1087. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  1088. ELSE q.SIZE1
  1089. END AS SIZEDISPLAY,
  1090. q.CERNO ,
  1091. q.ZSCRYSTALTYPE ,
  1092. q.CPCERTNO ,
  1093. q.KPWEIGHT ,
  1094. q.KPPATH ,
  1095. q.STONEDESC ,
  1096. q.SETTINGMATERIAL ,
  1097. q.PRICE,
  1098. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME1,
  1099. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  1100. t.WRTRADEORDERID ,
  1101. t.TRADEDATE ,
  1102. t.WRTRADETYPE ,
  1103. t.BUYORSELL ,
  1104. t.RELATEDWRTRADEORDERID,
  1105. t.MARKETID ,
  1106. t.ACCOUNTID ,
  1107. t.WRFACTORTYPEID ,
  1108. t.ORDERQTY ,
  1109. t.TRADEQTY ,
  1110. t.CANCELQTY ,
  1111. t.WRPRICETYPE ,
  1112. t.FIXEDPRICE ,
  1113. t.ISSPECIFIED ,
  1114. t.PRICEFACTOR ,
  1115. t.PRICEMOVE ,
  1116. t.FIRSTRATIO ,
  1117. t.WRTRANSFERUSERID ,
  1118. t.TRADEPRICE ,
  1119. t.FREEZEFIRSTAMOUNT ,
  1120. t.UNFREEZEFIRSTAMOUNT ,
  1121. t.PERFORMANCETEMPLATEID,
  1122. t.VALIDTYPE ,
  1123. t.VALIDTIME ,
  1124. t.ORDERTIME ,
  1125. t.CANCELTIME ,
  1126. t.WRTRADEORDERSTATUS ,
  1127. t.CLIENTTICKET ,
  1128. t.ORDERSRC ,
  1129. t.CLIENTTYPE ,
  1130. t.UUID ,
  1131. t.CLIENTORDERTIME ,
  1132. t.RETCODE ,
  1133. t.OPERATORID ,
  1134. t.PRICEDISPLAYMODE ,
  1135. t.FREEZEMARGIN ,
  1136. t.UNFREEZEMARGIN ,
  1137. t.FREEZECHARGE ,
  1138. t.UNFREEZECHARGE ,
  1139. t.MARGINALGORITHM ,
  1140. t.MARGINVALUE ,
  1141. t.CHARGEALGORITHM ,
  1142. t.CHARGEALGORITHMVALUE ,
  1143. t.CHARGEALGORITHMVALUE2,
  1144. t.CANBARGAIN ,
  1145. t.WRBARGAINID ,
  1146. t.ATTACHMENT1 ,
  1147. t.ATTACHMENT2 ,
  1148. t.APPLYID ,
  1149. t.EXCHANGERATE ,
  1150. t.ORDERAMOUNT
  1151. FROM WRTrade_OrderDetail t
  1152. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  1153. WHERE t.marketid=67201 AND t.BuyOrSell = 1
  1154. `
  1155. sqlId.And("q.USERID", r.USERID)
  1156. if r.ZSCATEGORYS != "" {
  1157. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  1158. }
  1159. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  1160. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  1161. sqlId.OrderByDesc("t.WRTRADEORDERID")
  1162. sqlId.Page(r.Page, r.PageSize)
  1163. return sqlId.String()
  1164. }
  1165. func (r *MySellOrder) buildSql_His() string {
  1166. var sqlId utils.SQLVal = `
  1167. SELECT
  1168. (t.ORDERQTY / 100) TOTALQTY,
  1169. (t.TRADEQTY / 100) SELLEDQTY,
  1170. q.ZSCATEGORY,
  1171. q.ZSCURRENCYTYPE,
  1172. q.GOODSNO,
  1173. q.ZSCURRENCYTYPEDISPLAY ,
  1174. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  1175. q.WAREHOUSENAMEDISPLAY ,
  1176. q.ZSSHAPETYPEDISPLAY ,
  1177. q.ZSCOLORTYPE1DISPLAY ,
  1178. q.ZSCOLORTYPE2DISPLAY ,
  1179. q.ZSCLARITYTYPE1DISPLAY ,
  1180. q.ZSCLARITYTYPE2DISPLAY ,
  1181. q.ZSCUTTYPE1DISPLAY ,
  1182. q.ZSCUTTYPE2DISPLAY ,
  1183. q.ZSSYMMETRYTYPE1DISPLAY ,
  1184. q.ZSSYMMETRYTYPE2DISPLAY ,
  1185. q.ZSPOLISHTYPE1DISPLAY ,
  1186. q.ZSPOLISHTYPE2DISPLAY ,
  1187. q.ZSFLUORESCENCETYPE1DISPLAY,
  1188. q.ZSFLUORESCENCETYPE2DISPLAY,
  1189. q.ZSCERTTYPEDISPLAY ,
  1190. q.ZSCRYSTALTYPEDISPLAY ,
  1191. q.ZSSTYLETYPEDISPLAY ,
  1192. q.ZSCZCOLOR1TYPEDISPLAY ,
  1193. q.ZSCZCOLOR2TYPEDISPLAY ,
  1194. q.ZSCZCOLOR3TYPEDISPLAY ,
  1195. q.MARKETPRICE ,
  1196. q.IMAGEPATH ,
  1197. q.WRPATH ,
  1198. q.REMARK ,
  1199. q.PRICEPER ,
  1200. q.SIZE1 ,
  1201. q.SIZE2 ,
  1202. q.SIZE3 ,
  1203. CASE WHEN
  1204. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  1205. ELSE q.SIZE1
  1206. END AS SIZEDISPLAY,
  1207. q.CERNO ,
  1208. q.ZSCRYSTALTYPE ,
  1209. q.CPCERTNO ,
  1210. q.KPWEIGHT ,
  1211. q.KPPATH ,
  1212. q.STONEDESC ,
  1213. q.SETTINGMATERIAL ,
  1214. q.PRICE,
  1215. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME1,
  1216. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  1217. t.WRTRADEORDERID ,
  1218. t.TRADEDATE ,
  1219. t.WRTRADETYPE ,
  1220. t.BUYORSELL ,
  1221. t.RELATEDWRTRADEORDERID,
  1222. t.MARKETID ,
  1223. t.ACCOUNTID ,
  1224. t.WRFACTORTYPEID ,
  1225. t.ORDERQTY ,
  1226. t.TRADEQTY ,
  1227. t.CANCELQTY ,
  1228. t.WRPRICETYPE ,
  1229. t.FIXEDPRICE ,
  1230. t.ISSPECIFIED ,
  1231. t.PRICEFACTOR ,
  1232. t.PRICEMOVE ,
  1233. t.FIRSTRATIO ,
  1234. t.WRTRANSFERUSERID ,
  1235. t.TRADEPRICE ,
  1236. t.FREEZEFIRSTAMOUNT ,
  1237. t.UNFREEZEFIRSTAMOUNT ,
  1238. t.PERFORMANCETEMPLATEID,
  1239. t.VALIDTYPE ,
  1240. t.VALIDTIME ,
  1241. t.ORDERTIME ,
  1242. t.CANCELTIME ,
  1243. t.WRTRADEORDERSTATUS ,
  1244. t.CLIENTTICKET ,
  1245. t.ORDERSRC ,
  1246. t.CLIENTTYPE ,
  1247. t.UUID ,
  1248. t.CLIENTORDERTIME ,
  1249. t.RETCODE ,
  1250. t.OPERATORID ,
  1251. t.PRICEDISPLAYMODE ,
  1252. t.FREEZEMARGIN ,
  1253. t.UNFREEZEMARGIN ,
  1254. t.FREEZECHARGE ,
  1255. t.UNFREEZECHARGE ,
  1256. t.MARGINALGORITHM ,
  1257. t.MARGINVALUE ,
  1258. t.CHARGEALGORITHM ,
  1259. t.CHARGEALGORITHMVALUE ,
  1260. t.CHARGEALGORITHMVALUE2,
  1261. t.CANBARGAIN ,
  1262. t.WRBARGAINID ,
  1263. t.ATTACHMENT1 ,
  1264. t.ATTACHMENT2 ,
  1265. t.APPLYID ,
  1266. t.EXCHANGERATE ,
  1267. t.ORDERAMOUNT
  1268. FROM HIS_WRTrade_OrderDetail t
  1269. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  1270. WHERE t.isvaliddata =1 AND t.marketid=67201 AND t.BuyOrSell = 1
  1271. `
  1272. sqlId.And("q.USERID", r.USERID)
  1273. if r.ZSCATEGORYS != "" {
  1274. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  1275. }
  1276. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  1277. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  1278. if r.BeginDate != "" && r.EndDate != "" {
  1279. sqlId.JoinFormat(" AND (t.TRADEDATE >= '%v' AND t.TRADEDATE <= '%v')", r.BeginDate, r.EndDate)
  1280. }
  1281. sqlId.OrderByDesc("t.WRTRADEORDERID")
  1282. sqlId.Page(r.Page, r.PageSize)
  1283. return sqlId.String()
  1284. }
  1285. func (r *MySellOrder) GetDataByPage() (interface{}, error, int, int, int) {
  1286. sData := make([]MySellOrder, 0)
  1287. sql := ""
  1288. if r.IsHis {
  1289. sql = r.buildSql_His()
  1290. } else {
  1291. sql = r.buildSql()
  1292. }
  1293. err := db.GetEngine().SQL(sql).Find(&sData)
  1294. total := 0
  1295. for i := range sData {
  1296. sData[i].calc()
  1297. total = sData[i].Total
  1298. }
  1299. return sData, err, r.Page, r.PageSize, total
  1300. }
  1301. // MyDeListing 我的摘牌
  1302. type MyDeListing struct {
  1303. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  1304. SELLUSERNAME string `json:"-" xorm:"SELLUSERNAME"` // 卖方
  1305. BUYUSERNAME string `json:"-" xorm:"BUYUSERNAME"` // 买方
  1306. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  1307. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  1308. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  1309. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  1310. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  1311. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  1312. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1313. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  1314. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  1315. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1316. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  1317. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  1318. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  1319. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  1320. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  1321. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  1322. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  1323. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  1324. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  1325. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  1326. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  1327. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  1328. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  1329. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1330. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1331. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1332. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1333. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1334. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  1335. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  1336. WRTRADEDETAILID string `json:"wrtradedetailid" xorm:"WRTRADEDETAILID1" form:"wrtradedetailid"` // 仓单贸易成交单ID(321+Unix秒时间戳(10位)+xxxxxx)
  1337. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  1338. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  1339. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID
  1340. DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
  1341. WRSTANDARDID int32 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  1342. BUYUSERID int64 `json:"buyuserid" xorm:"BUYUSERID"` // 买方用户ID
  1343. BUYACCOUNTID int64 `json:"buyaccountid" xorm:"BUYACCOUNTID"` // 买方账号ID
  1344. SELLUSERID int64 `json:"selluserid" xorm:"SELLUSERID"` // 卖方用户ID
  1345. SELLACCOUNTID int64 `json:"sellaccountid" xorm:"SELLACCOUNTID"` // 卖方账号ID
  1346. TRADETIME string `json:"tradetime" xorm:"TRADETIME1"` // 成交时间
  1347. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格
  1348. TRADEQTY int64 `json:"-" xorm:"TRADEQTY"` // 成交数量
  1349. TRADEAMOUNT float64 `json:"tradeamount" xorm:"TRADEAMOUNT"` // 成交金额
  1350. PERFORMANCEPLANID string `json:"performanceplanid" xorm:"PERFORMANCEPLANID1"` // 履约计划ID/合同ID
  1351. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率
  1352. BUYCHARGEVALUE float64 `json:"buychargevalue" xorm:"BUYCHARGEVALUE"` // 买方手续费
  1353. SELLCHARGEVALUE float64 `json:"sellchargevalue" xorm:"SELLCHARGEVALUE"` // 卖方手续费
  1354. ORITRADEAMOUNT float64 `json:"oritradeamount" xorm:"ORITRADEAMOUNT"` // 成交金额[商品币种]
  1355. QTY float64 `json:"qty" xorm:"QTY"` // 成交重量
  1356. MATCHUSERNAME string `json:"matchusername" form:"matchusername"` // 对手方
  1357. BuyOrSell int64 `json:"-" xorm:"BUYORSELL" form:"buyorsell"` // 方向 - 0:买 1:卖
  1358. BeginDate string `json:"-" form:"begindate"` // 开始交易日
  1359. EndDate string `json:"-" form:"enddate"` // 结束交易日
  1360. PageEx `xorm:"extends"` // 页码信息
  1361. }
  1362. func (r *MyDeListing) calc() {
  1363. // 设置对手方
  1364. if r.BuyOrSell == 0 {
  1365. r.MATCHUSERNAME = r.SELLUSERNAME
  1366. } else {
  1367. r.MATCHUSERNAME = r.BUYUSERNAME
  1368. }
  1369. }
  1370. func (r *MyDeListing) buildSql() string {
  1371. var sqlId utils.SQLVal = `
  1372. SELECT
  1373. %v BUYORSELL,
  1374. ua1.accountname BUYUSERNAME,
  1375. q.SELLUSERNAME,
  1376. q.USERID,
  1377. q.ZSCATEGORY,
  1378. q.ZSCATEGORYDISPLAY,
  1379. q.ZSCURRENCYTYPE,
  1380. q.GOODSNO,
  1381. q.ZSCURRENCYTYPEDISPLAY,
  1382. q.ZSCURRENCYTYPEDISPLAYUNIT,
  1383. q.WAREHOUSENAMEDISPLAY,
  1384. q.ZSSHAPETYPEDISPLAY,
  1385. q.ZSCOLORTYPE1DISPLAY,
  1386. q.ZSCOLORTYPE2DISPLAY,
  1387. q.ZSCLARITYTYPE1DISPLAY,
  1388. q.ZSCLARITYTYPE2DISPLAY,
  1389. q.ZSCUTTYPE1DISPLAY,
  1390. q.ZSCUTTYPE2DISPLAY,
  1391. q.ZSSYMMETRYTYPE1DISPLAY,
  1392. q.ZSSYMMETRYTYPE2DISPLAY,
  1393. q.ZSPOLISHTYPE1DISPLAY,
  1394. q.ZSPOLISHTYPE2DISPLAY,
  1395. q.ZSFLUORESCENCETYPE1DISPLAY,
  1396. q.ZSFLUORESCENCETYPE2DISPLAY,
  1397. q.ZSCERTTYPEDISPLAY,
  1398. q.ZSCRYSTALTYPEDISPLAY,
  1399. q.ZSSTYLETYPEDISPLAY,
  1400. q.ZSCZCOLOR1TYPEDISPLAY,
  1401. q.ZSCZCOLOR2TYPEDISPLAY,
  1402. q.ZSCZCOLOR3TYPEDISPLAY,
  1403. CASE WHEN
  1404. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  1405. ELSE q.SIZE1
  1406. END AS SIZEDISPLAY,
  1407. q.PRICE,
  1408. (t.TRADEQTY / 100) QTY,
  1409. to_char(t.TRADETIME, 'yyyy-mm-dd hh24:mi:ss') TRADETIME1,
  1410. to_char(t.WRTRADEDETAILID) WRTRADEDETAILID1,
  1411. t.TRADEDATE ,
  1412. t.MARKETID ,
  1413. t.WRFACTORTYPEID ,
  1414. t.DELIVERYGOODSID ,
  1415. t.WRSTANDARDID ,
  1416. t.BUYUSERID ,
  1417. t.BUYACCOUNTID ,
  1418. t.SELLUSERID ,
  1419. t.SELLACCOUNTID ,
  1420. t.TRADEPRICE ,
  1421. t.TRADEQTY ,
  1422. t.TRADEAMOUNT ,
  1423. to_char(t.PERFORMANCEPLANID) PERFORMANCEPLANID1,
  1424. t.EXCHANGERATE ,
  1425. t.BUYCHARGEVALUE ,
  1426. t.SELLCHARGEVALUE ,
  1427. t.ORITRADEAMOUNT
  1428. FROM WRTrade_TradeQuote t
  1429. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  1430. LEFT JOIN UserAccount ua1 ON t.BuyUserID = ua1.userid
  1431. WHERE t.marketid=67201
  1432. `
  1433. sqlId.FormatParam(r.BuyOrSell)
  1434. if r.ZSCATEGORYS != "" {
  1435. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  1436. }
  1437. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  1438. sqlId.AndEx("t.WRTRADEDETAILID", r.WRTRADEDETAILID, r.WRTRADEDETAILID != "")
  1439. switch r.BuyOrSell {
  1440. case 0:
  1441. // 买
  1442. sqlId.And("t.BUYUSERID", r.USERID)
  1443. if r.MATCHUSERNAME != "" {
  1444. sqlId.AndLike("q.SELLUSERNAME", r.MATCHUSERNAME)
  1445. }
  1446. case 1:
  1447. // 卖
  1448. sqlId.And("t.SELLUSERID", r.USERID)
  1449. if r.MATCHUSERNAME != "" {
  1450. sqlId.AndLike("ua1.accountname", r.MATCHUSERNAME)
  1451. }
  1452. }
  1453. if r.BeginDate != "" && r.EndDate != "" {
  1454. sqlId.JoinFormat(" AND (t.TRADEDATE >= '%v' AND t.TRADEDATE <= '%v')", r.BeginDate, r.EndDate)
  1455. }
  1456. sqlId.OrderByDesc("t.WRTRADEDETAILID")
  1457. sqlId.Page(r.Page, r.PageSize)
  1458. return sqlId.String()
  1459. }
  1460. func (r *MyDeListing) GetDataByPage() (interface{}, error, int, int, int) {
  1461. sData := make([]MyDeListing, 0)
  1462. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  1463. total := 0
  1464. for i := range sData {
  1465. sData[i].calc()
  1466. total = sData[i].Total
  1467. }
  1468. return sData, err, r.Page, r.PageSize, total
  1469. }
  1470. // MyBargainApply 询价-求购
  1471. type MyBargainApply struct {
  1472. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1473. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  1474. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  1475. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1476. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  1477. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  1478. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  1479. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  1480. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  1481. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  1482. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  1483. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  1484. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  1485. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  1486. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  1487. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  1488. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  1489. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1490. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1491. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1492. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1493. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1494. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  1495. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  1496. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价 - 类型:1,2,3,5
  1497. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  1498. WRBARGAINID string `json:"wrbargainid" xorm:"WRBARGAINID1"` // [询价单号]议价申请单ID(327+Unix秒时间戳(10位)+xxxxxx)
  1499. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // 关联委托单ID
  1500. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  1501. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  1502. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 摘牌人用户ID
  1503. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 摘牌资金账号
  1504. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  1505. APPLYQTY int64 `json:"-" xorm:"APPLYQTY"` // 摘牌数量
  1506. APPLYPRICE string `json:"applyprice" xorm:"APPLYPRICE"` // 申请价格
  1507. APPLYSTATUS int32 `json:"applystatus" xorm:"APPLYSTATUS" form:"applystatus"` // 申请状态 - 1:待确认 2:已确认 3:已拒绝 4:已撤销 5:系统撤销 6:处理失败 7:确认中
  1508. HANDLESTATUS int32 `json:"handlestatus" xorm:"HANDLESTATUS"` // 处理状态
  1509. APPLYTIME string `json:"applytime" xorm:"APPLYTIME1"` // 申请时间
  1510. APPLYREMARK string `json:"applyremark" xorm:"APPLYREMARK"` // 申请备注
  1511. CONFIRMQTY int64 `json:"confirmqty" xorm:"CONFIRMQTY"` // 可接受数量(拒绝时填写)-作废
  1512. CONFIRMPRICE float64 `json:"confirmprice" xorm:"CONFIRMPRICE"` // 可接受价格(拒绝时填写)-作废
  1513. CONFIRMUSERID int64 `json:"confirmuserid" xorm:"CONFIRMUSERID"` // 确认人
  1514. CONFIRMTIME time.Time `json:"confirmtime" xorm:"CONFIRMTIME"` // 确认时间
  1515. CONFIRMREMARK string `json:"confirmremark" xorm:"CONFIRMREMARK"` // 确认备注
  1516. REFPRICE string `json:"refprice" xorm:"REFPRICE"` // 参考价格
  1517. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 委托返回代码
  1518. MATCHUSERID int64 `json:"matchuserid" xorm:"MATCHUSERID"` // 挂牌方用户ID
  1519. MATCHACCOUNTID int64 `json:"matchaccountid" xorm:"MATCHACCOUNTID"` // 挂牌方资金账号
  1520. LADINGBILLID int64 `json:"ladingbillid" xorm:"LADINGBILLID"` // 摘牌方提单ID [卖]
  1521. SUBNUM int32 `json:"subnum" xorm:"SUBNUM"` // 摘牌方提单子单号 [卖]
  1522. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  1523. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 卖方
  1524. BUYUSERNAME string `json:"buyusername" xorm:"BUYUSERNAME"` // 买方
  1525. QTY float64 `json:"qty" xorm:"QTY"` // 申请数量
  1526. TYPE int `json:"-" form:"type"` // 查询类型 - 0:我的询价 1:我订单的询价
  1527. PageEx `xorm:"extends"` // 页码信息
  1528. }
  1529. func (r *MyBargainApply) calc() {
  1530. }
  1531. func (r *MyBargainApply) buildSql() string {
  1532. var sqlId utils.SQLVal = `
  1533. SELECT
  1534. q.ZSCURRENCYTYPEDISPLAY,
  1535. q.ZSCURRENCYTYPEDISPLAYUNIT,
  1536. q.WAREHOUSENAMEDISPLAY,
  1537. q.ZSSHAPETYPEDISPLAY,
  1538. q.ZSCOLORTYPE1DISPLAY,
  1539. q.ZSCOLORTYPE2DISPLAY,
  1540. q.ZSCLARITYTYPE1DISPLAY,
  1541. q.ZSCLARITYTYPE2DISPLAY,
  1542. q.ZSCUTTYPE1DISPLAY,
  1543. q.ZSCUTTYPE2DISPLAY,
  1544. q.ZSSYMMETRYTYPE1DISPLAY,
  1545. q.ZSSYMMETRYTYPE2DISPLAY,
  1546. q.ZSPOLISHTYPE1DISPLAY,
  1547. q.ZSPOLISHTYPE2DISPLAY,
  1548. q.ZSFLUORESCENCETYPE1DISPLAY,
  1549. q.ZSFLUORESCENCETYPE2DISPLAY,
  1550. q.ZSCERTTYPEDISPLAY,
  1551. q.ZSCRYSTALTYPEDISPLAY,
  1552. q.ZSSTYLETYPEDISPLAY,
  1553. q.ZSCZCOLOR1TYPEDISPLAY,
  1554. q.ZSCZCOLOR2TYPEDISPLAY,
  1555. q.ZSCZCOLOR3TYPEDISPLAY,
  1556. q.GOODSNO,
  1557. ua.accountname SELLUSERNAME,
  1558. ua1.accountname BUYUSERNAME,
  1559. CASE WHEN
  1560. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  1561. ELSE q.SIZE1
  1562. END AS SIZEDISPLAY,
  1563. q.PRICE,
  1564. q.PRICEPER,
  1565. (t.APPLYQTY / 100) QTY,
  1566. to_char(t.APPLYTIME, 'yyyy-mm-dd hh24:mi:ss') APPLYTIME1,
  1567. to_char(t.WRBARGAINID) WRBARGAINID1,
  1568. t.WRBARGAINID ,
  1569. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  1570. t.TRADEDATE ,
  1571. t.MARKETID ,
  1572. t.USERID ,
  1573. t.ACCOUNTID ,
  1574. t.BUYORSELL ,
  1575. t.APPLYQTY ,
  1576. t.APPLYPRICE ,
  1577. t.APPLYSTATUS ,
  1578. t.HANDLESTATUS ,
  1579. t.APPLYTIME ,
  1580. t.APPLYREMARK ,
  1581. t.CONFIRMQTY ,
  1582. t.CONFIRMPRICE ,
  1583. t.CONFIRMUSERID ,
  1584. t.CONFIRMTIME ,
  1585. t.CONFIRMREMARK ,
  1586. t.REFPRICE ,
  1587. t.RETCODE ,
  1588. t.MATCHUSERID ,
  1589. t.MATCHACCOUNTID,
  1590. t.LADINGBILLID ,
  1591. t.SUBNUM ,
  1592. d.PERFORMANCETEMPLATEID
  1593. FROM WRTrade_BargainApply t
  1594. LEFT JOIN UserAccount ua ON t.MATCHUSERID = ua.userid
  1595. LEFT JOIN UserAccount ua1 ON t.USERID = ua1.userid
  1596. LEFT JOIN Wrtrade_Orderdetail d ON d.wrtradeorderid = t.wrtradeorderid
  1597. LEFT JOIN view_GZ_WRStandard_Ex_Query q ON d.wrstandardid = q.wrstandardid
  1598. WHERE t.marketid=67201
  1599. `
  1600. if r.TYPE == 0 {
  1601. sqlId.And("t.USERID", r.USERID)
  1602. } else {
  1603. sqlId.And("t.MatchUserID", r.USERID)
  1604. }
  1605. sqlId.AndEx("t.APPLYSTATUS", r.APPLYSTATUS, r.APPLYSTATUS > 0)
  1606. if r.WRTRADEORDERID != "" {
  1607. sqlId.JoinFormat(" and t.WRTRADEORDERID = %v", r.WRTRADEORDERID)
  1608. }
  1609. sqlId.OrderByDesc("t.WRBARGAINID")
  1610. sqlId.Page(r.Page, r.PageSize)
  1611. return sqlId.String()
  1612. }
  1613. func (r *MyBargainApply) GetDataByPage() (interface{}, error, int, int, int) {
  1614. sData := make([]MyBargainApply, 0)
  1615. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  1616. total := 0
  1617. for i := range sData {
  1618. sData[i].calc()
  1619. total = sData[i].Total
  1620. }
  1621. return sData, err, r.Page, r.PageSize, total
  1622. }
  1623. // MyDelistingApply 询价-出售
  1624. type MyDelistingApply struct {
  1625. ZSALLPROPERTIES string `json:"zsallproperties" xorm:"ZSALLPROPERTIES"` //
  1626. ZSTABLEDISPLAY string `json:"zstabledisplay" xorm:"ZSTABLEDISPLAY"` //
  1627. BUYUSERNAME string `json:"buyusername" xorm:"BUYUSERNAME"` // 买方
  1628. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  1629. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1630. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1631. ZSCOLORTYPEDISPLAY string `json:"zscolortypedisplay" xorm:"ZSCOLORTYPEDISPLAY"` //
  1632. ZSCLARITYTYPEDISPLAY string `json:"zsclaritytypedisplay" xorm:"ZSCLARITYTYPEDISPLAY"` //
  1633. ZSCUTTYPEDISPLAY string `json:"zscuttypedisplay" xorm:"ZSCUTTYPEDISPLAY"` //
  1634. ZSSYMMETRYTYPEDISPLAY string `json:"zssymmetrytypedisplay" xorm:"ZSSYMMETRYTYPEDISPLAY"` //
  1635. ZSPOLISHTYPEDISPLAY string `json:"zspolishtypedisplay" xorm:"ZSPOLISHTYPEDISPLAY"` //
  1636. ZSFLUORESCENCETYPEDISPLAY string `json:"zsfluorescencetypedisplay" xorm:"ZSFLUORESCENCETYPEDISPLAY"` //
  1637. ZSSIZEDISPLAY string `json:"zssizedisplay" xorm:"ZSSIZEDISPLAY"` //
  1638. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1639. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1640. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1641. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1642. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1643. WAREHOUSEINFOSDISPLAY string `json:"warehouseinfosdisplay" xorm:"WAREHOUSEINFOSDISPLAY"` //
  1644. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  1645. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  1646. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  1647. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 克拉重量
  1648. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` // 价格单位
  1649. SELLDELISTINGAPPLYID string `json:"selldelistingapplyid" xorm:"SELLDELISTINGAPPLYID1"` // [询价单号]卖摘牌申请ID(916+Unix秒时间戳(10位)+xxxxxx)
  1650. BUYWRTRADEORDERID string `json:"buywrtradeorderid" xorm:"BUYWRTRADEORDERID1" form:"buywrtradeorderid"` // 买委托单ID
  1651. BUYUSERID int64 `json:"buyuserid" xorm:"BUYUSERID"` // 买方用户ID
  1652. SELLUSERID int64 `json:"selluserid" xorm:"SELLUSERID" form:"userid" binding:"required"` // 卖方用户ID
  1653. SELLACCOUNTID int64 `json:"sellaccountid" xorm:"SELLACCOUNTID"` // 卖方账户ID
  1654. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  1655. WRFACTORTYPEID string `json:"wrfactortypeid" xorm:"WRFACTORTYPEID1"` // 仓单要素类型ID
  1656. APPLYQTY float64 `json:"applyqty" xorm:"APPLYQTY"` // 申请数量
  1657. APPLYPRICE float64 `json:"applyprice" xorm:"APPLYPRICE"` // 申请价格
  1658. APPLYSTATUS int32 `json:"applystatus" xorm:"APPLYSTATUS" form:"applystatus"` // 申请状态 - 1:待确认 2:已确认 3:已拒绝 4:已撤销 5:系统撤销 6:处理失败 7:确认中
  1659. APPLYREMARK string `json:"applyremark" xorm:"APPLYREMARK"` // 申请备注
  1660. APPLYTIME string `json:"applytime" xorm:"APPLYTIME1"` // 申请时间
  1661. AUDITREMARK string `json:"auditremark" xorm:"AUDITREMARK"` // 确认备注
  1662. SELLTRADEORDERID string `json:"selltradeorderid" xorm:"SELLTRADEORDERID1"` // 卖方委托ID(买方确认成交后更新)
  1663. AUDITTIME time.Time `json:"audittime" xorm:"AUDITTIME"` // 确认时间
  1664. LADINGBILLID string `json:"ladingbillid" xorm:"LADINGBILLID1"` // 卖方提单ID
  1665. SUBNUM int32 `json:"subnum" xorm:"SUBNUM"` // 卖方提单子单号
  1666. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  1667. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  1668. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 卖方
  1669. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` // 证书类型
  1670. ZSCERTTYPE int32 `json:"zscerttype" xorm:"ZSCERTTYPE"` // 证书类型 - 枚举”ZSCertType“ - 类型:2,4,5
  1671. CERNO string `json:"cerno" xorm:"CERNO"` // 证书编号 - 类型:2,4,5
  1672. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价
  1673. TYPE int `json:"-" form:"type"` // 查询类型 - 0:我的询价 1:我订单的询价
  1674. PageEx `xorm:"extends"` // 页码信息
  1675. }
  1676. func (r *MyDelistingApply) calc() {
  1677. }
  1678. func (r *MyDelistingApply) buildSql() string {
  1679. var sqlId utils.SQLVal = `
  1680. SELECT
  1681. q.GOODSNO,
  1682. q.PRICE,
  1683. q.WEIGHT,
  1684. q.ZSCURRENCYTYPEDISPLAYUNIT,
  1685. p.ZSALLPROPERTIES ,
  1686. p.ZSTABLEDISPLAY ,
  1687. p.BUYUSERNAME ,
  1688. p.ZSCATEGORYDISPLAY ,
  1689. p.ZSCURRENCYTYPEDISPLAY ,
  1690. p.ZSSHAPETYPEDISPLAY ,
  1691. p.ZSCOLORTYPEDISPLAY ,
  1692. p.ZSCLARITYTYPEDISPLAY ,
  1693. p.ZSCUTTYPEDISPLAY ,
  1694. p.ZSSYMMETRYTYPEDISPLAY ,
  1695. p.ZSPOLISHTYPEDISPLAY ,
  1696. p.ZSFLUORESCENCETYPEDISPLAY,
  1697. p.ZSSIZEDISPLAY ,
  1698. p.ZSCRYSTALTYPEDISPLAY ,
  1699. p.ZSSTYLETYPEDISPLAY ,
  1700. p.ZSCZCOLOR1TYPEDISPLAY ,
  1701. p.ZSCZCOLOR2TYPEDISPLAY ,
  1702. p.ZSCZCOLOR3TYPEDISPLAY ,
  1703. p.WAREHOUSEINFOSDISPLAY ,
  1704. CASE WHEN
  1705. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  1706. ELSE q.SIZE1
  1707. END AS SIZEDISPLAY,
  1708. to_char(t.APPLYTIME, 'yyyy-mm-dd hh24:mi:ss') APPLYTIME1,
  1709. to_char(t.SELLDELISTINGAPPLYID) SELLDELISTINGAPPLYID1,
  1710. to_char(t.BUYWRTRADEORDERID) BUYWRTRADEORDERID1,
  1711. t.BUYUSERID ,
  1712. t.SELLUSERID ,
  1713. t.SELLACCOUNTID ,
  1714. t.WRSTANDARDID ,
  1715. to_char(t.WRFACTORTYPEID) WRFACTORTYPEID1 ,
  1716. t.APPLYQTY ,
  1717. t.APPLYPRICE ,
  1718. t.APPLYSTATUS ,
  1719. t.APPLYREMARK ,
  1720. t.APPLYTIME ,
  1721. t.AUDITREMARK ,
  1722. to_char(t.SELLTRADEORDERID) SELLTRADEORDERID1,
  1723. t.AUDITTIME ,
  1724. to_char(t.LADINGBILLID) LADINGBILLID1 ,
  1725. t.SUBNUM ,
  1726. t.MARKETID,
  1727. d.PERFORMANCETEMPLATEID,
  1728. ua1.ACCOUNTNAME SELLUSERNAME,
  1729. q.ZSCERTTYPEDISPLAY,
  1730. q.ZSCERTTYPE,
  1731. q.CERNO,
  1732. q.PRICEPER
  1733. FROM GZ_SellDelistingApply t
  1734. LEFT JOIN VIEW_GZ_BUYORDERDETAIL_QUERY p ON t.BUYWRTRADEORDERID = p.WRTRADEORDERID
  1735. LEFT JOIN view_GZ_WRStandard_Ex_Query q ON t.WRSTANDARDID = q.WRSTANDARDID
  1736. LEFT JOIN Wrtrade_Orderdetail d ON d.wrtradeorderid = t.BUYWRTRADEORDERID
  1737. LEFT JOIN UserAccount ua1 ON t.SELLUSERID = ua1.userid
  1738. WHERE t.marketid=67201
  1739. `
  1740. if r.TYPE == 0 {
  1741. sqlId.And("t.SELLUSERID", r.SELLUSERID)
  1742. } else {
  1743. sqlId.And("t.BuyUserID", r.SELLUSERID)
  1744. }
  1745. sqlId.AndEx("t.APPLYSTATUS", r.APPLYSTATUS, r.APPLYSTATUS > 0)
  1746. if r.BUYWRTRADEORDERID != "" {
  1747. sqlId.JoinFormat(" and t.BUYWRTRADEORDERID = %v", r.BUYWRTRADEORDERID)
  1748. }
  1749. sqlId.OrderByDesc("t.SELLDELISTINGAPPLYID")
  1750. sqlId.Page(r.Page, r.PageSize)
  1751. return sqlId.String()
  1752. }
  1753. func (r *MyDelistingApply) GetDataByPage() (interface{}, error, int, int, int) {
  1754. sData := make([]MyDelistingApply, 0)
  1755. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  1756. total := 0
  1757. for i := range sData {
  1758. sData[i].calc()
  1759. total = sData[i].Total
  1760. }
  1761. return sData, err, r.Page, r.PageSize, total
  1762. }
  1763. // GZGoods 钻石信息
  1764. type GZGoods struct {
  1765. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES"` // 商品(查询字段-模糊查询)
  1766. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 账户名称(机构名称)
  1767. SELLMOBILE string `json:"-" xorm:"SELLMOBILE"` // 手机号码(加密存储)
  1768. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  1769. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1770. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  1771. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  1772. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1773. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  1774. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  1775. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  1776. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  1777. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  1778. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  1779. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  1780. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  1781. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  1782. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  1783. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  1784. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  1785. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  1786. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1787. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1788. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1789. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1790. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1791. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  1792. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  1793. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  1794. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  1795. GOODSNO string `json:"goodsno" xorm:"GOODSNO" form:"goodsno" binding:"required"` // 商品编号
  1796. WAREHOUSEID int64 `json:"warehouseid" xorm:"WAREHOUSEID"` // 仓库ID
  1797. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` // 市场价
  1798. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` // 商品照片(相对地址)
  1799. WRPATH string `json:"wrpath" xorm:"WRPATH"` // 仓单扫描件(相对地址)
  1800. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  1801. PRICE float64 `json:"price" xorm:"PRICE"` // 总价(价格) - 类型:1,2,3,4,5
  1802. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  1803. WEIGHTAVG float64 `json:"weightavg" xorm:"WEIGHTAVG"` // 平均单颗重量 - 类型:1,3
  1804. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价 - 类型:1,2,3,5
  1805. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  1806. ZSCOLORTYPE1 int32 `json:"zscolortype1" xorm:"ZSCOLORTYPE1"` // 颜色1 - 枚举”ZSColorType“ - 类型:1,2,3,4
  1807. ZSCOLORTYPE2 int32 `json:"zscolortype2" xorm:"ZSCOLORTYPE2"` // 颜色2 - 枚举”ZSColorType“ - 类型:1,3
  1808. ZSCLARITYTYPE1 int32 `json:"zsclaritytype1" xorm:"ZSCLARITYTYPE1"` // 净度1 - 枚举”ZSClarityType“ - 类型:1,2,3,4,5
  1809. ZSCLARITYTYPE2 int32 `json:"zsclaritytype2" xorm:"ZSCLARITYTYPE2"` // 净度2 - 枚举”ZSClarityType“ - 类型:1,3
  1810. ZSCUTTYPE1 int32 `json:"zscuttype1" xorm:"ZSCUTTYPE1"` // 切工1 - 枚举”ZSCutType“ - 类型:1,2,4,5
  1811. ZSCUTTYPE2 int32 `json:"zscuttype2" xorm:"ZSCUTTYPE2"` // 切工2 - 枚举”ZSCutType“ - 类型:1
  1812. ZSSYMMETRYTYPE1 int32 `json:"zssymmetrytype1" xorm:"ZSSYMMETRYTYPE1"` // 对称度1 - 枚举”ZSSymmetryType“ - 类型:1,2,4,5
  1813. ZSSYMMETRYTYPE2 int32 `json:"zssymmetrytype2" xorm:"ZSSYMMETRYTYPE2"` // 对称度2 - 枚举”ZSSymmetryType“ - 类型:1
  1814. ZSPOLISHTYPE1 int32 `json:"zspolishtype1" xorm:"ZSPOLISHTYPE1"` // 抛光度1 - 枚举”ZSPolishType“ - 类型:1,2,4,5
  1815. ZSPOLISHTYPE2 int32 `json:"zspolishtype2" xorm:"ZSPOLISHTYPE2"` // 抛光度2 - 枚举”ZSPolishType“ - 类型:1
  1816. ZSFLUORESCENCETYPE1 int32 `json:"zsfluorescencetype1" xorm:"ZSFLUORESCENCETYPE1"` // 荧光1 - 枚举”ZSFluorescenceType“ - 类型:1,2,3,4,5
  1817. ZSFLUORESCENCETYPE2 int32 `json:"zsfluorescencetype2" xorm:"ZSFLUORESCENCETYPE2"` // 荧光2 - 枚举”ZSFluorescenceType” - 类型:1,3
  1818. SIZE1 string `json:"size1" xorm:"SIZE1"` // 尺寸1 - 类型:2,4,5
  1819. SIZE2 string `json:"size2" xorm:"SIZE2"` // 尺寸2 - 类型:2,4,5
  1820. SIZE3 string `json:"size3" xorm:"SIZE3"` // 尺寸3 - 类型:2,4,5
  1821. ZSCERTTYPE int32 `json:"zscerttype" xorm:"ZSCERTTYPE"` // 证书类型 - 枚举”ZSCertType“ - 类型:2,4,5
  1822. CERNO string `json:"cerno" xorm:"CERNO"` // 证书编号 - 类型:2,4,5
  1823. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型范围 - 枚举“ZSCrystalType“ - 类型:3, 多个,逗号分隔
  1824. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` // 金伯利证书编号 - 类型:3
  1825. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地 - 类型:3
  1826. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` // 金伯利证书重量 - 类型:3
  1827. KPPATH string `json:"kppath" xorm:"KPPATH"` // 金伯利证书图片(相对地址) - 类型:3
  1828. ZSSTYLETYPE int32 `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 类型:4
  1829. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` // 配石描述 - 类型:4
  1830. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` // 镶嵌材料 - 类型:4
  1831. ZSCZCOLOR1TYPE int32 `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1 - 枚举”ZSCZColor1Type“ - 类型:5
  1832. ZSCZCOLOR2TYPE int32 `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2 - 枚举”ZSCZColor2Type“ - 类型:5
  1833. ZSCZCOLOR3TYPE int32 `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3 - 枚举”ZSCZColor3Type“ - 类型:5
  1834. ISVALID int32 `json:"isvalid" xorm:"ISVALID"` // 是否有效 - 0:无效 1:有效
  1835. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  1836. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  1837. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  1838. REMAINQTY float64 `json:"remainqty" xorm:"REMAINQTY"` // 剩余重量
  1839. ADDRESS string `json:"address" xorm:"ADDRESS"` // 详细地址
  1840. COUNTRYID int32 `json:"-" xorm:"COUNTRYID"` // 国家
  1841. PROVINCEID int32 `json:"-" xorm:"PROVINCEID"` // 省
  1842. CITYID int32 `json:"-" xorm:"CITYID"` // 市
  1843. DISTRICTID int32 `json:"-" xorm:"DISTRICTID"` // 区
  1844. COUNTRYNAME string `json:"countryname"` // 国家名称
  1845. CITYNAME string `json:"cityname"` // 城市名称
  1846. PROVINCENAME string `json:"provincename"` // 省名称
  1847. DISTRICTNAME string `json:"districtname"` // 地区名称
  1848. MOBILE string `json:"mobile"` // 手机号码
  1849. }
  1850. func (r *GZGoods) calc() {
  1851. key, _ := hex.DecodeString(utils.AESSecretKey)
  1852. if len(r.SELLMOBILE) > 0 {
  1853. // 手机号码解密
  1854. if phonenum, err := hex.DecodeString(r.SELLMOBILE); err == nil { // hex -> []byte
  1855. if mobile, err := utils.AESDecrypt(phonenum, key); err == nil {
  1856. r.MOBILE = string(mobile)
  1857. }
  1858. }
  1859. }
  1860. r.COUNTRYNAME = mtpcache.GetDivisionName(r.COUNTRYID)
  1861. r.CITYNAME = mtpcache.GetDivisionName(r.CITYID)
  1862. r.PROVINCENAME = mtpcache.GetDivisionName(r.PROVINCEID)
  1863. r.DISTRICTNAME = mtpcache.GetDivisionName(r.DISTRICTID)
  1864. }
  1865. func (r *GZGoods) buildSql() string {
  1866. var sqlId utils.SQLVal = `
  1867. SELECT
  1868. t.*,
  1869. u.MOBILE,
  1870. to_char(od.WRTRADEORDERID) WRTRADEORDERID1,
  1871. od.PERFORMANCETEMPLATEID,
  1872. ((od.ORDERQTY - od.TRADEQTY) / 100) REMAINQTY,
  1873. wh.ADDRESS ,
  1874. wh.COUNTRYID ,
  1875. wh.PROVINCEID,
  1876. wh.CITYID ,
  1877. wh.DISTRICTID,
  1878. CASE WHEN
  1879. t.SIZE1 IS NOT NULL AND t.SIZE2 IS NOT NULL AND t.SIZE2 IS NOT NULL THEN t.SIZE1 || '*' || t.SIZE2 || '*' || t.SIZE3
  1880. ELSE t.SIZE1
  1881. END AS SIZEDISPLAY
  1882. FROM View_GZ_WRStandard_Ex_Query t
  1883. LEFT JOIN userinfo u ON u.USERID = t.USERID
  1884. LEFT JOIN WRTrade_OrderDetail od ON od.wrstandardid = t.wrstandardid AND od.WRTradeOrderStatus in (3,7)
  1885. LEFT JOIN WAREHOUSEINFO wh ON wh.AUTOID = t.WAREHOUSEID
  1886. WHERE GOODSNO = '%v'
  1887. `
  1888. sqlId.FormatParam(r.GOODSNO)
  1889. return sqlId.String()
  1890. }
  1891. // GetDataEx 从数据库中查询数据
  1892. func (r *GZGoods) GetDataEx() (interface{}, error) {
  1893. e := db.GetEngine()
  1894. s := e.SQL(r.buildSql())
  1895. var sData GZGoods
  1896. has, err := s.Get(&sData)
  1897. if err != nil {
  1898. return nil, err
  1899. }
  1900. if !has {
  1901. return struct{}{}, nil
  1902. }
  1903. sData.calc()
  1904. return sData, nil
  1905. }
  1906. // MyPerformanc 我的履约
  1907. type MyPerformanc struct {
  1908. PERFORMANCEPLANID string `json:"performanceplanid" xorm:"PERFORMANCEPLANID1"` // 履约计划ID(130+yyMMddHHmmss+xxxx)
  1909. RELATEDORDERID string `json:"relatedorderid" xorm:"RELATEDORDERID1"` // 关联单号(履约类型的关联单号)
  1910. AMOUNT float64 `json:"amount" xorm:"AMOUNT"` // 履约金额
  1911. PAYMENTTYPE int32 `json:"paymenttype" xorm:"PAYMENTTYPE"` // 买方支付方式 - 1:冻结 2:扣款
  1912. PERFORMANCESTATUS int32 `json:"performancestatus" xorm:"PERFORMANCESTATUS"` // 履约状态 - 1:待激活 2:正常 3:处理错误 4:违约待处理 5:违约处理中 6:完成 7.违约已完成 8:释放冻结失败 9:超时待处理 10:超时关闭
  1913. CURSTEPID string `json:"curstepid" xorm:"CURSTEPID1"` // 当前步骤ID
  1914. BUYPAIDAMOUNT float64 `json:"buypaidamount" xorm:"BUYPAIDAMOUNT"` // 买方已冻/已扣金额
  1915. SELLRECEIVEDAMOUNT float64 `json:"sellreceivedamount" xorm:"SELLRECEIVEDAMOUNT"` // 卖方已收金额
  1916. BUYERFREEZEAMOUNT float64 `json:"buyerfreezeamount" xorm:"BUYERFREEZEAMOUNT"` // 买方履约前冻结资金
  1917. BUYERFREEZEAMOUNTREMAIN float64 `json:"buyerfreezeamountremain" xorm:"BUYERFREEZEAMOUNTREMAIN"` // 买方履约前冻结资金剩余
  1918. SELLERFREEZEAMOUNT float64 `json:"sellerfreezeamount" xorm:"SELLERFREEZEAMOUNT"` // 卖方履约前冻结资金
  1919. SELLERFREEZEAMOUNTREMAIN float64 `json:"sellerfreezeamountremain" xorm:"SELLERFREEZEAMOUNTREMAIN"` // 卖方履约前冻结资金剩余
  1920. OVERSHORTAMOUNT float64 `json:"overshortamount" xorm:"OVERSHORTAMOUNT"` // 溢短金额
  1921. BUYERINFO string `json:"buyerinfo" xorm:"BUYERINFO"` // 买方联系信息 - 存JSON字符串, 根据枚举‘BuyerContactInfo',显示\隐藏字段,若数据不为JSON,则直接显示{ "ContactInfo": "xxxxxxxx", "ReceiveInfo": "xxxxxxxxx", "ReceiptInfo": "xxxxxxxxxxxx"}
  1922. SELLERINFO string `json:"sellerinfo" xorm:"SELLERINFO"` // 卖方联系信息 - 存JSON字符串, 根据枚举‘SellerContactInfo',显示\隐藏字段,若数据不为JSON,则直接显示{ "ContactInfo": "xxxxxxxx"}
  1923. BUYACCOUNTID int64 `json:"buyaccountid" xorm:"BUYACCOUNTID"` // 买方账号
  1924. BUYTODAYAMOUNT float64 `json:"buytodayamount" xorm:"BUYTODAYAMOUNT"` // 买方今日扣/冻金额 (待开市时清零)
  1925. SELLTODAYAMOUNT float64 `json:"selltodayamount" xorm:"SELLTODAYAMOUNT"` // 卖方今日收取金额(待开市时清零)
  1926. STEPTYPEID int32 `json:"steptypeid" xorm:"STEPTYPEID"` // 履约步骤类型ID - 1:买方支付 2:卖方收款 3:买方自提 4:卖方发货 5:买方确认货 6:卖方发票 7:买方确认票 8:仓单转移 9:释放卖方冻结 10:货款溢短 11:生成合同[中江] 12:运费 90:确认支付 91. 确认放行 92买方支付(直接扣款) 用于-1模板“
  1927. REMAINDAYS int32 `json:"remaindays" xorm:"REMAINDAYS"` // 剩余天数
  1928. ACCOUNTNAME string `json:"accountname" xorm:"ACCOUNTNAME"` // [对手方]账户名称(机构名称)
  1929. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  1930. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  1931. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1932. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  1933. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  1934. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1935. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  1936. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  1937. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  1938. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  1939. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  1940. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  1941. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  1942. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  1943. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  1944. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  1945. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  1946. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  1947. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  1948. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1949. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1950. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1951. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1952. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1953. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  1954. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价
  1955. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  1956. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  1957. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  1958. EXECUTESIDE int32 `json:"executeside" xorm:"EXECUTESIDE"` // 步骤执行方 - 1:买方 2:卖方
  1959. USERID int64 `json:"-" form:"userid" binding:"required"` // 用户ID
  1960. BuyOrSell int64 `json:"buyorsell" form:"buyorsell"` // 方向 - 0:买 1:卖
  1961. IsHis bool `json:"-" form:"ishis"` // 是否历史查询
  1962. BeginDate string `json:"-" form:"begindate"` // 开始交易日
  1963. EndDate string `json:"-" form:"enddate"` // 结束交易日
  1964. PageEx `xorm:"extends"` // 页码信息
  1965. }
  1966. func (r *MyPerformanc) calc(req *MyPerformanc) {
  1967. r.BuyOrSell = req.BuyOrSell
  1968. }
  1969. func (r *MyPerformanc) buildSql() string {
  1970. var sqlId utils.SQLVal = `
  1971. SELECT
  1972. pp.BUYTODAYAMOUNT,
  1973. pp.SELLTODAYAMOUNT,
  1974. to_char(pp.PERFORMANCEPLANID) PERFORMANCEPLANID1,
  1975. to_char(pp.RELATEDORDERID) RELATEDORDERID1 ,
  1976. pp.AMOUNT ,
  1977. pp.PAYMENTTYPE ,
  1978. pp.PERFORMANCESTATUS ,
  1979. to_char(pp.CURSTEPID) CURSTEPID1 ,
  1980. pp.BUYPAIDAMOUNT ,
  1981. pp.SELLRECEIVEDAMOUNT ,
  1982. pp.BUYERFREEZEAMOUNT ,
  1983. pp.BUYERFREEZEAMOUNTREMAIN ,
  1984. pp.SELLERFREEZEAMOUNT ,
  1985. pp.SELLERFREEZEAMOUNTREMAIN,
  1986. pp.OVERSHORTAMOUNT ,
  1987. pp.BUYERINFO ,
  1988. pp.SELLERINFO ,
  1989. pp.BUYACCOUNTID,
  1990. ps.STEPTYPEID,
  1991. ua.ACCOUNTNAME ,
  1992. nvl(wr.GOODSNO, wd.wrstandardname) GOODSNO,
  1993. wr.ZSALLPROPERTIES ,
  1994. wr.ZSCATEGORYDISPLAY ,
  1995. wr.ZSCURRENCYTYPEDISPLAY ,
  1996. wr.ZSCURRENCYTYPEDISPLAYUNIT ,
  1997. wr.WAREHOUSENAMEDISPLAY ,
  1998. wr.ZSSHAPETYPEDISPLAY ,
  1999. wr.ZSCOLORTYPE1DISPLAY ,
  2000. wr.ZSCOLORTYPE2DISPLAY ,
  2001. wr.ZSCLARITYTYPE1DISPLAY ,
  2002. wr.ZSCLARITYTYPE2DISPLAY ,
  2003. wr.ZSCUTTYPE1DISPLAY ,
  2004. wr.ZSCUTTYPE2DISPLAY ,
  2005. wr.ZSSYMMETRYTYPE1DISPLAY ,
  2006. wr.ZSSYMMETRYTYPE2DISPLAY ,
  2007. wr.ZSPOLISHTYPE1DISPLAY ,
  2008. wr.ZSPOLISHTYPE2DISPLAY ,
  2009. wr.ZSFLUORESCENCETYPE1DISPLAY,
  2010. wr.ZSFLUORESCENCETYPE2DISPLAY,
  2011. wr.ZSCERTTYPEDISPLAY ,
  2012. wr.ZSCRYSTALTYPEDISPLAY ,
  2013. wr.ZSSTYLETYPEDISPLAY ,
  2014. wr.ZSCZCOLOR1TYPEDISPLAY ,
  2015. wr.ZSCZCOLOR2TYPEDISPLAY ,
  2016. wr.ZSCZCOLOR3TYPEDISPLAY ,
  2017. wr.PRICE ,
  2018. wr.PRICEPER ,
  2019. CASE WHEN
  2020. wr.SIZE1 IS NOT NULL AND wr.SIZE2 IS NOT NULL AND wr.SIZE2 IS NOT NULL THEN wr.SIZE1 || '*' || wr.SIZE2 || '*' || wr.SIZE3
  2021. ELSE wr.SIZE1
  2022. END AS SIZEDISPLAY,
  2023. ps.REMAINDAYS,
  2024. wr.WEIGHT,
  2025. ps.EXECUTESIDE
  2026. FROM PerformancePlan pp
  2027. left join PerformanceStep ps on pp.curstepid = ps.performancestepid
  2028. inner join wrtrade_tradedetail td on pp.relatedorderid = td.wrtradedetailid
  2029. inner join taaccount ta on td.accountid = ta.accountid
  2030. inner join taaccount ta2 on td.matchaccountid = ta2.accountid
  2031. inner join useraccount ua on ta2.relateduserid = ua.userid
  2032. left join wrfactortype ft on td.wrfactortypeid = ft.wrfactortypeid
  2033. left join View_GZ_WRStandard_Ex_Query wr on ft.wrstandardid = wr.wrstandardid
  2034. left join wrstandard wd on wd.wrstandardid = ft.wrstandardid
  2035. where 1=1
  2036. `
  2037. sqlId.And("ta.relateduserid", r.USERID)
  2038. sqlId.And("td.buyorsell", r.BuyOrSell)
  2039. sqlId.AndLike("wr.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  2040. sqlId.OrderByDesc("pp.PERFORMANCEPLANID")
  2041. sqlId.Page(r.Page, r.PageSize)
  2042. return sqlId.String()
  2043. }
  2044. func (r *MyPerformanc) buildSql_His() string {
  2045. var sqlId utils.SQLVal = `
  2046. SELECT
  2047. pp.BUYTODAYAMOUNT,
  2048. pp.SELLTODAYAMOUNT,
  2049. to_char(pp.PERFORMANCEPLANID) PERFORMANCEPLANID1,
  2050. pp.RELATEDORDERID ,
  2051. pp.AMOUNT ,
  2052. pp.PAYMENTTYPE ,
  2053. pp.PERFORMANCESTATUS ,
  2054. pp.CURSTEPID ,
  2055. pp.BUYPAIDAMOUNT ,
  2056. pp.SELLRECEIVEDAMOUNT ,
  2057. pp.BUYERFREEZEAMOUNT ,
  2058. pp.BUYERFREEZEAMOUNTREMAIN ,
  2059. pp.SELLERFREEZEAMOUNT ,
  2060. pp.SELLERFREEZEAMOUNTREMAIN,
  2061. pp.OVERSHORTAMOUNT ,
  2062. pp.BUYERINFO ,
  2063. pp.SELLERINFO ,
  2064. pp.BUYACCOUNTID,
  2065. ps.STEPTYPEID,
  2066. ua.ACCOUNTNAME ,
  2067. nvl(wr.GOODSNO, wd.wrstandardname) GOODSNO,
  2068. wr.ZSALLPROPERTIES ,
  2069. wr.ZSCATEGORYDISPLAY ,
  2070. wr.ZSCURRENCYTYPEDISPLAY ,
  2071. wr.ZSCURRENCYTYPEDISPLAYUNIT ,
  2072. wr.WAREHOUSENAMEDISPLAY ,
  2073. wr.ZSSHAPETYPEDISPLAY ,
  2074. wr.ZSCOLORTYPE1DISPLAY ,
  2075. wr.ZSCOLORTYPE2DISPLAY ,
  2076. wr.ZSCLARITYTYPE1DISPLAY ,
  2077. wr.ZSCLARITYTYPE2DISPLAY ,
  2078. wr.ZSCUTTYPE1DISPLAY ,
  2079. wr.ZSCUTTYPE2DISPLAY ,
  2080. wr.ZSSYMMETRYTYPE1DISPLAY ,
  2081. wr.ZSSYMMETRYTYPE2DISPLAY ,
  2082. wr.ZSPOLISHTYPE1DISPLAY ,
  2083. wr.ZSPOLISHTYPE2DISPLAY ,
  2084. wr.ZSFLUORESCENCETYPE1DISPLAY,
  2085. wr.ZSFLUORESCENCETYPE2DISPLAY,
  2086. wr.ZSCERTTYPEDISPLAY ,
  2087. wr.ZSCRYSTALTYPEDISPLAY ,
  2088. wr.ZSSTYLETYPEDISPLAY ,
  2089. wr.ZSCZCOLOR1TYPEDISPLAY ,
  2090. wr.ZSCZCOLOR2TYPEDISPLAY ,
  2091. wr.ZSCZCOLOR3TYPEDISPLAY ,
  2092. wr.PRICE ,
  2093. wr.PRICEPER ,
  2094. CASE WHEN
  2095. wr.SIZE1 IS NOT NULL AND wr.SIZE2 IS NOT NULL AND wr.SIZE2 IS NOT NULL THEN wr.SIZE1 || '*' || wr.SIZE2 || '*' || wr.SIZE3
  2096. ELSE wr.SIZE1
  2097. END AS SIZEDISPLAY,
  2098. ps.REMAINDAYS,
  2099. wr.WEIGHT,
  2100. ps.EXECUTESIDE
  2101. FROM HIS_PerformancePlan pp
  2102. left join HIS_PerformanceStep ps on pp.curstepid = ps.performancestepid and ps.isvaliddata = 1
  2103. inner join HIS_wrtrade_tradedetail td on pp.relatedorderid = td.wrtradedetailid and td.isvaliddata = 1
  2104. inner join taaccount ta on td.accountid = ta.accountid
  2105. inner join taaccount ta2 on td.matchaccountid = ta2.accountid
  2106. inner join useraccount ua on ta2.relateduserid = ua.userid
  2107. left join wrfactortype ft on td.wrfactortypeid = ft.wrfactortypeid
  2108. left join View_GZ_WRStandard_Ex_Query wr on ft.wrstandardid = wr.wrstandardid
  2109. left join wrstandard wd on wd.wrstandardid = ft.wrstandardid
  2110. where pp.isvaliddata =1
  2111. `
  2112. sqlId.And("ta.relateduserid", r.USERID)
  2113. sqlId.And("td.buyorsell", r.BuyOrSell)
  2114. sqlId.AndLike("wr.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  2115. if r.BeginDate != "" && r.EndDate != "" {
  2116. sqlId.JoinFormat(" AND (pp.histradedate >= '%v' AND pp.histradedate <='%v')", r.BeginDate, r.EndDate)
  2117. }
  2118. sqlId.OrderByDesc("pp.PERFORMANCEPLANID")
  2119. sqlId.Page(r.Page, r.PageSize)
  2120. return sqlId.String()
  2121. }
  2122. func (r *MyPerformanc) GetDataByPage() (interface{}, error, int, int, int) {
  2123. sData := make([]MyPerformanc, 0)
  2124. sql := ""
  2125. if r.IsHis {
  2126. sql = r.buildSql_His()
  2127. } else {
  2128. sql = r.buildSql()
  2129. }
  2130. err := db.GetEngine().SQL(sql).Find(&sData)
  2131. total := 0
  2132. for i := range sData {
  2133. sData[i].calc(r)
  2134. total = sData[i].Total
  2135. }
  2136. return sData, err, r.Page, r.PageSize, total
  2137. }
  2138. // MyFavorite 我的收藏
  2139. type MyFavorite struct {
  2140. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  2141. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  2142. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  2143. WRFACTORTYPEID string `json:"wrfactortypeid" xorm:"WRFACTORTYPEID1"` // 仓单要素类型ID/商品ID(77)
  2144. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID(自增 SEQ_GOODS 确保不重复)
  2145. FAVORITESTATUS int32 `json:"favoritestatus" xorm:"FAVORITESTATUS"` // 收藏状态 - 1:正常 2:失效
  2146. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  2147. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` // 市场价
  2148. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 卖家
  2149. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  2150. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  2151. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  2152. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` // 仓库名称
  2153. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  2154. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  2155. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  2156. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  2157. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  2158. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  2159. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  2160. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  2161. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  2162. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  2163. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  2164. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  2165. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  2166. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  2167. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  2168. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  2169. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  2170. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  2171. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  2172. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  2173. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  2174. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价
  2175. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  2176. WEIGHTAVG float64 `json:"weightavg" xorm:"WEIGHTAVG"` // 平均单颗重量 - 类型:1,3
  2177. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  2178. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  2179. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` // 商品照片(相对地址)
  2180. ACCOUNTNAME string `json:"accountname" xorm:"ACCOUNTNAME"` // 账户名称(机构名称)
  2181. PageEx `xorm:"extends"` // 页码信息
  2182. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类,格式: 1,2,3
  2183. }
  2184. func (r *MyFavorite) calc() {
  2185. }
  2186. func (r *MyFavorite) buildSql() string {
  2187. var sqlId utils.SQLVal = `
  2188. SELECT
  2189. t.USERID ,
  2190. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  2191. t.BUYORSELL ,
  2192. to_char(t.WRFACTORTYPEID) WRFACTORTYPEID1,
  2193. t.WRSTANDARDID ,
  2194. t.FAVORITESTATUS,
  2195. t.MARKETID ,
  2196. q.GOODSNO,
  2197. q.ZSCATEGORYDISPLAY ,
  2198. q.ZSCURRENCYTYPEDISPLAY ,
  2199. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  2200. q.WAREHOUSENAMEDISPLAY ,
  2201. q.ZSSHAPETYPEDISPLAY ,
  2202. q.ZSCOLORTYPE1DISPLAY ,
  2203. q.ZSCOLORTYPE2DISPLAY ,
  2204. q.ZSCLARITYTYPE1DISPLAY ,
  2205. q.ZSCLARITYTYPE2DISPLAY ,
  2206. q.ZSCUTTYPE1DISPLAY ,
  2207. q.ZSCUTTYPE2DISPLAY ,
  2208. q.ZSSYMMETRYTYPE1DISPLAY ,
  2209. q.ZSSYMMETRYTYPE2DISPLAY ,
  2210. q.ZSPOLISHTYPE1DISPLAY ,
  2211. q.ZSPOLISHTYPE2DISPLAY ,
  2212. q.ZSFLUORESCENCETYPE1DISPLAY,
  2213. q.ZSFLUORESCENCETYPE2DISPLAY,
  2214. q.ZSCERTTYPEDISPLAY ,
  2215. q.ZSCRYSTALTYPEDISPLAY ,
  2216. q.ZSSTYLETYPEDISPLAY ,
  2217. q.ZSCZCOLOR1TYPEDISPLAY ,
  2218. q.ZSCZCOLOR2TYPEDISPLAY ,
  2219. q.ZSCZCOLOR3TYPEDISPLAY ,
  2220. q.PRICE ,
  2221. q.PRICEPER ,
  2222. q.WEIGHT,
  2223. q.WEIGHTAVG,
  2224. q.ZSCATEGORY,
  2225. q.IMAGEPATH,
  2226. q.MARKETPRICE,
  2227. q.SELLUSERNAME,
  2228. CASE WHEN
  2229. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  2230. ELSE q.SIZE1
  2231. END AS SIZEDISPLAY,
  2232. ua1.ACCOUNTNAME
  2233. FROM Wrtrade_Myfavorite t
  2234. INNER JOIN view_GZ_WRStandard_Ex_Query q ON t.WRSTANDARDID = q.WRSTANDARDID
  2235. INNER JOIN UserAccount ua1 ON t.USERID = ua1.userid
  2236. INNER JOIN wrtrade_orderdetail od on t.wrtradeorderid = od.wrtradeorderid
  2237. WHERE t.marketid=67201
  2238. `
  2239. sqlId.And("t.USERID", r.USERID)
  2240. if r.ZSCATEGORYS != "" {
  2241. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  2242. }
  2243. sqlId.OrderByDesc("t.CREATETIME")
  2244. sqlId.Page(r.Page, r.PageSize)
  2245. return sqlId.String()
  2246. }
  2247. func (r *MyFavorite) GetDataByPage() (interface{}, error, int, int, int) {
  2248. sData := make([]MyFavorite, 0)
  2249. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  2250. total := 0
  2251. for i := range sData {
  2252. sData[i].calc()
  2253. total = sData[i].Total
  2254. }
  2255. return sData, err, r.Page, r.PageSize, total
  2256. }
  2257. // Gzrapaportprice Rapaport最新报价表(广钻)
  2258. type Gzrapaportprice struct {
  2259. ZSSHAPE int32 `json:"-" xorm:"ZSSHAPE" form:"zsshape" binding:"required"` // 形状 - 1:BR(圆形) 2:PS(异形)
  2260. ZSSIZESTART float64 `json:"-" xorm:"ZSSIZESTART"` // 尺寸1
  2261. ZSSIZEEND float64 `json:"-" xorm:"ZSSIZEEND"` // 尺寸2
  2262. ZSCOLOR string `json:"-" xorm:"ZSCOLOR" form:"zscolor" binding:"required"` // 颜色(D-M)
  2263. ZSCLARITY string `json:"-" xorm:"ZSCLARITY" form:"zsclarity" binding:"required"` // 净度
  2264. QUOTEDATE time.Time `json:"-" xorm:"QUOTEDATE"` // 报价日期(yyyyMMdd)
  2265. ZSPRICE float64 `json:"-" xorm:"ZSPRICE"` // 价格(美元)
  2266. CREATETIME time.Time `json:"-" xorm:"CREATETIME"` // 创建时间
  2267. ORDERINDEX int64 `json:"-" xorm:"ORDERINDEX"` // 顺序
  2268. WEIGHT float64 `json:"-" form:"weight" binding:"required"` // 重量
  2269. RATE float64 `json:"-" form:"rate" binding:"required"` // 汇率
  2270. DISCOUNT int `json:"-" form:"discount"` // 折扣(%), 方向(加:10, 减:-10 )
  2271. DOLLAR string `json:"dollar"` // 美元
  2272. RMB string `json:"rmb"` // 人民币
  2273. }
  2274. func (r *Gzrapaportprice) calc(weight, rate float64, discount int) {
  2275. // $(美元值): ZSPRICE * (1+(折扣值/100) * 折扣方向), -- 折扣方向(加:1, 减:-1 )
  2276. // ¥(人民币值):美元值* 汇率;
  2277. dollar := r.ZSPRICE * (1 + (float64(discount) / 100)) * weight
  2278. r.DOLLAR = utils.FormatFloat(dollar, 2)
  2279. r.RMB = utils.FormatFloat(dollar*rate, 2)
  2280. }
  2281. func (r *Gzrapaportprice) buildSql() string {
  2282. var sqlId utils.SQLVal = `
  2283. SELECT
  2284. t.zsprice
  2285. FROM GZ_RapaportPrice t
  2286. WHERE t.zsshape = %v AND t.zscolor = '%v' AND t.zsclarity = '%v'
  2287. `
  2288. sqlId.FormatParam(r.ZSSHAPE, r.ZSCOLOR, r.ZSCLARITY)
  2289. sqlId.JoinFormat(" AND t.zssizestart <= %v AND t.zssizeend >= %v", r.WEIGHT, r.WEIGHT)
  2290. return sqlId.String()
  2291. }
  2292. // GetDataEx 从数据库中查询数据
  2293. func (r *Gzrapaportprice) GetDataEx() (interface{}, error) {
  2294. e := db.GetEngine()
  2295. s := e.SQL(r.buildSql())
  2296. sData := make([]Gzrapaportprice, 0)
  2297. if err := s.Find(&sData); err != nil {
  2298. return nil, err
  2299. }
  2300. for i := range sData {
  2301. sData[i].calc(r.WEIGHT, r.RATE, r.DISCOUNT)
  2302. }
  2303. return sData, nil
  2304. }
  2305. // Gzcertaddressconfig 钻石证书地址配置表
  2306. type Gzcertaddressconfig struct {
  2307. CERTTYPE string `json:"certtype" xorm:"CERTTYPE"` // 证书类型
  2308. ORGCNNAME string `json:"orgcnname" xorm:"ORGCNNAME"` // 机构名称(中文)
  2309. ORGENNAME string `json:"orgenname" xorm:"ORGENNAME"` // 机构名称(英文)
  2310. CERTREGION int32 `json:"certregion" xorm:"CERTREGION"` // 证书地域 - 1:国内 2:国际
  2311. QUERYADDRESS string `json:"queryaddress" xorm:"QUERYADDRESS"` // 查询地址
  2312. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  2313. UPDATETIME time.Time `json:"updatetime" xorm:"UPDATETIME"` // 更新时间
  2314. ORDERINDEX int32 `json:"orderindex" xorm:"ORDERINDEX"` // 显示顺序
  2315. }
  2316. // TableName is GZ_CERTADDRESSCONFIG
  2317. func (r *Gzcertaddressconfig) TableName() string {
  2318. return "GZ_CERTADDRESSCONFIG"
  2319. }
  2320. func (r *Gzcertaddressconfig) GetAll() (data []Gzcertaddressconfig, err error) {
  2321. err = db.GetEngine().Find(&data)
  2322. return
  2323. }
  2324. // Gzcertaddressparam 钻石证书地址参数表
  2325. type Gzcertaddressparam struct {
  2326. CERTTYPE string `json:"certtype" xorm:"CERTTYPE"` // 证书类型
  2327. PARAMKEY string `json:"paramkey" xorm:"PARAMKEY"` // 参数Key
  2328. PARAMNAME string `json:"paramname" xorm:"PARAMNAME"` // 参数名称
  2329. ORDERINDEX int32 `json:"orderindex" xorm:"ORDERINDEX"` // 参数顺序
  2330. UPDATETIME time.Time `json:"updatetime" xorm:"UPDATETIME"` // 更新时间
  2331. }
  2332. // TableName is GZ_CERTADDRESSPARAM
  2333. func (r *Gzcertaddressparam) TableName() string {
  2334. return "GZ_CERTADDRESSPARAM"
  2335. }
  2336. func (r *Gzcertaddressparam) GetAll() (data []Gzcertaddressparam, err error) {
  2337. err = db.GetEngine().Find(&data)
  2338. return
  2339. }
  2340. // GZHomeData 广钻首页统计数据
  2341. type GZHomeData struct {
  2342. TransactionsOnSale int `json:"transactionsonsale"` // 出售中的交易
  2343. TransactionInPurchase int `json:"transactioninpurchase"` // 求购中的交易
  2344. PurchasedTransactions int `json:"purchasedtransactions"` // 已购买的交易
  2345. TransactionsSold int `json:"transactionssold"` // 已卖出的交易
  2346. UnhandledMessage int `json:"unhandledmessage"` // 未处理消息
  2347. USERID uint64 `json:"-" form:"userid" binding:"required"` // 用户ID
  2348. }
  2349. func (r *GZHomeData) GetGZHomeData() (err error) {
  2350. w1 := make([]Wrtradeorderdetail, 0)
  2351. if err = db.GetEngine().Table("WRTRADE_ORDERDETAIL").Where("MarketID=67201 AND WRTradeOrderStatus IN (3,7) AND BuyOrSell = 1").Find(&w1); err != nil {
  2352. return
  2353. }
  2354. r.TransactionsOnSale = len(w1)
  2355. w2 := make([]Wrtradeorderdetail, 0)
  2356. if err = db.GetEngine().Table("WRTRADE_ORDERDETAIL").Where("MarketID=67201 AND WRTradeOrderStatus IN (3,7) AND BuyOrSell = 0").Find(&w2); err != nil {
  2357. return
  2358. }
  2359. r.TransactionInPurchase = len(w2)
  2360. w3 := make([]Wrtradeorderdetail, 0)
  2361. if err = db.GetEngine().Table("WRTRADE_TRADEQUOTE T").Select("T.*").Where("T.MarketID=67201").And("T.BuyUserID=?", r.USERID).Find(&w3); err != nil {
  2362. return
  2363. }
  2364. r.PurchasedTransactions = len(w3)
  2365. w4 := make([]Wrtradeorderdetail, 0)
  2366. if err = db.GetEngine().Table("WRTRADE_TRADEQUOTE T").Select("T.*").Where("T.MarketID=67201").And("T.SellUserID=?", r.USERID).Find(&w4); err != nil {
  2367. return
  2368. }
  2369. r.TransactionsSold = len(w4)
  2370. w5 := make([]Wrtradebargainapply, 0)
  2371. if err = db.GetEngine().Table("WRTRADE_BARGAINAPPLY T").Select("T.*").Where("T.MarketID=67201 AND T.ApplyStatus=1").And("T.MatchUserID=?", r.USERID).Find(&w5); err != nil {
  2372. return
  2373. }
  2374. w6 := make([]Gzselldelistingapply, 0)
  2375. if err = db.GetEngine().Table("GZ_SELLDELISTINGAPPLY T").Select("T.*").Where("T.MarketID=67201 AND T.ApplyStatus=1").And("T.BuyUserID=?", r.USERID).Find(&w6); err != nil {
  2376. return
  2377. }
  2378. r.UnhandledMessage = len(w5) + len(w6)
  2379. return
  2380. }
  2381. // GzcjjcorderM 出境检测单据表
  2382. type GzcjjcorderM struct {
  2383. ORDERID int64 `json:"orderid" xorm:"ORDERID"` // 单据ID(801+Unix秒时间戳(10位)+xxxxxx)
  2384. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  2385. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  2386. ORDERSN string `json:"ordersn" xorm:"ORDERSN"` // 单据流水号 - yymm000 - yy表示年份,mm表示月份,年份、月份以两位数表示;000表示流水序号,序号不足三位以0补全
  2387. ORDERNO string `json:"orderno" xorm:"ORDERNO"` // 单据编号 - 合同编号:GZDECJJC+单据流水号
  2388. GZCJACCOUNTTYPE int32 `json:"gzcjaccounttype" xorm:"GZCJACCOUNTTYPE"` // 检测账户类型 - 枚举"GZCJAccountType"
  2389. GZCJACCOUNT string `json:"gzcjaccount" xorm:"GZCJACCOUNT"` // 送检账户
  2390. COMPANYNAMECN string `json:"companynamecn" xorm:"COMPANYNAMECN"` // 公司名称(中文)
  2391. COMPANYNAMEEN string `json:"companynameen" xorm:"COMPANYNAMEEN"` // 公司名称(英文)
  2392. ADDRESSCN string `json:"addresscn" xorm:"ADDRESSCN"` // 地址(中文)
  2393. ADDRESSEN string `json:"addressen" xorm:"ADDRESSEN"` // 地址(英文)
  2394. CONTACTNAME string `json:"contactname" xorm:"CONTACTNAME"` // 联系人姓名
  2395. CONTACTPOSITION string `json:"contactposition" xorm:"CONTACTPOSITION"` // 联系人职位
  2396. CONTACTPHONENO string `json:"contactphoneno" xorm:"CONTACTPHONENO"` // 联系人电话
  2397. EMAIL string `json:"email" xorm:"EMAIL"` // 邮箱
  2398. GZCJCATEGORYTYPE int32 `json:"gzcjcategorytype" xorm:"GZCJCATEGORYTYPE"` // 货物品类 - 枚举"GZCJCategoryType"
  2399. PROCESSINGCOUNTRY string `json:"processingcountry" xorm:"PROCESSINGCOUNTRY"` // 成品钻石加工国
  2400. ZSORIGIN string `json:"zsorigin" xorm:"ZSORIGIN"` // 天然钻石毛坯原产地
  2401. GZCJDELIVERYTYPE int32 `json:"gzcjdeliverytype" xorm:"GZCJDELIVERYTYPE"` // 收货方式 - 枚举"GZCJDeliveryType"
  2402. GZCJSTATUS int32 `json:"gzcjstatus" xorm:"GZCJSTATUS"` // 单据状态(出境检测) - 枚举"GZCJStatus"
  2403. TOTALNUMBER int32 `json:"totalnumber" xorm:"TOTALNUMBER"` // 总粒数
  2404. TOTALWEIGHT float64 `json:"totalweight" xorm:"TOTALWEIGHT"` // 总克拉数(保留3位小数)
  2405. TOTALAMOUNT float64 `json:"totalamount" xorm:"TOTALAMOUNT"` // 总金额(美元)
  2406. CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
  2407. ADVANCEAMOUNT float64 `json:"advanceamount" xorm:"ADVANCEAMOUNT"` // 总预付款
  2408. SETTLEAMOUNT float64 `json:"settleamount" xorm:"SETTLEAMOUNT"` // 总结算费用
  2409. HANDLESTATUS int32 `json:"handlestatus" xorm:"HANDLESTATUS"` // 处理状态
  2410. EXECUTESTATUS int32 `json:"executestatus" xorm:"EXECUTESTATUS" form:"executestatus"` // 执行状态 - 1:未生效 2:进行中 3:已结束
  2411. SERVICEFEESUM float64 `json:"servicefeesum" xorm:"SERVICEFEESUM"` // 汇总综合服务费 - 明细上值汇总
  2412. REALSERVICEFEE float64 `json:"realservicefee" xorm:"REALSERVICEFEE"` // 应收综合服务费
  2413. TOTALWEIGHTGM float64 `json:"totalweightgm" xorm:"TOTALWEIGHTGM"` // 总净重(克) = TotalWeight * 0.2 (2位小数)
  2414. TOTALGROSSWEIGHT float64 `json:"totalgrossweight" xorm:"TOTALGROSSWEIGHT"` // 总毛重(克) = 每100颗单颗裸石毛重200克,毛重不足200克按200克计 (TotalNumber/100 向上取整) * 200
  2415. ORIGINCOUNTRY string `json:"origincountry" xorm:"ORIGINCOUNTRY"` // 原产国
  2416. INVOICEREMARK string `json:"invoiceremark" xorm:"INVOICEREMARK"` // 复核备注 - 发票装箱单使用
  2417. WEIGHTRANGE string `json:"weightrange" xorm:"WEIGHTRANGE"` // 重量规格范围 - Min(Weight) - Max(Weight)
  2418. SHAPERANGE string `json:"shaperange" xorm:"SHAPERANGE"` // 形状范围
  2419. COLORRANGE string `json:"colorrange" xorm:"COLORRANGE"` // 颜色范围
  2420. ORDERIDSTR string `json:"orderidstr" xorm:"ORDERIDSTR"` // 单据ID 字符(801+Unix秒时间戳(10位)+xxxxxx)
  2421. GZCJCATEGORYTYPEDISPLAY string `json:"gzcjcategorytypedisplay" xorm:"GZCJCATEGORYTYPEDISPLAY"` // 货物品类
  2422. GZCJDELIVERYTYPEDISPLAY string `json:"gzcjdeliverytypedisplay" xorm:"GZCJDELIVERYTYPEDISPLAY"` // 收货方式
  2423. GZCJSTATUSDISPLAY string `json:"gzcjstatusdisplay" xorm:"GZCJSTATUSDISPLAY"` // 单据状态(出境检测)
  2424. PageEx `xorm:"extends"` // 页码信息
  2425. }
  2426. func (r *GzcjjcorderM) calc() {
  2427. }
  2428. func (r *GzcjjcorderM) buildSql() string {
  2429. var sqlId utils.SQLVal = `
  2430. SELECT
  2431. TO_CHAR(T.ORDERID) ORDERIDSTR,
  2432. t.*,
  2433. e1.ENUMDICNAME GZCJCATEGORYTYPEDISPLAY,
  2434. e2.ENUMDICNAME GZCJDELIVERYTYPEDISPLAY,
  2435. e3.ENUMDICNAME GZCJSTATUSDISPLAY
  2436. FROM GZ_CJJCOrder t
  2437. LEFT JOIN enumdicitem e1 ON t.GZCJCATEGORYTYPE = e1.enumitemname AND e1.enumdiccode = 'GZCJCategoryType'
  2438. LEFT JOIN enumdicitem e2 ON t.GZCJDELIVERYTYPE = e2.enumitemname AND e2.enumdiccode = 'GZCJDeliveryType'
  2439. LEFT JOIN enumdicitem e3 ON t.GZCJSTATUS = e3.enumitemname AND e3.enumdiccode = 'GZCJStatus'
  2440. WHERE t.USERID = %v
  2441. `
  2442. sqlId.FormatParam(r.USERID)
  2443. sqlId.AndEx("t.EXECUTESTATUS", r.EXECUTESTATUS, r.EXECUTESTATUS > 0)
  2444. sqlId.OrderByDesc("t.CREATETIME")
  2445. sqlId.Page(r.Page, r.PageSize)
  2446. return sqlId.String()
  2447. }
  2448. func (r *GzcjjcorderM) GetDataByPage() (interface{}, error, int, int, int) {
  2449. sData := make([]GzcjjcorderM, 0)
  2450. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  2451. total := 0
  2452. for i := range sData {
  2453. sData[i].calc()
  2454. total = sData[i].Total
  2455. }
  2456. return sData, err, r.Page, r.PageSize, total
  2457. }
  2458. // GzcjjcorderdetailM 出境检测单据明细表
  2459. type GzcjjcorderdetailM struct {
  2460. ORDERDETAILID string `json:"orderdetailid" xorm:"ORDERDETAILID"` // 单据明细ID(802+Unix秒时间戳(10位)+xxxxxx)
  2461. ORDERID string `json:"orderid" xorm:"ORDERID" form:"orderid"` // 单据ID(801+Unix秒时间戳(10位)+xxxxxx)
  2462. ORDERINDEX int32 `json:"orderindex" xorm:"ORDERINDEX"` // 顺序
  2463. GZNO string `json:"gzno" xorm:"GZNO"` // 货物编号
  2464. GZCJSHAPETYPE int32 `json:"gzcjshapetype" xorm:"GZCJSHAPETYPE"` // 形状 - 枚举"GZCJShapeType"
  2465. GZCJSHAPETYPESTRING string `json:"gzcjshapetypestring" xorm:"GZCJSHAPETYPESTRING"` // 形状(字符) - 枚举"GZCJShapeType"对应的显示值
  2466. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 重量(CT)
  2467. AMOUNT float64 `json:"amount" xorm:"AMOUNT"` // 参考货值(USD)
  2468. COLORINFO string `json:"colorinfo" xorm:"COLORINFO"` // 彩钻信息
  2469. REMARK string `json:"remark" xorm:"REMARK"` // 备注(其它)
  2470. GZCJMARKTYPE int32 `json:"gzcjmarktype" xorm:"GZCJMARKTYPE"` // 刻印服务 - 枚举"GZCJMarkType" 【送检账户为“广钻账户”】
  2471. GZCJPUBLISHTYPE int32 `json:"gzcjpublishtype" xorm:"GZCJPUBLISHTYPE"` // 是否披露处理 - 枚举 GZCJPublishType【送检账户为“广钻账户”】
  2472. GZCJPUBLISHTYPESTRING string `json:"gzcjpublishtypestring" xorm:"GZCJPUBLISHTYPESTRING"` // 是否披露处理 - 枚举 GZCJPublishType 对应的显示值
  2473. GZCJSERVICETYPE int32 `json:"gzcjservicetype" xorm:"GZCJSERVICETYPE"` // 服务类别 - 枚举 GZCJServiceType【送检账户为“广钻账户”】
  2474. GZCJSERVICETYPESTRING string `json:"gzcjservicetypestring" xorm:"GZCJSERVICETYPESTRING"` // 服务类别 - 枚举 GZCJServiceType 对应的显示值
  2475. ORIGINCERTNO string `json:"origincertno" xorm:"ORIGINCERTNO"` // 原证书号【送检账户为“广钻账户”】
  2476. CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
  2477. SERVICEFEE float64 `json:"servicefee" xorm:"SERVICEFEE"` // 综合服务费 - 根据市场配置计算
  2478. USERID int64 `json:"-" form:"userid" binding:"required"` // 用户ID
  2479. PageEx `xorm:"extends"` // 页码信息
  2480. }
  2481. func (r *GzcjjcorderdetailM) calc() {
  2482. }
  2483. func (r *GzcjjcorderdetailM) buildSql() string {
  2484. var sqlId utils.SQLVal = `
  2485. SELECT
  2486. to_char(t.ORDERDETAILID) ORDERDETAILID,
  2487. to_char(t.ORDERID) ORDERID,
  2488. t.ORDERINDEX,
  2489. t.GZNO,
  2490. t.GZCJSHAPETYPE,
  2491. t.GZCJSHAPETYPESTRING,
  2492. t.WEIGHT,
  2493. t.AMOUNT,
  2494. t.COLORINFO,
  2495. t.REMARK,
  2496. t.GZCJMARKTYPE,
  2497. t.GZCJPUBLISHTYPE,
  2498. t.GZCJPUBLISHTYPESTRING,
  2499. t.GZCJSERVICETYPE,
  2500. t.GZCJSERVICETYPESTRING,
  2501. t.ORIGINCERTNO,
  2502. t.CREATETIME,
  2503. t.SERVICEFEE
  2504. FROM GZ_CJJCOrderDetail t
  2505. LEFT JOIN GZ_CJJCOrder d ON t.orderid = d.orderid AND d.userid = %v
  2506. WHERE 1=1
  2507. `
  2508. sqlId.FormatParam(r.USERID)
  2509. sqlId.AndEx("t.orderid", r.ORDERID, r.ORDERID != "")
  2510. sqlId.OrderBy("t.ORDERINDEX")
  2511. sqlId.Page(r.Page, r.PageSize)
  2512. return sqlId.String()
  2513. }
  2514. func (r *GzcjjcorderdetailM) GetDataByPage() (interface{}, error, int, int, int) {
  2515. sData := make([]GzcjjcorderdetailM, 0)
  2516. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  2517. total := 0
  2518. for i := range sData {
  2519. sData[i].calc()
  2520. total = sData[i].Total
  2521. }
  2522. return sData, err, r.Page, r.PageSize, total
  2523. }
  2524. // Gzcjbsorderfile 出境保税单据文件表
  2525. type GzcjbsorderfileM struct {
  2526. ORDERFILEID int64 `json:"orderfileid" xorm:"ORDERFILEID"` // 单据文件ID(803+Unix秒时间戳(10位)+xxxxxx)
  2527. ORDERID int64 `json:"orderid" xorm:"ORDERID" form:"orderid" binding:"required"` // 单据ID(801+Unix秒时间戳(10位)+xxxxxx)
  2528. FILEGENTYPE int32 `json:"filegentype" xorm:"FILEGENTYPE"` // 文件生成类型 - 1:系统生成 2:手动上传
  2529. FILENAME string `json:"filename" xorm:"FILENAME"` // 文件名称
  2530. FILEADDRESS string `json:"fileaddress" xorm:"FILEADDRESS"` // 文件地址
  2531. CANMEMBERVISIT int32 `json:"canmembervisit" xorm:"CANMEMBERVISIT"` // 会员是否可访问 - 1:可 2:不可
  2532. OPERATORSRC int32 `json:"operatorsrc" xorm:"OPERATORSRC"` // 操作人来源 - 1:管理端 2:终端
  2533. OPERATORID int64 `json:"operatorid" xorm:"OPERATORID"` // 操作人ID - systemmanager的autoid 或 loginaccount的loginid
  2534. OPERATORACCOUNT string `json:"operatoraccount" xorm:"OPERATORACCOUNT"` // 操作人账号 - systemmanager的logincode 或 loginaccount的logincode,无则用loginid
  2535. OPERATETIME time.Time `json:"operatetime" xorm:"OPERATETIME"` // 操作时间
  2536. PageEx `xorm:"extends"` // 页码信息
  2537. }
  2538. func (r *GzcjbsorderfileM) calc() {
  2539. }
  2540. func (r *GzcjbsorderfileM) buildSql() string {
  2541. var sqlId utils.SQLVal = `
  2542. SELECT
  2543. t.*
  2544. FROM GZ_CJBSOrderFile t
  2545. WHERE t.CanMemberVisit = 1 AND t.ORDERID = %v
  2546. `
  2547. sqlId.FormatParam(r.ORDERID)
  2548. sqlId.OrderByDesc("t.operatetime")
  2549. sqlId.Page(r.Page, r.PageSize)
  2550. return sqlId.String()
  2551. }
  2552. func (r *GzcjbsorderfileM) GetDataByPage() (interface{}, error, int, int, int) {
  2553. sData := make([]GzcjbsorderfileM, 0)
  2554. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  2555. total := 0
  2556. for i := range sData {
  2557. sData[i].calc()
  2558. total = sData[i].Total
  2559. }
  2560. return sData, err, r.Page, r.PageSize, total
  2561. }
  2562. // GzbsfworderM 保税服务单据表
  2563. type GzbsfworderM struct {
  2564. ORDERID string `json:"orderid" xorm:"ORDERID"` // 单据ID(804+Unix秒时间戳(10位)+xxxxxx)
  2565. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  2566. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  2567. ORDERSN string `json:"ordersn" xorm:"ORDERSN"` // 单据流水号 - yymm000 - yy表示年份,mm表示月份,年份、月份以两位数表示;000表示流水序号,序号不足三位以0补全
  2568. ORDERNO string `json:"orderno" xorm:"ORDERNO"` // 单据编号 - GZDEBSFW+单据流水号
  2569. ORDERDATE time.Time `json:"orderdate" xorm:"ORDERDATE"` // 单据日期
  2570. COMPANYNAMECN string `json:"companynamecn" xorm:"COMPANYNAMECN"` // 收货人(中文)
  2571. COMPANYNAMEEN string `json:"companynameen" xorm:"COMPANYNAMEEN"` // 收货人(英文)
  2572. ADDRESSCN string `json:"addresscn" xorm:"ADDRESSCN"` // 地址(中文)
  2573. ADDRESSEN string `json:"addressen" xorm:"ADDRESSEN"` // 地址(英文)
  2574. CONTACTNAME string `json:"contactname" xorm:"CONTACTNAME"` // 收货人姓名
  2575. CONTACTPHONENO string `json:"contactphoneno" xorm:"CONTACTPHONENO"` // 收货人电话
  2576. CONTACTFAX string `json:"contactfax" xorm:"CONTACTFAX"` // 收货人传真
  2577. ORIGINCOUNTRY string `json:"origincountry" xorm:"ORIGINCOUNTRY"` // 原产国
  2578. TOTALNETWEIGTHCT float64 `json:"totalnetweigthct" xorm:"TOTALNETWEIGTHCT"` // 总净重(克拉)
  2579. TOTALNETWEIGHTGM float64 `json:"totalnetweightgm" xorm:"TOTALNETWEIGHTGM"` // 总净重(克)
  2580. TOTALGROSSWEIGHTGM float64 `json:"totalgrossweightgm" xorm:"TOTALGROSSWEIGHTGM"` // 总毛重(克)
  2581. TOTALAMOUNT float64 `json:"totalamount" xorm:"TOTALAMOUNT"` // 总值(美元)
  2582. GZBSSTATUS int32 `json:"gzbsstatus" xorm:"GZBSSTATUS"` // 单据状态(保税服务) - 枚举"GZBSStatus"
  2583. HANDLESTATUS int32 `json:"handlestatus" xorm:"HANDLESTATUS"` // 处理状态
  2584. EXECUTESTATUS int32 `json:"executestatus" xorm:"EXECUTESTATUS" form:"executestatus"` // 执行状态 - 1:未生效 2:进行中 3:已结束
  2585. TAXMARGIN float64 `json:"taxmargin" xorm:"TAXMARGIN"` // 税费保证金 - 确认结算费用时退回
  2586. ADVANCEAMOUNT float64 `json:"advanceamount" xorm:"ADVANCEAMOUNT"` // 总预付款
  2587. SETTLEAMOUNT float64 `json:"settleamount" xorm:"SETTLEAMOUNT"` // 总结算费用 - 实际扣除资金,不含税费保证金
  2588. CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
  2589. TOTALNUMBER int32 `json:"totalnumber" xorm:"TOTALNUMBER"` // 总粒数
  2590. GZBSDELIVERYTYPE int32 `json:"gzbsdeliverytype" xorm:"GZBSDELIVERYTYPE"` // 收货方式 - 枚举"GZBSDeliveryType"
  2591. OTHERLOGISTICS string `json:"otherlogistics" xorm:"OTHERLOGISTICS"` // 指定其它物流
  2592. WEIGHTRANGE string `json:"weightrange" xorm:"WEIGHTRANGE"` // 重量规格范围 - Min(NetWeigthCT)- Max(NetWeigthCT)
  2593. SHAPERANGE string `json:"shaperange" xorm:"SHAPERANGE"` // 形状范围
  2594. COLORRANGE string `json:"colorrange" xorm:"COLORRANGE"` // 颜色范围
  2595. CONTENTRANGE string `json:"contentrange" xorm:"CONTENTRANGE"` // 【内容】内容范围
  2596. GZBSSTATUSDISPLAY string `json:"gzbsstatusdisplay" xorm:"GZBSSTATUSDISPLAY"` // 单据状态
  2597. PRICEPER float64 `json:"priceper" xorm:"PRICEPER"` // 单价(美元/克拉) = 总值(美元) / 总净重(克拉)
  2598. PageEx `xorm:"extends"` // 页码信息
  2599. }
  2600. func (r *GzbsfworderM) calc() {
  2601. }
  2602. func (r *GzbsfworderM) buildSql() string {
  2603. var sqlId utils.SQLVal = `
  2604. SELECT
  2605. to_char(t.ORDERID) ORDERID,
  2606. t.USERID,
  2607. t.ACCOUNTID,
  2608. t.ORDERSN,
  2609. t.ORDERNO,
  2610. t.ORDERDATE,
  2611. t.COMPANYNAMECN,
  2612. t.COMPANYNAMEEN,
  2613. t.ADDRESSCN,
  2614. t.ADDRESSEN,
  2615. t.CONTACTNAME,
  2616. t.CONTACTPHONENO,
  2617. t.CONTACTFAX,
  2618. t.ORIGINCOUNTRY,
  2619. t.TOTALNETWEIGTHCT,
  2620. t.TOTALNETWEIGHTGM,
  2621. t.TOTALGROSSWEIGHTGM,
  2622. t.TOTALAMOUNT,
  2623. t.GZBSSTATUS,
  2624. t.HANDLESTATUS,
  2625. t.EXECUTESTATUS,
  2626. t.TAXMARGIN,
  2627. t.ADVANCEAMOUNT,
  2628. t.SETTLEAMOUNT,
  2629. t.CREATETIME,
  2630. t.TOTALNUMBER,
  2631. t.GZBSDELIVERYTYPE,
  2632. t.OTHERLOGISTICS,
  2633. t.WEIGHTRANGE,
  2634. t.SHAPERANGE,
  2635. t.COLORRANGE,
  2636. t.CONTENTRANGE,
  2637. t.CLOSEDTRADEDATE,
  2638. CAST((t.TOTALAMOUNT / t.TOTALNETWEIGTHCT) AS DECIMAL(13,2)) PRICEPER,
  2639. e1.ENUMDICNAME GZBSSTATUSDISPLAY
  2640. FROM GZ_BSFWOrder t
  2641. LEFT JOIN enumdicitem e1 ON t.GZBSSTATUS = e1.enumitemname AND e1.enumdiccode = 'GZBSStatus'
  2642. WHERE t.USERID = %v
  2643. `
  2644. sqlId.FormatParam(r.USERID)
  2645. sqlId.AndEx("t.EXECUTESTATUS", r.EXECUTESTATUS, r.EXECUTESTATUS > 0)
  2646. sqlId.OrderByDesc("t.CREATETIME")
  2647. sqlId.Page(r.Page, r.PageSize)
  2648. return sqlId.String()
  2649. }
  2650. func (r *GzbsfworderM) GetDataByPage() (interface{}, error, int, int, int) {
  2651. sData := make([]GzbsfworderM, 0)
  2652. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  2653. total := 0
  2654. for i := range sData {
  2655. sData[i].calc()
  2656. total = sData[i].Total
  2657. }
  2658. return sData, err, r.Page, r.PageSize, total
  2659. }
  2660. // GzbsfworderdetailM 保税服务单据明细表
  2661. type GzbsfworderdetailM struct {
  2662. ORDERDETAILID string `json:"orderdetailid" xorm:"ORDERDETAILID"` // 单据明细ID(805+Unix秒时间戳(10位)+xxxxxx)
  2663. ORDERID string `json:"orderid" xorm:"ORDERID" form:"orderid"` // 单据ID(804+Unix秒时间戳(10位)+xxxxxx)
  2664. ORDERINDEX int32 `json:"orderindex" xorm:"ORDERINDEX"` // 顺序
  2665. NETWEIGTHCT float64 `json:"netweigthct" xorm:"NETWEIGTHCT"` // 净重(克拉)
  2666. NETWEIGTHGM float64 `json:"netweigthgm" xorm:"NETWEIGTHGM"` // 净重(克)
  2667. GROSSWEIGHTGM float64 `json:"grossweightgm" xorm:"GROSSWEIGHTGM"` // 毛重(克)
  2668. TOTALAMOUNT float64 `json:"totalamount" xorm:"TOTALAMOUNT"` // 总值(美元)
  2669. PERPRICE float64 `json:"perprice" xorm:"PERPRICE"` // 单价(美元/克拉) = 总值(美元) / 净重(克拉)
  2670. ORDERCONTENT string `json:"ordercontent" xorm:"ORDERCONTENT"` // 内容
  2671. COLORINFO string `json:"colorinfo" xorm:"COLORINFO"` // 彩钻信息
  2672. REMARK string `json:"remark" xorm:"REMARK"` // 备注(其它)
  2673. CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
  2674. GZCJSHAPE string `json:"gzcjshape" xorm:"GZCJSHAPE"` // 形状(字符)
  2675. USERID int64 `json:"-" form:"userid" binding:"required"` // 用户ID
  2676. PageEx `xorm:"extends"` // 页码信息
  2677. }
  2678. func (r *GzbsfworderdetailM) calc() {
  2679. }
  2680. func (r *GzbsfworderdetailM) buildSql() string {
  2681. var sqlId utils.SQLVal = `
  2682. SELECT
  2683. to_char(t.ORDERDETAILID) ORDERDETAILID,
  2684. to_char(t.ORDERID) ORDERID,
  2685. t.ORDERINDEX,
  2686. t.NETWEIGTHCT,
  2687. t.NETWEIGTHGM,
  2688. t.GROSSWEIGHTGM,
  2689. t.TOTALAMOUNT,
  2690. t.PERPRICE,
  2691. t.ORDERCONTENT,
  2692. t.COLORINFO,
  2693. t.REMARK,
  2694. t.CREATETIME,
  2695. t.GZCJSHAPE
  2696. FROM GZ_BSFWOrderDetail t
  2697. LEFT JOIN GZ_BSFWOrder d ON t.orderid = d.orderid AND d.userid = %v
  2698. WHERE 1=1
  2699. `
  2700. sqlId.FormatParam(r.USERID)
  2701. sqlId.AndEx("t.orderid", r.ORDERID, r.ORDERID != "")
  2702. sqlId.OrderBy("t.ORDERINDEX")
  2703. sqlId.Page(r.Page, r.PageSize)
  2704. return sqlId.String()
  2705. }
  2706. func (r *GzbsfworderdetailM) GetDataByPage() (interface{}, error, int, int, int) {
  2707. sData := make([]GzbsfworderdetailM, 0)
  2708. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  2709. total := 0
  2710. for i := range sData {
  2711. sData[i].calc()
  2712. total = sData[i].Total
  2713. }
  2714. return sData, err, r.Page, r.PageSize, total
  2715. }
  2716. func (r *Gzbsfworderoperate) GetDataByOrderIDAndStatus() (data []Gzbsfworderoperate, err error) {
  2717. err = db.GetEngine().Table("GZ_BSFWORDEROPERATE").Where("ORDERID = ?", r.ORDERID).And("GZBSStatus = 5").Find(&data)
  2718. return
  2719. }
  2720. // Reckondaytaaccount 资金账户日照表
  2721. type Reckondaytaaccount struct {
  2722. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  2723. RECKONDATE string `json:"reckondate" xorm:"RECKONDATE"` // 日照日期(yyyyMMdd)
  2724. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  2725. CURRENCYID int64 `json:"currencyid" xorm:"CURRENCYID"` // 货币ID
  2726. CHANGEFLAG int32 `json:"changeflag" xorm:"CHANGEFLAG"` // 变动标志(当前账户资金有任何变动更新为1系统结算时更新0;供清算时使用) 0:无变动 1:有变动
  2727. PASSWORD string `json:"password" xorm:"PASSWORD"` // 资金密码
  2728. TRADESTATUS int32 `json:"tradestatus" xorm:"TRADESTATUS"` // 交易状态 - 1:正常 2:受限 3:冻结 4:禁止建仓(人工受限) 5:禁止交易(人工冻结)
  2729. SIGNSTATUS int32 `json:"signstatus" xorm:"SIGNSTATUS"` // 签约状态 - 1:未签约 2:已签约 3:已解约
  2730. ISMAIN int32 `json:"ismain" xorm:"ISMAIN"` // 是否账号 0:不是母账户 1:是母账户
  2731. PARENTACCOUNTID int64 `json:"parentaccountid" xorm:"PARENTACCOUNTID"` // 所属根账户
  2732. RELATEUSERID int64 `json:"relateuserid" xorm:"RELATEUSERID"` // 关联用户
  2733. RELATEDACCOUNTSTATUS int32 `json:"relatedaccountstatus" xorm:"RELATEDACCOUNTSTATUS"` // 关联用户交易状态 - 1:正常(可交易) 2:受限(可平仓,不可建仓) 3:冻结(不可交易)
  2734. TAACCOUNTTYPE int32 `json:"taaccounttype" xorm:"TAACCOUNTTYPE"` // 外部/内部账号 - 1:外部账号 2:内部账号
  2735. ISRECKONACCOUNT int32 `json:"isreckonaccount" xorm:"ISRECKONACCOUNT"` // 是否机构分润账号 0:不是 1:是
  2736. ISMARKETACCOUNT int32 `json:"ismarketaccount" xorm:"ISMARKETACCOUNT"` // 是否机构接单账号 0:不是 1:是
  2737. BALANCE float64 `json:"balance" xorm:"BALANCE"` // 期初余额
  2738. ORIFREEZEMARGIN float64 `json:"orifreezemargin" xorm:"ORIFREEZEMARGIN"` // 期初冻结保证金
  2739. ORIUSEDMARGIN float64 `json:"oriusedmargin" xorm:"ORIUSEDMARGIN"` // 期初占用保证金
  2740. ORIOTHERFREEZEMARGIN float64 `json:"oriotherfreezemargin" xorm:"ORIOTHERFREEZEMARGIN"` // 期初其他冻结保证金(出金冻结资金 交割买方冻结 申购冻结 全款买入 商城买入)
  2741. ORIFREEZECHARGE float64 `json:"orifreezecharge" xorm:"ORIFREEZECHARGE"` // 期初手续费冻结
  2742. ORIMORTGAGECREDIT float64 `json:"orimortgagecredit" xorm:"ORIMORTGAGECREDIT"` // 期初授信金额
  2743. ORIOTHERCREDIT float64 `json:"oriothercredit" xorm:"ORIOTHERCREDIT"` // 期初其它授信金额
  2744. ORIOUTAMOUNTFREEZE float64 `json:"orioutamountfreeze" xorm:"ORIOUTAMOUNTFREEZE"` // 期初出金冻结
  2745. CURRENTBALANCE float64 `json:"currentbalance" xorm:"CURRENTBALANCE"` // 期末余额
  2746. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金
  2747. USEDMARGIN float64 `json:"usedmargin" xorm:"USEDMARGIN"` // 占用保证金
  2748. OTHERFREEZEMARGIN float64 `json:"otherfreezemargin" xorm:"OTHERFREEZEMARGIN"` // 其他冻结保证金(出金冻结资金 交割买方冻结 申购冻结 全款买入 商城买入)
  2749. FREEZECHARGE float64 `json:"freezecharge" xorm:"FREEZECHARGE"` // 手续费冻结
  2750. MORTGAGECREDIT float64 `json:"mortgagecredit" xorm:"MORTGAGECREDIT"` // 授信金额
  2751. OTHERCREDIT float64 `json:"othercredit" xorm:"OTHERCREDIT"` // 其它授信金额
  2752. OUTAMOUNTFREEZE float64 `json:"outamountfreeze" xorm:"OUTAMOUNTFREEZE"` // 出金冻结
  2753. INAMOUNT float64 `json:"inamount" xorm:"INAMOUNT"` // 今日入金金额
  2754. OUTAMOUNT float64 `json:"outamount" xorm:"OUTAMOUNT"` // 今日出金金额
  2755. PAYCHARGE float64 `json:"paycharge" xorm:"PAYCHARGE"` // 今日手续费支出
  2756. CLOSEPL float64 `json:"closepl" xorm:"CLOSEPL"` // 今日平仓盈亏
  2757. RECKONPL float64 `json:"reckonpl" xorm:"RECKONPL"` // 今日结算盈亏
  2758. CREDITINCREASE float64 `json:"creditincrease" xorm:"CREDITINCREASE"` // 今日授信增加
  2759. CREDITDECREASE float64 `json:"creditdecrease" xorm:"CREDITDECREASE"` // 今日授信减少
  2760. OTHERCREDITINCREASE float64 `json:"othercreditincrease" xorm:"OTHERCREDITINCREASE"` // 今日其它授信增加
  2761. OTHERCREDITDECREASE float64 `json:"othercreditdecrease" xorm:"OTHERCREDITDECREASE"` // 今日其它授信减少
  2762. OTHERPAY float64 `json:"otherpay" xorm:"OTHERPAY"` // 其他支出(交割付款 申购付款 全款买入 商城买入 卖家退货)
  2763. OTHERINCOME float64 `json:"otherincome" xorm:"OTHERINCOME"` // 其他收入(交割收款 申购收款 全款卖出 商城卖出 买家退货 会员手续费收入)
  2764. TRANSFERAMOUNT float64 `json:"transferamount" xorm:"TRANSFERAMOUNT"` // 今日划转金额(母子账号资金划转,从账号划入为正,从账号划出为负)
  2765. OUTTHRESHOLD float64 `json:"outthreshold" xorm:"OUTTHRESHOLD"` // 出金阈值
  2766. CLEARBALANCE float64 `json:"clearbalance" xorm:"CLEARBALANCE"` // 清算余额 = 期末余额 - 授信金额 - 其它授信金额
  2767. DIVIDEDCHARGE float64 `json:"dividedcharge" xorm:"DIVIDEDCHARGE"` // 今日已收手续费分成
  2768. PAYEXCHCHARGE float64 `json:"payexchcharge" xorm:"PAYEXCHCHARGE"` // 今日应付交易所手续费
  2769. CLEARPL float64 `json:"clearpl" xorm:"CLEARPL"` // 真实资金变动值(除出入金、应付交易所手续费)清算盈亏 = 期末余额 - 期初余额 - (今日入金 + 今日出金) - 今日应付交易所手续费 - 【(今日授信增加 + 今日授信减少) - (今日其它授信增加 + 今日其它授信减少) ----母账户】 = 今日手续费支出 + 今日平仓盈亏 + 今日结算盈亏 + 其他支出 + 其他收入 + 今日划转金额 + 今日已收手续费分成 - 今日应付交易所手续费
  2770. THIRDINAMOUNT float64 `json:"thirdinamount" xorm:"THIRDINAMOUNT"` // 今日三方入金
  2771. TRADECHARGE float64 `json:"tradecharge" xorm:"TRADECHARGE"` // 今日交易手续费支出 [101,102]
  2772. INTERESTCHARGE float64 `json:"interestcharge" xorm:"INTERESTCHARGE"` // 今日递延费支出[103, 104]
  2773. DELIVERYCHARGE float64 `json:"deliverycharge" xorm:"DELIVERYCHARGE"` // 今日交收手续费支出 [105,106]
  2774. HOLDCHARGE float64 `json:"holdcharge" xorm:"HOLDCHARGE"` // 今日持仓过夜费支出[108,109,110]
  2775. THIRDOUTAMOUNT float64 `json:"thirdoutamount" xorm:"THIRDOUTAMOUNT"` // 今日三方出金
  2776. TRADEQTY int64 `json:"tradeqty" xorm:"TRADEQTY"` // 今日成交量
  2777. TRADEAMOUNT float64 `json:"tradeamount" xorm:"TRADEAMOUNT"` // 今日成交金额
  2778. DELIVERYAMOUNTOUT float64 `json:"deliveryamountout" xorm:"DELIVERYAMOUNTOUT"` // 今日交收货款支出
  2779. DELIVERYAMOUNTIN float64 `json:"deliveryamountin" xorm:"DELIVERYAMOUNTIN"` // 今日交收货款收入
  2780. DELIVERYCOMPENSATIONFEEOUT float64 `json:"deliverycompensationfeeout" xorm:"DELIVERYCOMPENSATIONFEEOUT"` // 今日交收补偿费支出
  2781. DELIVERYCOMPENSATIONFEEIN float64 `json:"deliverycompensationfeein" xorm:"DELIVERYCOMPENSATIONFEEIN"` // 今日交收补偿费收入
  2782. CAPITALBALANCE float64 `json:"capitalbalance" xorm:"CAPITALBALANCE"` // 本金余额[外部子账户实际出入金余额]
  2783. CLOSEPL2 float64 `json:"closepl2" xorm:"CLOSEPL2"` // 平仓盈亏(逐笔)
  2784. RECKONPL2 float64 `json:"reckonpl2" xorm:"RECKONPL2"` // 结算盈亏(逐笔) - 汇总取期末
  2785. NETVALUE float64 `json:"netvalue" xorm:"NETVALUE"` // 净值 = 期末余额 + 所有权市值 + 仓单市值仓单市值由统计服务更新
  2786. PAYCHARGE2 float64 `json:"paycharge2" xorm:"PAYCHARGE2"` // 今日手续费支出(外部配置)
  2787. DEFERCHARGE float64 `json:"defercharge" xorm:"DEFERCHARGE"` // 今日递延费2支出[111, 112]
  2788. FROMACCOUNTID int64 `json:"fromaccountid" xorm:"FROMACCOUNTID"` // 所属上级账户
  2789. SUBLEVELPATH string `json:"sublevelpath" xorm:"SUBLEVELPATH"` // 账号层级路径(逗号分隔,首尾加逗号)
  2790. OWNERSHIPVALUE float64 `json:"ownershipvalue" xorm:"OWNERSHIPVALUE"` // 所有权市值
  2791. SPOTVALUE float64 `json:"spotvalue" xorm:"SPOTVALUE"` // 现货市值-统计服务更新
  2792. ACCOUNTPL float64 `json:"accountpl" xorm:"ACCOUNTPL"` // 今日账户盈亏 = 今日净值-昨日净值+今日出金-今日入金-今日划转+今日授信减少-今日授信增加+今日其它授信减少-今日其它授信增加+今日三方出金-今日三方入金;由统计服务更新
  2793. ACCOUNTNAME string `json:"accountname" xorm:"ACCOUNTNAME"` // 账户名称
  2794. ORIDEBT float64 `json:"oridebt" xorm:"ORIDEBT"` // 期初欠款
  2795. CURDEBT float64 `json:"curdebt" xorm:"CURDEBT"` // 期末欠款
  2796. AVAIABLEMONEY float64 `json:"avaiablemoney" xorm:"AVAIABLEMONEY"` // 可用资金
  2797. AVAIABLEOUTMONEY float64 `json:"avaiableoutmoney" xorm:"AVAIABLEOUTMONEY"` // 可出资金
  2798. FLOATPL float64 `json:"floatpl" xorm:"FLOATPL"` // 浮动盈亏 - 每日有负债类商品
  2799. FLOATNETVALUE float64 `json:"floatnetvalue" xorm:"FLOATNETVALUE"` // 浮动净值 = 净值 + 浮动盈亏
  2800. RISKRATE float64 `json:"riskrate" xorm:"RISKRATE"` // 风险率 = 占用/ 浮动净值 或 浮动净值/占用
  2801. CYCLETYPE int32 `json:"cycletype" form:"cycletype"` // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表 (日报表不传此参数)
  2802. BeginDate string `json:"-" form:"begindate" binding:"required"` // 开始时段
  2803. EndDate string `json:"-" form:"enddate" binding:"required"` // 结束时段
  2804. PageEx `xorm:"extends"` // 页码信息
  2805. }
  2806. func (r *Reckondaytaaccount) calc() {
  2807. }
  2808. func (r *Reckondaytaaccount) buildSql() string {
  2809. var sqlId utils.SQLVal
  2810. if r.CYCLETYPE == 0 {
  2811. // 日报表
  2812. sqlId = `
  2813. select
  2814. t.reckondate,
  2815. t.accountid,
  2816. t.balance,
  2817. t.currentbalance,
  2818. t.avaiablemoney,
  2819. t.avaiableoutmoney,
  2820. t.netvalue,
  2821. t.inamount,
  2822. t.outamount,
  2823. t.paycharge,
  2824. t.otherincome,
  2825. t.otherpay,
  2826. t.otherfreezemargin,
  2827. t.outamountfreeze
  2828. from Reckon_DayTAAccount t
  2829. where t.userid = %v
  2830. `
  2831. sqlId.FormatParam(r.USERID)
  2832. if r.BeginDate != "" && r.EndDate != "" {
  2833. sqlId.JoinFormat(" AND (t.reckondate >= '%v' AND t.reckondate <= '%v')", r.BeginDate, r.EndDate)
  2834. }
  2835. sqlId.OrderBy("t.reckondate")
  2836. } else {
  2837. // 周期报表
  2838. sqlId = `
  2839. select
  2840. t.cycletime RECKONDATE,
  2841. t.accountid,
  2842. t.balance,
  2843. t.currentbalance,
  2844. t.avaiablemoney,
  2845. t.avaiableoutmoney,
  2846. t.netvalue,
  2847. t.inamount,
  2848. t.outamount,
  2849. t.paycharge,
  2850. t.otherincome,
  2851. t.otherpay,
  2852. t.otherfreezemargin,
  2853. t.outamountfreeze
  2854. from REPORT_TAACCOUNT t
  2855. where t.userid = %v and t.cycletype = %v
  2856. `
  2857. sqlId.FormatParam(r.USERID, r.CYCLETYPE)
  2858. if r.BeginDate != "" && r.EndDate != "" {
  2859. sqlId.JoinFormat(" AND (t.cycletime >= '%v' AND t.cycletime <= '%v')", r.BeginDate, r.EndDate)
  2860. }
  2861. sqlId.OrderBy("t.cycletime")
  2862. }
  2863. sqlId.Page(r.Page, r.PageSize)
  2864. return sqlId.String()
  2865. }
  2866. func (r *Reckondaytaaccount) GetDataByPage() (interface{}, error, int, int, int) {
  2867. sData := make([]Reckondaytaaccount, 0)
  2868. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  2869. total := 0
  2870. for i := range sData {
  2871. sData[i].calc()
  2872. total = sData[i].Total
  2873. }
  2874. return sData, err, r.Page, r.PageSize, total
  2875. }
  2876. // WRPositionReport 仓储报表
  2877. type WRPositionReport struct {
  2878. RECKONDATE string `json:"reckondate" xorm:"RECKONDATE"` // 日照时期(yyyyMMdd)
  2879. WRPOSITIONID int64 `json:"wrpositionid" xorm:"WRPOSITIONID"` // 仓单头寸ID(201+Unix秒时间戳(10位)+xxxxxx)
  2880. WRUSERID int64 `json:"wruserid" xorm:"WRUSERID"` // 持有人ID
  2881. DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 交割商品ID
  2882. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID
  2883. BRANDID int64 `json:"brandid" xorm:"BRANDID"` // 品牌ID(1交割品种升贴水参数表 AutoID) - 作废
  2884. QUALITYID int64 `json:"qualityid" xorm:"QUALITYID"` // 品质ID(1交割品种升贴水参数表 AutoID) - 作废
  2885. SPECID int64 `json:"specid" xorm:"SPECID"` // 规格ID(1交割品种升贴水参数表 AutoID) - 作废
  2886. WAREHOUSEID int64 `json:"warehouseid" xorm:"WAREHOUSEID"` // 仓库ID(1交割品种升贴水参数表 AutoID) - 作废
  2887. DELIVERYMONTHID int64 `json:"deliverymonthid" xorm:"DELIVERYMONTHID"` // 月份ID(1交割品种升贴水参数表 AutoID) - 作废
  2888. TOTALQTY int64 `json:"totalqty" xorm:"TOTALQTY"` // 总数量
  2889. INCREASEQTY int64 `json:"increaseqty" xorm:"INCREASEQTY"` // 今日增加数量
  2890. DECREASEQTY int64 `json:"decreaseqty" xorm:"DECREASEQTY"` // 今日减少数量
  2891. FREEZEQTY int64 `json:"freezeqty" xorm:"FREEZEQTY"` // 总冻结数量
  2892. RELATEDQTY int64 `json:"relatedqty" xorm:"RELATEDQTY"` // 关联数量
  2893. TRANSFERTRADEWRQTY int64 `json:"transfertradewrqty" xorm:"TRANSFERTRADEWRQTY"` // 今日转订单数量
  2894. TRADEWRQTY int64 `json:"tradewrqty" xorm:"TRADEWRQTY"` // 订单仓单头寸总数量
  2895. PICKUPQTY int64 `json:"pickupqty" xorm:"PICKUPQTY"` // 今日提货数量
  2896. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 帐户ID
  2897. MARKETVALUE float64 `json:"marketvalue" xorm:"MARKETVALUE"` // 市值
  2898. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  2899. WRSTANDARDCODE string `json:"wrstandardcode" xorm:"WRSTANDARDCODE"` // 现货商品代码
  2900. CREDITTOTALQTY int64 `json:"credittotalqty" xorm:"CREDITTOTALQTY"` // 授信总数量
  2901. CREDITCURQTY int64 `json:"creditcurqty" xorm:"CREDITCURQTY"` // 授信当前数量
  2902. CREDITFREEZEQTY int64 `json:"creditfreezeqty" xorm:"CREDITFREEZEQTY"` // 授信冻结数量
  2903. CREDITTRADEQTY int64 `json:"credittradeqty" xorm:"CREDITTRADEQTY"` // 授信成交数量
  2904. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 商品分类
  2905. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  2906. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE" form:"zscurrencytype"` // 商品币种
  2907. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  2908. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  2909. TOTALWEIGHT float64 `json:"totalweight" xorm:"TOTALWEIGHT"` // 销售重量(ct)
  2910. TOTALPRICE float64 `json:"totalprice" xorm:"TOTALPRICE"` // 销售金额(¥)
  2911. BUYLISTINGLOT int32 `json:"buylistinglot" xorm:"BUYLISTINGLOT"` // 买挂牌宗数
  2912. SELLLISTINGLOT int32 `json:"selllistinglot" xorm:"SELLLISTINGLOT"` // 卖挂牌宗数
  2913. SELLLISTINGQTY float64 `json:"selllistingqty" xorm:"SELLLISTINGQTY"` // 卖挂牌数量
  2914. SELLLISTINGAMOUNT float64 `json:"selllistingamount" xorm:"SELLLISTINGAMOUNT"` // 卖挂牌金额
  2915. BUYTRADELOT int32 `json:"buytradelot" xorm:"BUYTRADELOT"` // 购买宗数
  2916. BUYTRADEQTY float64 `json:"buytradeqty" xorm:"BUYTRADEQTY"` // 购买数量
  2917. BUYTRADEAMOUNT float64 `json:"buytradeamount" xorm:"BUYTRADEAMOUNT"` // 购买金额
  2918. SELLTRADELOT int32 `json:"selltradelot" xorm:"SELLTRADELOT"` // 销售宗数
  2919. SELLTRADEQTY float64 `json:"selltradeqty" xorm:"SELLTRADEQTY"` // 销售数量
  2920. SELLTRADEAMOUNT float64 `json:"selltradeamount" xorm:"SELLTRADEAMOUNT"` // 销售金额
  2921. USERID int64 `json:"-" form:"userid" binding:"required"` // 用户ID
  2922. CYCLETYPE int32 `json:"-" form:"cycletype"` // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表 (日报表不传此参数)
  2923. BeginDate string `json:"-" form:"begindate" binding:"required"` // 开始时段
  2924. EndDate string `json:"-" form:"enddate" binding:"required"` // 结束时段
  2925. PageEx `xorm:"extends"` // 页码信息
  2926. }
  2927. func (r *WRPositionReport) calc() {
  2928. }
  2929. func (r *WRPositionReport) buildSql() string {
  2930. var sqlId utils.SQLVal
  2931. if r.CYCLETYPE == 0 {
  2932. // 日报表
  2933. sqlId = `
  2934. select a.*,
  2935. su.BUYLISTINGLOT,
  2936. su.SELLLISTINGLOT,
  2937. su.SELLLISTINGQTY,
  2938. su.SELLLISTINGAMOUNT,
  2939. su.BUYTRADELOT,
  2940. su.BUYTRADEQTY,
  2941. su.BUYTRADEAMOUNT,
  2942. su.SELLTRADELOT,
  2943. su.SELLTRADEQTY,
  2944. su.SELLTRADEAMOUNT
  2945. from (select t.RECKONDATE,
  2946. t.WRUSERID,
  2947. v.ZSCATEGORY,
  2948. v.ZSCATEGORYDISPLAY,
  2949. v.ZSCURRENCYTYPE,
  2950. v.ZSCURRENCYTYPEDISPLAY,
  2951. v.ZSCURRENCYTYPEDISPLAYUNIT,
  2952. sum(v.WEIGHT) TOTALWEIGHT,
  2953. sum(v.PRICE) TOTALPRICE
  2954. from Reckon_DayWRPosition t
  2955. left join view_gz_wrstandard_ex v
  2956. on t.wrstandardid = v.WRSTANDARDID
  2957. where t.wruserid = %v
  2958. and t.reckondate >= '%v' and t.reckondate <= '%v'
  2959. and %v
  2960. and %v
  2961. group by t.reckondate,
  2962. t.wruserid,
  2963. v.ZSCATEGORY,
  2964. v.ZSCATEGORYDISPLAY,
  2965. v.ZSCURRENCYTYPE,
  2966. v.ZSCURRENCYTYPEDISPLAY,
  2967. v.ZSCURRENCYTYPEDISPLAYUNIT) a
  2968. left join Reckon_GZ_MemTradeSum su
  2969. on a.reckondate = su.tradedate
  2970. and a.wruserid = su.userid
  2971. and a.ZSCATEGORY = su.zscategory
  2972. and a.ZSCURRENCYTYPE = su.zscurrencytype
  2973. order by a.reckondate, a.ZSCATEGORY, a.ZSCURRENCYTYPE
  2974. `
  2975. // 【登录用户ID】 【开始时段】 【结束时段】 v.ZSCATEGORY = 【商品分类】 v.ZSCURRENCYTYPE = 【商品币种】
  2976. p1 := "1=1"
  2977. if r.ZSCATEGORY > 0 {
  2978. p1 = fmt.Sprintf("t.ZSCATEGORY = %v", r.ZSCATEGORY)
  2979. }
  2980. p2 := "1=1"
  2981. if r.ZSCURRENCYTYPE > 0 {
  2982. p1 = fmt.Sprintf("v.ZSCURRENCYTYPE = %v", r.ZSCURRENCYTYPE)
  2983. }
  2984. sqlId.FormatParam(r.USERID, r.BeginDate, r.EndDate, p1, p2)
  2985. } else {
  2986. // 周期报表
  2987. sqlId = `
  2988. select a.*,
  2989. su.BUYLISTINGLOT,
  2990. su.SELLLISTINGLOT,
  2991. su.SELLLISTINGQTY,
  2992. su.SELLLISTINGAMOUNT,
  2993. su.BUYTRADELOT,
  2994. su.BUYTRADEQTY,
  2995. su.BUYTRADEAMOUNT,
  2996. su.SELLTRADELOT,
  2997. su.SELLTRADEQTY,
  2998. su.SELLTRADEAMOUNT
  2999. from (select t.CYCLETYPE,
  3000. t.CYCLETIME RECKONDATE,
  3001. t.WRUSERID,
  3002. v.ZSCATEGORY,
  3003. v.ZSCATEGORYDISPLAY,
  3004. v.ZSCURRENCYTYPE,
  3005. v.ZSCURRENCYTYPEDISPLAY,
  3006. v.ZSCURRENCYTYPEDISPLAYUNIT,
  3007. sum(v.WEIGHT) TOTALWEIGHT,
  3008. sum(v.PRICE) TOTALPRICE
  3009. from report_WRPosition t
  3010. left join view_gz_wrstandard_ex v
  3011. on t.wrstandardid = v.WRSTANDARDID
  3012. where t.wruserid = %v and %v
  3013. and t.cycletime >= '%v'
  3014. and t.cycletime <= '%v'
  3015. and %v
  3016. and %v
  3017. group by t.cycletype,
  3018. t.cycletime,
  3019. t.wruserid,
  3020. v.ZSCATEGORY,
  3021. v.ZSCATEGORYDISPLAY,
  3022. v.ZSCURRENCYTYPE,
  3023. v.ZSCURRENCYTYPEDISPLAY,
  3024. v.ZSCURRENCYTYPEDISPLAYUNIT) a
  3025. left join report_GZ_MemTradeSum su
  3026. on a.cycletype = su.cycletype
  3027. and a.RECKONDATE = su.cycletime
  3028. and a.wruserid = su.userid
  3029. and a.ZSCATEGORY = su.zscategory
  3030. and a.ZSCURRENCYTYPE = su.zscurrencytype
  3031. order by a.RECKONDATE, a.ZSCATEGORY, a.ZSCURRENCYTYPE
  3032. `
  3033. // 【登录用户ID】 t.cycletype = 【报表类型】【开始时段】 【结束时段】 v.ZSCATEGORY = 【商品分类】 v.ZSCURRENCYTYPE = 【商品币种】
  3034. p0 := "1=1"
  3035. if r.CYCLETYPE > 0 {
  3036. p0 = fmt.Sprintf("t.CYCLETYPE = %v", r.CYCLETYPE)
  3037. }
  3038. p1 := "1=1"
  3039. if r.ZSCATEGORY > 0 {
  3040. p1 = fmt.Sprintf("v.ZSCATEGORY = %v", r.ZSCATEGORY)
  3041. }
  3042. p2 := "1=1"
  3043. if r.ZSCURRENCYTYPE > 0 {
  3044. p1 = fmt.Sprintf("v.ZSCURRENCYTYPE = %v", r.ZSCURRENCYTYPE)
  3045. }
  3046. sqlId.FormatParam(r.USERID, p0, r.BeginDate, r.EndDate, p1, p2)
  3047. }
  3048. sqlId.Page(r.Page, r.PageSize)
  3049. return sqlId.String()
  3050. }
  3051. func (r *WRPositionReport) GetDataByPage() (interface{}, error, int, int, int) {
  3052. sData := make([]WRPositionReport, 0)
  3053. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  3054. total := 0
  3055. for i := range sData {
  3056. sData[i].calc()
  3057. total = sData[i].Total
  3058. }
  3059. return sData, err, r.Page, r.PageSize, total
  3060. }
  3061. // Reckongzmemtradesum 会员钻石交易日汇总表
  3062. type Reckongzmemtradesum struct {
  3063. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  3064. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  3065. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  3066. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE" form:"zscurrencytype"` // 货币类型 - 枚举“ZSCurrencyType”
  3067. BUYLISTINGLOT int32 `json:"buylistinglot" xorm:"BUYLISTINGLOT"` // 买挂牌宗数
  3068. BUYLISTINGQTY float64 `json:"buylistingqty" xorm:"BUYLISTINGQTY"` // 买挂牌数量 - 无数据,预留
  3069. BUYLISTINGAMOUNT float64 `json:"buylistingamount" xorm:"BUYLISTINGAMOUNT"` // 买挂牌金额 - 无数据,预留
  3070. SELLLISTINGLOT int32 `json:"selllistinglot" xorm:"SELLLISTINGLOT"` // 卖挂牌宗数
  3071. SELLLISTINGQTY float64 `json:"selllistingqty" xorm:"SELLLISTINGQTY"` // 卖挂牌数量
  3072. SELLLISTINGAMOUNT float64 `json:"selllistingamount" xorm:"SELLLISTINGAMOUNT"` // 卖挂牌金额
  3073. BUYTRADELOT int32 `json:"buytradelot" xorm:"BUYTRADELOT"` // 购买宗数
  3074. BUYTRADEQTY float64 `json:"buytradeqty" xorm:"BUYTRADEQTY"` // 购买数量
  3075. BUYTRADEAMOUNT float64 `json:"buytradeamount" xorm:"BUYTRADEAMOUNT"` // 购买金额
  3076. SELLTRADELOT int32 `json:"selltradelot" xorm:"SELLTRADELOT"` // 销售宗数
  3077. SELLTRADEQTY float64 `json:"selltradeqty" xorm:"SELLTRADEQTY"` // 销售数量
  3078. SELLTRADEAMOUNT float64 `json:"selltradeamount" xorm:"SELLTRADEAMOUNT"` // 销售金额
  3079. UPDATETIME time.Time `json:"updatetime" xorm:"UPDATETIME"` // 更新时间
  3080. RECKONDATE string `json:"reckondate" xorm:"RECKONDATE"` // 日照日期(yyyyMMdd)
  3081. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  3082. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  3083. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  3084. CYCLETYPE int32 `json:"-" form:"cycletype"` // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表 (日报表不传此参数)
  3085. BeginDate string `json:"-" form:"begindate" binding:"required"` // 开始时段
  3086. EndDate string `json:"-" form:"enddate" binding:"required"` // 结束时段
  3087. PageEx `xorm:"extends"` // 页码信息
  3088. }
  3089. func (r *Reckongzmemtradesum) calc() {
  3090. }
  3091. func (r *Reckongzmemtradesum) buildSql() string {
  3092. var sqlId utils.SQLVal
  3093. if r.CYCLETYPE == 0 {
  3094. // 日报表
  3095. sqlId = `
  3096. select
  3097. DIC1.ENUMDICNAME ZSCATEGORYDISPLAY,
  3098. DIC2.ENUMDICNAME ZSCURRENCYTYPEDISPLAY,
  3099. DIC2.PARAM2 ZSCURRENCYTYPEDISPLAYUNIT,
  3100. t.*
  3101. from Reckon_GZ_MemTradeSum t
  3102. LEFT JOIN ENUMDICITEM DIC1 ON t.ZSCATEGORY = DIC1.ENUMITEMNAME AND DIC1.ENUMDICCODE = 'ZSCategory'
  3103. LEFT JOIN ENUMDICITEM DIC2 ON t.ZSCURRENCYTYPE = DIC2.ENUMITEMNAME AND DIC2.ENUMDICCODE = 'ZSCurrencyType'
  3104. where t.userid = %v
  3105. and t.tradedate >= '%v'
  3106. and t.tradedate <= '%v'
  3107. and %v
  3108. and %v
  3109. order by t.tradedate, t.zscategory, t.zscurrencytype
  3110. `
  3111. // 【登录用户ID】 【开始时段】 【结束时段】 t.ZSCATEGORY = 【商品分类】 t.ZSCURRENCYTYPE = 【商品币种】
  3112. p1 := "1=1"
  3113. if r.ZSCATEGORY > 0 {
  3114. p1 = fmt.Sprintf("t.ZSCATEGORY = %v", r.ZSCATEGORY)
  3115. }
  3116. p2 := "1=1"
  3117. if r.ZSCURRENCYTYPE > 0 {
  3118. p1 = fmt.Sprintf("t.ZSCURRENCYTYPE = %v", r.ZSCURRENCYTYPE)
  3119. }
  3120. sqlId.FormatParam(r.USERID, r.BeginDate, r.EndDate, p1, p2)
  3121. } else {
  3122. // 周期报表
  3123. sqlId = `
  3124. select
  3125. DIC1.ENUMDICNAME ZSCATEGORYDISPLAY,
  3126. DIC2.ENUMDICNAME ZSCURRENCYTYPEDISPLAY,
  3127. DIC2.PARAM2 ZSCURRENCYTYPEDISPLAYUNIT,
  3128. t.MARKETID ,
  3129. t.USERID ,
  3130. t.ZSCATEGORY ,
  3131. t.ZSCURRENCYTYPE ,
  3132. t.BUYLISTINGLOT ,
  3133. t.BUYLISTINGQTY ,
  3134. t.BUYLISTINGAMOUNT ,
  3135. t.SELLLISTINGLOT ,
  3136. t.SELLLISTINGQTY ,
  3137. t.SELLLISTINGAMOUNT,
  3138. t.BUYTRADELOT ,
  3139. t.BUYTRADEQTY ,
  3140. t.BUYTRADEAMOUNT ,
  3141. t.SELLTRADELOT ,
  3142. t.SELLTRADEQTY ,
  3143. t.SELLTRADEAMOUNT ,
  3144. t.UPDATETIME ,
  3145. t.CYCLETIME RECKONDATE
  3146. from Report_GZ_MemTradeSum t
  3147. LEFT JOIN ENUMDICITEM DIC1 ON t.ZSCATEGORY = DIC1.ENUMITEMNAME AND DIC1.ENUMDICCODE = 'ZSCategory'
  3148. LEFT JOIN ENUMDICITEM DIC2 ON t.ZSCURRENCYTYPE = DIC2.ENUMITEMNAME AND DIC2.ENUMDICCODE = 'ZSCurrencyType'
  3149. where t.userid = %v
  3150. and %v
  3151. and t.cycletime >= %v
  3152. and t.cycletime <= %v
  3153. and %v
  3154. and %v
  3155. order by t.cycletime, t.zscategory, t.zscurrencytype
  3156. `
  3157. // 【登录用户ID】 t.cycletype = 【报表类型】【开始时段】 【结束时段】 t.ZSCATEGORY = 【商品分类】 t.ZSCURRENCYTYPE = 【商品币种】
  3158. p0 := "1=1"
  3159. if r.CYCLETYPE > 0 {
  3160. p0 = fmt.Sprintf("t.CYCLETYPE = %v", r.CYCLETYPE)
  3161. }
  3162. p1 := "1=1"
  3163. if r.ZSCATEGORY > 0 {
  3164. p1 = fmt.Sprintf("t.ZSCATEGORY = %v", r.ZSCATEGORY)
  3165. }
  3166. p2 := "1=1"
  3167. if r.ZSCURRENCYTYPE > 0 {
  3168. p1 = fmt.Sprintf("t.ZSCURRENCYTYPE = %v", r.ZSCURRENCYTYPE)
  3169. }
  3170. sqlId.FormatParam(r.USERID, p0, r.BeginDate, r.EndDate, p1, p2)
  3171. }
  3172. sqlId.Page(r.Page, r.PageSize)
  3173. return sqlId.String()
  3174. }
  3175. func (r *Reckongzmemtradesum) GetDataByPage() (interface{}, error, int, int, int) {
  3176. sData := make([]Reckongzmemtradesum, 0)
  3177. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  3178. total := 0
  3179. for i := range sData {
  3180. sData[i].calc()
  3181. total = sData[i].Total
  3182. }
  3183. return sData, err, r.Page, r.PageSize, total
  3184. }
  3185. type Gzcjjcorderoperate struct {
  3186. ORDERID string `json:"orderid" xorm:"ORDERID" form:"orderid" binding:"required"` // 单据ID(801+Unix秒时间戳(10位)+xxxxxx)
  3187. GZCJSTATUS int32 `json:"status" xorm:"GZCJSTATUS" form:"status" binding:"required"` // 操作后单据状态 - 枚举"GZCJStatus"
  3188. OPERATORSRC int32 `json:"operatorsrc" xorm:"OPERATORSRC"` // 操作人来源 - 1:管理端 2:终端
  3189. OPERATORID int64 `json:"operatorid" xorm:"OPERATORID"` // 操作人ID - systemmanager的autoid 或 loginaccount的loginid
  3190. OPERATORACCOUNT string `json:"operatoraccount" xorm:"OPERATORACCOUNT"` // 操作人账号 - systemmanager的logincode 或 loginaccount的logincode,无则用loginid
  3191. OPERATORNAME string `json:"operatorname" xorm:"OPERATORNAME"` // 操作人名称 - systemmanager的username 或 loginaccount的logincode,无则用loginid
  3192. OPERATETIME time.Time `json:"operatetime" xorm:"OPERATETIME"` // 操作时间
  3193. REMARK string `json:"remark" xorm:"REMARK"` // 操作备注
  3194. GIAUSDFEE float64 `json:"giausdfee" xorm:"GIAUSDFEE"` // GIA检测费(USD$) [GZCJStatus = 10.预付款确认中\13.付款确认中] 时
  3195. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率 [GZCJStatus = 10.预付款确认中\13.付款确认中] 时
  3196. GIARMBFEE float64 `json:"giarmbfee" xorm:"GIARMBFEE"` // GIA检测费(¥) [GZCJStatus = 10.预付款确认中\13.付款确认中] 时
  3197. CUSTOMSFEE float64 `json:"customsfee" xorm:"CUSTOMSFEE"` // 海关税费 [GZCJStatus = 10.预付款确认中\13.付款确认中] 时
  3198. BANKFEE float64 `json:"bankfee" xorm:"BANKFEE"` // 汇款银行手续费 [GZCJStatus = 10.预付款确认中\13.付款确认中] 时
  3199. LOGISTICSFEE float64 `json:"logisticsfee" xorm:"LOGISTICSFEE"` // 代缴物流保险费 [GZCJStatus = 10.预付款确认中\13.付款确认中] 时
  3200. SERVICEFEE float64 `json:"servicefee" xorm:"SERVICEFEE"` // 综合服务费 [GZCJStatus = 10.预付款确认中\13.付款确认中] 时
  3201. OTHERFEE float64 `json:"otherfee" xorm:"OTHERFEE"` // 其它费用
  3202. TOTALFEE float64 `json:"totalfee" xorm:"TOTALFEE"` // 总费用 = GIA检测费(¥) + 海关税费 + 汇款银行手续费 + 代缴物流保险费 + 综合服务费 + 其它费用 [GZCJStatus = 10.预付款确认中\13.付款确认中] 时
  3203. LOGISTICSPROOFADDR string `json:"logisticsproofaddr" xorm:"LOGISTICSPROOFADDR"` // 代缴物流保险费凭证(确认结算费用时)
  3204. GIAPROOFADDR string `json:"giaproofaddr" xorm:"GIAPROOFADDR"` // GIA检测费凭证(确认结算费用时)
  3205. CUSTOMSPROOFADDR string `json:"customsproofaddr" xorm:"CUSTOMSPROOFADDR"` // 海关税费凭证(确认结算费用时)
  3206. BANKPROOFADDR string `json:"bankproofaddr" xorm:"BANKPROOFADDR"` // 广钻汇款银行手续费凭证(确认结算费用时)
  3207. ADVANCEPROOFADDR string `json:"advanceproofaddr" xorm:"ADVANCEPROOFADDR"` // 预付检测费和海关税费银行凭证(确认结算费用时)
  3208. SETTLEAMOUNT float64 `json:"settleamount" xorm:"SETTLEAMOUNT"` // 总结算费用
  3209. ADVANCEAMOUNT float64 `json:"advanceamount" xorm:"ADVANCEAMOUNT"` // 总预付款
  3210. }
  3211. func (r *Gzcjjcorderoperate) calc() {
  3212. }
  3213. func (r *Gzcjjcorderoperate) buildSql() string {
  3214. var sqlId utils.SQLVal = `
  3215. SELECT
  3216. to_char(t.ORDERID) ORDERID,
  3217. t.GZCJSTATUS,
  3218. t.OPERATORSRC,
  3219. t.OPERATORID,
  3220. t.OPERATORACCOUNT,
  3221. t.OPERATORNAME,
  3222. to_char(t.OPERATETIME, 'yyyy-mm-dd hh24:mi:ss') OPERATETIME,
  3223. t.REMARK,
  3224. t.GIAUSDFEE,
  3225. t.EXCHANGERATE,
  3226. t.GIARMBFEE,
  3227. t.CUSTOMSFEE,
  3228. t.BANKFEE,
  3229. t.LOGISTICSFEE,
  3230. t.SERVICEFEE,
  3231. t.OTHERFEE,
  3232. t.TOTALFEE,
  3233. t.LOGISTICSPROOFADDR,
  3234. t.GIAPROOFADDR,
  3235. t.CUSTOMSPROOFADDR,
  3236. t.BANKPROOFADDR,
  3237. t.ADVANCEPROOFADDR,
  3238. c.SETTLEAMOUNT,
  3239. c.ADVANCEAMOUNT
  3240. FROM GZ_CJJCOrderOperate t
  3241. LEFT JOIN GZ_CJJCOrder c ON c.orderid = t.orderid
  3242. WHERE t.gzcjstatus = %v AND t.orderid = %v
  3243. `
  3244. sqlId.FormatParam(r.GZCJSTATUS, r.ORDERID)
  3245. return sqlId.String()
  3246. }
  3247. // GetDataEx 从数据库中查询数据
  3248. func (r *Gzcjjcorderoperate) GetDataEx() (interface{}, error) {
  3249. e := db.GetEngine()
  3250. s := e.SQL(r.buildSql())
  3251. sData := make([]Gzcjjcorderoperate, 0)
  3252. if err := s.Find(&sData); err != nil {
  3253. return nil, err
  3254. }
  3255. for i := range sData {
  3256. sData[i].calc()
  3257. }
  3258. return sData, nil
  3259. }
  3260. type Fworderoperate struct {
  3261. ORDERID string `json:"orderid" xorm:"ORDERID" form:"orderid" binding:"required"` // 单据ID(804+Unix秒时间戳(10位)+xxxxxx)
  3262. GZBSSTATUS int32 `json:"status" xorm:"GZBSSTATUS" form:"status" binding:"required"` // 操作后单据状态 - 枚举"GZBSStatus"
  3263. OPERATORSRC int32 `json:"operatorsrc" xorm:"OPERATORSRC"` // 操作人来源 - 1:管理端 2:终端
  3264. OPERATORID int64 `json:"operatorid" xorm:"OPERATORID"` // 操作人ID - systemmanager的autoid 或 loginaccount的loginid
  3265. OPERATORACCOUNT string `json:"operatoraccount" xorm:"OPERATORACCOUNT"` // 操作人账号 - systemmanager的logincode 或 loginaccount的logincode,无则用loginid
  3266. OPERATORNAME string `json:"operatorname" xorm:"OPERATORNAME"` // 操作人名称 - systemmanager的username 或 loginaccount的logincode,无则用loginid
  3267. OPERATETIME string `json:"operatetime" xorm:"OPERATETIME"` // 操作时间
  3268. REMARK string `json:"remark" xorm:"REMARK"` // 操作备注
  3269. TAXMARGIN float64 `json:"taxmargin" xorm:"TAXMARGIN"` // 税费保证金
  3270. BANKFEE float64 `json:"bankfee" xorm:"BANKFEE"` // 汇款银行手续费
  3271. LOGISTICSFEE float64 `json:"logisticsfee" xorm:"LOGISTICSFEE"` // 代缴物流保险费
  3272. SERVICEFEE float64 `json:"servicefee" xorm:"SERVICEFEE"` // 综合服务费
  3273. OTHERFEE float64 `json:"otherfee" xorm:"OTHERFEE"` // 其它费用
  3274. TOTALFEE float64 `json:"totalfee" xorm:"TOTALFEE"` // 总费用 = 费用之和 (结算费用时不含税费保证金)
  3275. LOGISTICSPROOFADDR string `json:"logisticsproofaddr" xorm:"LOGISTICSPROOFADDR"` // 代缴物流保险费凭证(确认结算费用时)
  3276. BANKPROOFADDR string `json:"bankproofaddr" xorm:"BANKPROOFADDR"` // 广钻汇款银行手续费凭证(确认结算费用时)
  3277. CUSTOMSPROOFADDR string `json:"customsproofaddr" xorm:"CUSTOMSPROOFADDR"` // 海关税费保证金收据(确认结算费用时)
  3278. ADVANCEPROOFADDR string `json:"advanceproofaddr" xorm:"ADVANCEPROOFADDR"` // 预付款收款凭证(确认结算费用时)
  3279. ADVANCEAMOUNT float64 `json:"advanceamount" xorm:"ADVANCEAMOUNT"` // 总预付款
  3280. SETTLEAMOUNT float64 `json:"settleamount" xorm:"SETTLEAMOUNT"` // 总结算费用 - 实际扣除资金,不含税费保证金
  3281. }
  3282. func (r *Fworderoperate) calc() {
  3283. }
  3284. func (r *Fworderoperate) buildSql() string {
  3285. var sqlId utils.SQLVal = `
  3286. SELECT
  3287. to_char(t.ORDERID) ORDERID,
  3288. t.GZBSSTATUS,
  3289. t.OPERATORSRC,
  3290. t.OPERATORID,
  3291. t.OPERATORACCOUNT,
  3292. t.OPERATORNAME,
  3293. to_char(t.OPERATETIME, 'yyyy-mm-dd hh24:mi:ss') OPERATETIME,
  3294. t.REMARK,
  3295. t.TAXMARGIN,
  3296. t.BANKFEE,
  3297. t.LOGISTICSFEE,
  3298. t.SERVICEFEE,
  3299. t.OTHERFEE,
  3300. t.TOTALFEE,
  3301. t.LOGISTICSPROOFADDR,
  3302. t.BANKPROOFADDR,
  3303. t.CUSTOMSPROOFADDR,
  3304. t.ADVANCEPROOFADDR,
  3305. c.ADVANCEAMOUNT,
  3306. c.SETTLEAMOUNT
  3307. FROM GZ_BSFWORDEROPERATE t
  3308. LEFT JOIN GZ_BSFWOrder c ON c.orderid = t.orderid
  3309. WHERE t.GZBSSTATUS = %v AND t.orderid = %v
  3310. `
  3311. sqlId.FormatParam(r.GZBSSTATUS, r.ORDERID)
  3312. return sqlId.String()
  3313. }
  3314. // GetDataEx 从数据库中查询数据
  3315. func (r *Fworderoperate) GetDataEx() (interface{}, error) {
  3316. e := db.GetEngine()
  3317. s := e.SQL(r.buildSql())
  3318. sData := make([]Fworderoperate, 0)
  3319. if err := s.Find(&sData); err != nil {
  3320. return nil, err
  3321. }
  3322. for i := range sData {
  3323. sData[i].calc()
  3324. }
  3325. return sData, nil
  3326. }
  3327. // GGzbscinoutorder 保税仓出入库申请表
  3328. type GGzbscinoutorder struct {
  3329. ORDERID string `json:"orderid" xorm:"ORDERID"` // 申请ID(806+Unix秒时间戳(10位)+xxxxxx)
  3330. ORDERTYPE int32 `json:"ordertype" xorm:"ORDERTYPE" form:"ordertype" binding:"required"` // 单据类型 - 1:进仓 2:出仓(枚举:GZBSCOrderType)
  3331. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 申请用户ID
  3332. USERNAME string `json:"username" xorm:"USERNAME"` // 申请方名称
  3333. USERADDRESS string `json:"useraddress" xorm:"USERADDRESS"` // 申请方地点
  3334. CONTACTNAME string `json:"contactname" xorm:"CONTACTNAME"` // 申请方联系人
  3335. CONTACTNUM string `json:"contactnum" xorm:"CONTACTNUM"` // 申请方联系电话
  3336. LOGISTICSCOMPANY string `json:"logisticscompany" xorm:"LOGISTICSCOMPANY"` // 物流公司名称
  3337. LOGISTICSNO string `json:"logisticsno" xorm:"LOGISTICSNO"` // 托运单号
  3338. APPLICANTTIME string `json:"applicanttime" xorm:"APPLICANTTIME"` // 申请时间
  3339. OUTTYPE int32 `json:"outtype" xorm:"OUTTYPE"` // 出仓类型 - 1:转厂 2:出境(枚举:GZBSCOutType)
  3340. ORDERSTATUS int32 `json:"orderstatus" xorm:"ORDERSTATUS"` // 进出仓状态 - 1.待确认 2.待上传 3.报关中 4.进仓中 5.出仓中 20.已关闭 21.确认拒绝(枚举:GZBSCOrderStatus)
  3341. JCKDATE string `json:"jckdate" xorm:"JCKDATE"` // 进出口日期
  3342. CUSTOMSNO string `json:"customsno" xorm:"CUSTOMSNO"` // 报关单号
  3343. CHECKLISTNO string `json:"checklistno" xorm:"CHECKLISTNO"` // 核注清单号
  3344. SIGNEENAME string `json:"signeename" xorm:"SIGNEENAME"` // 收发货人
  3345. SIGNEEDATE string `json:"signeedate" xorm:"SIGNEEDATE"` // 收发货人日期
  3346. SEALNO string `json:"sealno" xorm:"SEALNO"` // 进出仓封条号
  3347. CONFIRMERNAME string `json:"confirmername" xorm:"CONFIRMERNAME"` // 进出仓确认人
  3348. CONFIRMDATE string `json:"confirmdate" xorm:"CONFIRMDATE"` // 进出仓确认时间
  3349. CONFIRMTRADEDATE string `json:"confirmtradedate" xorm:"CONFIRMTRADEDATE"` // 进出仓确认交易日(yyyyMMdd)
  3350. NETWEIGHTCT float64 `json:"netweightct" xorm:"NETWEIGHTCT"` // 净重(克拉)
  3351. NETWEIGHTGM float64 `json:"netweightgm" xorm:"NETWEIGHTGM"` // 净重(克)
  3352. BAGWEIGHTGM float64 `json:"bagweightgm" xorm:"BAGWEIGHTGM"` // 连袋重(克)
  3353. TOTALPRICE float64 `json:"totalprice" xorm:"TOTALPRICE"` // 总价
  3354. CUSTOMSTOTALVALUE float64 `json:"customstotalvalue" xorm:"CUSTOMSTOTALVALUE"` // 报关总值
  3355. GOODSNAME string `json:"goodsname" xorm:"GOODSNAME"` // 商品名称 - 明细的商品名称拼接("/")
  3356. ORDERNUM string `json:"ordernum" xorm:"ORDERNUM"` // 单据编号
  3357. ListType int `json:"-" xorm:"-" form:"listtype"` // 列表类型 - 0.全部 1.待上传 2.进行中 3.已结束
  3358. PageEx `xorm:"extends"` // 页码信息
  3359. }
  3360. func (r *GGzbscinoutorder) calc() {
  3361. }
  3362. func (r *GGzbscinoutorder) buildSql() string {
  3363. var sqlId utils.SQLVal = `
  3364. select
  3365. to_char(t.ORDERID) ORDERID,
  3366. t.ORDERTYPE,
  3367. t.USERID,
  3368. t.USERNAME,
  3369. t.USERADDRESS,
  3370. t.CONTACTNAME,
  3371. t.CONTACTNUM,
  3372. t.LOGISTICSCOMPANY,
  3373. t.LOGISTICSNO,
  3374. to_char(t.APPLICANTTIME, 'yyyy-mm-dd hh24:mi:ss') APPLICANTTIME,
  3375. t.OUTTYPE,
  3376. t.ORDERSTATUS,
  3377. to_char(t.JCKDATE, 'yyyy-mm-dd') JCKDATE,
  3378. t.CUSTOMSNO,
  3379. t.CHECKLISTNO,
  3380. t.SIGNEENAME,
  3381. to_char(t.SIGNEEDATE, 'yyyy-mm-dd') SIGNEEDATE,
  3382. t.SEALNO,
  3383. t.CONFIRMERNAME,
  3384. to_char(t.CONFIRMDATE, 'yyyy-mm-dd') CONFIRMDATE,
  3385. t.CONFIRMTRADEDATE,
  3386. t.NETWEIGHTCT,
  3387. t.NETWEIGHTGM,
  3388. t.BAGWEIGHTGM,
  3389. t.TOTALPRICE,
  3390. t.CUSTOMSTOTALVALUE,
  3391. t.GOODSNAME,
  3392. t.ORDERNUM
  3393. from GZ_BSCInOutOrder t
  3394. where t.userid = %v and t.ORDERTYPE = %v and %v
  3395. `
  3396. e := "1=1"
  3397. if r.ListType != 0 {
  3398. switch r.ListType {
  3399. case 1:
  3400. e = "t.ORDERSTATUS = 2"
  3401. case 2:
  3402. e = "t.ORDERSTATUS < 20"
  3403. case 3:
  3404. e = "t.ORDERSTATUS >= 20"
  3405. }
  3406. }
  3407. sqlId.FormatParam(r.USERID, r.ORDERTYPE, e)
  3408. sqlId.AndEx("t.OUTTYPE", r.OUTTYPE, r.OUTTYPE != 0)
  3409. sqlId.OrderByDesc("t.APPLICANTTIME")
  3410. sqlId.Page(r.Page, r.PageSize)
  3411. return sqlId.String()
  3412. }
  3413. func (r *GGzbscinoutorder) GetDataByPage() (interface{}, error, int, int, int) {
  3414. sData := make([]GGzbscinoutorder, 0)
  3415. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  3416. total := 0
  3417. for i := range sData {
  3418. sData[i].calc()
  3419. total = sData[i].Total
  3420. }
  3421. return sData, err, r.Page, r.PageSize, total
  3422. }
  3423. // BScinoutorderdetail 保税仓出入库申请明细表
  3424. type BScinoutorderdetail struct {
  3425. DETAILID string `json:"detailid" xorm:"DETAILID"` // 明细ID(807+Unix秒时间戳(10位)+xxxxxx)
  3426. ORDERID string `json:"orderid" xorm:"ORDERID" form:"orderid" binding:"required"` // 申请ID
  3427. GOODSID int64 `json:"goodsid" xorm:"GOODSID"` // 商品ID
  3428. GOODSSPEC string `json:"goodsspec" xorm:"GOODSSPEC"` // 规格
  3429. RAWDETAIL string `json:"rawdetail" xorm:"RAWDETAIL"` // 原料明细
  3430. BACKAGENUM int32 `json:"backagenum" xorm:"BACKAGENUM"` // 件数
  3431. NETWEIGHTCT float64 `json:"netweightct" xorm:"NETWEIGHTCT"` // 净重(克拉)
  3432. NETWEIGHTGM float64 `json:"netweightgm" xorm:"NETWEIGHTGM"` // 净重(克)
  3433. BAGWEIGHTGM float64 `json:"bagweightgm" xorm:"BAGWEIGHTGM"` // 连袋重(克)
  3434. PREPRICEGM float64 `json:"prepricegm" xorm:"PREPRICEGM"` // 单价(克)
  3435. TOTALPRICE float64 `json:"totalprice" xorm:"TOTALPRICE"` // 总价
  3436. CURRENCYDES string `json:"currencydes" xorm:"CURRENCYDES"` // 币种
  3437. CUSTOMSVALUE float64 `json:"customsvalue" xorm:"CUSTOMSVALUE"` // 报关总值
  3438. ORIGINCOUNTRY string `json:"origincountry" xorm:"ORIGINCOUNTRY"` // 原产国
  3439. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  3440. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  3441. CUSTOMSNO string `json:"customsno" xorm:"CUSTOMSNO"` // 报关单号(进仓:录入时更新,出仓申请时有)
  3442. GOODSNUM string `json:"goodsnum" xorm:"GOODSNUM"` // 商品编号
  3443. GOODSNAME string `json:"goodsname" xorm:"GOODSNAME"` // 商品名称
  3444. COUNTRYNAME string `json:"countryname" xorm:"COUNTRYNAME"` // 产销国
  3445. REPORTUNIT string `json:"reportunit" xorm:"REPORTUNIT"` // 申报计量单位
  3446. LEGALUNIT string `json:"legalunit" xorm:"LEGALUNIT"` // 法定计量单位
  3447. UNITPRICE float64 `json:"unitprice" xorm:"UNITPRICE"` // 单价
  3448. CURRENCYNAME string `json:"currencyname" xorm:"CURRENCYNAME"` // 币制
  3449. EXECUTIONFLAG string `json:"executionflag" xorm:"EXECUTIONFLAG"` // 海关执行标志
  3450. STORAGEPERIOD time.Time `json:"storageperiod" xorm:"STORAGEPERIOD"` // 存储(监管)期限
  3451. PageEx `xorm:"extends"` // 页码信息
  3452. }
  3453. func (r *BScinoutorderdetail) calc() {
  3454. }
  3455. func (r *BScinoutorderdetail) buildSql() string {
  3456. var sqlId utils.SQLVal = `
  3457. SELECT
  3458. to_char(t.DETAILID) DETAILID,
  3459. to_char(t.ORDERID) ORDERID,
  3460. t.GOODSID,
  3461. t.GOODSSPEC,
  3462. t.RAWDETAIL,
  3463. t.BACKAGENUM,
  3464. t.NETWEIGHTCT,
  3465. t.NETWEIGHTGM,
  3466. t.BAGWEIGHTGM,
  3467. t.PREPRICEGM,
  3468. t.TOTALPRICE,
  3469. t.CURRENCYDES,
  3470. t.CUSTOMSVALUE,
  3471. t.ORIGINCOUNTRY,
  3472. t.REMARK,
  3473. t.USERID,
  3474. t.CUSTOMSNO,
  3475. a.GOODSNUM,
  3476. a.GOODSNAME,
  3477. a.COUNTRYNAME,
  3478. a.REPORTUNIT,
  3479. a.LEGALUNIT,
  3480. a.UNITPRICE,
  3481. a.CURRENCYNAME,
  3482. a.EXECUTIONFLAG,
  3483. a.STORAGEPERIOD
  3484. FROM GZ_BSCInOutOrderDetail t
  3485. LEFT JOIN GZ_BSCGoods a ON a.goodsid = t.goodsid
  3486. WHERE t.USERID = %v AND t.ORDERID = %v
  3487. ORDER BY a.GOODSNAME
  3488. `
  3489. sqlId.FormatParam(r.USERID, r.ORDERID)
  3490. sqlId.Page(r.Page, r.PageSize)
  3491. return sqlId.String()
  3492. }
  3493. func (r *BScinoutorderdetail) GetDataByPage() (interface{}, error, int, int, int) {
  3494. sData := make([]BScinoutorderdetail, 0)
  3495. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  3496. total := 0
  3497. for i := range sData {
  3498. sData[i].calc()
  3499. total = sData[i].Total
  3500. }
  3501. return sData, err, r.Page, r.PageSize, total
  3502. }
  3503. // BScoutorderdetailatt 保税仓出库申请明细附表
  3504. type BScoutorderdetailatt struct {
  3505. DETAILATTID string `json:"detailattid" xorm:"DETAILATTID"` // 明细ID(810+Unix秒时间戳(10位)+xxxxxx)
  3506. ORDERID string `json:"orderid" xorm:"ORDERID" form:"orderid" binding:"required"` // 申请ID
  3507. GOODSID int64 `json:"goodsid" xorm:"GOODSID"` // 商品ID
  3508. CUSTOMSNO string `json:"customsno" xorm:"CUSTOMSNO"` // 报关单号
  3509. JCKDATE string `json:"jckdate" xorm:"JCKDATE"` // 进口日期
  3510. NETWEIGHTCT float64 `json:"netweightct" xorm:"NETWEIGHTCT"` // 净重(克拉)
  3511. CURNETWEIGHTCT float64 `json:"curnetweightct" xorm:"CURNETWEIGHTCT"` // 本次扣减量(克拉)
  3512. REMAINNETWEIGHTCT float64 `json:"remainnetweightct" xorm:"REMAINNETWEIGHTCT"` // 结余净重(克拉)
  3513. NETWEIGHTGM float64 `json:"netweightgm" xorm:"NETWEIGHTGM"` // 净重(克)
  3514. CURNETWEIGHTGM float64 `json:"curnetweightgm" xorm:"CURNETWEIGHTGM"` // 本次扣减净重(克)
  3515. REMAINCURNETWEIGHTGM float64 `json:"remaincurnetweightgm" xorm:"REMAINCURNETWEIGHTGM"` // 结余净重(克)
  3516. TOTALPRICE float64 `json:"totalprice" xorm:"TOTALPRICE"` // 总价
  3517. CURTOTALPRICE float64 `json:"curtotalprice" xorm:"CURTOTALPRICE"` // 本次扣减货值
  3518. REMAINTOTALPRICE float64 `json:"remaintotalprice" xorm:"REMAINTOTALPRICE"` // 结余总价
  3519. CUSTOMSVALUE float64 `json:"customsvalue" xorm:"CUSTOMSVALUE"` // 报关总值
  3520. CURCUSTOMSVALUE float64 `json:"curcustomsvalue" xorm:"CURCUSTOMSVALUE"` // 本次扣减货值(报关总值)
  3521. REMAINCUSTOMSVALUE float64 `json:"remaincustomsvalue" xorm:"REMAINCUSTOMSVALUE"` // 结余报关总值
  3522. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  3523. GOODSNUM string `json:"goodsnum" xorm:"GOODSNUM"` // 商品编号
  3524. GOODSNAME string `json:"goodsname" xorm:"GOODSNAME"` // 商品名称
  3525. GOODSSPEC string `json:"goodsspec" xorm:"GOODSSPEC"` // 规格型号
  3526. COUNTRYNAME string `json:"countryname" xorm:"COUNTRYNAME"` // 产销国
  3527. REPORTUNIT string `json:"reportunit" xorm:"REPORTUNIT"` // 申报计量单位
  3528. LEGALUNIT string `json:"legalunit" xorm:"LEGALUNIT"` // 法定计量单位
  3529. UNITPRICE float64 `json:"unitprice" xorm:"UNITPRICE"` // 单价
  3530. CURRENCYNAME string `json:"currencyname" xorm:"CURRENCYNAME"` // 币制
  3531. EXECUTIONFLAG string `json:"executionflag" xorm:"EXECUTIONFLAG"` // 海关执行标志
  3532. STORAGEPERIOD time.Time `json:"storageperiod" xorm:"STORAGEPERIOD"` // 存储(监管)期限
  3533. PageEx `xorm:"extends"` // 页码信息
  3534. }
  3535. func (r *BScoutorderdetailatt) calc() {
  3536. }
  3537. func (r *BScoutorderdetailatt) buildSql() string {
  3538. var sqlId utils.SQLVal = `
  3539. SELECT
  3540. to_char(t.DETAILATTID) DETAILATTID,
  3541. to_char(t.ORDERID) ORDERID,
  3542. t.GOODSID,
  3543. t.CUSTOMSNO,
  3544. to_char(t.JCKDATE, 'yyyy-mm-dd') JCKDATE,
  3545. t.NETWEIGHTCT,
  3546. t.CURNETWEIGHTCT,
  3547. t.REMAINNETWEIGHTCT,
  3548. t.NETWEIGHTGM,
  3549. t.CURNETWEIGHTGM,
  3550. t.REMAINCURNETWEIGHTGM,
  3551. t.TOTALPRICE,
  3552. t.CURTOTALPRICE,
  3553. t.REMAINTOTALPRICE,
  3554. t.CUSTOMSVALUE,
  3555. t.CURCUSTOMSVALUE,
  3556. t.REMAINCUSTOMSVALUE,
  3557. t.USERID,
  3558. a.GOODSNUM,
  3559. a.GOODSNAME,
  3560. a.COUNTRYNAME,
  3561. a.REPORTUNIT,
  3562. a.LEGALUNIT,
  3563. a.UNITPRICE,
  3564. a.CURRENCYNAME,
  3565. a.EXECUTIONFLAG,
  3566. a.STORAGEPERIOD,
  3567. a.GOODSSPEC
  3568. FROM GZ_BSCOUTORDERDETAILATT t
  3569. LEFT JOIN GZ_BSCGoods a ON a.goodsid = t.goodsid
  3570. WHERE t.USERID = %v AND t.ORDERID = %v
  3571. ORDER BY a.GOODSNAME, t.JCKDATE
  3572. `
  3573. sqlId.FormatParam(r.USERID, r.ORDERID)
  3574. sqlId.Page(r.Page, r.PageSize)
  3575. return sqlId.String()
  3576. }
  3577. func (r *BScoutorderdetailatt) GetDataByPage() (interface{}, error, int, int, int) {
  3578. sData := make([]BScoutorderdetailatt, 0)
  3579. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  3580. total := 0
  3581. for i := range sData {
  3582. sData[i].calc()
  3583. total = sData[i].Total
  3584. }
  3585. return sData, err, r.Page, r.PageSize, total
  3586. }
  3587. // GGzbscposition 保税商品报关头寸表
  3588. type GGzbscposition struct {
  3589. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  3590. CUSTOMSNO string `json:"customsno" xorm:"CUSTOMSNO"` // 报关单号
  3591. GOODSID string `json:"goodsid" xorm:"GOODSID"` // 商品ID
  3592. JCKDATE string `json:"jckdate" xorm:"JCKDATE"` // 进口日期
  3593. ORINETWEIGHTCT float64 `json:"orinetweightct" xorm:"ORINETWEIGHTCT"` // 期初净重(克拉)
  3594. ORINETWEIGHTGM float64 `json:"orinetweightgm" xorm:"ORINETWEIGHTGM"` // 期初净重(克)
  3595. ORITOTALPRICE float64 `json:"oritotalprice" xorm:"ORITOTALPRICE"` // 期初总价
  3596. ORICUSTOMSVALUE float64 `json:"oricustomsvalue" xorm:"ORICUSTOMSVALUE"` // 期初报关总值
  3597. ORIFREEZEWEIGHT float64 `json:"orifreezeweight" xorm:"ORIFREEZEWEIGHT"` // 期初冻结净重(克拉)
  3598. NETWEIGHTCT float64 `json:"netweightct" xorm:"NETWEIGHTCT"` // 净重(克拉)
  3599. NETWEIGHTGM float64 `json:"netweightgm" xorm:"NETWEIGHTGM"` // 净重(克)
  3600. TOTALPRICE float64 `json:"totalprice" xorm:"TOTALPRICE"` // 总价
  3601. CUSTOMSVALUE float64 `json:"customsvalue" xorm:"CUSTOMSVALUE"` // 报关总值
  3602. FREEZENETWEIGHTCT float64 `json:"freezenetweightct" xorm:"FREEZENETWEIGHTCT"` // 冻结净重(克拉)
  3603. GOODSNUM string `json:"goodsnum" xorm:"GOODSNUM"` // 商品编号
  3604. GOODSNAME string `json:"goodsname" xorm:"GOODSNAME"` // 商品名称
  3605. GOODSSPEC string `json:"goodsspec" xorm:"GOODSSPEC"` // 规格型号
  3606. COUNTRYNAME string `json:"countryname" xorm:"COUNTRYNAME"` // 产销国
  3607. REPORTUNIT string `json:"reportunit" xorm:"REPORTUNIT"` // 申报计量单位
  3608. LEGALUNIT string `json:"legalunit" xorm:"LEGALUNIT"` // 法定计量单位
  3609. UNITPRICE float64 `json:"unitprice" xorm:"UNITPRICE"` // 单价
  3610. CURRENCYNAME string `json:"currencyname" xorm:"CURRENCYNAME"` // 币制
  3611. EXECUTIONFLAG string `json:"executionflag" xorm:"EXECUTIONFLAG"` // 海关执行标志
  3612. STORAGEPERIOD time.Time `json:"storageperiod" xorm:"STORAGEPERIOD"` // 存储(监管)期限
  3613. PageEx `xorm:"extends"` // 页码信息
  3614. }
  3615. func (r *GGzbscposition) calc() {
  3616. }
  3617. func (r *GGzbscposition) buildSql() string {
  3618. var sqlId utils.SQLVal = `
  3619. SELECT
  3620. t.USERID,
  3621. t.CUSTOMSNO,
  3622. t.GOODSID,
  3623. to_char(t.JCKDATE, 'yyyy-mm-dd') JCKDATE,
  3624. t.ORINETWEIGHTCT,
  3625. t.ORINETWEIGHTGM,
  3626. t.ORITOTALPRICE,
  3627. t.ORICUSTOMSVALUE,
  3628. t.ORIFREEZEWEIGHT,
  3629. t.NETWEIGHTCT,
  3630. t.NETWEIGHTGM,
  3631. t.TOTALPRICE,
  3632. t.CUSTOMSVALUE,
  3633. t.FREEZENETWEIGHTCT,
  3634. a.GOODSNUM,
  3635. a.GOODSNAME,
  3636. a.COUNTRYNAME,
  3637. a.REPORTUNIT,
  3638. a.LEGALUNIT,
  3639. a.UNITPRICE,
  3640. a.CURRENCYNAME,
  3641. a.EXECUTIONFLAG,
  3642. a.STORAGEPERIOD,
  3643. a.GOODSSPEC
  3644. FROM GZ_BSCPosition t
  3645. LEFT JOIN GZ_BSCGoods a ON a.goodsid = t.goodsid
  3646. WHERE t.USERID = %v
  3647. ORDER BY a.GOODSNAME
  3648. `
  3649. sqlId.FormatParam(r.USERID)
  3650. sqlId.Page(r.Page, r.PageSize)
  3651. return sqlId.String()
  3652. }
  3653. func (r *GGzbscposition) GetDataByPage() (interface{}, error, int, int, int) {
  3654. sData := make([]GGzbscposition, 0)
  3655. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  3656. total := 0
  3657. for i := range sData {
  3658. sData[i].calc()
  3659. total = sData[i].Total
  3660. }
  3661. return sData, err, r.Page, r.PageSize, total
  3662. }
  3663. // GGzbscusermonthpay 保税仓用户月付款通知书表
  3664. type GGzbscusermonthpay struct {
  3665. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  3666. TRADEMONTH string `json:"trademonth" xorm:"TRADEMONTH"` // 月份(yyyMM)
  3667. SERVICEFEE float64 `json:"servicefee" xorm:"SERVICEFEE"` // 分拣室服务费
  3668. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  3669. STORAGEFEE float64 `json:"storagefee" xorm:"STORAGEFEE"` // 仓储费
  3670. PREMIUM float64 `json:"premium" xorm:"PREMIUM"` // 保险费
  3671. POWERFEE float64 `json:"powerfee" xorm:"POWERFEE"` // 分拣室电费
  3672. INFEE float64 `json:"infee" xorm:"INFEE"` // 进仓报关费
  3673. OUTFEE float64 `json:"outfee" xorm:"OUTFEE"` // 出仓报关费
  3674. TOTALFEE float64 `json:"totalfee" xorm:"TOTALFEE"` // 合计费用
  3675. INNUM float64 `json:"innum" xorm:"INNUM"` // 进仓报关单数
  3676. OUTNUM float64 `json:"outnum" xorm:"OUTNUM"` // 出仓报关单数
  3677. PAYMODE int32 `json:"paymode" xorm:"PAYMODE"` // 支付方式 - 1:线上 2:线下(枚举:GZBSCPayMode)
  3678. PAYSTATUS int32 `json:"paystatus" xorm:"PAYSTATUS" form:"paystatus"` // 支付状态 - 1:待确认 2:待支付 3:已支付(枚举:GZBSCPayStatus)
  3679. STARTDATE time.Time `json:"startdate" xorm:"STARTDATE"` // 协议起始日
  3680. RENTDAYS int32 `json:"rentdays" xorm:"RENTDAYS"` // 月租天数
  3681. CONFIRMTIME time.Time `json:"confirmtime" xorm:"CONFIRMTIME"` // 确认时间
  3682. PAYTIME string `json:"paytime" xorm:"PAYTIME"` // 支付时间
  3683. HANDLESTATUS int32 `json:"handlestatus" xorm:"HANDLESTATUS"` // 处理状态
  3684. PageEx `xorm:"extends"` // 页码信息
  3685. }
  3686. func (r *GGzbscusermonthpay) calc() {
  3687. }
  3688. func (r *GGzbscusermonthpay) buildSql() string {
  3689. var sqlId utils.SQLVal = `
  3690. SELECT
  3691. t.USERID,
  3692. t.TRADEMONTH,
  3693. t.SERVICEFEE,
  3694. t.ACCOUNTID,
  3695. t.STORAGEFEE,
  3696. t.PREMIUM,
  3697. t.POWERFEE,
  3698. t.INFEE,
  3699. t.OUTFEE,
  3700. t.TOTALFEE,
  3701. t.INNUM,
  3702. t.OUTNUM,
  3703. t.PAYMODE,
  3704. t.PAYSTATUS,
  3705. t.STARTDATE,
  3706. t.RENTDAYS,
  3707. t.CONFIRMTIME,
  3708. to_char(t.PAYTIME, 'yyyy-mm-dd hh24:mi:ss') PAYTIME,
  3709. t.HANDLESTATUS
  3710. FROM GZ_BSCUserMonthPay t
  3711. WHERE t.userid = %v
  3712. `
  3713. sqlId.FormatParam(r.USERID)
  3714. sqlId.AndEx("t.PAYSTATUS", r.PAYSTATUS, r.PAYSTATUS != 0)
  3715. sqlId.OrderByDesc("t.TradeMonth")
  3716. sqlId.Page(r.Page, r.PageSize)
  3717. return sqlId.String()
  3718. }
  3719. func (r *GGzbscusermonthpay) GetDataByPage() (interface{}, error, int, int, int) {
  3720. sData := make([]GGzbscusermonthpay, 0)
  3721. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  3722. total := 0
  3723. for i := range sData {
  3724. sData[i].calc()
  3725. total = sData[i].Total
  3726. }
  3727. return sData, err, r.Page, r.PageSize, total
  3728. }
  3729. // GGzbscuserpowerfee 保税仓月电费登记表
  3730. type GGzbscuserpowerfee struct {
  3731. POWERFEEID string `json:"powerfeeid" xorm:"POWERFEEID"` // 电费单ID(809+Unix秒时间戳(10位)+xxxxxx)
  3732. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  3733. TRADEMONTH string `json:"trademonth" xorm:"TRADEMONTH" form:"trademonth" binding:"required"` // 月份(yyyMM)
  3734. INSTRUMENTNO float64 `json:"instrumentno" xorm:"INSTRUMENTNO"` // 仪表编号
  3735. USERNAME float64 `json:"username" xorm:"USERNAME"` // 使用单位
  3736. STARTPOWER float64 `json:"startpower" xorm:"STARTPOWER"` // 月初读数
  3737. ENDPOWER float64 `json:"endpower" xorm:"ENDPOWER"` // 月末初数
  3738. POWERNUM float64 `json:"powernum" xorm:"POWERNUM"` // 本月用量
  3739. POWERUNIT float64 `json:"powerunit" xorm:"POWERUNIT"` // 单位
  3740. POWERFEE float64 `json:"powerfee" xorm:"POWERFEE"` // 电费(元)
  3741. CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
  3742. PageEx `xorm:"extends"` // 页码信息
  3743. }
  3744. func (r *GGzbscuserpowerfee) calc() {
  3745. }
  3746. func (r *GGzbscuserpowerfee) buildSql() string {
  3747. var sqlId utils.SQLVal = `
  3748. SELECT
  3749. to_char(t.POWERFEEID) POWERFEEID,
  3750. t.USERID,
  3751. t.TRADEMONTH,
  3752. t.INSTRUMENTNO,
  3753. t.USERNAME,
  3754. t.STARTPOWER,
  3755. t.ENDPOWER,
  3756. t.POWERNUM,
  3757. t.POWERUNIT,
  3758. t.POWERFEE,
  3759. t.CREATETIME
  3760. FROM GZ_BSCUserPowerFee t
  3761. WHERE 1=1
  3762. `
  3763. // WHERE t.userid = %v AND t.TRADEMONTH = %v
  3764. // ORDER BY t.INSTRUMENTNO DESC
  3765. // sqlId.FormatParam(r.USERID)
  3766. sqlId.And("t.userid", r.USERID)
  3767. sqlId.And("t.TRADEMONTH", r.TRADEMONTH)
  3768. sqlId.OrderByDesc("t.INSTRUMENTNO")
  3769. sqlId.Page(r.Page, r.PageSize)
  3770. return sqlId.String()
  3771. }
  3772. func (r *GGzbscuserpowerfee) GetDataByPage() (interface{}, error, int, int, int) {
  3773. sData := make([]GGzbscuserpowerfee, 0)
  3774. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  3775. total := 0
  3776. for i := range sData {
  3777. sData[i].calc()
  3778. total = sData[i].Total
  3779. }
  3780. return sData, err, r.Page, r.PageSize, total
  3781. }
  3782. // Bscinoutorder 本月进口明细/本月出境明细/本月转厂明细
  3783. type Bscinoutorder struct {
  3784. ORDERID string `json:"orderid" xorm:"ORDERID" form:"orderid"` // 申请ID(806+Unix秒时间戳(10位)+xxxxxx)
  3785. ORDERTYPE int32 `json:"ordertype" xorm:"ORDERTYPE"` // 单据类型 - 1:进仓 2:出仓(枚举:GZBSCOrderType)
  3786. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 申请用户ID
  3787. USERNAME string `json:"username" xorm:"USERNAME"` // 申请方名称
  3788. USERADDRESS string `json:"useraddress" xorm:"USERADDRESS"` // 申请方地点
  3789. CONTACTNAME string `json:"contactname" xorm:"CONTACTNAME"` // 申请方联系人
  3790. CONTACTNUM string `json:"contactnum" xorm:"CONTACTNUM"` // 申请方联系电话
  3791. LOGISTICSCOMPANY string `json:"logisticscompany" xorm:"LOGISTICSCOMPANY"` // 物流公司名称
  3792. LOGISTICSNO string `json:"logisticsno" xorm:"LOGISTICSNO"` // 托运单号
  3793. APPLICANTTIME time.Time `json:"applicanttime" xorm:"APPLICANTTIME"` // 申请时间
  3794. OUTTYPE int32 `json:"outtype" xorm:"OUTTYPE"` // 出仓类型 - 1:转厂 2:出境(枚举:GZBSCOutType)
  3795. ORDERSTATUS int32 `json:"orderstatus" xorm:"ORDERSTATUS"` // 进出仓状态 - 1.待确认 2.待上传 3.报关中 4.进仓中 5.出仓中 20.已关闭 21.确认拒绝(枚举:GZBSCOrderStatus)
  3796. JCKDATE string `json:"jckdate" xorm:"JCKDATE" form:"jckdate" binding:"required"` // 进出口日期
  3797. CUSTOMSNO string `json:"customsno" xorm:"CUSTOMSNO"` // 报关单号
  3798. CHECKLISTNO string `json:"checklistno" xorm:"CHECKLISTNO"` // 核注清单号
  3799. SIGNEENAME string `json:"signeename" xorm:"SIGNEENAME"` // 收发货人
  3800. SIGNEEDATE time.Time `json:"signeedate" xorm:"SIGNEEDATE"` // 收发货人日期
  3801. SEALNO string `json:"sealno" xorm:"SEALNO"` // 进出仓封条号
  3802. CONFIRMERNAME string `json:"confirmername" xorm:"CONFIRMERNAME"` // 进出仓确认人
  3803. CONFIRMDATE time.Time `json:"confirmdate" xorm:"CONFIRMDATE"` // 进出仓确认时间
  3804. CONFIRMTRADEDATE string `json:"confirmtradedate" xorm:"CONFIRMTRADEDATE"` // 进出仓确认交易日(yyyyMMdd)
  3805. NETWEIGHTCT float64 `json:"netweightct" xorm:"NETWEIGHTCT"` // 净重(克拉)
  3806. NETWEIGHTGM float64 `json:"netweightgm" xorm:"NETWEIGHTGM"` // 净重(克)
  3807. BAGWEIGHTGM float64 `json:"bagweightgm" xorm:"BAGWEIGHTGM"` // 连袋重(克)
  3808. TOTALPRICE float64 `json:"totalprice" xorm:"TOTALPRICE"` // 总价
  3809. CUSTOMSTOTALVALUE float64 `json:"customstotalvalue" xorm:"CUSTOMSTOTALVALUE"` // 报关总值
  3810. GOODSNAME string `json:"goodsname" xorm:"GOODSNAME"` // 商品名称 - 明细的商品名称拼接("/")
  3811. ORDERNUM string `json:"ordernum" xorm:"ORDERNUM"` // 单据编号
  3812. PageEx `xorm:"extends"` // 页码信息
  3813. }
  3814. func (r *Bscinoutorder) calc() {
  3815. }
  3816. func (r *Bscinoutorder) buildSql() string {
  3817. var sqlId utils.SQLVal = `
  3818. SELECT
  3819. to_char(t.ORDERID) ORDERID,
  3820. t.ORDERTYPE,
  3821. t.USERID,
  3822. t.USERNAME,
  3823. t.USERADDRESS,
  3824. t.CONTACTNAME,
  3825. t.CONTACTNUM,
  3826. t.LOGISTICSCOMPANY,
  3827. t.LOGISTICSNO,
  3828. t.APPLICANTTIME,
  3829. t.OUTTYPE,
  3830. t.ORDERSTATUS,
  3831. to_char(t.JCKDATE, 'yyyy-mm-dd') JCKDATE,
  3832. t.CUSTOMSNO,
  3833. t.CHECKLISTNO,
  3834. t.SIGNEENAME,
  3835. t.SIGNEEDATE,
  3836. t.SEALNO,
  3837. t.CONFIRMERNAME,
  3838. t.CONFIRMDATE,
  3839. t.CONFIRMTRADEDATE,
  3840. t.NETWEIGHTCT,
  3841. t.NETWEIGHTGM,
  3842. t.BAGWEIGHTGM,
  3843. t.TOTALPRICE,
  3844. t.CUSTOMSTOTALVALUE,
  3845. t.GOODSNAME,
  3846. t.ORDERNUM
  3847. FROM GZ_BSCINOUTORDER t
  3848. WHERE t.userid = %v AND to_char(t.JCKDATE, 'yyyymm') = '%v'
  3849. `
  3850. sqlId.FormatParam(r.USERID, r.JCKDATE)
  3851. sqlId.Page(r.Page, r.PageSize)
  3852. return sqlId.String()
  3853. }
  3854. func (r *Bscinoutorder) GetDataByPage() (interface{}, error, int, int, int) {
  3855. sData := make([]Bscinoutorder, 0)
  3856. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  3857. total := 0
  3858. for i := range sData {
  3859. sData[i].calc()
  3860. total = sData[i].Total
  3861. }
  3862. return sData, err, r.Page, r.PageSize, total
  3863. }
  3864. func (r *Gzbscgoods) GetAll() (rsp []Gzbscgoods, err error) {
  3865. rsp = make([]Gzbscgoods, 0)
  3866. err = db.GetEngine().Find(&rsp)
  3867. return
  3868. }
  3869. func (r *Gzmemberinfo) GetAll() (rsp []Gzmemberinfo, err error) {
  3870. rsp = make([]Gzmemberinfo, 0)
  3871. err = db.GetEngine().OrderBy("ORDERINDEX").Find(&rsp)
  3872. return
  3873. }
  3874. type GZPresell struct {
  3875. PRESALEAPPLYID string `json:"presaleapplyid" xorm:"PRESALEAPPLYID"` // 预售申请ID(184+Unix秒时间戳(10位)+xxxxxx)
  3876. SELLUSERID int64 `json:"selluserid" xorm:"SELLUSERID" form:"selluserid"` // 发行方用户ID
  3877. SELLACCOUNTID int64 `json:"sellaccountid" xorm:"SELLACCOUNTID"` // 发行方资金账户ID
  3878. DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
  3879. WAREHOUSEID int64 `json:"warehouseid" xorm:"WAREHOUSEID"` // 仓库ID
  3880. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  3881. WRFACTORTYPEID string `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID - 根据现货商品\仓库生成
  3882. WRSTANDARDNAME string `json:"wrstandardname" xorm:"WRSTANDARDNAME" form:"wrstandardname"` // 现货商品名称
  3883. UNITID int32 `json:"unitid" xorm:"UNITID"` // 单位ID
  3884. UNITPRICE float64 `json:"unitprice" xorm:"UNITPRICE"` // 商品单价\预售价格
  3885. PRESALEQTY float64 `json:"presaleqty" xorm:"PRESALEQTY"` // 预售总量\预售数量
  3886. BASEQTY float64 `json:"baseqty" xorm:"BASEQTY"` // 中签基数
  3887. MAXBUYQTY float64 `json:"maxbuyqty" xorm:"MAXBUYQTY"` // 单人最大申购量
  3888. MAXLUCKYQTY float64 `json:"maxluckyqty" xorm:"MAXLUCKYQTY"` // 单人最大中签量 - 作废
  3889. STARTDATE string `json:"startdate" xorm:"STARTDATE"` // 预售开始日期
  3890. ENDDATE string `json:"enddate" xorm:"ENDDATE"` // 预售结束日期
  3891. TAKESTARTDATE time.Time `json:"takestartdate" xorm:"TAKESTARTDATE"` // 提货开始日期
  3892. THUMURLS string `json:"thumurls" xorm:"THUMURLS"` // 缩略图片(1:1)(逗号分隔)
  3893. PICTUREURLS string `json:"pictureurls" xorm:"PICTUREURLS"` // 详情图片(逗号分隔)
  3894. BANNERPICURL string `json:"bannerpicurl" xorm:"BANNERPICURL"` // Banner图(逗号分隔)
  3895. PRESALESTATUS int32 `json:"presalestatus" xorm:"PRESALESTATUS" form:"presalestatus"` // 预售状态 - 1:未开始 2:进行中 3:已结束 4:已关闭 5:处理中 6::处理失败 7:已完成
  3896. LOTTERYFLAG int32 `json:"lotteryflag" xorm:"LOTTERYFLAG"` // 摇号标识 - 0:未摇号 1:已摇号 2:摇号中 3:摇号失败
  3897. LOTTERYQTY float64 `json:"lotteryqty" xorm:"LOTTERYQTY"` // 摇号总量
  3898. LUCKYQTY float64 `json:"luckyqty" xorm:"LUCKYQTY"` // 已中签量\成交量
  3899. PLACEQTY float64 `json:"placeqty" xorm:"PLACEQTY"` // 已配售量
  3900. MARKETID int32 `json:"marketid" xorm:"MARKETID" form:"marketid" binding:"required"` // 市场ID
  3901. SELLWRTRADEORDERID string `json:"sellwrtradeorderid" xorm:"SELLWRTRADEORDERID"` // 发行方卖委托单ID
  3902. CREATETIME string `json:"createtime" xorm:"CREATETIME"` // 创建时间\申请时间
  3903. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日
  3904. LUCKYNUMS string `json:"luckynums" xorm:"LUCKYNUMS"` // 中签号码(按顺序逗号分隔)
  3905. LASTPRICE float64 `json:"lastprice" xorm:"LASTPRICE"` // 实际价格(64)
  3906. ENDHANDLETIME time.Time `json:"endhandletime" xorm:"ENDHANDLETIME"` // 到期处理时间
  3907. YSZSCATEGORY int32 `json:"yszscategory" xorm:"YSZSCATEGORY"` // 钻石分类 - 枚举”YSZSCategory“ 1:成品裸钻 2:毛坯钻石
  3908. ZSSHAPETYPESTR string `json:"zsshapetypestr" xorm:"ZSSHAPETYPESTR"` // 形状 [1:成品裸钻]
  3909. ZSCOLORTYPESTR string `json:"zscolortypestr" xorm:"ZSCOLORTYPESTR"` // 颜色 [1:成品裸钻 \ 2:毛坯钻石]
  3910. ZSCLARITYTYPESTR string `json:"zsclaritytypestr" xorm:"ZSCLARITYTYPESTR"` // 净度 [1:成品裸钻 \ 2:毛坯钻石]
  3911. ZSCUTTYPESTR string `json:"zscuttypestr" xorm:"ZSCUTTYPESTR"` // 切工 [1:成品裸钻]
  3912. ZSSYMMETRYTYPESTR string `json:"zssymmetrytypestr" xorm:"ZSSYMMETRYTYPESTR"` // 对称 [1:成品裸钻]
  3913. ZSPOLISHTYPESTR string `json:"zspolishtypestr" xorm:"ZSPOLISHTYPESTR"` // 抛光 [1:成品裸钻]
  3914. ZSFLUORESCENCETYPESTR string `json:"zsfluorescencetypestr" xorm:"ZSFLUORESCENCETYPESTR"` // 荧光 [1:成品裸钻]
  3915. SIZESTR string `json:"sizestr" xorm:"SIZESTR"` // 尺寸 [1:成品裸钻 \ 2:毛坯钻石]
  3916. YIELDRATE string `json:"yieldrate" xorm:"YIELDRATE"` // 成品率 [2:毛坯钻石]
  3917. QTYDESC string `json:"qtydesc" xorm:"QTYDESC"` // 数量描述 [2:毛坯钻石]
  3918. WEIGHTDESC string `json:"weightdesc" xorm:"WEIGHTDESC"` // 重量描述 [2:毛坯钻石]
  3919. YSPRODUCTIONMODE int32 `json:"ysproductionmode" xorm:"YSPRODUCTIONMODE"` // 生产方式 - 枚举”YSProductionMode“ [2:毛坯钻石] 1:HPHT 2:CVD
  3920. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  3921. Customername string `json:"customername" xorm:"'CUSTOMERNAME'" form:"customername"` // 企业名称(预售方\卖方)
  3922. TRADEQTY float64 `json:"tradeqty" xorm:"TRADEQTY"` // 成交数量(已预售数量)
  3923. SELLMARGINALGORITHM int64 `json:"sellmarginalgorithm" xorm:"SELLMARGINALGORITHM"` // 卖方保证金方式
  3924. SELLMARGINVALUE float64 `json:"sellmarginvalue" xorm:"SELLMARGINVALUE"` // 卖方保证金值
  3925. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约模板ID
  3926. MINBUYQTY float64 `json:"minbuyqty" xorm:"MINBUYQTY"` // 最小采购单位
  3927. MINSUCCESSQTY float64 `json:"minsuccessqty" xorm:"MINSUCCESSQTY"` // 最低成团量
  3928. BUYMARGINALGORITHM int64 `json:"buymarginalgorithm" xorm:"BUYMARGINALGORITHM"` // 采购保证金方式
  3929. BUYMARGINVALUE float64 `json:"buymarginvalue" xorm:"BUYMARGINVALUE"` // 采购保证金值
  3930. PageEx `xorm:"extends"` // 页码信息
  3931. PRESALESTATUSES string `json:"presalestatuses" xorm:"PRESALESTATUSES" form:"presalestatuses"` // 预售状态 - 1:未开始 2:进行中 3:已结束 4:已关闭 5:处理中 6::处理失败 7:已完成; 逗号分隔
  3932. }
  3933. func (r *GZPresell) calc() {
  3934. if r.PRESALEQTY != 0 {
  3935. a := SFLOAT64(float64(r.PRESALEQTY) / 100)
  3936. a.Round(2)
  3937. r.PRESALEQTY = a.Float64()
  3938. }
  3939. if r.TRADEQTY != 0 {
  3940. a := SFLOAT64(float64(r.TRADEQTY) / 100)
  3941. a.Round(2)
  3942. r.TRADEQTY = a.Float64()
  3943. }
  3944. if r.BASEQTY != 0 {
  3945. a := SFLOAT64(float64(r.BASEQTY) / 100)
  3946. a.Round(2)
  3947. r.BASEQTY = a.Float64()
  3948. }
  3949. if r.MAXBUYQTY != 0 {
  3950. a := SFLOAT64(float64(r.MAXBUYQTY) / 100)
  3951. a.Round(2)
  3952. r.MAXBUYQTY = a.Float64()
  3953. }
  3954. if r.LOTTERYQTY != 0 {
  3955. a := SFLOAT64(float64(r.LOTTERYQTY) / 100)
  3956. a.Round(2)
  3957. r.LOTTERYQTY = a.Float64()
  3958. }
  3959. if r.LUCKYQTY != 0 {
  3960. a := SFLOAT64(float64(r.LUCKYQTY) / 100)
  3961. a.Round(2)
  3962. r.LUCKYQTY = a.Float64()
  3963. }
  3964. if r.PLACEQTY != 0 {
  3965. a := SFLOAT64(float64(r.PLACEQTY) / 100)
  3966. a.Round(2)
  3967. r.PLACEQTY = a.Float64()
  3968. }
  3969. if r.MINBUYQTY != 0 {
  3970. a := SFLOAT64(float64(r.MINBUYQTY) / 100)
  3971. a.Round(2)
  3972. r.MINBUYQTY = a.Float64()
  3973. }
  3974. if r.MINSUCCESSQTY != 0 {
  3975. a := SFLOAT64(float64(r.MINSUCCESSQTY) / 100)
  3976. a.Round(2)
  3977. r.MINSUCCESSQTY = a.Float64()
  3978. }
  3979. }
  3980. func (r *GZPresell) buildSql() string {
  3981. var sqlId utils.SQLVal = `
  3982. select
  3983. ui.CUSTOMERNAME,
  3984. nvl(ot.TRADEQTY, pi.luckyqty) TRADEQTY,
  3985. to_char(pi.PRESALEAPPLYID) PRESALEAPPLYID,
  3986. pi.SELLUSERID,
  3987. pi.SELLACCOUNTID,
  3988. pi.DELIVERYGOODSID,
  3989. pi.WAREHOUSEID,
  3990. pi.WRSTANDARDID,
  3991. to_char(pi.WRFACTORTYPEID) WRFACTORTYPEID,
  3992. pi.WRSTANDARDNAME,
  3993. pi.UNITID,
  3994. pi.UNITPRICE,
  3995. pi.PRESALEQTY,
  3996. pi.BASEQTY,
  3997. pi.MAXBUYQTY,
  3998. pi.MAXLUCKYQTY,
  3999. to_char(pi.STARTDATE,'yyyy-mm-dd') STARTDATE,
  4000. to_char(pi.ENDDATE,'yyyy-mm-dd') ENDDATE,
  4001. pi.TAKESTARTDATE,
  4002. pi.THUMURLS,
  4003. pi.PICTUREURLS,
  4004. pi.BANNERPICURL,
  4005. pi.PRESALESTATUS,
  4006. pi.LOTTERYFLAG,
  4007. pi.LOTTERYQTY,
  4008. pi.LUCKYQTY,
  4009. pi.PLACEQTY,
  4010. pi.MARKETID,
  4011. to_char(pi.SELLWRTRADEORDERID) SELLWRTRADEORDERID,
  4012. to_char(pi.CREATETIME,'yyyy-mm-dd hh24:mi:ss') CREATETIME,
  4013. pi.TRADEDATE,
  4014. pi.LUCKYNUMS,
  4015. pi.LASTPRICE,
  4016. pi.ENDHANDLETIME,
  4017. pi.BUYMARGINALGORITHM,
  4018. pi.BUYMARGINVALUE,
  4019. pi.SELLMARGINALGORITHM,
  4020. pi.SELLMARGINVALUE,
  4021. pi.PERFORMANCETEMPLATEID,
  4022. pi.MINBUYQTY,
  4023. pi.MINSUCCESSQTY,
  4024. paex.YSZSCATEGORY,
  4025. paex.ZSSHAPETYPESTR,
  4026. paex.ZSCOLORTYPESTR,
  4027. paex.ZSCLARITYTYPESTR,
  4028. paex.ZSCUTTYPESTR,
  4029. paex.ZSSYMMETRYTYPESTR,
  4030. paex.ZSPOLISHTYPESTR,
  4031. paex.ZSFLUORESCENCETYPESTR,
  4032. paex.SIZESTR,
  4033. paex.YIELDRATE,
  4034. paex.QTYDESC,
  4035. paex.WEIGHTDESC,
  4036. paex.YSPRODUCTIONMODE,
  4037. paex.REMARK
  4038. from WR_PresaleInfo pi
  4039. left join userinfo ui on pi.selluserid = ui.userid
  4040. left join wrtrade_orderdetail ot on pi.sellwrtradeorderid = ot.wrtradeorderid
  4041. left join GZ_WR_PresaleApplyEx paex on pi.presaleapplyid = paex.presaleapplyid
  4042. where 1=1
  4043. `
  4044. sqlId.AndEx("pi.PRESALESTATUS", r.PRESALESTATUS, r.PRESALESTATUS > 0)
  4045. sqlId.JoinEx(r.PRESALESTATUSES != "", fmt.Sprintf(" and pi.PRESALESTATUS in(%s)", r.PRESALESTATUSES))
  4046. sqlId.And("pi.MARKETID ", r.MARKETID)
  4047. sqlId.AndLike("ui.CUSTOMERNAME", r.Customername)
  4048. sqlId.AndLike("pi.wrstandardname", r.WRSTANDARDNAME)
  4049. sqlId.AndEx("pi.selluserid", r.SELLUSERID, r.SELLUSERID != 0)
  4050. sqlId.OrderBy("pi.createtime DESC, pi.wrstandardname")
  4051. sqlId.Page(r.Page, r.PageSize)
  4052. return sqlId.String()
  4053. }
  4054. func (r *GZPresell) GetDataByPage() (interface{}, error, int, int, int) {
  4055. sData := make([]GZPresell, 0)
  4056. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  4057. total := 0
  4058. for i := range sData {
  4059. sData[i].calc()
  4060. total = sData[i].Total
  4061. }
  4062. return sData, err, r.Page, r.PageSize, total
  4063. }
  4064. type GZMyPresell struct {
  4065. ORDERQTY float64 `json:"orderqty" xorm:"ORDERQTY"` // 委托数量
  4066. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格 - [摘牌] (浮动价 ((商品1价格*商品1价格系数+升贴水)* 商品1重量系数 + 商品2价格*商品2价格系数+商品2升贴水)* 商品2重量系数 ...)* 委托单价格系数 + 委托单升贴水)
  4067. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金
  4068. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME"` // 委托时间(认购时间)
  4069. Customername string `json:"customername" xorm:"'CUSTOMERNAME'" form:"customername"` // 企业名称(认购方)
  4070. PRESALEAPPLYID string `json:"-" xorm:"-" form:"presaleapplyid" binding:"required"` // 预售申请ID
  4071. PageEx `xorm:"extends"` // 页码信息
  4072. }
  4073. func (r *GZMyPresell) calc() {
  4074. if r.ORDERQTY != 0 {
  4075. a := SFLOAT64(float64(r.ORDERQTY) / 100)
  4076. a.Round(2)
  4077. r.ORDERQTY = a.Float64()
  4078. }
  4079. }
  4080. func (r *GZMyPresell) buildSql() string {
  4081. // 结束后委托表导了历史
  4082. var sqlId utils.SQLVal = `
  4083. select
  4084. ui.CUSTOMERNAME,
  4085. od.ORDERQTY,
  4086. od.TRADEPRICE,
  4087. od.FREEZEMARGIN,
  4088. to_char(od.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME
  4089. from
  4090. (select o.ORDERQTY,
  4091. o.TRADEPRICE,
  4092. o.FREEZEMARGIN, o.ORDERTIME, o.wrtradeorderid, o.userid from WRTrade_OrderDetail o
  4093. where o.wrtradetype = 2 and o.buyorsell = 0 and o.wrtradeorderstatus in(3,8)
  4094. and o.presaleapplyid = %v
  4095. union
  4096. select ho.ORDERQTY,
  4097. ho.TRADEPRICE,
  4098. ho.FREEZEMARGIN, ho.ORDERTIME, ho.wrtradeorderid, ho.userid from his_WRTrade_OrderDetail ho
  4099. where ho.wrtradetype = 2 and ho.buyorsell = 0 and ho.wrtradeorderstatus in(3,8) and ho.isvaliddata=1
  4100. and ho.presaleapplyid = %v) od
  4101. left join userinfo ui on od.userid = ui.userid
  4102. `
  4103. sqlId.FormatParam(r.PRESALEAPPLYID, r.PRESALEAPPLYID)
  4104. // sqlId.And("od.presaleapplyid", r.PRESALEAPPLYID)
  4105. sqlId.OrderBy("od.wrtradeorderid desc")
  4106. sqlId.Page(r.Page, r.PageSize)
  4107. return sqlId.String()
  4108. }
  4109. func (r *GZMyPresell) GetDataByPage() (interface{}, error, int, int, int) {
  4110. sData := make([]GZMyPresell, 0)
  4111. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  4112. total := 0
  4113. for i := range sData {
  4114. sData[i].calc()
  4115. total = sData[i].Total
  4116. }
  4117. return sData, err, r.Page, r.PageSize, total
  4118. }
  4119. type GZMyTradingPresell struct {
  4120. PRESALEAPPLYID string `json:"presaleapplyid" xorm:"PRESALEAPPLYID"` // 预售申请ID(184+Unix秒时间戳(10位)+xxxxxx)
  4121. YSZSCATEGORY int32 `json:"yszscategory" xorm:"YSZSCATEGORY"` // 钻石分类 - 枚举”YSZSCategory“ 1:成品裸钻 2:毛坯钻石
  4122. ZSSHAPETYPESTR string `json:"zsshapetypestr" xorm:"ZSSHAPETYPESTR"` // 形状 [1:成品裸钻]
  4123. ZSCOLORTYPESTR string `json:"zscolortypestr" xorm:"ZSCOLORTYPESTR"` // 颜色 [1:成品裸钻 \ 2:毛坯钻石]
  4124. ZSCLARITYTYPESTR string `json:"zsclaritytypestr" xorm:"ZSCLARITYTYPESTR"` // 净度 [1:成品裸钻 \ 2:毛坯钻石]
  4125. ZSCUTTYPESTR string `json:"zscuttypestr" xorm:"ZSCUTTYPESTR"` // 切工 [1:成品裸钻]
  4126. ZSSYMMETRYTYPESTR string `json:"zssymmetrytypestr" xorm:"ZSSYMMETRYTYPESTR"` // 对称 [1:成品裸钻]
  4127. ZSPOLISHTYPESTR string `json:"zspolishtypestr" xorm:"ZSPOLISHTYPESTR"` // 抛光 [1:成品裸钻]
  4128. ZSFLUORESCENCETYPESTR string `json:"zsfluorescencetypestr" xorm:"ZSFLUORESCENCETYPESTR"` // 荧光 [1:成品裸钻]
  4129. SIZESTR string `json:"sizestr" xorm:"SIZESTR"` // 尺寸 [1:成品裸钻 \ 2:毛坯钻石]
  4130. YIELDRATE string `json:"yieldrate" xorm:"YIELDRATE"` // 成品率 [2:毛坯钻石]
  4131. QTYDESC string `json:"qtydesc" xorm:"QTYDESC"` // 数量描述 [2:毛坯钻石]
  4132. WEIGHTDESC string `json:"weightdesc" xorm:"WEIGHTDESC"` // 重量描述 [2:毛坯钻石]
  4133. YSPRODUCTIONMODE int32 `json:"ysproductionmode" xorm:"YSPRODUCTIONMODE"` // 生产方式 - 枚举”YSProductionMode“ [2:毛坯钻石] 1:HPHT 2:CVD
  4134. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  4135. CUSTOMERNAME string `json:"customername" xorm:"'CUSTOMERNAME'" form:"customername"` // 企业名称(预售方、卖方)
  4136. ORDERQTY float64 `json:"orderqty" xorm:"ORDERQTY"` // 委托数量\认购数量
  4137. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格\认购价格 - [摘牌] (浮动价 ((商品1价格*商品1价格系数+升贴水)* 商品1重量系数 + 商品2价格*商品2价格系数+商品2升贴水)* 商品2重量系数 ...)* 委托单价格系数 + 委托单升贴水)
  4138. Tradeamount float64 `json:"tradeamount" xorm:"TRADEAMOUNT"` // 货款
  4139. MARGINALGORITHM int32 `json:"marginalgorithm" xorm:"MARGINALGORITHM"` // 保证金方式 - 1:比率 2:固定
  4140. MARGINVALUE float64 `json:"marginvalue" xorm:"MARGINVALUE"` // 保证金设置值
  4141. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金\已付保证金
  4142. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME"` // 委托时间(认购时间)
  4143. WRTRADEORDERID int64 `json:"wrtradeorderid" xorm:"WRTRADEORDERID"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  4144. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  4145. PERFORMANCEPLANID int64 `json:"performanceplanid" xorm:"PERFORMANCEPLANID"` // 履约计划ID/合同ID
  4146. STATUS int `json:"status" xorm:"STATUS" form:"status"` // 状态 1:预售中\集采中 2:执行中 3:已完成
  4147. USERID int64 `json:"-" xorm:"-" form:"userid" binding:"required"` // 申请用户ID
  4148. MARKETID int `json:"-" xorm:"-" form:"marketid" binding:"required"` // 市场ID
  4149. WRSTANDARDNAME string `json:"wrstandardname" xorm:"WRSTANDARDNAME" form:"wrstandardname"` // 商品
  4150. THUMURLS string `json:"thumurls" xorm:"THUMURLS"` // 缩略图片(1:1)(逗号分隔)
  4151. PICTUREURLS string `json:"pictureurls" xorm:"PICTUREURLS"` // 详情图片(逗号分隔)
  4152. BANNERPICURL string `json:"bannerpicurl" xorm:"BANNERPICURL"` // Banner图(逗号分隔)
  4153. PageEx `xorm:"extends"` // 页码信息
  4154. }
  4155. func (r *GZMyTradingPresell) calc() {
  4156. if r.ORDERQTY != 0 {
  4157. a := SFLOAT64(float64(r.ORDERQTY) / 100)
  4158. a.Round(2)
  4159. r.ORDERQTY = a.Float64()
  4160. }
  4161. }
  4162. func (r *GZMyTradingPresell) buildSql() string {
  4163. var sqlId utils.SQLVal = `
  4164. select
  4165. ui.CUSTOMERNAME,
  4166. pi.WRSTANDARDNAME,
  4167. od.ORDERQTY,
  4168. od.TRADEPRICE,
  4169. od.ORDERAMOUNT TRADEAMOUNT,
  4170. od.MARGINALGORITHM,
  4171. od.MARGINVALUE,
  4172. od.FREEZEMARGIN,
  4173. to_char(od.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME,
  4174. od.WRTRADEORDERID,
  4175. od.PERFORMANCETEMPLATEID,
  4176. td.PERFORMANCEPLANID,
  4177. pi.THUMURLS,
  4178. pi.PICTUREURLS,
  4179. pi.BANNERPICURL,
  4180. pi.PRESALESTATUS,
  4181. to_char(paex.PRESALEAPPLYID) PRESALEAPPLYID,
  4182. paex.YSZSCATEGORY,
  4183. paex.ZSSHAPETYPESTR,
  4184. paex.ZSCOLORTYPESTR,
  4185. paex.ZSCLARITYTYPESTR,
  4186. paex.ZSCUTTYPESTR,
  4187. paex.ZSSYMMETRYTYPESTR,
  4188. paex.ZSPOLISHTYPESTR,
  4189. paex.ZSFLUORESCENCETYPESTR,
  4190. paex.SIZESTR,
  4191. paex.YIELDRATE,
  4192. paex.QTYDESC,
  4193. paex.WEIGHTDESC,
  4194. paex.YSPRODUCTIONMODE,
  4195. paex.REMARK,
  4196. %v STATUS
  4197. from WRTrade_OrderDetail od
  4198. left join WRTrade_TradeDetail td
  4199. on od.wrtradeorderid = td.WRTradeOrderID
  4200. left join WR_PresaleInfo pi
  4201. on od.presaleapplyid = pi.presaleapplyid
  4202. left join userinfo ui
  4203. on pi.selluserid = ui.userid
  4204. left join GZ_WR_PresaleApplyEx paex
  4205. on pi.presaleapplyid = paex.presaleapplyid
  4206. where od.buyorsell = 0
  4207. `
  4208. sqlId.FormatParam(r.STATUS)
  4209. sqlId.And("od.marketid", r.MARKETID)
  4210. //1-预售中: 状态 = 2-进行中 2-执行中: 状态 = 3-已结束
  4211. sqlId.And("pi.presalestatus", r.STATUS+1)
  4212. sqlId.And("od.userid", r.USERID)
  4213. sqlId.AndLike("ui.customername", r.CUSTOMERNAME)
  4214. sqlId.AndLike("pi.wrstandardname", r.WRSTANDARDNAME)
  4215. sqlId.OrderByDesc("od.wrtradeorderid")
  4216. sqlId.Page(r.Page, r.PageSize)
  4217. return sqlId.String()
  4218. }
  4219. func (r *GZMyTradingPresell) buildSql2() string {
  4220. var sqlId utils.SQLVal = `
  4221. select
  4222. ui.CUSTOMERNAME,
  4223. pi.WRSTANDARDNAME,
  4224. hod.ORDERQTY,
  4225. hod.TRADEPRICE,
  4226. htd.TRADEAMOUNT,
  4227. hod.MARGINALGORITHM,
  4228. hod.MARGINVALUE,
  4229. hod.FREEZEMARGIN,
  4230. to_char(htd.tradetime, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME,
  4231. hod.WRTRADEORDERID,
  4232. hod.PERFORMANCETEMPLATEID,
  4233. htd.PERFORMANCEPLANID,
  4234. paex.PRESALEAPPLYID,
  4235. paex.YSZSCATEGORY,
  4236. paex.ZSSHAPETYPESTR,
  4237. paex.ZSCOLORTYPESTR,
  4238. paex.ZSCLARITYTYPESTR,
  4239. paex.ZSCUTTYPESTR,
  4240. paex.ZSSYMMETRYTYPESTR,
  4241. paex.ZSPOLISHTYPESTR,
  4242. paex.ZSFLUORESCENCETYPESTR,
  4243. paex.SIZESTR,
  4244. paex.YIELDRATE,
  4245. paex.QTYDESC,
  4246. paex.WEIGHTDESC,
  4247. paex.YSPRODUCTIONMODE,
  4248. paex.REMARK
  4249. from his_wrtrade_tradedetail htd
  4250. left join his_wrtrade_orderdetail hod
  4251. on hod.isvaliddata = 1
  4252. and htd.wrtradeorderid = hod.wrtradeorderid
  4253. left join WR_PresaleInfo pi
  4254. on hod.presaleapplyid = pi.presaleapplyid
  4255. left join userinfo ui
  4256. on pi.selluserid = ui.userid
  4257. left join GZ_WR_PresaleApplyEx paex
  4258. on pi.presaleapplyid = paex.presaleapplyid
  4259. where htd.isvaliddata = 1
  4260. and htd.HandleStatus = 4
  4261. and htd.buyorsell = 0
  4262. `
  4263. sqlId.And("htd.marketid", r.MARKETID)
  4264. sqlId.And("hod.userid", r.USERID)
  4265. sqlId.AndLike("ui.customername", r.CUSTOMERNAME)
  4266. sqlId.AndLike("pi.wrstandardname", r.WRSTANDARDNAME)
  4267. sqlId.OrderByDesc("hod.wrtradeorderid")
  4268. sqlId.Page(r.Page, r.PageSize)
  4269. return sqlId.String()
  4270. }
  4271. func (r *GZMyTradingPresell) GetDataByPage() (interface{}, error, int, int, int) {
  4272. sql := r.buildSql()
  4273. if r.STATUS == 3 {
  4274. sql = r.buildSql2()
  4275. }
  4276. sData := make([]GZMyTradingPresell, 0)
  4277. err := db.GetEngine().SQL(sql).Find(&sData)
  4278. total := 0
  4279. for i := range sData {
  4280. sData[i].calc()
  4281. total = sData[i].Total
  4282. }
  4283. return sData, err, r.Page, r.PageSize, total
  4284. }
  4285. // Wrpresaleapply 仓单预售申请表
  4286. type Wrpresaleapply struct {
  4287. PRESALEAPPLYID string `json:"presaleapplyid" xorm:"PRESALEAPPLYID"` // 预售申请ID(184+Unix秒时间戳(10位)+xxxxxx)
  4288. SELLUSERID int64 `json:"selluserid" xorm:"SELLUSERID" form:"userid" binding:"required"` // 发行方用户ID
  4289. SELLACCOUNTID int64 `json:"sellaccountid" xorm:"SELLACCOUNTID"` // 发行方资金账户ID
  4290. DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
  4291. WRSTANDARDNAME string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // 现货商品名称
  4292. UNITID int32 `json:"unitid" xorm:"UNITID"` // 单位ID
  4293. WAREHOUSEID int64 `json:"warehouseid" xorm:"WAREHOUSEID"` // 仓库ID
  4294. UNITPRICE float64 `json:"unitprice" xorm:"UNITPRICE"` // 商品单价
  4295. PRESALEQTY float64 `json:"presaleqty" xorm:"PRESALEQTY"` // 预售总量
  4296. BASEQTY float64 `json:"baseqty" xorm:"BASEQTY"` // 中签基数
  4297. MAXBUYQTY float64 `json:"maxbuyqty" xorm:"MAXBUYQTY"` // 单人最大申购量
  4298. MAXLUCKYQTY float64 `json:"maxluckyqty" xorm:"MAXLUCKYQTY"` // 单人最大中签量 - 作废
  4299. STARTDATE string `json:"startdate" xorm:"STARTDATE"` // 预售开始日期
  4300. ENDDATE string `json:"enddate" xorm:"ENDDATE"` // 预售结束日期
  4301. TAKESTARTDATE time.Time `json:"takestartdate" xorm:"TAKESTARTDATE"` // 提货开始日期
  4302. THUMURLS string `json:"thumurls" xorm:"THUMURLS"` // 缩略图片(1:1)(逗号分隔)
  4303. PICTUREURLS string `json:"pictureurls" xorm:"PICTUREURLS"` // 详情图片(逗号分隔)
  4304. BANNERPICURL string `json:"bannerpicurl" xorm:"BANNERPICURL"` // Banner图(逗号分隔)
  4305. MARKETID int32 `json:"marketid" xorm:"MARKETID" form:"marketid" binding:"required"` // 市场ID
  4306. APPLYREMARK string `json:"applyremark" xorm:"APPLYREMARK"` // 备注
  4307. CLIENTTICKET string `json:"clientticket" xorm:"CLIENTTICKET"` // 客户端流水号
  4308. APPLYSRC int32 `json:"applysrc" xorm:"APPLYSRC"` // 申请来源 - 1:管理端 2:终端
  4309. APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请人
  4310. APPLYTIME string `json:"applytime" xorm:"APPLYTIME"` // 申请时间
  4311. APPLYSTATUS int32 `json:"applystatus" xorm:"APPLYSTATUS"` // 申请状态(inoutapplystatus) - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回
  4312. AUDITTRADEDATE string `json:"audittradedate" xorm:"AUDITTRADEDATE"` // 审核交易日(yyyyMMdd)
  4313. AUDITID int64 `json:"auditid" xorm:"AUDITID"` // 审核人
  4314. AUDITSRC int32 `json:"auditsrc" xorm:"AUDITSRC"` // 审核来源 - 1:管理端 2:终端
  4315. AUDITTIME time.Time `json:"audittime" xorm:"AUDITTIME"` // 审核时间
  4316. AUDITREMARK string `json:"auditremark" xorm:"AUDITREMARK"` // 审核备注
  4317. HANDLESTATUS int32 `json:"handlestatus" xorm:"HANDLESTATUS"` // 处理状态
  4318. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  4319. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID - 根据现货商品\仓库生成
  4320. BUYMARGINALGORITHM int32 `json:"buymarginalgorithm" xorm:"BUYMARGINALGORITHM"` // 买方保证金方式 - 1:比率 2:固定
  4321. BUYMARGINVALUE float64 `json:"buymarginvalue" xorm:"BUYMARGINVALUE"` // 买方保证金设置值
  4322. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID(方式为1时填-1, 为2时选择模板)
  4323. MINBUYQTY float64 `json:"minbuyqty" xorm:"MINBUYQTY"` // 单人最小申购量
  4324. MINSUCCESSQTY float64 `json:"minsuccessqty" xorm:"MINSUCCESSQTY"` // 最低成团量
  4325. YSZSCATEGORY int32 `json:"yszscategory" xorm:"YSZSCATEGORY"` // 钻石分类 - 枚举”YSZSCategory“ 1:成品裸钻 2:毛坯钻石
  4326. ZSSHAPETYPESTR string `json:"zsshapetypestr" xorm:"ZSSHAPETYPESTR"` // 形状 [1:成品裸钻]
  4327. ZSCOLORTYPESTR string `json:"zscolortypestr" xorm:"ZSCOLORTYPESTR"` // 颜色 [1:成品裸钻 \ 2:毛坯钻石]
  4328. ZSCLARITYTYPESTR string `json:"zsclaritytypestr" xorm:"ZSCLARITYTYPESTR"` // 净度 [1:成品裸钻 \ 2:毛坯钻石]
  4329. ZSCUTTYPESTR string `json:"zscuttypestr" xorm:"ZSCUTTYPESTR"` // 切工 [1:成品裸钻]
  4330. ZSSYMMETRYTYPESTR string `json:"zssymmetrytypestr" xorm:"ZSSYMMETRYTYPESTR"` // 对称 [1:成品裸钻]
  4331. ZSPOLISHTYPESTR string `json:"zspolishtypestr" xorm:"ZSPOLISHTYPESTR"` // 抛光 [1:成品裸钻]
  4332. ZSFLUORESCENCETYPESTR string `json:"zsfluorescencetypestr" xorm:"ZSFLUORESCENCETYPESTR"` // 荧光 [1:成品裸钻]
  4333. SIZESTR string `json:"sizestr" xorm:"SIZESTR"` // 尺寸 [1:成品裸钻 \ 2:毛坯钻石]
  4334. YIELDRATE string `json:"yieldrate" xorm:"YIELDRATE"` // 成品率 [2:毛坯钻石]
  4335. QTYDESC string `json:"qtydesc" xorm:"QTYDESC"` // 数量描述 [2:毛坯钻石]
  4336. WEIGHTDESC string `json:"weightdesc" xorm:"WEIGHTDESC"` // 重量描述 [2:毛坯钻石]
  4337. YSPRODUCTIONMODE int32 `json:"ysproductionmode" xorm:"YSPRODUCTIONMODE"` // 生产方式 - 枚举”YSProductionMode“ [2:毛坯钻石] 1:HPHT 2:CVD
  4338. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  4339. PageEx `xorm:"extends"` // 页码信息
  4340. }
  4341. func (r *Wrpresaleapply) calc() {
  4342. if r.PRESALEQTY != 0 {
  4343. a := SFLOAT64(float64(r.PRESALEQTY) / 100)
  4344. a.Round(2)
  4345. r.PRESALEQTY = a.Float64()
  4346. }
  4347. if r.BASEQTY != 0 {
  4348. a := SFLOAT64(float64(r.BASEQTY) / 100)
  4349. a.Round(2)
  4350. r.BASEQTY = a.Float64()
  4351. }
  4352. if r.MAXBUYQTY != 0 {
  4353. a := SFLOAT64(float64(r.MAXBUYQTY) / 100)
  4354. a.Round(2)
  4355. r.MAXBUYQTY = a.Float64()
  4356. }
  4357. if r.MAXLUCKYQTY != 0 {
  4358. a := SFLOAT64(float64(r.MAXLUCKYQTY) / 100)
  4359. a.Round(2)
  4360. r.MAXLUCKYQTY = a.Float64()
  4361. }
  4362. if r.MINBUYQTY != 0 {
  4363. a := SFLOAT64(float64(r.MINBUYQTY) / 100)
  4364. a.Round(2)
  4365. r.MINBUYQTY = a.Float64()
  4366. }
  4367. if r.MINSUCCESSQTY != 0 {
  4368. a := SFLOAT64(float64(r.MINSUCCESSQTY) / 100)
  4369. a.Round(2)
  4370. r.MINSUCCESSQTY = a.Float64()
  4371. }
  4372. }
  4373. func (r *Wrpresaleapply) buildSql() string {
  4374. var sqlId utils.SQLVal = `
  4375. select
  4376. to_char(pi.presaleapplyid) PRESALEAPPLYID,
  4377. pi.selluserid,
  4378. pi.sellaccountid,
  4379. pi.deliverygoodsid,
  4380. pi.wrstandardname,
  4381. pi.unitid,
  4382. pi.warehouseid,
  4383. pi.unitprice,
  4384. pi.presaleqty,
  4385. pi.baseqty,
  4386. pi.maxbuyqty,
  4387. pi.maxluckyqty,
  4388. to_char(pi.startdate, 'yyyy-mm-dd') STARTDATE,
  4389. to_char(pi.enddate, 'yyyy-mm-dd') ENDDATE,
  4390. pi.takestartdate,
  4391. pi.thumurls,
  4392. pi.pictureurls,
  4393. pi.bannerpicurl,
  4394. pi.marketid,
  4395. pi.applyremark,
  4396. pi.clientticket,
  4397. pi.applysrc,
  4398. pi.applyid,
  4399. to_char(pi.applytime, 'yyyy-mm-dd hh24:mi:ss') APPLYTIME,
  4400. pi.applystatus,
  4401. pi.audittradedate,
  4402. pi.auditid,
  4403. pi.auditsrc,
  4404. pi.audittime,
  4405. pi.auditremark,
  4406. pi.handlestatus,
  4407. pi.wrstandardid,
  4408. pi.wrfactortypeid,
  4409. pi.buymarginalgorithm,
  4410. pi.buymarginvalue,
  4411. pi.performancetemplateid,
  4412. pi.minbuyqty,
  4413. pi.minsuccessqty,
  4414. paex.yszscategory,
  4415. paex.zsshapetypestr,
  4416. paex.zscolortypestr,
  4417. paex.zsclaritytypestr,
  4418. paex.zscuttypestr,
  4419. paex.zssymmetrytypestr,
  4420. paex.zspolishtypestr,
  4421. paex.zsfluorescencetypestr,
  4422. paex.sizestr,
  4423. paex.yieldrate,
  4424. paex.qtydesc,
  4425. paex.weightdesc,
  4426. paex.ysproductionmode,
  4427. paex.remark
  4428. from WR_Presaleapply pi
  4429. left join GZ_WR_PresaleApplyEx paex
  4430. on pi.presaleapplyid = paex.presaleapplyid
  4431. where 1=1
  4432. `
  4433. sqlId.And("pi.marketid", r.MARKETID)
  4434. sqlId.And("pi.selluserid", r.SELLUSERID)
  4435. sqlId.OrderBy("pi.presaleapplyid desc")
  4436. sqlId.Page(r.Page, r.PageSize)
  4437. return sqlId.String()
  4438. }
  4439. func (r *Wrpresaleapply) GetDataByPage() (interface{}, error, int, int, int) {
  4440. sData := make([]Wrpresaleapply, 0)
  4441. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  4442. total := 0
  4443. for i := range sData {
  4444. sData[i].calc()
  4445. total = sData[i].Total
  4446. }
  4447. return sData, err, r.Page, r.PageSize, total
  4448. }
  4449. // Presaleorderapplyprice 预售申请价格表 - 导历史(不导历史)
  4450. type Presaleorderapplyprice struct {
  4451. APPLYID string `json:"applyid" xorm:"APPLYID" form:"applyid" binding:"required"` // 预售申请ID
  4452. STEPINDEX int32 `json:"stepindex" xorm:"STEPINDEX"` // 档位序号
  4453. QTY float64 `json:"qty" xorm:"QTY"` // 档位数量
  4454. PRICE float64 `json:"price" xorm:"PRICE"` // 档位价格
  4455. CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
  4456. GOODSCODE string `json:"goodscode" xorm:"GOODSCODE"` // 商品代码 系统自动生成 [#P(2位) + ApplyID十六进制(6位) ]
  4457. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  4458. }
  4459. func (r *Presaleorderapplyprice) calc() {
  4460. if r.QTY != 0 {
  4461. a := SFLOAT64(float64(r.QTY) / 100)
  4462. a.Round(2)
  4463. r.QTY = a.Float64()
  4464. }
  4465. }
  4466. func (r *Presaleorderapplyprice) buildSql() string {
  4467. var sqlId utils.SQLVal = `
  4468. select
  4469. to_char(t.APPLYID) APPLYID,
  4470. t.STEPINDEX,
  4471. t.QTY,
  4472. t.PRICE,
  4473. t.CREATETIME,
  4474. t.GOODSCODE,
  4475. t.MARKETID
  4476. from PreSale_OrderApplyPrice t
  4477. where t.APPLYID = %v
  4478. order by t.STEPINDEX
  4479. `
  4480. sqlId.FormatParam(r.APPLYID)
  4481. return sqlId.String()
  4482. }
  4483. // GetDataEx 从数据库中查询数据
  4484. func (r *Presaleorderapplyprice) GetDataEx() (interface{}, error) {
  4485. e := db.GetEngine()
  4486. s := e.SQL(r.buildSql())
  4487. sData := make([]Presaleorderapplyprice, 0)
  4488. if err := s.Find(&sData); err != nil {
  4489. return nil, err
  4490. }
  4491. for i := range sData {
  4492. sData[i].calc()
  4493. }
  4494. return sData, nil
  4495. }
  4496. // Gzbscreckonorder 保税仓结算单表 - WMS系统导入
  4497. type Gzbscreckonorder struct {
  4498. ORDERID int64 `json:"orderid" xorm:"ORDERID"` // 单据ID(SEQ_GZ_BSCRECKONORDER)
  4499. USERKEY string `json:"userkey" xorm:"USERKEY"` // 用户唯一标识
  4500. WMSORDERID string `json:"wmsorderid" xorm:"WMSORDERID"` // WMS结算单流水号
  4501. CONTRACTNO string `json:"contractno" xorm:"CONTRACTNO"` // 合同编号
  4502. RECKONMONTH string `json:"reckonmonth" xorm:"RECKONMONTH"` // 结算月份(yyyyMM)
  4503. SERVICEFEE string `json:"servicefee" xorm:"SERVICEFEE"` // 分拣室服务费
  4504. STORAGEFEE string `json:"storagefee" xorm:"STORAGEFEE"` // 仓储费
  4505. PREMIUM string `json:"premium" xorm:"PREMIUM"` // 保险费
  4506. POWERFEE string `json:"powerfee" xorm:"POWERFEE"` // 分拣室电费
  4507. CUSTOMSFEE string `json:"customsfee" xorm:"CUSTOMSFEE"` // 报关费
  4508. TOTALFEE float64 `json:"totalfee" xorm:"TOTALFEE"` // 合计费用
  4509. APPLICANT string `json:"applicant" xorm:"APPLICANT"` // 申请人
  4510. APPLICANTTIME string `json:"applicanttime" xorm:"APPLICANTTIME"` // 申请时间
  4511. IMPORTFILE string `json:"importfile" xorm:"IMPORTFILE"` // 导入文件名
  4512. IMPORTTIME string `json:"importtime" xorm:"IMPORTTIME"` // 导入时间
  4513. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  4514. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  4515. PAYSTATUS int32 `json:"paystatus" xorm:"PAYSTATUS" form:"paystatus"` // 支付状态 - 2:待支付 3:已支付(枚举:GZBSCPayStatus)
  4516. CONFIRMTIME string `json:"confirmtime" xorm:"CONFIRMTIME"` // 确认时间
  4517. PAYTIME string `json:"paytime" xorm:"PAYTIME"` // 支付时间
  4518. HANDLESTATUS int32 `json:"handlestatus" xorm:"HANDLESTATUS"` // 处理状态
  4519. PAYTRADEDATE string `json:"paytradedate" xorm:"PAYTRADEDATE"` // 支付交易日(yyyyMMdd)
  4520. PageEx `xorm:"extends"` // 页码信息
  4521. }
  4522. func (r *Gzbscreckonorder) calc() {
  4523. }
  4524. func (r *Gzbscreckonorder) buildSql() string {
  4525. var sqlId utils.SQLVal = `
  4526. select
  4527. t.ORDERID,
  4528. t.USERKEY,
  4529. t.WMSORDERID,
  4530. t.CONTRACTNO,
  4531. t.RECKONMONTH,
  4532. t.SERVICEFEE,
  4533. t.STORAGEFEE,
  4534. t.PREMIUM,
  4535. t.POWERFEE,
  4536. t.CUSTOMSFEE,
  4537. t.TOTALFEE,
  4538. t.APPLICANT,
  4539. t.APPLICANTTIME,
  4540. t.IMPORTFILE,
  4541. to_char(t.IMPORTTIME, 'yyyy-mm-dd hh24:mi:ss') IMPORTTIME,
  4542. t.USERID,
  4543. t.ACCOUNTID,
  4544. t.PAYSTATUS,
  4545. to_char(t.CONFIRMTIME, 'yyyy-mm-dd hh24:mi:ss') CONFIRMTIME,
  4546. to_char(t.PAYTIME, 'yyyy-mm-dd hh24:mi:ss') PAYTIME,
  4547. t.HANDLESTATUS,
  4548. t.PAYTRADEDATE
  4549. from GZ_BSCReckonOrder t
  4550. where 1=1
  4551. `
  4552. sqlId.And("t.USERID", r.USERID)
  4553. sqlId.AndEx("t.PAYSTATUS", r.PAYSTATUS, r.PAYSTATUS > 0)
  4554. sqlId.OrderBy("t.RECKONMONTH desc")
  4555. sqlId.Page(r.Page, r.PageSize)
  4556. return sqlId.String()
  4557. }
  4558. func (r *Gzbscreckonorder) GetDataByPage() (interface{}, error, int, int, int) {
  4559. sData := make([]Gzbscreckonorder, 0)
  4560. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  4561. total := 0
  4562. for i := range sData {
  4563. sData[i].calc()
  4564. total = sData[i].Total
  4565. }
  4566. return sData, err, r.Page, r.PageSize, total
  4567. }