2023-05-26 19:25:35 +08:00
|
|
|
|
import cn.hutool.json.JSONUtil;
|
2023-05-27 11:55:45 +08:00
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
2023-05-31 16:05:18 +08:00
|
|
|
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
2023-05-30 16:33:49 +08:00
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.google.common.collect.ImmutableMap;
|
2023-06-26 17:10:36 +08:00
|
|
|
|
import com.google.common.collect.Lists;
|
2023-05-27 16:01:27 +08:00
|
|
|
|
import com.google.common.collect.Maps;
|
2023-07-17 16:44:04 +08:00
|
|
|
|
import com.google.common.collect.Sets;
|
2023-06-12 17:38:16 +08:00
|
|
|
|
import com.google.common.primitives.Bytes;
|
2023-06-15 14:06:33 +08:00
|
|
|
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
2023-08-25 16:07:15 +08:00
|
|
|
|
import com.huifu.adapay.model.Payment;
|
2023-05-27 16:01:27 +08:00
|
|
|
|
import com.huifu.adapay.model.Refund;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.jsowell.JsowellApplication;
|
2023-08-15 11:02:02 +08:00
|
|
|
|
import com.jsowell.adapay.config.AbstractAdapayConfig;
|
2023-08-21 08:52:32 +08:00
|
|
|
|
import com.jsowell.adapay.dto.QueryAcctFlowDTO;
|
2023-08-21 16:19:33 +08:00
|
|
|
|
import com.jsowell.adapay.dto.QueryPaymentConfirmDTO;
|
2023-08-21 15:37:00 +08:00
|
|
|
|
import com.jsowell.adapay.dto.SettleAccountDTO;
|
2023-08-15 11:02:02 +08:00
|
|
|
|
import com.jsowell.adapay.factory.AdapayConfigFactory;
|
2023-08-21 16:19:33 +08:00
|
|
|
|
import com.jsowell.adapay.response.QueryPaymentConfirmDetailResponse;
|
2023-08-18 09:52:12 +08:00
|
|
|
|
import com.jsowell.adapay.service.AdapayService;
|
2023-08-21 13:20:17 +08:00
|
|
|
|
import com.jsowell.adapay.vo.DrawCashDetailVO;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.jsowell.common.constant.CacheConstants;
|
|
|
|
|
|
import com.jsowell.common.constant.Constants;
|
2023-05-30 13:45:56 +08:00
|
|
|
|
import com.jsowell.common.core.domain.entity.SysDictData;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.jsowell.common.core.domain.ykc.LoginRequestData;
|
|
|
|
|
|
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
|
|
|
|
|
|
import com.jsowell.common.core.redis.RedisCache;
|
2023-08-30 10:13:56 +08:00
|
|
|
|
import com.jsowell.common.enums.AcquirerEnum;
|
2023-08-01 16:16:34 +08:00
|
|
|
|
import com.jsowell.common.enums.DelFlagEnum;
|
2023-07-08 11:33:45 +08:00
|
|
|
|
import com.jsowell.common.enums.ykc.*;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.jsowell.common.exception.BusinessException;
|
2023-05-10 08:49:01 +08:00
|
|
|
|
import com.jsowell.common.util.*;
|
2023-07-08 09:58:20 +08:00
|
|
|
|
import com.jsowell.common.util.Cp56Time2a.Cp56Time2aUtil;
|
2023-05-30 14:22:34 +08:00
|
|
|
|
import com.jsowell.common.util.http.HttpUtils;
|
2023-07-08 09:58:20 +08:00
|
|
|
|
import com.jsowell.common.util.id.IdUtils;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.jsowell.common.util.id.SnowflakeIdWorker;
|
|
|
|
|
|
import com.jsowell.common.util.ip.AddressUtils;
|
|
|
|
|
|
import com.jsowell.netty.handler.HeartbeatRequestHandler;
|
2023-07-08 09:58:20 +08:00
|
|
|
|
import com.jsowell.netty.handler.TransactionRecordsRequestHandler;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.jsowell.netty.service.yunkuaichong.YKCBusinessService;
|
2023-05-26 19:25:35 +08:00
|
|
|
|
import com.jsowell.pile.domain.*;
|
2023-06-26 17:10:36 +08:00
|
|
|
|
import com.jsowell.pile.domain.ykcCommond.IssueQRCodeCommand;
|
|
|
|
|
|
import com.jsowell.pile.domain.ykcCommond.ProofreadTimeCommand;
|
2023-05-10 08:49:01 +08:00
|
|
|
|
import com.jsowell.pile.dto.*;
|
2023-06-26 17:10:36 +08:00
|
|
|
|
import com.jsowell.pile.dto.amap.GetStationInfoDTO;
|
2023-08-24 10:33:26 +08:00
|
|
|
|
import com.jsowell.pile.dto.lutongyunting.BindCouponDTO;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.jsowell.pile.mapper.MemberBasicInfoMapper;
|
|
|
|
|
|
import com.jsowell.pile.mapper.PileBillingTemplateMapper;
|
2023-05-26 19:25:35 +08:00
|
|
|
|
import com.jsowell.pile.service.*;
|
2023-08-29 16:03:43 +08:00
|
|
|
|
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
|
|
|
|
|
|
import com.jsowell.pile.transaction.service.TransactionService;
|
|
|
|
|
|
import com.jsowell.pile.util.SnUtils;
|
2023-06-26 14:40:03 +08:00
|
|
|
|
import com.jsowell.pile.vo.base.PileInfoVO;
|
2023-07-08 11:33:45 +08:00
|
|
|
|
import com.jsowell.pile.vo.uniapp.MemberVO;
|
2023-08-30 10:13:56 +08:00
|
|
|
|
import com.jsowell.pile.vo.uniapp.PileConnectorDetailVO;
|
2023-08-11 11:04:28 +08:00
|
|
|
|
import com.jsowell.pile.vo.web.BalanceDeductionAmountVO;
|
2023-03-07 16:55:03 +08:00
|
|
|
|
import com.jsowell.pile.vo.web.BillingTemplateVO;
|
|
|
|
|
|
import com.jsowell.pile.vo.web.OrderListVO;
|
|
|
|
|
|
import com.jsowell.pile.vo.web.PileDetailVO;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.jsowell.service.MemberService;
|
|
|
|
|
|
import com.jsowell.service.OrderService;
|
|
|
|
|
|
import com.jsowell.service.PileService;
|
2023-06-17 10:37:02 +08:00
|
|
|
|
import com.jsowell.thirdparty.amap.service.AMapService;
|
2023-05-27 15:56:26 +08:00
|
|
|
|
import com.jsowell.thirdparty.lianlian.dto.CommonParamsDTO;
|
2023-05-26 16:14:45 +08:00
|
|
|
|
import com.jsowell.thirdparty.lianlian.service.LianLianService;
|
2023-05-26 19:25:35 +08:00
|
|
|
|
import com.jsowell.thirdparty.lianlian.util.Cryptos;
|
|
|
|
|
|
import com.jsowell.thirdparty.lianlian.util.Encodes;
|
|
|
|
|
|
import com.jsowell.thirdparty.lianlian.util.GBSignUtils;
|
2023-08-23 14:13:11 +08:00
|
|
|
|
import com.jsowell.thirdparty.lutongyunting.service.LTYTService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import com.jsowell.wxpay.common.WeChatPayParameter;
|
|
|
|
|
|
import com.jsowell.wxpay.dto.AppletTemplateMessageSendDTO;
|
|
|
|
|
|
import com.jsowell.wxpay.response.WechatPayRefundRequest;
|
|
|
|
|
|
import com.jsowell.wxpay.service.WxAppletRemoteService;
|
|
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
2023-07-28 14:47:26 +08:00
|
|
|
|
import org.apache.commons.lang3.RandomStringUtils;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import org.junit.Test;
|
|
|
|
|
|
import org.junit.runner.RunWith;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
|
|
|
import org.springframework.test.context.ActiveProfiles;
|
|
|
|
|
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
|
|
|
|
import org.springframework.util.StopWatch;
|
|
|
|
|
|
|
2023-05-26 19:25:35 +08:00
|
|
|
|
import java.io.UnsupportedEncodingException;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import java.math.BigDecimal;
|
2023-06-08 11:50:06 +08:00
|
|
|
|
import java.nio.charset.StandardCharsets;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
import java.text.ParseException;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
2023-05-10 08:49:01 +08:00
|
|
|
|
import java.util.*;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
|
|
|
|
|
@ActiveProfiles("dev")
|
|
|
|
|
|
@SpringBootTest(classes = JsowellApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
|
|
|
|
|
@RunWith(SpringRunner.class)
|
|
|
|
|
|
public class SpringBootTestController {
|
|
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private SnUtils snUtils;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private PileService pileService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private YKCPushCommandService ykcPushCommandService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IAdapayMemberAccountService adapayMemberAccountService;
|
2023-07-13 15:27:09 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IPileMsgRecordService pileMsgRecordService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IPileStationInfoService pileStationInfoService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private YKCPushCommandService ykcPushBusinessService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private HeartbeatRequestHandler heartbeatRequestHandler;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private YKCBusinessService ykcBusinessService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private PileBillingTemplateMapper pileBillingTemplateMapper;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private PileRemoteService pileRemoteService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private MemberService memberService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private OrderService orderService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IPileBillingTemplateService pileBillingTemplateService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private MemberBasicInfoMapper memberBasicInfoMapper;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private SimCardService simCardService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IPileBasicInfoService pileBasicInfoService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private WechatPayService wechatPayService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IOrderBasicInfoService orderBasicInfoService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private WxpayCallbackRecordService wxpayCallbackRecordService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private WxAppletRemoteService wxAppletRemoteService;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private RedisCache redisCache;
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IPileAuthCardService pileAuthCardService;
|
2023-04-01 15:33:36 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private LianLianService lianLianService;
|
2023-05-10 08:49:01 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IMemberTransactionRecordService memberTransactionRecordService;
|
2023-05-30 15:02:57 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IMemberPlateNumberRelationService memberPlateNumberRelationService;
|
2023-06-12 17:38:16 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
static final String MAC_KEY = "53TtFpc4gdVZbF3x";
|
2023-05-10 08:49:01 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
static final String ALGORITHM_MAC = "HmacMD5";
|
2023-05-10 08:49:01 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private AdapayCallbackRecordService adapayCallbackRecordService;
|
2023-05-27 11:20:43 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IAdapayRefundRecordService adapayRefundRecordService;
|
2023-05-31 16:05:18 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private AdapayService adapayService;
|
2023-06-15 14:06:33 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private AMapService aMapService;
|
2023-06-17 10:37:02 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IPileConnectorInfoService pileConnectorInfoService;
|
2023-07-08 15:37:53 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private TransactionRecordsRequestHandler transactionRecordsRequestHandler;
|
2023-07-08 09:58:20 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private IMemberBasicInfoService memberBasicInfoService;
|
2023-07-08 11:33:45 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private ClearingWithdrawInfoService clearingWithdrawInfoService;
|
2023-08-01 16:16:34 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private OrderPileOccupyService orderPileOccupyService;
|
2023-08-08 08:43:50 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
private LTYTService ltytService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
private IPileMerchantInfoService pileMerchantInfoService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
private MemberAdapayRecordService memberAdapayRecordService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
private TransactionService transactionService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
private OrderPayRecordService orderPayRecordService;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 单元测试,测试订单流程
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testTheOrderProcess() throws Exception {
|
|
|
|
|
|
// 生成订单
|
|
|
|
|
|
// OrderBasicInfo orderBasicInfo = generateAnOrder();
|
|
|
|
|
|
// System.out.println(orderBasicInfo);
|
|
|
|
|
|
// // 支付订单
|
|
|
|
|
|
// int a = payOrder(orderBasicInfo);
|
|
|
|
|
|
// System.out.println(a);
|
|
|
|
|
|
// 结算订单
|
|
|
|
|
|
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode("C46006767636");
|
|
|
|
|
|
settleOrder(orderBasicInfo);
|
|
|
|
|
|
// 订单退款
|
|
|
|
|
|
BigDecimal payAmount = orderBasicInfo.getPayAmount();
|
|
|
|
|
|
BigDecimal settleAmount = orderBasicInfo.getSettleAmount();
|
|
|
|
|
|
|
|
|
|
|
|
BigDecimal refundAmt = payAmount.subtract(settleAmount);
|
|
|
|
|
|
// 延时分账的,可以部分解冻
|
|
|
|
|
|
memberAdapayRecordService.updateRefundAmountFromFreezeAmount("1234", refundAmt);
|
|
|
|
|
|
|
|
|
|
|
|
// 实时分账,全部解冻
|
|
|
|
|
|
// memberAdapayRecordService.unfreezeAmountAndUpdateSpendAmount("test01", payAmount, refundAmt);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 生成订单
|
|
|
|
|
|
private OrderBasicInfo generateAnOrder() throws ParseException {
|
|
|
|
|
|
GenerateOrderDTO dto = new GenerateOrderDTO();
|
|
|
|
|
|
PileConnectorDetailVO vo = new PileConnectorDetailVO();
|
|
|
|
|
|
vo.setStationId("2");
|
|
|
|
|
|
dto.setPileConnector(vo);
|
|
|
|
|
|
|
|
|
|
|
|
dto.setMemberId("1");
|
|
|
|
|
|
dto.setStartMode("1");
|
|
|
|
|
|
dto.setPayMode("4");
|
|
|
|
|
|
dto.setPileSn("88000000000001");
|
|
|
|
|
|
dto.setConnectorCode("01");
|
|
|
|
|
|
dto.setChargeAmount(new BigDecimal("10"));
|
|
|
|
|
|
// 查询充电桩的计费模板
|
|
|
|
|
|
BillingTemplateVO billingTemplateVO = pileBillingTemplateService.selectBillingTemplateDetailByPileSn(dto.getPileSn());
|
|
|
|
|
|
dto.setBillingTemplate(billingTemplateVO);
|
|
|
|
|
|
OrderBasicInfo orderBasicInfo = orderBasicInfoService.saveOrder2Database(dto);
|
|
|
|
|
|
|
|
|
|
|
|
return orderBasicInfo;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 支付订单
|
|
|
|
|
|
private int payOrder(OrderBasicInfo orderBasicInfo) throws Exception {
|
|
|
|
|
|
// PayOrderDTO dto = new PayOrderDTO();
|
|
|
|
|
|
// dto.setMemberId(orderBasicInfo.getMemberId());
|
|
|
|
|
|
// dto.setOrderCode(orderBasicInfo.getOrderCode());
|
|
|
|
|
|
// dto.setStartMode(orderBasicInfo.getStartMode());
|
|
|
|
|
|
// dto.setPayMode(orderBasicInfo.getPayMode());
|
|
|
|
|
|
// dto.setPayAmount(orderBasicInfo.getPayAmount());
|
|
|
|
|
|
//
|
|
|
|
|
|
// Map<String, Object> map = orderBasicInfoService.payOrder(dto);
|
|
|
|
|
|
// return map;
|
|
|
|
|
|
String paymentId = "1234";
|
|
|
|
|
|
BigDecimal amount = orderBasicInfo.getPayAmount();
|
|
|
|
|
|
String orderCode = orderBasicInfo.getOrderCode();
|
|
|
|
|
|
|
|
|
|
|
|
JSONObject json = new JSONObject();
|
|
|
|
|
|
json.put("paymentId", paymentId);
|
|
|
|
|
|
json.put("amount", amount);
|
|
|
|
|
|
|
|
|
|
|
|
// 记录订单支付流水
|
|
|
|
|
|
OrderPayRecord orderPayRecord = OrderPayRecord.builder()
|
|
|
|
|
|
.orderCode(orderCode)
|
|
|
|
|
|
.payMode(OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())
|
|
|
|
|
|
.payAmount(amount)
|
|
|
|
|
|
.acquirer(AcquirerEnum.ADAPAY.getValue())
|
|
|
|
|
|
.deductionRecord(json.toJSONString())
|
|
|
|
|
|
.createBy(null)
|
2023-08-31 10:30:05 +08:00
|
|
|
|
.delFlag(DelFlagEnum.NORMAL.getValue())
|
2023-08-30 11:02:18 +08:00
|
|
|
|
.build();
|
|
|
|
|
|
orderPayRecordService.batchInsert(Lists.newArrayList(orderPayRecord));
|
|
|
|
|
|
|
|
|
|
|
|
// 更新冻结金额 支付成功后全部冻结
|
|
|
|
|
|
memberAdapayRecordService.updateFreezeAmount(paymentId, amount);
|
|
|
|
|
|
|
|
|
|
|
|
// 支付订单成功
|
|
|
|
|
|
PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder()
|
|
|
|
|
|
.orderCode(orderCode)
|
|
|
|
|
|
.payAmount(amount)
|
|
|
|
|
|
.payMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())
|
|
|
|
|
|
.acquirer(AcquirerEnum.ADAPAY.getValue())
|
|
|
|
|
|
.build();
|
|
|
|
|
|
// 订单支付成功 支付回调
|
|
|
|
|
|
// orderBasicInfoService.payOrderSuccessCallback(callbackDTO);
|
|
|
|
|
|
OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(callbackDTO.getOrderCode());
|
|
|
|
|
|
|
|
|
|
|
|
// 修改订单
|
|
|
|
|
|
orderInfo.setPayMode(callbackDTO.getPayMode());
|
|
|
|
|
|
orderInfo.setPayStatus(Constants.ONE);
|
|
|
|
|
|
orderInfo.setPayAmount(callbackDTO.getPayAmount());
|
|
|
|
|
|
orderInfo.setPayTime(new Date());
|
|
|
|
|
|
orderInfo.setChargeStartTime(new Date());
|
|
|
|
|
|
orderInfo.setOrderStatus(OrderStatusEnum.IN_THE_CHARGING.getValue());
|
|
|
|
|
|
return orderBasicInfoService.updateOrderBasicInfo(orderInfo);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 结算订单
|
|
|
|
|
|
private void settleOrder(OrderBasicInfo orderBasicInfo) {
|
|
|
|
|
|
TransactionRecordsData data = TransactionRecordsData.builder()
|
|
|
|
|
|
.transactionCode(orderBasicInfo.getTransactionCode())
|
|
|
|
|
|
.pileSn(orderBasicInfo.getPileSn())
|
|
|
|
|
|
.connectorCode(orderBasicInfo.getConnectorCode())
|
|
|
|
|
|
.startTime("2023-03-10 17:10:24")
|
|
|
|
|
|
.endTime("2023-03-10 17:10:46")
|
|
|
|
|
|
.sharpPrice("1.10000")
|
|
|
|
|
|
.sharpUsedElectricity("2.0000")
|
|
|
|
|
|
.sharpAmount("2.2000")
|
|
|
|
|
|
.peakPrice("1.20000")
|
|
|
|
|
|
.peakUsedElectricity("0")
|
|
|
|
|
|
.peakAmount("0")
|
|
|
|
|
|
.flatPrice("1.30000")
|
|
|
|
|
|
.flatUsedElectricity("0")
|
|
|
|
|
|
.flatAmount("0")
|
|
|
|
|
|
.valleyPrice("1.40000")
|
|
|
|
|
|
.valleyUsedElectricity("0")
|
|
|
|
|
|
.valleyAmount("0")
|
|
|
|
|
|
.totalElectricity("2")
|
|
|
|
|
|
.consumptionAmount("5.3000")
|
|
|
|
|
|
.vinCode("\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000")
|
|
|
|
|
|
.transactionIdentifier("01")
|
|
|
|
|
|
.transactionTime("2023-03-10 17:10:46")
|
|
|
|
|
|
.stopReasonMsg("结束充电,APP远程停止")
|
|
|
|
|
|
.logicCard("0")
|
|
|
|
|
|
.createTime(new Date())
|
|
|
|
|
|
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
|
|
// orderBasicInfoService.settleOrder(data, orderBasicInfo);
|
|
|
|
|
|
// 获取更新数据后的orderBasicInfo对象
|
|
|
|
|
|
orderBasicInfoService.returnUpdateOrderBasicInfo(orderBasicInfo, data);
|
|
|
|
|
|
// 获取更新数据后的orderDetail对象/更新订单详情 查询订单详情 修改订单数据
|
|
|
|
|
|
OrderDetail orderDetail = orderBasicInfoService.returnUpdateOrderDetail(orderBasicInfo, data);
|
|
|
|
|
|
// 更新数据库
|
|
|
|
|
|
OrderTransactionDTO dto = new OrderTransactionDTO();
|
|
|
|
|
|
dto.setOrderBasicInfo(orderBasicInfo);
|
|
|
|
|
|
dto.setOrderDetail(orderDetail);
|
|
|
|
|
|
transactionService.doUpdateOrder(dto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 测试多笔支付情况,解冻部分金额
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void calculateUnfreezeAmountTest() {
|
2023-08-31 18:35:16 +08:00
|
|
|
|
BigDecimal orderAmount = new BigDecimal("0.99");
|
2023-08-30 11:02:18 +08:00
|
|
|
|
List<OrderPayRecord> payRecordList = Lists.newArrayList();
|
|
|
|
|
|
// 第一笔支付记录
|
|
|
|
|
|
JSONObject jsonObject = new JSONObject();
|
2023-08-31 18:35:16 +08:00
|
|
|
|
jsonObject.put("paymentId", "002212023083114213410543206907226374144");
|
|
|
|
|
|
jsonObject.put("amount", "0.98");
|
2023-08-30 11:02:18 +08:00
|
|
|
|
OrderPayRecord build = OrderPayRecord.builder()
|
2023-08-31 18:35:16 +08:00
|
|
|
|
.payAmount(new BigDecimal("0.98"))
|
2023-08-30 11:02:18 +08:00
|
|
|
|
.deductionRecord(jsonObject.toJSONString())
|
|
|
|
|
|
.build();
|
|
|
|
|
|
payRecordList.add(build);
|
|
|
|
|
|
|
|
|
|
|
|
// 第二笔支付记录
|
|
|
|
|
|
JSONObject jsonObject2 = new JSONObject();
|
2023-08-31 18:35:16 +08:00
|
|
|
|
jsonObject2.put("paymentId", "002212023083114410510543211818773135360");
|
|
|
|
|
|
jsonObject2.put("amount", "1.00");
|
2023-08-30 11:02:18 +08:00
|
|
|
|
OrderPayRecord build2 = OrderPayRecord.builder()
|
2023-08-31 18:35:16 +08:00
|
|
|
|
.payAmount(new BigDecimal("1.00"))
|
2023-08-30 11:02:18 +08:00
|
|
|
|
.deductionRecord(jsonObject2.toJSONString())
|
|
|
|
|
|
.build();
|
|
|
|
|
|
payRecordList.add(build2);
|
|
|
|
|
|
|
|
|
|
|
|
// 第三笔支付记录
|
2023-08-31 18:35:16 +08:00
|
|
|
|
// JSONObject jsonObject3 = new JSONObject();
|
|
|
|
|
|
// jsonObject3.put("paymentId", "3");
|
|
|
|
|
|
// jsonObject3.put("amount", "10");
|
|
|
|
|
|
// OrderPayRecord build3 = OrderPayRecord.builder()
|
|
|
|
|
|
// .payAmount(new BigDecimal("10"))
|
|
|
|
|
|
// .deductionRecord(jsonObject3.toJSONString())
|
|
|
|
|
|
// .build();
|
|
|
|
|
|
// payRecordList.add(build3);
|
2023-08-30 11:02:18 +08:00
|
|
|
|
List<Map<String, Object>> maps = orderBasicInfoService.calculateUnfreezeAmount(orderAmount, payRecordList);
|
|
|
|
|
|
System.out.println(maps);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void unfreezeAmountAndUpdateSpendAmountTest() {
|
|
|
|
|
|
String paymentId = "123";
|
|
|
|
|
|
memberAdapayRecordService.updateRefundAmount(paymentId, new BigDecimal("5"));
|
|
|
|
|
|
// memberAdapayRecordService.updateRefundAmountFromFreezeAmount(paymentId, new BigDecimal("20"));
|
|
|
|
|
|
// BigDecimal unfreezeAmount = new BigDecimal("32");
|
|
|
|
|
|
// BigDecimal spendAmount = new BigDecimal("10");
|
|
|
|
|
|
// memberAdapayRecordService.unfreezeAmountAndUpdateSpendAmount(paymentId, unfreezeAmount, spendAmount);
|
|
|
|
|
|
// memberAdapayRecordService.updateRefundAmountFromFreezeAmount(paymentId, new BigDecimal("2"));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void getFirstLevelMerchantByMerchantIdTest() {
|
|
|
|
|
|
String merchantId = "13";
|
|
|
|
|
|
PileMerchantInfo merchantInfo = pileMerchantInfoService.getFirstLevelMerchantByMerchantId(merchantId);
|
|
|
|
|
|
System.out.println(JSON.toJSONString(merchantInfo));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void queryPaymentInfoTest() throws BaseAdaPayException {
|
|
|
|
|
|
String wechatAppId = "wxbb3e0d474569481d";
|
|
|
|
|
|
String paymentId = "002212023082514501110541039779091623936";
|
|
|
|
|
|
// 在完成初始化设置情况下,调用查询方法,获取 Payment 查询结果
|
|
|
|
|
|
Map<String, Object> response = Payment.query(paymentId, wechatAppId);
|
|
|
|
|
|
System.out.println(response);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 手动变更银行卡信息
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void createSettleAccountRequestTest() throws BaseAdaPayException {
|
|
|
|
|
|
SettleAccountDTO dto = new SettleAccountDTO();
|
2023-09-05 08:42:05 +08:00
|
|
|
|
dto.setCardId("31050180460000002469");
|
|
|
|
|
|
dto.setCardName("上海擎昆物业管理有限公司");
|
2023-08-31 10:29:17 +08:00
|
|
|
|
dto.setTelNo("18021373333");
|
2023-09-05 08:42:05 +08:00
|
|
|
|
dto.setBankCode("01050000");
|
2023-08-30 11:02:18 +08:00
|
|
|
|
dto.setBankAcctType("1");
|
2023-09-05 08:42:05 +08:00
|
|
|
|
dto.setProvCode("0031");
|
|
|
|
|
|
dto.setAreaCode("3100");
|
|
|
|
|
|
String adapayMemberId = "ACM80899105";
|
2023-08-30 11:02:18 +08:00
|
|
|
|
String wechatAppId = "wxbb3e0d474569481d";
|
|
|
|
|
|
adapayService.createSettleAccountRequest(dto, adapayMemberId, wechatAppId);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void createDeleteSettleAccountRequestTest() throws BaseAdaPayException {
|
|
|
|
|
|
String adapayMemberId = "ACM69424215";
|
|
|
|
|
|
String settleAccountId = "0498291998695360";
|
|
|
|
|
|
String wechatAppId = "wxbb3e0d474569481d";
|
|
|
|
|
|
adapayService.createDeleteSettleAccountRequest(adapayMemberId, settleAccountId, wechatAppId);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void queryDrawcashDetailTest() throws BaseAdaPayException {
|
|
|
|
|
|
String orderNo = "drawcash_1692339516947";
|
|
|
|
|
|
String wechatAppId = "wxbb3e0d474569481d";
|
|
|
|
|
|
DrawCashDetailVO drawCashDetailVO = adapayService.queryDrawCashDetail(orderNo, wechatAppId);
|
|
|
|
|
|
System.out.println(drawCashDetailVO);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void queryPaymentConfirmListTest() {
|
|
|
|
|
|
QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO();
|
|
|
|
|
|
dto.setWechatAppId("wxbb3e0d474569481d");
|
|
|
|
|
|
dto.setPaymentId("002212023081712452810538109291674042368");
|
|
|
|
|
|
QueryPaymentConfirmDetailResponse queryPaymentConfirmDetailResponse = adapayService.queryPaymentConfirmList(dto);
|
|
|
|
|
|
System.out.println(queryPaymentConfirmDetailResponse);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void queryAcctFlowListTest() {
|
|
|
|
|
|
QueryAcctFlowDTO dto = new QueryAcctFlowDTO();
|
|
|
|
|
|
try {
|
|
|
|
|
|
dto.setPageNo(1);
|
|
|
|
|
|
dto.setPageSize(100);
|
|
|
|
|
|
dto.setAcctType("01");
|
|
|
|
|
|
dto.setWechatAppId("wxbb3e0d474569481d");
|
|
|
|
|
|
dto.setAdapayMemberId("ACM69424215");
|
|
|
|
|
|
dto.setBeginDate("20230823");
|
|
|
|
|
|
dto.setEndDate("20230823");
|
|
|
|
|
|
adapayService.queryAcctFlowList(dto);
|
|
|
|
|
|
} catch (BaseAdaPayException e) {
|
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testCalculateTheBalanceDeductionAmount() {
|
|
|
|
|
|
String memberId = "123456";
|
|
|
|
|
|
BigDecimal amount = new BigDecimal("20");
|
|
|
|
|
|
|
|
|
|
|
|
List<BalanceDeductionAmountVO> resultList = Lists.newArrayList();
|
|
|
|
|
|
// 查询会员的余额充值记录 按照充值时间正序
|
|
|
|
|
|
List<MemberAdapayRecord> memberAdapayRecords = Lists.newArrayList();
|
|
|
|
|
|
memberAdapayRecords.add(MemberAdapayRecord.builder().paymentId("1").balanceAmt(new BigDecimal("50")).build());
|
|
|
|
|
|
memberAdapayRecords.add(MemberAdapayRecord.builder().paymentId("2").balanceAmt(new BigDecimal("60")).build());
|
|
|
|
|
|
memberAdapayRecords.add(MemberAdapayRecord.builder().paymentId("3").balanceAmt(new BigDecimal("10")).build());
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个临时金额等于消费金额
|
|
|
|
|
|
BigDecimal tempAmount = new BigDecimal(amount.toString());
|
|
|
|
|
|
for (MemberAdapayRecord memberAdapayRecord : memberAdapayRecords) {
|
|
|
|
|
|
// 该笔支付剩余金额 取出一笔判断是否剩余金额够支付订单消费吗
|
|
|
|
|
|
BigDecimal balanceAmt = memberAdapayRecord.getBalanceAmt();
|
|
|
|
|
|
// 该笔支付扣除金额
|
|
|
|
|
|
BigDecimal deductionAmount;
|
|
|
|
|
|
// 获取延时分账模式 延时分账的使用撤销方法退款,实时分账的使用退款方法
|
|
|
|
|
|
// AdapayCallbackRecord callbackRecord = adapayCallbackRecordService.selectByPaymentId(memberAdapayRecord.getPaymentId());
|
|
|
|
|
|
// String payMode = null;
|
|
|
|
|
|
// if (callbackRecord != null) {
|
|
|
|
|
|
// JSONObject expendJsonObject = JSON.parseObject(callbackRecord.getExpend());
|
|
|
|
|
|
// payMode = expendJsonObject.getString("payMode");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// 消费金额 - 剩余金额
|
|
|
|
|
|
tempAmount = tempAmount.subtract(balanceAmt);
|
|
|
|
|
|
if (tempAmount.compareTo(BigDecimal.ZERO) >= 0) {
|
|
|
|
|
|
// 计算以后,大于等于0,说明这笔支付剩余金额需要扣完
|
|
|
|
|
|
deductionAmount = balanceAmt;
|
|
|
|
|
|
BalanceDeductionAmountVO build = BalanceDeductionAmountVO.builder()
|
|
|
|
|
|
.memberId(memberId)
|
|
|
|
|
|
.paymentId(memberAdapayRecord.getPaymentId())
|
|
|
|
|
|
.deductionAmount(deductionAmount)
|
|
|
|
|
|
.build();
|
|
|
|
|
|
resultList.add(build);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 如果小于0,则说明剩余的钱用不完,扣除金额等于消费金额,并结束循环
|
|
|
|
|
|
deductionAmount = balanceAmt.add(tempAmount);
|
|
|
|
|
|
BalanceDeductionAmountVO build = BalanceDeductionAmountVO.builder()
|
|
|
|
|
|
.memberId(memberId)
|
|
|
|
|
|
.paymentId(memberAdapayRecord.getPaymentId())
|
|
|
|
|
|
.deductionAmount(deductionAmount)
|
|
|
|
|
|
.build();
|
|
|
|
|
|
resultList.add(build);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println(JSON.toJSONString(resultList));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testGenerateOccupyPileOrder() {
|
|
|
|
|
|
String memberId = "67569684";
|
|
|
|
|
|
String pileSn = "88230000000135";
|
|
|
|
|
|
String connectorCode = "01";
|
|
|
|
|
|
GenerateOccupyOrderDTO dto = new GenerateOccupyOrderDTO();
|
|
|
|
|
|
dto.setMemberId(memberId);
|
|
|
|
|
|
dto.setPileSn(pileSn);
|
|
|
|
|
|
dto.setConnectorCode(connectorCode);
|
|
|
|
|
|
|
|
|
|
|
|
orderPileOccupyService.generateOccupyPileOrder(dto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testStopOccupyPileOrder() {
|
|
|
|
|
|
String wechatAppId = "54135135";
|
|
|
|
|
|
AbstractAdapayConfig config = AdapayConfigFactory.getConfig(wechatAppId);
|
|
|
|
|
|
System.out.println(JSON.toJSONString(config));
|
|
|
|
|
|
|
|
|
|
|
|
String wechatAppId2 = "wxbb3e0d474569481d";
|
|
|
|
|
|
AbstractAdapayConfig config2 = AdapayConfigFactory.getConfig(wechatAppId2);
|
|
|
|
|
|
System.out.println(JSON.toJSONString(config2));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-09-08 14:26:13 +08:00
|
|
|
|
|
|
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
@Test
|
|
|
|
|
|
public void testCreateConfirmReverse() throws BaseAdaPayException {
|
2023-09-06 14:30:06 +08:00
|
|
|
|
String wechatAppId = "wxbb3e0d474569481d";
|
2023-08-30 11:02:18 +08:00
|
|
|
|
List<String> list = Lists.newArrayList();
|
2023-09-08 14:26:13 +08:00
|
|
|
|
list.add("002212023083011562610542807991444230144");
|
2023-09-06 14:30:06 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
for (String s : list) {
|
2023-09-06 14:30:06 +08:00
|
|
|
|
// 查询支付确认id
|
|
|
|
|
|
QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO();
|
|
|
|
|
|
dto.setPaymentId(s);
|
|
|
|
|
|
dto.setWechatAppId(wechatAppId);
|
|
|
|
|
|
QueryPaymentConfirmDetailResponse response = adapayService.queryPaymentConfirmList(dto);
|
|
|
|
|
|
if (response != null) {
|
|
|
|
|
|
List<QueryPaymentConfirmDetailResponse.PaymentConfirmInfo> confirms = response.getPaymentConfirms();
|
2023-09-08 14:26:13 +08:00
|
|
|
|
// System.out.println("支付id:" + s + ", 确认信息:" + JSON.toJSONString(confirms));
|
|
|
|
|
|
if (CollectionUtils.isEmpty(confirms)) {
|
|
|
|
|
|
for (QueryPaymentConfirmDetailResponse.PaymentConfirmInfo confirm : confirms) {
|
|
|
|
|
|
adapayService.createConfirmReverse(confirm.getId(), wechatAppId);
|
|
|
|
|
|
}
|
2023-09-06 14:30:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-08-30 11:02:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-09-08 14:26:13 +08:00
|
|
|
|
@Test
|
|
|
|
|
|
public void queryCreateConfirmReverse() throws BaseAdaPayException {
|
|
|
|
|
|
String wechatAppId = "wxbb3e0d474569481d";
|
|
|
|
|
|
List<String> list = getList();
|
|
|
|
|
|
|
|
|
|
|
|
List<String> resultList = Lists.newArrayList();
|
|
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
for (String s : list) {
|
2023-09-08 14:26:13 +08:00
|
|
|
|
// 查询支付确认id
|
|
|
|
|
|
QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO();
|
|
|
|
|
|
dto.setPaymentId(s);
|
|
|
|
|
|
dto.setWechatAppId(wechatAppId);
|
|
|
|
|
|
QueryPaymentConfirmDetailResponse response = adapayService.queryPaymentConfirmList(dto);
|
|
|
|
|
|
if (response != null) {
|
|
|
|
|
|
List<QueryPaymentConfirmDetailResponse.PaymentConfirmInfo> confirms = response.getPaymentConfirms();
|
|
|
|
|
|
// System.out.println("支付id:" + s + ", 确认信息:" + JSON.toJSONString(confirms));
|
|
|
|
|
|
if (CollectionUtils.isEmpty(confirms)) {
|
|
|
|
|
|
// for (QueryPaymentConfirmDetailResponse.PaymentConfirmInfo confirm : confirms) {
|
|
|
|
|
|
// adapayService.createConfirmReverse(confirm.getId(), wechatAppId);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// System.out.println("=================未分账:" + s);
|
|
|
|
|
|
resultList.add(s);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-08-30 11:02:18 +08:00
|
|
|
|
}
|
2023-09-08 14:26:13 +08:00
|
|
|
|
|
|
|
|
|
|
System.out.println("=================未分账:" + JSON.toJSONString(resultList));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<String> getList() {
|
|
|
|
|
|
List<String> list = Lists.newArrayList();
|
|
|
|
|
|
list.add("002212023082122593710539713398952996864");
|
|
|
|
|
|
list.add("002212023082123024110539714169830891520");
|
|
|
|
|
|
list.add("002212023082123142910539717140601888768");
|
|
|
|
|
|
list.add("002212023082123372510539722909052194816");
|
|
|
|
|
|
list.add("002212023082123470710539725351044243456");
|
|
|
|
|
|
list.add("002212023082123484410539725760516747264");
|
|
|
|
|
|
list.add("002212023082123574110539728009334247424");
|
|
|
|
|
|
list.add("002212023082200021910539729177292292096");
|
|
|
|
|
|
list.add("002212023082200101610539731176126074880");
|
|
|
|
|
|
list.add("002212023082200113610539731511562485760");
|
|
|
|
|
|
list.add("002212023082200194110539733549149569024");
|
|
|
|
|
|
list.add("002212023082200261310539735191135604736");
|
|
|
|
|
|
list.add("002212023082200425410539739389283454976");
|
|
|
|
|
|
list.add("002212023082200532910539742053588074496");
|
|
|
|
|
|
list.add("002212023082201174510539748159895711744");
|
|
|
|
|
|
list.add("002212023082201261910539750318006927360");
|
|
|
|
|
|
list.add("002212023082201321710539751819814522880");
|
|
|
|
|
|
list.add("002212023082201591410539758600068890624");
|
|
|
|
|
|
list.add("002212023082202101110539761353808310272");
|
|
|
|
|
|
list.add("002212023082202351810539767674794455040");
|
|
|
|
|
|
list.add("002212023082203055410539775379049992192");
|
|
|
|
|
|
list.add("002212023082203133810539777324513398784");
|
|
|
|
|
|
list.add("002212023082203214310539779359409344512");
|
|
|
|
|
|
list.add("002212023082203321810539782020471762944");
|
|
|
|
|
|
list.add("002212023082203360010539782952068624384");
|
|
|
|
|
|
list.add("002212023082203441210539785015010078720");
|
|
|
|
|
|
list.add("002212023082204434210539799990398775296");
|
|
|
|
|
|
list.add("002212023082206050110539820452093546496");
|
|
|
|
|
|
list.add("002212023082206364410539828435137515520");
|
|
|
|
|
|
list.add("002212023082206442410539830366131351552");
|
|
|
|
|
|
list.add("002212023082207035110539835258732883968");
|
|
|
|
|
|
list.add("002212023082207074910539836256041463808");
|
|
|
|
|
|
list.add("002212023082207333510539842743787339776");
|
|
|
|
|
|
list.add("002212023082207425310539845083050700800");
|
|
|
|
|
|
list.add("002212023082207562610539848491559272448");
|
|
|
|
|
|
list.add("002212023082208304610539857132314525696");
|
|
|
|
|
|
list.add("002212023082208562810539863600890277888");
|
|
|
|
|
|
list.add("002212023082208571410539863792269492224");
|
|
|
|
|
|
list.add("002212023082209004110539864660699435008");
|
|
|
|
|
|
list.add("002212023082209132610539867871295729664");
|
|
|
|
|
|
list.add("002212023082209144410539868196664668160");
|
|
|
|
|
|
list.add("002212023082209155810539868509287116800");
|
|
|
|
|
|
list.add("002212023082209165110539868731240763392");
|
|
|
|
|
|
list.add("002212023082209191710539869342785646592");
|
|
|
|
|
|
list.add("002212023082209425610539875293097197568");
|
|
|
|
|
|
list.add("002212023082209480710539876596501463040");
|
|
|
|
|
|
list.add("002212023082209524110539877745632575488");
|
|
|
|
|
|
list.add("002212023082210115910539882604954046464");
|
|
|
|
|
|
list.add("002212023082210140210539883119700148224");
|
|
|
|
|
|
list.add("002212023082210250010539885882464194560");
|
|
|
|
|
|
list.add("002212023082210404410539889838334595072");
|
|
|
|
|
|
list.add("002212023082210495310539892143265460224");
|
|
|
|
|
|
list.add("002212023082211084110539896874732539904");
|
|
|
|
|
|
list.add("002212023082211482710539906883408670720");
|
|
|
|
|
|
list.add("002212023082211501110539907318932615168");
|
|
|
|
|
|
list.add("002212023082211574210539909209038409728");
|
|
|
|
|
|
list.add("002212023082212061110539911342672998400");
|
|
|
|
|
|
list.add("002212023082212173610539914216333893632");
|
|
|
|
|
|
list.add("002212023082212234010539915743088791552");
|
|
|
|
|
|
list.add("002212023082212292410539917187655970816");
|
|
|
|
|
|
list.add("002212023082213010710539925167233642496");
|
|
|
|
|
|
list.add("002212023082213092510539927256017031168");
|
|
|
|
|
|
list.add("002212023082213272510539931787460362240");
|
|
|
|
|
|
list.add("002212023082213471310539936770370613248");
|
|
|
|
|
|
list.add("002212023082213490110539937221754114048");
|
|
|
|
|
|
list.add("002212023082213515110539937937901268992");
|
|
|
|
|
|
list.add("002212023082213540610539938503931875328");
|
|
|
|
|
|
list.add("002212023082213581310539939539301511168");
|
|
|
|
|
|
list.add("002212023082213595010539939946231664640");
|
|
|
|
|
|
list.add("002212023082214160610539944039725568000");
|
|
|
|
|
|
list.add("002212023082214220710539945550819774464");
|
|
|
|
|
|
list.add("002212023082214300510539947557195153409");
|
|
|
|
|
|
list.add("002212023082214373010539949424960524288");
|
|
|
|
|
|
list.add("002212023082214382810539949667861200896");
|
|
|
|
|
|
list.add("002212023082214565710539954318165315584");
|
|
|
|
|
|
list.add("002212023082215002510539955192153657344");
|
|
|
|
|
|
list.add("002212023082215011610539955404439719936");
|
|
|
|
|
|
list.add("002212023082215045010539956301032140800");
|
|
|
|
|
|
list.add("002212023082215195110539960080360091648");
|
|
|
|
|
|
list.add("002212023082215251410539961437065035776");
|
|
|
|
|
|
list.add("002212023082215344810539963845132587008");
|
|
|
|
|
|
list.add("002212023082215374710539964595083952128");
|
|
|
|
|
|
list.add("002212023082215431010539965947703627776");
|
|
|
|
|
|
list.add("002212023082215475110539967127934636032");
|
|
|
|
|
|
list.add("002212023082215510510539967942821072896");
|
|
|
|
|
|
list.add("002212023082215592510539970040406396928");
|
|
|
|
|
|
list.add("002212023082216004810539970389333430272");
|
|
|
|
|
|
list.add("002212023082216104710539972901704716288");
|
|
|
|
|
|
list.add("002212023082216122010539973290429767680");
|
|
|
|
|
|
list.add("002212023082216131110539973503752093696");
|
|
|
|
|
|
list.add("002212023082216171610539974531894312960");
|
|
|
|
|
|
list.add("002212023082216335010539978698548592640");
|
|
|
|
|
|
list.add("002212023082216385910539979994410762240");
|
|
|
|
|
|
list.add("002212023082216501110539982814144872448");
|
|
|
|
|
|
list.add("002212023082216532010539983607666851840");
|
|
|
|
|
|
list.add("002212023082217040110539986295140368384");
|
|
|
|
|
|
list.add("002212023082217041710539986362796965888");
|
|
|
|
|
|
list.add("002212023082217055610539986776841179136");
|
|
|
|
|
|
list.add("002212023082217113110539988182371831808");
|
|
|
|
|
|
list.add("002212023082217231310539991126552530944");
|
|
|
|
|
|
list.add("002212023082217260910539991867724496896");
|
|
|
|
|
|
list.add("002212023082217270710539992110564442112");
|
|
|
|
|
|
list.add("002212023082217422410539995954179489792");
|
|
|
|
|
|
list.add("002212023082217450310539996621220626432");
|
|
|
|
|
|
list.add("002212023082217501010539997909783719936");
|
|
|
|
|
|
list.add("002212023082218103210540003033714151424");
|
|
|
|
|
|
list.add("002212023082218140610540003931906682880");
|
|
|
|
|
|
list.add("002212023082218254010540006843846746112");
|
|
|
|
|
|
list.add("002212023082218322710540008551997046784");
|
|
|
|
|
|
list.add("002212023082218372210540009789619073024");
|
|
|
|
|
|
list.add("002212023082218412310540010798147080192");
|
|
|
|
|
|
list.add("002212023082218442010540011542187528192");
|
|
|
|
|
|
list.add("002212023082218493610540012867469594624");
|
|
|
|
|
|
list.add("002212023082218592510540015339366404096");
|
|
|
|
|
|
list.add("002212023082219055110540016957270884352");
|
|
|
|
|
|
list.add("002212023082219105410540018227752357888");
|
|
|
|
|
|
list.add("002212023082219131710540018828729012224");
|
|
|
|
|
|
list.add("002212023082219164610540019704228556800");
|
|
|
|
|
|
list.add("002212023082219232310540021368787632128");
|
|
|
|
|
|
list.add("002212023082219384810540025250569670656");
|
|
|
|
|
|
list.add("002212023082219463510540027206972981248");
|
|
|
|
|
|
list.add("002212023082220034710540031534464491520");
|
|
|
|
|
|
list.add("002212023082220205910540035865085984768");
|
|
|
|
|
|
list.add("002212023082220330310540038900521172992");
|
|
|
|
|
|
list.add("002212023082221031210540046489453428736");
|
|
|
|
|
|
list.add("002212023082221135510540049186222059520");
|
|
|
|
|
|
list.add("002212023082221261310540052281828327424");
|
|
|
|
|
|
list.add("002212023082221335310540054210822291456");
|
|
|
|
|
|
list.add("002212023082221372010540055077896568832");
|
|
|
|
|
|
list.add("002212023082221440810540056788037525504");
|
|
|
|
|
|
list.add("002212023082221535710540059261011746816");
|
|
|
|
|
|
list.add("002212023082222075210540062764186546176");
|
|
|
|
|
|
list.add("002212023082222110710540063579692240896");
|
|
|
|
|
|
list.add("002212023082222111010540063594733015040");
|
|
|
|
|
|
list.add("002212023082222295610540068313862164480");
|
|
|
|
|
|
list.add("002212023082222374610540070286296678400");
|
|
|
|
|
|
list.add("002212023082222375810540070337241493504");
|
|
|
|
|
|
list.add("002212023082222422510540071456056377344");
|
|
|
|
|
|
list.add("002212023082222441210540071905909784576");
|
|
|
|
|
|
list.add("002212023082223062210540077482797268992");
|
|
|
|
|
|
list.add("002212023082223130410540079169399930880");
|
|
|
|
|
|
list.add("002212023082223454810540087407167188992");
|
|
|
|
|
|
list.add("002212023082300105110540093714048036864");
|
|
|
|
|
|
list.add("002212023082300231210540096821220589568");
|
|
|
|
|
|
list.add("002212023082300500110540103567441387520");
|
|
|
|
|
|
list.add("002212023082300502210540103655764422656");
|
|
|
|
|
|
list.add("002212023082300540510540104592244072448");
|
|
|
|
|
|
list.add("002212023082300545510540104801652469760");
|
|
|
|
|
|
list.add("002212023082300552810540104939250307072");
|
|
|
|
|
|
list.add("002212023082300555010540105033538404352");
|
|
|
|
|
|
list.add("002212023082301030510540106858521411584");
|
|
|
|
|
|
list.add("002212023082301154110540110027049832448");
|
|
|
|
|
|
list.add("002212023082301402010540116232310280192");
|
|
|
|
|
|
list.add("002212023082302034910540122140094926848");
|
|
|
|
|
|
list.add("002212023082302070410540122960534065152");
|
|
|
|
|
|
list.add("002212023082302584710540135976118439936");
|
|
|
|
|
|
list.add("002212023082303040010540137286738276352");
|
|
|
|
|
|
list.add("002212023082303113510540139196941258752");
|
|
|
|
|
|
list.add("002212023082303135210540139770240643072");
|
|
|
|
|
|
list.add("002212023082303181410540140868287660032");
|
|
|
|
|
|
list.add("002212023082303264210540142998798827520");
|
|
|
|
|
|
list.add("002212023082303311810540144158174244864");
|
|
|
|
|
|
list.add("002212023082305011210540166780886339584");
|
|
|
|
|
|
list.add("002212023082305492010540178895801847808");
|
|
|
|
|
|
list.add("002212023082306165110540185820000989184");
|
|
|
|
|
|
list.add("002212023082306311310540189435313074176");
|
|
|
|
|
|
list.add("002212023082307110210540199456680103936");
|
|
|
|
|
|
list.add("002212023082307284210540203900019130368");
|
|
|
|
|
|
list.add("002212023082308044510540212971706298368");
|
|
|
|
|
|
list.add("002212023082308390810540221628127371264");
|
|
|
|
|
|
list.add("002212023082308453910540223264743211008");
|
|
|
|
|
|
list.add("002212023082309002410540226976857440256");
|
|
|
|
|
|
list.add("002212023082309355810540235927791767552");
|
|
|
|
|
|
list.add("002212023082309415110540237407599034368");
|
|
|
|
|
|
list.add("002212023082309491910540239289421811712");
|
|
|
|
|
|
list.add("002212023082309501210540239511228760064");
|
|
|
|
|
|
list.add("002212023082310211710540247334108049408");
|
|
|
|
|
|
list.add("002212023082310260410540248536285106176");
|
|
|
|
|
|
list.add("002212023082310504310540254741864742912");
|
|
|
|
|
|
list.add("002212023082310510410540254829003034624");
|
|
|
|
|
|
list.add("002212023082311002110540257165868175360");
|
|
|
|
|
|
list.add("002212023082311130810540260381821652992");
|
|
|
|
|
|
list.add("002212023082311415110540267607832674304");
|
|
|
|
|
|
list.add("002212023082312013110540272559194263552");
|
|
|
|
|
|
list.add("002212023082312104010540274859419185152");
|
|
|
|
|
|
list.add("002212023082312144610540275894099013632");
|
|
|
|
|
|
list.add("002212023082312165810540276444265512960");
|
|
|
|
|
|
list.add("002212023082312271310540279026154024960");
|
|
|
|
|
|
list.add("002212023082312460910540283790828400640");
|
|
|
|
|
|
list.add("002212023082312465610540283987930271744");
|
|
|
|
|
|
list.add("002212023082313003610540287428291907584");
|
|
|
|
|
|
list.add("002212023082313035010540288241828810752");
|
|
|
|
|
|
list.add("002212023082313050910540288570673659904");
|
|
|
|
|
|
list.add("002212023082313081810540289363426832384");
|
|
|
|
|
|
list.add("002212023082313224810540293011724193792");
|
|
|
|
|
|
list.add("002212023082313293110540294704613572608");
|
|
|
|
|
|
list.add("002212023082313382510540296942093258752");
|
|
|
|
|
|
list.add("002212023082313444310540298528233373696");
|
|
|
|
|
|
list.add("002212023082313464410540299037026971648");
|
|
|
|
|
|
list.add("002212023082314031910540303208861728768");
|
|
|
|
|
|
list.add("002212023082314044710540303578906066944");
|
|
|
|
|
|
list.add("002212023082314431010540313239304720384");
|
|
|
|
|
|
list.add("002212023082314440510540313469279551488");
|
|
|
|
|
|
list.add("002212023082314515410540315434770649088");
|
|
|
|
|
|
list.add("002212023082314534010540315878721228800");
|
|
|
|
|
|
list.add("002212023082314535510540315944957399040");
|
|
|
|
|
|
list.add("002212023082314543610540316117350789120");
|
|
|
|
|
|
list.add("002212023082314544710540316161480232960");
|
|
|
|
|
|
list.add("002212023082315045810540318725931053056");
|
|
|
|
|
|
list.add("002212023082315171910540321834196701184");
|
|
|
|
|
|
list.add("002212023082315260210540324026228297728");
|
|
|
|
|
|
list.add("002212023082315345910540326276310859776");
|
|
|
|
|
|
list.add("002212023082315371610540326851329699840");
|
|
|
|
|
|
list.add("002212023082315392910540327411599007744");
|
|
|
|
|
|
list.add("002212023082315472410540329402146009088");
|
|
|
|
|
|
list.add("002212023082315483510540329700354584576");
|
|
|
|
|
|
list.add("002212023082315505810540330300375748608");
|
|
|
|
|
|
list.add("002212023082315560610540331594334498816");
|
|
|
|
|
|
list.add("002212023082316084010540334755069718528");
|
|
|
|
|
|
list.add("002212023082316132310540335941837697024");
|
|
|
|
|
|
list.add("002212023082316143110540336225979019264");
|
|
|
|
|
|
list.add("002212023082316150710540336378614112256");
|
|
|
|
|
|
list.add("002212023082316273410540339509233610752");
|
|
|
|
|
|
list.add("002212023082316345910540341379056578560");
|
|
|
|
|
|
list.add("002212023082316364910540341838363398144");
|
|
|
|
|
|
list.add("002212023082316423210540343276393353216");
|
|
|
|
|
|
list.add("002212023082316534510540346101941944320");
|
|
|
|
|
|
list.add("002212023082317024410540348360540893184");
|
|
|
|
|
|
list.add("002212023082317030810540348463733723136");
|
|
|
|
|
|
list.add("002212023082317143910540351358277271552");
|
|
|
|
|
|
list.add("002212023082317204710540352902300094464");
|
|
|
|
|
|
list.add("002212023082317394710540357684117032960");
|
|
|
|
|
|
list.add("002212023082317452310540359093882269696");
|
|
|
|
|
|
list.add("002212023082317533210540361144904093696");
|
|
|
|
|
|
list.add("002212023082317554810540361716218875904");
|
|
|
|
|
|
list.add("002212023082318095010540365246300487680");
|
|
|
|
|
|
list.add("002212023082318164210540366974241488896");
|
|
|
|
|
|
list.add("002212023082318201910540367883730341888");
|
|
|
|
|
|
list.add("002212023082318290610540370095818043392");
|
|
|
|
|
|
list.add("002212023082318372410540372184538529792");
|
|
|
|
|
|
list.add("002212023082318483110540374983789064192");
|
|
|
|
|
|
list.add("002212023082318545610540376599114977281");
|
|
|
|
|
|
list.add("002212023082319085810540380129298497536");
|
|
|
|
|
|
list.add("002212023082319105610540380624605458432");
|
|
|
|
|
|
list.add("002212023082319113010540380766621384704");
|
|
|
|
|
|
list.add("002212023082319353110540386811953205248");
|
|
|
|
|
|
list.add("002212023082320103710540395645090152448");
|
|
|
|
|
|
list.add("002212023082320231010540398802976264192");
|
|
|
|
|
|
list.add("002212023082320401610540403105904103424");
|
|
|
|
|
|
list.add("002212023082320445610540404279069298688");
|
|
|
|
|
|
list.add("002212023082320504910540405760125612032");
|
|
|
|
|
|
list.add("002212023082321221210540413659689615360");
|
|
|
|
|
|
list.add("002212023082321290110540415374566510592");
|
|
|
|
|
|
list.add("002212023082321303510540415769279877120");
|
|
|
|
|
|
list.add("002212023082321310310540415884343394304");
|
|
|
|
|
|
list.add("002212023082321383110540417762808553472");
|
|
|
|
|
|
list.add("002212023082321423210540418775404695552");
|
|
|
|
|
|
list.add("002212023082321575310540422636449808384");
|
|
|
|
|
|
list.add("002212023082322424110540433913690030080");
|
|
|
|
|
|
list.add("002212023082322472810540435114803777536");
|
|
|
|
|
|
list.add("002212023082322480310540435261440471040");
|
|
|
|
|
|
list.add("002212023082322565010540437472735461376");
|
|
|
|
|
|
list.add("002212023082322574710540437710480494592");
|
|
|
|
|
|
list.add("002212023082323100110540440791374811136");
|
|
|
|
|
|
list.add("002212023082323104110540440958546018304");
|
|
|
|
|
|
list.add("002212023082323123410540441434699485184");
|
|
|
|
|
|
list.add("002212023082323142610540441901752012800");
|
|
|
|
|
|
list.add("002212023082323204110540443477107429376");
|
|
|
|
|
|
list.add("002212023082323325310540446543702196224");
|
|
|
|
|
|
list.add("002212023082400262710540460024614682624");
|
|
|
|
|
|
list.add("002212023082400283910540460578351247360");
|
|
|
|
|
|
list.add("002212023082400355010540462386804051968");
|
|
|
|
|
|
list.add("002212023082400384110540463104650887168");
|
|
|
|
|
|
list.add("002212023082400425610540464175978565632");
|
|
|
|
|
|
list.add("002212023082400581910540468045184483328");
|
|
|
|
|
|
list.add("002212023082401110010540471238958419968");
|
|
|
|
|
|
list.add("002212023082401231410540474316404572160");
|
|
|
|
|
|
list.add("002212023082401363110540477661047607296");
|
|
|
|
|
|
list.add("002212023082401574310540482993852317696");
|
|
|
|
|
|
list.add("002212023082402012110540483909985579008");
|
|
|
|
|
|
list.add("002212023082402014910540484026867306496");
|
|
|
|
|
|
list.add("002212023082402050310540484837930270720");
|
|
|
|
|
|
list.add("002212023082402504110540496322268299264");
|
|
|
|
|
|
list.add("002212023082402505510540496380994617344");
|
|
|
|
|
|
list.add("002212023082403101210540501235740602368");
|
|
|
|
|
|
list.add("002212023082403152410540502544745775104");
|
|
|
|
|
|
list.add("002212023082403555810540512753106092032");
|
|
|
|
|
|
list.add("002212023082406184210540548670889840640");
|
|
|
|
|
|
list.add("002212023082406362710540553139987304448");
|
|
|
|
|
|
list.add("002212023082406480210540556055386599424");
|
|
|
|
|
|
list.add("002212023082406563710540558215600328704");
|
|
|
|
|
|
list.add("002212023082407015010540559525790679040");
|
|
|
|
|
|
list.add("002212023082407212910540564473850724352");
|
|
|
|
|
|
list.add("002212023082407425610540569869112913920");
|
|
|
|
|
|
list.add("002212023082407532810540572520432193536");
|
|
|
|
|
|
list.add("002212023082408041810540575249364934656");
|
|
|
|
|
|
list.add("002212023082408195010540579158548361216");
|
|
|
|
|
|
list.add("002212023082408294010540581631680561152");
|
|
|
|
|
|
list.add("002212023082408345110540582934792556544");
|
|
|
|
|
|
list.add("002212023082409062910540590896171495424");
|
|
|
|
|
|
list.add("002212023082410111010540607174171611137");
|
|
|
|
|
|
list.add("002212023082410120610540607411819008000");
|
|
|
|
|
|
list.add("002212023082410191410540609203115839488");
|
|
|
|
|
|
list.add("002212023082410331410540612728692400128");
|
|
|
|
|
|
list.add("002212023082410353110540613302673395712");
|
|
|
|
|
|
list.add("002212023082410494810540616897573048320");
|
|
|
|
|
|
list.add("002212023082410504310540617128387096576");
|
|
|
|
|
|
list.add("002212023082411055310540620943836594176");
|
|
|
|
|
|
list.add("002212023082411154010540623406814613504");
|
|
|
|
|
|
list.add("002212023082411183010540624119747674112");
|
|
|
|
|
|
list.add("002212023082411204110540624669585330176");
|
|
|
|
|
|
list.add("002212023082411285210540626729196892160");
|
|
|
|
|
|
list.add("002212023082411531010540632842672689152");
|
|
|
|
|
|
list.add("002212023082412085410540636803011522560");
|
|
|
|
|
|
list.add("002212023082412221610540640168371859456");
|
|
|
|
|
|
list.add("002212023082412342010540643203816001536");
|
|
|
|
|
|
list.add("002212023082412584710540649358305099776");
|
|
|
|
|
|
list.add("002212023082413123110540652812401631232");
|
|
|
|
|
|
list.add("002212023082413355110540658687069642752");
|
|
|
|
|
|
list.add("002212023082413494810540662196345933824");
|
|
|
|
|
|
list.add("002212023082413553010540663629457145856");
|
|
|
|
|
|
list.add("002212023082414045710540666010344423424");
|
|
|
|
|
|
list.add("002212023082414063210540666405108477952");
|
|
|
|
|
|
list.add("002212023082414120710540667811302363136");
|
|
|
|
|
|
list.add("002212023082414164710540668986362073088");
|
|
|
|
|
|
list.add("002212023082414565710540679093217038336");
|
|
|
|
|
|
list.add("002212023082415125210540683102276628480");
|
|
|
|
|
|
list.add("002212023082415144610540683579100479488");
|
|
|
|
|
|
list.add("002212023082415172410540684239942434816");
|
|
|
|
|
|
list.add("002212023082415282110540686994692472832");
|
|
|
|
|
|
list.add("002212023082415293110540687289872961536");
|
|
|
|
|
|
list.add("002212023082415364810540689124561670144");
|
|
|
|
|
|
list.add("002212023082415375210540689392038330368");
|
|
|
|
|
|
list.add("002212023082415400510540689948966379520");
|
|
|
|
|
|
list.add("002212023082415453810540691346797903872");
|
|
|
|
|
|
list.add("002212023082415491610540692260848992256");
|
|
|
|
|
|
list.add("002212023082415495810540692434993274880");
|
|
|
|
|
|
list.add("002212023082416003910540695127329419264");
|
|
|
|
|
|
list.add("002212023082416215010540700457061072896");
|
|
|
|
|
|
list.add("002212023082416242210540701092521594880");
|
|
|
|
|
|
list.add("002212023082416530010540708301318111232");
|
|
|
|
|
|
list.add("002212023082416542610540708661279080448");
|
|
|
|
|
|
list.add("002212023082416585310540709781760622592");
|
|
|
|
|
|
list.add("002212023082416594310540709989820035072");
|
|
|
|
|
|
list.add("002212023082417361510540719185852026880");
|
|
|
|
|
|
list.add("002212023082418074010540727089666904064");
|
|
|
|
|
|
list.add("002212023082418090110540727431379701760");
|
|
|
|
|
|
list.add("002212023082418195010540730152325369856");
|
|
|
|
|
|
list.add("002212023082418210210540730453938745344");
|
|
|
|
|
|
list.add("002212023082418281010540732248632897536");
|
|
|
|
|
|
list.add("002212023082419413610540750728586313728");
|
|
|
|
|
|
list.add("002212023082419430510540751100395991040");
|
|
|
|
|
|
list.add("002212023082419434710540751279814758400");
|
|
|
|
|
|
list.add("002212023082419573810540754762623369216");
|
|
|
|
|
|
list.add("002212023082420014010540755777460387840");
|
|
|
|
|
|
list.add("002212023082420053910540756782588461056");
|
|
|
|
|
|
list.add("002212023082420110910540758167340077056");
|
|
|
|
|
|
list.add("002212023082420131910540758711152562176");
|
|
|
|
|
|
list.add("002212023082420175610540759872602820608");
|
|
|
|
|
|
list.add("002212023082420183310540760029683507200");
|
|
|
|
|
|
list.add("002212023082420234910540761351887335424");
|
|
|
|
|
|
list.add("002212023082420241510540761462071902208");
|
|
|
|
|
|
list.add("002212023082420484110540767612045615104");
|
|
|
|
|
|
list.add("002212023082420491710540767762494148608");
|
|
|
|
|
|
list.add("002212023082420531010540768737901690880");
|
|
|
|
|
|
list.add("002212023082421032110540771303875072000");
|
|
|
|
|
|
list.add("002212023082421250710540776780965949440");
|
|
|
|
|
|
list.add("002212023082421290910540777794687283200");
|
|
|
|
|
|
list.add("002212023082421343010540779141528829952");
|
|
|
|
|
|
list.add("002212023082421490810540782822410571776");
|
|
|
|
|
|
list.add("002212023082421494310540782969359712256");
|
|
|
|
|
|
list.add("002212023082421513810540783451579011072");
|
|
|
|
|
|
list.add("002212023082421515510540783526177558528");
|
|
|
|
|
|
list.add("002212023082421523510540783690421784576");
|
|
|
|
|
|
list.add("002212023082422001710540785630021517312");
|
|
|
|
|
|
list.add("002212023082422070510540787340758388736");
|
|
|
|
|
|
list.add("002212023082422135510540789061886840832");
|
|
|
|
|
|
list.add("002212023082422203910540790756555718656");
|
|
|
|
|
|
list.add("002212023082422343310540794251522441216");
|
|
|
|
|
|
list.add("002212023082422350110540794370244366336");
|
|
|
|
|
|
list.add("002212023082422362110540794704623845376");
|
|
|
|
|
|
list.add("002212023082422423210540796263478669312");
|
|
|
|
|
|
list.add("002212023082423115110540803638787555328");
|
|
|
|
|
|
list.add("002212023082423270210540807459334336512");
|
|
|
|
|
|
list.add("002212023082423415010540811187143852032");
|
|
|
|
|
|
list.add("002212023082423564210540814926126960640");
|
|
|
|
|
|
list.add("002212023082500041510540816828419616768");
|
|
|
|
|
|
list.add("002212023082500131810540819103825518592");
|
|
|
|
|
|
list.add("002212023082500135910540819275868372992");
|
|
|
|
|
|
list.add("002212023082500262010540822382985760768");
|
|
|
|
|
|
list.add("002212023082500531510540829156709072896");
|
|
|
|
|
|
list.add("002212023082501124110540834049456070656");
|
|
|
|
|
|
list.add("002212023082501212510540836247341518848");
|
|
|
|
|
|
list.add("002212023082501212710540836255113596928");
|
|
|
|
|
|
list.add("002212023082501252510540837254351966208");
|
|
|
|
|
|
list.add("002212023082502255410540852473278742528");
|
|
|
|
|
|
list.add("002212023082502432910540856898810990592");
|
|
|
|
|
|
list.add("002212023082502472810540857903229325312");
|
|
|
|
|
|
list.add("002212023082502533810540859453269098496");
|
|
|
|
|
|
list.add("002212023082503063210540862698454929408");
|
|
|
|
|
|
list.add("002212023082503102210540863665614401536");
|
|
|
|
|
|
list.add("002212023082503344910540869819062009856");
|
|
|
|
|
|
list.add("002212023082503433610540872027448356864");
|
|
|
|
|
|
list.add("002212023082503561810540875224113053696");
|
|
|
|
|
|
list.add("002212023082504003610540876305970855936");
|
|
|
|
|
|
list.add("002212023082506114210540909297878511616");
|
|
|
|
|
|
list.add("002212023082507174410540925915435204608");
|
|
|
|
|
|
list.add("002212023082507212110540926827538845696");
|
|
|
|
|
|
list.add("002212023082507334110540929931228557312");
|
|
|
|
|
|
list.add("002212023082507440710540932556002230272");
|
|
|
|
|
|
list.add("002212023082507532510540934898244046848");
|
|
|
|
|
|
list.add("002212023082508482710540948744585269248");
|
|
|
|
|
|
list.add("002212023082509030810540952442871021568");
|
|
|
|
|
|
list.add("002212023082509205010540956897124700160");
|
|
|
|
|
|
list.add("002212023082509263210540958331183104000");
|
|
|
|
|
|
list.add("002212023082509500910540964273040838656");
|
|
|
|
|
|
list.add("002212023082509510010540964486789185536");
|
|
|
|
|
|
list.add("002212023082510041010540967802933530624");
|
|
|
|
|
|
list.add("002212023082510120410540969787384213504");
|
|
|
|
|
|
list.add("002212023082510231110540972587291406336");
|
|
|
|
|
|
list.add("002212023082510255410540973271532605440");
|
|
|
|
|
|
list.add("002212023082510314610540974748159078400");
|
|
|
|
|
|
list.add("002212023082510400610540976846091218944");
|
|
|
|
|
|
list.add("002212023082511025310540982576886857728");
|
|
|
|
|
|
list.add("002212023082511122210540984963444133888");
|
|
|
|
|
|
list.add("002212023082511132210540985216232341504");
|
|
|
|
|
|
list.add("002212023082511212610540987244232650752");
|
|
|
|
|
|
list.add("002212023082511212510540987241182449664");
|
|
|
|
|
|
list.add("002212023082511345810540990652049326080");
|
|
|
|
|
|
list.add("002212023082511403310540992057293135872");
|
|
|
|
|
|
list.add("002212023082512185610541001716439703552");
|
|
|
|
|
|
list.add("002212023082512224010541002655720353792");
|
|
|
|
|
|
list.add("002212023082512312710541004865182289920");
|
|
|
|
|
|
list.add("002212023082512340910541005546307342336");
|
|
|
|
|
|
list.add("002212023082513022710541012665586434048");
|
|
|
|
|
|
list.add("002212023082513371810541021436596518912");
|
|
|
|
|
|
list.add("002212023082513401510541022181432012800");
|
|
|
|
|
|
list.add("002212023082513443810541023282434068480");
|
|
|
|
|
|
list.add("002212023082513500110541024638516408320");
|
|
|
|
|
|
list.add("002212023082513501010541024677808205824");
|
|
|
|
|
|
list.add("002212023082513510510541024905512243200");
|
|
|
|
|
|
list.add("002212023082514170110541031432135655424");
|
|
|
|
|
|
list.add("002212023082514272010541034028517740544");
|
|
|
|
|
|
list.add("002212023082514330010541035455299469312");
|
|
|
|
|
|
list.add("002212023082514441210541038273663643648");
|
|
|
|
|
|
list.add("002212023082514470410541038995305496576");
|
|
|
|
|
|
list.add("002212023082514520310541040248138395648");
|
|
|
|
|
|
list.add("002212023082514582610541041857928085504");
|
|
|
|
|
|
list.add("002212023082515014710541042698304802816");
|
|
|
|
|
|
list.add("002212023082515014910541042708208254976");
|
|
|
|
|
|
list.add("002212023082515022910541042876196507648");
|
|
|
|
|
|
list.add("002212023082515054410541043691036495872");
|
|
|
|
|
|
list.add("002212023082515080010541044263122817024");
|
|
|
|
|
|
list.add("002212023082515152610541046133618790400");
|
|
|
|
|
|
list.add("002212023082515183010541046906792071168");
|
|
|
|
|
|
list.add("002212023082515194110541047203891924992");
|
|
|
|
|
|
list.add("002212023082515225610541048019830329344");
|
|
|
|
|
|
list.add("002212023082515262510541048896852606976");
|
|
|
|
|
|
list.add("002212023082515305710541050040126427136");
|
|
|
|
|
|
list.add("002212023082515372610541051672318332928");
|
|
|
|
|
|
list.add("002212023082515381010541051856402235392");
|
|
|
|
|
|
list.add("002212023082515444510541053510717030400");
|
|
|
|
|
|
list.add("002212023082515512110541055172669648896");
|
|
|
|
|
|
list.add("002212023082515520410541055352084463616");
|
|
|
|
|
|
list.add("002212023082515552810541056207769350144");
|
|
|
|
|
|
list.add("002212023082516173710541061784187191296");
|
|
|
|
|
|
list.add("002212023082516180710541061908622626816");
|
|
|
|
|
|
list.add("002212023082516192310541062228436156416");
|
|
|
|
|
|
list.add("002212023082516243910541063553458032640");
|
|
|
|
|
|
list.add("002212023082516273810541064303411003392");
|
|
|
|
|
|
list.add("002212023082516295310541064869377626112");
|
|
|
|
|
|
list.add("002212023082516443010541068549438738432");
|
|
|
|
|
|
list.add("002212023082516492110541069768148107264");
|
|
|
|
|
|
list.add("002212023082516572410541071795058282496");
|
|
|
|
|
|
list.add("002212023082517041710541073527473422336");
|
|
|
|
|
|
list.add("002212023082517091010541074757186215936");
|
|
|
|
|
|
list.add("002212023082517162410541076578028470272");
|
|
|
|
|
|
list.add("002212023082517320210541080512516739072");
|
|
|
|
|
|
list.add("002212023082517324710541080698379907072");
|
|
|
|
|
|
list.add("002212023082517352010541081339846967296");
|
|
|
|
|
|
list.add("002212023082517354810541081458421522432");
|
|
|
|
|
|
list.add("002212023082517393310541082402738126848");
|
|
|
|
|
|
list.add("002212023082517585510541087275756617728");
|
|
|
|
|
|
list.add("002212023082518114810541090518414376960");
|
|
|
|
|
|
list.add("002212023082518163210541091709573152768");
|
|
|
|
|
|
list.add("002212023082518171310541091881816440832");
|
|
|
|
|
|
list.add("002212023082518190910541092368019959808");
|
|
|
|
|
|
list.add("002212023082518253810541093997842976768");
|
|
|
|
|
|
list.add("002212023082519244910541108893595566080");
|
|
|
|
|
|
list.add("002212023082519324510541110890694070272");
|
|
|
|
|
|
list.add("002212023082520140110541121273545195520");
|
|
|
|
|
|
list.add("002212023082520304510541125486995300352");
|
|
|
|
|
|
list.add("002212023082520483710541129984299040768");
|
|
|
|
|
|
list.add("002212023082520501410541130388215709696");
|
|
|
|
|
|
list.add("002212023082520531410541131145803649024");
|
|
|
|
|
|
list.add("002212023082520564110541132012240224256");
|
|
|
|
|
|
list.add("002212023082521022210541133444328210432");
|
|
|
|
|
|
list.add("002212023082521030810541133636876292096");
|
|
|
|
|
|
list.add("002212023082521043010541133979402784768");
|
|
|
|
|
|
list.add("002212023082521140810541136403963498496");
|
|
|
|
|
|
list.add("002212023082521281310541139949496582144");
|
|
|
|
|
|
list.add("002212023082521355110541141867819061248");
|
|
|
|
|
|
list.add("002212023082521373710541142313278881792");
|
|
|
|
|
|
list.add("002212023082521435810541143912039919616");
|
|
|
|
|
|
list.add("002212023082522131810541151293971517440");
|
|
|
|
|
|
list.add("002212023082522173810541152385719488512");
|
|
|
|
|
|
list.add("002212023082522234110541153908205797376");
|
|
|
|
|
|
list.add("002212023082522332910541156374189887488");
|
|
|
|
|
|
list.add("002212023082522345410541156731206283264");
|
|
|
|
|
|
list.add("002212023082522382110541157596358397952");
|
|
|
|
|
|
list.add("002212023082522494610541160469003407360");
|
|
|
|
|
|
list.add("002212023082522542710541161649284747264");
|
|
|
|
|
|
list.add("002212023082523141410541166630046334976");
|
|
|
|
|
|
list.add("002212023082523312310541170942995587072");
|
|
|
|
|
|
list.add("002212023082523444310541174300812787712");
|
|
|
|
|
|
list.add("002212023082600055110541179617482178560");
|
|
|
|
|
|
list.add("002212023082600105410541180886813954048");
|
|
|
|
|
|
list.add("002212023082600144210541181843518619648");
|
|
|
|
|
|
list.add("002212023082600182510541182778203222016");
|
|
|
|
|
|
list.add("002212023082600233610541184085369913344");
|
|
|
|
|
|
list.add("002212023082600251010541184480885125120");
|
|
|
|
|
|
list.add("002212023082600483910541190389332258816");
|
|
|
|
|
|
list.add("002212023082601100010541195762647093248");
|
|
|
|
|
|
list.add("002212023082601303210541200928163856384");
|
|
|
|
|
|
list.add("002212023082602410310541218674380451840");
|
|
|
|
|
|
list.add("002212023082602430810541219199575490560");
|
|
|
|
|
|
list.add("002212023082602453610541219821559123968");
|
|
|
|
|
|
list.add("002212023082603074410541225388222861312");
|
|
|
|
|
|
list.add("002212023082603312510541231350775275520");
|
|
|
|
|
|
list.add("002212023082603375910541233002671570944");
|
|
|
|
|
|
list.add("002212023082605025610541254382004723712");
|
|
|
|
|
|
list.add("002212023082605425810541264456703586304");
|
|
|
|
|
|
list.add("002212023082605530110541266983676727296");
|
|
|
|
|
|
list.add("002212023082605582410541268340599730176");
|
|
|
|
|
|
list.add("002212023082606160010541272768315121664");
|
|
|
|
|
|
list.add("002212023082606235910541274778441134080");
|
|
|
|
|
|
list.add("002212023082607142710541287478409719808");
|
|
|
|
|
|
list.add("002212023082607173410541288261653516288");
|
|
|
|
|
|
list.add("002212023082607371910541293232062894080");
|
|
|
|
|
|
list.add("002212023082607485910541296170382839808");
|
|
|
|
|
|
list.add("002212023082607571710541298258723106816");
|
|
|
|
|
|
list.add("002212023082607573610541298336719851520");
|
|
|
|
|
|
list.add("002212023082608493010541311400602423296");
|
|
|
|
|
|
list.add("002212023082609134210541317488322527232");
|
|
|
|
|
|
list.add("002212023082609280610541321111157231616");
|
|
|
|
|
|
list.add("002212023082609300510541321610841444352");
|
|
|
|
|
|
list.add("002212023082609442910541325234988011520");
|
|
|
|
|
|
list.add("002212023082609483310541326259078365184");
|
|
|
|
|
|
list.add("002212023082609584110541328808757874688");
|
|
|
|
|
|
list.add("002212023082610135110541332624274001920");
|
|
|
|
|
|
list.add("002212023082610154610541333107110916096");
|
|
|
|
|
|
list.add("002212023082610163110541333298651254784");
|
|
|
|
|
|
list.add("002212023082610215910541334674006790144");
|
|
|
|
|
|
list.add("002212023082610281710541336258115526656");
|
|
|
|
|
|
list.add("002212023082610345810541337941499461632");
|
|
|
|
|
|
list.add("002212023082610424210541339887518081024");
|
|
|
|
|
|
list.add("002212023082610445510541340444059303936");
|
|
|
|
|
|
list.add("002212023082610523810541342386237132800");
|
|
|
|
|
|
list.add("002212023082610552510541343086567116800");
|
|
|
|
|
|
list.add("002212023082611182410541348870032764928");
|
|
|
|
|
|
list.add("002212023082611435110541355275975053312");
|
|
|
|
|
|
list.add("002212023082611463910541355980826497024");
|
|
|
|
|
|
list.add("002212023082611490110541356574744670208");
|
|
|
|
|
|
list.add("002212023082612071210541361150395600896");
|
|
|
|
|
|
list.add("002212023082612071110541361146200485888");
|
|
|
|
|
|
list.add("002212023082612104910541362062612910080");
|
|
|
|
|
|
list.add("002212023082612140210541362869698363392");
|
|
|
|
|
|
list.add("002212023082612245410541365607546654720");
|
|
|
|
|
|
list.add("002212023082612404810541369608107642880");
|
|
|
|
|
|
list.add("002212023082612414810541369859820376064");
|
|
|
|
|
|
list.add("002212023082612442110541370500358856704");
|
|
|
|
|
|
list.add("002212023082612511310541372229624082432");
|
|
|
|
|
|
list.add("002212023082613014710541374886185779200");
|
|
|
|
|
|
list.add("002212023082613112710541377322024062976");
|
|
|
|
|
|
list.add("002212023082613132910541377832584638464");
|
|
|
|
|
|
list.add("002212023082613160410541378480441470976");
|
|
|
|
|
|
list.add("002212023082613351810541383320858832896");
|
|
|
|
|
|
list.add("002212023082613400810541384540249313280");
|
|
|
|
|
|
list.add("002212023082613540910541388067408629760");
|
|
|
|
|
|
list.add("002212023082613555210541388498644221952");
|
|
|
|
|
|
list.add("002212023082614010710541389819981410304");
|
|
|
|
|
|
list.add("002212023082614035610541390526517915648");
|
|
|
|
|
|
list.add("002212023082614100010541392054035050496");
|
|
|
|
|
|
list.add("002212023082614124910541392764890505216");
|
|
|
|
|
|
list.add("002212023082614141910541393142374563840");
|
|
|
|
|
|
list.add("002212023082614292010541396921016975360");
|
|
|
|
|
|
list.add("002212023082614592510541404492333887488");
|
|
|
|
|
|
list.add("002212023082615022010541405224303837184");
|
|
|
|
|
|
list.add("002212023082615024610541405332885979136");
|
|
|
|
|
|
list.add("002212023082615063810541406305209532416");
|
|
|
|
|
|
list.add("002212023082615181810541409241704677376");
|
|
|
|
|
|
list.add("002212023082615193510541409564632961024");
|
|
|
|
|
|
list.add("002212023082615204610541409862277304320");
|
|
|
|
|
|
list.add("002212023082615213110541410051021762560");
|
|
|
|
|
|
list.add("002212023082615360310541413711432306688");
|
|
|
|
|
|
list.add("002212023082615361910541413776143339520");
|
|
|
|
|
|
list.add("002212023082615432710541415572939640832");
|
|
|
|
|
|
list.add("002212023082615472410541416565166587904");
|
|
|
|
|
|
list.add("002212023082615514410541417655439032320");
|
|
|
|
|
|
list.add("002212023082615545610541418460580929536");
|
|
|
|
|
|
list.add("002212023082616005910541419984812867584");
|
|
|
|
|
|
list.add("002212023082616074110541421669150605312");
|
|
|
|
|
|
list.add("002212023082616121310541422813579034624");
|
|
|
|
|
|
list.add("002212023082616184210541424442396454912");
|
|
|
|
|
|
list.add("002212023082616224010541425441451376640");
|
|
|
|
|
|
list.add("002212023082616230610541425548872429568");
|
|
|
|
|
|
list.add("002212023082616313510541427684432564224");
|
|
|
|
|
|
list.add("002212023082616422610541430415340404736");
|
|
|
|
|
|
list.add("002212023082616513010541432696568623104");
|
|
|
|
|
|
list.add("002212023082616535210541433293064355840");
|
|
|
|
|
|
list.add("002212023082616563010541433957556961280");
|
|
|
|
|
|
list.add("002212023082617071910541436679914688512");
|
|
|
|
|
|
list.add("002212023082617145810541438605012389888");
|
|
|
|
|
|
list.add("002212023082617160410541438881778884608");
|
|
|
|
|
|
list.add("002212023082617173810541439274104573952");
|
|
|
|
|
|
list.add("002212023082617202510541439974767218688");
|
|
|
|
|
|
list.add("002212023082617402410541445005454360576");
|
|
|
|
|
|
list.add("002212023082617405810541445147283607552");
|
|
|
|
|
|
list.add("002212023082618023810541450597622272000");
|
|
|
|
|
|
list.add("002212023082618070110541451702754766848");
|
|
|
|
|
|
list.add("002212023082618155710541453950464540672");
|
|
|
|
|
|
list.add("002212023082618234910541455930692890624");
|
|
|
|
|
|
list.add("002212023082618305510541457715140067328");
|
|
|
|
|
|
list.add("002212023082618315110541457953114198016");
|
|
|
|
|
|
list.add("002212023082618572810541464400312815616");
|
|
|
|
|
|
list.add("002212023082619011610541465353369604096");
|
|
|
|
|
|
list.add("002212023082619033910541465956055666688");
|
|
|
|
|
|
list.add("002212023082619115810541468048198041600");
|
|
|
|
|
|
list.add("002212023082619195910541470064425873408");
|
|
|
|
|
|
list.add("002212023082619241310541471131592445952");
|
|
|
|
|
|
list.add("002212023082619373710541474500478423040");
|
|
|
|
|
|
list.add("002212023082619420310541475616259723264");
|
|
|
|
|
|
list.add("002212023082619441510541476171062460416");
|
|
|
|
|
|
list.add("002212023082619534610541478565555884032");
|
|
|
|
|
|
list.add("002212023082620013610541480538623627264");
|
|
|
|
|
|
list.add("002212023082620041010541481183691304960");
|
|
|
|
|
|
list.add("002212023082620072010541481982597783552");
|
|
|
|
|
|
list.add("002212023082620113710541483060573286400");
|
|
|
|
|
|
list.add("002212023082620122910541483275807457280");
|
|
|
|
|
|
list.add("002212023082620410110541490455899688960");
|
|
|
|
|
|
list.add("002212023082620462110541491801047592960");
|
|
|
|
|
|
list.add("002212023082621014510541495675765821440");
|
|
|
|
|
|
list.add("002212023082621104410541497936659533824");
|
|
|
|
|
|
list.add("002212023082621111110541498051402645504");
|
|
|
|
|
|
list.add("002212023082621140010541498757694685184");
|
|
|
|
|
|
list.add("002212023082621304710541502982856003584");
|
|
|
|
|
|
list.add("002212023082621475310541507284623609856");
|
|
|
|
|
|
list.add("002212023082621500110541507823531642880");
|
|
|
|
|
|
list.add("002212023082621530610541508596991160320");
|
|
|
|
|
|
list.add("002212023082621550710541509105953173504");
|
|
|
|
|
|
list.add("002212023082622015410541510811718533120");
|
|
|
|
|
|
list.add("002212023082622041710541511413704409088");
|
|
|
|
|
|
list.add("002212023082622044210541511518754852864");
|
|
|
|
|
|
list.add("002212023082622082210541512441299513344");
|
|
|
|
|
|
list.add("002212023082622145910541514105656258560");
|
|
|
|
|
|
list.add("002212023082622193310541515253608271872");
|
|
|
|
|
|
list.add("002212023082622234810541516323700858880");
|
|
|
|
|
|
list.add("002212023082622272010541517213282758656");
|
|
|
|
|
|
list.add("002212023082622292410541517735057838080");
|
|
|
|
|
|
list.add("002212023082622334410541518822883704832");
|
|
|
|
|
|
list.add("002212023082622350810541519176708407296");
|
|
|
|
|
|
list.add("002212023082622425610541521138557222912");
|
|
|
|
|
|
list.add("002212023082622584910541525137984770048");
|
|
|
|
|
|
list.add("002212023082623103410541528091696365568");
|
|
|
|
|
|
list.add("002212023082623142310541529052317667328");
|
|
|
|
|
|
list.add("002212023082623201210541530517954252800");
|
|
|
|
|
|
list.add("002212023082623215210541530938341928960");
|
|
|
|
|
|
list.add("002212023082623423110541536134021926912");
|
|
|
|
|
|
list.add("002212023082623515910541538517575086080");
|
|
|
|
|
|
list.add("002212023082623593410541540426292285440");
|
|
|
|
|
|
list.add("002212023082700022610541541144451272704");
|
|
|
|
|
|
list.add("002212023082700243610541546724343406592");
|
|
|
|
|
|
list.add("002212023082700250110541546830576738304");
|
|
|
|
|
|
list.add("002212023082700291510541547893814906880");
|
|
|
|
|
|
list.add("002212023082700294910541548036190523392");
|
|
|
|
|
|
list.add("002212023082700540710541554151427035136");
|
|
|
|
|
|
list.add("002212023082700582910541555252810665984");
|
|
|
|
|
|
list.add("002212023082701183410541560304549277696");
|
|
|
|
|
|
list.add("002212023082701293910541563093531643904");
|
|
|
|
|
|
list.add("002212023082702071110541572538876133376");
|
|
|
|
|
|
list.add("002212023082702273910541577689218924544");
|
|
|
|
|
|
list.add("002212023082702301010541578326147432448");
|
|
|
|
|
|
list.add("002212023082702373210541580176367304704");
|
|
|
|
|
|
list.add("002212023082703230010541591619784245248");
|
|
|
|
|
|
list.add("002212023082703245410541592100021796864");
|
|
|
|
|
|
list.add("002212023082704365810541610233320361984");
|
|
|
|
|
|
list.add("002212023082705244410541622254578741248");
|
|
|
|
|
|
list.add("002212023082706350010541639937951547392");
|
|
|
|
|
|
list.add("002212023082706475110541643172307779584");
|
|
|
|
|
|
list.add("002212023082707004410541646415322566656");
|
|
|
|
|
|
list.add("002212023082707215710541651751991676928");
|
|
|
|
|
|
list.add("002212023082707363510541655437424033792");
|
|
|
|
|
|
list.add("002212023082707454010541657721039732736");
|
|
|
|
|
|
list.add("002212023082707543810541659976831172608");
|
|
|
|
|
|
list.add("002212023082708480010541673407932104704");
|
|
|
|
|
|
list.add("002212023082708541910541674999366471680");
|
|
|
|
|
|
list.add("002212023082709203610541681612615680000");
|
|
|
|
|
|
list.add("002212023082709574310541690954699751424");
|
|
|
|
|
|
list.add("002212023082710190310541696323883257856");
|
|
|
|
|
|
list.add("002212023082710223610541697215764254720");
|
|
|
|
|
|
list.add("002212023082710315810541699573172572160");
|
|
|
|
|
|
list.add("002212023082710344310541700264073199616");
|
|
|
|
|
|
list.add("002212023082710344610541700276818796544");
|
|
|
|
|
|
list.add("002212023082711022810541707248951808000");
|
|
|
|
|
|
list.add("002212023082711425410541717422218072064");
|
|
|
|
|
|
list.add("002212023082711444710541717897258565632");
|
|
|
|
|
|
list.add("002212023082711534110541720138546929664");
|
|
|
|
|
|
list.add("002212023082711562410541720819780972544");
|
|
|
|
|
|
list.add("002212023082712113810541724656160288768");
|
|
|
|
|
|
list.add("002212023082712185110541726470554353664");
|
|
|
|
|
|
list.add("002212023082712353610541730687123439616");
|
|
|
|
|
|
list.add("002212023082712482010541733892605267968");
|
|
|
|
|
|
list.add("002212023082712511610541734627640074240");
|
|
|
|
|
|
list.add("002212023082712525510541735044376150016");
|
|
|
|
|
|
list.add("002212023082712564910541736026619838464");
|
|
|
|
|
|
list.add("002212023082712583210541736458796122112");
|
|
|
|
|
|
list.add("002212023082713122410541739946087874560");
|
|
|
|
|
|
list.add("002212023082713141110541740394618355712");
|
|
|
|
|
|
list.add("002212023082713162810541740971485450240");
|
|
|
|
|
|
list.add("002212023082713183010541741482952962048");
|
|
|
|
|
|
list.add("002212023082713210810541742146255568896");
|
|
|
|
|
|
list.add("002212023082713241810541742942386380800");
|
|
|
|
|
|
list.add("002212023082713253410541743260203896832");
|
|
|
|
|
|
list.add("002212023082713262110541743457143947264");
|
|
|
|
|
|
list.add("002212023082713344910541745587138146304");
|
|
|
|
|
|
list.add("002212023082713360810541745920975384576");
|
|
|
|
|
|
list.add("002212023082713415710541747384564207616");
|
|
|
|
|
|
list.add("002212023082713490810541749191894528000");
|
|
|
|
|
|
list.add("002212023082714000510541751948567896064");
|
|
|
|
|
|
list.add("002212023082714132510541755303839154176");
|
|
|
|
|
|
list.add("002212023082714164710541756151222579200");
|
|
|
|
|
|
list.add("002212023082714224210541757638135496704");
|
|
|
|
|
|
list.add("002212023082714313410541759869287727104");
|
|
|
|
|
|
list.add("002212023082714321010541760022920888320");
|
|
|
|
|
|
list.add("002212023082714404610541762184045412352");
|
|
|
|
|
|
list.add("002212023082714520010541765011747278848");
|
|
|
|
|
|
list.add("002212023082714575410541766498788651008");
|
|
|
|
|
|
list.add("002212023082715134310541770477737914368");
|
|
|
|
|
|
list.add("002212023082715140310541770562506391552");
|
|
|
|
|
|
list.add("002212023082715205610541772293264359424");
|
|
|
|
|
|
list.add("002212023082715230910541772852911923200");
|
|
|
|
|
|
list.add("002212023082715262310541773666804056064");
|
|
|
|
|
|
list.add("002212023082715281710541774142062243840");
|
|
|
|
|
|
list.add("002212023082715304910541774783175610368");
|
|
|
|
|
|
list.add("002212023082715313210541774961230053376");
|
|
|
|
|
|
list.add("002212023082715332110541775417415872512");
|
|
|
|
|
|
list.add("002212023082715390110541776846346534912");
|
|
|
|
|
|
list.add("002212023082716070810541783921494654976");
|
|
|
|
|
|
list.add("002212023082716214610541787603645775872");
|
|
|
|
|
|
list.add("002212023082716320310541790189009424384");
|
|
|
|
|
|
list.add("002212023082716454310541793631229890560");
|
|
|
|
|
|
list.add("002212023082717070110541798992367923200");
|
|
|
|
|
|
list.add("002212023082717085610541799473050963968");
|
|
|
|
|
|
list.add("002212023082717123910541800406791147520");
|
|
|
|
|
|
list.add("002212023082717240410541803280619196416");
|
|
|
|
|
|
list.add("002212023082717325210541805494033252352");
|
|
|
|
|
|
list.add("002212023082717342810541805897815871488");
|
|
|
|
|
|
list.add("002212023082717391810541807112972849152");
|
|
|
|
|
|
list.add("002212023082717421410541807853215862784");
|
|
|
|
|
|
list.add("002212023082717491610541809624443092992");
|
|
|
|
|
|
list.add("002212023082717524010541810478208438272");
|
|
|
|
|
|
list.add("002212023082718064810541814034214309888");
|
|
|
|
|
|
list.add("002212023082718185610541817090282348544");
|
|
|
|
|
|
list.add("002212023082718213610541817759758979072");
|
|
|
|
|
|
list.add("002212023082718270710541819149502689280");
|
|
|
|
|
|
list.add("002212023082718304110541820045410217984");
|
|
|
|
|
|
list.add("002212023082718351910541821209997643776");
|
|
|
|
|
|
list.add("002212023082718475710541824393230925824");
|
|
|
|
|
|
list.add("002212023082718482310541824500867629056");
|
|
|
|
|
|
list.add("002212023082718505510541825136739999744");
|
|
|
|
|
|
list.add("002212023082719003910541827587857526784");
|
|
|
|
|
|
list.add("002212023082719311510541835287873114112");
|
|
|
|
|
|
list.add("002212023082719402110541837579598598144");
|
|
|
|
|
|
list.add("002212023082719414110541837914005090304");
|
|
|
|
|
|
list.add("002212023082719445910541838746064179200");
|
|
|
|
|
|
list.add("002212023082719542810541841131843514368");
|
|
|
|
|
|
list.add("002212023082719552010541841346938056704");
|
|
|
|
|
|
list.add("002212023082719590310541842285876899840");
|
|
|
|
|
|
list.add("002212023082720010110541842778804707328");
|
|
|
|
|
|
list.add("002212023082720315510541850553373593600");
|
|
|
|
|
|
list.add("002212023082720413410541852982823800832");
|
|
|
|
|
|
list.add("002212023082721005910541857870040522752");
|
|
|
|
|
|
list.add("002212023082721032710541858491227852800");
|
|
|
|
|
|
list.add("002212023082721115310541860611788263424");
|
|
|
|
|
|
list.add("002212023082721211210541862960037167104");
|
|
|
|
|
|
list.add("002212023082721275510541864646623932416");
|
|
|
|
|
|
list.add("002212023082721362110541866768716681216");
|
|
|
|
|
|
list.add("002212023082721380410541867203112534016");
|
|
|
|
|
|
list.add("002212023082721384710541867384818970624");
|
|
|
|
|
|
list.add("002212023082721402910541867811667689472");
|
|
|
|
|
|
list.add("002212023082721435210541868663334662144");
|
|
|
|
|
|
list.add("002212023082721523710541870866282729472");
|
|
|
|
|
|
list.add("002212023082721595310541872694988365824");
|
|
|
|
|
|
list.add("002212023082722035210541873697410068480");
|
|
|
|
|
|
list.add("002212023082722090710541875017067331584");
|
|
|
|
|
|
list.add("002212023082722094010541875156864458752");
|
|
|
|
|
|
list.add("002212023082722094010541875153847078912");
|
|
|
|
|
|
list.add("002212023082722105510541875468496875520");
|
|
|
|
|
|
list.add("002212023082722120210541875750386716672");
|
|
|
|
|
|
list.add("002212023082722213410541878149161517056");
|
|
|
|
|
|
list.add("002212023082722290610541880045282152448");
|
|
|
|
|
|
list.add("002212023082722334710541881222971412480");
|
|
|
|
|
|
list.add("002212023082722581110541887364910563328");
|
|
|
|
|
|
list.add("002212023082723011110541888118979313664");
|
|
|
|
|
|
list.add("002212023082723123610541890991415021568");
|
|
|
|
|
|
list.add("002212023082723143710541891500196511744");
|
|
|
|
|
|
list.add("002212023082723213810541893266215456768");
|
|
|
|
|
|
list.add("002212023082723235010541893818248220672");
|
|
|
|
|
|
list.add("002212023082723255010541894321707307008");
|
|
|
|
|
|
list.add("002212023082723295410541895348326219776");
|
|
|
|
|
|
list.add("002212023082723320710541895902621675520");
|
|
|
|
|
|
list.add("002212023082723362210541896972271661056");
|
|
|
|
|
|
list.add("002212023082723503410541900549338583040");
|
|
|
|
|
|
list.add("002212023082723533510541901308394455040");
|
|
|
|
|
|
list.add("002212023082723595110541902883289460736");
|
|
|
|
|
|
list.add("002212023082800043110541904057278812160");
|
|
|
|
|
|
list.add("002212023082800101110541905485646888960");
|
|
|
|
|
|
list.add("002212023082800151310541906750961504256");
|
|
|
|
|
|
list.add("002212023082800181910541907531977240576");
|
|
|
|
|
|
list.add("002212023082800281110541910012558327808");
|
|
|
|
|
|
list.add("002212023082800333110541911355413942272");
|
|
|
|
|
|
list.add("002212023082801315910541926067617443840");
|
|
|
|
|
|
list.add("002212023082801321710541926147163406336");
|
|
|
|
|
|
list.add("002212023082802232310541939003593371648");
|
|
|
|
|
|
list.add("002212023082802265110541939876207329280");
|
|
|
|
|
|
list.add("002212023082803031310541949027348983808");
|
|
|
|
|
|
list.add("002212023082803084510541950420460392448");
|
|
|
|
|
|
list.add("002212023082805554310541992440437067776");
|
|
|
|
|
|
list.add("002212023082806192410541998399252516864");
|
|
|
|
|
|
list.add("002212023082806204910541998758018830336");
|
|
|
|
|
|
list.add("002212023082806411310542003890949345280");
|
|
|
|
|
|
list.add("002212023082806451710542004913910730752");
|
|
|
|
|
|
list.add("002212023082807073710542010533255737344");
|
|
|
|
|
|
list.add("002212023082807152310542012488895057920");
|
|
|
|
|
|
list.add("002212023082807302510542016274436448256");
|
|
|
|
|
|
list.add("002212023082807303910542016331202351104");
|
|
|
|
|
|
list.add("002212023082807533610542022106350944256");
|
|
|
|
|
|
list.add("002212023082808011210542024018231726080");
|
|
|
|
|
|
list.add("002212023082808215610542029235018776576");
|
|
|
|
|
|
list.add("002212023082808390510542033554817933312");
|
|
|
|
|
|
list.add("002212023082808451910542035120738779136");
|
|
|
|
|
|
list.add("002212023082809130910542042124090265600");
|
|
|
|
|
|
list.add("002212023082809284510542046053440225280");
|
|
|
|
|
|
list.add("002212023082809583310542053549306695680");
|
|
|
|
|
|
list.add("002212023082810304110542061638937817088");
|
|
|
|
|
|
list.add("002212023082811031610542069838020775936");
|
|
|
|
|
|
list.add("002212023082811113010542071907881218048");
|
|
|
|
|
|
list.add("002212023082811165910542073290508808192");
|
|
|
|
|
|
list.add("002212023082811280910542076098368843776");
|
|
|
|
|
|
list.add("002212023082811553110542082987629105152");
|
|
|
|
|
|
list.add("002212023082811583910542083776863956992");
|
|
|
|
|
|
list.add("002212023082812193710542089052559413248");
|
|
|
|
|
|
list.add("002212023082812314210542092093547675648");
|
|
|
|
|
|
list.add("002212023082812345310542092893166567424");
|
|
|
|
|
|
list.add("002212023082812401010542094222747930624");
|
|
|
|
|
|
list.add("002212023082812455110542095654511595520");
|
|
|
|
|
|
list.add("002212023082812552010542098042119680000");
|
|
|
|
|
|
list.add("002212023082812554110542098127096922112");
|
|
|
|
|
|
list.add("002212023082813002510542099319972614144");
|
|
|
|
|
|
list.add("002212023082813045410542100448651931648");
|
|
|
|
|
|
list.add("002212023082813130210542102493441740800");
|
|
|
|
|
|
list.add("002212023082813415810542109774169026560");
|
|
|
|
|
|
list.add("002212023082813430510542110058275995648");
|
|
|
|
|
|
list.add("002212023082813463910542110955357786112");
|
|
|
|
|
|
list.add("002212023082814040810542115355201470464");
|
|
|
|
|
|
list.add("002212023082814052310542115667096014848");
|
|
|
|
|
|
list.add("002212023082814100310542116841748877312");
|
|
|
|
|
|
list.add("002212023082814180810542118879023493120");
|
|
|
|
|
|
list.add("002212023082814392610542124235939041280");
|
|
|
|
|
|
list.add("002212023082814493910542126809139183616");
|
|
|
|
|
|
list.add("002212023082814524310542127580405579776");
|
|
|
|
|
|
list.add("002212023082814570510542128677617586176");
|
|
|
|
|
|
list.add("002212023082815024610542130111784062976");
|
|
|
|
|
|
list.add("002212023082815085910542131675350511616");
|
|
|
|
|
|
list.add("002212023082815100610542131956946472960");
|
|
|
|
|
|
list.add("002212023082815142010542133020248395776");
|
|
|
|
|
|
list.add("002212023082815411810542139808809811968");
|
|
|
|
|
|
list.add("002212023082815413610542139884386832384");
|
|
|
|
|
|
list.add("002212023082815563410542143650050682880");
|
|
|
|
|
|
list.add("002212023082815570910542143797806125056");
|
|
|
|
|
|
list.add("002212023082816030610542145295328899072");
|
|
|
|
|
|
list.add("002212023082816075710542146514698469376");
|
|
|
|
|
|
list.add("002212023082816112110542147368748564480");
|
|
|
|
|
|
list.add("002212023082816113310542147418265530368");
|
|
|
|
|
|
list.add("002212023082816142410542148136935247872");
|
|
|
|
|
|
list.add("002212023082816184210542149218902102016");
|
|
|
|
|
|
list.add("002212023082816190610542149318475436032");
|
|
|
|
|
|
list.add("002212023082816210510542149817250795520");
|
|
|
|
|
|
list.add("002212023082816231110542150346012528640");
|
|
|
|
|
|
list.add("002212023082816295910542152059637186560");
|
|
|
|
|
|
list.add("002212023082816590110542159366766276608");
|
|
|
|
|
|
list.add("002212023082817032510542160474217721856");
|
|
|
|
|
|
list.add("002212023082817145510542163364523692032");
|
|
|
|
|
|
list.add("002212023082817174610542164085818150912");
|
|
|
|
|
|
list.add("002212023082817183610542164294935265280");
|
|
|
|
|
|
list.add("002212023082817474310542171619165622272");
|
|
|
|
|
|
list.add("002212023082817474410542171623963906048");
|
|
|
|
|
|
list.add("002212023082817513010542172575138885632");
|
|
|
|
|
|
list.add("002212023082817551610542173522674995200");
|
|
|
|
|
|
list.add("002212023082817572910542174078525657088");
|
|
|
|
|
|
list.add("002212023082818254710542181200897028096");
|
|
|
|
|
|
list.add("002212023082818343710542183423196426240");
|
|
|
|
|
|
list.add("002212023082819233810542195759496577024");
|
|
|
|
|
|
list.add("002212023082819425510542200611350171648");
|
|
|
|
|
|
list.add("002212023082819460110542201391084568576");
|
|
|
|
|
|
list.add("002212023082819514410542202828990599168");
|
|
|
|
|
|
list.add("002212023082819580110542204412318957568");
|
|
|
|
|
|
list.add("002212023082820053110542206297650647040");
|
|
|
|
|
|
list.add("002212023082820133810542208342458707968");
|
|
|
|
|
|
list.add("002212023082820201610542210010501656576");
|
|
|
|
|
|
list.add("002212023082820201510542210006406389760");
|
|
|
|
|
|
list.add("002212023082820371210542214273597607936");
|
|
|
|
|
|
list.add("002212023082821164610542224230401769472");
|
|
|
|
|
|
list.add("002212023082821292310542227404140331008");
|
|
|
|
|
|
list.add("002212023082821313510542227958406623232");
|
|
|
|
|
|
list.add("002212023082821325010542228273036541952");
|
|
|
|
|
|
list.add("002212023082821353110542228948155908096");
|
|
|
|
|
|
list.add("002212023082821375510542229551086465024");
|
|
|
|
|
|
list.add("002212023082822014610542235552756051968");
|
|
|
|
|
|
list.add("002212023082822075210542237088203558912");
|
|
|
|
|
|
list.add("002212023082822291710542242478958219264");
|
|
|
|
|
|
list.add("002212023082822380210542244682429026304");
|
|
|
|
|
|
list.add("002212023082822420410542245697751240704");
|
|
|
|
|
|
list.add("002212023082822473010542247065206173696");
|
|
|
|
|
|
list.add("002212023082822474810542247140848844800");
|
|
|
|
|
|
list.add("002212023082822502410542247792193474560");
|
|
|
|
|
|
list.add("002212023082822531310542248502411554816");
|
|
|
|
|
|
list.add("002212023082822560310542249217363693568");
|
|
|
|
|
|
list.add("002212023082823102210542252816541663232");
|
|
|
|
|
|
list.add("002212023082823163210542254371659468800");
|
|
|
|
|
|
list.add("002212023082823243610542256398754103296");
|
|
|
|
|
|
list.add("002212023082823300010542257758463574016");
|
|
|
|
|
|
list.add("002212023082823321210542258312262602752");
|
|
|
|
|
|
list.add("002212023082823344310542258948368228352");
|
|
|
|
|
|
list.add("002212023082823450310542261545962991616");
|
|
|
|
|
|
list.add("002212023082823495910542262786693083136");
|
|
|
|
|
|
list.add("002212023082900125210542268546454118400");
|
|
|
|
|
|
list.add("002212023082901045210542281633541279744");
|
|
|
|
|
|
list.add("002212023082901085210542282639359127552");
|
|
|
|
|
|
list.add("002212023082901183710542285093280043008");
|
|
|
|
|
|
list.add("002212023082901403810542290632740622336");
|
|
|
|
|
|
list.add("002212023082902172410542299886648725504");
|
|
|
|
|
|
list.add("002212023082902210610542300816673501184");
|
|
|
|
|
|
list.add("002212023082902230410542301313036267520");
|
|
|
|
|
|
list.add("002212023082902271510542302364941602816");
|
|
|
|
|
|
list.add("002212023082902321410542303620174692352");
|
|
|
|
|
|
list.add("002212023082902415310542306046703665152");
|
|
|
|
|
|
list.add("002212023082903040310542311628388585472");
|
|
|
|
|
|
list.add("002212023082903154010542314549608775680");
|
|
|
|
|
|
list.add("002212023082903161610542314702204350464");
|
|
|
|
|
|
list.add("002212023082903522810542323813329301504");
|
|
|
|
|
|
list.add("002212023082904021910542326291596734464");
|
|
|
|
|
|
list.add("002212023082904481210542337837940494336");
|
|
|
|
|
|
list.add("002212023082905391510542350685484867584");
|
|
|
|
|
|
list.add("002212023082905562510542355003124989952");
|
|
|
|
|
|
list.add("002212023082906363210542365101113626624");
|
|
|
|
|
|
list.add("002212023082906493110542368366405607424");
|
|
|
|
|
|
list.add("002212023082907113010542373898392219648");
|
|
|
|
|
|
list.add("002212023082907512210542383931114811392");
|
|
|
|
|
|
list.add("002212023082908072110542387954380099584");
|
|
|
|
|
|
list.add("002212023082908470410542397950516154368");
|
|
|
|
|
|
list.add("002212023082909044310542402392694239232");
|
|
|
|
|
|
list.add("002212023082909130610542404500761767936");
|
|
|
|
|
|
list.add("002212023082909213910542406654566232064");
|
|
|
|
|
|
list.add("002212023082909214710542406687183384576");
|
|
|
|
|
|
list.add("002212023082909215410542406716512550912");
|
|
|
|
|
|
list.add("002212023082909252010542407581386592256");
|
|
|
|
|
|
list.add("002212023082909525410542414517917347840");
|
|
|
|
|
|
list.add("002212023082909554910542415251405266944");
|
|
|
|
|
|
list.add("002212023082910014510542416743138844672");
|
|
|
|
|
|
list.add("002212023082910031310542417112409387008");
|
|
|
|
|
|
list.add("002212023082910135710542419813000298496");
|
|
|
|
|
|
list.add("002212023082910144110542419998290890752");
|
|
|
|
|
|
list.add("002212023082910251110542422643516964864");
|
|
|
|
|
|
list.add("002212023082910422110542426963530317824");
|
|
|
|
|
|
list.add("002212023082911021110542431951306264576");
|
|
|
|
|
|
list.add("002212023082911294010542438867703267328");
|
|
|
|
|
|
list.add("002212023082911362110542440552575262720");
|
|
|
|
|
|
list.add("002212023082912151010542450318339919872");
|
|
|
|
|
|
list.add("002212023082912201710542451605923676160");
|
|
|
|
|
|
list.add("002212023082912231510542452352863072256");
|
|
|
|
|
|
list.add("002212023082912251710542452866592059392");
|
|
|
|
|
|
list.add("002212023082912363710542455719816085504");
|
|
|
|
|
|
list.add("002212023082912390710542456347196751872");
|
|
|
|
|
|
list.add("002212023082913160110542465631748517888");
|
|
|
|
|
|
list.add("002212023082913212710542467002099580928");
|
|
|
|
|
|
list.add("002212023082913224610542467331620237312");
|
|
|
|
|
|
list.add("002212023082913232410542467492856614912");
|
|
|
|
|
|
list.add("002212023082913292610542469008661303296");
|
|
|
|
|
|
list.add("002212023082913324010542469823255728128");
|
|
|
|
|
|
list.add("002212023082913373210542471046887526400");
|
|
|
|
|
|
list.add("002212023082913554910542475648802471936");
|
|
|
|
|
|
list.add("002212023082914000610542476725980037120");
|
|
|
|
|
|
list.add("002212023082914031510542477519953219584");
|
|
|
|
|
|
list.add("002212023082914072010542478546531069952");
|
|
|
|
|
|
list.add("002212023082914100310542479229980524544");
|
|
|
|
|
|
list.add("002212023082914142710542480340327641088");
|
|
|
|
|
|
list.add("002212023082914165210542480947963224064");
|
|
|
|
|
|
list.add("002212023082914333210542485140208013312");
|
|
|
|
|
|
list.add("002212023082914380410542486280550821888");
|
|
|
|
|
|
list.add("002212023082914474910542488736399699968");
|
|
|
|
|
|
list.add("002212023082914482710542488896629526528");
|
|
|
|
|
|
list.add("002212023082914523310542489925837205504");
|
|
|
|
|
|
list.add("002212023082914532810542490158464483328");
|
|
|
|
|
|
list.add("002212023082915011510542492114503925760");
|
|
|
|
|
|
list.add("002212023082915132710542495185904664576");
|
|
|
|
|
|
list.add("002212023082915355210542500828656603136");
|
|
|
|
|
|
list.add("002212023082915380410542501379524153344");
|
|
|
|
|
|
list.add("002212023082916033310542507793852321792");
|
|
|
|
|
|
list.add("002212023082916053810542508320644042752");
|
|
|
|
|
|
list.add("002212023082916164410542511111665168384");
|
|
|
|
|
|
list.add("002212023082916260710542513472734416896");
|
|
|
|
|
|
list.add("002212023082916412610542517328046522368");
|
|
|
|
|
|
list.add("002212023082916494710542519430773919744");
|
|
|
|
|
|
list.add("002212023082916572710542521359978299392");
|
|
|
|
|
|
list.add("002212023082917004710542522199675392000");
|
|
|
|
|
|
list.add("002212023082917050910542523296648572928");
|
|
|
|
|
|
list.add("002212023082917193310542526920638873600");
|
|
|
|
|
|
list.add("002212023082917214910542527490424090624");
|
|
|
|
|
|
list.add("002212023082917371510542531376193462272");
|
|
|
|
|
|
list.add("002212023082917375410542531539814887424");
|
|
|
|
|
|
list.add("002212023082917434710542533019390349312");
|
|
|
|
|
|
list.add("002212023082917455010542533535928864768");
|
|
|
|
|
|
list.add("002212023082918062710542538722252677120");
|
|
|
|
|
|
list.add("002212023082918103610542539769525141504");
|
|
|
|
|
|
list.add("002212023082918145410542540850744541184");
|
|
|
|
|
|
list.add("002212023082918323810542545311606550528");
|
|
|
|
|
|
list.add("002212023082919200710542557262305312768");
|
|
|
|
|
|
list.add("002212023082919240310542558251234283520");
|
|
|
|
|
|
list.add("002212023082919501110542564827631759360");
|
|
|
|
|
|
list.add("002212023082920050710542568588133072896");
|
|
|
|
|
|
list.add("002212023082920063110542568937255153664");
|
|
|
|
|
|
list.add("002212023082920181010542571870744784896");
|
|
|
|
|
|
list.add("002212023082920182310542571926689398784");
|
|
|
|
|
|
list.add("002212023082920203910542572496029999104");
|
|
|
|
|
|
list.add("002212023082920224610542573030361776128");
|
|
|
|
|
|
list.add("002212023082920284010542574513986043904");
|
|
|
|
|
|
list.add("002212023082920310010542575101089845248");
|
|
|
|
|
|
list.add("002212023082920325510542575582885167104");
|
|
|
|
|
|
list.add("002212023082920334910542575807629520896");
|
|
|
|
|
|
list.add("002212023082920435410542578346411593728");
|
|
|
|
|
|
list.add("002212023082921122610542585525469229056");
|
|
|
|
|
|
list.add("002212023082921292210542589788161355776");
|
|
|
|
|
|
list.add("002212023082921510610542595257485832192");
|
|
|
|
|
|
list.add("002212023082921535510542595968001130496");
|
|
|
|
|
|
list.add("002212023082921545710542596229162520576");
|
|
|
|
|
|
list.add("002212023082921583410542597139164028928");
|
|
|
|
|
|
list.add("002212023082921584910542597202099384320");
|
|
|
|
|
|
list.add("002212023082921590210542597255073443840");
|
|
|
|
|
|
list.add("002212023082922002510542597601141272576");
|
|
|
|
|
|
list.add("002212023082922184910542602234568105984");
|
|
|
|
|
|
list.add("002212023082922215010542602994425188352");
|
|
|
|
|
|
list.add("002212023082922222010542603117328117760");
|
|
|
|
|
|
list.add("002212023082922240310542603551272402944");
|
|
|
|
|
|
list.add("002212023082922252410542603888906653696");
|
|
|
|
|
|
list.add("002212023082922375710542607047037911040");
|
|
|
|
|
|
list.add("002212023082922422410542608167179030528");
|
|
|
|
|
|
list.add("002212023082923113310542615502370803712");
|
|
|
|
|
|
list.add("002212023082923123110542615748292014080");
|
|
|
|
|
|
list.add("002212023082923211910542617963282628608");
|
|
|
|
|
|
list.add("002212023082923225210542618352347267072");
|
|
|
|
|
|
list.add("002212023082923235310542618608662786048");
|
|
|
|
|
|
list.add("002212023082923355710542621646478131200");
|
|
|
|
|
|
list.add("002212023082923395610542622646542786560");
|
|
|
|
|
|
list.add("002212023082923405710542622902465658880");
|
|
|
|
|
|
list.add("002212023083000060410542629222200012800");
|
|
|
|
|
|
list.add("002212023083000114210542630641173942272");
|
|
|
|
|
|
list.add("002212023083000420210542638274804527104");
|
|
|
|
|
|
list.add("002212023083000595110542642757759307776");
|
|
|
|
|
|
list.add("002212023083001204010542647999427932160");
|
|
|
|
|
|
list.add("002212023083002103110542660542759796736");
|
|
|
|
|
|
list.add("002212023083003045210542674220190191616");
|
|
|
|
|
|
list.add("002212023083003125110542676230492749824");
|
|
|
|
|
|
list.add("002212023083003201010542678069127753728");
|
|
|
|
|
|
list.add("002212023083003213610542678430328188928");
|
|
|
|
|
|
list.add("002212023083003543610542686737314676736");
|
|
|
|
|
|
list.add("002212023083005092410542705561869529088");
|
|
|
|
|
|
list.add("002212023083006013810542718704509595648");
|
|
|
|
|
|
list.add("002212023083006474910542730328971579392");
|
|
|
|
|
|
list.add("002212023083007084710542735604625686528");
|
|
|
|
|
|
list.add("002212023083007212610542738788787699712");
|
|
|
|
|
|
list.add("002212023083008185510542753253390303232");
|
|
|
|
|
|
list.add("002212023083008222010542754115020804096");
|
|
|
|
|
|
list.add("002212023083008231110542754325181751296");
|
|
|
|
|
|
list.add("002212023083008510410542761342246567936");
|
|
|
|
|
|
list.add("002212023083009342110542772236358090752");
|
|
|
|
|
|
list.add("002212023083009485710542775909057376256");
|
|
|
|
|
|
list.add("002212023083009583810542778349513359360");
|
|
|
|
|
|
list.add("002212023083010122710542781826394411008");
|
|
|
|
|
|
list.add("002212023083010224010542784396528373760");
|
|
|
|
|
|
list.add("002212023083010404410542788944042545152");
|
|
|
|
|
|
list.add("002212023083010435010542789722824228864");
|
|
|
|
|
|
list.add("002212023083011192810542798690609364992");
|
|
|
|
|
|
list.add("002212023083011312210542801683617693696");
|
|
|
|
|
|
list.add("002212023083011324910542802051125628928");
|
|
|
|
|
|
list.add("002212023083011351110542802644744949760");
|
|
|
|
|
|
list.add("002212023083011360010542802850748284928");
|
|
|
|
|
|
list.add("002212023083011442810542804983737823232");
|
|
|
|
|
|
list.add("002212023083011445210542805083078692864");
|
|
|
|
|
|
list.add("002212023083011535410542807355591127040");
|
|
|
|
|
|
list.add("002212023083012274210542815861275176960");
|
|
|
|
|
|
list.add("002212023083012473910542820882950279168");
|
|
|
|
|
|
list.add("002212023083012554710542822929485697024");
|
|
|
|
|
|
list.add("002212023083013111210542826809174953984");
|
|
|
|
|
|
list.add("002212023083013144710542827712146911232");
|
|
|
|
|
|
list.add("002212023083013173710542828423778762752");
|
|
|
|
|
|
list.add("002212023083013320710542832071153209344");
|
|
|
|
|
|
list.add("002212023083013323910542832207357263872");
|
|
|
|
|
|
list.add("002212023083013435510542835043593371648");
|
|
|
|
|
|
list.add("002212023083013523610542837226933125120");
|
|
|
|
|
|
list.add("002212023083013553910542837994364321792");
|
|
|
|
|
|
list.add("002212023083014080010542841103149076480");
|
|
|
|
|
|
list.add("002212023083014210710542844405388308480");
|
|
|
|
|
|
list.add("002212023083014362210542848242142720000");
|
|
|
|
|
|
list.add("002212023083014492110542851509570400256");
|
|
|
|
|
|
list.add("002212023083015060610542855723395334144");
|
|
|
|
|
|
list.add("002212023083015221510542859787107979264");
|
|
|
|
|
|
list.add("002212023083015394010542864170987806720");
|
|
|
|
|
|
list.add("002212023083015412410542864609757966336");
|
|
|
|
|
|
list.add("002212023083015483510542866416958799872");
|
|
|
|
|
|
list.add("002212023083015504510542866963122778112");
|
|
|
|
|
|
list.add("002212023083016010310542869553813803008");
|
|
|
|
|
|
list.add("002212023083016052010542870629308321792");
|
|
|
|
|
|
list.add("002212023083016140310542872823761485824");
|
|
|
|
|
|
list.add("002212023083017014410542884822577905664");
|
|
|
|
|
|
list.add("002212023083017102710542887019237441536");
|
|
|
|
|
|
list.add("002212023083017110510542887176762023936");
|
|
|
|
|
|
list.add("002212023083017181410542888975754428416");
|
|
|
|
|
|
list.add("002212023083017203910542889583728807936");
|
|
|
|
|
|
list.add("002212023083017231310542890232885432320");
|
|
|
|
|
|
list.add("002212023083017410010542894707228033024");
|
|
|
|
|
|
list.add("002212023083017441510542895525422075904");
|
|
|
|
|
|
list.add("002212023083017454510542895900449669120");
|
|
|
|
|
|
list.add("002212023083017561210542898533220810752");
|
|
|
|
|
|
list.add("002212023083017561410542898540757274624");
|
|
|
|
|
|
list.add("002212023083018012310542899834629279744");
|
|
|
|
|
|
list.add("002212023083018092410542901854714613760");
|
|
|
|
|
|
list.add("002212023083018311510542907350570565632");
|
|
|
|
|
|
list.add("002212023083018313310542907428278792192");
|
|
|
|
|
|
list.add("002212023083019001810542914662568812544");
|
|
|
|
|
|
list.add("002212023083019030410542915358092349440");
|
|
|
|
|
|
list.add("002212023083019142510542918216947851264");
|
|
|
|
|
|
list.add("002212023083019145410542918336048156672");
|
|
|
|
|
|
list.add("002212023083019304910542922341801590784");
|
|
|
|
|
|
list.add("002212023083019330910542922930800312320");
|
|
|
|
|
|
list.add("002212023083019453610542926061918408704");
|
|
|
|
|
|
list.add("002212023083019593810542929594046107648");
|
|
|
|
|
|
list.add("002212023083020102110542932289559216128");
|
|
|
|
|
|
list.add("002212023083020140110542933215295029248");
|
|
|
|
|
|
list.add("002212023083020293410542937128456413184");
|
|
|
|
|
|
list.add("002212023083020342010542938329124683776");
|
|
|
|
|
|
list.add("002212023083020384310542939429439004672");
|
|
|
|
|
|
list.add("002212023083020573210542944165566771200");
|
|
|
|
|
|
list.add("002212023083021142910542948432925208576");
|
|
|
|
|
|
list.add("002212023083021150210542948568499113984");
|
|
|
|
|
|
list.add("002212023083021180710542949344631078912");
|
|
|
|
|
|
list.add("002212023083021413910542955268924395520");
|
|
|
|
|
|
list.add("002212023083021415810542955349111377920");
|
|
|
|
|
|
list.add("002212023083021445710542956100387500032");
|
|
|
|
|
|
list.add("002212023083021545010542958584347222016");
|
|
|
|
|
|
list.add("002212023083021595910542959880664006656");
|
|
|
|
|
|
list.add("002212023083022002910542960006660874240");
|
|
|
|
|
|
list.add("002212023083022115310542962877656616960");
|
|
|
|
|
|
list.add("002212023083022155710542963900770172928");
|
|
|
|
|
|
list.add("002212023083022350610542968717318967296");
|
|
|
|
|
|
list.add("002212023083022454810542971413031456768");
|
|
|
|
|
|
list.add("002212023083022480510542971986893156352");
|
|
|
|
|
|
list.add("002212023083022544010542973643499225088");
|
|
|
|
|
|
list.add("002212023083022583810542974642851835904");
|
|
|
|
|
|
list.add("002212023083023041310542976045078433792");
|
|
|
|
|
|
list.add("002212023083023083310542977138172809216");
|
|
|
|
|
|
list.add("002212023083023122710542978118007803904");
|
|
|
|
|
|
list.add("002212023083023141610542978575317057536");
|
|
|
|
|
|
list.add("002212023083023270310542981791209148416");
|
|
|
|
|
|
list.add("002212023083023423710542985708775854080");
|
|
|
|
|
|
list.add("002212023083100171310542994418043899904");
|
|
|
|
|
|
list.add("002212023083102005510543020515630944256");
|
|
|
|
|
|
list.add("002212023083102062610543021903302668288");
|
|
|
|
|
|
list.add("002212023083102075310543022269475389440");
|
|
|
|
|
|
list.add("002212023083102301610543027899742306304");
|
|
|
|
|
|
list.add("002212023083102355710543029329113272320");
|
|
|
|
|
|
list.add("002212023083102583910543035041987506176");
|
|
|
|
|
|
list.add("002212023083103071010543037185069924352");
|
|
|
|
|
|
list.add("002212023083103184510543040102203174912");
|
|
|
|
|
|
list.add("002212023083103203310543040554547695616");
|
|
|
|
|
|
list.add("002212023083103212310543040764616192000");
|
|
|
|
|
|
list.add("002212023083103374810543044897602686976");
|
|
|
|
|
|
list.add("002212023083103484810543047663899947008");
|
|
|
|
|
|
list.add("002212023083106520910543093807263666176");
|
|
|
|
|
|
list.add("002212023083107011510543096094519975936");
|
|
|
|
|
|
list.add("002212023083107360710543104869778214912");
|
|
|
|
|
|
list.add("002212023083107462910543107478595035136");
|
|
|
|
|
|
list.add("002212023083107492810543108231674122240");
|
|
|
|
|
|
list.add("002212023083107552510543109726616174592");
|
|
|
|
|
|
list.add("002212023083108400310543120961597177856");
|
|
|
|
|
|
list.add("002212023083109124710543129197158350848");
|
|
|
|
|
|
list.add("002212023083109191710543130834144870400");
|
|
|
|
|
|
list.add("002212023083109245110543132233904574464");
|
|
|
|
|
|
list.add("002212023083109315410543134008243142656");
|
|
|
|
|
|
list.add("002212023083109353210543134921429782528");
|
|
|
|
|
|
list.add("002212023083110070510543142863927414784");
|
|
|
|
|
|
list.add("002212023083110072410543142940159168512");
|
|
|
|
|
|
list.add("002212023083110114610543144039741820928");
|
|
|
|
|
|
list.add("002212023083110131510543144412468367360");
|
|
|
|
|
|
list.add("002212023083110132010543144435361157120");
|
|
|
|
|
|
list.add("002212023083110150610543144880826998784");
|
|
|
|
|
|
list.add("002212023083111041710543157259130880000");
|
|
|
|
|
|
list.add("002212023083111115210543159163698798592");
|
|
|
|
|
|
list.add("002212023083111313410543164123025674240");
|
|
|
|
|
|
list.add("002212023083111350310543164998272483328");
|
|
|
|
|
|
list.add("002212023083111354310543165168271818752");
|
|
|
|
|
|
list.add("002212023083111492810543168628674080768");
|
|
|
|
|
|
list.add("002212023083112032310543172129927090176");
|
|
|
|
|
|
list.add("002212023083112184910543176015816679424");
|
|
|
|
|
|
list.add("002212023083112401610543181412467634176");
|
|
|
|
|
|
list.add("002212023083112415010543181807805595648");
|
|
|
|
|
|
list.add("002212023083113024710543187077932593152");
|
|
|
|
|
|
list.add("002212023083113041110543187432055287808");
|
|
|
|
|
|
list.add("002212023083113371710543195761432219648");
|
|
|
|
|
|
list.add("002212023083113411310543196751621181440");
|
|
|
|
|
|
list.add("002212023083113494210543198886296125440");
|
|
|
|
|
|
list.add("002212023083114003410543201619999997952");
|
|
|
|
|
|
list.add("002212023083114135310543204970874601472");
|
|
|
|
|
|
list.add("002212023083114155010543205461773615104");
|
|
|
|
|
|
list.add("002212023083114165010543205712122163200");
|
|
|
|
|
|
list.add("002212023083114222610543207124444008448");
|
|
|
|
|
|
list.add("002212023083114315710543209519995326464");
|
|
|
|
|
|
list.add("002212023083114365910543210783236227072");
|
|
|
|
|
|
list.add("002212023083114414910543212000561483776");
|
|
|
|
|
|
list.add("002212023083114434110543212471430303744");
|
|
|
|
|
|
list.add("002212023083114510910543214351422308352");
|
|
|
|
|
|
list.add("002212023083115141610543220165843337216");
|
|
|
|
|
|
list.add("002212023083115190110543221363900743680");
|
|
|
|
|
|
list.add("002212023083115205910543221857356238848");
|
|
|
|
|
|
list.add("002212023083115353110543225516172922880");
|
|
|
|
|
|
list.add("002212023083115425910543227392723009536");
|
|
|
|
|
|
list.add("002212023083115452610543228010023251968");
|
|
|
|
|
|
list.add("002212023083115524610543229857746432000");
|
|
|
|
|
|
list.add("002212023083115583910543231336953073664");
|
|
|
|
|
|
list.add("002212023083116020710543232208470261760");
|
|
|
|
|
|
list.add("002212023083116022010543232265849303040");
|
|
|
|
|
|
list.add("002212023083116034110543232602529316864");
|
|
|
|
|
|
list.add("002212023083116064410543233370402926592");
|
|
|
|
|
|
list.add("002212023083116131010543234989857624064");
|
|
|
|
|
|
list.add("002212023083116135310543235172048633856");
|
|
|
|
|
|
list.add("002212023083116172610543236063416332288");
|
|
|
|
|
|
list.add("002212023083116173510543236101087326208");
|
|
|
|
|
|
list.add("002212023083116235110543237677306413056");
|
|
|
|
|
|
list.add("002212023083116441810543242823365898240");
|
|
|
|
|
|
list.add("002212023083116510510543244533474938880");
|
|
|
|
|
|
list.add("002212023083116563410543245911442247680");
|
|
|
|
|
|
list.add("002212023083116591510543246589570940928");
|
|
|
|
|
|
list.add("002212023083116592310543246620435955712");
|
|
|
|
|
|
list.add("002212023083117120310543249807715504128");
|
|
|
|
|
|
list.add("002212023083117152910543250672490135552");
|
|
|
|
|
|
list.add("002212023083117184310543251486817275904");
|
|
|
|
|
|
list.add("002212023083117241610543252883829469184");
|
|
|
|
|
|
list.add("002212023083117370510543256108994945024");
|
|
|
|
|
|
list.add("002212023083117445010543258060081348608");
|
|
|
|
|
|
list.add("002212023083117493810543259266458705920");
|
|
|
|
|
|
list.add("002212023083118055110543263345981624320");
|
|
|
|
|
|
list.add("002212023083118065710543263623518478336");
|
|
|
|
|
|
list.add("002212023083118072810543263755555000320");
|
|
|
|
|
|
list.add("002212023083118211210543267209433600000");
|
|
|
|
|
|
list.add("002212023083118213610543267310974636032");
|
|
|
|
|
|
list.add("002212023083118425210543272663976087552");
|
|
|
|
|
|
list.add("002212023083118462210543273544850178048");
|
|
|
|
|
|
list.add("002212023083118554910543275922538123264");
|
|
|
|
|
|
list.add("002212023083118562310543276063027056640");
|
|
|
|
|
|
list.add("002212023083119145410543280723918016512");
|
|
|
|
|
|
list.add("002212023083119253310543283404125401088");
|
|
|
|
|
|
list.add("002212023083119313210543284910109511680");
|
|
|
|
|
|
list.add("002212023083119393510543286936740196352");
|
|
|
|
|
|
list.add("002212023083119561610543291134570614784");
|
|
|
|
|
|
list.add("002212023083120000710543292102200811520");
|
|
|
|
|
|
list.add("002212023083120113810543295004419391488");
|
|
|
|
|
|
list.add("002212023083120150310543295864292904960");
|
|
|
|
|
|
list.add("002212023083120190310543296866828701696");
|
|
|
|
|
|
list.add("002212023083120273110543298999284158464");
|
|
|
|
|
|
list.add("002212023083120455510543303629392424960");
|
|
|
|
|
|
list.add("002212023083120504010543304825218519040");
|
|
|
|
|
|
list.add("002212023083120590610543306946361970688");
|
|
|
|
|
|
list.add("002212023083121011610543307491161829376");
|
|
|
|
|
|
list.add("002212023083121013310543307563306307584");
|
|
|
|
|
|
list.add("002212023083121062710543308797833404416");
|
|
|
|
|
|
list.add("002212023083121111510543310005929881600");
|
|
|
|
|
|
list.add("002212023083121115410543310169319690240");
|
|
|
|
|
|
list.add("002212023083121361210543316284165459968");
|
|
|
|
|
|
list.add("002212023083121381010543316779769364480");
|
|
|
|
|
|
list.add("002212023083121395710543317225960235008");
|
|
|
|
|
|
list.add("002212023083121495410543319733288439808");
|
|
|
|
|
|
list.add("002212023083121531010543320555236159488");
|
|
|
|
|
|
list.add("002212023083122024110543322947614920704");
|
|
|
|
|
|
list.add("002212023083122164210543326474600992768");
|
|
|
|
|
|
list.add("002212023083122253010543328690369691648");
|
|
|
|
|
|
list.add("002212023083122271710543329141267476480");
|
|
|
|
|
|
list.add("002212023083123073710543339291363930112");
|
|
|
|
|
|
list.add("002212023083123131610543340711349907456");
|
|
|
|
|
|
list.add("002212023083123293710543344824888295424");
|
|
|
|
|
|
list.add("002212023083123360110543346436926443520");
|
|
|
|
|
|
list.add("002212023083123421910543348022112178176");
|
|
|
|
|
|
list.add("002212023083123431510543348258886709248");
|
|
|
|
|
|
list.add("002212023083123575610543351951576371200");
|
|
|
|
|
|
list.add("002212023090100095010543354946089250816");
|
|
|
|
|
|
list.add("002212023090100313010543360399213842432");
|
|
|
|
|
|
list.add("002212023090100432210543363386206027776");
|
|
|
|
|
|
list.add("002212023090100585810543367310474727424");
|
|
|
|
|
|
list.add("002212023090101052010543368915265130496");
|
|
|
|
|
|
list.add("002212023090101532210543381002684588032");
|
|
|
|
|
|
list.add("002212023090102340510543391247107608576");
|
|
|
|
|
|
list.add("002212023090102581710543397340434984960");
|
|
|
|
|
|
list.add("002212023090103052710543399141609930752");
|
|
|
|
|
|
list.add("002212023090103071610543399599209140224");
|
|
|
|
|
|
list.add("002212023090103505210543410573650276352");
|
|
|
|
|
|
list.add("002212023090103581210543412418709655552");
|
|
|
|
|
|
list.add("002212023090104395210543422902819221504");
|
|
|
|
|
|
list.add("002212023090106174210543447525800640512");
|
|
|
|
|
|
list.add("002212023090106181410543447658803818496");
|
|
|
|
|
|
list.add("002212023090106215310543448578327564288");
|
|
|
|
|
|
list.add("002212023090107352410543467076500160512");
|
|
|
|
|
|
list.add("002212023090108273710543480218408837120");
|
|
|
|
|
|
list.add("002212023090108403410543483477144862720");
|
|
|
|
|
|
list.add("002212023090109030210543489132200857600");
|
|
|
|
|
|
list.add("002212023090109064710543490073991270400");
|
|
|
|
|
|
list.add("002212023090109173410543492790690910208");
|
|
|
|
|
|
list.add("002212023090109251110543494706523148288");
|
|
|
|
|
|
list.add("002212023090109262710543495026238164992");
|
|
|
|
|
|
list.add("002212023090109273210543495295241314304");
|
|
|
|
|
|
list.add("002212023090109325410543496648756137984");
|
|
|
|
|
|
list.add("002212023090109330610543496696956669952");
|
|
|
|
|
|
list.add("002212023090109382810543498050051792896");
|
|
|
|
|
|
list.add("002212023090109484710543500645830250496");
|
|
|
|
|
|
list.add("002212023090109511310543501255838130176");
|
|
|
|
|
|
list.add("002212023090110105510543506214524915712");
|
|
|
|
|
|
list.add("002212023090110193610543508400265392128");
|
|
|
|
|
|
list.add("002212023090110243110543509638354415616");
|
|
|
|
|
|
list.add("002212023090110315510543511497917456384");
|
|
|
|
|
|
list.add("002212023090110472410543515394956718080");
|
|
|
|
|
|
list.add("002212023090111103410543521227795955712");
|
|
|
|
|
|
list.add("002212023090111305710543526357884530688");
|
|
|
|
|
|
list.add("002212023090112352610543542582868279296");
|
|
|
|
|
|
list.add("002212023090112391110543543527712387072");
|
|
|
|
|
|
list.add("002212023090113032210543549614350389248");
|
|
|
|
|
|
list.add("002212023090113191010543553587741560832");
|
|
|
|
|
|
list.add("002212023090113201610543553864960471040");
|
|
|
|
|
|
list.add("002212023090113251510543555120429068288");
|
|
|
|
|
|
list.add("002212023090113355010543557783789260800");
|
|
|
|
|
|
list.add("002212023090113372210543558171628240896");
|
|
|
|
|
|
list.add("002212023090113403210543558967912583168");
|
|
|
|
|
|
list.add("002212023090113583610543563514671394816");
|
|
|
|
|
|
list.add("002212023090114070510543565646398062592");
|
|
|
|
|
|
list.add("002212023090114333010543572295095406592");
|
|
|
|
|
|
list.add("002212023090114365710543573163003670528");
|
|
|
|
|
|
list.add("002212023090114433810543574848240377856");
|
|
|
|
|
|
list.add("002212023090114465410543575669136261120");
|
|
|
|
|
|
list.add("002212023090114473710543575848848830464");
|
|
|
|
|
|
list.add("002212023090114475910543575941385392128");
|
|
|
|
|
|
list.add("002212023090115075710543580964650582016");
|
|
|
|
|
|
list.add("002212023090115121010543582025402646528");
|
|
|
|
|
|
list.add("002212023090115212710543584364311838720");
|
|
|
|
|
|
list.add("002212023090115243310543585141413924864");
|
|
|
|
|
|
list.add("002212023090115384610543588721518411776");
|
|
|
|
|
|
list.add("002212023090115395410543589005773721600");
|
|
|
|
|
|
list.add("002212023090115441310543590091294212096");
|
|
|
|
|
|
list.add("002212023090115443510543590184338870272");
|
|
|
|
|
|
list.add("002212023090115520710543592082411483136");
|
|
|
|
|
|
list.add("002212023090115562110543593145976455168");
|
|
|
|
|
|
list.add("002212023090116180910543598631521116160");
|
|
|
|
|
|
list.add("002212023090116223110543599730500165632");
|
|
|
|
|
|
list.add("002212023090116230110543599858892005376");
|
|
|
|
|
|
list.add("002212023090116374610543603567303487488");
|
|
|
|
|
|
list.add("002212023090116414110543604554608271360");
|
|
|
|
|
|
list.add("002212023090116463210543605776523259904");
|
|
|
|
|
|
list.add("002212023090116491410543606456276246528");
|
|
|
|
|
|
list.add("002212023090117113010543612057243217920");
|
|
|
|
|
|
list.add("002212023090117114510543612120699863040");
|
|
|
|
|
|
list.add("002212023090117190710543613976920162304");
|
|
|
|
|
|
list.add("002212023090117200510543614216620371968");
|
|
|
|
|
|
list.add("002212023090117345710543617961285672960");
|
|
|
|
|
|
list.add("002212023090117365710543618463296933888");
|
|
|
|
|
|
list.add("002212023090117444410543620421610958848");
|
|
|
|
|
|
list.add("002212023090117514310543622177756667904");
|
|
|
|
|
|
list.add("002212023090117561810543623333829308416");
|
|
|
|
|
|
list.add("002212023090118225010543630010290647040");
|
|
|
|
|
|
list.add("002212023090118400210543634337141325824");
|
|
|
|
|
|
list.add("002212023090118421710543634903384879104");
|
|
|
|
|
|
list.add("002212023090118470210543636100961783808");
|
|
|
|
|
|
list.add("002212023090118533410543637744341585920");
|
|
|
|
|
|
list.add("002212023090119124110543642555550134272");
|
|
|
|
|
|
list.add("002212023090119241810543645479836569600");
|
|
|
|
|
|
list.add("002212023090119263710543646061055766528");
|
|
|
|
|
|
list.add("002212023090119422010543650017037615104");
|
|
|
|
|
|
list.add("002212023090119435410543650412536029184");
|
|
|
|
|
|
list.add("002212023090119491310543651747594862592");
|
|
|
|
|
|
list.add("002212023090119541210543653001402273792");
|
|
|
|
|
|
list.add("002212023090120141610543658050925649920");
|
|
|
|
|
|
list.add("002212023090120290210543661767641370624");
|
|
|
|
|
|
list.add("002212023090120292010543661844547076096");
|
|
|
|
|
|
list.add("002212023090120335210543662983874457600");
|
|
|
|
|
|
list.add("002212023090120335510543662998148370432");
|
|
|
|
|
|
list.add("002212023090120530910543667839785361408");
|
|
|
|
|
|
list.add("002212023090120572910543668929259098112");
|
|
|
|
|
|
list.add("002212023090121004010543669730102759424");
|
|
|
|
|
|
list.add("002212023090121030910543670352810893312");
|
|
|
|
|
|
list.add("002212023090121032310543670414094209024");
|
|
|
|
|
|
list.add("002212023090121032810543670433925459968");
|
|
|
|
|
|
list.add("002212023090121310810543677398813003776");
|
|
|
|
|
|
list.add("002212023090121424510543680322578436096");
|
|
|
|
|
|
list.add("002212023090121483910543681806038528000");
|
|
|
|
|
|
list.add("002212023090121494310543682075069575168");
|
|
|
|
|
|
list.add("002212023090122061410543686231884722176");
|
|
|
|
|
|
list.add("002212023090122130910543687971576582144");
|
|
|
|
|
|
list.add("002212023090122170010543688939038695424");
|
|
|
|
|
|
list.add("002212023090122295010543692170888581120");
|
|
|
|
|
|
list.add("002212023090122450910543696025871585280");
|
|
|
|
|
|
list.add("002212023090123005610543699994640142336");
|
|
|
|
|
|
list.add("002212023090123105410543702503199969280");
|
|
|
|
|
|
list.add("002212023090123141310543703336853565440");
|
|
|
|
|
|
list.add("002212023090123152510543703640161484800");
|
|
|
|
|
|
list.add("002212023090123185910543704538530295808");
|
|
|
|
|
|
list.add("002212023090123283810543706964867805184");
|
|
|
|
|
|
list.add("002212023090123293210543707193463300096");
|
|
|
|
|
|
list.add("002212023090123293810543707219733217280");
|
|
|
|
|
|
list.add("002212023090123313610543707714958884864");
|
|
|
|
|
|
list.add("002212023090123362810543708939321368576");
|
|
|
|
|
|
list.add("002212023090123372210543709162993750016");
|
|
|
|
|
|
list.add("002212023090123405110543710043336855552");
|
|
|
|
|
|
list.add("002212023090123463510543711483946815488");
|
|
|
|
|
|
list.add("002212023090123494210543712270502981632");
|
|
|
|
|
|
list.add("002212023090200350710543723697358565376");
|
|
|
|
|
|
list.add("002212023090200424910543725635901050880");
|
|
|
|
|
|
list.add("002212023090201053410543731360610865152");
|
|
|
|
|
|
list.add("002212023090201233610543735899986980864");
|
|
|
|
|
|
list.add("002212023090201483710543742195457871872");
|
|
|
|
|
|
list.add("002212023090202214410543750527292493824");
|
|
|
|
|
|
list.add("002212023090202274110543752027931639808");
|
|
|
|
|
|
list.add("002212023090202493910543757553559531520");
|
|
|
|
|
|
list.add("002212023090202544310543758831300661248");
|
|
|
|
|
|
list.add("002212023090203184710543764886067970048");
|
|
|
|
|
|
list.add("002212023090203324810543768411920527360");
|
|
|
|
|
|
list.add("002212023090203374010543769638694256640");
|
|
|
|
|
|
list.add("002212023090204481310543787391159652352");
|
|
|
|
|
|
list.add("002212023090206434810543816481840697344");
|
|
|
|
|
|
list.add("002212023090207142010543824165267107840");
|
|
|
|
|
|
list.add("002212023090207171210543824886472400896");
|
|
|
|
|
|
list.add("002212023090207305310543828329463648256");
|
|
|
|
|
|
list.add("002212023090207403410543830764365008896");
|
|
|
|
|
|
list.add("002212023090208471910543847564598439936");
|
|
|
|
|
|
list.add("002212023090209125810543854020644855808");
|
|
|
|
|
|
list.add("002212023090209395510543860799338835968");
|
|
|
|
|
|
list.add("002212023090209440410543861844900864000");
|
|
|
|
|
|
list.add("002212023090210011810543866183777615872");
|
|
|
|
|
|
list.add("002212023090210004810543866057650622464");
|
|
|
|
|
|
list.add("002212023090210122210543868969749282816");
|
|
|
|
|
|
list.add("002212023090210180210543870393338003456");
|
|
|
|
|
|
list.add("002212023090210243810543872053124853760");
|
|
|
|
|
|
list.add("002212023090210290810543873185609281536");
|
|
|
|
|
|
list.add("002212023090210365210543875134937477120");
|
|
|
|
|
|
list.add("002212023090210432610543876783992496128");
|
|
|
|
|
|
list.add("002212023090210435610543876911319904256");
|
|
|
|
|
|
list.add("002212023090210531410543879253623144448");
|
|
|
|
|
|
list.add("002212023090211055610543882449473789952");
|
|
|
|
|
|
list.add("002212023090211064710543882662073880576");
|
|
|
|
|
|
list.add("002212023090211160910543885020748451840");
|
|
|
|
|
|
list.add("002212023090211165210543885201640370176");
|
|
|
|
|
|
list.add("002212023090211290810543888286534209536");
|
|
|
|
|
|
list.add("002212023090211313410543888898952900608");
|
|
|
|
|
|
list.add("002212023090211440810543892062744051712");
|
|
|
|
|
|
list.add("002212023090211473810543892940840751104");
|
|
|
|
|
|
list.add("002212023090211552310543894890626633728");
|
|
|
|
|
|
list.add("002212023090212055910543897559177125888");
|
|
|
|
|
|
list.add("002212023090212090710543898348015865856");
|
|
|
|
|
|
list.add("002212023090212415510543906602095063040");
|
|
|
|
|
|
list.add("002212023090213140110543914681361223680");
|
|
|
|
|
|
list.add("002212023090213262810543917816146395136");
|
|
|
|
|
|
list.add("002212023090214000410543926271353257984");
|
|
|
|
|
|
list.add("002212023090214155310543930249372786688");
|
|
|
|
|
|
list.add("002212023090214162410543930380520284160");
|
|
|
|
|
|
list.add("002212023090214162710543930395053477888");
|
|
|
|
|
|
list.add("002212023090214172410543930632196292608");
|
|
|
|
|
|
list.add("002212023090214423810543936983650918400");
|
|
|
|
|
|
list.add("002212023090214451510543937642465464320");
|
|
|
|
|
|
list.add("002212023090214485110543938546624991232");
|
|
|
|
|
|
list.add("002212023090214571510543940662288846848");
|
|
|
|
|
|
list.add("002212023090214585110543941064092049408");
|
|
|
|
|
|
list.add("002212023090214581510543940912489852928");
|
|
|
|
|
|
list.add("002212023090215021910543941935224745984");
|
|
|
|
|
|
list.add("002212023090215050410543942629794639872");
|
|
|
|
|
|
list.add("002212023090215140710543944904097263616");
|
|
|
|
|
|
list.add("002212023090215153010543945254384562176");
|
|
|
|
|
|
list.add("002212023090215180310543945897074511872");
|
|
|
|
|
|
list.add("002212023090215181110543945928624955392");
|
|
|
|
|
|
list.add("002212023090215181910543945963857108992");
|
|
|
|
|
|
list.add("002212023090215214310543946818231078912");
|
|
|
|
|
|
list.add("002212023090215270110543948151039676416");
|
|
|
|
|
|
list.add("002212023090215270810543948181017427968");
|
|
|
|
|
|
list.add("002212023090215275210543948364300124160");
|
|
|
|
|
|
list.add("002212023090215385210543951133515558912");
|
|
|
|
|
|
list.add("002212023090215401910543951498461974528");
|
|
|
|
|
|
list.add("002212023090215464710543953124528910336");
|
|
|
|
|
|
list.add("002212023090215571710543955770592677888");
|
|
|
|
|
|
list.add("002212023090216001410543956513305784320");
|
|
|
|
|
|
list.add("002212023090216030110543957212440195072");
|
|
|
|
|
|
list.add("002212023090216242410543962592765792256");
|
|
|
|
|
|
list.add("002212023090216260810543963031134298112");
|
|
|
|
|
|
list.add("002212023090216455610543968011491348480");
|
|
|
|
|
|
list.add("002212023090217211810543976913926483968");
|
|
|
|
|
|
list.add("002212023090217274510543978534640836608");
|
|
|
|
|
|
list.add("002212023090217311610543979421533319168");
|
|
|
|
|
|
list.add("002212023090217402710543981731794407424");
|
|
|
|
|
|
list.add("002212023090217551710543985466553012224");
|
|
|
|
|
|
list.add("002212023090218023610543987305388019712");
|
|
|
|
|
|
list.add("002212023090218091110543988962515587072");
|
|
|
|
|
|
list.add("002212023090218132310543990021602512896");
|
|
|
|
|
|
list.add("002212023090218234910543992646887636992");
|
|
|
|
|
|
list.add("002212023090218463910543998389747249152");
|
|
|
|
|
|
list.add("002212023090218583410544001389692026880");
|
|
|
|
|
|
list.add("002212023090219083510544003912235585536");
|
|
|
|
|
|
list.add("002212023090219114910544004726483869696");
|
|
|
|
|
|
list.add("002212023090219211510544007096727101440");
|
|
|
|
|
|
list.add("002212023090219295510544009279308685312");
|
|
|
|
|
|
list.add("002212023090219324210544009982126346240");
|
|
|
|
|
|
list.add("002212023090219421410544012378089029632");
|
|
|
|
|
|
list.add("002212023090219432210544012663856062464");
|
|
|
|
|
|
list.add("002212023090219455810544013320332832768");
|
|
|
|
|
|
list.add("002212023090219524310544015017845477376");
|
|
|
|
|
|
list.add("002212023090220002910544016973734449152");
|
|
|
|
|
|
list.add("002212023090220055110544018323016638464");
|
|
|
|
|
|
list.add("002212023090220071910544018692273963008");
|
|
|
|
|
|
list.add("002212023090220073310544018752051826688");
|
|
|
|
|
|
list.add("002212023090220110510544019641543061504");
|
|
|
|
|
|
list.add("002212023090220181510544021441182281728");
|
|
|
|
|
|
list.add("002212023090220234210544022814360326144");
|
|
|
|
|
|
list.add("002212023090220235410544022864158658560");
|
|
|
|
|
|
list.add("002212023090220301210544024450647150592");
|
|
|
|
|
|
list.add("002212023090220470310544028689407569920");
|
|
|
|
|
|
list.add("002212023090221105110544034680151232512");
|
|
|
|
|
|
list.add("002212023090221190210544036739744952320");
|
|
|
|
|
|
list.add("002212023090221200610544037009577275392");
|
|
|
|
|
|
list.add("002212023090221214910544037439667720192");
|
|
|
|
|
|
list.add("002212023090221265810544038735346274304");
|
|
|
|
|
|
list.add("002212023090221322210544040096495951872");
|
|
|
|
|
|
list.add("002212023090221341110544040551148556288");
|
|
|
|
|
|
list.add("002212023090221343310544040646050439168");
|
|
|
|
|
|
list.add("002212023090221394710544041963285086208");
|
|
|
|
|
|
list.add("002212023090221464510544043715161329664");
|
|
|
|
|
|
list.add("002212023090221523210544045172376367104");
|
|
|
|
|
|
list.add("002212023090221575110544046508975386624");
|
|
|
|
|
|
list.add("002212023090222032510544047908835942400");
|
|
|
|
|
|
list.add("002212023090222124910544050275724525568");
|
|
|
|
|
|
list.add("002212023090222152010544050907518472192");
|
|
|
|
|
|
list.add("002212023090222160010544051075639398400");
|
|
|
|
|
|
list.add("002212023090222261610544053659273850880");
|
|
|
|
|
|
list.add("002212023090222263710544053747192303616");
|
|
|
|
|
|
list.add("002212023090222285210544054314901131264");
|
|
|
|
|
|
list.add("002212023090222375610544056597164544000");
|
|
|
|
|
|
list.add("002212023090222440710544058152820375552");
|
|
|
|
|
|
list.add("002212023090222460510544058646459604992");
|
|
|
|
|
|
list.add("002212023090222523810544060296246317056");
|
|
|
|
|
|
list.add("002212023090223020410544062669962334208");
|
|
|
|
|
|
list.add("002212023090223023410544062795952001024");
|
|
|
|
|
|
list.add("002212023090223091610544064482329513984");
|
|
|
|
|
|
list.add("002212023090223135310544065644264968192");
|
|
|
|
|
|
list.add("002212023090223185810544066920574865408");
|
|
|
|
|
|
list.add("002212023090223205410544067409551130624");
|
|
|
|
|
|
list.add("002212023090223214310544067614536208384");
|
|
|
|
|
|
list.add("002212023090223280810544069229123317760");
|
|
|
|
|
|
list.add("002212023090223364310544071388336648192");
|
|
|
|
|
|
list.add("002212023090223395410544072189381767168");
|
|
|
|
|
|
list.add("002212023090223423110544072847273328640");
|
|
|
|
|
|
list.add("002212023090300035310544078225818734592");
|
|
|
|
|
|
list.add("002212023090300290210544084554859171840");
|
|
|
|
|
|
list.add("002212023090300303910544084963809718272");
|
|
|
|
|
|
list.add("002212023090300332110544085643144359936");
|
|
|
|
|
|
list.add("002212023090301042410544093456885248000");
|
|
|
|
|
|
list.add("002212023090301270910544099180245553152");
|
|
|
|
|
|
list.add("002212023090301432810544103286601646080");
|
|
|
|
|
|
list.add("002212023090301450010544103673391321088");
|
|
|
|
|
|
list.add("002212023090301585310544107168264605696");
|
|
|
|
|
|
list.add("002212023090302042910544108577372209152");
|
|
|
|
|
|
list.add("002212023090302442110544118609501454336");
|
|
|
|
|
|
list.add("002212023090302592710544122408695345152");
|
|
|
|
|
|
list.add("002212023090303002510544122650645356544");
|
|
|
|
|
|
list.add("002212023090303151410544126382146551808");
|
|
|
|
|
|
list.add("002212023090303475110544134588306452480");
|
|
|
|
|
|
list.add("002212023090304060810544139190606598144");
|
|
|
|
|
|
list.add("002212023090304384710544147406011559936");
|
|
|
|
|
|
list.add("002212023090304400510544147734663651328");
|
|
|
|
|
|
list.add("002212023090307061410544184514444365824");
|
|
|
|
|
|
list.add("002212023090307225610544188716755050496");
|
|
|
|
|
|
list.add("002212023090307382010544192593352183808");
|
|
|
|
|
|
list.add("002212023090308314810544206048697114624");
|
|
|
|
|
|
list.add("002212023090308373910544207519292223488");
|
|
|
|
|
|
list.add("002212023090308390310544207869667602432");
|
|
|
|
|
|
list.add("002212023090308440610544209144410402816");
|
|
|
|
|
|
list.add("002212023090308493910544210541340372992");
|
|
|
|
|
|
list.add("002212023090309003510544213289831522304");
|
|
|
|
|
|
list.add("002212023090309184510544217862855294976");
|
|
|
|
|
|
list.add("002212023090309245710544219421332058112");
|
|
|
|
|
|
list.add("002212023090309422410544223816027983872");
|
|
|
|
|
|
list.add("002212023090309483310544225363073757184");
|
|
|
|
|
|
list.add("002212023090309503910544225888480890880");
|
|
|
|
|
|
list.add("002212023090309592610544228099371954176");
|
|
|
|
|
|
list.add("002212023090310024510544228934847950848");
|
|
|
|
|
|
list.add("002212023090310101010544230800378810368");
|
|
|
|
|
|
list.add("002212023090310130110544231517547982848");
|
|
|
|
|
|
list.add("002212023090310152110544232105941630976");
|
|
|
|
|
|
list.add("002212023090310222010544233863724105728");
|
|
|
|
|
|
list.add("002212023090310264710544234985253105664");
|
|
|
|
|
|
list.add("002212023090310265210544235003329015808");
|
|
|
|
|
|
list.add("002212023090310340110544236803544682496");
|
|
|
|
|
|
list.add("002212023090310431510544239126038806528");
|
|
|
|
|
|
list.add("002212023090310590710544243120128757760");
|
|
|
|
|
|
list.add("002212023090311015710544243832586469376");
|
|
|
|
|
|
list.add("002212023090311052510544244708149841920");
|
|
|
|
|
|
list.add("002212023090311285610544250624572149760");
|
|
|
|
|
|
list.add("002212023090311460310544254930980835328");
|
|
|
|
|
|
list.add("002212023090311520410544256444789706752");
|
|
|
|
|
|
list.add("002212023090312021810544259023237419008");
|
|
|
|
|
|
list.add("002212023090312110810544261245027995648");
|
|
|
|
|
|
list.add("002212023090312111510544261275362365440");
|
|
|
|
|
|
list.add("002212023090312150410544262235447521280");
|
|
|
|
|
|
list.add("002212023090312221010544264020957618176");
|
|
|
|
|
|
list.add("002212023090312423910544269173583872000");
|
|
|
|
|
|
list.add("002212023090312493510544270920612962304");
|
|
|
|
|
|
list.add("002212023090312495610544271010190712832");
|
|
|
|
|
|
list.add("002212023090312564310544272716327161856");
|
|
|
|
|
|
list.add("002212023090312580710544273067394330624");
|
|
|
|
|
|
list.add("002212023090313141610544277133277376512");
|
|
|
|
|
|
list.add("002212023090313374210544283029640736768");
|
|
|
|
|
|
list.add("002212023090313415910544284107610583040");
|
|
|
|
|
|
list.add("002212023090313460110544285123807932416");
|
|
|
|
|
|
list.add("002212023090313462210544285210507014144");
|
|
|
|
|
|
list.add("002212023090314065610544290386881966080");
|
|
|
|
|
|
list.add("002212023090314140010544292165399445504");
|
|
|
|
|
|
list.add("002212023090314172610544293026896826368");
|
|
|
|
|
|
list.add("002212023090314282210544295780253663232");
|
|
|
|
|
|
list.add("002212023090314311510544296505012547584");
|
|
|
|
|
|
list.add("002212023090314423310544299351496183808");
|
|
|
|
|
|
list.add("002212023090314465010544300425989611520");
|
|
|
|
|
|
list.add("002212023090314552610544302592330780672");
|
|
|
|
|
|
list.add("002212023090314562310544302830750380032");
|
|
|
|
|
|
list.add("002212023090314595210544303708578091008");
|
|
|
|
|
|
list.add("002212023090315130110544307016731258880");
|
|
|
|
|
|
list.add("002212023090315231410544309589258661888");
|
|
|
|
|
|
list.add("002212023090315294310544311217438875648");
|
|
|
|
|
|
list.add("002212023090315383510544313449521975296");
|
|
|
|
|
|
list.add("002212023090315384810544313504285949952");
|
|
|
|
|
|
list.add("002212023090315494310544316251396497408");
|
|
|
|
|
|
list.add("002212023090316020410544319362114641920");
|
|
|
|
|
|
list.add("002212023090316212810544324242729304064");
|
|
|
|
|
|
list.add("002212023090316223510544324524567277568");
|
|
|
|
|
|
list.add("002212023090316244110544325050881126400");
|
|
|
|
|
|
list.add("002212023090316395410544328881035407360");
|
|
|
|
|
|
list.add("002212023090316443110544330043538923520");
|
|
|
|
|
|
list.add("002212023090316484110544331092510011392");
|
|
|
|
|
|
list.add("002212023090316521510544331990263103488");
|
|
|
|
|
|
list.add("002212023090317060310544335463532040192");
|
|
|
|
|
|
list.add("002212023090317114010544336877132296192");
|
|
|
|
|
|
list.add("002212023090317164210544338143343828992");
|
|
|
|
|
|
list.add("002212023090317200710544339000646160384");
|
|
|
|
|
|
list.add("002212023090317253310544340369443778560");
|
|
|
|
|
|
list.add("002212023090317265910544340729017536512");
|
|
|
|
|
|
list.add("002212023090317444710544345211542986752");
|
|
|
|
|
|
list.add("002212023090317542310544347627545264128");
|
|
|
|
|
|
list.add("002212023090317592710544348902875430912");
|
|
|
|
|
|
list.add("002212023090318102410544351656858570752");
|
|
|
|
|
|
list.add("002212023090318120410544352075689254912");
|
|
|
|
|
|
list.add("002212023090318265310544355805325824000");
|
|
|
|
|
|
list.add("002212023090318315810544357084821614592");
|
|
|
|
|
|
list.add("002212023090318363810544358257652158464");
|
|
|
|
|
|
list.add("002212023090318381010544358643018203136");
|
|
|
|
|
|
list.add("002212023090318422010544359693076533248");
|
|
|
|
|
|
list.add("002212023090319032310544364989243518976");
|
|
|
|
|
|
list.add("002212023090319242710544370290315198464");
|
|
|
|
|
|
list.add("002212023090319274010544371100228382720");
|
|
|
|
|
|
list.add("002212023090319532910544377597148291072");
|
|
|
|
|
|
list.add("002212023090320242710544385392674402304");
|
|
|
|
|
|
list.add("002212023090321223810544400032660742144");
|
|
|
|
|
|
list.add("002212023090321281910544401463754158080");
|
|
|
|
|
|
list.add("002212023090321334810544402843736985600");
|
|
|
|
|
|
list.add("002212023090321371810544403725546549248");
|
|
|
|
|
|
list.add("002212023090321373510544403797964025856");
|
|
|
|
|
|
list.add("002212023090321403710544404561098289152");
|
|
|
|
|
|
list.add("002212023090321474310544406345568874496");
|
|
|
|
|
|
list.add("002212023090321515810544407415052103680");
|
|
|
|
|
|
list.add("002212023090321544110544408099627827200");
|
|
|
|
|
|
list.add("002212023090321550610544408203692703744");
|
|
|
|
|
|
list.add("002212023090321592010544409271151382528");
|
|
|
|
|
|
list.add("002212023090322051210544410746084454400");
|
|
|
|
|
|
list.add("002212023090322255610544415962114166784");
|
|
|
|
|
|
list.add("002212023090322261810544416054943965184");
|
|
|
|
|
|
list.add("002212023090322373410544418890709696512");
|
|
|
|
|
|
list.add("002212023090323180310544429077468532736");
|
|
|
|
|
|
list.add("002212023090323221910544430151626514432");
|
|
|
|
|
|
list.add("002212023090323394410544434537643593728");
|
|
|
|
|
|
list.add("002212023090323444310544435790750703616");
|
|
|
|
|
|
list.add("002212023090323460610544436137542684672");
|
|
|
|
|
|
list.add("002212023090323470310544436379165515776");
|
|
|
|
|
|
list.add("002212023090400001410544439694543912960");
|
|
|
|
|
|
list.add("002212023090400234610544445618674331648");
|
|
|
|
|
|
list.add("002212023090400461610544451278192267264");
|
|
|
|
|
|
list.add("002212023090400551310544453531300376576");
|
|
|
|
|
|
list.add("002212023090400564010544453895183822848");
|
|
|
|
|
|
list.add("002212023090400571110544454025060515840");
|
|
|
|
|
|
list.add("002212023090401072610544456605941526528");
|
|
|
|
|
|
list.add("002212023090401432210544465648548827136");
|
|
|
|
|
|
list.add("002212023090402260510544476398450139136");
|
|
|
|
|
|
list.add("002212023090402352410544478745012162560");
|
|
|
|
|
|
list.add("002212023090403072710544486811393818624");
|
|
|
|
|
|
list.add("002212023090403284910544492186803621888");
|
|
|
|
|
|
list.add("002212023090403572410544499381047623680");
|
|
|
|
|
|
list.add("002212023090404180710544504592834187264");
|
|
|
|
|
|
list.add("002212023090405523710544528376412721152");
|
|
|
|
|
|
list.add("002212023090406373110544539675642359808");
|
|
|
|
|
|
list.add("002212023090406543910544543987718127616");
|
|
|
|
|
|
list.add("002212023090407243110544551502719713280");
|
|
|
|
|
|
list.add("002212023090407333210544553773737136128");
|
|
|
|
|
|
list.add("002212023090408173910544564876054986752");
|
|
|
|
|
|
list.add("002212023090408233910544566382216970240");
|
|
|
|
|
|
list.add("002212023090408243510544566619250384896");
|
|
|
|
|
|
list.add("002212023090408504810544573216521576448");
|
|
|
|
|
|
list.add("002212023090408532310544573866381258752");
|
|
|
|
|
|
list.add("002212023090408552310544574371532136448");
|
|
|
|
|
|
list.add("002212023090408563110544574655537770496");
|
|
|
|
|
|
list.add("002212023090409022610544576143264866304");
|
|
|
|
|
|
list.add("002212023090409254710544582018532761600");
|
|
|
|
|
|
list.add("002212023090409340510544584108731498496");
|
|
|
|
|
|
list.add("002212023090409434110544586524191641600");
|
|
|
|
|
|
list.add("002212023090409444010544586773329182720");
|
|
|
|
|
|
list.add("002212023090409474810544587559824019456");
|
|
|
|
|
|
list.add("002212023090410041810544591714886189056");
|
|
|
|
|
|
list.add("002212023090410223210544596301443133440");
|
|
|
|
|
|
list.add("002212023090410582910544605348971274240");
|
|
|
|
|
|
list.add("002212023090411045310544606961411141632");
|
|
|
|
|
|
list.add("002212023090411545910544619567276781568");
|
|
|
|
|
|
list.add("002212023090412032610544621693555814400");
|
|
|
|
|
|
list.add("002212023090412185410544625588261343232");
|
|
|
|
|
|
list.add("002212023090412294410544628312881221632");
|
|
|
|
|
|
list.add("002212023090412302210544628472243802112");
|
|
|
|
|
|
list.add("002212023090412394610544630838868074496");
|
|
|
|
|
|
list.add("002212023090412430910544631687309004800");
|
|
|
|
|
|
list.add("002212023090412512010544633746790830080");
|
|
|
|
|
|
list.add("002212023090413284110544643147417276416");
|
|
|
|
|
|
list.add("002212023090413295510544643457002106880");
|
|
|
|
|
|
list.add("002212023090413310610544643757718999040");
|
|
|
|
|
|
list.add("002212023090413521210544649067236028416");
|
|
|
|
|
|
list.add("002212023090414051310544652342334083072");
|
|
|
|
|
|
list.add("002212023090414081810544653116212498432");
|
|
|
|
|
|
list.add("002212023090414234910544657022159261696");
|
|
|
|
|
|
list.add("002212023090414244010544657238559842304");
|
|
|
|
|
|
list.add("002212023090414294410544658510662815744");
|
|
|
|
|
|
list.add("002212023090414302310544658677007519744");
|
|
|
|
|
|
list.add("002212023090414365510544660318163849216");
|
|
|
|
|
|
list.add("002212023090414543610544664771341012992");
|
|
|
|
|
|
list.add("002212023090415003210544666263300362240");
|
|
|
|
|
|
list.add("002212023090415032210544666975987437568");
|
|
|
|
|
|
list.add("002212023090415041310544667189431349248");
|
|
|
|
|
|
list.add("002212023090415081610544668210377682944");
|
|
|
|
|
|
list.add("002212023090415164510544670343910494208");
|
|
|
|
|
|
list.add("002212023090415420610544676725385297920");
|
|
|
|
|
|
list.add("002212023090415435810544677194566717440");
|
|
|
|
|
|
list.add("002212023090415444010544677368070111232");
|
|
|
|
|
|
list.add("002212023090416012410544681578617999360");
|
|
|
|
|
|
list.add("002212023090416014210544681655428939776");
|
|
|
|
|
|
list.add("002212023090416025110544681945852678144");
|
|
|
|
|
|
list.add("002212023090416115110544684210606264320");
|
|
|
|
|
|
list.add("002212023090416163210544685387259600896");
|
|
|
|
|
|
list.add("002212023090416223310544686903059304448");
|
|
|
|
|
|
list.add("002212023090416404810544691494632783872");
|
|
|
|
|
|
list.add("002212023090416455810544692795399700480");
|
|
|
|
|
|
list.add("002212023090416481210544693358209904640");
|
|
|
|
|
|
list.add("002212023090416493010544693683423653888");
|
|
|
|
|
|
list.add("002212023090417091210544698643723288576");
|
|
|
|
|
|
list.add("002212023090417140010544699850004226048");
|
|
|
|
|
|
list.add("002212023090417160010544700352528875520");
|
|
|
|
|
|
list.add("002212023090417174910544700810876440576");
|
|
|
|
|
|
list.add("002212023090417212710544701725573754880");
|
|
|
|
|
|
list.add("002212023090417242610544702477076365312");
|
|
|
|
|
|
list.add("002212023090417264610544703063160750080");
|
|
|
|
|
|
list.add("002212023090417321010544704423057260544");
|
|
|
|
|
|
list.add("002212023090417394410544706325207568384");
|
|
|
|
|
|
list.add("002212023090417440710544707430215479296");
|
|
|
|
|
|
list.add("002212023090417443710544707554765406208");
|
|
|
|
|
|
list.add("002212023090418033510544712330486317056");
|
|
|
|
|
|
list.add("002212023090418150710544715230318276608");
|
|
|
|
|
|
list.add("002212023090418503010544724136856485888");
|
|
|
|
|
|
list.add("002212023090419082410544728638641528832");
|
|
|
|
|
|
list.add("002212023090419205810544731801636556800");
|
|
|
|
|
|
list.add("002212023090419414810544737044336312320");
|
|
|
|
|
|
list.add("002212023090419544310544740295741505536");
|
|
|
|
|
|
list.add("002212023090420024410544742313783676928");
|
|
|
|
|
|
list.add("002212023090420043010544742757491118080");
|
|
|
|
|
|
list.add("002212023090420140610544745174889758720");
|
|
|
|
|
|
list.add("002212023090420271410544748481758646272");
|
|
|
|
|
|
list.add("002212023090420322210544749770987110400");
|
|
|
|
|
|
list.add("002212023090420324110544749852293582848");
|
|
|
|
|
|
list.add("002212023090420474710544753650583072768");
|
|
|
|
|
|
list.add("002212023090420495210544754173752102912");
|
|
|
|
|
|
list.add("002212023090421144210544760423247646720");
|
|
|
|
|
|
list.add("002212023090421193010544761632387190784");
|
|
|
|
|
|
list.add("002212023090421432010544767631702683648");
|
|
|
|
|
|
list.add("002212023090421440610544767822335447040");
|
|
|
|
|
|
list.add("002212023090421452510544768154342227968");
|
|
|
|
|
|
list.add("002212023090421462110544768388755980288");
|
|
|
|
|
|
list.add("002212023090421464110544768472318988288");
|
|
|
|
|
|
list.add("002212023090421481210544768856492822528");
|
|
|
|
|
|
list.add("002212023090422063710544773491336400896");
|
|
|
|
|
|
list.add("002212023090422065510544773564064968704");
|
|
|
|
|
|
list.add("002212023090422094710544774285978562560");
|
|
|
|
|
|
list.add("002212023090422131810544775170567041024");
|
|
|
|
|
|
list.add("002212023090422182410544776453772652544");
|
|
|
|
|
|
list.add("002212023090422235710544777850880364544");
|
|
|
|
|
|
list.add("002212023090422261510544778430256013312");
|
|
|
|
|
|
list.add("002212023090422530610544785186242301952");
|
|
|
|
|
|
list.add("002212023090423051210544788233053638656");
|
|
|
|
|
|
list.add("002212023090423061810544788511539298304");
|
|
|
|
|
|
list.add("002212023090423081510544789000458473472");
|
|
|
|
|
|
list.add("002212023090423134910544790400795774976");
|
|
|
|
|
|
list.add("002212023090423233410544792855305617408");
|
|
|
|
|
|
list.add("002212023090423290610544794249262223360");
|
|
|
|
|
|
list.add("002212023090423412010544797325272571904");
|
|
|
|
|
|
list.add("002212023090423442110544798083656548352");
|
|
|
|
|
|
list.add("002212023090423585110544801736560840704");
|
|
|
|
|
|
list.add("002212023090500132310544805391129219072");
|
|
|
|
|
|
list.add("002212023090500182910544806675939176448");
|
|
|
|
|
|
list.add("002212023090500340910544810618599006208");
|
|
|
|
|
|
list.add("002212023090500362110544811170337902592");
|
|
|
|
|
|
list.add("002212023090500411910544812419985805312");
|
|
|
|
|
|
list.add("002212023090500471710544813921360924672");
|
|
|
|
|
|
list.add("002212023090500523410544815251516420096");
|
|
|
|
|
|
list.add("002212023090501130310544820407266672640");
|
|
|
|
|
|
list.add("002212023090501300410544824691534393344");
|
|
|
|
|
|
list.add("002212023090501441710544828267722014720");
|
|
|
|
|
|
list.add("002212023090502160610544836273842966528");
|
|
|
|
|
|
list.add("002212023090503020210544847834772635648");
|
|
|
|
|
|
list.add("002212023090503060210544848842985857024");
|
|
|
|
|
|
list.add("002212023090503174410544851786195259392");
|
|
|
|
|
|
list.add("002212023090503330410544855643294818304");
|
|
|
|
|
|
list.add("002212023090504153710544866352634654720");
|
|
|
|
|
|
list.add("002212023090504422110544873080374788096");
|
|
|
|
|
|
list.add("002212023090505022510544878127866580992");
|
|
|
|
|
|
list.add("002212023090506395610544902671169179648");
|
|
|
|
|
|
list.add("002212023090507201010544912797166305280");
|
|
|
|
|
|
list.add("002212023090507340410544916295208165376");
|
|
|
|
|
|
list.add("002212023090507392710544917649508069376");
|
|
|
|
|
|
list.add("002212023090507502310544920398822924288");
|
|
|
|
|
|
list.add("002212023090508525510544936138693808128");
|
|
|
|
|
|
list.add("002212023090508525910544936152708370432");
|
|
|
|
|
|
list.add("002212023090509125810544941183444668416");
|
|
|
|
|
|
list.add("002212023090509171310544942252688535552");
|
|
|
|
|
|
list.add("002212023090509233710544943862951604224");
|
|
|
|
|
|
list.add("002212023090509511110544950800718106624");
|
|
|
|
|
|
list.add("002212023090509522010544951091826159616");
|
|
|
|
|
|
list.add("002212023090510015710544953508503609344");
|
|
|
|
|
|
list.add("002212023090511183310544972785284829184");
|
|
|
|
|
|
list.add("002212023090511251510544974472175177728");
|
|
|
|
|
|
list.add("002212023090511281310544975218718674944");
|
|
|
|
|
|
list.add("002212023090511330410544976439616008192");
|
|
|
|
|
|
list.add("002212023090511342910544976798274973696");
|
|
|
|
|
|
list.add("002212023090511350010544976925624881152");
|
|
|
|
|
|
list.add("002212023090511451510544979505341853696");
|
|
|
|
|
|
list.add("002212023090511543010544981832179511296");
|
|
|
|
|
|
list.add("002212023090511560110544982214513946624");
|
|
|
|
|
|
list.add("002212023090511564310544982390367608832");
|
|
|
|
|
|
list.add("002212023090512105010544985945627791360");
|
|
|
|
|
|
list.add("002212023090512184210544987924345810944");
|
|
|
|
|
|
list.add("002212023090512223010544988879919796224");
|
|
|
|
|
|
list.add("002212023090512241610544989326111731712");
|
|
|
|
|
|
list.add("002212023090512450910544994581351260160");
|
|
|
|
|
|
list.add("002212023090513045010544999535530012672");
|
|
|
|
|
|
list.add("002212023090513094510545000770646695936");
|
|
|
|
|
|
list.add("002212023090513140910545001879655215104");
|
|
|
|
|
|
list.add("002212023090513444510545009577648291840");
|
|
|
|
|
|
list.add("002212023090513482310545010492503289856");
|
|
|
|
|
|
list.add("002212023090513544410545012090895470592");
|
|
|
|
|
|
list.add("002212023090514323410545021612318621696");
|
|
|
|
|
|
list.add("002212023090514403110545023614028484608");
|
|
|
|
|
|
list.add("002212023090514430410545024255048134656");
|
|
|
|
|
|
list.add("002212023090514443210545024624999747584");
|
|
|
|
|
|
list.add("002212023090514481710545025567908716544");
|
|
|
|
|
|
list.add("002212023090514482810545025616081219584");
|
|
|
|
|
|
list.add("002212023090514491210545025799202123776");
|
|
|
|
|
|
list.add("002212023090514570810545027793513984000");
|
|
|
|
|
|
list.add("002212023090515000710545028546920058880");
|
|
|
|
|
|
list.add("002212023090515052110545029862169636864");
|
|
|
|
|
|
list.add("002212023090515202510545033655558967296");
|
|
|
|
|
|
list.add("002212023090515243210545034691656572928");
|
|
|
|
|
|
list.add("002212023090515311210545036366543745024");
|
|
|
|
|
|
list.add("002212023090515335210545037040841097216");
|
|
|
|
|
|
list.add("002212023090515485210545040815680249856");
|
|
|
|
|
|
list.add("002212023090515544510545042295741079552");
|
|
|
|
|
|
list.add("002212023090516111510545046448726179840");
|
|
|
|
|
|
list.add("002212023090516160910545047680385183744");
|
|
|
|
|
|
list.add("002212023090516183910545048309843722240");
|
|
|
|
|
|
list.add("002212023090516370410545052943975735296");
|
|
|
|
|
|
list.add("002212023090516395110545053645851652096");
|
|
|
|
|
|
list.add("002212023090516402310545053777932603392");
|
|
|
|
|
|
list.add("002212023090516464310545055373267365888");
|
|
|
|
|
|
list.add("002212023090516531210545057002777063424");
|
|
|
|
|
|
list.add("002212023090517065810545060467238612992");
|
|
|
|
|
|
list.add("002212023090517112210545061574108876800");
|
|
|
|
|
|
list.add("002212023090517141010545062278798831616");
|
|
|
|
|
|
list.add("002212023090517223910545064416764448768");
|
|
|
|
|
|
list.add("002212023090517262710545065373139841024");
|
|
|
|
|
|
list.add("002212023090517315610545066753025331200");
|
|
|
|
|
|
list.add("002212023090517320810545066800358219776");
|
|
|
|
|
|
list.add("002212023090517405010545068991944876032");
|
|
|
|
|
|
list.add("002212023090517422510545069389523292160");
|
|
|
|
|
|
list.add("002212023090517464410545070476795600896");
|
|
|
|
|
|
list.add("002212023090518005910545074061040791552");
|
|
|
|
|
|
list.add("002212023090518045810545075065001734144");
|
|
|
|
|
|
list.add("002212023090518063410545075468242120704");
|
|
|
|
|
|
list.add("002212023090519092410545091279600644096");
|
|
|
|
|
|
list.add("002212023090519161610545093009297477632");
|
|
|
|
|
|
list.add("002212023090519294910545096417801015296");
|
|
|
|
|
|
list.add("002212023090519433410545099879788675072");
|
|
|
|
|
|
list.add("002212023090519502910545101620768690176");
|
|
|
|
|
|
list.add("002212023090519545510545102735548305408");
|
|
|
|
|
|
list.add("002212023090520000310545104025800269824");
|
|
|
|
|
|
list.add("002212023090520013310545104403366432768");
|
|
|
|
|
|
list.add("002212023090520123210545107167656927232");
|
|
|
|
|
|
list.add("002212023090520205010545109257376862209");
|
|
|
|
|
|
list.add("002212023090520302210545111656422281216");
|
|
|
|
|
|
list.add("002212023090520321610545112136248832000");
|
|
|
|
|
|
list.add("002212023090520424710545114782702039040");
|
|
|
|
|
|
list.add("002212023090520505410545116822583214080");
|
|
|
|
|
|
list.add("002212023090520505510545116826200408064");
|
|
|
|
|
|
list.add("002212023090521113610545122030897205248");
|
|
|
|
|
|
list.add("002212023090521130210545122392462962688");
|
|
|
|
|
|
list.add("002212023090521151510545122952488841216");
|
|
|
|
|
|
list.add("002212023090521212610545124509460787200");
|
|
|
|
|
|
list.add("002212023090521230510545124921520640000");
|
|
|
|
|
|
list.add("002212023090521233910545125065079250944");
|
|
|
|
|
|
list.add("002212023090521253210545125540304891904");
|
|
|
|
|
|
list.add("002212023090521291510545126475269533696");
|
|
|
|
|
|
list.add("002212023090521503110545131827995893760");
|
|
|
|
|
|
list.add("002212023090522012010545134547778916352");
|
|
|
|
|
|
list.add("002212023090522092910545136601156128768");
|
|
|
|
|
|
list.add("002212023090522321210545142314444099584");
|
|
|
|
|
|
list.add("002212023090522380010545143776922165248");
|
|
|
|
|
|
list.add("002212023090522394610545144221796036608");
|
|
|
|
|
|
list.add("002212023090522411410545144588238802944");
|
|
|
|
|
|
list.add("002212023090522512010545147132621049856");
|
|
|
|
|
|
list.add("002212023090523155910545153335974301696");
|
|
|
|
|
|
list.add("002212023090523172210545153683155083264");
|
|
|
|
|
|
return list;
|
2023-08-30 11:02:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testClearingWithdraw() {
|
|
|
|
|
|
// 保存提现记录
|
|
|
|
|
|
ClearingWithdrawInfo record = new ClearingWithdrawInfo();
|
|
|
|
|
|
record.setWithdrawCode("132321354");
|
|
|
|
|
|
record.setWithdrawStatus(Constants.ZERO);
|
|
|
|
|
|
Date now = new Date();
|
|
|
|
|
|
record.setApplicationTime(now);
|
|
|
|
|
|
record.setCreateTime(now);
|
|
|
|
|
|
record.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
|
|
|
|
|
clearingWithdrawInfoService.insertOrUpdate(record);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testGetPileTypeNum() {
|
|
|
|
|
|
Long stationId = 1L;
|
|
|
|
|
|
pileConnectorInfoService.getPileTypeNum(stationId);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testUpdateStatus() {
|
|
|
|
|
|
String pileConnectorCode = "8800000000012601";
|
|
|
|
|
|
String status = "0";
|
|
|
|
|
|
pileConnectorInfoService.updateConnectorStatus(pileConnectorCode, status);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testRedisSet() {
|
|
|
|
|
|
String redisKey = "push_station_connector";
|
|
|
|
|
|
redisCache.setCacheSet(redisKey, Sets.newHashSet("1"));
|
|
|
|
|
|
|
|
|
|
|
|
redisCache.setCacheSet(redisKey, Sets.newHashSet("3"));
|
|
|
|
|
|
|
|
|
|
|
|
redisCache.setCacheSet(redisKey, Sets.newHashSet("5"));
|
|
|
|
|
|
|
|
|
|
|
|
redisCache.setCacheSet(redisKey, Sets.newHashSet("1"));
|
|
|
|
|
|
|
|
|
|
|
|
redisCache.setCacheSet(redisKey, Sets.newHashSet("1"));
|
|
|
|
|
|
|
|
|
|
|
|
redisCache.setCacheSet(redisKey, Sets.newHashSet("7"));
|
|
|
|
|
|
|
|
|
|
|
|
redisCache.setCacheSet(redisKey, Sets.newHashSet("3"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set<Object> cacheSet = redisCache.getCacheSet(redisKey);
|
|
|
|
|
|
System.out.println(cacheSet);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testSettleOrder() {
|
|
|
|
|
|
Map<String, BigDecimal> returnAmountMap = Maps.newHashMap();
|
|
|
|
|
|
returnAmountMap.put("returnPrincipal", new BigDecimal("16.8700"));
|
|
|
|
|
|
// 更新会员钱包
|
|
|
|
|
|
BigDecimal returnPrincipal = returnAmountMap.get("returnPrincipal");
|
|
|
|
|
|
// if (returnPrincipal != null && principalPayRecord != null) {
|
|
|
|
|
|
// principalPayRecord.setRefundAmount(returnPrincipal);
|
|
|
|
|
|
// updatePayRecordList.add(principalPayRecord);
|
|
|
|
|
|
// }
|
|
|
|
|
|
BigDecimal returnGift = returnAmountMap.get("returnGift");
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println(returnPrincipal);
|
|
|
|
|
|
// if (returnGift != null && giftPayRecord != null) {
|
|
|
|
|
|
// giftPayRecord.setRefundAmount(returnGift);
|
|
|
|
|
|
// updatePayRecordList.add(giftPayRecord);
|
|
|
|
|
|
// // 支付的赠送金额-退回的赠送金额 = 实际使用赠送金额消费的部分
|
|
|
|
|
|
// virtualAmount = giftPay.subtract(returnGift);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// UpdateMemberBalanceDTO updateMemberBalanceDTO = UpdateMemberBalanceDTO.builder()
|
|
|
|
|
|
// .memberId(orderBasicInfo.getMemberId())
|
|
|
|
|
|
// .type(MemberWalletEnum.TYPE_IN.getValue()) // 进账
|
|
|
|
|
|
// .subType(MemberWalletEnum.SUBTYPE_ORDER_SETTLEMENT_REFUND.getValue()) // 订单结算退款
|
|
|
|
|
|
// .updatePrincipalBalance(returnPrincipal)
|
|
|
|
|
|
// .updateGiftBalance(returnGift)
|
|
|
|
|
|
// .relatedOrderCode(orderBasicInfo.getOrderCode())
|
|
|
|
|
|
// .build();
|
|
|
|
|
|
// memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testVin() {
|
|
|
|
|
|
String vinCode = "tango";
|
|
|
|
|
|
MemberPlateNumberRelation memberPlateInfoByVinCode = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode);
|
|
|
|
|
|
System.out.println(memberPlateInfoByVinCode);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testParking() throws UnsupportedEncodingException {
|
|
|
|
|
|
// GetTokenDTO dto = new GetTokenDTO();
|
|
|
|
|
|
// dto.setAppId("I2qa3hdr116100dc");
|
|
|
|
|
|
// dto.setSecretKey("2qa3hdr13754a8e");
|
|
|
|
|
|
// String token = ltytService.getToken(dto);
|
|
|
|
|
|
// System.out.println(token);
|
|
|
|
|
|
|
|
|
|
|
|
BindCouponDTO dto = new BindCouponDTO();
|
|
|
|
|
|
dto.setAppId("I2qa3hdr116100dc");
|
|
|
|
|
|
dto.setSecretKey("2qa3hdr13754a8e");
|
|
|
|
|
|
dto.setMerchantId("3prv98bm8db70a9");
|
|
|
|
|
|
dto.setCouponId("3prvd0q7a4817bf");
|
|
|
|
|
|
dto.setPlateNumber("贵A12345");
|
|
|
|
|
|
dto.setPlateColor(1);
|
|
|
|
|
|
String s = ltytService.bindCoupon(dto);
|
|
|
|
|
|
System.out.println(s);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testUpdateConnectorStatus() {
|
|
|
|
|
|
String pileConnectorCode = "8800000000000101";
|
|
|
|
|
|
String status = PileConnectorStatusEnum.FREE.getValue();
|
|
|
|
|
|
pileConnectorInfoService.updateConnectorStatus(pileConnectorCode, status);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testOrder() throws Exception {
|
|
|
|
|
|
// 通过vin码查询数据库绑定用户信息
|
|
|
|
|
|
MemberPlateNumberRelation plateInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode("LNBSCC4H1LT107646");
|
|
|
|
|
|
GenerateOrderDTO dto = new GenerateOrderDTO();
|
|
|
|
|
|
dto.setMemberPlateNumberRelation(plateInfo);
|
|
|
|
|
|
dto.setPileSn("88000000000126");
|
|
|
|
|
|
dto.setConnectorCode("01");
|
|
|
|
|
|
dto.setStartMode(StartModeEnum.VIN_CODE.getValue());
|
|
|
|
|
|
dto.setMemberId(plateInfo.getMemberId());
|
|
|
|
|
|
// 通过memberId获取账户余额
|
|
|
|
|
|
MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId());
|
|
|
|
|
|
if (memberVO == null) {
|
|
|
|
|
|
throw new BusinessException(ReturnCodeEnum.CODE_GET_MEMBER_ACCOUNT_AMOUNT_ERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
BigDecimal totalAccountAmount = memberVO.getTotalAccountAmount();
|
|
|
|
|
|
if (totalAccountAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
|
|
|
throw new BusinessException(ReturnCodeEnum.CODE_BALANCE_IS_INSUFFICIENT);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dto.setChargeAmount(totalAccountAmount); // 充电金额
|
|
|
|
|
|
dto.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue()); // 1-余额支付
|
|
|
|
|
|
|
|
|
|
|
|
OrderBasicInfo basicInfo = orderBasicInfoService.generateOrder(dto);
|
|
|
|
|
|
|
|
|
|
|
|
// 支付订单
|
|
|
|
|
|
PayOrderDTO payOrderDTO = new PayOrderDTO();
|
|
|
|
|
|
payOrderDTO.setOrderCode(basicInfo.getOrderCode());
|
|
|
|
|
|
payOrderDTO.setPayAmount(totalAccountAmount);
|
|
|
|
|
|
payOrderDTO.setPayMode(dto.getPayMode());
|
|
|
|
|
|
payOrderDTO.setMemberId(dto.getMemberId());
|
|
|
|
|
|
// payOrderDTO.setCode();
|
|
|
|
|
|
// payOrderDTO.setLockValue();
|
|
|
|
|
|
// payOrderDTO.setOrderBasicInfo(basicInfo);
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> map = orderBasicInfoService.payOrder(payOrderDTO);
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println(map);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testTransactionRecord() {
|
|
|
|
|
|
// 获取消息体
|
|
|
|
|
|
String msg = "8823000000123302230707215317078588230000001233020000341507071763023615070717b02a0200a00f0000000000003016000090dc010000000000000000000000000020c50100000000000000000000000000888a0100000000000000000000000000b0220749005032074900a00f000000000000e01500004c4e425343433448314c543130373634360563023615070717450000000000000000";
|
|
|
|
|
|
byte[] msgBody = BytesUtil.str2Bcd(msg);
|
|
|
|
|
|
|
|
|
|
|
|
int startIndex = 0;
|
|
|
|
|
|
int length = 16;
|
|
|
|
|
|
|
|
|
|
|
|
// 交易流水号
|
|
|
|
|
|
byte[] orderCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String transactionCode = BytesUtil.bcd2Str(orderCodeByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 桩编码
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 7;
|
|
|
|
|
|
byte[] pileSnByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String pileSn = BytesUtil.bcd2Str(pileSnByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 枪号
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 1;
|
|
|
|
|
|
byte[] connectorCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String connectorCode = BytesUtil.bcd2Str(connectorCodeByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 开始时间 CP56Time2a 格式
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 7;
|
|
|
|
|
|
byte[] startTimeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
// String binary = BytesUtil.binary(startTimeByteArr, 16);
|
|
|
|
|
|
Date startDate = Cp56Time2aUtil.byte2Hdate(startTimeByteArr);
|
|
|
|
|
|
String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 结束时间 CP56Time2a 格式
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] endTimeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
Date endDate = Cp56Time2aUtil.byte2Hdate(endTimeByteArr);
|
|
|
|
|
|
String endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate);
|
|
|
|
|
|
|
|
|
|
|
|
// 尖单价 精确到小数点后五位(尖电费+尖服务费,见费率帧)
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 4;
|
|
|
|
|
|
byte[] sharpPriceByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String sharpPrice = YKCUtils.convertDecimalPoint(sharpPriceByteArr, 5);
|
|
|
|
|
|
|
|
|
|
|
|
// 尖电量 精确到小数点后四位
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 4;
|
|
|
|
|
|
byte[] sharpUsedElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String sharpUsedElectricity = YKCUtils.convertDecimalPoint(sharpUsedElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 计损尖电量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] sharpPlanLossElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String sharpPlanLossElectricity = YKCUtils.convertDecimalPoint(sharpPlanLossElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 尖金额
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] sharpAmountByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String sharpAmount = YKCUtils.convertDecimalPoint(sharpAmountByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 峰单价 精确到小数点后五位(峰电费+峰服务费)
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] peakPriceByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String peakPrice = YKCUtils.convertDecimalPoint(peakPriceByteArr, 5);
|
|
|
|
|
|
|
|
|
|
|
|
// 峰电量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] peakUsedElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String peakUsedElectricity = YKCUtils.convertDecimalPoint(peakUsedElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 计损峰电量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] peakPlanLossElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String peakPlanLossElectricity = YKCUtils.convertDecimalPoint(peakPlanLossElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 峰金额
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] peakAmountByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String peakAmount = YKCUtils.convertDecimalPoint(peakAmountByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 平单价 精确到小数点后五位(平电费+平服务费)
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] flatPriceByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String flatPrice = YKCUtils.convertDecimalPoint(flatPriceByteArr, 5);
|
|
|
|
|
|
|
|
|
|
|
|
// 平电量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] flatUsedElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String flatUsedElectricity = YKCUtils.convertDecimalPoint(flatUsedElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 计损平电量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] flatPlanLossElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String flatPlanLossElectricity = YKCUtils.convertDecimalPoint(flatPlanLossElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 平金额
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] flatAmountByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String flatAmount = YKCUtils.convertDecimalPoint(flatAmountByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 谷单价 精确到小数点后五位(谷电费+谷 服务费)
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] valleyPriceByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String valleyPrice = YKCUtils.convertDecimalPoint(valleyPriceByteArr, 5);
|
|
|
|
|
|
|
|
|
|
|
|
// 谷电量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] valleyUsedElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String valleyUsedElectricity = YKCUtils.convertDecimalPoint(valleyUsedElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 计损谷电量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] valleyPlanLossElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String valleyPlanLossElectricity = YKCUtils.convertDecimalPoint(valleyPlanLossElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 谷金额
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] valleyAmountByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String valleyAmount = YKCUtils.convertDecimalPoint(valleyAmountByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 电表总起值
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 5;
|
|
|
|
|
|
byte[] ammeterTotalStartByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String ammeterTotalStart = YKCUtils.convertDecimalPoint(ammeterTotalStartByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 电表总止值
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] ammeterTotalEndByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String ammeterTotalEnd = YKCUtils.convertDecimalPoint(ammeterTotalEndByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 总电量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 4;
|
|
|
|
|
|
byte[] totalElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String totalElectricity = YKCUtils.convertDecimalPoint(totalElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 计损总电量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] planLossTotalElectricityByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String planLossTotalElectricity = YKCUtils.convertDecimalPoint(planLossTotalElectricityByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// 消费金额 精确到小数点后四位,包含电费、 服务费
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] consumptionAmountByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String consumptionAmount = YKCUtils.convertDecimalPoint(consumptionAmountByteArr, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// VIN 码 VIN 码,此处 VIN 码和充电时 VIN 码不同, 正序直接上传, 无需补 0 和反序
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 17;
|
|
|
|
|
|
byte[] vinCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String vinCode = BytesUtil.ascii2Str(vinCodeByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 交易标识
|
|
|
|
|
|
* 0x01: app 启动
|
|
|
|
|
|
* 0x02:卡启动
|
|
|
|
|
|
* 0x04:离线卡启动
|
|
|
|
|
|
* 0x05: vin 码启动充电
|
|
|
|
|
|
*/
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 1;
|
|
|
|
|
|
byte[] transactionIdentifierByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String transactionIdentifier = BytesUtil.bcd2Str(transactionIdentifierByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 交易时间 CP56Time2a 格式
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 7;
|
|
|
|
|
|
byte[] transactionTimeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
Date transactionDate = Cp56Time2aUtil.byte2Hdate(transactionTimeByteArr);
|
|
|
|
|
|
String transactionTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, transactionDate);
|
|
|
|
|
|
|
|
|
|
|
|
// 停止原因
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 1;
|
|
|
|
|
|
byte[] stopReasonByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String stopReason = BytesUtil.bin2HexStr(stopReasonByteArr);
|
|
|
|
|
|
String stopReasonMsg = YKCChargingStopReasonEnum.getMsgByCode(Integer.parseInt(stopReason, 16));
|
|
|
|
|
|
|
|
|
|
|
|
// 物理卡号 不足 8 位补 0
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 8;
|
|
|
|
|
|
byte[] cardNumByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
// byte[] logicCardNum = BytesUtil.checkLengthAndBehindAppendZero(cardNumByteArr, 16);
|
|
|
|
|
|
String logicCard = BytesUtil.binary(cardNumByteArr, 16);
|
|
|
|
|
|
// log.info("桩号:{}发送交易记录物理卡号:{}", pileSn, logicCard);
|
|
|
|
|
|
//
|
|
|
|
|
|
// log.info("[===交易记录===]交易流水号:{}, 桩编号:{}, 枪号:{}, 开始时间:{}, 结束时间:{}, 尖单价:{}, 尖电量:{}, 计损尖电量:{}, 尖金额:{}, " +
|
|
|
|
|
|
// "峰单价:{}, 峰电量:{}, 计损峰电量:{}, 峰金额:{}, 平单价:{}, 平电量:{}, 计损平电量:{}, 平金额:{}, " +
|
|
|
|
|
|
// "谷单价:{}, 谷电量:{}, 计损谷电量:{}, 谷金额:{}, 电表总起值:{}, 电表总止值:{}, 总电量:{}, 计损总电量:{}, 消费金额:{}, " +
|
|
|
|
|
|
// "电动汽车唯一标识:{}, 交易标识:{}, 交易日期、时间:{}, 停止原因码:{}, 停止原因描述:{}, 物理卡号:{}",
|
|
|
|
|
|
// transactionCode, pileSn, connectorCode, startTime, endTime, sharpPrice, sharpUsedElectricity, sharpPlanLossElectricity, sharpAmount,
|
|
|
|
|
|
// peakPrice, peakUsedElectricity, peakPlanLossElectricity, peakAmount, flatPrice, flatUsedElectricity, flatPlanLossElectricity, flatAmount,
|
|
|
|
|
|
// valleyPrice, valleyUsedElectricity, valleyPlanLossElectricity, valleyAmount, ammeterTotalStart, ammeterTotalEnd, totalElectricity, planLossTotalElectricity,
|
|
|
|
|
|
// consumptionAmount, vinCode, transactionIdentifier, transactionTime, stopReason, stopReasonMsg, logicCard);
|
|
|
|
|
|
|
|
|
|
|
|
// 交易记录封装到对象里
|
|
|
|
|
|
TransactionRecordsData data = TransactionRecordsData.builder()
|
|
|
|
|
|
// .orderCode(transactionCode)
|
|
|
|
|
|
.transactionCode(transactionCode)
|
|
|
|
|
|
.pileSn(pileSn)
|
|
|
|
|
|
.connectorCode(connectorCode)
|
|
|
|
|
|
.startTime(startTime)
|
|
|
|
|
|
.endTime(endTime)
|
|
|
|
|
|
.sharpPrice(sharpPrice)
|
|
|
|
|
|
.sharpUsedElectricity(sharpUsedElectricity)
|
|
|
|
|
|
.sharpPlanLossElectricity(sharpPlanLossElectricity)
|
|
|
|
|
|
.sharpAmount(sharpAmount)
|
|
|
|
|
|
.peakPrice(peakPrice)
|
|
|
|
|
|
.peakUsedElectricity(peakUsedElectricity)
|
|
|
|
|
|
.peakPlanLossElectricity(peakPlanLossElectricity)
|
|
|
|
|
|
.peakAmount(peakAmount)
|
|
|
|
|
|
.flatPrice(flatPrice)
|
|
|
|
|
|
.flatUsedElectricity(flatUsedElectricity)
|
|
|
|
|
|
.flatPlanLossElectricity(flatPlanLossElectricity)
|
|
|
|
|
|
.flatAmount(flatAmount)
|
|
|
|
|
|
.valleyPrice(valleyPrice)
|
|
|
|
|
|
.valleyUsedElectricity(valleyUsedElectricity)
|
|
|
|
|
|
.valleyPlanLossElectricity(valleyPlanLossElectricity)
|
|
|
|
|
|
.valleyAmount(valleyAmount)
|
|
|
|
|
|
.ammeterTotalStart(ammeterTotalStart)
|
|
|
|
|
|
.ammeterTotalEnd(ammeterTotalEnd)
|
|
|
|
|
|
.totalElectricity(totalElectricity)
|
|
|
|
|
|
.planLossTotalElectricity(planLossTotalElectricity)
|
|
|
|
|
|
.consumptionAmount(consumptionAmount)
|
|
|
|
|
|
.vinCode(vinCode)
|
|
|
|
|
|
.transactionIdentifier(transactionIdentifier)
|
|
|
|
|
|
.transactionTime(transactionTime)
|
|
|
|
|
|
.stopReasonMsg(stopReasonMsg)
|
|
|
|
|
|
.logicCard(logicCard)
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
|
|
// boolean flag = !StringUtils.equals("0000000000000000", "a511101970000000");
|
|
|
|
|
|
// System.out.println(flag);
|
|
|
|
|
|
|
|
|
|
|
|
// 处理订单加锁
|
|
|
|
|
|
String lockKey = "settle_order_" + transactionCode;
|
|
|
|
|
|
String uuid = IdUtils.fastUUID();
|
|
|
|
|
|
try {
|
|
|
|
|
|
// redis锁
|
|
|
|
|
|
Boolean isLock = redisCache.lock(lockKey, uuid, 1500);
|
|
|
|
|
|
if (isLock) {
|
|
|
|
|
|
// transactionRecordsRequestHandler.processOrder(data);
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
System.out.println("处理订单发生异常: " + e);
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
if (uuid.equals(redisCache.getCacheObject(lockKey).toString())) {
|
|
|
|
|
|
redisCache.unLock(lockKey);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testFault() {
|
|
|
|
|
|
StringBuffer sb = new StringBuffer("0100");
|
|
|
|
|
|
String lowOrder = sb.substring(0, 2);
|
|
|
|
|
|
String highOrder = sb.substring(2, 4);
|
|
|
|
|
|
|
|
|
|
|
|
// String hardwareFault = highOrder + lowOrder;
|
|
|
|
|
|
byte[] hardwareFaultByteArr = BytesUtil.str2Bcd(highOrder + lowOrder);
|
|
|
|
|
|
String binStr = BytesUtil.bytes2BinStr(hardwareFaultByteArr);
|
|
|
|
|
|
// log.info("binStr:{}", binStr); // 0000 0000 0000 0001
|
|
|
|
|
|
int faultCode = 0;
|
|
|
|
|
|
for (int i = 0; i < binStr.length(); i++) {
|
|
|
|
|
|
if (binStr.charAt(i) == '1') {
|
|
|
|
|
|
faultCode = 15 - i;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
String faultReason = YKCPileFaultReasonEnum.getValueByCode(faultCode);
|
|
|
|
|
|
System.out.println(faultReason);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testQueryCorpMember() {
|
|
|
|
|
|
List<AdapayMemberAccount> accountList = adapayMemberAccountService.selectAdapayMemberAccountList(new AdapayMemberAccount());
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(accountList)) {
|
|
|
|
|
|
Long[] ids = accountList.stream().map(AdapayMemberAccount::getId).toArray(Long[]::new);
|
|
|
|
|
|
adapayMemberAccountService.deleteAdapayMemberAccountByIds(ids);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// try {
|
|
|
|
|
|
// Map<String, Object> map = adapayMemberService.selectAdapayMember("5");
|
|
|
|
|
|
//
|
|
|
|
|
|
// String adapayMemberId = "ACM29562569";
|
|
|
|
|
|
// AdapayCorpMemberVO adapayCorpMemberVO = adapayMemberService.queryCorpAdapayMemberInfo(adapayMemberId);
|
|
|
|
|
|
// System.out.println(adapayCorpMemberVO);
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
// } catch (BaseAdaPayException e) {
|
|
|
|
|
|
// throw new RuntimeException(e);
|
|
|
|
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testGetPileListByStationIdList() {
|
|
|
|
|
|
|
|
|
|
|
|
// List<String> stationIdList = Lists.newArrayList("2");
|
|
|
|
|
|
// Map<String, List<AMapEquipmentInfo>> pileListByStationIdList = aMapService.getPileListByStationIdList(stationIdList);
|
|
|
|
|
|
// System.out.println(pileListByStationIdList);
|
|
|
|
|
|
|
|
|
|
|
|
GetStationInfoDTO dto = new GetStationInfoDTO();
|
|
|
|
|
|
dto.setType("page");
|
|
|
|
|
|
aMapService.getStationInfosV2(dto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testMultiSave() {
|
|
|
|
|
|
String prefix = "test_multi_save:";
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> redisMap = Maps.newHashMap();
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 1000; i++) {
|
|
|
|
|
|
redisMap.put(prefix + i, PileInfoVO.builder().pileSn(i + "").build());
|
|
|
|
|
|
}
|
|
|
|
|
|
redisCache.multiSave(redisMap, 60);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testBillingTemplate() {
|
|
|
|
|
|
pileBillingTemplateService.queryStationBillingTemplateListForUniApp("2");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testQueryAdapayMemberInfo() {
|
|
|
|
|
|
String adapayMemberId = "AM25703321";
|
|
|
|
|
|
String settleAccountId = "0489089447022976";
|
|
|
|
|
|
try {
|
|
|
|
|
|
// adapayMemberService.queryAdapayMemberInfo(adapayMemberId);
|
|
|
|
|
|
|
|
|
|
|
|
adapayService.queryAdapaySettleAccount(adapayMemberId, settleAccountId, "");
|
|
|
|
|
|
} catch (BaseAdaPayException e) {
|
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testSaveAdapayCallbackRecord() throws JsonProcessingException {
|
|
|
|
|
|
String data = "{\n" +
|
|
|
|
|
|
" \"object\": \"refund\",\n" +
|
|
|
|
|
|
" \"status\": \"succeeded\",\n" +
|
|
|
|
|
|
" \"prod_mode\": \"true\",\n" +
|
|
|
|
|
|
" \"id\": \"0022120230531111946980509821471137853440\",\n" +
|
|
|
|
|
|
" \"refund_order_no\": \"823725974557265920\",\n" +
|
|
|
|
|
|
" \"payment_id\": \"002212023053110524210509814658135928832\",\n" +
|
|
|
|
|
|
" \"payment_order_no\": \"C27262970851\",\n" +
|
|
|
|
|
|
" \"refund_amt\": \"7.82\",\n" +
|
|
|
|
|
|
" \"fee_amt\": \"0.04\",\n" +
|
|
|
|
|
|
" \"channel_no\": \"2023053121R064uj\",\n" +
|
|
|
|
|
|
" \"created_time\": \"1685503187000\",\n" +
|
|
|
|
|
|
" \"succeed_time\": \"1685503199000\",\n" +
|
|
|
|
|
|
" \"app_id\": \"app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa\",\n" +
|
|
|
|
|
|
" \"reason\": \"\",\n" +
|
|
|
|
|
|
" \"notify_url\": \"https://api.jsowellcloud.com/uniapp/pay/adapayRefundCallback\"\n" +
|
|
|
|
|
|
"}";
|
|
|
|
|
|
|
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(data);
|
|
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
|
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
|
|
|
|
|
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
|
|
|
|
AdapayRefundRecord adapayRefundRecord = mapper.readValue(jsonObject.toJSONString(), AdapayRefundRecord.class);
|
|
|
|
|
|
adapayRefundRecord.setRefundId(jsonObject.getString("id"));
|
|
|
|
|
|
// 保存到数据库
|
|
|
|
|
|
adapayRefundRecordService.insertAdapayRefundRecord(adapayRefundRecord);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testQueryCallback() {
|
|
|
|
|
|
AdapayCallbackRecord aaaa = adapayCallbackRecordService.selectByOrderCode("aaaa");
|
|
|
|
|
|
System.out.println(aaaa);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testAdapayRefund() {
|
|
|
|
|
|
// 创建汇付退款对象 在完成初始化设置情况下,调用方法,获取 Refund对象
|
|
|
|
|
|
try {
|
|
|
|
|
|
String id = "002212023052710075810508353847861903360";
|
|
|
|
|
|
String refundAmount = "0.01";
|
|
|
|
|
|
Map<String, Object> refundParams = Maps.newHashMap();
|
|
|
|
|
|
refundParams.put("refund_amt", AdapayUtil.formatAmount(refundAmount));
|
|
|
|
|
|
refundParams.put("refund_order_no", SnowflakeIdWorker.getSnowflakeId());
|
|
|
|
|
|
refundParams.put("notify_url", "https://api.jsowellcloud.com/uniapp/pay/adapayRefundCallback");
|
|
|
|
|
|
Map<String, Object> response = Refund.create(id, refundParams);
|
|
|
|
|
|
System.out.println(JSON.toJSONString(response));
|
|
|
|
|
|
// if (response != null && !response.isEmpty()) {
|
|
|
|
|
|
// JSONObject jsonObject = JSONObject.parseObject(response.get("expend").toString());
|
|
|
|
|
|
// JSONObject pay_info = jsonObject.getJSONObject("pay_info");
|
|
|
|
|
|
// Map<String, Object> resultMap = JSONObject.parseObject(pay_info.toJSONString(), new TypeReference<Map<String, Object>>() {});
|
|
|
|
|
|
// }
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
System.out.println(e);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testSaveCallback() throws JsonProcessingException {
|
|
|
|
|
|
String data = "{\"app_id\":\"app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa\",\"created_time\":\"20230530132956\",\"description\":\"{\\\"orderCode\\\":\\\"C29505932783\\\",\\\"type\\\":\\\"order\\\"}\",\"end_time\":\"20230530133027\",\"expend\":{\"bank_type\":\"OTHERS\",\"open_id\":\"o8jhot6PJF93EPhNISsXi28dKdS8\",\"sub_open_id\":\"o4REX5MprZfTaLnVNxfdOY-wnwGI\"},\"fee_amt\":\"0.11\",\"id\":\"002212023053013295610509491838664794112\",\"order_no\":\"C29505932783\",\"out_trans_id\":\"4200001855202305308670391485\",\"party_order_id\":\"02212305304859640306711\",\"pay_amt\":\"20.00\",\"pay_channel\":\"wx_lite\",\"real_amt\":\"20.00\",\"share_eq\":\"Y\",\"status\":\"succeeded\",\"wx_user_id\":\"\"}";
|
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(data);
|
|
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
|
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
|
|
|
|
|
AdapayCallbackRecord adapayCallbackRecord = mapper.readValue(jsonObject.toJSONString(), AdapayCallbackRecord.class);
|
|
|
|
|
|
adapayCallbackRecord.setExpend(jsonObject.getString("expend"));
|
|
|
|
|
|
adapayCallbackRecord.setPaymentId(jsonObject.getString("id"));
|
|
|
|
|
|
adapayCallbackRecordService.saveAdapayCallbackRecord(adapayCallbackRecord);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testAMap() throws Exception {
|
|
|
|
|
|
String pileConnectorCode = "8800000000012601";
|
|
|
|
|
|
// String s = aMapService.pushChargingDeviceDynamics(pileConnectorCode);
|
|
|
|
|
|
GetStationInfoDTO dto = new GetStationInfoDTO();
|
|
|
|
|
|
dto.setType("page");
|
|
|
|
|
|
aMapService.getStationInfos(dto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testVinCode() {
|
|
|
|
|
|
String msg = "880000000000210203000000000000000000000000000000000000000000000000004C5257594743454B584D43303437313434";
|
|
|
|
|
|
// 获取消息体
|
|
|
|
|
|
byte[] msgBody = BytesUtil.str2Bcd(msg);
|
|
|
|
|
|
|
|
|
|
|
|
int startIndex = 0;
|
|
|
|
|
|
int length = 7;
|
|
|
|
|
|
|
|
|
|
|
|
// 桩编码
|
|
|
|
|
|
byte[] pileSnByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String pileSn = BytesUtil.binary(pileSnByteArr, 16);
|
|
|
|
|
|
|
|
|
|
|
|
// 保存时间
|
|
|
|
|
|
// saveLastTime(pileSn);
|
|
|
|
|
|
|
|
|
|
|
|
// 枪号
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 1;
|
|
|
|
|
|
byte[] connectorNumByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String connectorCode = BytesUtil.bcd2Str(connectorNumByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 启动方式
|
|
|
|
|
|
// 0x01 表示通过刷卡启动充电
|
|
|
|
|
|
// 0x02 表求通过帐号启动充电 (暂不支持)
|
|
|
|
|
|
// 0x03 表示vin码启动充电
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] startModeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String startMode = BytesUtil.bcd2Str(startModeByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 是否需要密码 0x00 不需要 0x01 需要
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] needPasswordFlagByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String needPasswordFlag = BytesUtil.bcd2Str(needPasswordFlagByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 物理卡号 不足 8 位补 0
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 8;
|
|
|
|
|
|
byte[] cardNumByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String physicsCard = BytesUtil.binary(cardNumByteArr, 16);
|
|
|
|
|
|
|
|
|
|
|
|
// 输入密码 对用户输入的密码进行16 位MD5 加密,采用小写上传
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 16;
|
|
|
|
|
|
byte[] inputPasswordByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
|
|
|
|
|
|
// VIN码
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 17;
|
|
|
|
|
|
byte[] vinCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String vinCode = BytesUtil.ascii2Str(vinCodeByteArr);
|
|
|
|
|
|
System.out.println("桩号:" + pileSn + "申请充电VIN码:" + vinCode);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 刷卡启动充电
|
|
|
|
|
|
*/
|
|
|
|
|
|
String logicCard = "";
|
|
|
|
|
|
byte[] authenticationFlagByteArr = Constants.zeroByteArray; // 鉴权成功标识
|
|
|
|
|
|
byte[] accountBalanceByteArr = Constants.zeroByteArray; // 账户余额
|
|
|
|
|
|
String transactionCode = "";
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* VIN码启动充电
|
|
|
|
|
|
*/
|
|
|
|
|
|
if (StringUtils.equals("03", startMode)) {
|
|
|
|
|
|
// 通过vin码查询数据库绑定用户信息
|
|
|
|
|
|
MemberPlateNumberRelation plateInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode);
|
|
|
|
|
|
if (plateInfo == null) {
|
|
|
|
|
|
throw new BusinessException("", "未查到绑定用户信息");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!StringUtils.equals("1", plateInfo.getVinStatus())) {
|
|
|
|
|
|
// 1- 正常使用
|
|
|
|
|
|
throw new BusinessException("", "vin状态不正确");
|
|
|
|
|
|
}
|
|
|
|
|
|
// vin码生成订单 vin启动充电
|
|
|
|
|
|
GenerateOrderDTO dto = new GenerateOrderDTO();
|
|
|
|
|
|
dto.setMemberPlateNumberRelation(plateInfo);
|
|
|
|
|
|
dto.setPileSn(pileSn);
|
|
|
|
|
|
dto.setConnectorCode(connectorCode);
|
|
|
|
|
|
dto.setStartMode(StartModeEnum.VIN_CODE.getValue());
|
|
|
|
|
|
Map<String, Object> map = orderBasicInfoService.generateOrderByCard(dto);
|
|
|
|
|
|
if (map != null) {
|
|
|
|
|
|
transactionCode = (String) map.get("transactionCode");
|
|
|
|
|
|
accountBalanceByteArr = YKCUtils.getPriceByte(String.valueOf(map.get("accountBalance")), 2);
|
|
|
|
|
|
// 鉴权成功标识 0x00 失败 0x01 成功
|
|
|
|
|
|
authenticationFlagByteArr = Constants.oneByteArray;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
throw new BusinessException("", "生成vin订单失败");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (BusinessException e) {
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
System.out.println("1");
|
|
|
|
|
|
// log.error("VIN码启动充电鉴权 error:{}, {}", e.getCode(), e.getMessage());
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
System.out.println("2");
|
|
|
|
|
|
transactionCode = "00000000000000000000000000000000";
|
|
|
|
|
|
accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8);
|
|
|
|
|
|
authenticationFlagByteArr = Constants.zeroByteArray;
|
|
|
|
|
|
// log.error("VIN码启动充电鉴权 error", e);
|
|
|
|
|
|
}
|
|
|
|
|
|
byte[] serialNumByteArr = BytesUtil.str2Bcd(transactionCode);
|
|
|
|
|
|
|
|
|
|
|
|
byte[] defeatReasonByteArr = Constants.zeroByteArray;
|
|
|
|
|
|
|
|
|
|
|
|
// 不足位数的值补零
|
|
|
|
|
|
// cardNumByteArr = BytesUtil.checkLengthAndBehindAppendZero(cardNumByteArr, 16);
|
|
|
|
|
|
// serialNumByteArr = BytesUtil.checkLengthAndBehindAppendZero(serialNumByteArr, 32);
|
|
|
|
|
|
// pileSnByteArr = BytesUtil.checkLengthAndBehindAppendZero(pileSnByteArr, 14);
|
|
|
|
|
|
// accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8);
|
|
|
|
|
|
|
|
|
|
|
|
// 拼装消息体
|
|
|
|
|
|
byte[] msgBodyByteArr = Bytes.concat(serialNumByteArr, pileSnByteArr, connectorNumByteArr, cardNumByteArr, accountBalanceByteArr,
|
|
|
|
|
|
authenticationFlagByteArr, defeatReasonByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
String s = BytesUtil.bin2HexStr(msgBodyByteArr);
|
|
|
|
|
|
System.out.println(s);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testGenerateLianlianToken() throws UnsupportedEncodingException {
|
|
|
|
|
|
String OperatorID = "425010765";
|
|
|
|
|
|
String OperatorSecret = "123123123123aaaa"; // 1234567890abcdef
|
|
|
|
|
|
|
|
|
|
|
|
//请求dataX
|
|
|
|
|
|
Map<String, String> data = new HashMap<>();
|
|
|
|
|
|
data.put("OperatorID", OperatorID);
|
|
|
|
|
|
data.put("OperatorSecret", OperatorSecret);
|
|
|
|
|
|
String dataJson = JSONUtil.toJsonStr(data);
|
|
|
|
|
|
|
|
|
|
|
|
//加密
|
|
|
|
|
|
byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes(StandardCharsets.UTF_8),
|
|
|
|
|
|
OperatorSecret.getBytes(), OperatorSecret.getBytes());
|
|
|
|
|
|
String strData = Encodes.encodeBase64(encryptText);
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, String> request = new LinkedHashMap<>();
|
|
|
|
|
|
request.put("OperatorID", OperatorID);
|
|
|
|
|
|
request.put("Data", strData);
|
|
|
|
|
|
request.put("TimeStamp", System.currentTimeMillis() + "");
|
|
|
|
|
|
request.put("Seq", "0001");
|
|
|
|
|
|
|
|
|
|
|
|
//生成签名
|
|
|
|
|
|
String sig = GBSignUtils.sign(request, OperatorSecret);
|
|
|
|
|
|
request.put("Sig", sig);
|
|
|
|
|
|
String tokenRequest = JSONUtil.toJsonStr(request);
|
|
|
|
|
|
|
|
|
|
|
|
CommonParamsDTO dto = JSONObject.parseObject(tokenRequest, CommonParamsDTO.class);
|
|
|
|
|
|
|
|
|
|
|
|
lianLianService.generateToken(dto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testupdateElecAmount() {
|
|
|
|
|
|
// orderBasicInfoService.updateElecAmount();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testSelectSomeStatusCardInfo() {
|
|
|
|
|
|
PileAuthCard pileAuthCard = pileAuthCardService.selectCardInfoByLogicCard("1111111111111111");
|
|
|
|
|
|
System.out.println(pileAuthCard);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testLianLian() throws UnsupportedEncodingException {
|
|
|
|
|
|
// 获取令牌
|
|
|
|
|
|
// LianLianGetTokenDTO dto = new LianLianGetTokenDTO();
|
|
|
|
|
|
// dto.setOperatorId("MA1JLFUU8");
|
|
|
|
|
|
// dto.setOperatorSecret("Nh62XxlIR5OjAzFj");
|
|
|
|
|
|
// String token = lianLianService.getToken("", "MA1JLFUU8", "fGwLsxW1HdzLw7jp");
|
|
|
|
|
|
// System.out.println("token:" + token);
|
|
|
|
|
|
|
|
|
|
|
|
String operatorId = "425010765";
|
|
|
|
|
|
String operatorSecret = "3DSBTWHVIC6KVCKI";
|
|
|
|
|
|
// 请求data
|
|
|
|
|
|
// Map<String, String> data = new HashMap<>();
|
|
|
|
|
|
// data.put("OperatorID", operatorId);
|
|
|
|
|
|
// data.put("OperatorSecret", operatorSecret);
|
|
|
|
|
|
// String dataJson = JSONUtil.toJsonStr(data);
|
|
|
|
|
|
|
|
|
|
|
|
JSONObject json = new JSONObject();
|
|
|
|
|
|
// json.put("StationIDs", com.google.common.collect.Lists.newArrayList("1", "2"));
|
|
|
|
|
|
json.put("LastQueryTime", "2023-05-29 10:00:00");
|
|
|
|
|
|
json.put("PageNo", 1);
|
|
|
|
|
|
json.put("PageSize", 10);
|
|
|
|
|
|
|
|
|
|
|
|
String dataJson = JSONObject.toJSONString(json);
|
|
|
|
|
|
// 加密
|
|
|
|
|
|
byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes(StandardCharsets.UTF_8),
|
|
|
|
|
|
operatorSecret.getBytes(), operatorSecret.getBytes());
|
|
|
|
|
|
String strData = Encodes.encodeBase64(encryptText);
|
|
|
|
|
|
String timeStamp = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date());
|
|
|
|
|
|
Map<String, String> request = new LinkedHashMap<>();
|
|
|
|
|
|
request.put("OperatorID", operatorId);
|
|
|
|
|
|
request.put("Data", strData);
|
|
|
|
|
|
request.put("TimeStamp", timeStamp);
|
|
|
|
|
|
request.put("Seq", "0001");
|
|
|
|
|
|
|
|
|
|
|
|
// 生成签名
|
|
|
|
|
|
String sig = GBSignUtils.sign(request, operatorSecret);
|
|
|
|
|
|
request.put("Sig", sig);
|
|
|
|
|
|
JSONObject jsonObject = new JSONObject(request);
|
|
|
|
|
|
System.out.println(jsonObject);
|
|
|
|
|
|
// CommonParamsDTO dto = new CommonParamsDTO();
|
|
|
|
|
|
// dto.setOperatorID(operatorId);
|
|
|
|
|
|
// dto.setData(strData);
|
|
|
|
|
|
// dto.setTimeStamp(timeStamp);
|
|
|
|
|
|
// dto.setSeq("0001");
|
|
|
|
|
|
// dto.setSig(sig);
|
|
|
|
|
|
// Map<String, String> map = lianLianService.generateToken(dto);
|
|
|
|
|
|
QueryStationInfoDTO dto = new QueryStationInfoDTO();
|
|
|
|
|
|
dto.setOperatorId(operatorId);
|
|
|
|
|
|
Map<String, String> map = lianLianService.query_stations_info(dto);
|
|
|
|
|
|
// String data1 = map.get("Data");
|
|
|
|
|
|
// 解密data
|
|
|
|
|
|
// String data1 = "JudlP17tnYuQc2zwOzmjJAb9hgghIymefG5v3ZzSOlPDh5+bJHIedsYzKMD56tHlmlg6Cb7vG+o6KjMSSpn1fyqBH3UVaEFF7uEc+lOuEc9c1vUzq20vBQ7N3EpDKqVBKjZbOezMsKYaCX7Br8XTsCYT8VCQui/np3cn+phi3VC+0s1coNxBX7xoEDZ7iuPjPoSWL7g3J0uOw2SoGaIdBQG3eTxaZJ5L+vBmuDF0pEXgazTMnuKml1mx1QHkig2F7h/ILT0VEKVXWMmmogYgiBk5ItO0DyzRl+ASb184gOhYGo82GJmWRiXrAXmceCiSNvTGg6aL26imIGKkJNfOx9/9mTqjGvy6kzxvWJ29PBU=";
|
|
|
|
|
|
// byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(data1),
|
|
|
|
|
|
// operatorSecret.getBytes(), operatorSecret.getBytes());
|
|
|
|
|
|
// String dataStr = new String(plainText, "UTF-8");
|
|
|
|
|
|
// Map<String, String> resultMap = (Map<String, String>) JSON.parse(dataStr);
|
|
|
|
|
|
//
|
|
|
|
|
|
// String token = resultMap.get("AccessToken");
|
|
|
|
|
|
//
|
|
|
|
|
|
// System.out.println("解密后token:" + token);
|
|
|
|
|
|
|
|
|
|
|
|
// LianLianPushStationInfoDTO dto1 = LianLianPushStationInfoDTO.builder()
|
|
|
|
|
|
// .OperatorID("MA1JLFUU8")
|
|
|
|
|
|
// .DataSecret("HVicnbRZbhPdIdpF")
|
|
|
|
|
|
// .DataSecretIV("JNvcjSOn1vhrE11M")
|
|
|
|
|
|
// .SigSecret("53TtFpc4gdVZbF3x")
|
|
|
|
|
|
// // .token(token)
|
|
|
|
|
|
// .stationId(2L)
|
|
|
|
|
|
//
|
|
|
|
|
|
// .build();
|
|
|
|
|
|
// lianLianService.pushStationInfo(dto1);
|
|
|
|
|
|
|
|
|
|
|
|
// 推送订单状态
|
|
|
|
|
|
// lianLianService.pushConnectorStatus("8800000000000101", "1");
|
|
|
|
|
|
|
|
|
|
|
|
// 推送订单信息
|
|
|
|
|
|
// lianLianService.pushOrderInfo("C27680791529");
|
|
|
|
|
|
|
|
|
|
|
|
// 推送启动充电结果
|
|
|
|
|
|
// lianLianService.pushStartChargeResult("C27680791529");
|
|
|
|
|
|
|
|
|
|
|
|
// 推送充电状态
|
|
|
|
|
|
// lianLianService.pushChargeStatus("C27680791529");
|
|
|
|
|
|
|
|
|
|
|
|
// 推送停止充电结果
|
|
|
|
|
|
// lianLianService.pushStopChargeResult("C27680791529");
|
|
|
|
|
|
|
|
|
|
|
|
// 推送充电订单信息
|
|
|
|
|
|
// lianLianService.pushChargeOrderInfo("C27680791529");
|
|
|
|
|
|
|
|
|
|
|
|
// 推送订单结算信息
|
|
|
|
|
|
// lianLianService.pushOrderSettlementInfo("C27680791529");
|
|
|
|
|
|
|
|
|
|
|
|
// 查询订单结算信息
|
|
|
|
|
|
// lianLianService.queryOrderSettlementInfo("C27680791529");
|
|
|
|
|
|
|
|
|
|
|
|
// 推送订单对账结果信息
|
|
|
|
|
|
// lianLianService.pushOrderReconciliationInfo("C27680791529");
|
|
|
|
|
|
|
|
|
|
|
|
// 测试生成、解密令牌
|
|
|
|
|
|
// long ttlMillis = 60 * 60 * 24 * 1000;
|
|
|
|
|
|
// String token = JWTUtils.createToken(operatorId, operatorSecret, ttlMillis);
|
|
|
|
|
|
// System.out.println(JWTUtils.checkThirdPartyToken(token));
|
|
|
|
|
|
|
|
|
|
|
|
JSONObject jsonObject1 = new JSONObject(map);
|
|
|
|
|
|
jsonObject1.put("OperatorID", "425010765");
|
|
|
|
|
|
jsonObject1.put("Data", "Ntu99RpveEOm2VUNq6RpD7OuOPXRbNxMOPmaBl67nkLk0nD/VmhipdSpq/Qfswhe1o55YMT+3Z7e6xe3fiJA3cZcvetxOEUF6sjvKLRq2rU=");
|
|
|
|
|
|
jsonObject1.put("TimeStamp", "20230530090132");
|
|
|
|
|
|
jsonObject1.put("Seq", "0001");
|
|
|
|
|
|
jsonObject1.put("Sig", "1568D2D35B245A0205B33D0EF92E7981");
|
|
|
|
|
|
|
|
|
|
|
|
String jsonString = JSONObject.toJSONString(jsonObject1);
|
|
|
|
|
|
|
|
|
|
|
|
String result = HttpUtils.sendPostContentType("http://localhost:8080/LianLian/v1/query_stations_info", jsonString, "application/json");
|
|
|
|
|
|
JSONObject object = JSONObject.parseObject(result);
|
|
|
|
|
|
String data1 = (String) object.get("data");
|
|
|
|
|
|
// 解密data
|
|
|
|
|
|
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(data1),
|
|
|
|
|
|
operatorSecret.getBytes(), operatorSecret.getBytes());
|
|
|
|
|
|
String dataStr = new String(plainText, "UTF-8");
|
|
|
|
|
|
Map<String, String> resultMap = (Map<String, String>) JSON.parse(dataStr);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testRefundForBalance() {
|
|
|
|
|
|
BigDecimal refundAmount = new BigDecimal("2");
|
|
|
|
|
|
// 退款金额 元转分 123
|
|
|
|
|
|
int refundTotalCents = refundAmount.multiply(new BigDecimal(100)).intValue();
|
|
|
|
|
|
|
|
|
|
|
|
// 查询用户充值余额订单 过滤掉已经退款的充值订单 refundableOrder
|
|
|
|
|
|
List<RefundableWxPayOrderData> recordList = Lists.newArrayList();
|
|
|
|
|
|
// recordList.add(RefundableWxPayOrderData.builder().outTradeNo("1").transactionId("1").payerAmount(new BigDecimal("1000")).refundableAmount(new BigDecimal("0")).build());
|
|
|
|
|
|
// recordList.add(RefundableWxPayOrderData.builder().outTradeNo("2").transactionId("2").payerAmount(new BigDecimal("1000")).refundableAmount(new BigDecimal("0")).build());
|
|
|
|
|
|
recordList.add(RefundableWxPayOrderData.builder().outTradeNo("3").transactionId("3").payerAmount(new BigDecimal("500")).refundableAmount(new BigDecimal("300")).build());
|
|
|
|
|
|
|
|
|
|
|
|
// 也许需要多笔支付订单才够退款
|
|
|
|
|
|
List<WechatPayRefundRequest> requestList = com.google.common.collect.Lists.newArrayList();
|
|
|
|
|
|
WechatPayRefundRequest request;
|
|
|
|
|
|
for (RefundableWxPayOrderData record : recordList) {
|
|
|
|
|
|
int refundableTotal = record.getRefundableAmount().intValue(); // 该笔支付订单的可退金额,单位分
|
|
|
|
|
|
int payerTotal = record.getPayerAmount().intValue(); // 该笔支付订单的支付金额,单位分
|
|
|
|
|
|
// 用户申请退款金额-可退金额
|
|
|
|
|
|
refundTotalCents = refundTotalCents - refundableTotal; // 123 - 100
|
|
|
|
|
|
request = new WechatPayRefundRequest();
|
|
|
|
|
|
request.setTransaction_id(record.getTransactionId()); // 微信支付单号
|
|
|
|
|
|
request.setOut_trade_no(record.getOutTradeNo()); // 商户订单号
|
|
|
|
|
|
request.setOut_refund_no(SnowflakeIdWorker.getSnowflakeId()); // 商户退款单号
|
|
|
|
|
|
request.setNotify_url(WeChatPayParameter.refundNotifyUrl); // 回调接口
|
|
|
|
|
|
request.setReason("用户余额退款");
|
|
|
|
|
|
request.setFunds_account("AVAILABLE");
|
|
|
|
|
|
if (refundTotalCents > 0) {
|
|
|
|
|
|
// 如果大于0说明,这笔单退完也不够
|
|
|
|
|
|
WechatPayRefundRequest.Amount amount = new WechatPayRefundRequest.Amount();
|
|
|
|
|
|
amount.setRefund(refundableTotal); // 退款金额
|
|
|
|
|
|
amount.setTotal(payerTotal); // 原订单金额
|
|
|
|
|
|
request.setAmount(amount);
|
|
|
|
|
|
requestList.add(request);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 如果小于0,这笔单退一部分
|
|
|
|
|
|
// 生成退款单号
|
|
|
|
|
|
WechatPayRefundRequest.Amount amount = new WechatPayRefundRequest.Amount();
|
|
|
|
|
|
// 部分退
|
|
|
|
|
|
int i = refundableTotal + refundTotalCents;
|
|
|
|
|
|
amount.setRefund(i); // 退款金额
|
|
|
|
|
|
amount.setTotal(payerTotal); // 原订单金额
|
|
|
|
|
|
request.setAmount(amount);
|
|
|
|
|
|
requestList.add(request);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println(requestList);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testCloseStartFailedOrder() {
|
|
|
|
|
|
String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.addDays(new Date(), -2));
|
|
|
|
|
|
String endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, new Date());
|
|
|
|
|
|
orderBasicInfoService.closeStartFailedOrder(startTime, endTime);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testRedisSaveRealTimeData() {
|
|
|
|
|
|
String pileSn = "88000000000001";
|
|
|
|
|
|
String connectorCode = "01";
|
|
|
|
|
|
String orderCode = "88000000000001012211161342359448";
|
|
|
|
|
|
|
|
|
|
|
|
String pileConnectorCode = pileSn + connectorCode;
|
|
|
|
|
|
String redisKey = CacheConstants.PILE_REAL_TIME_MONITOR_DATA + pileConnectorCode + "_" + orderCode;
|
|
|
|
|
|
|
|
|
|
|
|
// for (int i = 0; i < 10; i++) {
|
|
|
|
|
|
// try {
|
|
|
|
|
|
// Thread.sleep(10000);
|
|
|
|
|
|
// } catch (InterruptedException e) {
|
|
|
|
|
|
// e.printStackTrace();
|
|
|
|
|
|
// }
|
|
|
|
|
|
// Date now = new Date();
|
|
|
|
|
|
// redisCache.hset(redisKey, DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", now), i + ":" + DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", now));
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
orderBasicInfoService.getChargingRealTimeData(orderCode);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testuniformMessageSend() {
|
|
|
|
|
|
AppletTemplateMessageSendDTO appletTemplateMessageSendDTO = new AppletTemplateMessageSendDTO();
|
|
|
|
|
|
// String openId = wxAppletRemoteService.getOpenIdByCode("0537u2100jTXsP1Y0Y300j426t47u210");
|
|
|
|
|
|
// System.out.println("openId:" + openId);
|
|
|
|
|
|
|
|
|
|
|
|
appletTemplateMessageSendDTO.setTouser("o4REX5MprZfTaLnVNxfdOY-wnwGI"); // openid
|
|
|
|
|
|
|
|
|
|
|
|
String templateId = "UyBPbADlZfsCj89rh_xvfZGlxTW5J5KURpZtt9CNFrY";
|
|
|
|
|
|
appletTemplateMessageSendDTO.setTemplate_id(templateId);
|
|
|
|
|
|
// appletTemplateMessageSendDTO.setPage("跳转的页面");
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
|
map.put("amount17", ImmutableMap.of("value", "¥100")); // 结束时间
|
|
|
|
|
|
map.put("time3", ImmutableMap.of("value", "2022-12-30")); // 结束时间
|
|
|
|
|
|
map.put("thing7", ImmutableMap.of("value", "thing7")); // 结束原因
|
|
|
|
|
|
|
|
|
|
|
|
// map.put("thing5", ImmutableMap.of("value", "thing5")); // 结束原因
|
|
|
|
|
|
// map.put("time2", ImmutableMap.of("value", "time2")); // 结束原因
|
|
|
|
|
|
appletTemplateMessageSendDTO.setData(map);
|
|
|
|
|
|
|
|
|
|
|
|
wxAppletRemoteService.uniformMessageSend(appletTemplateMessageSendDTO);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testWeChatRefund() {
|
|
|
|
|
|
ApplyRefundDTO dto = new ApplyRefundDTO();
|
|
|
|
|
|
dto.setRefundType("2");
|
|
|
|
|
|
dto.setMemberId("82100864");
|
|
|
|
|
|
dto.setRefundAmount(new BigDecimal("1.23"));
|
|
|
|
|
|
orderBasicInfoService.weChatRefund(dto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testSelectBalanceRechargeRecord() {
|
|
|
|
|
|
List<WxpayCallbackRecord> list = wxpayCallbackRecordService.queryBalanceRechargeRecordOfTheLatestYear("82100864");
|
|
|
|
|
|
System.out.println(list);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testSelectOrderBasicInfoList() {
|
|
|
|
|
|
QueryOrderDTO orderBasicInfo = new QueryOrderDTO();
|
|
|
|
|
|
orderBasicInfo.setPileSn("88000000000001");
|
|
|
|
|
|
orderBasicInfo.setOrderStatus(OrderStatusEnum.IN_THE_CHARGING.getValue());
|
|
|
|
|
|
List<OrderListVO> orderListVOS = orderBasicInfoService.selectOrderBasicInfoList(orderBasicInfo);
|
|
|
|
|
|
System.out.println(orderListVOS);
|
|
|
|
|
|
for (OrderListVO orderListVO : orderListVOS) {
|
|
|
|
|
|
if (StringUtils.equals(orderListVO.getOrderStatus(), OrderStatusEnum.IN_THE_CHARGING.getValue())) {
|
|
|
|
|
|
// 修改数据库订单状态
|
|
|
|
|
|
OrderBasicInfo info = OrderBasicInfo.builder()
|
|
|
|
|
|
.id(Long.parseLong(orderListVO.getId()))
|
|
|
|
|
|
.orderStatus(OrderStatusEnum.ABNORMAL.getValue())
|
|
|
|
|
|
.build();
|
|
|
|
|
|
orderBasicInfoService.updateOrderBasicInfo(info);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testWechatRefund() throws JsonProcessingException {
|
|
|
|
|
|
WechatPayRefundRequest request = new WechatPayRefundRequest();
|
|
|
|
|
|
request.setTransaction_id("4200001656202212302746036536"); // 微信支付单号
|
|
|
|
|
|
request.setOut_trade_no("768677222373363712"); // 商户订单号
|
|
|
|
|
|
// 生成退款单号
|
|
|
|
|
|
request.setOut_refund_no(SnowflakeIdWorker.getSnowflakeId()); // 商户退款单号
|
|
|
|
|
|
request.setNotify_url(WeChatPayParameter.refundNotifyUrl); // 回调接口
|
|
|
|
|
|
WechatPayRefundRequest.Amount amount = new WechatPayRefundRequest.Amount();
|
|
|
|
|
|
amount.setRefund(10 * 100); // 退款金额
|
|
|
|
|
|
amount.setTotal(10 * 100); // 原订单金额
|
|
|
|
|
|
request.setAmount(amount);
|
|
|
|
|
|
request.setReason("结算退款");
|
|
|
|
|
|
request.setFunds_account("AVAILABLE");
|
|
|
|
|
|
|
|
|
|
|
|
wechatPayService.ApplyForWechatPayRefundV3(request);
|
|
|
|
|
|
|
|
|
|
|
|
// 退款方法
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testUpdatePileSimInfo() {
|
|
|
|
|
|
String pileSn = "88000000000001";
|
|
|
|
|
|
String iccid = "89860402102091089943";
|
|
|
|
|
|
pileBasicInfoService.updatePileSimInfo(pileSn, iccid);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testPay() {
|
|
|
|
|
|
String code = "081zIoGa11GamE0iVVIa1aaJ4G0zIoGE";
|
|
|
|
|
|
String openId = memberService.getOpenIdByCode(code);
|
|
|
|
|
|
Map<String, Object> pay = null;
|
|
|
|
|
|
try {
|
|
|
|
|
|
WeixinPayDTO dto = new WeixinPayDTO();
|
|
|
|
|
|
dto.setOpenId(openId);
|
|
|
|
|
|
dto.setAmount("0.01");
|
|
|
|
|
|
pay = orderService.weixinPayV3(dto);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
}
|
|
|
|
|
|
System.out.println(JSONObject.toJSONString(pay));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testMemberRegisterAndLogin() throws BaseAdaPayException {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testMemberBasicInfoMapper() {
|
|
|
|
|
|
// String memberId = "21772870";
|
|
|
|
|
|
// BigDecimal principalBalance = new BigDecimal("-10");
|
|
|
|
|
|
// BigDecimal giftBalance = new BigDecimal("-110");
|
|
|
|
|
|
// Integer version = 2;
|
|
|
|
|
|
// int i = memberBasicInfoMapper.updateMemberBalance(memberId, principalBalance, giftBalance, version);
|
|
|
|
|
|
// if (i == 1) {
|
|
|
|
|
|
// System.out.println("更新余额成功");
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
// System.out.println("更新余额失败");
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> refundParams = new HashMap<>(2);
|
|
|
|
|
|
refundParams.put("payment_id", "002212023071011321210524320114191904768");
|
|
|
|
|
|
// refundParams.put("refund_id", refund_id);
|
|
|
|
|
|
// refundParams.put("refund_order_no", refund_order_no);
|
|
|
|
|
|
try {
|
|
|
|
|
|
Map<String, Object> refund = Refund.query(refundParams);
|
|
|
|
|
|
System.out.println(refund);
|
|
|
|
|
|
} catch (BaseAdaPayException e) {
|
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testGenerateBillingTemplateMsgBody() {
|
|
|
|
|
|
String pileSn = "88000000000001";
|
|
|
|
|
|
// 根据桩号查询计费模板
|
|
|
|
|
|
BillingTemplateVO billingTemplateVO = pileBillingTemplateService.selectBillingTemplateDetailByPileSn(pileSn);
|
|
|
|
|
|
|
|
|
|
|
|
byte[] messageBody = pileBillingTemplateService.generateBillingTemplateMsgBody(pileSn, billingTemplateVO);
|
|
|
|
|
|
System.out.println(BytesUtil.binary(messageBody, 16));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testAnalysisPileParameter() {
|
|
|
|
|
|
BasicPileDTO dto = new BasicPileDTO();
|
|
|
|
|
|
// 3个都不传的情况
|
|
|
|
|
|
try {
|
|
|
|
|
|
System.out.println("3个都不传的情况");
|
|
|
|
|
|
dto.setPileSn("");
|
|
|
|
|
|
dto.setConnectorCode("");
|
|
|
|
|
|
dto.setPileConnectorCode("");
|
|
|
|
|
|
// orderService.analysisPileParameter(dto);
|
|
|
|
|
|
System.out.println("数据正确");
|
|
|
|
|
|
} catch (BusinessException e) {
|
|
|
|
|
|
System.out.println(e.getMessage());
|
|
|
|
|
|
}
|
|
|
|
|
|
System.out.println();
|
|
|
|
|
|
|
|
|
|
|
|
// 只传sn的情况
|
|
|
|
|
|
try {
|
|
|
|
|
|
System.out.println("只传sn的情况");
|
|
|
|
|
|
dto.setConnectorCode("");
|
|
|
|
|
|
dto.setPileConnectorCode("");
|
|
|
|
|
|
dto.setPileSn("88000000000001");
|
|
|
|
|
|
// orderService.analysisPileParameter(dto);
|
|
|
|
|
|
System.out.println("数据正确");
|
|
|
|
|
|
} catch (BusinessException e) {
|
|
|
|
|
|
System.out.println(e.getMessage());
|
|
|
|
|
|
}
|
|
|
|
|
|
System.out.println();
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
try {
|
|
|
|
|
|
System.out.println("只穿枪口号的情况");
|
|
|
|
|
|
dto.setConnectorCode("01");
|
|
|
|
|
|
dto.setPileConnectorCode("");
|
|
|
|
|
|
dto.setPileSn("");
|
|
|
|
|
|
// orderService.analysisPileParameter(dto);
|
|
|
|
|
|
System.out.println("数据正确");
|
|
|
|
|
|
} catch (BusinessException e) {
|
|
|
|
|
|
System.out.println(e.getMessage());
|
|
|
|
|
|
}
|
|
|
|
|
|
System.out.println();
|
|
|
|
|
|
|
|
|
|
|
|
// 只传充电桩枪口编号的情况
|
|
|
|
|
|
try {
|
|
|
|
|
|
System.out.println("只传充电桩枪口编号的情况");
|
|
|
|
|
|
dto.setPileConnectorCode("8800000000000101");
|
|
|
|
|
|
dto.setConnectorCode("");
|
|
|
|
|
|
dto.setPileSn("");
|
|
|
|
|
|
// orderService.analysisPileParameter(dto);
|
|
|
|
|
|
System.out.println("数据正确");
|
|
|
|
|
|
} catch (BusinessException e) {
|
|
|
|
|
|
System.out.println(e.getMessage());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
System.out.println();
|
|
|
|
|
|
System.out.println("传充电桩枪sn+枪口号的情况");
|
|
|
|
|
|
dto.setPileConnectorCode("");
|
|
|
|
|
|
dto.setConnectorCode("01");
|
|
|
|
|
|
dto.setPileSn("88000000000001");
|
|
|
|
|
|
// orderService.analysisPileParameter(dto);
|
|
|
|
|
|
System.out.println("数据正确");
|
|
|
|
|
|
} catch (BusinessException e) {
|
|
|
|
|
|
System.out.println(e.getMessage());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testImportBillingTemplate() {
|
|
|
|
|
|
ImportBillingTemplateDTO dto = new ImportBillingTemplateDTO();
|
|
|
|
|
|
dto.setBillingTemplateId("1");
|
|
|
|
|
|
// 查询公共计费模板是否存在
|
|
|
|
|
|
PileBillingTemplate pileBillingTemplate = pileBillingTemplateMapper.selectPileBillingTemplateById(Long.valueOf(dto.getBillingTemplateId()));
|
|
|
|
|
|
if (pileBillingTemplate == null) {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
List<PileBillingDetail> billingDetailList = pileBillingTemplate.getPileBillingDetailList();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testProcess() {
|
|
|
|
|
|
// 62 68
|
|
|
|
|
|
String msgString = "680da300000388000000000001010020d06840a40000130000000000000000000000000000000088000000000001010202000000000000000000000000000000000000000000000000000000000000000000001516";
|
|
|
|
|
|
byte[] msg = BytesUtil.str2Bcd(msgString);
|
|
|
|
|
|
boolean b = YKCUtils.checkMsg(msg);
|
|
|
|
|
|
// ykcBusinessService.process(msg, null);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testHeartbeat() {
|
|
|
|
|
|
// heartbeatRequestHandler.updateStatus("88000000000001", "01", "0");
|
|
|
|
|
|
|
|
|
|
|
|
// heartbeatRequestHandler.updateStatus("88000000000001", "02", "0");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testPush() {
|
|
|
|
|
|
byte[] msg = new byte[]{};
|
|
|
|
|
|
String pileSn = "88000000000001";
|
|
|
|
|
|
// ykcPushBusinessService.push(msg, pileSn, YKCFrameTypeCode.READ_REAL_TIME_MONITOR_DATA_CODE);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void TestMapUtils() {
|
|
|
|
|
|
String address = "淀山湖镇黄浦江南路278号";
|
|
|
|
|
|
String areaCode = "320000,320500,320583";
|
|
|
|
|
|
Map<String, String> longitudeAndLatitude = AddressUtils.getLongitudeAndLatitude(areaCode, address);
|
|
|
|
|
|
System.out.println(longitudeAndLatitude);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testCreatePile() {
|
|
|
|
|
|
BatchCreatePileDTO dto = BatchCreatePileDTO.builder()
|
|
|
|
|
|
.merchantId("1")
|
|
|
|
|
|
.stationId("1")
|
|
|
|
|
|
.softwareProtocol("1")
|
|
|
|
|
|
// .connectorNum(1)
|
|
|
|
|
|
// .num(10)
|
|
|
|
|
|
// .productionDate(new Date())
|
|
|
|
|
|
.build();
|
|
|
|
|
|
pileService.batchCreatePile(dto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testGetIncre() {
|
|
|
|
|
|
StopWatch stopWatch = new StopWatch();
|
|
|
|
|
|
|
|
|
|
|
|
// 生成100个
|
|
|
|
|
|
stopWatch.start("生成100个sn号");
|
|
|
|
|
|
List<String> list2 = snUtils.generateSN(1);
|
|
|
|
|
|
stopWatch.stop();
|
|
|
|
|
|
System.out.println(list2);
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println(stopWatch.getLastTaskTimeMillis());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testDict() {
|
|
|
|
|
|
// String dictValue = DictUtils.getDictValue("query_pile_info", "url");
|
|
|
|
|
|
// String station_type = DictUtils.getDictLabel("station_type", "1");
|
|
|
|
|
|
// System.out.println(station_type);
|
|
|
|
|
|
// System.out.println("123");
|
|
|
|
|
|
|
|
|
|
|
|
List<SysDictData> adapay_station = DictUtils.getDictCache("adapay_station");
|
|
|
|
|
|
List<String> stationIdList = com.google.common.collect.Lists.newArrayList();
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(adapay_station)) {
|
|
|
|
|
|
for (SysDictData sysDictData : adapay_station) {
|
|
|
|
|
|
stationIdList.add(sysDictData.getDictValue());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
System.out.println(stationIdList);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testSelectByMerchantId() {
|
|
|
|
|
|
List<PileStationInfo> list = pileStationInfoService.selectStationListByMerchantId(Long.valueOf(Constants.ONE));
|
|
|
|
|
|
System.out.println(list);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testStr2Bcd() {
|
|
|
|
|
|
String logicCardNum = "00000000";
|
|
|
|
|
|
byte[] logicCardNumByteArr = BytesUtil.str2Bcd(logicCardNum);
|
|
|
|
|
|
System.out.println(Arrays.toString(logicCardNumByteArr));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testBigDecimalMultiply() {
|
|
|
|
|
|
BigDecimal a = new BigDecimal("216.5");
|
|
|
|
|
|
BigDecimal b = new BigDecimal("11.5");
|
|
|
|
|
|
|
|
|
|
|
|
BigDecimal result = a.multiply(b).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
System.out.println(result);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testRemoteUpdate() {
|
|
|
|
|
|
ArrayList<String> list = new ArrayList<>();
|
|
|
|
|
|
list.add("88000000000001");
|
|
|
|
|
|
// pileRemoteService.updateFirmware(list);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testGetUserPhoneNum() {
|
|
|
|
|
|
String code = "0e5394cfa4eb41c6181ed257f2368a86dfe4ebdac0a4fac85df63657637e6cc3";
|
|
|
|
|
|
wxAppletRemoteService.getMobileNumberByCode(code);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testDistance() {
|
|
|
|
|
|
QueryStationDTO dto = new QueryStationDTO();
|
|
|
|
|
|
dto.setStationLat("123.2222");
|
|
|
|
|
|
dto.setStationLng("55.6232");
|
|
|
|
|
|
|
|
|
|
|
|
// pileStationInfoService.uniAppQueryStationInfos(dto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 生成英文字母随机数 RandomStringUtils.randomAlphabetic(10);
|
|
|
|
|
|
* 生成数字随机数 RandomStringUtils.randomNumeric(10);
|
|
|
|
|
|
* 字母+数字结合 RandomStringUtils.randomAlphanumeric(10);
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void Test() throws ParseException {
|
2023-03-04 16:29:55 +08:00
|
|
|
|
/*String s = RandomStringUtils.randomAlphanumeric(32);
|
|
|
|
|
|
System.out.println(s); // PuLe4Tyyg1jSFNPhF5d2Ts9ejRn6E8KQ
|
|
|
|
|
|
String str = "JS160829";
|
|
|
|
|
|
System.out.println(Md5Utils.hash(str).toUpperCase(Locale.ROOT));
|
|
|
|
|
|
*/
|
2023-08-30 11:02:18 +08:00
|
|
|
|
String s = RandomStringUtils.randomAlphanumeric(43).toUpperCase(Locale.ROOT);
|
|
|
|
|
|
System.out.println(s);
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
Date startTimeDate = sdf.parse("2022-11-26 10:44:11");
|
|
|
|
|
|
Date endTimeDate = sdf.parse("2022-11-27 12:45:11");
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
2023-08-30 11:02:18 +08:00
|
|
|
|
System.out.println(DateUtils.getDatePoor(endTimeDate, startTimeDate)); // 1天2小时1分钟
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*String stra = "sp_mchid=1632405339&sub_mchid=1632405339&out_trade_no=1217752501201407033233368318&sp_appid=wxbb3e0d474569481d&sub_appid=wxbb3e0d474569481d" +
|
|
|
|
|
|
"bbac689f4654b209de4d6944808ec80b";
|
|
|
|
|
|
System.out.println(Md5Utils.hash(stra).toUpperCase(Locale.ROOT));*/
|
2023-08-30 11:02:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testSimCard() throws ParseException {
|
|
|
|
|
|
ArrayList<String> list = Lists.newArrayList();
|
|
|
|
|
|
Collections.addAll(list, "898607B9102090253556", "898607B9102090253560");
|
|
|
|
|
|
// String s = list.toString().replaceAll("(?:\\[|null|\\]| +)", "");
|
|
|
|
|
|
// System.out.println(s);
|
|
|
|
|
|
// List<SimCardVO> simCardVOList = simCardService.selectSimCardInfoByIccId(list);
|
|
|
|
|
|
// System.out.println(simCardVOList.toString());
|
|
|
|
|
|
|
|
|
|
|
|
// simCardService.XunZhongSimRenewal(list, 12);
|
|
|
|
|
|
// System.out.println(s);
|
|
|
|
|
|
|
|
|
|
|
|
// SimCardVO simCardVO = simCardService.searchByLoop("898607B9102090253556");
|
|
|
|
|
|
//
|
|
|
|
|
|
// System.out.println(simCardVO.toString());
|
|
|
|
|
|
|
|
|
|
|
|
simCardService.WuLianSimRenew(list, 1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testRefund() {
|
|
|
|
|
|
OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode("88000000000001012212171045412218");
|
|
|
|
|
|
orderInfo.setReason("充电异常中止,急停开入");
|
|
|
|
|
|
|
|
|
|
|
|
TransactionRecordsData data = TransactionRecordsData.builder()
|
|
|
|
|
|
.transactionCode("88000000000001012212171045412218")
|
|
|
|
|
|
.consumptionAmount(String.valueOf(0.00))
|
|
|
|
|
|
.stopReasonMsg(orderInfo.getReason())
|
|
|
|
|
|
.totalElectricity("0")
|
|
|
|
|
|
.sharpUsedElectricity("0")
|
|
|
|
|
|
.peakUsedElectricity("0")
|
|
|
|
|
|
.flatUsedElectricity("0")
|
|
|
|
|
|
.valleyUsedElectricity("0")
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
2023-09-01 15:45:04 +08:00
|
|
|
|
// orderBasicInfoService.settleOrder(data, orderInfo);
|
2023-08-30 11:02:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testLoginHandler() {
|
|
|
|
|
|
String msg = "8800000000001001010f63362d333000000000898604b319227036282200";
|
|
|
|
|
|
byte[] msgBody = BytesUtil.str2Bcd(msg);
|
|
|
|
|
|
|
|
|
|
|
|
int startIndex = 0;
|
|
|
|
|
|
int length = 7;
|
|
|
|
|
|
|
|
|
|
|
|
// 桩编码
|
|
|
|
|
|
byte[] pileSnByte = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String pileSn = BytesUtil.binary(pileSnByte, 16);
|
|
|
|
|
|
// log.info("桩号:{}", pileSn);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 桩类型 0 表示直流桩, 1 表示交流桩
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 1;
|
|
|
|
|
|
byte[] pileTypeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String pileType = BytesUtil.bcd2Str(pileTypeByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 充电枪数量
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] connectorNumByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String connectorNum = BytesUtil.bcd2Str(connectorNumByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 通信协议版本 版本号乘 10,v1.0 表示 0x0A
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
byte[] communicationVersionByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
// int i = Integer.parseInt(BytesUtil.bcd2Str(communicationVersionByteArr)); // 0F --> 15
|
|
|
|
|
|
BigDecimal bigDecimal = new BigDecimal(BytesUtil.bcd2Str(communicationVersionByteArr));
|
|
|
|
|
|
BigDecimal communicationVersionTemp = bigDecimal.divide(new BigDecimal(10));
|
|
|
|
|
|
String communicationVersion = "v" + communicationVersionTemp;
|
|
|
|
|
|
|
|
|
|
|
|
// 程序版本
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 8;
|
|
|
|
|
|
byte[] programVersionByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String programVersion = BytesUtil.bcd2Str(programVersionByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 网络连接类型 0x00 SIM 卡 0x01 LAN 0x02 WAN 0x03 其他
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 1;
|
|
|
|
|
|
byte[] internetConnectionTypeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String internetConnection = BytesUtil.bcd2Str(internetConnectionTypeByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// sim卡
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 10;
|
|
|
|
|
|
byte[] simCardNumByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String iccid = BytesUtil.bin2HexStr(simCardNumByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
// 运营商 0x00 移动 0x02 电信 0x03 联通 0x04 其他
|
|
|
|
|
|
startIndex += length;
|
|
|
|
|
|
length = 1;
|
|
|
|
|
|
byte[] businessTypeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
|
|
|
|
|
String business = BytesUtil.bcd2Str(businessTypeByteArr);
|
|
|
|
|
|
|
|
|
|
|
|
LoginRequestData loginRequestData = LoginRequestData.builder()
|
|
|
|
|
|
.pileSn(pileSn)
|
|
|
|
|
|
.pileType(pileType)
|
|
|
|
|
|
.connectorNum(connectorNum)
|
|
|
|
|
|
.communicationVersion(communicationVersion)
|
|
|
|
|
|
.programVersion(programVersion)
|
|
|
|
|
|
.internetConnection(internetConnection)
|
|
|
|
|
|
.iccid(iccid)
|
|
|
|
|
|
.business(business)
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
|
|
// 结果(默认 0x01:登录失败)
|
|
|
|
|
|
byte[] flag = Constants.oneByteArray;
|
|
|
|
|
|
|
|
|
|
|
|
// 通过桩编码SN查询数据库,如果有数据,则登录成功,否则登录失败
|
|
|
|
|
|
QueryPileDTO dto = new QueryPileDTO();
|
|
|
|
|
|
dto.setPileSn(pileSn);
|
|
|
|
|
|
List<PileDetailVO> list = pileBasicInfoService.queryPileInfos(dto);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
|
|
|
flag = Constants.zeroByteArray;
|
|
|
|
|
|
// 登录成功,保存桩号和channel的关系
|
|
|
|
|
|
|
|
|
|
|
|
// PileChannelEntity.put(pileSn, channel);
|
|
|
|
|
|
// 更改桩和该桩下的枪口状态分别为 在线、空闲
|
|
|
|
|
|
// pileBasicInfoService.updatePileStatus(pileSn, PileStatusEnum.ON_LINE.getValue());
|
|
|
|
|
|
// pileConnectorInfoService.updateConnectorStatusByPileSn(pileSn, PileConnectorDataBaseStatusEnum.FREE.getValue());
|
|
|
|
|
|
|
|
|
|
|
|
// 对时
|
|
|
|
|
|
ProofreadTimeCommand command = ProofreadTimeCommand.builder().pileSn(pileSn).build();
|
|
|
|
|
|
ykcPushCommandService.pushProofreadTimeCommand(command);
|
|
|
|
|
|
|
|
|
|
|
|
// 公共方法修改状态
|
|
|
|
|
|
pileBasicInfoService.updateStatus(BytesUtil.bcd2Str(new byte[]{0x01}), pileSn, null, null, null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 下发二维码
|
|
|
|
|
|
IssueQRCodeCommand issueQRCodeCommand = IssueQRCodeCommand.builder().pileSn(pileSn).build();
|
|
|
|
|
|
ykcPushCommandService.pushIssueQRCodeCommand(issueQRCodeCommand);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 充电桩使用的sim卡,把信息存库
|
|
|
|
|
|
if (StringUtils.equals("00", internetConnection)) {
|
|
|
|
|
|
try {
|
|
|
|
|
|
pileBasicInfoService.updatePileSimInfo(pileSn, iccid);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
// log.error("更新充电桩sim卡信息失败", e);
|
|
|
|
|
|
System.out.println(e.getMessage());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 保存报文
|
|
|
|
|
|
String jsonMsg = JSONObject.toJSONString(loginRequestData);
|
|
|
|
|
|
// pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
|
|
|
|
|
|
|
|
|
|
|
|
// // 消息体
|
|
|
|
|
|
// byte[] messageBody = Bytes.concat(pileSnByte, flag);
|
|
|
|
|
|
// return getResult(ykcDataProtocol, messageBody);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
public void testGetMemberToken() {
|
|
|
|
|
|
String memberId = JWTUtils.getMemberId("eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NzY1MTY5MzgsImV4cCI6MTY3OTEwODkzOH0.4MwhZIOpnCfQloR7zEm2hwPOh2yyI2qxbBbTcv_SnZ4");
|
|
|
|
|
|
System.out.println(memberId);
|
|
|
|
|
|
}
|
2023-03-04 16:29:55 +08:00
|
|
|
|
|
|
|
|
|
|
}
|