From 67d95d057149a21ec50c2efd7b66952deb9e9bf9 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Fri, 10 Oct 2025 11:40:56 +0800 Subject: [PATCH] =?UTF-8?q?adapayService=E6=B7=BB=E5=8A=A0=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=9F=A5=E8=AF=A2=E5=88=86=E8=B4=A6=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/java/PaymentTestController.java | 7 + jsowell-admin/src/test/resources/payment_ids | 463 ------------------ .../jsowell/adapay/service/AdapayService.java | 90 ++++ 3 files changed, 97 insertions(+), 463 deletions(-) diff --git a/jsowell-admin/src/test/java/PaymentTestController.java b/jsowell-admin/src/test/java/PaymentTestController.java index ae5833b6b..f6932b081 100644 --- a/jsowell-admin/src/test/java/PaymentTestController.java +++ b/jsowell-admin/src/test/java/PaymentTestController.java @@ -76,6 +76,13 @@ public class PaymentTestController { @Autowired private OrderBasicInfoService orderBasicInfoService; + @Test + public void queryCreateConfirmReverseNew() throws BaseAdaPayException { + List paymentIdList = getPaymentIdList(); // 查询分账信息 + List splitInfoByPaymentIdList = adapayService.getSplitInfoByPaymentIdList(paymentIdList); + System.out.println("未分账paymentId:" + splitInfoByPaymentIdList); + } + /** * 从payment_ids文件中获取支付id, 并批量查询分账信息 * 如需撤销分账, 请使用 {@link PaymentTestController#testCreateConfirmReverse()} 可以本地运行 diff --git a/jsowell-admin/src/test/resources/payment_ids b/jsowell-admin/src/test/resources/payment_ids index ac73260f6..fbdcbabf4 100644 --- a/jsowell-admin/src/test/resources/payment_ids +++ b/jsowell-admin/src/test/resources/payment_ids @@ -13,466 +13,3 @@ 002212025061915571210781682186405658624 002212025061916004310781683071181504512 002212025061916161110781686963112738816 -002212025061916193610781687825701654528 -002212025062111504410782344939088551936 -002212025062220373510782839911796670464 -002212025062308241110783017734370512896 -002212025062309461710783038395738079232 -002212025062309523610783039984178528256 -002212025062310010410783042113829621760 -002212025062310062010783043442643202048 -002212025062310125910783045112483459072 -002212025062310183610783046528107442176 -002212025062310244010783048054158827520 -002212025062310295910783049393157029888 -002212025062310354810783050856717467648 -002212025062310410410783052183568543744 -002212025062310472310783053772425641984 -002212025062310540110783055439740956672 -002212025062322405310783233329110749184 -002212025062314534710783115778514976768 -002212025062709533410784489781062696960 -002212025062718332910784620622244585472 -002212025062820002110785004870684590080 -002212025062821285310785027148910641153 -002212025062821160610785023930579013632 -002212025062902323310785103568886145024 -002212025062908442710785197162314219520 -002212025062822025810785035727614320640 -002212025070207205910786263320912281600 -002212025070317483510786783648814022656 -002212025070408072410786999778239299584 -002212025070411052210787044562456231936 -002212025070419550910787177888542425088 -002212025070509020810787375938686631936 -002212025070513514010787448801300946944 -002212025070507335810787353750150918144 -002212025070515483410787478219446284288 -002212025070514052610787452266314231808 -002212025070514475210787462945628037120 -002212025070516291810787488470635454464 -002212025070518442010787522454104031232 -002212025070518280410787518361172164608 -002212025070520470510787553344655523840 -002212025070422265310787216070804226048 -002212025070521195510787561608268296192 -002212025070516541310787494742890672128 -002212025070520262910787548162780901376 -002212025070521545110787570400276619264 -002212025070609512910787750747099185152 -002212025070612382410787792752432988160 -002212025070615572310787842827682643968 -002212025070618520710787886800950870016 -002212025070808091310788449787146510336 -002212025070809005410788462793823350784 -002212025070815032010788554002455699456 -002212025070815093110788555556697473024 -002212025070909474010788836950194860032 -002212025070911482410788867330642493440 -002212025070915310510788923370952261632 -002212025070922045910789022499975831552 -002212025071001193010789071453305774080 -002212025071010114610789205402403287040 -002212025071014134110789266283951898624 -002212025071016251910789299408806596608 -002212025071015310710789285767032848384 -002212025071019021710789338910546444288 -002212025071022090210789385909393530880 -002212025071022160610789387686945484800 -002212025071023523110789411948522520576 -002212025071019580510789352952515371008 -002212025071108285210789541895576289280 -002212025071020250010789359726322327552 -002212025071113241910789616245310070784 -002212025071114352710789634146800578560 -002212025071114471010789637098169016321 -002212025071115142410789643950882635776 -002212025071118364610789694875673108480 -002212025071117251410789676875979530240 -002212025071119435510789711776548454400 -002212025071208251610789903376363118592 -002212025071122305210789753788570517504 -002212025071207363610789891128703533056 -002212025071219280610790070182324719616 -002212025071218100510790050551751274496 -002212025071310333910790298070804946944 -002212025071309424310790285256406585344 -002212025071319341210790434106450628608 -002212025071321341010790464298585935872 -002212025071412381710790691824057217024 -002212025071417300610790765262271037440 -002212025071514451710791086174641057792 -002212025071514575910791089370696511488 -002212025071519465710791162090271080448 -002212025071608050210791347836879986688 -002212025071516061010791106528555024384 -002212025071522120710791198624562913280 -002212025071614222910791442822193823744 -002212025071614451610791448556842360832 -002212025071607523810791344716651511808 -002212025071616182410791471996077948928 -002212025071618080410791499593215991808 -002212025071620445510791539066680852480 -002212025071715452210791826068026007552 -002212025071721204210791910457439526912 -002212025071718110810791862752524738560 -002212025071813102510792149462564028416 -002212025071818583810792237094330986496 -002212025071819094510792239891931013120 -002212025071822020310792283253331828736 -002212025071818462310792234010872102912 -002212025071913474210792521233439342592 -002212025071914101110792526891744182272 -002212025071913235110792515230396383232 -002212025071916543210792568252786094080 -002212025071916235310792560539610996736 -002212025071917353210792578568574017536 -002212025071920232610792620822265327616 -002212025071920542210792628606176325633 -002212025071917025210792570347148881920 -002212025071921251210792636366337671168 -002212025071923201510792665321291227136 -002212025071915031910792540264238219264 -002212025071922362410792654285163413504 -002212025071918032710792585595248132096 -002212025071922552810792659081959829504 -002212025071920563210792629151756963840 -002212025071921035110792630993215660032 -002212025072011513810792854412222332928 -002212025071919582710792614534375043072 -002212025072011420710792852018943598592 -002212025071919294110792607297843707904 -002212025072011565910792855759443705856 -002212025072011244810792847660089688064 -002212025072013181310792876203225448448 -002212025072018181710792951717616496640 -002212025072012351310792865380096950272 -002212025072110365710793198004999012352 -002212025072112082710793221030491967488 -002212025072114470410793260949385797632 -002212025072118344010793318228432805888 -002212025072119311510793332466238599168 -002212025072119251010793330935371317248 -002212025072121211810793360163747377152 -002212025072216082010793643789925617664 -002212025072216302410793649343446626304 -002212025072218050710793673179575115776 -002212025072220494610793714615932817408 -002212025072221123910793720374936326144 -002212025072311184210793933288903258112 -002212025072220513510793715070507061248 -002212025072311310810793936415708794880 -002212025072307421710793878826356551680 -002212025072318082310794036387927449600 -002212025072317382210794028833818783744 -002212025072408580510794260287749627905 -002212025072323430610794120624747495424 -002212025072418345810794405465243389952 -002212025072422345310794465842673094656 -002212025072518414910794769578221735936 -002212025072521173110794808761019699200 -002212025072515455010794725290160594944 -002212025072520011410794789562047700992 -002212025072607260810794961925001875456 -002212025072521474510794816370052349952 -002212025072523334210794843031834439680 -002212025072523373110794843994727641088 -002212025072613570210795060297567313920 -002212025072613564110795060208660652032 -002212025072613560110795060043721891840 -002212025072614013310795061435926585344 -002212025072613524610795059225036492800 -002212025072616184110795095946239545344 -002212025072618032310795122292457836544 -002212025072618073810795123365198438400 -002212025072618030010795122198730948608 -002212025072618054210795122877417660416 -002212025072616104210795093937165553664 -002212025072617572310795120783369871360 -002212025072618040610795122474376994816 -002212025072618091310795123761324068864 -002212025072622180610795186397262929920 -002212025072618122410795124564217278464 -002212025072617112110795109200757903360 -002212025072621531510795180143515512832 -002212025072618020910795121981675253760 -002212025072701320210795235202147704832 -002212025072618121410795124521461587968 -002212025072710564010795377295016308736 -002212025072711043910795379305330872320 -002212025072711021210795378688200519680 -002212025072701335510795235675339993088 -002212025072619220210795142086165970944 -002212025072712093010795395624211750912 -002212025072712111610795396070473752576 -002212025072712141010795396797016227840 -002212025072712132810795396620601794560 -002212025072712263210795399909223587840 -002212025072712305110795400996102316032 -002212025072713565310795422648846897153 -002212025072714183110795428092921352192 -002212025072808161910795699327568977920 -002212025072810334810795733928737685504 -002212025072816294910795823521987137536 -002212025072908391610796067492048150528 -002212025072914113310796151116545265664 -002212025072916025410796179138017472512 -002212025072916572310796192847948390400 -002212025072913140510796136652734967808 -002212025072917235610796199530091679744 -002212025073014562210796524782660788224 -002212025073016122110796543903432036352 -002212025073018125410796574238366785536 -002212025073020322910796609365428137984 -002212025073114441010796884098481889280 -002212025073115594710796903128748429312 -002212025073115504710796900861945221120 -002212025073114465910796884807573426176 -002212025073116530310796916534842920960 -002212025073119413010796958924165484544 -002212025080112423710797215899457945600 -002212025080115060610797252004344246272 -002212025080115432810797261408626765824 -002212025080113303410797227966394384384 -002212025080119121210797313939260272640 -002212025080121492410797353498095661056 -002212025080120322310797334117904285696 -002212025080120314810797333971490942976 -002212025080207491110797504442022875136 -002212025080212121810797570656531238912 -002212025080214181210797602340549017600 -002212025080216590010797642806571151360 -002212025080213494910797595195969732608 -002212025080212374510797577058872012800 -002212025080222431810797729452237123584 -002212025080221183010797708112010375168 -002212025080223320410797741726559334400 -002212025080216011210797628258794078208 -002212025080219261710797679873421971456 -002212025080309301210797892249753186304 -002212025080221275110797710462910738432 -002212025080308291610797876913468973056 -002212025080220511710797701264075841536 -002212025080313455110797956587697745920 -002212025080314151110797963967716773888 -002212025080314115510797963145037840384 -002212025080413135210798310926721822720 -002212025080414454410798334042399428608 -002212025080412345310798301114997596160 -002212025080509192710798614318476525568 -002212025080517211210798735555374460928 -002212025080522112710798808598522490880 -002212025080608311510798964576242855936 -002212025080611210910799007335494033408 -002212025080614480410799059407780835328 -002212025080618295810799115249894674432 -002212025080620293210799145341318447104 -002212025080702560910799242635680272384 -002212025080708204510799324324188352512 -002212025080711013510799364799851847680 -002212025080714141410799413280472535040 -002212025080716002110799439983882244096 -002212025080718571210799484489839484928 -002212025080717574410799469524702433280 -002212025080720454610799511815001333760 -002212025080721292710799522804863299584 -002212025080721432410799526317360295936 -002212025080720174510799504761479585792 -002212025080723570910799559974827290624 -002212025080721295710799522933891989504 -002212025080814341610799780710297346048 -002212025080721062710799517018406084608 -002212025080815400810799797284736933888 -002212025080817142010799820990293024768 -002212025080815204310799792401538064384 -002212025080821362410799886943216439296 -002212025080821220010799883318190714880 -002212025080821365610799887078717513728 -002212025080821421410799888412025217024 -002212025080809010710799696870257684480 -002212025080820493110799875144224841728 -002212025080907160810800032839335239680 -002212025080822084410799895078403715072 -002212025080822463710799904613106159616 -002212025080909020410800059496807391232 -002212025080910322910800082249220329472 -002212025080908304510800051617774239744 -002212025080913350710800128212483936256 -002212025080913364110800128605539938304 -002212025080916470510800176524215152640 -002212025080918295410800202396017958912 -002212025080914023210800135114110656512 -002212025080918092210800197230458544128 -002212025080921235910800246204682182656 -002212025081002285010800322924404514816 -002212025081001045310800301795803324416 -002212025080922534810800268809632407552 -002212025080922042810800256394484342784 -002212025080916404410800174926037614593 -002212025081011331610800459933722308608 -002212025081002305710800323457986781184 -002212025081014145410800500613756026880 -002212025080923445110800281655833763840 -002212025081016251810800533428718415872 -002212025081022024210800618339221725184 -002212025081023032010800633596059815936 -002212025081023474810800644788593594368 -002212025081113372810800853580167176192 -002212025081112135110800832535744602112 -002212025081118230210800925444609454080 -002212025081116531810800902861556785152 -002212025081116280710800896525086724096 -002212025081213351610801215413608865792 -002212025081215422110801247393233473536 -002212025081310300110801531179880218624 -002212025081312133010801557222980648960 -002212025081311550710801552598262587392 -002212025081319203210801664691191390208 -002212025081322322910801712998289125376 -002212025081320532110801688046859280384 -002212025081412423110801926912693989376 -002212025081413211410801936658615472128 -002212025081417070310801993488343826432 -002212025081414222310801952048653393920 -002212025081418112410802009679603408896 -002212025081511463310802275218682781696 -002212025081517252610802360498841165824 -002212025081520293010802406823121100800 -002212025081518063210802370842433392640 -002212025081520072610802401270525157376 -002212025081521265410802421268008787968 -002212025081608270610802587410829635584 -002212025081517133310802357510309797888 -002212025081521162410802418623761702912 -002212025081521401210802424613408911360 -002212025081520531910802412817151209473 -002212025081609171010802600012260024320 -002212025081612575210802655553659572224 -002212025081608294410802588074541625344 -002212025081520051710802400729831931904 -002212025081612245810802647273986654208 -002212025081613152810802659982615748608 -002212025081613352510802665002298478592 -002212025081615431110802697155867762688 -002212025081614373610802680650187120640 -002212025081621200610802781943657734144 -002212025081621214310802782349954953216 -002212025081621455510802788439311478784 -002212025081622373110802801427779510272 -002212025081621074510802778837182029824 -002212025081623341110802815687047655424 -002212025081708592510802957934066634752 -002212025081706432910802923723418996736 -002212025081620493510802774263852740608 -002212025081621005610802777121042800640 -002212025081620371810802771171959779328 -002212025081622543610802805725006462976 -002212025081621095610802779383996846080 -002212025081623294810802814585017556992 -002212025081715030310803049444606025728 -002212025081714003010803033704760180736 -002212025081715042910803049806594023424 -002212025081723033710803170383317147648 -002212025081723061510803171046422450176 -002212025081815300710803418643471867904 -002212025081817301010803448855473872896 -002212025081820450410803497902087315456 -002212025081821391010803511518790393856 -002212025081822290210803524069125709824 -002212025081822452110803528175343865856 -002212025081908411910803678155718406144 -002212025081908263010803674426093723648 -002212025081821503310803514383021441024 -002212025081908475810803679825795706880 -002212025081912493210803740618143277056 -002212025081914313510803766302697824256 -002212025081917125810803806914514616320 -002212025081911422310803723720768708608 -002212025082011323610804083647407030272 -002212025081921392210803873956810428416 -002212025082014235010804126739418120192 -002212025082016091110804153250016108544 -002212025082014113410804123653710381056 -002212025082019444510804207501690626048 -002212025082021540610804240053021106176 -002212025082108484210804404788500340736 -002212025082111290510804445148387713024 -002212025082115381910804507870475296768 -002212025082113085710804470280614547456 -002212025082115022010804498813654896640 -002212025082120120510804576764811902976 -002212025082122115710804606930264186880 -002212025082208213610804760353952997376 -002212025082209002410804770119161405440 -002212025082210175210804789613502373888 -002212025082211344410804808959601291264 -002212025082212363210804824510777761792 -002212025082212514410804828336900771840 -002212025082214540310804859119172034560 -002212025082215405510804870914164465664 -002212025082216360110804884781080748032 -002212025082213404310804840664672051200 -002212025082216311410804883573983555584 -002212025082218271610804912776740122624 -002212025082219281310804928115739820032 -002212025082221093410804953621619875840 -002212025082219595310804936084300619776 -002212025082222134910804969787954749440 -002212025082222351010804975162555490304 -002212025082309071910805134246734958592 -002212025082220181310804940697675460608 -002212025082308164610805121526211928064 -002212025082313385010805202577928196096 -002212025082312532710805191157493981184 -002212025082315491410805235396038811648 -002212025082315461110805234626568888320 -002212025082315010410805223272749850624 -002212025082316014210805238531109085184 -002212025082314142710805211540394057728 -002212025082313310410805200624433278976 -002212025082316554910805252151543717888 -002212025082317004010805253369160097792 -002212025082316583510805252847442567168 -002212025082316240610805244167670652928 -002212025082309090710805134701619810304 -002212025082315595710805238089249267712 -002212025082321071910805315442704166912 -002212025082317210810805258522569859072 -002212025082322402410805338865725702144 -002212025082322242510805334845623959552 -002212025082319210510805288709743304704 -002212025082322053010805330086457335808 -002212025082321000210805313611549601792 -002212025082321041710805314679246749696 -002212025082321253910805320056877838336 -002212025082322084210805330889992167424 -002212025082318261610805274912615227392 -002212025082321253810805320053552885760 -002212025082321435710805324660884733952 -002212025082409332010805503182493687808 -002212025082322450210805340034037411840 -002212025082320432310805309418993475584 -002212025082415434610805596406611279872 -002212025082414050910805571589724241920 -002212025082415191610805590242188165120 -002212025082421581410805690644046110720 -002212025082422340810805699678155956224 -002212025082508415410805852626681167872 -002212025082508300810805849667012366336 -002212025082511133210805890786317656064 -002212025082513505410805930390082957312 -002212025082509135910805860703528001536 -002212025082600133910806087109180481536 -002212025082612123710806268043421519872 -002212025082614391410806304942032248832 -002212025082615262110806316798724603904 -002212025082619131910806373919038177280 -002212025082619433910806381550332850176 -002212025082720085210806750284009582592 -002212025082807503110806926859880464384 -002212025082815034110807035869589995520 -002212025082909011310807307040032432128 -002212025082911273910807343891564879872 -002212025082913094510807369584864542720 -002212025082918205310807447884160974848 -002212025082921531410807501326782984192 \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java index b1ace922a..98829bba3 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java @@ -1567,4 +1567,94 @@ public class AdapayService { // 删除数据库中的记录 adapayMemberAccountService.deleteAccountByMerchantId(dto.getMerchantId()); } + + /** + * 根据paymentIdList查询分账信息 + * @param paymentIdList + * @return 未分帐paymentIdList + */ + public List getSplitInfoByPaymentIdList(List paymentIdList) throws BaseAdaPayException { + List unSplitList = Lists.newArrayList(); // 未分帐 + List splitList = Lists.newArrayList(); // 已分帐 + + BigDecimal total = BigDecimal.ZERO; // 总分账金额 + BigDecimal totalWithdrawalAmt = BigDecimal.ZERO; // 实际到账金额汇总 + BigDecimal totalFeeAmt = BigDecimal.ZERO; // 手续费金额汇总 + + List selfList = Lists.newArrayList(); + + Map map = Maps.newHashMap(); + for (String paymentId : paymentIdList) { + if (StringUtils.isBlank(paymentId)) { + continue; + } + // 查询支付确认id + QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO(); + dto.setPaymentId(paymentId); + dto.setWechatAppId(wechatAppId1); + // 查询分账信息 + QueryPaymentConfirmDetailResponse response = this.queryPaymentConfirmList(dto); + if (response != null) { + List confirms = response.getPaymentConfirms(); + if (CollectionUtils.isEmpty(confirms)) { + unSplitList.add(paymentId); + } else { + splitList.add(paymentId); + for (PaymentConfirmInfo confirm : confirms) { + if (this.queryConfirmReverseStatus(confirm)) { + log.info("支付确认id:" + confirm.getId() + "撤销了。。。"); + continue; + } + JSONObject jsonObject = JSON.parseObject(confirm.getDescription()); + String adapayMemberId = jsonObject.getString("adapayMemberId"); + if (StringUtils.isBlank(adapayMemberId)) { + adapayMemberId = jsonObject.getString("adapayMemberIds"); + } + + BigDecimal confirmAmt = new BigDecimal(confirm.getConfirmAmt()); // 本次确认金额 + BigDecimal confirmedAmt = new BigDecimal(confirm.getConfirmedAmt()); // 已确认金额 + BigDecimal feeAmt = new BigDecimal(confirm.getFeeAmt()); // 手续费 + + // 汇总已确认金额 + total = total.add(confirmedAmt); + + // 汇总手续费金额 + totalFeeAmt = totalFeeAmt.add(feeAmt); + + // 汇总可提现金额 + totalWithdrawalAmt = totalWithdrawalAmt.add(confirmAmt).subtract(feeAmt); + + // confirm + List divMembers = confirm.getDivMembers(); + // System.out.println("confirm:" + JSON.toJSONString(divMembers)); + for (DivMember divMember : divMembers) { + // 放map + map.merge(divMember.getMemberId(), new BigDecimal(divMember.getAmount()), BigDecimal::add); + } + + if (StringUtils.equals(adapayMemberId, "0") + || StringUtils.equals(adapayMemberId, "AM29102732")) { + // 0为默认平台id, AM29102732为罗总账户 + selfList.add(paymentId); + } + } + } + } else { + unSplitList.add(paymentId); + } + } + // System.out.println("=================未分账:" + JSON.toJSONString(unSplitList) + ", 数量:" + unSplitList.size()); + // System.out.println("=================已分账:" + JSON.toJSONString(map) + ", 总分账:" + total + ", 数量:" + splitList.size()); + // System.out.println("===============金额明细:" + "总到账金额:" + totalWithdrawalAmt + ", 总手续费:" + totalFeeAmt); + // System.out.println("===================自己:" + JSON.toJSONString(selfList) + ", 数量:" + selfList.size()); + log.info("\n入参paymentId数量:{}, 已分帐数量:{}, 未分帐数量:{}, 未分帐id:{} " + + "\n已分帐:{}, 总分账:{}, 数量:{}" + + "\n金额明细:[总到账金额:{}, 总手续费:{}] " + + "\n自己:{}, 数量:{}", + paymentIdList.size(), splitList.size(), unSplitList.size(), unSplitList, + JSON.toJSONString(map), total, splitList.size(), + totalWithdrawalAmt, totalFeeAmt, + selfList, selfList.size()); + return unSplitList; + } }