|
@@ -0,0 +1,402 @@
|
|
|
+package com.zhongshu.payment.server;
|
|
|
+
|
|
|
+import cn.hutool.core.lang.Snowflake;
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
+import com.github.microservice.auth.client.content.ResultContent;
|
|
|
+import com.zhongshu.payment.client.model.order.AdminSeachOrderModel;
|
|
|
+import com.zhongshu.payment.client.model.order.v2.*;
|
|
|
+import com.zhongshu.payment.client.model.payment.CreateRequestModel;
|
|
|
+import com.zhongshu.payment.client.model.payment.CreateResponseModel;
|
|
|
+import com.zhongshu.payment.client.model.payment.SubOrdersConfirmResponseModel;
|
|
|
+import com.zhongshu.payment.client.model.payment.withdrawals.*;
|
|
|
+import com.zhongshu.payment.client.model.payment.zswl.ApplyWithdrawalsModel;
|
|
|
+import com.zhongshu.payment.client.service.v2.OrderService2;
|
|
|
+import com.zhongshu.payment.client.type.Channel;
|
|
|
+import com.zhongshu.payment.client.type.JobFlowMap;
|
|
|
+import com.zhongshu.payment.client.type.OrderType;
|
|
|
+import com.zhongshu.payment.server.core.api.PaymentApi;
|
|
|
+import com.zhongshu.payment.server.core.api.PaymentApi2;
|
|
|
+import com.zhongshu.payment.server.core.api.WithdrawalsApi;
|
|
|
+import com.zhongshu.payment.server.core.config.PaymentConfig;
|
|
|
+import com.zhongshu.payment.server.core.dao.*;
|
|
|
+import com.zhongshu.payment.server.core.domain.Complex;
|
|
|
+import com.zhongshu.payment.server.core.domain.Goods;
|
|
|
+import com.zhongshu.payment.server.core.domain.PaymentBind;
|
|
|
+import com.zhongshu.payment.server.core.domain.PaymentInfo;
|
|
|
+import com.zhongshu.payment.server.core.service.v2.PaymentServerImpl2;
|
|
|
+import com.zhongshu.payment.server.core.timer.ComplexTimer;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.boot.test.context.SpringBootTest;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.domain.PageRequest;
|
|
|
+import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
+import org.springframework.util.Assert;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@SpringBootTest
|
|
|
+public class ServerApplicationTests {
|
|
|
+
|
|
|
+ private static final Logger log = LoggerFactory.getLogger(ServerApplicationTests.class);
|
|
|
+ @Autowired
|
|
|
+ Snowflake snowflake;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ PaymentApi paymentApi;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ WithdrawalsApi withdrawalsApi;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ PaymentConfig paymentConfig;
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ PaymentServerImpl2 paymentService2;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ OrderService2 orderService2;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ PaymentBindDao paymentBindDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ ApiLogDao apiLogDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ GoodsDao goodsDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ ComplexDao complexDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ PaymentDao paymentDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ Order2Dao order2Dao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TransferDetailDao transferDetailDao;
|
|
|
+ @Autowired
|
|
|
+ private TransferDao transferDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ ComplexTimer complexTimer;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void payOrder() {
|
|
|
+
|
|
|
+ orderService2.findChannelGoods(JobFlowMap.Hotel,"");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void query() {
|
|
|
+
|
|
|
+ AdminSeachOrderModel adminSeachOrderModel = new AdminSeachOrderModel();
|
|
|
+ adminSeachOrderModel.setPlatInter(true);
|
|
|
+ adminSeachOrderModel.setOrderType(OrderType.REFUNDED);
|
|
|
+ orderService2.adminSearch(adminSeachOrderModel);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void create() {
|
|
|
+ Complex byAccesserUserId = complexDao.findByAccesser_user_id("65aa17f980f6d56f44643a1f");
|
|
|
+ Assert.isTrue(byAccesserUserId.isFinish(), "签约未完成");
|
|
|
+ String merNo = byAccesserUserId.getMer_no();
|
|
|
+// String mappNo = byAccesserUserId.getMapp_info_list().get(0).getMapp_no();
|
|
|
+
|
|
|
+ GetMoneyDetailRequest getDetailRequest = new GetMoneyDetailRequest();
|
|
|
+ getDetailRequest.setTransMid(merNo);
|
|
|
+// getDetailRequest.setMappId(mappNo);
|
|
|
+ GetMoneyDetailResponse moneyDetail = withdrawalsApi.getMoneyDetail(getDetailRequest);
|
|
|
+
|
|
|
+// String quotaUse = moneyDetail.getData().get(0).getQuotaUse();
|
|
|
+// CountDetail countDetail = new CountDetail();
|
|
|
+// countDetail.setQuotaUse(quotaUse);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void refund() {
|
|
|
+
|
|
|
+// PaymentBind bind = paymentBindDao.findByEpId("Platform");
|
|
|
+// PaymentInfo paymentInfo = bind.getPaymentInfo();
|
|
|
+//////
|
|
|
+//////
|
|
|
+// RefundRequestModel requestModel = new RefundRequestModel();
|
|
|
+// requestModel.setPlatformAmount(0L);
|
|
|
+// requestModel.setRefundDesc("测试退款,未分账退款");
|
|
|
+// requestModel.setRefundOrderId("42171772810695244943360");
|
|
|
+// requestModel.setRefundAmount(10L);
|
|
|
+// requestModel.setBillDate("2024-03-27");
|
|
|
+// requestModel.setTid("PEYAH8X1");
|
|
|
+// requestModel.setMerOrderId("89852017372911Y");
|
|
|
+// CreateRequestModel.SubOrders subOrders = new CreateRequestModel.SubOrders();
|
|
|
+// subOrders.setMid("89852015995900D");
|
|
|
+// subOrders.setTotalAmount(10L);
|
|
|
+//
|
|
|
+//
|
|
|
+// requestModel.setSubOrders(List.of(subOrders));
|
|
|
+//
|
|
|
+//
|
|
|
+// PaymentApi2 paymentApi2 = new PaymentApi2(paymentInfo, apiLogDao);
|
|
|
+// RefundResponseModel refund = paymentApi2.refund(requestModel);
|
|
|
+// System.out.println(refund);
|
|
|
+
|
|
|
+ RefundParam2Model refundParam2Model = new RefundParam2Model();
|
|
|
+ refundParam2Model.setRefundAmount(BigDecimal.valueOf(10));
|
|
|
+ refundParam2Model.setBuyShopAmount(BigDecimal.valueOf(10));
|
|
|
+ refundParam2Model.setPlatformAmount(BigDecimal.valueOf(0));
|
|
|
+ refundParam2Model.setUseShopAmount(BigDecimal.valueOf(0));
|
|
|
+
|
|
|
+// Goods goods = goodsDao.findById("6603823d85012d0d233372b2").get();
|
|
|
+// paymentService2.refund(refundParam2Model, goods);
|
|
|
+
|
|
|
+ paymentService2.close("1788021041601630208", "660a534e32e63427d1a09c2a");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void close() {
|
|
|
+
|
|
|
+
|
|
|
+ PaymentBind bind = paymentBindDao.findByChannel(Channel.ZhongShu);
|
|
|
+ PaymentInfo paymentInfo = bind.getPaymentInfo();
|
|
|
+ CreateRequestModel createRequestModel = new CreateRequestModel("wx.unifiedOrder");
|
|
|
+ createRequestModel.setExpireTime("2024-03-30 12:12:12");
|
|
|
+
|
|
|
+ createRequestModel.setMerOrderId("4217" + "22222222222222");
|
|
|
+ createRequestModel.setBusiOrderId("1111111111111111");
|
|
|
+ createRequestModel.setMid("89852017372911Y");
|
|
|
+ createRequestModel.setTid("PEYAH8X1");
|
|
|
+ createRequestModel.setTotalAmount(10L);
|
|
|
+ createRequestModel.setSubOpenId("oZJ7S4uer9LHDvLrIWmDQRuFtk98");
|
|
|
+ createRequestModel.setEmployeeNo("gonghao");
|
|
|
+// createRequestModel.setNotifyUrl(paymentInfo.getNotifyUrl());
|
|
|
+// createRequestModel.setReturnUrl("回调链接");
|
|
|
+ // 是否分账
|
|
|
+ createRequestModel.setDivisionFlag(false);
|
|
|
+ // 异步分账
|
|
|
+
|
|
|
+
|
|
|
+ PaymentApi2 paymentApi2 = new PaymentApi2(paymentInfo, apiLogDao);
|
|
|
+ CreateResponseModel responseBaseModel = paymentApi2.creatOrder(createRequestModel);
|
|
|
+ System.out.println(responseBaseModel);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void ttt() {
|
|
|
+
|
|
|
+ AdminSeachOrderModel adminSeachOrderModel = new AdminSeachOrderModel();
|
|
|
+ adminSeachOrderModel.setNoOrGName("1772440085801148416");
|
|
|
+ adminSeachOrderModel.setShopId("");
|
|
|
+
|
|
|
+ ResultContent<Page<OrderResult2Model>> pageResultContent = orderService2.adminSearch(adminSeachOrderModel);
|
|
|
+
|
|
|
+ System.out.println(pageResultContent.getContent());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void ttt2() {
|
|
|
+
|
|
|
+ AdminSeachOrderModel adminSeachOrderModel = new AdminSeachOrderModel();
|
|
|
+ adminSeachOrderModel.setOrderType(OrderType.WAIT_USE);
|
|
|
+ ResultContent<Page<OrderResult2Model>> pageResultContent = orderService2.adminSearch(adminSeachOrderModel);
|
|
|
+ System.out.println(pageResultContent);
|
|
|
+// ResultContent<SubOrdersConfirmResponseModel> subOrdersConfirmResponseModelResultContent = paymentService2.subOrdersConfirm("66042b98aefddc65323e187e", "6580f9b9cae1326607eaa24a");
|
|
|
+// subOrdersConfirmResponseModelResultContent.getContent();
|
|
|
+ List<Goods> distinctByGoodsIdAndUserId = goodsDao.findByGoodsIdAndUserId("1772928077253447680", "65fe583d74d67a7dbd842b45");
|
|
|
+ System.out.println(distinctByGoodsIdAndUserId.size());
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void videoWithdrawals() {
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void batchQueryRequest() {
|
|
|
+ BatchQueryRequest batchQueryRequest = new BatchQueryRequest();
|
|
|
+ batchQueryRequest.setBatchNo("17453442885887262722");
|
|
|
+ batchQueryRequest.setTxnDate("20240417");
|
|
|
+ batchQueryRequest.setTransMid("89852017372912P");
|
|
|
+
|
|
|
+ BatchQueryResponse withdrawals = withdrawalsApi.batchQuery(batchQueryRequest);
|
|
|
+ log.info("响应:{}", JSONUtil.toJsonStr(withdrawals));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void tt112t() {
|
|
|
+
|
|
|
+ ApplyWithdrawalsModel applyWithdrawalsModel = new ApplyWithdrawalsModel();
|
|
|
+ applyWithdrawalsModel.setPlatform(false);
|
|
|
+ applyWithdrawalsModel.setChannel(Channel.ZhongShu);
|
|
|
+ applyWithdrawalsModel.setShopId("6605627832e63427d1a08714");
|
|
|
+
|
|
|
+ paymentService2.applicationWithdrawals(applyWithdrawalsModel);
|
|
|
+
|
|
|
+ ApplyWithdrawalsModel applyWithdrawalsModel1 = new ApplyWithdrawalsModel();
|
|
|
+ applyWithdrawalsModel1.setPlatform(true);
|
|
|
+ applyWithdrawalsModel1.setChannel(Channel.ZhongShu);
|
|
|
+ applyWithdrawalsModel1.setShopId(Channel.ZhongShu.name());
|
|
|
+
|
|
|
+ paymentService2.applicationWithdrawals(applyWithdrawalsModel);
|
|
|
+
|
|
|
+// for (TransferDetail transferDetail : transferDetailDao.findByShopMid("89852017372912Y")) {
|
|
|
+//
|
|
|
+// List<Transfer> byOrderNo = transferDao.findByOrderNo(transferDetail.getOrderNo());
|
|
|
+// byOrderNo.forEach(it->it.setChannel(Channel.GuiDa));
|
|
|
+// transferDao.saveAll(byOrderNo);
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testw() {
|
|
|
+
|
|
|
+
|
|
|
+ WithdrawalsRequest withdrawalsRequest = new WithdrawalsRequest();
|
|
|
+// withdrawalsRequest.setTotalAmt("8");
|
|
|
+// withdrawalsRequest.setTotalQty("1");
|
|
|
+ withdrawalsRequest.setTransMid("89852017372911Y");
|
|
|
+ withdrawalsRequest.setBatchNo(snowflake.nextIdStr());
|
|
|
+ WithdrawalsRequest.Deatil deatil = new WithdrawalsRequest.Deatil();
|
|
|
+ deatil.setTxnNo(snowflake.nextIdStr());
|
|
|
+ deatil.setMerOrderId("42171773171497466568704");
|
|
|
+ deatil.setClearDate("20240328");
|
|
|
+ deatil.setMerNo("89852015995900D");
|
|
|
+ deatil.setMerName("宠物店");
|
|
|
+// deatil.setTxnAmt("8");
|
|
|
+ withdrawalsRequest.setDetail(List.of(deatil));
|
|
|
+
|
|
|
+
|
|
|
+ WithdrawalsResponse withdrawals = withdrawalsApi.withdrawals(withdrawalsRequest);
|
|
|
+ System.out.println(withdrawals);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void ttttt() {
|
|
|
+
|
|
|
+ ResultContent<SubOrdersConfirmResponseModel> subOrdersConfirmResponseModelResultContent = paymentService2.subOrdersConfirm("6605b6f666f86738e91987e9", "65fe7c9174d67a7dbd842b74");
|
|
|
+ System.out.println(subOrdersConfirmResponseModelResultContent);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void transferDetailDao() {
|
|
|
+
|
|
|
+ WithdrawRequestModel withdrawRequestModel = new WithdrawRequestModel();
|
|
|
+ withdrawRequestModel.setShopId("6605627832e63427d1a08714");
|
|
|
+ withdrawRequestModel.setSize(10);
|
|
|
+ withdrawRequestModel.setPage(0);
|
|
|
+
|
|
|
+ transferDetailDao.shopTransferDetail(withdrawRequestModel);
|
|
|
+ ApplyWithdrawalsModel applyWithdrawalsModel = new ApplyWithdrawalsModel();
|
|
|
+ applyWithdrawalsModel.setPlatform(false);
|
|
|
+ applyWithdrawalsModel.setChannel(Channel.ZhongShu);
|
|
|
+ applyWithdrawalsModel.setShopId("661e1fad30fed626f8b583f8");
|
|
|
+ transferDetailDao.detailAccount(applyWithdrawalsModel);
|
|
|
+// transferDetailDao.acount("6605627832e63427d1a08714");
|
|
|
+// transferDetailDao.withdrawOrder(withdrawRequestModel);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void tee() {
|
|
|
+// AdminSeachOrderModel adminSeachOrderModel = new AdminSeachOrderModel();
|
|
|
+// adminSeachOrderModel.setOrderType(OrderType.APPLY_REFUND);
|
|
|
+// order2Dao.findAdminOrder(adminSeachOrderModel, PageRequest.of(0, 10));
|
|
|
+
|
|
|
+// ResultContent resultContent = paymentService2.applicationWithdrawals("PLATFORM");
|
|
|
+ transferDetailDao.acountDetail("6603b43c32e63427d1a07ab6");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void transfer() {
|
|
|
+
|
|
|
+ ResultContent<GoodsResultModel> goodsResultModelResultContent = orderService2.goodsDetail2("1777974122433875968", "1777974122842091520");
|
|
|
+ System.out.println(goodsResultModelResultContent.getContent());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ MongoTemplate mongoTemplate;
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void time() {
|
|
|
+// goods.goodsState": "WAIT_USE", "transfer": false, "pay": true
|
|
|
+//
|
|
|
+// Aggregation aggregation = newAggregation(
|
|
|
+// Aggregation.lookup("goods", "orderNo", "orderNo", "goods"),
|
|
|
+// Aggregation.match(Criteria.where("goods.validDay").ne(null).and("goods.goodsState").is("WAIT_USE").and("pay").is(true)),
|
|
|
+// Aggregation.project()
|
|
|
+// .and("createTime").as("createTime")
|
|
|
+// .and("goodsId").as("goodsId")
|
|
|
+// .and("orderNo").as("orderNo")
|
|
|
+// .and("transfer").as("transfer")
|
|
|
+// .and("platform").as("platform")
|
|
|
+// .and("buyShop").as("buyShop")
|
|
|
+// .and("useShop").as("useShop")
|
|
|
+// .and("shopId").as("goods.shopId")
|
|
|
+// .andExpression("{$add: {{ $arrayElemAt: {'$goods.createTime', 0} },{ $multiply: {{ $arrayElemAt: {'$goods.validDay', 0} }, 24 * 60 * 60 * 1000} }}}").as("time"),
|
|
|
+// Aggregation.match(Criteria.where("time").lte(new Date().getTime()))
|
|
|
+// );
|
|
|
+//
|
|
|
+// mongoTemplate.aggregate(aggregation, "transfer", Document.class).getMappedResults();
|
|
|
+
|
|
|
+ for (TransferModel transferModel : transferDao.validDayTimeOute()) {
|
|
|
+ System.out.println(transferModel);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void guiDaPayment() {
|
|
|
+
|
|
|
+
|
|
|
+ CreateRequestModel createRequestModel = new CreateRequestModel("wx.miniPreOrder");
|
|
|
+ createRequestModel.setAsynDivisionFlag(true);
|
|
|
+ createRequestModel.setSubOpenId("1784754317116801025");
|
|
|
+ createRequestModel.setDivisionFlag(true);
|
|
|
+ createRequestModel.setMerOrderId("42171784754317116801025");
|
|
|
+ createRequestModel.setMid("89852017372912Y");
|
|
|
+ createRequestModel.setOrderDesc("文创商品");
|
|
|
+ createRequestModel.setPlatformAmount(0L);
|
|
|
+ createRequestModel.setSubOpenId("ovIOO4spgsdv4vNtrs0j3_VDkKLY");
|
|
|
+ CreateRequestModel.SubOrders subOrders = new CreateRequestModel.SubOrders();
|
|
|
+ subOrders.setMid("89852015995900D");
|
|
|
+ subOrders.setTotalAmount(10L);
|
|
|
+ createRequestModel.setSubOrders(List.of(subOrders));
|
|
|
+ createRequestModel.setTid("NT4RL61Q");
|
|
|
+ createRequestModel.setTotalAmount(10L);
|
|
|
+ createRequestModel.setUserId("65fe583d74d67a7dbd842b45");
|
|
|
+
|
|
|
+
|
|
|
+ paymentApi.creatOrder(createRequestModel);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|