├── .gitignore ├── LICENSE ├── README.md ├── cashier ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── yiranpay │ │ │ └── cashier │ │ │ ├── YiRanCashierApplication.java │ │ │ ├── config │ │ │ └── GlobalConfig.java │ │ │ ├── constants │ │ │ └── CashierConstants.java │ │ │ ├── exception │ │ │ └── ErrorCodeException.java │ │ │ ├── support │ │ │ ├── request │ │ │ │ ├── ChinaH5PayRequest.java │ │ │ │ └── RequestBase.java │ │ │ └── response │ │ │ │ ├── BaseResponse.java │ │ │ │ ├── ChinaH5PayQueryResponse.java │ │ │ │ ├── ChinaH5PayResponse.java │ │ │ │ ├── OrderInfoResponse.java │ │ │ │ └── ResponseResult.java │ │ │ ├── tool │ │ │ ├── EncodedPostMethod.java │ │ │ ├── HttpEncoding.java │ │ │ ├── MapUtil.java │ │ │ ├── OrderNoTool.java │ │ │ ├── RSAUtils.java │ │ │ ├── SignUtils.java │ │ │ ├── WebHttpClient.java │ │ │ └── WebTool.java │ │ │ └── web │ │ │ └── DemoController.java │ └── resources │ │ ├── application.yml │ │ ├── banner.txt │ │ ├── logback-spring.xml │ │ ├── static │ │ ├── ajax │ │ │ └── libs │ │ │ │ └── blockUI │ │ │ │ └── jquery.blockUI.js │ │ ├── bank_logo.png │ │ ├── css │ │ │ ├── Reset.css │ │ │ ├── main12.css │ │ │ ├── mui.min.css │ │ │ ├── weui.css │ │ │ └── yr-ui.css │ │ ├── images │ │ │ ├── alipay12.svg │ │ │ ├── bank12.svg │ │ │ ├── default.png │ │ │ ├── icon_selected02.png │ │ │ ├── icon_suc.gif │ │ │ ├── live_weixin.png │ │ │ ├── loading.gif │ │ │ ├── loadingBody.gif │ │ │ ├── sm.png │ │ │ └── wechart12.svg │ │ ├── js │ │ │ ├── cashier.js │ │ │ ├── jquery-1.11.3.min.js │ │ │ └── qrcode.js │ │ ├── order.html │ │ └── qr.html │ │ └── templates │ │ ├── demo.html │ │ ├── index.html │ │ ├── query.html │ │ ├── success.html │ │ └── success2.html │ └── test │ └── java │ └── com │ └── github │ └── xuchengen │ ├── Bootloader.java │ ├── MainWindow.java │ └── ScannerWindow.java ├── channel └── channel-pay │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── channel │ │ │ └── bank │ │ │ └── adapter │ │ │ └── pay │ │ │ ├── WXChannelApplication.java │ │ │ ├── api │ │ │ ├── ALIAppPayFundinFacade.java │ │ │ ├── ALIPagePayFundinFacade.java │ │ │ ├── ALIWapPayFundinFacade.java │ │ │ ├── BaseBankInterface.java │ │ │ ├── BasePayFundinFacade.java │ │ │ ├── ChinaH5PayFundinFacade.java │ │ │ ├── ResultNotifyFacade.java │ │ │ ├── WeiXinFundinFacade.java │ │ │ └── WeiXinNativeFundinFacade.java │ │ │ ├── config │ │ │ ├── Global.java │ │ │ ├── PayConfig.java │ │ │ ├── SignType.java │ │ │ ├── WechatPayConfig.java │ │ │ └── WxPayH5Config.java │ │ │ ├── constants │ │ │ ├── ALIPayConstant.java │ │ │ ├── BankPropertyKeyBase.java │ │ │ ├── ExtensionKeys.java │ │ │ ├── PublicPayConstant.java │ │ │ ├── ReturnCode.java │ │ │ ├── WXPAYFundChannelKey.java │ │ │ └── WxPayConstants.java │ │ │ ├── domain │ │ │ ├── AmqoRequrst.java │ │ │ ├── BaseResult.java │ │ │ ├── ChannelFundRequest.java │ │ │ ├── ChannelFundResult.java │ │ │ ├── ChannelRequest.java │ │ │ ├── ChannelResult.java │ │ │ ├── ChinaBillDataDo.java │ │ │ ├── EBankChannelFundRequest.java │ │ │ ├── EBankChannelVerifyRequest.java │ │ │ ├── EBankChannelVerifyResult.java │ │ │ ├── Installment.java │ │ │ ├── MerchantOrder.java │ │ │ ├── PayQueryRequest.java │ │ │ ├── PayQueryResponse.java │ │ │ ├── PayRefundRequest.java │ │ │ ├── PayRefundResponse.java │ │ │ ├── PublicPayRequest.java │ │ │ ├── QueryRequest.java │ │ │ ├── RefundQueryRequest.java │ │ │ ├── RefundQueryResponse.java │ │ │ └── ResultWrapper.java │ │ │ ├── enums │ │ │ ├── AbsResultEnum.java │ │ │ ├── AccessChannel.java │ │ │ ├── BestPayResultEnum.java │ │ │ ├── BestPayTypeEnum.java │ │ │ ├── BizType.java │ │ │ ├── CallBackType.java │ │ │ ├── DefaultResultEnum.java │ │ │ ├── FundChannelApiType.java │ │ │ ├── PayMode.java │ │ │ └── ResponseType.java │ │ │ ├── exception │ │ │ └── BestPayException.java │ │ │ ├── filedown │ │ │ └── WinXinFileDown.java │ │ │ ├── mock │ │ │ ├── MathRandomUtil.java │ │ │ ├── MockResultData.java │ │ │ └── ResultReturnVO.java │ │ │ ├── mode │ │ │ ├── OrderQueryRequest.java │ │ │ ├── OrderQueryResponse.java │ │ │ ├── OrderRefundQueryRequest.java │ │ │ ├── OrderRefundQueryResponse.java │ │ │ ├── PayFundRequest.java │ │ │ ├── PayFundResponse.java │ │ │ ├── RePayRequest.java │ │ │ ├── RePayResponse.java │ │ │ ├── RefundRequest.java │ │ │ └── wxpay │ │ │ │ ├── WxPayApi.java │ │ │ │ ├── request │ │ │ │ ├── WxOrderQueryRequest.java │ │ │ │ ├── WxPayRefundRequest.java │ │ │ │ ├── WxPayUnifiedorderRequest.java │ │ │ │ └── WxRefundqueryRequest.java │ │ │ │ └── response │ │ │ │ ├── WxOrderQueryResponse.java │ │ │ │ ├── WxPayAsyncResponse.java │ │ │ │ ├── WxPaySandboxKeyResponse.java │ │ │ │ ├── WxPaySyncResponse.java │ │ │ │ ├── WxRefundNotifyResponse.java │ │ │ │ ├── WxRefundResponse.java │ │ │ │ └── WxRefundqueryResponse.java │ │ │ ├── property │ │ │ ├── DefaultPropertyHelper.java │ │ │ └── PropertyHelper.java │ │ │ ├── rest │ │ │ ├── Client.java │ │ │ ├── HttpClient.java │ │ │ ├── HttpStatus.java │ │ │ ├── HttpsClient.java │ │ │ ├── ResponseValue.java │ │ │ ├── param │ │ │ │ ├── FormParam.java │ │ │ │ ├── HeaderParam.java │ │ │ │ ├── Path.java │ │ │ │ └── QueryParam.java │ │ │ └── type │ │ │ │ ├── Delete.java │ │ │ │ ├── Get.java │ │ │ │ ├── Post.java │ │ │ │ └── Put.java │ │ │ ├── service │ │ │ ├── BestPayService.java │ │ │ ├── EncryptAndDecryptService.java │ │ │ ├── IAmqpService.java │ │ │ └── impl │ │ │ │ ├── ALIPayResultNotifyService.java │ │ │ │ ├── AbstractComponent.java │ │ │ │ ├── AbstractEncryptAndDecryptServiceImpl.java │ │ │ │ ├── AmqpServiceImpl.java │ │ │ │ ├── BestPayServiceImpl.java │ │ │ │ ├── ChinaH5PayResultNotifyService.java │ │ │ │ ├── WXPayResultNotifyService.java │ │ │ │ ├── WxEncryptAndDecryptServiceImpl.java │ │ │ │ ├── WxPaySandboxKey.java │ │ │ │ ├── WxPayServiceImpl.java │ │ │ │ └── WxPaySignature.java │ │ │ └── utils │ │ │ ├── AmountUtils.java │ │ │ ├── BankChannelRefundUtil.java │ │ │ ├── ChannelFundResultUtil.java │ │ │ ├── ChannelHelper.java │ │ │ ├── DateUtil.java │ │ │ ├── EBankVerifySignUtil.java │ │ │ ├── FileDownLoadUtils.java │ │ │ ├── HttpRequestUtil.java │ │ │ ├── JsonUtil.java │ │ │ ├── MapUtils.java │ │ │ ├── MoneyUtil.java │ │ │ ├── NameValuePairUtil.java │ │ │ ├── PayRandomUtil.java │ │ │ ├── ServletRequestUtils.java │ │ │ ├── SignHelper.java │ │ │ ├── StringUtils.java │ │ │ ├── Util.java │ │ │ ├── WXXMLUtil.java │ │ │ ├── WeiXinBaseUtils.java │ │ │ ├── WeiXinSignHelper.java │ │ │ ├── XmlUtil.java │ │ │ ├── YamlUtil.java │ │ │ └── https │ │ │ ├── HttpClientUtil.java │ │ │ ├── HttpResponse.java │ │ │ └── MyX509TrustManager.java │ └── resources │ │ ├── application.yml │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── channel │ └── bank │ └── adapter │ └── pay │ └── test │ ├── ALIPayFunInTest.java │ ├── BaseJunit.java │ ├── FundInQueryBaseTestCase.java │ ├── PublicPAYFundInQueryTestCase.java │ ├── PublicPayFunInTest.java │ ├── PublicPayReFundServiceTest.java │ ├── PublicPayRefundQueryTest.java │ ├── RabbitMqTest.java │ ├── RefundBaseTestCase.java │ ├── RefundQueryBaseTestCase.java │ ├── Test1.java │ └── TestMain.java ├── merchant ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── yiran │ │ ├── YiRanApplication.java │ │ ├── YiRanServletInitializer.java │ │ ├── common │ │ ├── constant │ │ │ ├── CommonMap.java │ │ │ ├── Constants.java │ │ │ ├── GenConstants.java │ │ │ ├── PermissionConstants.java │ │ │ ├── ScheduleConstants.java │ │ │ ├── ShiroConstants.java │ │ │ └── UserConstants.java │ │ ├── enums │ │ │ └── UserStatus.java │ │ ├── exception │ │ │ ├── BusinessException.java │ │ │ ├── DemoModeException.java │ │ │ ├── base │ │ │ │ └── BaseException.java │ │ │ ├── file │ │ │ │ ├── FileException.java │ │ │ │ ├── FileNameLengthLimitExceededException.java │ │ │ │ ├── FileSizeLimitExceededException.java │ │ │ │ └── InvalidExtensionException.java │ │ │ ├── job │ │ │ │ └── TaskException.java │ │ │ └── user │ │ │ │ ├── CaptchaException.java │ │ │ │ ├── RoleBlockedException.java │ │ │ │ ├── UserBlockedException.java │ │ │ │ ├── UserDeleteException.java │ │ │ │ ├── UserException.java │ │ │ │ ├── UserNotExistsException.java │ │ │ │ ├── UserPasswordNotMatchException.java │ │ │ │ ├── UserPasswordRetryLimitCountException.java │ │ │ │ └── UserPasswordRetryLimitExceedException.java │ │ ├── utils │ │ │ ├── AddressUtils.java │ │ │ ├── Arith.java │ │ │ ├── CacheUtils.java │ │ │ ├── DateUtils.java │ │ │ ├── ExceptionUtil.java │ │ │ ├── IpUtils.java │ │ │ ├── LogUtils.java │ │ │ ├── MapDataUtil.java │ │ │ ├── MapUtil.java │ │ │ ├── Md5Utils.java │ │ │ ├── MessageUtils.java │ │ │ ├── RSAUtils.java │ │ │ ├── ServletUtils.java │ │ │ ├── SignUtils.java │ │ │ ├── StringUtils.java │ │ │ ├── Threads.java │ │ │ ├── bean │ │ │ │ └── BeanUtils.java │ │ │ ├── file │ │ │ │ ├── FileUploadUtils.java │ │ │ │ ├── FileUtils.java │ │ │ │ └── MimeTypeUtils.java │ │ │ ├── html │ │ │ │ ├── EscapeUtil.java │ │ │ │ └── HTMLFilter.java │ │ │ ├── http │ │ │ │ └── HttpUtils.java │ │ │ ├── poi │ │ │ │ └── ExcelUtil.java │ │ │ ├── reflect │ │ │ │ └── ReflectUtils.java │ │ │ ├── security │ │ │ │ ├── PermissionUtils.java │ │ │ │ └── ShiroUtils.java │ │ │ ├── spring │ │ │ │ └── SpringUtils.java │ │ │ ├── sql │ │ │ │ └── SqlUtil.java │ │ │ └── text │ │ │ │ ├── CharsetKit.java │ │ │ │ ├── Convert.java │ │ │ │ └── StrFormatter.java │ │ └── xss │ │ │ ├── XssFilter.java │ │ │ └── XssHttpServletRequestWrapper.java │ │ ├── framework │ │ ├── aspectj │ │ │ ├── DataScopeAspect.java │ │ │ ├── DataSourceAspect.java │ │ │ ├── LogAspect.java │ │ │ └── lang │ │ │ │ ├── annotation │ │ │ │ ├── DataScope.java │ │ │ │ ├── DataSource.java │ │ │ │ ├── Excel.java │ │ │ │ ├── Excels.java │ │ │ │ └── Log.java │ │ │ │ └── enums │ │ │ │ ├── BusinessStatus.java │ │ │ │ ├── BusinessType.java │ │ │ │ ├── DataSourceType.java │ │ │ │ └── OperatorType.java │ │ ├── config │ │ │ ├── ApplicationConfig.java │ │ │ ├── CaptchaConfig.java │ │ │ ├── DruidConfig.java │ │ │ ├── FilterConfig.java │ │ │ ├── GenConfig.java │ │ │ ├── I18nConfig.java │ │ │ ├── KaptchaTextCreator.java │ │ │ ├── MyBatisConfig.java │ │ │ ├── ResourcesConfig.java │ │ │ ├── ServerConfig.java │ │ │ ├── ShiroConfig.java │ │ │ ├── ThreadPoolConfig.java │ │ │ ├── YiRanConfig.java │ │ │ └── properties │ │ │ │ └── DruidProperties.java │ │ ├── datasource │ │ │ ├── DynamicDataSource.java │ │ │ └── DynamicDataSourceContextHolder.java │ │ ├── interceptor │ │ │ ├── RepeatSubmitInterceptor.java │ │ │ ├── annotation │ │ │ │ └── RepeatSubmit.java │ │ │ └── impl │ │ │ │ └── SameUrlDataInterceptor.java │ │ ├── manager │ │ │ ├── AsyncManager.java │ │ │ ├── ShutdownManager.java │ │ │ └── factory │ │ │ │ └── AsyncFactory.java │ │ ├── shiro │ │ │ ├── realm │ │ │ │ └── UserRealm.java │ │ │ ├── service │ │ │ │ ├── LoginService.java │ │ │ │ └── PasswordService.java │ │ │ ├── session │ │ │ │ ├── OnlineSessionDAO.java │ │ │ │ └── OnlineSessionFactory.java │ │ │ └── web │ │ │ │ ├── filter │ │ │ │ ├── LogoutFilter.java │ │ │ │ ├── captcha │ │ │ │ │ └── CaptchaValidateFilter.java │ │ │ │ ├── kickout │ │ │ │ │ └── KickoutSessionFilter.java │ │ │ │ ├── online │ │ │ │ │ └── OnlineSessionFilter.java │ │ │ │ └── sync │ │ │ │ │ └── SyncOnlineSessionFilter.java │ │ │ │ └── session │ │ │ │ ├── OnlineWebSessionManager.java │ │ │ │ └── SpringSessionValidationScheduler.java │ │ └── web │ │ │ ├── controller │ │ │ └── BaseController.java │ │ │ ├── domain │ │ │ ├── AjaxResult.java │ │ │ ├── BaseEntity.java │ │ │ ├── TreeEntity.java │ │ │ └── Ztree.java │ │ │ ├── exception │ │ │ └── GlobalExceptionHandler.java │ │ │ ├── page │ │ │ ├── PageDomain.java │ │ │ ├── TableDataInfo.java │ │ │ └── TableSupport.java │ │ │ └── service │ │ │ ├── DictService.java │ │ │ └── PermissionService.java │ │ └── project │ │ ├── common │ │ └── CommonController.java │ │ ├── demo │ │ ├── controller │ │ │ ├── DemoDialogController.java │ │ │ ├── DemoFormController.java │ │ │ ├── DemoIconController.java │ │ │ ├── DemoOperateController.java │ │ │ ├── DemoReportController.java │ │ │ └── DemoTableController.java │ │ └── domain │ │ │ └── UserOperateModel.java │ │ ├── merchant │ │ ├── account │ │ │ ├── controller │ │ │ │ └── CompanyMemberController.java │ │ │ ├── domain │ │ │ │ ├── Account.java │ │ │ │ ├── MemberTmMember.java │ │ │ │ ├── MemberTrCompanyMember.java │ │ │ │ ├── MemberTrMemberAccount.java │ │ │ │ └── MemberTrMemberAccountDetail.java │ │ │ ├── mapper │ │ │ │ ├── MemberTrCompanyMemberMapper.java │ │ │ │ ├── MemberTrMemberAccountDetailMapper.java │ │ │ │ └── MemberTrMemberAccountMapper.java │ │ │ └── service │ │ │ │ ├── IMemberTrCompanyMemberService.java │ │ │ │ ├── IMemberTrMemberAccountDetailService.java │ │ │ │ ├── IMemberTrMemberAccountService.java │ │ │ │ ├── MemberTrCompanyMemberServiceImpl.java │ │ │ │ ├── MemberTrMemberAccountDetailServiceImpl.java │ │ │ │ └── MemberTrMemberAccountServiceImpl.java │ │ ├── key │ │ │ ├── controller │ │ │ │ ├── SecretKeyController.java │ │ │ │ └── ToolController.java │ │ │ ├── domain │ │ │ │ └── GatewaySecretKey.java │ │ │ ├── mapper │ │ │ │ └── GatewaySecretKeyMapper.java │ │ │ └── service │ │ │ │ ├── DefaultPropertyHelper.java │ │ │ │ ├── GateWayServiceBase.java │ │ │ │ ├── GatewaySecretKeyServiceImpl.java │ │ │ │ ├── IGatewaySecretKeyService.java │ │ │ │ └── PropertyHelper.java │ │ ├── order │ │ │ ├── controller │ │ │ │ └── TradeOrderController.java │ │ │ ├── domain │ │ │ │ ├── Accountflow.java │ │ │ │ ├── EventVO.java │ │ │ │ ├── PayerInfo.java │ │ │ │ ├── ReconciliationAccountflow.java │ │ │ │ ├── ReconciliationEvent.java │ │ │ │ └── TradeOrder.java │ │ │ ├── mapper │ │ │ │ ├── ReconciliationAccountflowMapper.java │ │ │ │ ├── ReconciliationEventMapper.java │ │ │ │ └── TradeOrderMapper.java │ │ │ ├── service │ │ │ │ ├── IReconciliationAccountflowService.java │ │ │ │ ├── IReconciliationEventService.java │ │ │ │ ├── ITradeOrderService.java │ │ │ │ ├── ReconciliationAccountflowServiceImpl.java │ │ │ │ ├── ReconciliationEventServiceImpl.java │ │ │ │ └── TradeOrderServiceImpl.java │ │ │ └── utils │ │ │ │ ├── ConvertUtils.java │ │ │ │ └── SensitiveInfoUtils.java │ │ └── product │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── domain │ │ │ ├── ApprovalLeave.java │ │ │ ├── ProductApproval.java │ │ │ ├── ProductInfo.java │ │ │ └── ProductMember.java │ │ │ ├── mapper │ │ │ ├── ApprovalLeaveMapper.java │ │ │ ├── ProductApprovalMapper.java │ │ │ ├── ProductInfoMapper.java │ │ │ └── ProductMemberMapper.java │ │ │ └── service │ │ │ ├── IApprovalLeaveService.java │ │ │ ├── IProductApprovalService.java │ │ │ ├── IProductInfoService.java │ │ │ ├── IProductMemberService.java │ │ │ └── impl │ │ │ ├── ApprovalLeaveServiceImpl.java │ │ │ ├── ProductApprovalServiceImpl.java │ │ │ ├── ProductInfoServiceImpl.java │ │ │ └── ProductMemberServiceImpl.java │ │ ├── monitor │ │ ├── logininfor │ │ │ ├── controller │ │ │ │ └── LogininforController.java │ │ │ ├── domain │ │ │ │ └── Logininfor.java │ │ │ ├── mapper │ │ │ │ └── LogininforMapper.java │ │ │ └── service │ │ │ │ ├── ILogininforService.java │ │ │ │ └── LogininforServiceImpl.java │ │ ├── online │ │ │ ├── controller │ │ │ │ └── UserOnlineController.java │ │ │ ├── domain │ │ │ │ ├── OnlineSession.java │ │ │ │ └── UserOnline.java │ │ │ ├── mapper │ │ │ │ └── UserOnlineMapper.java │ │ │ └── service │ │ │ │ ├── IUserOnlineService.java │ │ │ │ └── UserOnlineServiceImpl.java │ │ ├── operlog │ │ │ ├── controller │ │ │ │ └── OperlogController.java │ │ │ ├── domain │ │ │ │ └── OperLog.java │ │ │ ├── mapper │ │ │ │ └── OperLogMapper.java │ │ │ └── service │ │ │ │ ├── IOperLogService.java │ │ │ │ └── OperLogServiceImpl.java │ │ └── server │ │ │ ├── controller │ │ │ └── ServerController.java │ │ │ └── domain │ │ │ ├── Cpu.java │ │ │ ├── Jvm.java │ │ │ ├── Mem.java │ │ │ ├── Server.java │ │ │ ├── Sys.java │ │ │ └── SysFile.java │ │ ├── system │ │ ├── dict │ │ │ ├── controller │ │ │ │ ├── DictDataController.java │ │ │ │ └── DictTypeController.java │ │ │ ├── domain │ │ │ │ ├── DictData.java │ │ │ │ └── DictType.java │ │ │ ├── mapper │ │ │ │ ├── DictDataMapper.java │ │ │ │ └── DictTypeMapper.java │ │ │ ├── service │ │ │ │ ├── DictDataServiceImpl.java │ │ │ │ ├── DictTypeServiceImpl.java │ │ │ │ ├── IDictDataService.java │ │ │ │ └── IDictTypeService.java │ │ │ └── utils │ │ │ │ └── DictUtils.java │ │ ├── notice │ │ │ ├── controller │ │ │ │ └── NoticeController.java │ │ │ ├── domain │ │ │ │ ├── Notice.java │ │ │ │ └── NoticeRead.java │ │ │ ├── mapper │ │ │ │ ├── NoticeMapper.java │ │ │ │ └── NoticeReadMapper.java │ │ │ └── service │ │ │ │ ├── INoticeReadService.java │ │ │ │ ├── INoticeService.java │ │ │ │ └── impl │ │ │ │ ├── NoticeReadServiceImpl.java │ │ │ │ └── NoticeServiceImpl.java │ │ └── user │ │ │ ├── controller │ │ │ ├── CaptchaController.java │ │ │ ├── IndexController.java │ │ │ ├── LoginController.java │ │ │ └── ProfileController.java │ │ │ ├── domain │ │ │ ├── MemberTmMemberIdentity.java │ │ │ ├── MemberTmOperator.java │ │ │ ├── SysLogininfor.java │ │ │ └── User.java │ │ │ ├── mapper │ │ │ ├── MemberTmMemberIdentityMapper.java │ │ │ ├── MemberTmOperatorMapper.java │ │ │ └── SysLogininforMapper.java │ │ │ └── service │ │ │ ├── IMemberTmMemberIdentityService.java │ │ │ ├── IMemberTmOperatorService.java │ │ │ ├── ISysLogininforService.java │ │ │ ├── MemberTmMemberIdentityServiceImpl.java │ │ │ ├── MemberTmOperatorServiceImpl.java │ │ │ └── SysLogininforServiceImpl.java │ │ └── tool │ │ ├── build │ │ └── BuildController.java │ │ ├── gen │ │ ├── controller │ │ │ └── GenController.java │ │ ├── domain │ │ │ ├── GenTable.java │ │ │ └── GenTableColumn.java │ │ ├── mapper │ │ │ ├── GenTableColumnMapper.java │ │ │ └── GenTableMapper.java │ │ ├── service │ │ │ ├── GenTableColumnServiceImpl.java │ │ │ ├── GenTableServiceImpl.java │ │ │ ├── IGenTableColumnService.java │ │ │ └── IGenTableService.java │ │ └── util │ │ │ ├── GenUtils.java │ │ │ ├── VelocityInitializer.java │ │ │ └── VelocityUtils.java │ │ └── ues │ │ ├── domain │ │ └── SysUesEnData.java │ │ ├── enums │ │ └── EncryptType.java │ │ ├── mapper │ │ └── SysUesEnDataMapper.java │ │ ├── service │ │ ├── ISysUesEnDataService.java │ │ ├── IUesServiceClient.java │ │ ├── SysUesEnDataServiceImpl.java │ │ └── UesServiceClientImpl.java │ │ └── utils │ │ ├── AESEncryptUtil.java │ │ ├── DESEncryptUtil.java │ │ └── Hex2Util.java │ └── resources │ ├── application-druid.yml │ ├── application.yml │ ├── banner.txt │ ├── ehcache │ └── ehcache-shiro.xml │ ├── logback.xml │ ├── mybatis │ ├── merchant │ │ ├── ApprovalLeaveMapper.xml │ │ ├── GatewaySecretKeyMapper.xml │ │ ├── MemberTrCompanyMemberMapper.xml │ │ ├── MemberTrMemberAccountDetailMapper.xml │ │ ├── MemberTrMemberAccountMapper.xml │ │ ├── ProductApprovalMapper.xml │ │ ├── ProductInfoMapper.xml │ │ ├── ProductMemberMapper.xml │ │ ├── ReconciliationAccountflowMapper.xml │ │ ├── ReconciliationEventMapper.xml │ │ └── TradeOrderMapper.xml │ ├── monitor │ │ ├── LogininforMapper.xml │ │ ├── OnlineMapper.xml │ │ └── OperLogMapper.xml │ ├── mybatis-config.xml │ ├── system │ │ ├── DictDataMapper.xml │ │ ├── DictTypeMapper.xml │ │ ├── MemberTmMemberIdentityMapper.xml │ │ ├── MemberTmOperatorMapper.xml │ │ ├── NoticeMapper.xml │ │ ├── NoticeReadMapper.xml │ │ └── SysLogininforMapper.xml │ └── tool │ │ ├── GenTableColumnMapper.xml │ │ ├── GenTableMapper.xml │ │ └── SysUesEnDataMapper.xml │ ├── static │ ├── ajax │ │ └── libs │ │ │ ├── beautifyhtml │ │ │ └── beautifyhtml.js │ │ │ ├── blockUI │ │ │ └── jquery.blockUI.js │ │ │ ├── bootstrap-fileinput │ │ │ ├── fileinput.css │ │ │ ├── fileinput.js │ │ │ ├── fileinput.min.css │ │ │ ├── fileinput.min.js │ │ │ ├── loading-sm.gif │ │ │ └── loading.gif │ │ │ ├── bootstrap-select │ │ │ ├── bootstrap-select.css │ │ │ ├── bootstrap-select.js │ │ │ ├── bootstrap-select.min.css │ │ │ └── bootstrap-select.min.js │ │ │ ├── bootstrap-table │ │ │ ├── bootstrap-table.min.css │ │ │ ├── bootstrap-table.min.js │ │ │ ├── extensions │ │ │ │ ├── columns │ │ │ │ │ └── bootstrap-table-fixed-columns.js │ │ │ │ ├── editable │ │ │ │ │ ├── bootstrap-editable.css │ │ │ │ │ ├── bootstrap-editable.min.js │ │ │ │ │ ├── bootstrap-table-editable.js │ │ │ │ │ ├── clear.png │ │ │ │ │ └── loading.gif │ │ │ │ ├── export │ │ │ │ │ ├── bootstrap-table-export.js │ │ │ │ │ └── tableExport.js │ │ │ │ ├── mobile │ │ │ │ │ └── bootstrap-table-mobile.js │ │ │ │ ├── reorder │ │ │ │ │ ├── bootstrap-table-reorder.js │ │ │ │ │ └── jquery.tablednd.js │ │ │ │ └── toolbar │ │ │ │ │ ├── bootstrap-table-toolbar.js │ │ │ │ │ └── bootstrap-table-toolbar.min.js │ │ │ └── locale │ │ │ │ ├── bootstrap-table-zh-CN.js │ │ │ │ └── bootstrap-table-zh-CN.min.js │ │ │ ├── bootstrap-treetable │ │ │ └── bootstrap-treetable.js │ │ │ ├── cropbox │ │ │ ├── cropbox.css │ │ │ └── cropbox.js │ │ │ ├── datapicker │ │ │ ├── bootstrap-datetimepicker.css │ │ │ ├── bootstrap-datetimepicker.js │ │ │ ├── bootstrap-datetimepicker.min.css │ │ │ └── bootstrap-datetimepicker.min.js │ │ │ ├── duallistbox │ │ │ ├── bootstrap-duallistbox.css │ │ │ ├── bootstrap-duallistbox.js │ │ │ ├── bootstrap-duallistbox.min.css │ │ │ └── bootstrap-duallistbox.min.js │ │ │ ├── flot │ │ │ ├── curvedLines.js │ │ │ ├── jquery.flot.js │ │ │ ├── jquery.flot.pie.js │ │ │ ├── jquery.flot.resize.js │ │ │ ├── jquery.flot.spline.js │ │ │ ├── jquery.flot.symbol.js │ │ │ └── jquery.flot.tooltip.min.js │ │ │ ├── fullcalendar │ │ │ ├── fullcalendar.css │ │ │ ├── fullcalendar.min.js │ │ │ ├── fullcalendar.print.css │ │ │ └── moment.min.js │ │ │ ├── fullscreen │ │ │ └── jquery.fullscreen.js │ │ │ ├── iCheck │ │ │ ├── custom.css │ │ │ ├── green-login.png │ │ │ ├── green.png │ │ │ ├── green@2x.png │ │ │ └── icheck.min.js │ │ │ ├── jasny │ │ │ ├── jasny-bootstrap.css │ │ │ ├── jasny-bootstrap.js │ │ │ ├── jasny-bootstrap.min.css │ │ │ └── jasny-bootstrap.min.js │ │ │ ├── jquery-layout │ │ │ ├── jquery.layout-latest.css │ │ │ └── jquery.layout-latest.js │ │ │ ├── jquery-ztree │ │ │ └── 3.5 │ │ │ │ ├── css │ │ │ │ ├── default │ │ │ │ │ ├── img │ │ │ │ │ │ ├── diy │ │ │ │ │ │ │ ├── 1_close.png │ │ │ │ │ │ │ ├── 1_open.png │ │ │ │ │ │ │ ├── 2.png │ │ │ │ │ │ │ ├── 3.png │ │ │ │ │ │ │ ├── 4.png │ │ │ │ │ │ │ ├── 5.png │ │ │ │ │ │ │ ├── 6.png │ │ │ │ │ │ │ ├── 7.png │ │ │ │ │ │ │ ├── 8.png │ │ │ │ │ │ │ └── 9.png │ │ │ │ │ │ ├── line_conn.gif │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ ├── zTreeStandard.gif │ │ │ │ │ │ └── zTreeStandard.png │ │ │ │ │ └── zTreeStyle.css │ │ │ │ ├── metro │ │ │ │ │ ├── img │ │ │ │ │ │ ├── line_conn.gif │ │ │ │ │ │ ├── line_conn.png │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ ├── metro.gif │ │ │ │ │ │ └── metro.png │ │ │ │ │ └── zTreeStyle.css │ │ │ │ └── simple │ │ │ │ │ ├── img │ │ │ │ │ ├── left_menu.gif │ │ │ │ │ ├── left_menu.png │ │ │ │ │ ├── line_conn.gif │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── zTreeStandard.gif │ │ │ │ │ └── zTreeStandard.png │ │ │ │ │ └── zTreeStyle.css │ │ │ │ ├── js │ │ │ │ ├── jquery.ztree.all-3.5.js │ │ │ │ ├── jquery.ztree.core-3.5.js │ │ │ │ ├── jquery.ztree.excheck-3.5.js │ │ │ │ ├── jquery.ztree.exedit-3.5.js │ │ │ │ └── jquery.ztree.exhide-3.5.js │ │ │ │ └── log v3.x.txt │ │ │ ├── jsonview │ │ │ ├── jquery.jsonview.css │ │ │ └── jquery.jsonview.js │ │ │ ├── layer │ │ │ ├── layer.min.js │ │ │ └── theme │ │ │ │ ├── default │ │ │ │ ├── icon-ext.png │ │ │ │ ├── icon.png │ │ │ │ ├── layer.css │ │ │ │ ├── loading-0.gif │ │ │ │ ├── loading-1.gif │ │ │ │ └── loading-2.gif │ │ │ │ └── moon │ │ │ │ ├── default.png │ │ │ │ └── style.css │ │ │ ├── layui │ │ │ ├── css │ │ │ │ └── modules │ │ │ │ │ └── laydate │ │ │ │ │ └── default │ │ │ │ │ ├── font │ │ │ │ │ ├── iconfont.eot │ │ │ │ │ ├── iconfont.svg │ │ │ │ │ ├── iconfont.ttf │ │ │ │ │ └── iconfont.woff │ │ │ │ │ └── laydate.css │ │ │ ├── lay │ │ │ │ └── modules │ │ │ │ │ └── laydate.js │ │ │ └── layui.js │ │ │ ├── report │ │ │ ├── echarts │ │ │ │ └── echarts-all.js │ │ │ ├── peity │ │ │ │ └── jquery.peity.min.js │ │ │ └── sparkline │ │ │ │ └── jquery.sparkline.min.js │ │ │ ├── select2 │ │ │ ├── select2-bootstrap.css │ │ │ ├── select2.css │ │ │ ├── select2.js │ │ │ ├── select2.min.css │ │ │ └── select2.min.js │ │ │ ├── staps │ │ │ ├── jquery.steps.css │ │ │ ├── jquery.steps.js │ │ │ └── jquery.steps.min.js │ │ │ ├── suggest │ │ │ ├── bootstrap-suggest.js │ │ │ └── bootstrap-suggest.min.js │ │ │ ├── summernote │ │ │ ├── font │ │ │ │ ├── summernote.eot │ │ │ │ ├── summernote.ttf │ │ │ │ └── summernote.woff │ │ │ ├── summernote-bs3.css │ │ │ ├── summernote-zh-CN.js │ │ │ ├── summernote.css │ │ │ ├── summernote.js │ │ │ └── summernote.min.js │ │ │ ├── typeahead │ │ │ ├── bootstrap3-typeahead.js │ │ │ └── bootstrap3-typeahead.min.js │ │ │ └── validate │ │ │ ├── additional-methods.min.js │ │ │ ├── jquery.validate.extend.js │ │ │ ├── jquery.validate.min.js │ │ │ └── messages_zh.min.js │ ├── css │ │ ├── animate.css │ │ ├── bootstrap.min.css │ │ ├── font-awesome.min.css │ │ ├── jquery.contextMenu.min.css │ │ ├── login.css │ │ ├── login.min.css │ │ ├── main │ │ │ ├── animate.min.css │ │ │ ├── bootstrap.min14ed.css │ │ │ ├── font-awesome.min93e3.css │ │ │ └── style.min862f.css │ │ ├── patterns │ │ │ ├── header-profile-skin-blue.png │ │ │ ├── header-profile-skin-yellow.png │ │ │ ├── header-profile.png │ │ │ └── shattered.png │ │ ├── product │ │ │ └── style.css │ │ ├── skins.css │ │ └── style.css │ ├── favicon.ico │ ├── file │ │ └── rml.txt │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── Simple-Line-Icons.woff2 │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── fontawesome-webfont.woff2 │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── html5_login │ │ ├── css │ │ │ ├── bootstrap.min.css │ │ │ ├── login.css │ │ │ └── supersized.css │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ │ ├── images │ │ │ ├── 1.png │ │ │ ├── backgrounds │ │ │ │ ├── 0.jpg │ │ │ │ ├── 0.png │ │ │ │ ├── 1.jpg │ │ │ │ ├── 1.png │ │ │ │ ├── 2.jpg │ │ │ │ ├── 2.png │ │ │ │ ├── 3.jpg │ │ │ │ ├── 3.png │ │ │ │ ├── 4.png │ │ │ │ └── Thumbs.db │ │ │ ├── captcha.jpeg │ │ │ ├── error.png │ │ │ ├── loading.gif │ │ │ └── logo.png │ │ └── js │ │ │ ├── html5.js │ │ │ ├── jquery-1.8.2.min.js │ │ │ ├── jquery.form.js │ │ │ ├── login.js │ │ │ ├── scripts.js │ │ │ ├── supersized-init.js │ │ │ ├── supersized.3.2.7.min.js │ │ │ └── tooltips.js │ ├── i18n │ │ └── messages.properties │ ├── img │ │ ├── blue.png │ │ ├── loading-upload.gif │ │ ├── loading.gif │ │ ├── locked.png │ │ ├── login-background.jpg │ │ ├── pay.png │ │ ├── profile.jpg │ │ ├── progress.png │ │ ├── qr_code.png │ │ └── user.png │ ├── js │ │ ├── bootstrap.min.js │ │ ├── jquery-ui-1.10.4.min.js │ │ ├── jquery.contextMenu.min.js │ │ ├── jquery.i18n.properties.min.js │ │ ├── jquery.min.js │ │ ├── jquery.tmpl.js │ │ └── plugins │ │ │ ├── metisMenu │ │ │ └── jquery.metisMenu.js │ │ │ └── slimscroll │ │ │ └── jquery.slimscroll.min.js │ ├── ruoyi.png │ └── yiran │ │ ├── css │ │ └── ry-ui.css │ │ ├── index.js │ │ ├── js │ │ ├── common.js │ │ └── ry-ui.js │ │ └── login.js │ ├── templates │ ├── demo │ │ ├── form │ │ │ ├── autocomplete.html │ │ │ ├── basic.html │ │ │ ├── button.html │ │ │ ├── cards.html │ │ │ ├── datetime.html │ │ │ ├── duallistbox.html │ │ │ ├── grid.html │ │ │ ├── jasny.html │ │ │ ├── select.html │ │ │ ├── sortable.html │ │ │ ├── summernote.html │ │ │ ├── tabs_panels.html │ │ │ ├── timeline.html │ │ │ ├── upload.html │ │ │ ├── validate.html │ │ │ └── wizard.html │ │ ├── icon │ │ │ ├── fontawesome.html │ │ │ └── glyphicons.html │ │ ├── modal │ │ │ ├── dialog.html │ │ │ ├── form.html │ │ │ ├── layer.html │ │ │ ├── table.html │ │ │ └── table │ │ │ │ ├── check.html │ │ │ │ ├── parent.html │ │ │ │ └── radio.html │ │ ├── operate │ │ │ ├── add.html │ │ │ ├── detail.html │ │ │ ├── edit.html │ │ │ ├── other.html │ │ │ └── table.html │ │ ├── report │ │ │ ├── echarts.html │ │ │ ├── metrics.html │ │ │ ├── peity.html │ │ │ └── sparkline.html │ │ └── table │ │ │ ├── button.html │ │ │ ├── child.html │ │ │ ├── curd.html │ │ │ ├── detail.html │ │ │ ├── editable.html │ │ │ ├── event.html │ │ │ ├── export.html │ │ │ ├── fixedColumns.html │ │ │ ├── footer.html │ │ │ ├── groupHeader.html │ │ │ ├── image.html │ │ │ ├── multi.html │ │ │ ├── other.html │ │ │ ├── pageGo.html │ │ │ ├── params.html │ │ │ ├── remember.html │ │ │ ├── reorder.html │ │ │ └── search.html │ ├── error │ │ ├── 404.html │ │ ├── 500.html │ │ ├── business.html │ │ └── unauth.html │ ├── include.html │ ├── index.html │ ├── login.html │ ├── login1.html │ ├── main.html │ ├── main_v1.html │ ├── merchant │ │ ├── companyMember │ │ │ └── companyMemberShow.html │ │ ├── key │ │ │ ├── add.html │ │ │ ├── edit.html │ │ │ └── key.html │ │ ├── order │ │ │ ├── bill.html │ │ │ ├── orderinfo.html │ │ │ └── show.html │ │ ├── product │ │ │ ├── product_list.html │ │ │ └── showApprovalLeave.html │ │ └── tool │ │ │ └── toolpage.html │ ├── monitor │ │ ├── logininfor │ │ │ └── logininfor.html │ │ ├── online │ │ │ └── online.html │ │ ├── operlog │ │ │ ├── detail.html │ │ │ └── operlog.html │ │ └── server │ │ │ └── server.html │ ├── skin.html │ ├── system │ │ └── notice │ │ │ ├── add.html │ │ │ ├── edit.html │ │ │ ├── notice.html │ │ │ └── read.html │ └── tool │ │ ├── build │ │ └── build.html │ │ └── gen │ │ ├── edit.html │ │ ├── gen.html │ │ └── importTable.html │ └── vm │ ├── html │ ├── add.html.vm │ ├── edit.html.vm │ ├── list-tree.html.vm │ ├── list.html.vm │ └── tree.html.vm │ ├── java │ ├── controller.java.vm │ ├── domain.java.vm │ ├── mapper.java.vm │ ├── service.java.vm │ └── serviceImpl.java.vm │ ├── sql │ └── sql.vm │ └── xml │ └── mapper.xml.vm ├── sql └── yiranpay20200805.sql └── yiranpay ├── opt └── pay │ └── config │ ├── base │ └── app-config.properties │ └── basis │ └── bcss │ ├── ALIPAY10101 │ └── app.properties │ └── WXPAY10102 │ └── app.properties ├── pom.xml ├── yiranpay-admin ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── yiranpay │ │ │ ├── YiRanPayApplication.java │ │ │ ├── YiRanPayServletInitializer.java │ │ │ ├── mqlistener │ │ │ ├── PayresultProcessListener.java │ │ │ └── SettleAccountsListener.java │ │ │ └── web │ │ │ ├── api │ │ │ ├── constants │ │ │ │ └── ReturnCode.java │ │ │ ├── enums │ │ │ │ ├── HttpAPIStatus.java │ │ │ │ ├── ResultEnum.java │ │ │ │ ├── SignTypeEnum.java │ │ │ │ └── VerifyResultEnum.java │ │ │ ├── facade │ │ │ │ ├── ALIPayPayFacade.java │ │ │ │ ├── AccountFacade.java │ │ │ │ ├── BankAccountFacade.java │ │ │ │ ├── BasePayFundinFacade.java │ │ │ │ ├── ChinaH5PayFacade.java │ │ │ │ ├── ContactFacade.java │ │ │ │ ├── EncryptionDecryptionFacade.java │ │ │ │ ├── LoginPwdFacade.java │ │ │ │ ├── MemberFacade.java │ │ │ │ ├── MerchantFacade.java │ │ │ │ ├── PayOrderInfoFacade.java │ │ │ │ ├── PayPwdFacade.java │ │ │ │ ├── QueryCardBinFacade.java │ │ │ │ └── WeiXinPayFacade.java │ │ │ ├── filter │ │ │ │ └── ChannelFilter.java │ │ │ └── interceptor │ │ │ │ ├── AuthorizationInterceptor.java │ │ │ │ └── RequestWrapper.java │ │ │ ├── controller │ │ │ ├── amqp │ │ │ │ ├── MqExchangesController.java │ │ │ │ ├── MqExchangesQueueController.java │ │ │ │ ├── MqMessageLogController.java │ │ │ │ └── MqQueueController.java │ │ │ ├── common │ │ │ │ └── CommonController.java │ │ │ ├── demo │ │ │ │ ├── controller │ │ │ │ │ ├── DemoDialogController.java │ │ │ │ │ ├── DemoFormController.java │ │ │ │ │ ├── DemoIconController.java │ │ │ │ │ ├── DemoOperateController.java │ │ │ │ │ ├── DemoReportController.java │ │ │ │ │ └── DemoTableController.java │ │ │ │ └── domain │ │ │ │ │ └── UserOperateModel.java │ │ │ ├── gateway │ │ │ │ ├── GatewayApiAuthController.java │ │ │ │ ├── GatewayApprovalLeaveController.java │ │ │ │ ├── GatewayCardBinController.java │ │ │ │ ├── GatewayGatewayApiController.java │ │ │ │ ├── GatewayIpWhiteController.java │ │ │ │ ├── GatewayMerchantConfigController.java │ │ │ │ ├── GatewayProductApprovalController.java │ │ │ │ ├── GatewayProductInfoController.java │ │ │ │ ├── GatewayProductMemberController.java │ │ │ │ ├── GatewaySecretKeyController.java │ │ │ │ ├── GatewayToolController.java │ │ │ │ └── SysApiLogController.java │ │ │ ├── member │ │ │ │ ├── MemberTdAccountConfigController.java │ │ │ │ ├── MemberTdConfigController.java │ │ │ │ ├── MemberTdPaypwdLockConfigController.java │ │ │ │ ├── MemberTmContactController.java │ │ │ │ ├── MemberTmMemberContactController.java │ │ │ │ ├── MemberTmMemberController.java │ │ │ │ ├── MemberTmMemberIdentityController.java │ │ │ │ ├── MemberTmMerchantController.java │ │ │ │ ├── MemberTmOperatorController.java │ │ │ │ ├── MemberTrBankAccountController.java │ │ │ │ ├── MemberTrCompanyMemberController.java │ │ │ │ ├── MemberTrMemberAccountController.java │ │ │ │ ├── MemberTrMemberAccountDetailController.java │ │ │ │ ├── MemberTrPasswordController.java │ │ │ │ ├── MemberTrPersonalMemberController.java │ │ │ │ ├── MemberTrVerifyEntityController.java │ │ │ │ └── MemberTrVerifyRefController.java │ │ │ ├── message │ │ │ │ ├── MsgEmailController.java │ │ │ │ ├── MsgSendRecordController.java │ │ │ │ ├── MsgSmsConfigController.java │ │ │ │ └── MsgSmsTemplateController.java │ │ │ ├── monitor │ │ │ │ ├── DruidController.java │ │ │ │ ├── ServerController.java │ │ │ │ ├── SysLogininforController.java │ │ │ │ ├── SysOperlogController.java │ │ │ │ └── SysUserOnlineController.java │ │ │ ├── paychannel │ │ │ │ ├── TmApiNoModeController.java │ │ │ │ ├── TmApiResultCodeController.java │ │ │ │ ├── TmFundChannelApiController.java │ │ │ │ ├── TmFundChannelApiParamController.java │ │ │ │ ├── TmFundChannelController.java │ │ │ │ ├── TmFundChannelExtController.java │ │ │ │ ├── TmFundChannelInstController.java │ │ │ │ ├── TmFundChannelMaintainController.java │ │ │ │ ├── TmFundChannelSettleController.java │ │ │ │ ├── TmFundChannelTargetInitController.java │ │ │ │ ├── TmUnityResultCodeController.java │ │ │ │ └── TrFcTargetInstRelationController.java │ │ │ ├── payorder │ │ │ │ ├── ChannelPayOrderController.java │ │ │ │ ├── JointQueryController.java │ │ │ │ ├── PayBankCardInfoController.java │ │ │ │ ├── PayDistributedLockController.java │ │ │ │ ├── PayInstOrderController.java │ │ │ │ ├── PayInstOrderResultController.java │ │ │ │ ├── PayMonitorLogController.java │ │ │ │ ├── PayRefundOrderController.java │ │ │ │ ├── PayRequestController.java │ │ │ │ ├── PayResultNotifyController.java │ │ │ │ ├── PayResultNotifyLogController.java │ │ │ │ ├── PaySignInfoController.java │ │ │ │ ├── PayTestController.java │ │ │ │ └── SysUesEnDataController.java │ │ │ ├── reconciliation │ │ │ │ ├── ReconciliationAccountCheckBatchController.java │ │ │ │ ├── ReconciliationAccountCheckMistakeController.java │ │ │ │ ├── ReconciliationAccountCheckMistakeScratchPoolController.java │ │ │ │ ├── ReconciliationAccountflowController.java │ │ │ │ ├── ReconciliationChannelSettingController.java │ │ │ │ ├── ReconciliationEventController.java │ │ │ │ └── ReconciliationLiquidationflowController.java │ │ │ ├── system │ │ │ │ ├── SysCaptchaController.java │ │ │ │ ├── SysConfigController.java │ │ │ │ ├── SysContentColumnController.java │ │ │ │ ├── SysContentTopicController.java │ │ │ │ ├── SysDeptController.java │ │ │ │ ├── SysDictDataController.java │ │ │ │ ├── SysDictTypeController.java │ │ │ │ ├── SysIndexController.java │ │ │ │ ├── SysLoginController.java │ │ │ │ ├── SysMenuController.java │ │ │ │ ├── SysNoticeController.java │ │ │ │ ├── SysPostController.java │ │ │ │ ├── SysProfileController.java │ │ │ │ ├── SysRoleController.java │ │ │ │ └── SysUserController.java │ │ │ └── tool │ │ │ │ ├── BuildController.java │ │ │ │ ├── SwaggerController.java │ │ │ │ └── TestController.java │ │ │ └── core │ │ │ └── config │ │ │ ├── AuthorizationConfig.java │ │ │ └── SwaggerConfig.java │ └── resources │ │ ├── application-druid.yml │ │ ├── application.yml │ │ ├── banner.txt │ │ ├── ehcache │ │ └── ehcache-shiro.xml │ │ ├── logback.xml │ │ ├── mybatis │ │ └── mybatis-config.xml │ │ ├── static │ │ ├── ajax │ │ │ └── libs │ │ │ │ ├── beautifyhtml │ │ │ │ └── beautifyhtml.js │ │ │ │ ├── blockUI │ │ │ │ └── jquery.blockUI.js │ │ │ │ ├── bootstrap-fileinput │ │ │ │ ├── fileinput.css │ │ │ │ ├── fileinput.js │ │ │ │ ├── fileinput.min.css │ │ │ │ ├── fileinput.min.js │ │ │ │ ├── loading-sm.gif │ │ │ │ └── loading.gif │ │ │ │ ├── bootstrap-select │ │ │ │ ├── bootstrap-select.css │ │ │ │ ├── bootstrap-select.js │ │ │ │ ├── bootstrap-select.min.css │ │ │ │ └── bootstrap-select.min.js │ │ │ │ ├── bootstrap-table │ │ │ │ ├── bootstrap-table.min.css │ │ │ │ ├── bootstrap-table.min.js │ │ │ │ ├── extensions │ │ │ │ │ ├── columns │ │ │ │ │ │ └── bootstrap-table-fixed-columns.js │ │ │ │ │ ├── editable │ │ │ │ │ │ ├── bootstrap-editable.css │ │ │ │ │ │ ├── bootstrap-editable.min.js │ │ │ │ │ │ ├── bootstrap-table-editable.js │ │ │ │ │ │ ├── clear.png │ │ │ │ │ │ └── loading.gif │ │ │ │ │ ├── export │ │ │ │ │ │ ├── bootstrap-table-export.js │ │ │ │ │ │ └── tableExport.js │ │ │ │ │ ├── mobile │ │ │ │ │ │ └── bootstrap-table-mobile.js │ │ │ │ │ ├── reorder │ │ │ │ │ │ ├── bootstrap-table-reorder.js │ │ │ │ │ │ └── jquery.tablednd.js │ │ │ │ │ └── toolbar │ │ │ │ │ │ ├── bootstrap-table-toolbar.js │ │ │ │ │ │ └── bootstrap-table-toolbar.min.js │ │ │ │ └── locale │ │ │ │ │ ├── bootstrap-table-zh-CN.js │ │ │ │ │ └── bootstrap-table-zh-CN.min.js │ │ │ │ ├── bootstrap-treetable │ │ │ │ └── bootstrap-treetable.js │ │ │ │ ├── cropbox │ │ │ │ ├── cropbox.css │ │ │ │ └── cropbox.js │ │ │ │ ├── datapicker │ │ │ │ ├── bootstrap-datetimepicker.css │ │ │ │ ├── bootstrap-datetimepicker.js │ │ │ │ ├── bootstrap-datetimepicker.min.css │ │ │ │ └── bootstrap-datetimepicker.min.js │ │ │ │ ├── duallistbox │ │ │ │ ├── bootstrap-duallistbox.css │ │ │ │ ├── bootstrap-duallistbox.js │ │ │ │ ├── bootstrap-duallistbox.min.css │ │ │ │ └── bootstrap-duallistbox.min.js │ │ │ │ ├── flot │ │ │ │ ├── curvedLines.js │ │ │ │ ├── jquery.flot.js │ │ │ │ ├── jquery.flot.pie.js │ │ │ │ ├── jquery.flot.resize.js │ │ │ │ ├── jquery.flot.spline.js │ │ │ │ ├── jquery.flot.symbol.js │ │ │ │ └── jquery.flot.tooltip.min.js │ │ │ │ ├── fullcalendar │ │ │ │ ├── fullcalendar.css │ │ │ │ ├── fullcalendar.min.js │ │ │ │ ├── fullcalendar.print.css │ │ │ │ └── moment.min.js │ │ │ │ ├── fullscreen │ │ │ │ └── jquery.fullscreen.js │ │ │ │ ├── iCheck │ │ │ │ ├── custom.css │ │ │ │ ├── green-login.png │ │ │ │ ├── green.png │ │ │ │ ├── green@2x.png │ │ │ │ └── icheck.min.js │ │ │ │ ├── jasny │ │ │ │ ├── jasny-bootstrap.css │ │ │ │ ├── jasny-bootstrap.js │ │ │ │ ├── jasny-bootstrap.min.css │ │ │ │ └── jasny-bootstrap.min.js │ │ │ │ ├── jquery-layout │ │ │ │ ├── jquery.layout-latest.css │ │ │ │ └── jquery.layout-latest.js │ │ │ │ ├── jquery-ztree │ │ │ │ └── 3.5 │ │ │ │ │ ├── css │ │ │ │ │ ├── default │ │ │ │ │ │ ├── img │ │ │ │ │ │ │ ├── diy │ │ │ │ │ │ │ │ ├── 1_close.png │ │ │ │ │ │ │ │ ├── 1_open.png │ │ │ │ │ │ │ │ ├── 2.png │ │ │ │ │ │ │ │ ├── 3.png │ │ │ │ │ │ │ │ ├── 4.png │ │ │ │ │ │ │ │ ├── 5.png │ │ │ │ │ │ │ │ ├── 6.png │ │ │ │ │ │ │ │ ├── 7.png │ │ │ │ │ │ │ │ ├── 8.png │ │ │ │ │ │ │ │ └── 9.png │ │ │ │ │ │ │ ├── line_conn.gif │ │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ │ ├── zTreeStandard.gif │ │ │ │ │ │ │ └── zTreeStandard.png │ │ │ │ │ │ └── zTreeStyle.css │ │ │ │ │ ├── metro │ │ │ │ │ │ ├── img │ │ │ │ │ │ │ ├── line_conn.gif │ │ │ │ │ │ │ ├── line_conn.png │ │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ │ ├── metro.gif │ │ │ │ │ │ │ └── metro.png │ │ │ │ │ │ └── zTreeStyle.css │ │ │ │ │ └── simple │ │ │ │ │ │ ├── img │ │ │ │ │ │ ├── left_menu.gif │ │ │ │ │ │ ├── left_menu.png │ │ │ │ │ │ ├── line_conn.gif │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ ├── zTreeStandard.gif │ │ │ │ │ │ └── zTreeStandard.png │ │ │ │ │ │ └── zTreeStyle.css │ │ │ │ │ ├── js │ │ │ │ │ ├── jquery.ztree.all-3.5.js │ │ │ │ │ ├── jquery.ztree.core-3.5.js │ │ │ │ │ ├── jquery.ztree.excheck-3.5.js │ │ │ │ │ ├── jquery.ztree.exedit-3.5.js │ │ │ │ │ └── jquery.ztree.exhide-3.5.js │ │ │ │ │ └── log v3.x.txt │ │ │ │ ├── jsonview │ │ │ │ ├── jquery.jsonview.css │ │ │ │ └── jquery.jsonview.js │ │ │ │ ├── layer │ │ │ │ ├── layer.min.js │ │ │ │ └── theme │ │ │ │ │ ├── default │ │ │ │ │ ├── icon-ext.png │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── layer.css │ │ │ │ │ ├── loading-0.gif │ │ │ │ │ ├── loading-1.gif │ │ │ │ │ └── loading-2.gif │ │ │ │ │ └── moon │ │ │ │ │ ├── default.png │ │ │ │ │ └── style.css │ │ │ │ ├── layui │ │ │ │ ├── css │ │ │ │ │ └── modules │ │ │ │ │ │ └── laydate │ │ │ │ │ │ └── default │ │ │ │ │ │ ├── font │ │ │ │ │ │ ├── iconfont.eot │ │ │ │ │ │ ├── iconfont.svg │ │ │ │ │ │ ├── iconfont.ttf │ │ │ │ │ │ └── iconfont.woff │ │ │ │ │ │ └── laydate.css │ │ │ │ ├── lay │ │ │ │ │ └── modules │ │ │ │ │ │ └── laydate.js │ │ │ │ └── layui.js │ │ │ │ ├── report │ │ │ │ ├── echarts │ │ │ │ │ └── echarts-all.js │ │ │ │ ├── peity │ │ │ │ │ └── jquery.peity.min.js │ │ │ │ └── sparkline │ │ │ │ │ └── jquery.sparkline.min.js │ │ │ │ ├── select2 │ │ │ │ ├── select2-bootstrap.css │ │ │ │ ├── select2.css │ │ │ │ ├── select2.js │ │ │ │ ├── select2.min.css │ │ │ │ └── select2.min.js │ │ │ │ ├── staps │ │ │ │ ├── jquery.steps.css │ │ │ │ ├── jquery.steps.js │ │ │ │ └── jquery.steps.min.js │ │ │ │ ├── suggest │ │ │ │ ├── bootstrap-suggest.js │ │ │ │ └── bootstrap-suggest.min.js │ │ │ │ ├── summernote │ │ │ │ ├── font │ │ │ │ │ ├── summernote.eot │ │ │ │ │ ├── summernote.ttf │ │ │ │ │ └── summernote.woff │ │ │ │ ├── summernote-bs3.css │ │ │ │ ├── summernote-zh-CN.js │ │ │ │ ├── summernote.css │ │ │ │ ├── summernote.js │ │ │ │ └── summernote.min.js │ │ │ │ ├── typeahead │ │ │ │ ├── bootstrap3-typeahead.js │ │ │ │ └── bootstrap3-typeahead.min.js │ │ │ │ └── validate │ │ │ │ ├── additional-methods.min.js │ │ │ │ ├── jquery.validate.extend.js │ │ │ │ ├── jquery.validate.min.js │ │ │ │ └── messages_zh.min.js │ │ ├── css │ │ │ ├── animate.css │ │ │ ├── bootstrap.min.css │ │ │ ├── font-awesome.min.css │ │ │ ├── jquery.contextMenu.min.css │ │ │ ├── login.css │ │ │ ├── login.min.css │ │ │ ├── main │ │ │ │ ├── animate.min.css │ │ │ │ ├── bootstrap.min14ed.css │ │ │ │ ├── font-awesome.min93e3.css │ │ │ │ └── style.min862f.css │ │ │ ├── patterns │ │ │ │ ├── header-profile-skin-blue.png │ │ │ │ ├── header-profile-skin-yellow.png │ │ │ │ ├── header-profile.png │ │ │ │ └── shattered.png │ │ │ ├── skins.css │ │ │ └── style.css │ │ ├── favicon.ico │ │ ├── file │ │ │ └── rml.txt │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── Simple-Line-Icons.woff2 │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── fontawesome-webfont.woff2 │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── i18n │ │ │ └── messages.properties │ │ ├── img │ │ │ ├── blue.png │ │ │ ├── default.png │ │ │ ├── loading-upload.gif │ │ │ ├── loading.gif │ │ │ ├── locked.png │ │ │ ├── login-background.jpg │ │ │ ├── pay.png │ │ │ ├── profile.jpg │ │ │ ├── progress.png │ │ │ ├── qr_code.png │ │ │ ├── sm.png │ │ │ └── user.png │ │ ├── js │ │ │ ├── bootstrap.min.js │ │ │ ├── jquery-ui-1.10.4.min.js │ │ │ ├── jquery.contextMenu.min.js │ │ │ ├── jquery.i18n.properties.min.js │ │ │ ├── jquery.min.js │ │ │ ├── jquery.tmpl.js │ │ │ ├── plugins │ │ │ │ ├── metisMenu │ │ │ │ │ └── jquery.metisMenu.js │ │ │ │ └── slimscroll │ │ │ │ │ └── jquery.slimscroll.min.js │ │ │ └── qrcode.js │ │ ├── login │ │ │ ├── css │ │ │ │ ├── base_cwn.css │ │ │ │ ├── bootstrap.min.css │ │ │ │ ├── element-icons.ttf │ │ │ │ ├── element-icons.woff │ │ │ │ ├── index.css │ │ │ │ ├── layer.css │ │ │ │ └── login.css │ │ │ ├── images │ │ │ │ ├── 15789034188847534.jpg │ │ │ │ ├── bg.jpg │ │ │ │ ├── captcha.jpeg │ │ │ │ └── card.png │ │ │ └── js │ │ │ │ ├── bootstrap.min.js │ │ │ │ ├── common.js │ │ │ │ ├── index.js │ │ │ │ ├── jquery.cookie.js │ │ │ │ ├── jquery.min.js │ │ │ │ ├── layer.js │ │ │ │ └── vue.js │ │ ├── ruoyi.png │ │ └── yiranpay │ │ │ ├── css │ │ │ └── yiranpay-ui.css │ │ │ ├── index.js │ │ │ ├── js │ │ │ ├── common.js │ │ │ └── yiranpay-ui.js │ │ │ └── login.js │ │ └── templates │ │ ├── demo │ │ ├── form │ │ │ ├── autocomplete.html │ │ │ ├── basic.html │ │ │ ├── button.html │ │ │ ├── cards.html │ │ │ ├── datetime.html │ │ │ ├── duallistbox.html │ │ │ ├── grid.html │ │ │ ├── jasny.html │ │ │ ├── select.html │ │ │ ├── sortable.html │ │ │ ├── summernote.html │ │ │ ├── tabs_panels.html │ │ │ ├── timeline.html │ │ │ ├── upload.html │ │ │ ├── validate.html │ │ │ └── wizard.html │ │ ├── icon │ │ │ ├── fontawesome.html │ │ │ └── glyphicons.html │ │ ├── modal │ │ │ ├── dialog.html │ │ │ ├── form.html │ │ │ ├── layer.html │ │ │ ├── table.html │ │ │ └── table │ │ │ │ ├── check.html │ │ │ │ ├── parent.html │ │ │ │ └── radio.html │ │ ├── operate │ │ │ ├── add.html │ │ │ ├── detail.html │ │ │ ├── edit.html │ │ │ ├── other.html │ │ │ └── table.html │ │ ├── report │ │ │ ├── echarts.html │ │ │ ├── metrics.html │ │ │ ├── peity.html │ │ │ └── sparkline.html │ │ └── table │ │ │ ├── button.html │ │ │ ├── child.html │ │ │ ├── curd.html │ │ │ ├── detail.html │ │ │ ├── editable.html │ │ │ ├── event.html │ │ │ ├── export.html │ │ │ ├── fixedColumns.html │ │ │ ├── footer.html │ │ │ ├── groupHeader.html │ │ │ ├── image.html │ │ │ ├── multi.html │ │ │ ├── other.html │ │ │ ├── pageGo.html │ │ │ ├── params.html │ │ │ ├── remember.html │ │ │ ├── reorder.html │ │ │ └── search.html │ │ ├── error │ │ ├── 404.html │ │ ├── 500.html │ │ ├── business.html │ │ └── unauth.html │ │ ├── include.html │ │ ├── index.html │ │ ├── login.html │ │ ├── login1.html │ │ ├── main.html │ │ ├── main_v1.html │ │ ├── monitor │ │ ├── logininfor │ │ │ └── logininfor.html │ │ ├── online │ │ │ └── online.html │ │ ├── operlog │ │ │ ├── detail.html │ │ │ └── operlog.html │ │ └── server │ │ │ └── server.html │ │ ├── skin.html │ │ ├── system │ │ ├── config │ │ │ ├── add.html │ │ │ ├── config.html │ │ │ └── edit.html │ │ ├── content │ │ │ ├── column │ │ │ │ ├── add.html │ │ │ │ ├── column.html │ │ │ │ ├── edit.html │ │ │ │ └── tree.html │ │ │ └── topic │ │ │ │ ├── add.html │ │ │ │ ├── article.html │ │ │ │ ├── edit.html │ │ │ │ ├── topic.html │ │ │ │ └── tree.html │ │ ├── dept │ │ │ ├── add.html │ │ │ ├── dept.html │ │ │ ├── edit.html │ │ │ └── tree.html │ │ ├── dict │ │ │ ├── data │ │ │ │ ├── add.html │ │ │ │ ├── data.html │ │ │ │ └── edit.html │ │ │ └── type │ │ │ │ ├── add.html │ │ │ │ ├── edit.html │ │ │ │ ├── tree.html │ │ │ │ └── type.html │ │ ├── menu │ │ │ ├── add.html │ │ │ ├── edit.html │ │ │ ├── icon.html │ │ │ ├── menu.html │ │ │ └── tree.html │ │ ├── notice │ │ │ ├── add.html │ │ │ ├── edit.html │ │ │ ├── notice.html │ │ │ └── read.html │ │ ├── post │ │ │ ├── add.html │ │ │ ├── edit.html │ │ │ └── post.html │ │ ├── role │ │ │ ├── add.html │ │ │ ├── authUser.html │ │ │ ├── dataScope.html │ │ │ ├── edit.html │ │ │ ├── role.html │ │ │ └── selectUser.html │ │ └── user │ │ │ ├── add.html │ │ │ ├── edit.html │ │ │ ├── profile │ │ │ ├── avatar.html │ │ │ ├── profile.html │ │ │ └── resetPwd.html │ │ │ ├── resetPwd.html │ │ │ └── user.html │ │ └── tool │ │ └── build │ │ └── build.html │ └── test │ └── java │ └── com │ └── yiranpay │ ├── base │ └── BaseJunit.java │ ├── channel │ ├── RouterFundChannelTest.java │ └── SequenceTest.java │ ├── gateway │ ├── DateTest.java │ └── QueryCardBinFacadeTest.java │ ├── payorder │ ├── FundRequestServiceTest.java │ ├── InsetOrderQueryTaskTest.java │ ├── InstOrderQueryTest.java │ ├── JointQueryTest.java │ ├── MoenyTest.java │ └── ResultNotifyTest.java │ └── rabbitmq │ └── RabbitMqTest.java ├── yiranpay-amqp ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── yiranpay │ │ └── amqp │ │ ├── config │ │ └── AMQPJsonConfig.java │ │ ├── constants │ │ └── AmqpConstants.java │ │ ├── domain │ │ ├── AmqoRequrst.java │ │ ├── MqExchanges.java │ │ ├── MqExchangesQueue.java │ │ ├── MqMessageLog.java │ │ └── MqQueue.java │ │ ├── enums │ │ └── ExchangesType.java │ │ ├── listener │ │ └── RabbitListenerDemoService.java │ │ ├── mapper │ │ ├── MqExchangesMapper.java │ │ ├── MqExchangesQueueMapper.java │ │ ├── MqMessageLogMapper.java │ │ └── MqQueueMapper.java │ │ └── service │ │ ├── IAmqpService.java │ │ ├── IMqExchangesQueueService.java │ │ ├── IMqExchangesService.java │ │ ├── IMqMessageLogService.java │ │ ├── IMqQueueService.java │ │ └── impl │ │ ├── AmqpServiceImpl.java │ │ ├── MqExchangesQueueServiceImpl.java │ │ ├── MqExchangesServiceImpl.java │ │ ├── MqMessageLogServiceImpl.java │ │ └── MqQueueServiceImpl.java │ └── resources │ ├── application-rabbitmq.yml │ ├── mapper │ └── amqp │ │ ├── MqExchangesMapper.xml │ │ ├── MqExchangesQueueMapper.xml │ │ ├── MqMessageLogMapper.xml │ │ └── MqQueueMapper.xml │ └── templates │ └── amqp │ ├── mqExchanges │ ├── add.html │ ├── edit.html │ ├── edit2.html │ ├── exchangeQueues.html │ └── mqExchanges.html │ ├── mqExchangesQueue │ ├── add.html │ ├── edit.html │ └── mqExchangesQueue.html │ ├── mqMessageLog │ ├── add.html │ ├── edit.html │ └── mqMessageLog.html │ └── mqQueue │ ├── add.html │ ├── edit.html │ └── mqQueue.html ├── yiranpay-common ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── yiranpay │ └── common │ ├── annotation │ ├── DataScope.java │ ├── DataSource.java │ ├── Excel.java │ ├── Excels.java │ ├── Log.java │ └── RepeatSubmit.java │ ├── config │ ├── Global.java │ ├── ServerConfig.java │ ├── datasource │ │ └── DynamicDataSourceContextHolder.java │ └── thread │ │ └── ThreadPoolConfig.java │ ├── constant │ ├── Constants.java │ ├── GenConstants.java │ ├── PermissionConstants.java │ ├── ScheduleConstants.java │ ├── ShiroConstants.java │ └── UserConstants.java │ ├── core │ ├── controller │ │ └── BaseController.java │ ├── domain │ │ ├── AjaxResult.java │ │ ├── BaseEntity.java │ │ ├── ResultWrapper.java │ │ ├── TreeEntity.java │ │ └── Ztree.java │ ├── page │ │ ├── PageDomain.java │ │ ├── TableDataInfo.java │ │ └── TableSupport.java │ └── text │ │ ├── CharsetKit.java │ │ ├── Convert.java │ │ └── StrFormatter.java │ ├── enums │ ├── AbsResultEnum.java │ ├── BusinessStatus.java │ ├── BusinessType.java │ ├── DataSourceType.java │ ├── DefaultResultEnum.java │ ├── OnlineStatus.java │ ├── OperatorType.java │ └── UserStatus.java │ ├── exception │ ├── BizException.java │ ├── BusinessException.java │ ├── DemoModeException.java │ ├── ValidationException.java │ ├── base │ │ └── BaseException.java │ ├── file │ │ ├── FileException.java │ │ ├── FileNameLengthLimitExceededException.java │ │ ├── FileSizeLimitExceededException.java │ │ └── InvalidExtensionException.java │ ├── job │ │ └── TaskException.java │ └── user │ │ ├── CaptchaException.java │ │ ├── RoleBlockedException.java │ │ ├── UserBlockedException.java │ │ ├── UserDeleteException.java │ │ ├── UserException.java │ │ ├── UserNotExistsException.java │ │ ├── UserPasswordNotMatchException.java │ │ ├── UserPasswordRetryLimitCountException.java │ │ └── UserPasswordRetryLimitExceedException.java │ ├── json │ ├── JSON.java │ └── JSONObject.java │ ├── utils │ ├── AddressUtils.java │ ├── Arith.java │ ├── BaseResult.java │ ├── DateUtils.java │ ├── EncodedPostMethod.java │ ├── ExceptionUtil.java │ ├── HttpEncoding.java │ ├── IpUtils.java │ ├── MapDataUtil.java │ ├── MessageUtils.java │ ├── QueryBase.java │ ├── ServletUtils.java │ ├── StrUtils.java │ ├── Threads.java │ ├── VelocityUtil.java │ ├── YamlUtil.java │ ├── bean │ │ └── BeanUtils.java │ ├── file │ │ ├── FileUploadUtils.java │ │ ├── FileUtils.java │ │ └── MimeTypeUtils.java │ ├── html │ │ ├── EscapeUtil.java │ │ └── HTMLFilter.java │ ├── http │ │ ├── HttpUtils.java │ │ └── WebHttpClient.java │ ├── poi │ │ └── ExcelUtil.java │ ├── property │ │ ├── DefaultPropertyHelper.java │ │ └── PropertyHelper.java │ ├── reflect │ │ └── ReflectUtils.java │ ├── security │ │ ├── Md5Utils.java │ │ └── PermissionUtils.java │ ├── spring │ │ └── SpringUtils.java │ └── sql │ │ └── SqlUtil.java │ ├── validate │ └── Validator.java │ └── xss │ ├── XssFilter.java │ └── XssHttpServletRequestWrapper.java ├── yiranpay-framework ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── yiranpay │ └── framework │ ├── aspectj │ ├── DataScopeAspect.java │ ├── DataSourceAspect.java │ └── LogAspect.java │ ├── config │ ├── ApplicationConfig.java │ ├── CaptchaConfig.java │ ├── DruidConfig.java │ ├── FilterConfig.java │ ├── I18nConfig.java │ ├── KaptchaTextCreator.java │ ├── MyBatisConfig.java │ ├── ResourcesConfig.java │ ├── ShiroConfig.java │ └── properties │ │ └── DruidProperties.java │ ├── datasource │ └── DynamicDataSource.java │ ├── interceptor │ ├── RepeatSubmitInterceptor.java │ └── impl │ │ ├── SameUrlDataInterceptor.java │ │ └── SessionInterceptor.java │ ├── manager │ ├── AsyncManager.java │ ├── ShutdownManager.java │ └── factory │ │ └── AsyncFactory.java │ ├── shiro │ ├── realm │ │ └── UserRealm.java │ ├── service │ │ ├── SysLoginService.java │ │ ├── SysPasswordService.java │ │ └── SysShiroService.java │ ├── session │ │ ├── OnlineSession.java │ │ ├── OnlineSessionDAO.java │ │ └── OnlineSessionFactory.java │ └── web │ │ ├── filter │ │ ├── LogoutFilter.java │ │ ├── captcha │ │ │ └── CaptchaValidateFilter.java │ │ ├── kickout │ │ │ └── KickoutSessionFilter.java │ │ ├── online │ │ │ └── OnlineSessionFilter.java │ │ └── sync │ │ │ └── SyncOnlineSessionFilter.java │ │ └── session │ │ ├── OnlineWebSessionManager.java │ │ └── SpringSessionValidationScheduler.java │ ├── util │ ├── LogUtils.java │ └── ShiroUtils.java │ └── web │ ├── domain │ ├── PayFundResponse.java │ ├── Server.java │ └── server │ │ ├── Cpu.java │ │ ├── Jvm.java │ │ ├── Mem.java │ │ ├── Sys.java │ │ └── SysFile.java │ ├── exception │ └── GlobalExceptionHandler.java │ └── service │ ├── ConfigService.java │ ├── DictService.java │ └── PermissionService.java ├── yiranpay-gateway ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── yiranpay │ │ └── gateway │ │ ├── constant │ │ └── ReqConstant.java │ │ ├── domain │ │ ├── GatewayApiAuth.java │ │ ├── GatewayApprovalLeave.java │ │ ├── GatewayCardBin.java │ │ ├── GatewayGatewayApi.java │ │ ├── GatewayIpWhite.java │ │ ├── GatewayMerchantConfig.java │ │ ├── GatewayProductApproval.java │ │ ├── GatewayProductInfo.java │ │ ├── GatewayProductMember.java │ │ ├── GatewaySecretKey.java │ │ └── SysApiLog.java │ │ ├── enums │ │ ├── ServiceKind.java │ │ └── SignTypeKind.java │ │ ├── exception │ │ ├── CommonDefinedException.java │ │ ├── ErrorCodeException.java │ │ ├── GateWayException.java │ │ ├── GateWayServiceException.java │ │ └── IgnoreUnexpectedElementsHandler.java │ │ ├── mapper │ │ ├── GatewayApiAuthMapper.java │ │ ├── GatewayApprovalLeaveMapper.java │ │ ├── GatewayCardBinMapper.java │ │ ├── GatewayGatewayApiMapper.java │ │ ├── GatewayIpWhiteMapper.java │ │ ├── GatewayMerchantConfigMapper.java │ │ ├── GatewayProductApprovalMapper.java │ │ ├── GatewayProductInfoMapper.java │ │ ├── GatewayProductMemberMapper.java │ │ ├── GatewaySecretKeyMapper.java │ │ └── SysApiLogMapper.java │ │ ├── request │ │ ├── ALIPayRequest.java │ │ ├── AuthorizationRequest.java │ │ ├── ChinaH5PayQueryRequest.java │ │ ├── ChinaH5PayRequest.java │ │ ├── IRequest.java │ │ ├── QueryCardBinReq.java │ │ ├── RequestBase.java │ │ ├── UESRequest.java │ │ └── WeiXinPayRequest.java │ │ ├── response │ │ ├── ALIPayResponse.java │ │ ├── AuthorizationResult.java │ │ ├── BaseResponse.java │ │ ├── CarBinResponse.java │ │ ├── ChinaH5PayQueryResponse.java │ │ ├── ChinaH5PayResponse.java │ │ ├── ProcessResult.java │ │ ├── UESResponse.java │ │ └── WeiXinPayResponse.java │ │ ├── service │ │ ├── IALIPayService.java │ │ ├── IAuthorizationService.java │ │ ├── IEncryptionDecryptionService.java │ │ ├── IGatewayApiAuthService.java │ │ ├── IGatewayApprovalLeaveService.java │ │ ├── IGatewayCardBinService.java │ │ ├── IGatewayGatewayApiService.java │ │ ├── IGatewayIpWhiteService.java │ │ ├── IGatewayMerchantConfigService.java │ │ ├── IGatewayProductApprovalService.java │ │ ├── IGatewayProductInfoService.java │ │ ├── IGatewayProductMemberService.java │ │ ├── IGatewaySecretKeyService.java │ │ ├── IH5PayService.java │ │ ├── IQueryCardBinService.java │ │ ├── ISysApiLogService.java │ │ ├── IWeiXinPayService.java │ │ ├── base │ │ │ └── GateWayServiceBase.java │ │ └── impl │ │ │ ├── ALIPayServiceImpl.java │ │ │ ├── AuthorizationServiceImpl.java │ │ │ ├── EncryptionDecryptionService.java │ │ │ ├── GatewayApiAuthServiceImpl.java │ │ │ ├── GatewayApprovalLeaveServiceImpl.java │ │ │ ├── GatewayCardBinServiceImpl.java │ │ │ ├── GatewayGatewayApiServiceImpl.java │ │ │ ├── GatewayIpWhiteServiceImpl.java │ │ │ ├── GatewayMerchantConfigServiceImpl.java │ │ │ ├── GatewayProductApprovalServiceImpl.java │ │ │ ├── GatewayProductInfoServiceImpl.java │ │ │ ├── GatewayProductMemberServiceImpl.java │ │ │ ├── GatewaySecretKeyServiceImpl.java │ │ │ ├── H5PayServiceImpl.java │ │ │ ├── QueryCardBinService.java │ │ │ ├── SysApiLogServiceImpl.java │ │ │ └── WeiXinPayServiceImpl.java │ │ └── tools │ │ ├── BaseRequestValidate.java │ │ ├── RSAUtils.java │ │ ├── RequestHelper.java │ │ └── SignUtils.java │ └── resources │ ├── mapper │ └── gateway │ │ ├── GatewayApiAuthMapper.xml │ │ ├── GatewayApprovalLeaveMapper.xml │ │ ├── GatewayCardBinMapper.xml │ │ ├── GatewayGatewayApiMapper.xml │ │ ├── GatewayIpWhiteMapper.xml │ │ ├── GatewayMerchantConfigMapper.xml │ │ ├── GatewayProductApprovalMapper.xml │ │ ├── GatewayProductInfoMapper.xml │ │ ├── GatewayProductMemberMapper.xml │ │ ├── GatewaySecretKeyMapper.xml │ │ └── SysApiLogMapper.xml │ └── templates │ └── gateway │ ├── api │ ├── add.html │ ├── add2.html │ ├── api.html │ ├── api2.html │ ├── edit.html │ └── tree.html │ ├── approval │ ├── add.html │ ├── approval.html │ └── edit.html │ ├── auth │ ├── add.html │ ├── auth.html │ └── edit.html │ ├── bin │ ├── add.html │ ├── bin.html │ └── edit.html │ ├── config │ ├── add.html │ ├── config.html │ └── edit.html │ ├── info │ ├── add.html │ ├── edit.html │ ├── info.html │ └── tree.html │ ├── key │ ├── add.html │ ├── edit.html │ └── key.html │ ├── leave │ ├── add.html │ ├── edit.html │ └── leave.html │ ├── log │ ├── add.html │ ├── edit.html │ └── log.html │ ├── member │ ├── add.html │ ├── edit.html │ └── member.html │ ├── tool │ └── toolpage.html │ └── white │ ├── add.html │ ├── edit.html │ └── white.html ├── yiranpay-generator ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── yiranpay │ │ └── generator │ │ ├── config │ │ └── GenConfig.java │ │ ├── controller │ │ └── GenController.java │ │ ├── domain │ │ ├── GenTable.java │ │ └── GenTableColumn.java │ │ ├── mapper │ │ ├── GenTableColumnMapper.java │ │ └── GenTableMapper.java │ │ ├── service │ │ ├── IGenTableColumnService.java │ │ ├── IGenTableService.java │ │ └── impl │ │ │ ├── GenTableColumnServiceImpl.java │ │ │ └── GenTableServiceImpl.java │ │ └── util │ │ ├── GenUtils.java │ │ ├── VelocityInitializer.java │ │ └── VelocityUtils.java │ └── resources │ ├── generator.yml │ ├── mapper │ └── generator │ │ ├── GenTableColumnMapper.xml │ │ └── GenTableMapper.xml │ ├── templates │ └── tool │ │ └── gen │ │ ├── edit.html │ │ ├── gen.html │ │ └── importTable.html │ └── vm │ ├── html │ ├── add.html.vm │ ├── edit.html.vm │ ├── list-tree.html.vm │ ├── list.html.vm │ └── tree.html.vm │ ├── java │ ├── controller.java.vm │ ├── domain.java.vm │ ├── mapper.java.vm │ ├── service.java.vm │ └── serviceImpl.java.vm │ ├── sql │ └── sql.vm │ └── xml │ └── mapper.xml.vm ├── yiranpay-member ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── yiranpay │ │ └── member │ │ ├── base │ │ ├── Request.java │ │ └── Response.java │ │ ├── constant │ │ ├── FieldLength.java │ │ └── MaConstant.java │ │ ├── domain │ │ ├── Account.java │ │ ├── AccountBalance.java │ │ ├── AccountDomain.java │ │ ├── BulkQueryItem.java │ │ ├── CompanyMember.java │ │ ├── CoopMember.java │ │ ├── LoginName.java │ │ ├── MemberAndAccount.java │ │ ├── MemberContactInfo.java │ │ ├── MemberIdentity.java │ │ ├── MemberIntegratedQuery.java │ │ ├── MemberTdAccountConfig.java │ │ ├── MemberTdConfig.java │ │ ├── MemberTdPaypwdLockConfig.java │ │ ├── MemberTmContact.java │ │ ├── MemberTmMember.java │ │ ├── MemberTmMemberContact.java │ │ ├── MemberTmMemberIdentity.java │ │ ├── MemberTmMerchant.java │ │ ├── MemberTmOperator.java │ │ ├── MemberTrBankAccount.java │ │ ├── MemberTrCompanyMember.java │ │ ├── MemberTrMemberAccount.java │ │ ├── MemberTrMemberAccountDetail.java │ │ ├── MemberTrPassword.java │ │ ├── MemberTrPersonalMember.java │ │ ├── MemberTrVerifyEntity.java │ │ ├── MemberTrVerifyRef.java │ │ ├── MerchantInfo.java │ │ ├── PayPassWord.java │ │ ├── PayPwdLockInfo.java │ │ ├── PersonalMember.java │ │ ├── SecurityFieldValue.java │ │ ├── Verify.java │ │ ├── VerifyFacadeValidator.java │ │ ├── VerifyInfo.java │ │ └── VerifyQuery.java │ │ ├── enums │ │ ├── AccountAttributeEnum.java │ │ ├── AccountCategoryEnum.java │ │ ├── AccountGrade.java │ │ ├── ActivateStatusEnum.java │ │ ├── BankAccountAttrEnum.java │ │ ├── BankAccountConditionEnum.java │ │ ├── BankAccountSignEnum.java │ │ ├── BankAccountStatusEnum.java │ │ ├── BankAccountTypeEnum.java │ │ ├── BankAccountVerifiedEnum.java │ │ ├── BasicAccountType.java │ │ ├── BizProductEnum.java │ │ ├── BlukQueryFlagEnum.java │ │ ├── BulkReturnCodeEnum.java │ │ ├── CareerEnum.java │ │ ├── CertTypeEnum.java │ │ ├── CompanyTypeEnum.java │ │ ├── ContactStatusEnum.java │ │ ├── ContactTypeEnum.java │ │ ├── ContactVerifyStatusEnum.java │ │ ├── DeciphedQueryFlagnum.java │ │ ├── DeciphedTypeEnum.java │ │ ├── FrozenStatusEnum.java │ │ ├── GenderEnum.java │ │ ├── IdentityStatusEnum.java │ │ ├── IdentityTypeEnum.java │ │ ├── LifeCycleStatusEnum.java │ │ ├── LockEnum.java │ │ ├── LoginNameTypeEnum.java │ │ ├── MemberAccountStatusEnum.java │ │ ├── MemberContactFastQueryTypeEnum.java │ │ ├── MemberContactOrderByTypeEnum.java │ │ ├── MemberContactStatusEnum.java │ │ ├── MemberContactTypeEnum.java │ │ ├── MemberStatusEnum.java │ │ ├── MemberTypeEnum.java │ │ ├── MemberVerifyLevelEnum.java │ │ ├── MerchantStatusEnum.java │ │ ├── MerchantTypeEnum.java │ │ ├── MethodType.java │ │ ├── OpTypeEnum.java │ │ ├── OperationTypeEnum.java │ │ ├── OperatorStatusEnum.java │ │ ├── OperatorTypeEnum.java │ │ ├── OrderModeEnum.java │ │ ├── OrganizationNodeStatusEnum.java │ │ ├── OrganizationStatusEnum.java │ │ ├── OrganizationTypeEnum.java │ │ ├── PassWordLockFlagEnum.java │ │ ├── PassWordStatusEnum.java │ │ ├── PayAttributeEnum.java │ │ ├── PlatFormTypeEnum.java │ │ ├── PositionEnum.java │ │ ├── RemoteResultCode.java │ │ ├── RequestCode.java │ │ ├── ResponseCode.java │ │ ├── TerminalTypeEnum.java │ │ ├── TxnTypeEnum.java │ │ ├── ValidateLoginPwdModeEnum.java │ │ ├── ValidatePayPwdModeEnum.java │ │ ├── VerifyStatusEnum.java │ │ ├── VerifyTypeEncryptMappingEnum.java │ │ ├── VerifyTypeEnum.java │ │ └── YesNoEnum.java │ │ ├── exception │ │ ├── MaBizException.java │ │ ├── MaIllegalArgumentException.java │ │ └── MenberSqeException.java │ │ ├── filter │ │ ├── BankAccountFilter.java │ │ └── impl │ │ │ └── BankAccountFilterImpl.java │ │ ├── mapper │ │ ├── MemberSequenceMapper.java │ │ ├── MemberTdAccountConfigMapper.java │ │ ├── MemberTdConfigMapper.java │ │ ├── MemberTdPaypwdLockConfigMapper.java │ │ ├── MemberTmContactMapper.java │ │ ├── MemberTmMemberContactMapper.java │ │ ├── MemberTmMemberIdentityMapper.java │ │ ├── MemberTmMemberMapper.java │ │ ├── MemberTmMerchantMapper.java │ │ ├── MemberTmOperatorMapper.java │ │ ├── MemberTrBankAccountMapper.java │ │ ├── MemberTrCompanyMemberMapper.java │ │ ├── MemberTrMemberAccountDetailMapper.java │ │ ├── MemberTrMemberAccountMapper.java │ │ ├── MemberTrPasswordMapper.java │ │ ├── MemberTrPersonalMemberMapper.java │ │ ├── MemberTrVerifyEntityMapper.java │ │ └── MemberTrVerifyRefMapper.java │ │ ├── request │ │ ├── AccBalanceListRequest.java │ │ ├── AccRelationRequest.java │ │ ├── AccountQueryRequest.java │ │ ├── AccountRequest.java │ │ ├── ActivatePersonalRequest.java │ │ ├── BankAccInfoRequest.java │ │ ├── BankAccountRequest.java │ │ ├── BaseMemberInfo.java │ │ ├── BulkAcctQueryRequest.java │ │ ├── CompanyMemberQueryRequest.java │ │ ├── ContactChangeRequest.java │ │ ├── ContactQuery.java │ │ ├── ContactRequest.java │ │ ├── CreateMemberInfoRequest.java │ │ ├── CreateVirtualMerchantRequest.java │ │ ├── GetBalanceListReq.java │ │ ├── GetBalanceListRequestParam.java │ │ ├── IntegratedCompanyRequest.java │ │ ├── IntegratedPersonalRequest.java │ │ ├── LoginPwdRequest.java │ │ ├── MemberIdentityRequest.java │ │ ├── MemberIntegratedIdRequest.java │ │ ├── MemberIntegratedRequest.java │ │ ├── MemberLoginNameQueryRequest.java │ │ ├── MerchantAddRequest.java │ │ ├── MerchantIdQueryRequest.java │ │ ├── MerchantQueryRequest.java │ │ ├── MobileIdentityRequest.java │ │ ├── OpenAccountRequest.java │ │ ├── OperatorLoginPwdByIdRequest.java │ │ ├── OperatorLoginPwdLockRequest.java │ │ ├── OperatorLoginPwdRequest.java │ │ ├── PersonalLoginPwdLockRequest.java │ │ ├── PersonalLoginPwdRequest.java │ │ ├── PersonalMemberInfoRequest.java │ │ ├── PersonalMemberQueryRequest.java │ │ ├── PersonalMemberRequest.java │ │ ├── QueryBasicAccountRequest.java │ │ ├── QueryContactRequest.java │ │ ├── RemoteAccountBalanceListResult.java │ │ ├── UpdateAccountFreezeStatusRequest.java │ │ ├── UpdateMemberLockStatusRequest.java │ │ ├── ValidateLoginPwdRequest.java │ │ ├── VerifyBindQueryRequest.java │ │ ├── VerifyInputRequest.java │ │ └── VerifyQueryRequest.java │ │ ├── response │ │ ├── AccBalanceListResponse.java │ │ ├── AccRelationResponse.java │ │ ├── AccountBalanceListResp.java │ │ ├── AccountInfo.java │ │ ├── AccountInfoResponse.java │ │ ├── AccountResponse.java │ │ ├── ActivatePersonalResponse.java │ │ ├── BankAccInfoResponse.java │ │ ├── BankAccountInfoResponse.java │ │ ├── BankAccountResponse.java │ │ ├── ContactResponse.java │ │ ├── CreateMemberInfoResponse.java │ │ ├── IdentityInfo.java │ │ ├── IntegratedCompanyResponse.java │ │ ├── IntegratedPersonalResponse.java │ │ ├── LoginPwdResponse.java │ │ ├── MemberIntegratedResponse.java │ │ ├── MerchantAddResponse.java │ │ ├── MerchantListResponse.java │ │ ├── MerchantResponse.java │ │ ├── OpenAccountResponse.java │ │ └── QueryContactsResponse.java │ │ ├── service │ │ ├── DataEncryptService.java │ │ ├── IMemberSequenceService.java │ │ ├── IMemberTdAccountConfigService.java │ │ ├── IMemberTdConfigService.java │ │ ├── IMemberTdPaypwdLockConfigService.java │ │ ├── IMemberTmContactService.java │ │ ├── IMemberTmMemberContactService.java │ │ ├── IMemberTmMemberIdentityService.java │ │ ├── IMemberTmMemberService.java │ │ ├── IMemberTmMerchantService.java │ │ ├── IMemberTmOperatorService.java │ │ ├── IMemberTrBankAccountService.java │ │ ├── IMemberTrCompanyMemberService.java │ │ ├── IMemberTrMemberAccountDetailService.java │ │ ├── IMemberTrMemberAccountService.java │ │ ├── IMemberTrPasswordService.java │ │ ├── IMemberTrPersonalMemberService.java │ │ ├── IMemberTrVerifyEntityService.java │ │ ├── IMemberTrVerifyRefService.java │ │ └── impl │ │ │ ├── DataEncryptServiceImpl.java │ │ │ ├── MemberSequenceServiceImpl.java │ │ │ ├── MemberTdAccountConfigServiceImpl.java │ │ │ ├── MemberTdConfigServiceImpl.java │ │ │ ├── MemberTdPaypwdLockConfigServiceImpl.java │ │ │ ├── MemberTmContactServiceImpl.java │ │ │ ├── MemberTmMemberContactServiceImpl.java │ │ │ ├── MemberTmMemberIdentityServiceImpl.java │ │ │ ├── MemberTmMemberServiceImpl.java │ │ │ ├── MemberTmMerchantServiceImpl.java │ │ │ ├── MemberTmOperatorServiceImpl.java │ │ │ ├── MemberTrBankAccountServiceImpl.java │ │ │ ├── MemberTrCompanyMemberServiceImpl.java │ │ │ ├── MemberTrMemberAccountDetailServiceImpl.java │ │ │ ├── MemberTrMemberAccountServiceImpl.java │ │ │ ├── MemberTrPasswordServiceImpl.java │ │ │ ├── MemberTrPersonalMemberServiceImpl.java │ │ │ ├── MemberTrVerifyEntityServiceImpl.java │ │ │ └── MemberTrVerifyRefServiceImpl.java │ │ ├── utils │ │ ├── AccountDomainUtil.java │ │ ├── BankAcctDomainUtil.java │ │ ├── BankNumberUtil.java │ │ ├── ContactDomainUtil.java │ │ ├── MaPatternUtil.java │ │ ├── MemberContactUtil.java │ │ ├── MemberDomainUtil.java │ │ ├── MemberTypeUtil.java │ │ ├── MerchantDomainUtil.java │ │ ├── OperatorDomainUtil.java │ │ ├── ResponseUtil.java │ │ ├── SQLExceptionUtil.java │ │ ├── Utils.java │ │ ├── ValidateUtils.java │ │ └── VerifyDomainUtil.java │ │ └── validator │ │ ├── AccountFacadeValidator.java │ │ ├── AccountValidator.java │ │ ├── BankAccountFacadeValidator.java │ │ ├── BankAccountValidator.java │ │ ├── CommonFacadeValidator.java │ │ ├── ContactFacadeValidator.java │ │ ├── LoginPwdFacadeValidator.java │ │ ├── MemberFacadeValidator.java │ │ ├── MemberValidator.java │ │ ├── MerchantFacadeValidator.java │ │ ├── OperatorValidator.java │ │ └── impl │ │ ├── AccountValidatorImpl.java │ │ ├── BankAccountValidatorImpl.java │ │ ├── MemberValidatorImpl.java │ │ └── OperatorValidatorImpl.java │ └── resources │ ├── mapper │ └── member │ │ ├── MemberSequenceMapper.xml │ │ ├── MemberTdAccountConfigMapper.xml │ │ ├── MemberTdConfigMapper.xml │ │ ├── MemberTdPaypwdLockConfigMapper.xml │ │ ├── MemberTmContactMapper.xml │ │ ├── MemberTmMemberContactMapper.xml │ │ ├── MemberTmMemberIdentityMapper.xml │ │ ├── MemberTmMemberMapper.xml │ │ ├── MemberTmMerchantMapper.xml │ │ ├── MemberTmOperatorMapper.xml │ │ ├── MemberTrBankAccountMapper.xml │ │ ├── MemberTrCompanyMemberMapper.xml │ │ ├── MemberTrMemberAccountDetailMapper.xml │ │ ├── MemberTrMemberAccountMapper.xml │ │ ├── MemberTrPasswordMapper.xml │ │ ├── MemberTrPersonalMemberMapper.xml │ │ ├── MemberTrVerifyEntityMapper.xml │ │ └── MemberTrVerifyRefMapper.xml │ └── templates │ └── member │ ├── memberTdAccountConfig │ ├── add.html │ ├── edit.html │ └── memberTdAccountConfig.html │ ├── memberTdConfig │ ├── add.html │ ├── edit.html │ └── memberTdConfig.html │ ├── memberTdPaypwdLockConfig │ ├── add.html │ ├── edit.html │ └── memberTdPaypwdLockConfig.html │ ├── memberTmContact │ ├── add.html │ ├── edit.html │ └── memberTmContact.html │ ├── memberTmMember │ ├── add.html │ ├── edit.html │ └── memberTmMember.html │ ├── memberTmMemberContact │ ├── add.html │ ├── edit.html │ └── memberTmMemberContact.html │ ├── memberTmMemberIdentity │ ├── add.html │ ├── edit.html │ └── memberTmMemberIdentity.html │ ├── memberTmMerchant │ ├── add.html │ ├── edit.html │ └── memberTmMerchant.html │ ├── memberTmOperator │ ├── add.html │ ├── edit.html │ └── memberTmOperator.html │ ├── memberTrBankAccount │ ├── add.html │ ├── edit.html │ └── memberTrBankAccount.html │ ├── memberTrCompanyMember │ ├── add.html │ ├── edit.html │ ├── memberTrCompanyMember.html │ └── wizard.html │ ├── memberTrMemberAccount │ ├── add.html │ ├── edit.html │ └── memberTrMemberAccount.html │ ├── memberTrMemberAccountDetail │ ├── add.html │ ├── edit.html │ └── memberTrMemberAccountDetail.html │ ├── memberTrPassword │ ├── add.html │ ├── edit.html │ └── memberTrPassword.html │ ├── memberTrPersonalMember │ ├── add.html │ ├── edit.html │ └── memberTrPersonalMember.html │ ├── memberTrVerifyEntity │ ├── add.html │ ├── edit.html │ └── memberTrVerifyEntity.html │ └── memberTrVerifyRef │ ├── add.html │ ├── edit.html │ └── memberTrVerifyRef.html ├── yiranpay-message ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── yiranpay │ │ └── message │ │ ├── config │ │ └── EmailConfig.java │ │ ├── constants │ │ ├── EmailType.java │ │ ├── MsgSmsConfigConstants.java │ │ └── SmsResultEnum.java │ │ ├── domain │ │ ├── MsgEmail.java │ │ ├── MsgSendRecord.java │ │ ├── MsgSmsConfig.java │ │ └── MsgSmsTemplate.java │ │ ├── mapper │ │ ├── MsgEmailMapper.java │ │ ├── MsgSendRecordMapper.java │ │ ├── MsgSmsConfigMapper.java │ │ └── MsgSmsTemplateMapper.java │ │ ├── service │ │ ├── IMsgEmailService.java │ │ ├── IMsgSendRecordService.java │ │ ├── IMsgSmsConfigService.java │ │ ├── IMsgSmsSendService.java │ │ ├── IMsgSmsTemplateService.java │ │ └── impl │ │ │ ├── MsgEmailServiceImpl.java │ │ │ ├── MsgSendRecordServiceImpl.java │ │ │ ├── MsgSmsConfigServiceImpl.java │ │ │ ├── MsgSmsSendService.java │ │ │ └── MsgSmsTemplateServiceImpl.java │ │ ├── util │ │ ├── EmailMessage.java │ │ ├── EmailMessageAttachment.java │ │ ├── EmailTemplates.java │ │ ├── EmailUtil.java │ │ └── StringTemplateUtils.java │ │ └── vo │ │ ├── SendAuthCodeRequest.java │ │ └── SendSMSResponse.java │ └── resources │ ├── mapper │ └── message │ │ ├── MsgEmailMapper.xml │ │ ├── MsgSendRecordMapper.xml │ │ ├── MsgSmsConfigMapper.xml │ │ └── MsgSmsTemplateMapper.xml │ └── templates │ └── message │ ├── email │ ├── email.html │ ├── read.html │ └── write.html │ ├── sendRecord │ ├── add.html │ ├── edit.html │ └── sendRecord.html │ ├── smsConfig │ ├── add.html │ ├── edit.html │ └── smsConfig.html │ └── smsTemplate │ ├── add.html │ ├── edit.html │ ├── sendSms.html │ └── smsTemplate.html ├── yiranpay-quartz ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── yiranpay │ │ └── quartz │ │ ├── biz │ │ ├── ReconciliationCheckBiz.java │ │ ├── ReconciliationDataGetBiz.java │ │ ├── ReconciliationFileDownBiz.java │ │ ├── ReconciliationFileParserBiz.java │ │ └── ReconciliationValidateBiz.java │ │ ├── config │ │ └── ScheduleConfig.java │ │ ├── controller │ │ ├── SysJobController.java │ │ └── SysJobLogController.java │ │ ├── domain │ │ ├── SysJob.java │ │ └── SysJobLog.java │ │ ├── mapper │ │ ├── SysJobLogMapper.java │ │ └── SysJobMapper.java │ │ ├── service │ │ ├── ISysJobLogService.java │ │ ├── ISysJobService.java │ │ └── impl │ │ │ ├── SysJobLogServiceImpl.java │ │ │ └── SysJobServiceImpl.java │ │ ├── task │ │ ├── InsetOrderQueryTask.java │ │ ├── InstOrderNotifyTask.java │ │ ├── OrderBillDownloadTask.java │ │ ├── ReconciliationTask.java │ │ └── RetryMessageTasker.java │ │ └── util │ │ ├── AbstractQuartzJob.java │ │ ├── CronUtils.java │ │ ├── JobInvokeUtil.java │ │ ├── QuartzDisallowConcurrentExecution.java │ │ ├── QuartzJobExecution.java │ │ └── ScheduleUtils.java │ └── resources │ ├── mapper │ └── quartz │ │ ├── SysJobLogMapper.xml │ │ └── SysJobMapper.xml │ └── templates │ └── monitor │ └── job │ ├── add.html │ ├── detail.html │ ├── edit.html │ ├── job.html │ └── jobLog.html ├── yiranpay-reconciliation ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── yiranpay │ │ └── reconciliation │ │ ├── domain │ │ ├── ReconciliationAccountCheckBatch.java │ │ ├── ReconciliationAccountCheckMistake.java │ │ ├── ReconciliationAccountCheckMistakeScratchPool.java │ │ ├── ReconciliationAccountflow.java │ │ ├── ReconciliationChannelSetting.java │ │ ├── ReconciliationEvent.java │ │ └── ReconciliationLiquidationflow.java │ │ ├── enums │ │ ├── BatchStatusEnum.java │ │ ├── BillStatusEnum.java │ │ ├── HandleStatusEnum.java │ │ ├── MistakeHandleStatusEnum.java │ │ ├── PublicStatusEnum.java │ │ ├── ReconciliationMistakeTypeEnum.java │ │ ├── ReleaseStatusEnum.java │ │ └── TradeStatusEnum.java │ │ ├── exception │ │ └── BizException.java │ │ ├── mapper │ │ ├── BuildNoMap.java │ │ ├── ReconciliationAccountCheckBatchMapper.java │ │ ├── ReconciliationAccountCheckMistakeMapper.java │ │ ├── ReconciliationAccountCheckMistakeScratchPoolMapper.java │ │ ├── ReconciliationAccountflowMapper.java │ │ ├── ReconciliationChannelSettingMapper.java │ │ ├── ReconciliationEventMapper.java │ │ └── ReconciliationLiquidationflowMapper.java │ │ ├── parser │ │ ├── ALIPAYParser.java │ │ ├── ParserInterface.java │ │ ├── WXPAYParser.java │ │ └── 解析器定义规范.txt │ │ ├── service │ │ ├── IRecBuildNoService.java │ │ ├── IReconciliationAccountCheckBatchService.java │ │ ├── IReconciliationAccountCheckMistakeScratchPoolService.java │ │ ├── IReconciliationAccountCheckMistakeService.java │ │ ├── IReconciliationAccountCheckTransactionService.java │ │ ├── IReconciliationAccountflowService.java │ │ ├── IReconciliationChannelSettingService.java │ │ ├── IReconciliationEventService.java │ │ ├── IReconciliationLiquidationflowService.java │ │ ├── IReconciliationTradeReconciliationService.java │ │ └── impl │ │ │ ├── RecBuildNoServiceImpl.java │ │ │ ├── ReconciliationAccountCheckBatchServiceImpl.java │ │ │ ├── ReconciliationAccountCheckMistakeScratchPoolServiceImpl.java │ │ │ ├── ReconciliationAccountCheckMistakeServiceImpl.java │ │ │ ├── ReconciliationAccountCheckTransactionServiceImpl.java │ │ │ ├── ReconciliationAccountflowServiceImpl.java │ │ │ ├── ReconciliationChannelSettingServiceImpl.java │ │ │ ├── ReconciliationEventServiceImpl.java │ │ │ ├── ReconciliationLiquidationflowServiceImpl.java │ │ │ └── ReconciliationTradeReconciliationServiceImpl.java │ │ ├── utils │ │ ├── ReconciliationDateUtils.java │ │ └── XmlUtils.java │ │ └── vo │ │ └── ReconciliationEntityVo.java │ └── resources │ ├── mapper │ └── reconciliation │ │ ├── BuildNoMapper.xml │ │ ├── ReconciliationAccountCheckBatchMapper.xml │ │ ├── ReconciliationAccountCheckMistakeMapper.xml │ │ ├── ReconciliationAccountCheckMistakeScratchPoolMapper.xml │ │ ├── ReconciliationAccountflowMapper.xml │ │ ├── ReconciliationChannelSettingMapper.xml │ │ ├── ReconciliationEventMapper.xml │ │ └── ReconciliationLiquidationflowMapper.xml │ └── templates │ └── reconciliation │ ├── accountflow │ ├── accountflow.html │ ├── add.html │ └── edit.html │ ├── event │ ├── add.html │ ├── edit.html │ └── event.html │ ├── liquidationflow │ ├── add.html │ ├── edit.html │ └── liquidationflow.html │ ├── reconciliationAccountCheckBatch │ ├── accountflow.html │ ├── add.html │ ├── edit1.html │ ├── reconciliationAccountCheckBatch.html │ └── show.html │ ├── reconciliationAccountCheckMistake │ ├── add.html │ ├── edit.html │ └── reconciliationAccountCheckMistake.html │ ├── reconciliationAccountCheckMistakeScratchPool │ ├── add.html │ ├── edit.html │ └── reconciliationAccountCheckMistakeScratchPool.html │ └── reconciliationChannelSetting │ ├── add.html │ ├── edit.html │ └── reconciliationChannelSetting.html └── yiranpay-system ├── pom.xml └── src └── main ├── java └── com │ └── yiranpay │ └── system │ ├── domain │ ├── SysConfig.java │ ├── SysContentColumn.java │ ├── SysContentTopic.java │ ├── SysDept.java │ ├── SysDictData.java │ ├── SysDictType.java │ ├── SysLogininfor.java │ ├── SysMenu.java │ ├── SysNotice.java │ ├── SysOperLog.java │ ├── SysPost.java │ ├── SysRole.java │ ├── SysRoleDept.java │ ├── SysRoleMenu.java │ ├── SysUser.java │ ├── SysUserOnline.java │ ├── SysUserPost.java │ └── SysUserRole.java │ ├── mapper │ ├── SysConfigMapper.java │ ├── SysContentColumnMapper.java │ ├── SysContentTopicMapper.java │ ├── SysDeptMapper.java │ ├── SysDictDataMapper.java │ ├── SysDictTypeMapper.java │ ├── SysLogininforMapper.java │ ├── SysMenuMapper.java │ ├── SysNoticeMapper.java │ ├── SysOperLogMapper.java │ ├── SysPostMapper.java │ ├── SysRoleDeptMapper.java │ ├── SysRoleMapper.java │ ├── SysRoleMenuMapper.java │ ├── SysUserMapper.java │ ├── SysUserOnlineMapper.java │ ├── SysUserPostMapper.java │ └── SysUserRoleMapper.java │ └── service │ ├── ISysConfigService.java │ ├── ISysContentColumnService.java │ ├── ISysContentTopicService.java │ ├── ISysDeptService.java │ ├── ISysDictDataService.java │ ├── ISysDictTypeService.java │ ├── ISysLogininforService.java │ ├── ISysMenuService.java │ ├── ISysNoticeService.java │ ├── ISysOperLogService.java │ ├── ISysPostService.java │ ├── ISysRoleService.java │ ├── ISysUserOnlineService.java │ ├── ISysUserService.java │ └── impl │ ├── SysConfigServiceImpl.java │ ├── SysContentColumnServiceImpl.java │ ├── SysContentTopicServiceImpl.java │ ├── SysDeptServiceImpl.java │ ├── SysDictDataServiceImpl.java │ ├── SysDictTypeServiceImpl.java │ ├── SysLogininforServiceImpl.java │ ├── SysMenuServiceImpl.java │ ├── SysNoticeServiceImpl.java │ ├── SysOperLogServiceImpl.java │ ├── SysPostServiceImpl.java │ ├── SysRoleServiceImpl.java │ ├── SysUserOnlineServiceImpl.java │ └── SysUserServiceImpl.java └── resources └── mapper └── system ├── SysConfigMapper.xml ├── SysContentColumnMapper.xml ├── SysContentTopicMapper.xml ├── SysDeptMapper.xml ├── SysDictDataMapper.xml ├── SysDictTypeMapper.xml ├── SysLogininforMapper.xml ├── SysMenuMapper.xml ├── SysNoticeMapper.xml ├── SysOperLogMapper.xml ├── SysPostMapper.xml ├── SysRoleDeptMapper.xml ├── SysRoleMapper.xml ├── SysRoleMenuMapper.xml ├── SysUserMapper.xml ├── SysUserOnlineMapper.xml ├── SysUserPostMapper.xml └── SysUserRoleMapper.xml /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.jar 15 | *.war 16 | *.nar 17 | *.ear 18 | *.zip 19 | *.tar.gz 20 | *.rar 21 | 22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 23 | hs_err_pid* 24 | -------------------------------------------------------------------------------- /cashier/src/main/java/com/yiranpay/cashier/YiRanCashierApplication.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.cashier; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration; 6 | import org.springframework.boot.web.servlet.ServletComponentScan; 7 | 8 | /** 9 | * 启动类 10 | */ 11 | @SpringBootApplication(scanBasePackages = "com.yiranpay.cashier", exclude = WebSocketServletAutoConfiguration.class) 12 | @ServletComponentScan 13 | public class YiRanCashierApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(YiRanCashierApplication.class, args); 17 | System.out.println("(♥◠‿◠)ノ゙ 聚合支付收银台启动成功 ლ(´ڡ`ლ)゙ "); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /cashier/src/main/java/com/yiranpay/cashier/config/GlobalConfig.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.cashier.config; 2 | 3 | import cn.hutool.cache.impl.TimedCache; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | /** 8 | * 全局Bean配置 9 | */ 10 | @Configuration 11 | public class GlobalConfig { 12 | 13 | @Bean 14 | public TimedCache timedCache() { 15 | //缓存24小时 16 | return new TimedCache<>(1000L * 60L * 60L * 24L); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /cashier/src/main/java/com/yiranpay/cashier/tool/HttpEncoding.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.cashier.tool; 2 | /** 3 | * 字符编码 4 | * @author pandaa 5 | * 6 | */ 7 | public enum HttpEncoding { 8 | 9 | UTF8("UTF-8"),GB2312("GB2312"), GBK("GBK"),GB18030("GB18030"); 10 | 11 | private String code; 12 | 13 | private HttpEncoding(String encode){ 14 | this.code = encode; 15 | } 16 | 17 | public String getCode(){ 18 | return this.code; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /cashier/src/main/java/com/yiranpay/cashier/tool/OrderNoTool.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.cashier.tool; 2 | 3 | import cn.hutool.core.date.DateUtil; 4 | import cn.hutool.core.util.RandomUtil; 5 | 6 | import java.util.Date; 7 | 8 | public class OrderNoTool { 9 | 10 | public static String generate() { 11 | return DateUtil.format(new Date(), "yyyyMMddHHmmsss") + RandomUtil.randomNumbers(5); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /cashier/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | # spring框架相关配置 2 | spring: 3 | jackson: 4 | time-zone: GMT+8 5 | serialization: 6 | WRITE_DATES_AS_TIMESTAMPS: true 7 | # Servlet容器相关配置 8 | server: 9 | # 服务器的HTTP端口,默认为8085 10 | port: 8085 11 | servlet: 12 | # 应用的访问路径 13 | context-path: / 14 | use-forward-headers: true 15 | -------------------------------------------------------------------------------- /cashier/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | ██ ██ ██ ███████ ██ ████ ██ ███████ ██ ██ ██ 2 | ░░██ ██ ░██░██░░░░██ ████ ░██░██ ░██░██░░░░██ ████ ░░██ ██ 3 | ░░████ ░██░██ ░██ ██░░██ ░██░░██ ░██░██ ░██ ██░░██ ░░████ 4 | ░░██ ░██░███████ ██ ░░██ ░██ ░░██ ░██░███████ ██ ░░██ ░░██ 5 | ░██ ░██░██░░░██ ██████████░██ ░░██░██░██░░░░ ██████████ ░██ 6 | ░██ ░██░██ ░░██ ░██░░░░░░██░██ ░░████░██ ░██░░░░░░██ ░██ 7 | ░██ ░██░██ ░░██░██ ░██░██ ░░███░██ ░██ ░██ ░██ 8 | ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░░ ░░ ░░ ░░ ░░ 9 | -------------------------------------------------------------------------------- /cashier/src/main/resources/static/bank_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/cashier/src/main/resources/static/bank_logo.png -------------------------------------------------------------------------------- /cashier/src/main/resources/static/images/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/cashier/src/main/resources/static/images/default.png -------------------------------------------------------------------------------- /cashier/src/main/resources/static/images/icon_selected02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/cashier/src/main/resources/static/images/icon_selected02.png -------------------------------------------------------------------------------- /cashier/src/main/resources/static/images/icon_suc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/cashier/src/main/resources/static/images/icon_suc.gif -------------------------------------------------------------------------------- /cashier/src/main/resources/static/images/live_weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/cashier/src/main/resources/static/images/live_weixin.png -------------------------------------------------------------------------------- /cashier/src/main/resources/static/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/cashier/src/main/resources/static/images/loading.gif -------------------------------------------------------------------------------- /cashier/src/main/resources/static/images/loadingBody.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/cashier/src/main/resources/static/images/loadingBody.gif -------------------------------------------------------------------------------- /cashier/src/main/resources/static/images/sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/cashier/src/main/resources/static/images/sm.png -------------------------------------------------------------------------------- /cashier/src/main/resources/static/js/cashier.js: -------------------------------------------------------------------------------- 1 | // 打开遮罩层 2 | function loading (message) { 3 | $.blockUI({ message: '
' + message + '
' }); 4 | }; 5 | // 关闭遮罩层 6 | function closeLoading() { 7 | setTimeout(function(){ 8 | $.unblockUI(); 9 | }, 50); 10 | }; 11 | // 重新加载 12 | function reload() { 13 | parent.location.reload(); 14 | } -------------------------------------------------------------------------------- /cashier/src/main/resources/static/order.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /cashier/src/test/java/com/github/xuchengen/Bootloader.java: -------------------------------------------------------------------------------- 1 | package com.github.xuchengen; 2 | 3 | public class Bootloader { 4 | 5 | public static void main(String[] args) { 6 | new MainWindow(); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/WXChannelApplication.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration; 6 | 7 | /** 8 | * 启动程序 9 | * 10 | */ 11 | @SpringBootApplication(scanBasePackages = "com.channel.bank.adapter.pay",exclude = WebSocketServletAutoConfiguration.class) 12 | public class WXChannelApplication 13 | { 14 | public static void main(String[] args) 15 | { 16 | SpringApplication.run(WXChannelApplication.class, args); 17 | System.out.println("(♥◠‿◠)ノ゙ 支付渠道启动成功 ლ(´ڡ`ლ)゙ "); 18 | } 19 | } -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/config/WechatPayConfig.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.config; 2 | 3 | 4 | import org.slf4j.Logger; 5 | import org.slf4j.LoggerFactory; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.context.annotation.Bean; 8 | import org.springframework.stereotype.Component; 9 | 10 | import com.channel.bank.adapter.pay.service.impl.BestPayServiceImpl; 11 | 12 | 13 | /** 14 | * 支付配置 15 | */ 16 | @Component 17 | public class WechatPayConfig { 18 | 19 | private static final Logger logger = LoggerFactory.getLogger(WechatPayConfig.class); 20 | 21 | @Bean 22 | public BestPayServiceImpl bestPayService() { 23 | BestPayServiceImpl bestPayService = new BestPayServiceImpl(); 24 | return bestPayService; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/constants/ReturnCode.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.constants; 2 | 3 | public class ReturnCode { 4 | /**操作成功*/ 5 | public static final String SUCCESS = "0000"; 6 | 7 | /**操作失败*/ 8 | public static final String FAILED = "0003"; 9 | 10 | /**操作异常*/ 11 | public static final String EXCEPTION = "E9999"; 12 | } 13 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/constants/WxPayConstants.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.constants; 2 | 3 | /** 4 | * 微信常量 5 | */ 6 | public interface WxPayConstants { 7 | 8 | String SUCCESS = "SUCCESS"; 9 | 10 | String WXPAY_GATEWAY = "https://api.mch.weixin.qq.com/"; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/domain/BaseResult.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.domain; 2 | 3 | import java.io.Serializable; 4 | 5 | public class BaseResult implements Serializable 6 | { 7 | private static final long serialVersionUID = -2253380911043438025L; 8 | protected boolean success = false; 9 | protected String resultMessage; 10 | 11 | public BaseResult() 12 | { 13 | } 14 | 15 | public BaseResult(boolean success) 16 | { 17 | this.success = success; 18 | } 19 | 20 | public BaseResult(boolean success, String returnMessage) { 21 | this.success = success; 22 | this.resultMessage = returnMessage; 23 | } 24 | 25 | public boolean isSuccess() { 26 | return this.success; 27 | } 28 | 29 | public void setSuccess(boolean success) { 30 | this.success = success; 31 | } 32 | 33 | public String getResultMessage() 34 | { 35 | return this.resultMessage; 36 | } 37 | 38 | public void setResultMessage(String resultMessage) { 39 | this.resultMessage = resultMessage; 40 | } 41 | } -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/enums/AbsResultEnum.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.enums; 2 | /** 3 | * 抽象结果接口 4 | * @author pandaa 5 | * 6 | */ 7 | public interface AbsResultEnum { 8 | /** 9 | * 结果码 10 | * 11 | * @return String 12 | */ 13 | String getCode(); 14 | 15 | /** 16 | * 结果消息 17 | * 18 | * @return String 19 | */ 20 | String getMessage(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/enums/DefaultResultEnum.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.enums; 2 | /** 3 | * 默认结果码枚举 4 | * @author pandaa 5 | * 6 | */ 7 | public enum DefaultResultEnum implements AbsResultEnum { 8 | SUCCESS("200", "成功"), 9 | FAIL("400", "失败"), 10 | ERROR("500", "异常"); 11 | 12 | private String code; 13 | 14 | private String message; 15 | 16 | @Override 17 | public String getCode() { 18 | return code; 19 | } 20 | 21 | @Override 22 | public String getMessage() { 23 | return message; 24 | } 25 | 26 | DefaultResultEnum(String code, String message) { 27 | this.code = code; 28 | this.message = message; 29 | } 30 | 31 | @Override 32 | public String toString() { 33 | return "DefaultResultEnum{" + 34 | "code='" + code + '\'' + 35 | ", message='" + message + '\'' + 36 | "} " + super.toString(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/enums/ResponseType.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.enums; 2 | 3 | public enum ResponseType { 4 | 5 | /** 6 | * 处理出错,如验签失败、返回数据有误等 7 | */ 8 | ERROR, 9 | 10 | /** 11 | * 返回机构特定数据 12 | */ 13 | RETURN_SERVER, 14 | 15 | /** 16 | * 跳转下个页面 17 | */ 18 | FORWARD 19 | 20 | } 21 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/exception/BestPayException.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.exception; 2 | 3 | import com.channel.bank.adapter.pay.enums.BestPayResultEnum; 4 | 5 | public class BestPayException extends RuntimeException { 6 | 7 | private Integer code; 8 | 9 | public BestPayException(BestPayResultEnum resultEnum) { 10 | super(resultEnum.getMsg()); 11 | code = resultEnum.getCode(); 12 | } 13 | 14 | public Integer getCode() { 15 | return code; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/mock/ResultReturnVO.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.mock; 2 | 3 | import java.io.Serializable; 4 | 5 | public class ResultReturnVO implements Serializable{ 6 | 7 | /** 8 | * 9 | */ 10 | private static final long serialVersionUID = -1060967669267084551L; 11 | /** 12 | * 交易结果代码 13 | */ 14 | private String ret_code; 15 | /** 16 | * 交易结果描述 17 | */ 18 | private String ret_msg; 19 | public String getRet_code() { 20 | return ret_code; 21 | } 22 | public void setRet_code(String ret_code) { 23 | this.ret_code = ret_code; 24 | } 25 | public String getRet_msg() { 26 | return ret_msg; 27 | } 28 | public void setRet_msg(String ret_msg) { 29 | this.ret_msg = ret_msg; 30 | } 31 | 32 | 33 | } 34 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/mode/OrderQueryRequest.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.mode; 2 | 3 | import com.channel.bank.adapter.pay.enums.BestPayTypeEnum; 4 | 5 | /** 6 | * 支付订单查询 7 | */ 8 | public class OrderQueryRequest { 9 | 10 | /** 11 | * 支付方式. 12 | */ 13 | private BestPayTypeEnum payTypeEnum; 14 | 15 | private String orderId; 16 | 17 | public BestPayTypeEnum getPayTypeEnum() { 18 | return payTypeEnum; 19 | } 20 | 21 | public void setPayTypeEnum(BestPayTypeEnum payTypeEnum) { 22 | this.payTypeEnum = payTypeEnum; 23 | } 24 | 25 | public String getOrderId() { 26 | return orderId; 27 | } 28 | 29 | public void setOrderId(String orderId) { 30 | this.orderId = orderId; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/mode/OrderRefundQueryRequest.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.mode; 2 | 3 | 4 | 5 | /** 6 | * 退款查询 7 | */ 8 | public class OrderRefundQueryRequest { 9 | 10 | 11 | 12 | /** 13 | * 商户订单号 14 | */ 15 | private String orderId; 16 | 17 | 18 | public String getOrderId() { 19 | return orderId; 20 | } 21 | 22 | public void setOrderId(String orderId) { 23 | this.orderId = orderId; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/mode/wxpay/response/WxRefundNotifyResponse.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.mode.wxpay.response; 2 | 3 | /** 4 | * 微信退款结果异步通知 5 | */ 6 | public class WxRefundNotifyResponse { 7 | } 8 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/property/PropertyHelper.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.property; 2 | import java.util.Properties; 3 | 4 | /** 5 | * 6 | *

属性文件帮助类

7 | */ 8 | public interface PropertyHelper { 9 | 10 | public Properties getProperties(String fundChannelCode); 11 | 12 | public Properties getProperties(String fundChannelCode,String defaultChannelCode); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/rest/HttpStatus.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.rest; 2 | 3 | public enum HttpStatus { 4 | OK, CREATED, ACCEPTED, NO_CONTENT, SEE_OTHER, BAD_REQUEST, FORBIDDEN, NOT_FOUND, INTERNAL_SERVER_ERROR 5 | 6 | } 7 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/rest/HttpsClient.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.rest; 2 | 3 | import org.glassfish.jersey.SslConfigurator; 4 | 5 | import javax.net.ssl.SSLContext; 6 | import javax.ws.rs.client.ClientBuilder; 7 | import javax.ws.rs.core.UriBuilder; 8 | 9 | public class HttpsClient extends Client { 10 | 11 | public HttpsClient(String host) { 12 | this(host, null); 13 | } 14 | 15 | public HttpsClient(String host, String project) { 16 | SslConfigurator sslConfig = SslConfigurator.newInstance(); 17 | SSLContext ssl = sslConfig.createSSLContext(); 18 | this.target = ClientBuilder.newBuilder().sslContext(ssl).build().target(UriBuilder.fromUri("https://" + host).build()); 19 | if (project != null) { 20 | this.target = this.target.path(project); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/rest/type/Delete.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.rest.type; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target({ElementType.METHOD}) 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Documented 8 | public @interface Delete { 9 | } 10 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/rest/type/Get.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.rest.type; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target({ElementType.METHOD}) 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Documented 8 | public @interface Get { 9 | } 10 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/rest/type/Post.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.rest.type; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target({ElementType.METHOD}) 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Documented 8 | public @interface Post { 9 | } 10 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/rest/type/Put.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.rest.type; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target({ElementType.METHOD}) 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Documented 8 | public @interface Put { 9 | } 10 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/service/EncryptAndDecryptService.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.service; 2 | 3 | /** 4 | * 加解密 5 | */ 6 | public interface EncryptAndDecryptService { 7 | 8 | /** 9 | * 加密 10 | * @param key 11 | * @param data 12 | * @return 13 | */ 14 | Object encrypt(String key, String data); 15 | 16 | 17 | /** 18 | * 解密 19 | * @param key 20 | * @param data 21 | * @return 22 | */ 23 | Object decrypt(String key, String data); 24 | } 25 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/service/IAmqpService.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.service; 2 | 3 | import java.util.Map; 4 | 5 | import com.channel.bank.adapter.pay.domain.AmqoRequrst; 6 | 7 | 8 | public interface IAmqpService { 9 | 10 | /** 11 | * 发送消息 12 | * @return 13 | */ 14 | public boolean sendMessage(AmqoRequrst requrst); 15 | } 16 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/service/impl/AbstractComponent.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.service.impl; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | abstract class AbstractComponent { 7 | 8 | protected final Logger logger = LoggerFactory.getLogger("best-pay"); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/service/impl/AbstractEncryptAndDecryptServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.service.impl; 2 | 3 | import com.channel.bank.adapter.pay.service.EncryptAndDecryptService; 4 | 5 | abstract class AbstractEncryptAndDecryptServiceImpl implements EncryptAndDecryptService { 6 | 7 | /** 8 | * 加密 9 | * 10 | * @param key 11 | * @param data 12 | * @return 13 | */ 14 | @Override 15 | public Object encrypt(String key, String data) { 16 | return null; 17 | } 18 | 19 | /** 20 | * 解密 21 | * 22 | * @param key 23 | * @param data 24 | * @return 25 | */ 26 | @Override 27 | public Object decrypt(String key, String data) { 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/utils/DateUtil.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.utils; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Date; 5 | 6 | /** 7 | * @version 1.0 2017/3/1 8 | * @since 1.0 9 | */ 10 | public class DateUtil { 11 | 12 | /** 13 | * 将yyyy-mm-dd HH:mm:ss格式的日期转换为Date格式 14 | * @param dateString 15 | * @return 16 | * @throws Exception 17 | */ 18 | public static Date toDate(String dateString) throws Exception{ 19 | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 20 | return sdf.parse(dateString); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/utils/MoneyUtil.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.utils; 2 | 3 | import java.math.BigDecimal; 4 | 5 | 6 | public class MoneyUtil { 7 | 8 | /** 9 | * 元转分 10 | * @param yuan 11 | * @return 12 | */ 13 | public static Integer Yuan2Fen(Double yuan) { 14 | return new BigDecimal(String.valueOf(yuan)).movePointRight(2).intValue(); 15 | } 16 | 17 | /** 18 | * 分转元 19 | * @param fen 20 | * @return 21 | */ 22 | public static Double Fen2Yuan(Integer fen) { 23 | return new BigDecimal(fen).movePointLeft(2).doubleValue(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/utils/NameValuePairUtil.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.utils; 2 | 3 | import org.apache.http.NameValuePair; 4 | import org.apache.http.message.BasicNameValuePair; 5 | 6 | import java.util.ArrayList; 7 | import java.util.List; 8 | import java.util.Map; 9 | public abstract class NameValuePairUtil { 10 | 11 | /** 12 | * 将Map转换为List<{@link NameValuePair}>. 13 | * 14 | * @param map 15 | * @return 16 | */ 17 | public static List convert(Map map) { 18 | List nameValuePairs = new ArrayList<>(); 19 | map.forEach((key, value) -> { 20 | nameValuePairs.add(new BasicNameValuePair(key, value)); 21 | }); 22 | 23 | return nameValuePairs; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/utils/PayRandomUtil.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.utils; 2 | 3 | public class PayRandomUtil { 4 | 5 | private static final String RANDOM_STR = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 6 | 7 | private static final java.util.Random RANDOM = new java.util.Random(); 8 | 9 | public static String getRandomStr() { 10 | StringBuilder sb = new StringBuilder(); 11 | for (int i = 0; i < 16; i++) { 12 | sb.append(RANDOM_STR.charAt(RANDOM.nextInt(RANDOM_STR.length()))); 13 | } 14 | return sb.toString(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/utils/ServletRequestUtils.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.utils; 2 | 3 | import javax.servlet.ServletRequest; 4 | import java.util.Enumeration; 5 | import java.util.Objects; 6 | import java.util.TreeMap; 7 | 8 | public class ServletRequestUtils { 9 | 10 | public static TreeMap getParameterMap(ServletRequest request) { 11 | Objects.requireNonNull(request, "request is null."); 12 | TreeMap map = new TreeMap<>(); 13 | Enumeration enu = request.getParameterNames(); 14 | while (enu.hasMoreElements()) { 15 | String paraName = (String) enu.nextElement(); 16 | map.put(paraName, request.getParameter(paraName)); 17 | } 18 | 19 | return map; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /channel/channel-pay/src/main/java/com/channel/bank/adapter/pay/utils/https/MyX509TrustManager.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.utils.https; 2 | 3 | import javax.net.ssl.X509TrustManager; 4 | import java.security.cert.CertificateException; 5 | import java.security.cert.X509Certificate; 6 | 7 | /** 8 | * 证书信任管理器(用于https请求) 9 | * 10 | */ 11 | public class MyX509TrustManager implements X509TrustManager { 12 | 13 | public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { 14 | } 15 | 16 | public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { 17 | } 18 | 19 | public X509Certificate[] getAcceptedIssuers() { 20 | return null; 21 | } 22 | } -------------------------------------------------------------------------------- /channel/channel-pay/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | # 项目相关配置 2 | channelpay: 3 | # 名称 4 | name: 支付渠道 5 | # 版本 6 | version: 1.1.0 7 | # 版权年份 8 | copyrightYear: 2020 9 | # 支付渠道配置文件路径 E:/opt/pay/config/basis/bcss 10 | payChannelconfigFilePath: /opt/pay/config/basis/bcss 11 | # spring框架相关配置 12 | spring: 13 | # 服务模块 14 | devtools: 15 | restart: 16 | # 热部署开关 17 | enabled: true 18 | jackson: 19 | time-zone: GMT+8 20 | date-format: yyyy-MM-dd HH:mm:ss 21 | rabbitmq: 22 | host: 123.206.111.215 23 | port: 5672 24 | username: yiranadmin 25 | password: yiran123456 26 | publisher-confirms: true 27 | publisher-returns: true 28 | # Servlet容器相关配置 29 | server: 30 | # 服务器的HTTP端口,默认为8087 31 | port: 8087 32 | use-forward-headers: true 33 | 34 | 35 | -------------------------------------------------------------------------------- /channel/channel-pay/src/test/java/com/channel/bank/adapter/pay/test/BaseJunit.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.test; 2 | 3 | import org.junit.runner.RunWith; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | import org.springframework.test.annotation.Rollback; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | import org.springframework.transaction.annotation.Transactional; 8 | 9 | 10 | /** 11 | * 测试基础类 12 | * @author pandaa 13 | * 14 | */ 15 | 16 | @RunWith(SpringRunner.class) 17 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 18 | public class BaseJunit { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /channel/channel-pay/src/test/java/com/channel/bank/adapter/pay/test/PublicPAYFundInQueryTestCase.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.test; 2 | 3 | import java.util.Date; 4 | 5 | import org.junit.Test; 6 | 7 | 8 | public class PublicPAYFundInQueryTestCase extends FundInQueryBaseTestCase { 9 | 10 | 11 | @Test 12 | public void FundInQueryTest(){ 13 | super.QuerySingle("CHINAPAY70001", "WXPAY", "3194ALIPAY20200307043", new Date()); 14 | } 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /channel/channel-pay/src/test/java/com/channel/bank/adapter/pay/test/PublicPayReFundServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.test; 2 | 3 | import java.text.ParseException; 4 | 5 | import org.junit.Test; 6 | 7 | public class PublicPayReFundServiceTest extends RefundBaseTestCase { 8 | 9 | @Test 10 | public void processRefundTest(){ 11 | 12 | try { 13 | processRefund("CHINAPAY70001", "WXPAY", "0.01", "3194ALIPAY20200307046", "3194RF20200312002149000025"); 14 | } catch (ParseException e) { 15 | e.printStackTrace(); 16 | } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /channel/channel-pay/src/test/java/com/channel/bank/adapter/pay/test/PublicPayRefundQueryTest.java: -------------------------------------------------------------------------------- 1 | package com.channel.bank.adapter.pay.test; 2 | 3 | import java.text.ParseException; 4 | 5 | import org.junit.Test; 6 | 7 | /** 8 | * 退款查询 9 | * @author Administrator 10 | * 11 | */ 12 | public class PublicPayRefundQueryTest extends RefundQueryBaseTestCase { 13 | 14 | @Test 15 | public void refundQueryTest() throws ParseException{ 16 | processRefundQuery("CHINAPAY70001", "WXPAY", "20200405", "3194RF20200312002149000025"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/YiRanApplication.java: -------------------------------------------------------------------------------- 1 | package com.yiran; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; 6 | 7 | /** 8 | * 启动程序 9 | * 10 | * @author yiran 11 | */ 12 | @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) 13 | public class YiRanApplication 14 | { 15 | public static void main(String[] args) 16 | { 17 | SpringApplication.run(YiRanApplication.class, args); 18 | System.out.println("(♥◠‿◠)ノ゙ 商户站启动成功 ლ(´ڡ`ლ)゙ "); 19 | } 20 | } -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/YiRanServletInitializer.java: -------------------------------------------------------------------------------- 1 | package com.yiran; 2 | 3 | import org.springframework.boot.builder.SpringApplicationBuilder; 4 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 5 | 6 | /** 7 | * web容器中进行部署 8 | * 9 | * @author yiran 10 | */ 11 | public class YiRanServletInitializer extends SpringBootServletInitializer 12 | { 13 | @Override 14 | protected SpringApplicationBuilder configure(SpringApplicationBuilder application) 15 | { 16 | return application.sources(YiRanServletInitializer.class); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/constant/PermissionConstants.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.constant; 2 | 3 | /** 4 | * 权限通用常量 5 | * 6 | * @author yiran 7 | */ 8 | public class PermissionConstants 9 | { 10 | /** 新增权限 */ 11 | public static final String ADD_PERMISSION = "add"; 12 | 13 | /** 修改权限 */ 14 | public static final String EDIT_PERMISSION = "edit"; 15 | 16 | /** 删除权限 */ 17 | public static final String REMOVE_PERMISSION = "remove"; 18 | 19 | /** 导出权限 */ 20 | public static final String EXPORT_PERMISSION = "export"; 21 | 22 | /** 显示权限 */ 23 | public static final String VIEW_PERMISSION = "view"; 24 | 25 | /** 查询权限 */ 26 | public static final String LIST_PERMISSION = "list"; 27 | } 28 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/enums/UserStatus.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.enums; 2 | 3 | /** 4 | * 用户状态 5 | * 6 | * @author yiranpay 7 | */ 8 | public enum UserStatus 9 | { 10 | OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除"); 11 | 12 | private final String code; 13 | private final String info; 14 | 15 | UserStatus(String code, String info) 16 | { 17 | this.code = code; 18 | this.info = info; 19 | } 20 | 21 | public String getCode() 22 | { 23 | return code; 24 | } 25 | 26 | public String getInfo() 27 | { 28 | return info; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/BusinessException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception; 2 | 3 | /** 4 | * 业务异常 5 | * 6 | * @author yiran 7 | */ 8 | public class BusinessException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | protected final String message; 13 | 14 | public BusinessException(String message) 15 | { 16 | this.message = message; 17 | } 18 | 19 | public BusinessException(String message, Throwable e) 20 | { 21 | super(message, e); 22 | this.message = message; 23 | } 24 | 25 | @Override 26 | public String getMessage() 27 | { 28 | return message; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/DemoModeException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception; 2 | 3 | /** 4 | * 演示模式异常 5 | * 6 | * @author yiran 7 | */ 8 | public class DemoModeException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public DemoModeException() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/file/FileException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.file; 2 | 3 | import com.yiran.common.exception.base.BaseException; 4 | 5 | /** 6 | * 文件信息异常类 7 | * 8 | * @author yiran 9 | */ 10 | public class FileException extends BaseException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public FileException(String code, Object[] args) 15 | { 16 | super("file", code, args, null); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/file/FileNameLengthLimitExceededException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.file; 2 | 3 | /** 4 | * 文件名称超长限制异常类 5 | * 6 | * @author yiran 7 | */ 8 | public class FileNameLengthLimitExceededException extends FileException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public FileNameLengthLimitExceededException(int defaultFileNameLength) 13 | { 14 | super("upload.filename.exceed.length", new Object[] { defaultFileNameLength }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/file/FileSizeLimitExceededException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.file; 2 | 3 | /** 4 | * 文件名大小限制异常类 5 | * 6 | * @author yiran 7 | */ 8 | public class FileSizeLimitExceededException extends FileException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public FileSizeLimitExceededException(long defaultMaxSize) 13 | { 14 | super("upload.exceed.maxSize", new Object[] { defaultMaxSize }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/job/TaskException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.job; 2 | 3 | /** 4 | * 计划策略异常 5 | * 6 | * @author yiran 7 | */ 8 | public class TaskException extends Exception 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | private Code code; 13 | 14 | public TaskException(String msg, Code code) 15 | { 16 | this(msg, code, null); 17 | } 18 | 19 | public TaskException(String msg, Code code, Exception nestedEx) 20 | { 21 | super(msg, nestedEx); 22 | this.code = code; 23 | } 24 | 25 | public Code getCode() 26 | { 27 | return code; 28 | } 29 | 30 | public enum Code 31 | { 32 | TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE 33 | } 34 | } -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/user/CaptchaException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.user; 2 | 3 | /** 4 | * 验证码错误异常类 5 | * 6 | * @author yiran 7 | */ 8 | public class CaptchaException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public CaptchaException() 13 | { 14 | super("user.jcaptcha.error", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/user/RoleBlockedException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.user; 2 | 3 | /** 4 | * 角色锁定异常类 5 | * 6 | * @author yiran 7 | */ 8 | public class RoleBlockedException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public RoleBlockedException() 13 | { 14 | super("role.blocked", null); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/user/UserBlockedException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.user; 2 | 3 | /** 4 | * 用户锁定异常类 5 | * 6 | * @author yiran 7 | */ 8 | public class UserBlockedException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserBlockedException() 13 | { 14 | super("user.blocked", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/user/UserDeleteException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.user; 2 | 3 | /** 4 | * 用户账号已被删除 5 | * 6 | * @author yiran 7 | */ 8 | public class UserDeleteException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserDeleteException() 13 | { 14 | super("user.password.delete", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/user/UserException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.user; 2 | 3 | import com.yiran.common.exception.base.BaseException; 4 | 5 | /** 6 | * 用户信息异常类 7 | * 8 | * @author yiran 9 | */ 10 | public class UserException extends BaseException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public UserException(String code, Object[] args) 15 | { 16 | super("user", code, args, null); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/user/UserNotExistsException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.user; 2 | 3 | /** 4 | * 用户不存在异常类 5 | * 6 | * @author yiran 7 | */ 8 | public class UserNotExistsException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserNotExistsException() 13 | { 14 | super("user.not.exists", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/user/UserPasswordNotMatchException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.user; 2 | 3 | /** 4 | * 用户密码不正确或不符合规范异常类 5 | * 6 | * @author yiran 7 | */ 8 | public class UserPasswordNotMatchException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserPasswordNotMatchException() 13 | { 14 | super("user.password.not.match", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/user/UserPasswordRetryLimitCountException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.user; 2 | 3 | /** 4 | * 用户错误记数异常类 5 | * 6 | * @author yiran 7 | */ 8 | public class UserPasswordRetryLimitCountException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserPasswordRetryLimitCountException(int retryLimitCount) 13 | { 14 | super("user.password.retry.limit.count", new Object[] { retryLimitCount }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/exception/user/UserPasswordRetryLimitExceedException.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.exception.user; 2 | 3 | /** 4 | * 用户错误最大次数异常类 5 | * 6 | * @author yiran 7 | */ 8 | public class UserPasswordRetryLimitExceedException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserPasswordRetryLimitExceedException(int retryLimitCount) 13 | { 14 | super("user.password.retry.limit.exceed", new Object[] { retryLimitCount }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/utils/MessageUtils.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.utils; 2 | 3 | import org.springframework.context.MessageSource; 4 | import org.springframework.context.i18n.LocaleContextHolder; 5 | import com.yiran.common.utils.spring.SpringUtils; 6 | 7 | /** 8 | * 获取i18n资源文件 9 | * 10 | * @author yiran 11 | */ 12 | public class MessageUtils 13 | { 14 | /** 15 | * 根据消息键和参数 获取消息 委托给spring messageSource 16 | * 17 | * @param code 消息键 18 | * @param args 参数 19 | * @return 获取国际化翻译值 20 | */ 21 | public static String message(String code, Object... args) 22 | { 23 | MessageSource messageSource = SpringUtils.getBean(MessageSource.class); 24 | return messageSource.getMessage(code, args, LocaleContextHolder.getLocale()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/common/utils/sql/SqlUtil.java: -------------------------------------------------------------------------------- 1 | package com.yiran.common.utils.sql; 2 | 3 | import com.yiran.common.utils.StringUtils; 4 | 5 | /** 6 | * sql操作工具类 7 | * 8 | * @author yiran 9 | */ 10 | public class SqlUtil 11 | { 12 | /** 13 | * 仅支持字母、数字、下划线、空格、逗号(支持多个字段排序) 14 | */ 15 | public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,]+"; 16 | 17 | /** 18 | * 检查字符,防止注入绕过 19 | */ 20 | public static String escapeOrderBySql(String value) 21 | { 22 | if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) 23 | { 24 | return StringUtils.EMPTY; 25 | } 26 | return value; 27 | } 28 | 29 | /** 30 | * 验证 order by 语法是否符合规范 31 | */ 32 | public static boolean isValidOrderBySql(String value) 33 | { 34 | return value.matches(SQL_PATTERN); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/aspectj/lang/annotation/DataScope.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.aspectj.lang.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 数据权限过滤注解 11 | * 12 | * @author yiran 13 | */ 14 | @Target(ElementType.METHOD) 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Documented 17 | public @interface DataScope 18 | { 19 | /** 20 | * 部门表的别名 21 | */ 22 | public String deptAlias() default ""; 23 | 24 | /** 25 | * 用户表的别名 26 | */ 27 | public String userAlias() default ""; 28 | } 29 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/aspectj/lang/annotation/DataSource.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.aspectj.lang.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | import com.yiran.framework.aspectj.lang.enums.DataSourceType; 10 | 11 | /** 12 | * 自定义多数据源切换注解 13 | * 14 | * @author yiran 15 | */ 16 | @Target({ ElementType.METHOD, ElementType.TYPE }) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | @Documented 19 | @Inherited 20 | public @interface DataSource 21 | { 22 | /** 23 | * 切换数据源名称 24 | */ 25 | public DataSourceType value() default DataSourceType.MASTER; 26 | } 27 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/aspectj/lang/annotation/Excels.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.aspectj.lang.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Excel注解集 10 | * 11 | * @author yiran 12 | */ 13 | @Target(ElementType.FIELD) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface Excels 16 | { 17 | Excel[] value(); 18 | } -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/aspectj/lang/enums/BusinessStatus.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.aspectj.lang.enums; 2 | 3 | /** 4 | * 操作状态 5 | * 6 | * @author yiran 7 | * 8 | */ 9 | public enum BusinessStatus 10 | { 11 | /** 12 | * 成功 13 | */ 14 | SUCCESS, 15 | 16 | /** 17 | * 失败 18 | */ 19 | FAIL, 20 | } 21 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/aspectj/lang/enums/BusinessType.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.aspectj.lang.enums; 2 | 3 | /** 4 | * 业务操作类型 5 | * 6 | * @author yiran 7 | * 8 | */ 9 | public enum BusinessType 10 | { 11 | /** 12 | * 其它 13 | */ 14 | OTHER, 15 | 16 | /** 17 | * 新增 18 | */ 19 | INSERT, 20 | 21 | /** 22 | * 修改 23 | */ 24 | UPDATE, 25 | 26 | /** 27 | * 删除 28 | */ 29 | DELETE, 30 | 31 | /** 32 | * 授权 33 | */ 34 | GRANT, 35 | 36 | /** 37 | * 导出 38 | */ 39 | EXPORT, 40 | 41 | /** 42 | * 导入 43 | */ 44 | IMPORT, 45 | 46 | /** 47 | * 强退 48 | */ 49 | FORCE, 50 | 51 | /** 52 | * 生成代码 53 | */ 54 | GENCODE, 55 | 56 | /** 57 | * 清空数据 58 | */ 59 | CLEAN, 60 | } 61 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/aspectj/lang/enums/DataSourceType.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.aspectj.lang.enums; 2 | 3 | /** 4 | * 数据源 5 | * 6 | * @author yiran 7 | */ 8 | public enum DataSourceType 9 | { 10 | /** 11 | * 主库 12 | */ 13 | MASTER, 14 | 15 | /** 16 | * 从库 17 | */ 18 | SLAVE 19 | } 20 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/aspectj/lang/enums/OperatorType.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.aspectj.lang.enums; 2 | 3 | /** 4 | * 操作人类别 5 | * 6 | * @author yiran 7 | * 8 | */ 9 | public enum OperatorType 10 | { 11 | /** 12 | * 其它 13 | */ 14 | OTHER, 15 | 16 | /** 17 | * 后台用户 18 | */ 19 | MANAGE, 20 | 21 | /** 22 | * 手机端用户 23 | */ 24 | MOBILE 25 | } 26 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/config/ApplicationConfig.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.context.annotation.EnableAspectJAutoProxy; 6 | 7 | /** 8 | * 程序注解配置 9 | * 10 | * @author yiran 11 | */ 12 | @Configuration 13 | // 表示通过aop框架暴露该代理对象,AopContext能够访问 14 | @EnableAspectJAutoProxy(exposeProxy = true) 15 | // 指定要扫描的Mapper类的包的路径 16 | @MapperScan("com.yiran.project.**.mapper") 17 | public class ApplicationConfig 18 | { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/config/ServerConfig.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.config; 2 | 3 | import javax.servlet.http.HttpServletRequest; 4 | import org.springframework.stereotype.Component; 5 | import com.yiran.common.utils.ServletUtils; 6 | 7 | /** 8 | * 服务相关配置 9 | * 10 | * @author yiran 11 | * 12 | */ 13 | @Component 14 | public class ServerConfig 15 | { 16 | /** 17 | * 获取完整的请求路径,包括:域名,端口,上下文访问路径 18 | * 19 | * @return 服务地址 20 | */ 21 | public String getUrl() 22 | { 23 | HttpServletRequest request = ServletUtils.getRequest(); 24 | return getDomain(request); 25 | } 26 | 27 | public static String getDomain(HttpServletRequest request) 28 | { 29 | StringBuffer url = request.getRequestURL(); 30 | String contextPath = request.getServletContext().getContextPath(); 31 | return url.delete(url.length() - request.getRequestURI().length(), url.length()).append(contextPath).toString(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/datasource/DynamicDataSource.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.datasource; 2 | 3 | import java.util.Map; 4 | import javax.sql.DataSource; 5 | import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; 6 | 7 | /** 8 | * 动态数据源 9 | * 10 | * @author yiran 11 | */ 12 | public class DynamicDataSource extends AbstractRoutingDataSource 13 | { 14 | public DynamicDataSource(DataSource defaultTargetDataSource, Map targetDataSources) 15 | { 16 | super.setDefaultTargetDataSource(defaultTargetDataSource); 17 | super.setTargetDataSources(targetDataSources); 18 | super.afterPropertiesSet(); 19 | } 20 | 21 | @Override 22 | protected Object determineCurrentLookupKey() 23 | { 24 | return DynamicDataSourceContextHolder.getDataSourceType(); 25 | } 26 | } -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/interceptor/annotation/RepeatSubmit.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.interceptor.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 自定义注解防止表单重复提交 12 | * 13 | * @author yiran 14 | * 15 | */ 16 | @Inherited 17 | @Target(ElementType.METHOD) 18 | @Retention(RetentionPolicy.RUNTIME) 19 | @Documented 20 | public @interface RepeatSubmit 21 | { 22 | 23 | } -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/framework/web/page/TableSupport.java: -------------------------------------------------------------------------------- 1 | package com.yiran.framework.web.page; 2 | 3 | import com.yiran.common.utils.ServletUtils; 4 | import com.yiran.common.constant.Constants; 5 | 6 | /** 7 | * 表格数据处理 8 | * 9 | * @author yiran 10 | */ 11 | public class TableSupport 12 | { 13 | /** 14 | * 封装分页对象 15 | */ 16 | public static PageDomain getPageDomain() 17 | { 18 | PageDomain pageDomain = new PageDomain(); 19 | pageDomain.setPageNum(ServletUtils.getParameterToInt(Constants.PAGE_NUM)); 20 | pageDomain.setPageSize(ServletUtils.getParameterToInt(Constants.PAGE_SIZE)); 21 | pageDomain.setOrderByColumn(ServletUtils.getParameter(Constants.ORDER_BY_COLUMN)); 22 | pageDomain.setIsAsc(ServletUtils.getParameter(Constants.IS_ASC)); 23 | return pageDomain; 24 | } 25 | 26 | public static PageDomain buildPageRequest() 27 | { 28 | return getPageDomain(); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/demo/controller/DemoIconController.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.demo.controller; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | 7 | /** 8 | * 图标相关 9 | * 10 | * @author yiran 11 | */ 12 | @Controller 13 | @RequestMapping("/demo/icon") 14 | public class DemoIconController 15 | { 16 | private String prefix = "demo/icon"; 17 | 18 | /** 19 | * FontAwesome图标 20 | */ 21 | @GetMapping("/fontawesome") 22 | public String fontAwesome() 23 | { 24 | return prefix + "/fontawesome"; 25 | } 26 | 27 | /** 28 | * Glyphicons图标 29 | */ 30 | @GetMapping("/glyphicons") 31 | public String glyphicons() 32 | { 33 | return prefix + "/glyphicons"; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/key/service/PropertyHelper.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.key.service; 2 | import java.util.Properties; 3 | 4 | /** 5 | * 6 | *

属性文件帮助类

7 | */ 8 | public interface PropertyHelper { 9 | 10 | public Properties getProperties(String fundChannelCode); 11 | 12 | public Properties getProperties(String fundChannelCode,String defaultChannelCode); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/order/domain/EventVO.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.order.domain; 2 | 3 | public class EventVO { 4 | 5 | private long id; 6 | 7 | private String title; 8 | 9 | private String start; 10 | 11 | private String url; 12 | 13 | public String getTitle() { 14 | return title; 15 | } 16 | 17 | 18 | public long getId() { 19 | return id; 20 | } 21 | 22 | 23 | public void setId(long id) { 24 | this.id = id; 25 | } 26 | 27 | 28 | public void setTitle(String title) { 29 | this.title = title; 30 | } 31 | 32 | public String getStart() { 33 | return start; 34 | } 35 | 36 | public void setStart(String start) { 37 | this.start = start; 38 | } 39 | 40 | public String getUrl() { 41 | return url; 42 | } 43 | 44 | public void setUrl(String url) { 45 | this.url = url; 46 | } 47 | 48 | @Override 49 | public String toString() { 50 | return "EventVO [title=" + title + ", start=" + start + ", url=" + url + "]"; 51 | } 52 | 53 | 54 | } 55 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/order/service/ITradeOrderService.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.order.service; 2 | 3 | import java.util.List; 4 | 5 | import com.yiran.project.merchant.order.domain.TradeOrder; 6 | 7 | public interface ITradeOrderService { 8 | 9 | public List selectTradeOrderList(TradeOrder order); 10 | 11 | public TradeOrder selectTradeOrderByInstOrderNo(String instOrderNO); 12 | 13 | /** 14 | * 获取最近10条 15 | * @param order 16 | * @return 17 | */ 18 | public List selectTradeOrderList10s(TradeOrder order); 19 | 20 | public double geTodayTradeMoney(String memberId); 21 | 22 | public double getYesterdayTradeMoney(String memberId); 23 | 24 | public int geTodayTradeCount(String memberId); 25 | 26 | public int getYesterdayTradeCount(String memberId); 27 | } 28 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/product/mapper/ApprovalLeaveMapper.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.product.mapper; 2 | 3 | import java.util.List; 4 | 5 | import com.yiran.project.merchant.product.domain.ApprovalLeave; 6 | 7 | /** 8 | * 产品审批明细Mapper接口 9 | * 10 | * @author panda 11 | * @date 2020-04-12 12 | */ 13 | public interface ApprovalLeaveMapper 14 | { 15 | 16 | /** 17 | * 查询产品审批明细列表 18 | * 19 | * @param gatewayApprovalLeave 产品审批明细 20 | * @return 产品审批明细集合 21 | */ 22 | public List selectApprovalLeaveList(ApprovalLeave approvalLeave); 23 | 24 | /** 25 | * 新增产品审批明细 26 | * 27 | * @param gatewayApprovalLeave 产品审批明细 28 | * @return 结果 29 | */ 30 | public int insertApprovalLeave(ApprovalLeave approvalLeave); 31 | 32 | 33 | } 34 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/product/mapper/ProductApprovalMapper.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.product.mapper; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import com.yiran.project.merchant.product.domain.ProductApproval; 8 | 9 | /** 10 | * 产品申请Mapper接口 11 | * 12 | * @author panda 13 | * @date 2020-04-12 14 | */ 15 | public interface ProductApprovalMapper 16 | { 17 | 18 | /** 19 | * 新增产品申请 20 | * 21 | * @param gatewayProductApproval 产品申请 22 | * @return 结果 23 | */ 24 | public int insertProductApproval(ProductApproval productApproval); 25 | 26 | 27 | 28 | public ProductApproval selectProductApprova(@Param("productCode")String productCode, 29 | @Param("memberNo")String memberNo); 30 | } 31 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/product/mapper/ProductMemberMapper.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.product.mapper; 2 | 3 | import java.util.List; 4 | 5 | import com.yiran.project.merchant.product.domain.ProductMember; 6 | 7 | /** 8 | * 产品商户关联Mapper接口 9 | * 10 | * @author panda 11 | * @date 2020-04-12 12 | */ 13 | public interface ProductMemberMapper 14 | { 15 | 16 | /** 17 | * 查询产品商户关联列表 18 | * 19 | * @param gatewayProductMember 产品商户关联 20 | * @return 产品商户关联集合 21 | */ 22 | public List selectProductMemberList(ProductMember productMember); 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/product/service/IApprovalLeaveService.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.product.service; 2 | 3 | import java.util.List; 4 | 5 | import com.yiran.project.merchant.product.domain.ApprovalLeave; 6 | 7 | /** 8 | * 产品审批明细Service接口 9 | * 10 | * @author panda 11 | * @date 2020-04-12 12 | */ 13 | public interface IApprovalLeaveService 14 | { 15 | /** 16 | * 新增产品审批明细 17 | * 18 | * @param gatewayApprovalLeave 产品审批明细 19 | * @return 结果 20 | */ 21 | public int insertApprovalLeave(ApprovalLeave approvalLeave); 22 | 23 | public List selectApprovalLeaveList(ApprovalLeave approvalLeave); 24 | } 25 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/product/service/IProductApprovalService.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.product.service; 2 | 3 | import java.util.List; 4 | 5 | import com.yiran.project.merchant.product.domain.ProductApproval; 6 | 7 | /** 8 | * 产品申请Service接口 9 | * 10 | * @author panda 11 | * @date 2020-04-12 12 | */ 13 | public interface IProductApprovalService 14 | { 15 | 16 | ProductApproval selectProductApprova(String productCode, String memberNo); 17 | 18 | int insertProductApproval(ProductApproval approval); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/product/service/IProductInfoService.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.product.service; 2 | 3 | import java.util.List; 4 | 5 | import com.yiran.project.merchant.product.domain.ProductInfo; 6 | 7 | /** 8 | * 产品Service接口 9 | * 10 | * @author panda 11 | * @date 2020-04-12 12 | */ 13 | public interface IProductInfoService 14 | { 15 | /** 16 | * 查询产品列表 17 | * 18 | * @param ProductInfo 产品 19 | * @return 产品集合 20 | */ 21 | public List selectProductInfoList(ProductInfo productInfo); 22 | 23 | /** 24 | * 根据产品编号获取产品信息 25 | * @param productCode 26 | * @return 27 | */ 28 | public ProductInfo selectProductInfoByProductCode(String productCode); 29 | } 30 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/merchant/product/service/IProductMemberService.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.merchant.product.service; 2 | 3 | import java.util.List; 4 | 5 | import com.yiran.project.merchant.product.domain.ProductMember; 6 | 7 | /** 8 | * 产品商户关联Service接口 9 | * 10 | * @author panda 11 | * @date 2020-04-12 12 | */ 13 | public interface IProductMemberService 14 | { 15 | public List selectProductMemberList(ProductMember productMember); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/monitor/logininfor/mapper/LogininforMapper.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.monitor.logininfor.mapper; 2 | 3 | import java.util.List; 4 | import com.yiran.project.monitor.logininfor.domain.Logininfor; 5 | 6 | /** 7 | * 系统访问日志情况信息 数据层 8 | * 9 | * @author yiran 10 | */ 11 | public interface LogininforMapper 12 | { 13 | /** 14 | * 新增系统登录日志 15 | * 16 | * @param logininfor 访问日志对象 17 | */ 18 | public void insertLogininfor(Logininfor logininfor); 19 | 20 | /** 21 | * 查询系统登录日志集合 22 | * 23 | * @param logininfor 访问日志对象 24 | * @return 登录记录集合 25 | */ 26 | public List selectLogininforList(Logininfor logininfor); 27 | 28 | /** 29 | * 批量删除系统登录日志 30 | * 31 | * @param ids 需要删除的数据 32 | * @return 结果 33 | */ 34 | public int deleteLogininforByIds(String[] ids); 35 | 36 | /** 37 | * 清空系统登录日志 38 | * 39 | * @return 结果 40 | */ 41 | public int cleanLogininfor(); 42 | } 43 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/monitor/logininfor/service/ILogininforService.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.monitor.logininfor.service; 2 | 3 | import java.util.List; 4 | import com.yiran.project.monitor.logininfor.domain.Logininfor; 5 | 6 | /** 7 | * 系统访问日志情况信息 服务层 8 | * 9 | * @author yiran 10 | */ 11 | public interface ILogininforService 12 | { 13 | /** 14 | * 新增系统登录日志 15 | * 16 | * @param logininfor 访问日志对象 17 | */ 18 | public void insertLogininfor(Logininfor logininfor); 19 | 20 | /** 21 | * 查询系统登录日志集合 22 | * 23 | * @param logininfor 访问日志对象 24 | * @return 登录记录集合 25 | */ 26 | public List selectLogininforList(Logininfor logininfor); 27 | 28 | /** 29 | * 批量删除系统登录日志 30 | * 31 | * @param ids 需要删除的数据 32 | * @return 33 | */ 34 | public int deleteLogininforByIds(String ids); 35 | 36 | /** 37 | * 清空系统登录日志 38 | */ 39 | public void cleanLogininfor(); 40 | } 41 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/system/notice/mapper/NoticeReadMapper.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.system.notice.mapper; 2 | 3 | import com.yiran.project.system.notice.domain.Notice; 4 | import com.yiran.project.system.notice.domain.NoticeRead; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 公告 数据层 10 | * 11 | * @author yiran 12 | */ 13 | public interface NoticeReadMapper 14 | { 15 | 16 | 17 | /** 18 | * 新增已读记录 19 | * 20 | * @param noticeRead 21 | * @return 结果 22 | */ 23 | public int insertNoticeRead(NoticeRead noticeRead); 24 | 25 | public NoticeRead selectRead(NoticeRead noticeRead); 26 | 27 | 28 | 29 | } -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/system/notice/service/INoticeReadService.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.system.notice.service; 2 | 3 | import com.yiran.project.system.notice.domain.Notice; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * 公告 服务层 9 | * 10 | * @author yiran 11 | */ 12 | public interface INoticeReadService 13 | { 14 | 15 | 16 | public void read(long noticeId); 17 | } 18 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/tool/build/BuildController.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.tool.build; 2 | 3 | import org.apache.shiro.authz.annotation.RequiresPermissions; 4 | import org.springframework.stereotype.Controller; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RequestMapping; 7 | import com.yiran.framework.web.controller.BaseController; 8 | 9 | /** 10 | * build 表单构建 11 | * 12 | * @author yiran 13 | */ 14 | @Controller 15 | @RequestMapping("/tool/build") 16 | public class BuildController extends BaseController 17 | { 18 | private String prefix = "tool/build"; 19 | 20 | @RequiresPermissions("tool:build:view") 21 | @GetMapping() 22 | public String build() 23 | { 24 | return prefix + "/build"; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/tool/ues/enums/EncryptType.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.tool.ues.enums; 2 | 3 | public enum EncryptType { 4 | DES,AES 5 | } 6 | -------------------------------------------------------------------------------- /merchant/src/main/java/com/yiran/project/tool/ues/service/IUesServiceClient.java: -------------------------------------------------------------------------------- 1 | package com.yiran.project.tool.ues.service; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import com.yiran.project.tool.ues.enums.EncryptType; 7 | 8 | 9 | /** 10 | * UES接口 11 | * @author pandaa 12 | * 13 | */ 14 | public interface IUesServiceClient { 15 | 16 | /** 17 | * 解密 18 | * @param ticket 19 | * @return 20 | */ 21 | public String getDataByTicket(String ticket,EncryptType encryptType); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /merchant/src/main/resources/mybatis/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading-sm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading-sm.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/clear.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/loading.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js: -------------------------------------------------------------------------------- 1 | (function($){$.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候……"},formatRecordsPerPage:function(pageNumber){return pageNumber+" 条记录每页"},formatShowingRows:function(pageFrom,pageTo,totalRows){return"第 "+pageFrom+" 到 "+pageTo+" 条,共 "+totalRows+" 条记录。"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatColumns:function(){return"列"},formatExport:function(){return"导出数据"},formatClearFilters:function(){return"清空过滤"}};$.extend($.fn.bootstrapTable.defaults,$.fn.bootstrapTable.locales["zh-CN"])})(jQuery); -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/iCheck/green-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/iCheck/green-login.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/iCheck/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/iCheck/green.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/iCheck/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/iCheck/green@2x.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/layer/theme/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/layer/theme/default/icon-ext.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/layer/theme/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/layer/theme/default/icon.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/layer/theme/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/layer/theme/default/loading-0.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/layer/theme/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/layer/theme/default/loading-1.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/layer/theme/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/layer/theme/default/loading-2.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/layer/theme/moon/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/layer/theme/moon/default.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.eot -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.ttf -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.woff -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/summernote/font/summernote.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/summernote/font/summernote.eot -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/summernote/font/summernote.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/summernote/font/summernote.ttf -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ajax/libs/summernote/font/summernote.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ajax/libs/summernote/font/summernote.woff -------------------------------------------------------------------------------- /merchant/src/main/resources/static/css/patterns/header-profile-skin-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/css/patterns/header-profile-skin-blue.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/css/patterns/header-profile-skin-yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/css/patterns/header-profile-skin-yellow.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/css/patterns/header-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/css/patterns/header-profile.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/css/patterns/shattered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/css/patterns/shattered.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /merchant/src/main/resources/static/file/rml.txt: -------------------------------------------------------------------------------- 1 | 下载临时目录 -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/Simple-Line-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/Simple-Line-Icons.woff2 -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /merchant/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/1.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/0.jpg -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/0.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/1.jpg -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/1.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/2.jpg -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/2.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/3.jpg -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/3.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/4.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/backgrounds/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/backgrounds/Thumbs.db -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/captcha.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/captcha.jpeg -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/error.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/loading.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/html5_login/images/logo.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/html5_login/js/login.js: -------------------------------------------------------------------------------- 1 | // JavaScript Document 2 | //支持Enter键登录 3 | document.onkeydown = function(e){ 4 | if($(".bac").length==0) 5 | { 6 | if(!e) e = window.event; 7 | if((e.keyCode || e.which) == 13){ 8 | var obtnLogin=document.getElementById("submit_btn") 9 | obtnLogin.focus(); 10 | } 11 | } 12 | } 13 | 14 | $(function(){ 15 | //提交表单 16 | $('#submit_btn').click(function(){ 17 | show_loading(); 18 | if($('#username').val() == ''){ 19 | show_err_msg('用户名还没填呢!'); 20 | $('#username').focus(); 21 | }else if($('#password').val() == ''){ 22 | show_err_msg('密码还没填呢!'); 23 | $('#password').focus(); 24 | }else{ 25 | //ajax提交表单,#login_form为表单的ID。 如:$('#login_form').ajaxSubmit(function(data) { ... }); 26 | show_msg('登录成功咯! 正在为您跳转...','/'); 27 | } 28 | }); 29 | }); -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/blue.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/loading-upload.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/loading-upload.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/loading.gif -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/locked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/locked.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/login-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/login-background.jpg -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/pay.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/profile.jpg -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/progress.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/qr_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/qr_code.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/img/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/img/user.png -------------------------------------------------------------------------------- /merchant/src/main/resources/static/ruoyi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/merchant/src/main/resources/static/ruoyi.png -------------------------------------------------------------------------------- /merchant/src/main/resources/templates/error/business.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | yiran - 403 7 | 8 | 9 | 10 | 11 | 12 |
13 |

操作异常!

14 | 15 |
16 | [[${errorMessage}]] 17 |
18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /yiranpay/opt/pay/config/basis/bcss/ALIPAY10101/app.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/opt/pay/config/basis/bcss/ALIPAY10101/app.properties -------------------------------------------------------------------------------- /yiranpay/opt/pay/config/basis/bcss/WXPAY10102/app.properties: -------------------------------------------------------------------------------- 1 | ############################## 2 | ## 配置信息 # 3 | ## # 4 | ############################## 5 | #mock开关 6 | MOCK_SWITCH=false 7 | #微信appID 8 | WEIXIN_APPID = 9 | #微信公众号秘钥 10 | WEIXIN_APPSECRET = 11 | #微信商户ID 12 | WEIXIN_MCHID = 13 | #微信商户秘钥 14 | WEIXIN_MCHSECRETKEY = 15 | #微信秘钥路径 16 | WEIXIN_MCHSECRETKEYPATH = D:/weixinCertificate/apiclient_cert.p12 17 | #支付通知地址 18 | WEIXIN_NOTIFYURL = http://api.yirantrade.com/api/yiran/channelpay/wxpay/notify/WXPAY10102 19 | #微信账单下载 20 | WEIXIN_BILL_DOWLOAD_URL = https://api.mch.weixin.qq.com/pay/downloadbill 21 | #对账类型: ALL,返回当日所有订单信息,默认值 SUCCESS,返回当日成功支付的订单 REFUND,返回当日退款订单 22 | WEIXIN_BILL_TYPE = SUCCESS 23 | #对账文件存放路径 24 | BILL_DIR_PATH = D:/opt/soa/bill/WXPAY10102 25 | ############################################################################### -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/java/com/yiranpay/YiRanPayApplication.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay; 2 | 3 | import org.springframework.amqp.rabbit.annotation.EnableRabbit; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; 7 | 8 | /** 9 | * 启动程序 10 | * 11 | * @author yiranpay 12 | */ 13 | @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) 14 | @EnableRabbit 15 | public class YiRanPayApplication 16 | { 17 | public static void main(String[] args) 18 | { 19 | SpringApplication.run(YiRanPayApplication.class, args); 20 | System.out.println("(♥◠‿◠)ノ゙ 聚合支付系统启动成功 ლ(´ڡ`ლ)゙ "); 21 | } 22 | } -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/java/com/yiranpay/YiRanPayServletInitializer.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay; 2 | 3 | import org.springframework.boot.builder.SpringApplicationBuilder; 4 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 5 | 6 | /** 7 | * web容器中进行部署 8 | * 9 | * @author yiranpay 10 | */ 11 | public class YiRanPayServletInitializer extends SpringBootServletInitializer 12 | { 13 | @Override 14 | protected SpringApplicationBuilder configure(SpringApplicationBuilder application) 15 | { 16 | return application.sources(YiRanPayServletInitializer.class); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/java/com/yiranpay/web/api/constants/ReturnCode.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.web.api.constants; 2 | 3 | public class ReturnCode { 4 | /**操作成功*/ 5 | public static final String SUCCESS = "0000"; 6 | 7 | /**操作失败*/ 8 | public static final String FAILED = "0003"; 9 | 10 | /**操作异常*/ 11 | public static final String EXCEPTION = "E9999"; 12 | } 13 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/java/com/yiranpay/web/api/enums/SignTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.web.api.enums; 2 | 3 | /** 4 | * 签名方式枚举 5 | * @version :1.0 6 | * 7 | */ 8 | public enum SignTypeEnum 9 | { 10 | 11 | RSA("RSA", "RSA签名"), 12 | MD5("MD5", "MD5签名"); 13 | 14 | private final String code; 15 | private final String msg; 16 | 17 | SignTypeEnum(String code, String msg) 18 | { 19 | this.code = code; 20 | this.msg = msg; 21 | } 22 | 23 | public String getCode() 24 | { 25 | return code; 26 | } 27 | 28 | public String getMsg() 29 | { 30 | return msg; 31 | } 32 | public static boolean isSignType(String code) 33 | { 34 | for (SignTypeEnum s : SignTypeEnum.values()) 35 | { 36 | if (s.getCode().equals(code)) 37 | { 38 | return true; 39 | } 40 | } 41 | return false; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/java/com/yiranpay/web/api/facade/PayPwdFacade.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.web.api.facade; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | import io.swagger.annotations.Api; 9 | 10 | /** 11 | * 支付密码 12 | * @author pandaa 13 | * 14 | */ 15 | @RestController 16 | @RequestMapping("/api/yiran/payPwd") 17 | @Api(value="支付密码接口",description="支付密码接口") 18 | public class PayPwdFacade { 19 | 20 | private Logger logger = LoggerFactory.getLogger(PayPwdFacade.class); 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/java/com/yiranpay/web/controller/demo/controller/DemoIconController.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.web.controller.demo.controller; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | 7 | /** 8 | * 图标相关 9 | * 10 | * @author yiranpay 11 | */ 12 | @Controller 13 | @RequestMapping("/demo/icon") 14 | public class DemoIconController 15 | { 16 | private String prefix = "demo/icon"; 17 | 18 | /** 19 | * FontAwesome图标 20 | */ 21 | @GetMapping("/fontawesome") 22 | public String fontAwesome() 23 | { 24 | return prefix + "/fontawesome"; 25 | } 26 | 27 | /** 28 | * Glyphicons图标 29 | */ 30 | @GetMapping("/glyphicons") 31 | public String glyphicons() 32 | { 33 | return prefix + "/glyphicons"; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/java/com/yiranpay/web/controller/monitor/DruidController.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.web.controller.monitor; 2 | 3 | import org.apache.shiro.authz.annotation.RequiresPermissions; 4 | import org.springframework.stereotype.Controller; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RequestMapping; 7 | import com.yiranpay.common.core.controller.BaseController; 8 | 9 | /** 10 | * druid 监控 11 | * 12 | * @author yiranpay 13 | */ 14 | @Controller 15 | @RequestMapping("/monitor/data") 16 | public class DruidController extends BaseController 17 | { 18 | private String prefix = "/druid"; 19 | 20 | @RequiresPermissions("monitor:data:view") 21 | @GetMapping() 22 | public String index() 23 | { 24 | return redirect(prefix + "/index"); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/java/com/yiranpay/web/controller/tool/BuildController.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.web.controller.tool; 2 | 3 | import org.apache.shiro.authz.annotation.RequiresPermissions; 4 | import org.springframework.stereotype.Controller; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RequestMapping; 7 | import com.yiranpay.common.core.controller.BaseController; 8 | 9 | /** 10 | * build 表单构建 11 | * 12 | * @author yiranpay 13 | */ 14 | @Controller 15 | @RequestMapping("/tool/build") 16 | public class BuildController extends BaseController 17 | { 18 | private String prefix = "tool/build"; 19 | 20 | @RequiresPermissions("tool:build:view") 21 | @GetMapping() 22 | public String build() 23 | { 24 | return prefix + "/build"; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/java/com/yiranpay/web/controller/tool/SwaggerController.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.web.controller.tool; 2 | 3 | import org.apache.shiro.authz.annotation.RequiresPermissions; 4 | import org.springframework.stereotype.Controller; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RequestMapping; 7 | import com.yiranpay.common.core.controller.BaseController; 8 | 9 | /** 10 | * swagger 接口 11 | * 12 | * @author yiranpay 13 | */ 14 | @Controller 15 | @RequestMapping("/tool/swagger") 16 | public class SwaggerController extends BaseController 17 | { 18 | @RequiresPermissions("tool:swagger:view") 19 | @GetMapping() 20 | public String index() 21 | { 22 | return redirect("/swagger-ui.html"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/mybatis/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading-sm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading-sm.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/clear.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/loading.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js: -------------------------------------------------------------------------------- 1 | (function($){$.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候……"},formatRecordsPerPage:function(pageNumber){return pageNumber+" 条记录每页"},formatShowingRows:function(pageFrom,pageTo,totalRows){return"第 "+pageFrom+" 到 "+pageTo+" 条,共 "+totalRows+" 条记录。"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatColumns:function(){return"列"},formatExport:function(){return"导出数据"},formatClearFilters:function(){return"清空过滤"}};$.extend($.fn.bootstrapTable.defaults,$.fn.bootstrapTable.locales["zh-CN"])})(jQuery); -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/fullcalendar/fullcalendar.print.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * FullCalendar v1.6.4 Print Stylesheet 3 | * Docs & License: http://arshaw.com/fullcalendar/ 4 | * (c) 2013 Adam Shaw 5 | */ 6 | 7 | /* 8 | * Include this stylesheet on your page to get a more printer-friendly calendar. 9 | * When including this stylesheet, use the media='print' attribute of the tag. 10 | * Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css. 11 | */ 12 | 13 | 14 | /* Events 15 | -----------------------------------------------------*/ 16 | 17 | .fc-event { 18 | background: #fff !important; 19 | color: #000 !important; 20 | } 21 | 22 | /* for vertical events */ 23 | 24 | .fc-event-bg { 25 | display: none !important; 26 | } 27 | 28 | .fc-event .ui-resizable-handle { 29 | display: none !important; 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/iCheck/green-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/iCheck/green-login.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/iCheck/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/iCheck/green.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/iCheck/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/iCheck/green@2x.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/icon-ext.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/icon.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-0.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-1.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-2.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/moon/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layer/theme/moon/default.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.eot -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.ttf -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.woff -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/summernote/font/summernote.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/summernote/font/summernote.eot -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/summernote/font/summernote.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/summernote/font/summernote.ttf -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/summernote/font/summernote.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ajax/libs/summernote/font/summernote.woff -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/css/patterns/header-profile-skin-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/css/patterns/header-profile-skin-blue.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/css/patterns/header-profile-skin-yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/css/patterns/header-profile-skin-yellow.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/css/patterns/header-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/css/patterns/header-profile.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/css/patterns/shattered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/css/patterns/shattered.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/file/rml.txt: -------------------------------------------------------------------------------- 1 | 下载临时目录 -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/Simple-Line-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/Simple-Line-Icons.woff2 -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/blue.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/default.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/loading-upload.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/loading-upload.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/loading.gif -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/locked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/locked.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/login-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/login-background.jpg -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/pay.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/profile.jpg -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/progress.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/qr_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/qr_code.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/sm.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/img/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/img/user.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/login/css/element-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/login/css/element-icons.ttf -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/login/css/element-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/login/css/element-icons.woff -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/login/css/login.css: -------------------------------------------------------------------------------- 1 | .dis{display:none;} 2 | .login-action a{display:inline-block;width:50%;} 3 | .login-action a:last-child{text-align:right;} 4 | .loginbox input.form-control{padding-left:3px;} -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/login/images/15789034188847534.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/login/images/15789034188847534.jpg -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/login/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/login/images/bg.jpg -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/login/images/captcha.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/login/images/captcha.jpeg -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/login/images/card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/login/images/card.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/static/ruoyi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panda726548/yiranpay/3693c85f637ca16ed78d0f76c50922c643dff9a0/yiranpay/yiranpay-admin/src/main/resources/static/ruoyi.png -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/main/resources/templates/error/business.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | yiranpay - 403 7 | 8 | 9 | 10 | 11 | 12 |
13 |

操作异常!

14 | 15 |
16 | [[${errorMessage}]] 17 |
18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/test/java/com/yiranpay/base/BaseJunit.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.base; 2 | 3 | import org.junit.runner.RunWith; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | import org.springframework.test.annotation.Rollback; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | import org.springframework.transaction.annotation.Transactional; 8 | 9 | 10 | /** 11 | * 测试基础类 12 | * @author pandaa 13 | * 14 | */ 15 | 16 | @RunWith(SpringRunner.class) 17 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 18 | @Transactional 19 | @Rollback(value=false) 20 | public class BaseJunit { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/test/java/com/yiranpay/channel/SequenceTest.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.channel; 2 | 3 | import org.junit.Test; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | 6 | import com.yiranpay.base.BaseJunit; 7 | import com.yiranpay.paychannel.service.ISequenceService; 8 | 9 | public class SequenceTest extends BaseJunit{ 10 | 11 | @Autowired 12 | private ISequenceService sequenceService; 13 | @Test 14 | public void testSequen(){ 15 | int num = sequenceService.currval("ONLINE_BANK_LLPAY"); 16 | System.out.println(num); 17 | int num2 = sequenceService.setval("ONLINE_BANK_LLPAY", 2000); 18 | System.out.println(num2); 19 | int num3 = sequenceService.nextval("ONLINE_BANK_LLPAY"); 20 | System.out.println(num3); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/test/java/com/yiranpay/gateway/DateTest.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway; 2 | 3 | import java.util.Date; 4 | 5 | import cn.hutool.core.date.DateField; 6 | import cn.hutool.core.date.DateTime; 7 | import cn.hutool.core.date.DateUtil; 8 | 9 | public class DateTest { 10 | 11 | public static void main(String[] args) { 12 | // 日期字符串请补全为2位数字 13 | String str1 = "2017-09-14"; 14 | // 自动感应格式 15 | Date date1 = DateUtil.parse(str1); 16 | // 日期时间偏移 17 | DateTime dateTime = DateUtil.offset(new Date(), DateField.YEAR, 1); 18 | //System.out.println("dateTime = " + dateTime); 19 | DateTime dateTime1 = DateUtil.offsetDay(new Date(), 1); 20 | System.out.println("dateTime1 = " + dateTime1.toDateStr()); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/test/java/com/yiranpay/payorder/InsetOrderQueryTaskTest.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.payorder; 2 | 3 | import org.junit.Test; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | 6 | import com.yiranpay.base.BaseJunit; 7 | import com.yiranpay.payorder.task.InstOrderQueryTask; 8 | 9 | public class InsetOrderQueryTaskTest extends BaseJunit{ 10 | 11 | @Autowired 12 | private InstOrderQueryTask instOrderQueryTask; 13 | @Test 14 | public void queryTaskTest(){ 15 | instOrderQueryTask.run(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/test/java/com/yiranpay/payorder/InstOrderQueryTest.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.payorder; 2 | 3 | import org.junit.Test; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | 6 | import com.yiranpay.base.BaseJunit; 7 | import com.yiranpay.payorder.domain.QueryOrderResult; 8 | import com.yiranpay.payorder.facade.InstOrderProcessFacade; 9 | 10 | public class InstOrderQueryTest extends BaseJunit{ 11 | 12 | @Autowired 13 | private InstOrderProcessFacade instOrderProcessFacade; 14 | @Test 15 | public void instOrderQueryTest(){ 16 | String instOrderNo ="WXPAY20190820131453001006"; 17 | QueryOrderResult queryOrderResult = instOrderProcessFacade.queryInstOrderResult(instOrderNo); 18 | System.out.println("机构订单结果查询返回结果:"+queryOrderResult); 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-admin/src/test/java/com/yiranpay/payorder/MoenyTest.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.payorder; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import org.springframework.util.Assert; 6 | 7 | public class MoenyTest { 8 | 9 | public static void main(String[] args) { 10 | double amount = Double.valueOf("0.01"); 11 | System.out.println("转换后的付款金额:"+amount); 12 | BigDecimal money = new BigDecimal(amount).setScale(2, BigDecimal.ROUND_DOWN); 13 | System.out.println("BigDecimal对象值:"+money.toString()); 14 | 15 | System.out.println("--------------------------------------"); 16 | BigDecimal money_0 = new BigDecimal("0").setScale(2, BigDecimal.ROUND_DOWN); 17 | System.out.println("-------------------------------------"); 18 | int flag = money.compareTo(money_0); 19 | //当此 BigDecimal 在数字上小于、等于或大于 val 时,返回 -1、0 或 1。 20 | System.out.println("flag="+flag); 21 | Assert.isTrue(true, "支付金额必须大于零"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-amqp/src/main/java/com/yiranpay/amqp/config/AMQPJsonConfig.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.amqp.config; 2 | 3 | import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; 4 | import org.springframework.amqp.support.converter.MessageConverter; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | @Configuration 9 | public class AMQPJsonConfig { 10 | 11 | @Bean 12 | public MessageConverter mssageConverter(){ 13 | 14 | return new Jackson2JsonMessageConverter(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-amqp/src/main/java/com/yiranpay/amqp/constants/AmqpConstants.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.amqp.constants; 2 | /** 3 | * 常量 4 | * @author pandaa 5 | * 6 | */ 7 | public final class AmqpConstants { 8 | /** 9 | * MQ消息发送状态 10 | */ 11 | public static final String RABBITMQ_SENDING = "0"; //发送中 12 | 13 | public static final String RABBITMQ_SEND_SUCCESS = "1"; //成功 14 | 15 | public static final String RABBITMQ_SEND_FAILURE = "2"; //失败 16 | 17 | public static final int RABBITMQ_TIMEOUT = 1; /*分钟超时单位:min*/ 18 | 19 | } 20 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-amqp/src/main/java/com/yiranpay/amqp/listener/RabbitListenerDemoService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.amqp.listener; 2 | 3 | import java.util.Map; 4 | 5 | import org.springframework.amqp.rabbit.annotation.RabbitListener; 6 | import org.springframework.stereotype.Service; 7 | 8 | @Service 9 | public class RabbitListenerDemoService { 10 | 11 | //@RabbitListener(queues="queues.payresult.process") 12 | public void receive(Map map){ 13 | System.out.println("收到消息:"+map); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-amqp/src/main/java/com/yiranpay/amqp/service/IAmqpService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.amqp.service; 2 | 3 | import java.util.Map; 4 | 5 | import com.yiranpay.amqp.domain.AmqoRequrst; 6 | import com.yiranpay.common.core.domain.ResultWrapper; 7 | 8 | 9 | public interface IAmqpService { 10 | 11 | /** 12 | * 发送消息 13 | * @return 14 | */ 15 | public ResultWrapper> sendMessage(AmqoRequrst requrst); 16 | /** 17 | * 接收消息 18 | * @param requrst 19 | * @return 20 | */ 21 | public ResultWrapper> receive(AmqoRequrst requrst); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-amqp/src/main/resources/application-rabbitmq.yml: -------------------------------------------------------------------------------- 1 | # rabiitmq配置 2 | spring: 3 | rabbitmq: 4 | host: 123.206.111.215 5 | port: 5672 6 | username: yiranadmin 7 | password: yiran123456 8 | publisher-confirms: true 9 | publisher-returns: true 10 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/annotation/DataScope.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 数据权限过滤注解 11 | * 12 | * @author yiranpay 13 | */ 14 | @Target(ElementType.METHOD) 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Documented 17 | public @interface DataScope 18 | { 19 | /** 20 | * 部门表的别名 21 | */ 22 | public String deptAlias() default ""; 23 | 24 | /** 25 | * 用户表的别名 26 | */ 27 | public String userAlias() default ""; 28 | } 29 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/annotation/DataSource.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | import com.yiranpay.common.enums.DataSourceType; 10 | 11 | /** 12 | * 自定义多数据源切换注解 13 | * 14 | * @author yiranpay 15 | */ 16 | @Target({ ElementType.METHOD, ElementType.TYPE }) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | @Documented 19 | @Inherited 20 | public @interface DataSource 21 | { 22 | /** 23 | * 切换数据源名称 24 | */ 25 | public DataSourceType value() default DataSourceType.MASTER; 26 | } 27 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/annotation/Excels.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Excel注解集 10 | * 11 | * @author yiranpay 12 | */ 13 | @Target(ElementType.FIELD) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface Excels 16 | { 17 | Excel[] value(); 18 | } -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/annotation/RepeatSubmit.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 自定义注解防止表单重复提交 12 | * 13 | * @author yiranpay 14 | * 15 | */ 16 | @Inherited 17 | @Target(ElementType.METHOD) 18 | @Retention(RetentionPolicy.RUNTIME) 19 | @Documented 20 | public @interface RepeatSubmit 21 | { 22 | 23 | } -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/config/ServerConfig.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.config; 2 | 3 | import javax.servlet.http.HttpServletRequest; 4 | import org.springframework.stereotype.Component; 5 | import com.yiranpay.common.utils.ServletUtils; 6 | 7 | /** 8 | * 服务相关配置 9 | * 10 | * @author yiranpay 11 | * 12 | */ 13 | @Component 14 | public class ServerConfig 15 | { 16 | /** 17 | * 获取完整的请求路径,包括:域名,端口,上下文访问路径 18 | * 19 | * @return 服务地址 20 | */ 21 | public String getUrl() 22 | { 23 | HttpServletRequest request = ServletUtils.getRequest(); 24 | return getDomain(request); 25 | } 26 | 27 | public static String getDomain(HttpServletRequest request) 28 | { 29 | StringBuffer url = request.getRequestURL(); 30 | String contextPath = request.getServletContext().getContextPath(); 31 | return url.delete(url.length() - request.getRequestURI().length(), url.length()).append(contextPath).toString(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/constant/PermissionConstants.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.constant; 2 | 3 | /** 4 | * 权限通用常量 5 | * 6 | * @author yiranpay 7 | */ 8 | public class PermissionConstants 9 | { 10 | /** 新增权限 */ 11 | public static final String ADD_PERMISSION = "add"; 12 | 13 | /** 修改权限 */ 14 | public static final String EDIT_PERMISSION = "edit"; 15 | 16 | /** 删除权限 */ 17 | public static final String REMOVE_PERMISSION = "remove"; 18 | 19 | /** 导出权限 */ 20 | public static final String EXPORT_PERMISSION = "export"; 21 | 22 | /** 显示权限 */ 23 | public static final String VIEW_PERMISSION = "view"; 24 | 25 | /** 查询权限 */ 26 | public static final String LIST_PERMISSION = "list"; 27 | } 28 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/core/page/TableSupport.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.core.page; 2 | 3 | import com.yiranpay.common.constant.Constants; 4 | import com.yiranpay.common.utils.ServletUtils; 5 | 6 | /** 7 | * 表格数据处理 8 | * 9 | * @author yiranpay 10 | */ 11 | public class TableSupport 12 | { 13 | /** 14 | * 封装分页对象 15 | */ 16 | public static PageDomain getPageDomain() 17 | { 18 | PageDomain pageDomain = new PageDomain(); 19 | pageDomain.setPageNum(ServletUtils.getParameterToInt(Constants.PAGE_NUM)); 20 | pageDomain.setPageSize(ServletUtils.getParameterToInt(Constants.PAGE_SIZE)); 21 | pageDomain.setOrderByColumn(ServletUtils.getParameter(Constants.ORDER_BY_COLUMN)); 22 | pageDomain.setIsAsc(ServletUtils.getParameter(Constants.IS_ASC)); 23 | return pageDomain; 24 | } 25 | 26 | public static PageDomain buildPageRequest() 27 | { 28 | return getPageDomain(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/enums/AbsResultEnum.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.enums; 2 | /** 3 | * 抽象结果接口 4 | * @author pandaa 5 | * 6 | */ 7 | public interface AbsResultEnum { 8 | /** 9 | * 结果码 10 | * 11 | * @return String 12 | */ 13 | String getCode(); 14 | 15 | /** 16 | * 结果消息 17 | * 18 | * @return String 19 | */ 20 | String getMessage(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/enums/BusinessStatus.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.enums; 2 | 3 | /** 4 | * 操作状态 5 | * 6 | * @author yiranpay 7 | */ 8 | public enum BusinessStatus 9 | { 10 | /** 11 | * 成功 12 | */ 13 | SUCCESS, 14 | 15 | /** 16 | * 失败 17 | */ 18 | FAIL, 19 | } 20 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/enums/BusinessType.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.enums; 2 | 3 | /** 4 | * 业务操作类型 5 | * 6 | * @author yiranpay 7 | */ 8 | public enum BusinessType 9 | { 10 | /** 11 | * 其它 12 | */ 13 | OTHER, 14 | 15 | /** 16 | * 新增 17 | */ 18 | INSERT, 19 | 20 | /** 21 | * 修改 22 | */ 23 | UPDATE, 24 | 25 | /** 26 | * 删除 27 | */ 28 | DELETE, 29 | 30 | /** 31 | * 授权 32 | */ 33 | GRANT, 34 | 35 | /** 36 | * 导出 37 | */ 38 | EXPORT, 39 | 40 | /** 41 | * 导入 42 | */ 43 | IMPORT, 44 | 45 | /** 46 | * 强退 47 | */ 48 | FORCE, 49 | 50 | /** 51 | * 生成代码 52 | */ 53 | GENCODE, 54 | 55 | /** 56 | * 清空 57 | */ 58 | CLEAN, 59 | } 60 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/enums/DataSourceType.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.enums; 2 | 3 | /** 4 | * 数据源 5 | * 6 | * @author yiranpay 7 | */ 8 | public enum DataSourceType 9 | { 10 | /** 11 | * 主库 12 | */ 13 | MASTER, 14 | 15 | /** 16 | * 从库 17 | */ 18 | SLAVE 19 | } 20 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/enums/DefaultResultEnum.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.enums; 2 | /** 3 | * 默认结果码枚举 4 | * @author pandaa 5 | * 6 | */ 7 | public enum DefaultResultEnum implements AbsResultEnum { 8 | SUCCESS("200", "成功"), 9 | FAIL("400", "失败"), 10 | ERROR("500", "异常"); 11 | 12 | private String code; 13 | 14 | private String message; 15 | 16 | @Override 17 | public String getCode() { 18 | return code; 19 | } 20 | 21 | @Override 22 | public String getMessage() { 23 | return message; 24 | } 25 | 26 | DefaultResultEnum(String code, String message) { 27 | this.code = code; 28 | this.message = message; 29 | } 30 | 31 | @Override 32 | public String toString() { 33 | return "DefaultResultEnum{" + 34 | "code='" + code + '\'' + 35 | ", message='" + message + '\'' + 36 | "} " + super.toString(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/enums/OnlineStatus.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.enums; 2 | 3 | /** 4 | * 用户会话 5 | * 6 | * @author yiranpay 7 | */ 8 | public enum OnlineStatus 9 | { 10 | /** 用户状态 */ 11 | on_line("在线"), off_line("离线"); 12 | 13 | private final String info; 14 | 15 | private OnlineStatus(String info) 16 | { 17 | this.info = info; 18 | } 19 | 20 | public String getInfo() 21 | { 22 | return info; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/enums/OperatorType.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.enums; 2 | 3 | /** 4 | * 操作人类别 5 | * 6 | * @author yiranpay 7 | */ 8 | public enum OperatorType 9 | { 10 | /** 11 | * 其它 12 | */ 13 | OTHER, 14 | 15 | /** 16 | * 后台用户 17 | */ 18 | MANAGE, 19 | 20 | /** 21 | * 手机端用户 22 | */ 23 | MOBILE 24 | } 25 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/enums/UserStatus.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.enums; 2 | 3 | /** 4 | * 用户状态 5 | * 6 | * @author yiranpay 7 | */ 8 | public enum UserStatus 9 | { 10 | OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除"); 11 | 12 | private final String code; 13 | private final String info; 14 | 15 | UserStatus(String code, String info) 16 | { 17 | this.code = code; 18 | this.info = info; 19 | } 20 | 21 | public String getCode() 22 | { 23 | return code; 24 | } 25 | 26 | public String getInfo() 27 | { 28 | return info; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/BusinessException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception; 2 | 3 | /** 4 | * 业务异常 5 | * 6 | * @author yiranpay 7 | */ 8 | public class BusinessException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | protected final String message; 13 | 14 | public BusinessException(String message) 15 | { 16 | this.message = message; 17 | } 18 | 19 | public BusinessException(String message, Throwable e) 20 | { 21 | super(message, e); 22 | this.message = message; 23 | } 24 | 25 | @Override 26 | public String getMessage() 27 | { 28 | return message; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/DemoModeException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception; 2 | 3 | /** 4 | * 演示模式异常 5 | * 6 | * @author yiranpay 7 | */ 8 | public class DemoModeException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public DemoModeException() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/ValidationException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception; 2 | 3 | public class ValidationException extends Exception 4 | { 5 | private static final long serialVersionUID = -2902025037137372147L; 6 | 7 | public ValidationException() 8 | { 9 | } 10 | 11 | public ValidationException(String message) 12 | { 13 | super(message); 14 | } 15 | 16 | public ValidationException(Throwable cause) 17 | { 18 | super(cause); 19 | } 20 | 21 | public ValidationException(String message, Throwable cause) 22 | { 23 | super(message, cause); 24 | } 25 | } -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/file/FileException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.file; 2 | 3 | import com.yiranpay.common.exception.base.BaseException; 4 | 5 | /** 6 | * 文件信息异常类 7 | * 8 | * @author yiranpay 9 | */ 10 | public class FileException extends BaseException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public FileException(String code, Object[] args) 15 | { 16 | super("file", code, args, null); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/file/FileNameLengthLimitExceededException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.file; 2 | 3 | /** 4 | * 文件名称超长限制异常类 5 | * 6 | * @author yiranpay 7 | */ 8 | public class FileNameLengthLimitExceededException extends FileException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public FileNameLengthLimitExceededException(int defaultFileNameLength) 13 | { 14 | super("upload.filename.exceed.length", new Object[] { defaultFileNameLength }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/file/FileSizeLimitExceededException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.file; 2 | 3 | /** 4 | * 文件名大小限制异常类 5 | * 6 | * @author yiranpay 7 | */ 8 | public class FileSizeLimitExceededException extends FileException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public FileSizeLimitExceededException(long defaultMaxSize) 13 | { 14 | super("upload.exceed.maxSize", new Object[] { defaultMaxSize }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/job/TaskException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.job; 2 | 3 | /** 4 | * 计划策略异常 5 | * 6 | * @author yiranpay 7 | */ 8 | public class TaskException extends Exception 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | private Code code; 13 | 14 | public TaskException(String msg, Code code) 15 | { 16 | this(msg, code, null); 17 | } 18 | 19 | public TaskException(String msg, Code code, Exception nestedEx) 20 | { 21 | super(msg, nestedEx); 22 | this.code = code; 23 | } 24 | 25 | public Code getCode() 26 | { 27 | return code; 28 | } 29 | 30 | public enum Code 31 | { 32 | TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE 33 | } 34 | } -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/user/CaptchaException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.user; 2 | 3 | /** 4 | * 验证码错误异常类 5 | * 6 | * @author yiranpay 7 | */ 8 | public class CaptchaException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public CaptchaException() 13 | { 14 | super("user.jcaptcha.error", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/user/RoleBlockedException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.user; 2 | 3 | /** 4 | * 角色锁定异常类 5 | * 6 | * @author yiranpay 7 | */ 8 | public class RoleBlockedException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public RoleBlockedException() 13 | { 14 | super("role.blocked", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/user/UserBlockedException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.user; 2 | 3 | /** 4 | * 用户锁定异常类 5 | * 6 | * @author yiranpay 7 | */ 8 | public class UserBlockedException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserBlockedException() 13 | { 14 | super("user.blocked", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/user/UserDeleteException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.user; 2 | 3 | /** 4 | * 用户账号已被删除 5 | * 6 | * @author yiranpay 7 | */ 8 | public class UserDeleteException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserDeleteException() 13 | { 14 | super("user.password.delete", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/user/UserException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.user; 2 | 3 | import com.yiranpay.common.exception.base.BaseException; 4 | 5 | /** 6 | * 用户信息异常类 7 | * 8 | * @author yiranpay 9 | */ 10 | public class UserException extends BaseException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public UserException(String code, Object[] args) 15 | { 16 | super("user", code, args, null); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/user/UserNotExistsException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.user; 2 | 3 | /** 4 | * 用户不存在异常类 5 | * 6 | * @author yiranpay 7 | */ 8 | public class UserNotExistsException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserNotExistsException() 13 | { 14 | super("user.not.exists", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/user/UserPasswordNotMatchException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.user; 2 | 3 | /** 4 | * 用户密码不正确或不符合规范异常类 5 | * 6 | * @author yiranpay 7 | */ 8 | public class UserPasswordNotMatchException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserPasswordNotMatchException() 13 | { 14 | super("user.password.not.match", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/user/UserPasswordRetryLimitCountException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.user; 2 | 3 | /** 4 | * 用户错误记数异常类 5 | * 6 | * @author yiranpay 7 | */ 8 | public class UserPasswordRetryLimitCountException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserPasswordRetryLimitCountException(int retryLimitCount) 13 | { 14 | super("user.password.retry.limit.count", new Object[] { retryLimitCount }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/exception/user/UserPasswordRetryLimitExceedException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.exception.user; 2 | 3 | /** 4 | * 用户错误最大次数异常类 5 | * 6 | * @author yiranpay 7 | */ 8 | public class UserPasswordRetryLimitExceedException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserPasswordRetryLimitExceedException(int retryLimitCount) 13 | { 14 | super("user.password.retry.limit.exceed", new Object[] { retryLimitCount }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/utils/BaseResult.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.utils; 2 | 3 | import java.io.Serializable; 4 | 5 | public class BaseResult implements Serializable 6 | { 7 | private static final long serialVersionUID = -2253380911043438025L; 8 | protected boolean success = false; 9 | protected String resultMessage; 10 | 11 | public BaseResult() 12 | { 13 | } 14 | 15 | public BaseResult(boolean success) 16 | { 17 | this.success = success; 18 | } 19 | 20 | public BaseResult(boolean success, String returnMessage) { 21 | this.success = success; 22 | this.resultMessage = returnMessage; 23 | } 24 | 25 | public boolean isSuccess() { 26 | return this.success; 27 | } 28 | 29 | public void setSuccess(boolean success) { 30 | this.success = success; 31 | } 32 | 33 | public String getResultMessage() 34 | { 35 | return this.resultMessage; 36 | } 37 | 38 | public void setResultMessage(String resultMessage) { 39 | this.resultMessage = resultMessage; 40 | } 41 | } -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/utils/HttpEncoding.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.utils; 2 | /** 3 | * 字符编码 4 | * @author pandaa 5 | * 6 | */ 7 | public enum HttpEncoding { 8 | 9 | UTF8("UTF-8"),GB2312("GB2312"), GBK("GBK"),GB18030("GB18030"); 10 | 11 | private String code; 12 | 13 | private HttpEncoding(String encode){ 14 | this.code = encode; 15 | } 16 | 17 | public String getCode(){ 18 | return this.code; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/utils/MessageUtils.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.utils; 2 | 3 | import org.springframework.context.MessageSource; 4 | import org.springframework.context.i18n.LocaleContextHolder; 5 | import com.yiranpay.common.utils.spring.SpringUtils; 6 | 7 | /** 8 | * 获取i18n资源文件 9 | * 10 | * @author yiranpay 11 | */ 12 | public class MessageUtils 13 | { 14 | /** 15 | * 根据消息键和参数 获取消息 委托给spring messageSource 16 | * 17 | * @param code 消息键 18 | * @param args 参数 19 | * @return 获取国际化翻译值 20 | */ 21 | public static String message(String code, Object... args) 22 | { 23 | MessageSource messageSource = SpringUtils.getBean(MessageSource.class); 24 | return messageSource.getMessage(code, args, LocaleContextHolder.getLocale()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/utils/property/PropertyHelper.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.utils.property; 2 | import java.util.Properties; 3 | 4 | /** 5 | * 6 | *

属性文件帮助类

7 | */ 8 | public interface PropertyHelper { 9 | 10 | public Properties getProperties(String fundChannelCode); 11 | 12 | public Properties getProperties(String fundChannelCode,String defaultChannelCode); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/utils/sql/SqlUtil.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.utils.sql; 2 | 3 | import com.yiranpay.common.utils.StrUtils; 4 | 5 | /** 6 | * sql操作工具类 7 | * 8 | * @author yiranpay 9 | */ 10 | public class SqlUtil 11 | { 12 | /** 13 | * 仅支持字母、数字、下划线、空格、逗号(支持多个字段排序) 14 | */ 15 | public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,]+"; 16 | 17 | /** 18 | * 检查字符,防止注入绕过 19 | */ 20 | public static String escapeOrderBySql(String value) 21 | { 22 | if (StrUtils.isNotEmpty(value) && !isValidOrderBySql(value)) 23 | { 24 | return StrUtils.EMPTY; 25 | } 26 | return value; 27 | } 28 | 29 | /** 30 | * 验证 order by 语法是否符合规范 31 | */ 32 | public static boolean isValidOrderBySql(String value) 33 | { 34 | return value.matches(SQL_PATTERN); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-common/src/main/java/com/yiranpay/common/validate/Validator.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.common.validate; 2 | 3 | import com.yiranpay.common.exception.ValidationException; 4 | 5 | public abstract interface Validator 6 | { 7 | public abstract void validate(Object paramObject) 8 | throws ValidationException; 9 | } 10 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-framework/src/main/java/com/yiranpay/framework/config/ApplicationConfig.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.framework.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.context.annotation.EnableAspectJAutoProxy; 6 | 7 | /** 8 | * 程序注解配置 9 | * 10 | * @author yiranpay 11 | */ 12 | @Configuration 13 | // 表示通过aop框架暴露该代理对象,AopContext能够访问 14 | @EnableAspectJAutoProxy(exposeProxy = true) 15 | // 指定要扫描的Mapper类的包的路径 16 | @MapperScan("com.yiranpay.**.mapper") 17 | public class ApplicationConfig 18 | { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-framework/src/main/java/com/yiranpay/framework/datasource/DynamicDataSource.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.framework.datasource; 2 | 3 | import java.util.Map; 4 | import javax.sql.DataSource; 5 | import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; 6 | import com.yiranpay.common.config.datasource.DynamicDataSourceContextHolder; 7 | 8 | /** 9 | * 动态数据源 10 | * 11 | * @author yiranpay 12 | */ 13 | public class DynamicDataSource extends AbstractRoutingDataSource 14 | { 15 | public DynamicDataSource(DataSource defaultTargetDataSource, Map targetDataSources) 16 | { 17 | super.setDefaultTargetDataSource(defaultTargetDataSource); 18 | super.setTargetDataSources(targetDataSources); 19 | super.afterPropertiesSet(); 20 | } 21 | 22 | @Override 23 | protected Object determineCurrentLookupKey() 24 | { 25 | return DynamicDataSourceContextHolder.getDataSourceType(); 26 | } 27 | } -------------------------------------------------------------------------------- /yiranpay/yiranpay-framework/src/main/java/com/yiranpay/framework/web/service/ConfigService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.framework.web.service; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.stereotype.Service; 5 | import com.yiranpay.system.service.ISysConfigService; 6 | 7 | /** 8 | * yiranpay首创 html调用 thymeleaf 实现参数管理 9 | * 10 | * @author yiranpay 11 | */ 12 | @Service("config") 13 | public class ConfigService 14 | { 15 | @Autowired 16 | private ISysConfigService configService; 17 | 18 | /** 19 | * 根据键名查询参数配置信息 20 | * 21 | * @param configName 参数名称 22 | * @return 参数键值 23 | */ 24 | public String getKey(String configKey) 25 | { 26 | return configService.selectConfigByKey(configKey); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.yiranpay 7 | yiranpay 8 | 1.1.0 9 | 10 | yiranpay-gateway 11 | yiranpay-gateway 12 | 13 | 14 | 支付网关接口服务入口 15 | 16 | 17 | 18 | UTF-8 19 | 20 | 21 | 22 | 23 | com.yiranpay 24 | yiranpay-payorder 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/enums/SignTypeKind.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.enums; 2 | 3 | /** 4 | *

签名类型

5 | */ 6 | public enum SignTypeKind { 7 | 8 | MD5("MD5"), RSA("RSA"), DSA("DSA"); 9 | 10 | private String code; 11 | 12 | private SignTypeKind(String code) { 13 | this.code = code; 14 | 15 | } 16 | 17 | public static SignTypeKind getByCode(String code) { 18 | for (SignTypeKind ls : SignTypeKind.values()) { 19 | if (ls.code.equalsIgnoreCase(code)) { 20 | return ls; 21 | } 22 | } 23 | return null; 24 | } 25 | 26 | public boolean equals(String code) { 27 | return getCode().equalsIgnoreCase(code); 28 | } 29 | 30 | public String getCode() { 31 | return code; 32 | } 33 | 34 | public void setCode(String code) { 35 | this.code = code; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/exception/IgnoreUnexpectedElementsHandler.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.exception; 2 | 3 | import javax.xml.bind.ValidationEvent; 4 | import javax.xml.bind.ValidationEventHandler; 5 | 6 | public class IgnoreUnexpectedElementsHandler implements ValidationEventHandler { 7 | @Override 8 | public boolean handleEvent(ValidationEvent event) { 9 | return event.getMessage().startsWith("unexpected element ("); 10 | } 11 | } -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/request/ChinaH5PayQueryRequest.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.request; 2 | 3 | /** 4 | * 请求响应 5 | * 6 | * @author pandaa 7 | * 8 | */ 9 | public class ChinaH5PayQueryRequest extends RequestBase { 10 | 11 | /** 12 | * 商户支付请求号,商户网站唯一 13 | */ 14 | private String requestNo; 15 | 16 | public String getRequestNo() { 17 | return requestNo; 18 | } 19 | public void setRequestNo(String requestNo) { 20 | this.requestNo = requestNo; 21 | } 22 | 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/request/IRequest.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.request; 2 | 3 | /** 4 | * 5 | *

外部请求接口

6 | */ 7 | public interface IRequest { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/service/IALIPayService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.service; 2 | 3 | import java.util.Map; 4 | 5 | import com.yiranpay.gateway.response.ALIPayResponse; 6 | 7 | 8 | public interface IALIPayService { 9 | 10 | public ALIPayResponse process(Map paraMap) throws Exception; 11 | } 12 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/service/IAuthorizationService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.service; 2 | 3 | import com.yiranpay.gateway.request.AuthorizationRequest; 4 | import com.yiranpay.gateway.response.AuthorizationResult; 5 | 6 | /** 7 | * 授权查询-商户是否有权限 8 | * @author pandaa 9 | * 10 | */ 11 | public interface IAuthorizationService { 12 | /** 13 | * 商户是否有接口权限 14 | * @param auth 15 | * @return 16 | */ 17 | public AuthorizationResult authorization(AuthorizationRequest auth); 18 | /** 19 | * 商户是否有产品权限 20 | * @param auth 21 | * @return 22 | */ 23 | public AuthorizationResult authorizationProduct(AuthorizationRequest auth); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/service/IEncryptionDecryptionService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.service; 2 | 3 | import java.util.Map; 4 | 5 | import com.yiranpay.gateway.response.UESResponse; 6 | 7 | 8 | 9 | public interface IEncryptionDecryptionService { 10 | 11 | public UESResponse process(Map paraMap) throws Exception; 12 | } 13 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/service/IH5PayService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.service; 2 | 3 | import java.util.Map; 4 | 5 | import com.yiranpay.gateway.response.ChinaH5PayQueryResponse; 6 | import com.yiranpay.gateway.response.ChinaH5PayResponse; 7 | 8 | public interface IH5PayService { 9 | 10 | public ChinaH5PayResponse process(Map paraMap) throws Exception; 11 | 12 | public ChinaH5PayQueryResponse queryPayprocess(Map paramMap) throws Exception; 13 | } 14 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/service/IQueryCardBinService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.service; 2 | 3 | import java.util.Map; 4 | 5 | import com.yiranpay.gateway.response.CarBinResponse; 6 | 7 | 8 | public interface IQueryCardBinService { 9 | 10 | public CarBinResponse process(Map paraMap) throws Exception; 11 | } 12 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/java/com/yiranpay/gateway/service/IWeiXinPayService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.gateway.service; 2 | 3 | import java.util.Map; 4 | 5 | import com.yiranpay.gateway.response.WeiXinPayResponse; 6 | 7 | 8 | public interface IWeiXinPayService { 9 | 10 | public WeiXinPayResponse process(Map paraMap) throws Exception; 11 | 12 | //public ChinaH5PayQueryResponse queryPayprocess(Map paramMap) throws Exception; 13 | } 14 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/resources/templates/gateway/auth/add.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 |
9 |
10 |
11 | 12 | 24 | 25 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-gateway/src/main/resources/templates/gateway/auth/edit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 |
9 | 10 |
11 |
12 | 13 | 25 | 26 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-generator/src/main/resources/generator.yml: -------------------------------------------------------------------------------- 1 | 2 | # 代码生成 3 | gen: 4 | # 作者 5 | author: panda 6 | # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool 7 | packageName: com.yiranpay.gateway 8 | # 自动去除表前缀,默认是false 9 | autoRemovePre: false 10 | # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) 11 | tablePrefix: sys_ -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.yiranpay 7 | yiranpay 8 | 1.1.0 9 | 10 | yiranpay-member 11 | yiranpay-member 12 | http://maven.apache.org 13 | 14 | UTF-8 15 | 16 | 17 | 18 | 19 | com.yiranpay 20 | yiranpay-payorder 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/base/Request.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.member.base; 2 | 3 | import java.io.Serializable; 4 | 5 | import org.apache.commons.lang3.builder.ToStringBuilder; 6 | import org.apache.commons.lang3.builder.ToStringStyle; 7 | 8 | 9 | public class Request implements Serializable { 10 | 11 | /** 12 | * 13 | */ 14 | private static final long serialVersionUID = 1244715686465423274L; 15 | 16 | private String extention; //扩展信息 17 | 18 | public String getExtention() { 19 | return extention; 20 | } 21 | 22 | public void setExtention(String extention) { 23 | this.extention = extention; 24 | } 25 | 26 | @Override 27 | public String toString() { 28 | return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/enums/AccountGrade.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.member.enums; 2 | 3 | public enum AccountGrade { 4 | COMMON(1, "普通账户"), 5 | VIP(9, "VIP账户"), 6 | ; 7 | 8 | private final int code; 9 | private final String displayName; 10 | 11 | AccountGrade(int code, String displayName) { 12 | this.code = code; 13 | this.displayName = displayName; 14 | 15 | } 16 | 17 | public int code() { 18 | return code; 19 | } 20 | 21 | public String displayName() { 22 | return displayName; 23 | } 24 | 25 | public static AccountGrade getByCode(int code){ 26 | for(AccountGrade item: values()){ 27 | if(item.code() == code){ 28 | return item; 29 | } 30 | } 31 | return null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/exception/MaIllegalArgumentException.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.member.exception; 2 | 3 | /** 4 | * 5 | *

MA 参数检验异常

6 | */ 7 | public class MaIllegalArgumentException extends IllegalArgumentException { 8 | 9 | private static final long serialVersionUID = 4164067046709770426L; 10 | 11 | public MaIllegalArgumentException(String s) { 12 | super(s); 13 | } 14 | 15 | public MaIllegalArgumentException( String s, Exception cause ) { 16 | super(s); 17 | this.initCause(cause); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/filter/BankAccountFilter.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.member.filter; 2 | 3 | import java.lang.reflect.InvocationTargetException; 4 | import java.util.List; 5 | 6 | import com.yiranpay.member.domain.MemberTrBankAccount; 7 | import com.yiranpay.member.exception.MaBizException; 8 | 9 | 10 | public interface BankAccountFilter { 11 | 12 | /** 13 | * 过滤相似的银行卡信息 14 | * @param list 15 | * @param request 16 | * @param lists 17 | * @return 18 | * @throws MaBizException 19 | * @throws IllegalAccessException 20 | * @throws InvocationTargetException 21 | * @throws NoSuchMethodException 22 | */ 23 | boolean doFilter(List list, MemberTrBankAccount request,List lists) throws MaBizException; 24 | } 25 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/mapper/MemberSequenceMapper.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.member.mapper; 2 | 3 | public interface MemberSequenceMapper { 4 | 5 | public String getSeqNextValue(String seqName); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/response/BankAccInfoResponse.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.member.response; 2 | 3 | import org.apache.commons.lang.builder.ToStringBuilder; 4 | import org.apache.commons.lang.builder.ToStringStyle; 5 | 6 | import com.yiranpay.member.base.Response; 7 | 8 | 9 | /** 10 | *

会员银行绑定信息响应结果

11 | */ 12 | public class BankAccInfoResponse extends Response { 13 | 14 | /** 15 | * 16 | */ 17 | private static final long serialVersionUID = 2461936246837067212L; 18 | 19 | private String bankcardId; //绑定银行卡主键Id 20 | 21 | public String getBankcardId() { 22 | return bankcardId; 23 | } 24 | 25 | public void setBankcardId(String bankcardId) { 26 | this.bankcardId = bankcardId; 27 | } 28 | 29 | @Override 30 | public String toString() { 31 | return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/response/ContactResponse.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.member.response; 2 | 3 | 4 | import org.apache.commons.lang.builder.ToStringBuilder; 5 | import org.apache.commons.lang.builder.ToStringStyle; 6 | 7 | import com.yiranpay.member.base.Response; 8 | 9 | 10 | /** 11 | *

设置联系信息响应信息

12 | */ 13 | public class ContactResponse extends Response { 14 | 15 | /** 16 | * 17 | */ 18 | private static final long serialVersionUID = -553333022697129121L; 19 | 20 | private String contactId; //联系人Id 21 | 22 | public String getContactId() { 23 | return contactId; 24 | } 25 | 26 | public void setContactId(String contactId) { 27 | this.contactId = contactId; 28 | } 29 | 30 | @Override 31 | public String toString() { 32 | return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/service/DataEncryptService.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package com.yiranpay.member.service; 5 | 6 | import com.yiranpay.member.domain.MemberTmOperator; 7 | import com.yiranpay.member.domain.PersonalMember; 8 | 9 | /** 10 | *

数据加密服务接口

11 | */ 12 | public interface DataEncryptService { 13 | 14 | /** 15 | * 创建个人会员时,敏感数据进行加密 16 | * @param member 17 | * @param operator 18 | */ 19 | public void encrypt(PersonalMember member,MemberTmOperator operator)throws Exception; 20 | } 21 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/utils/ContactDomainUtil.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package com.yiranpay.member.utils; 5 | 6 | import com.yiranpay.member.enums.ContactTypeEnum; 7 | import com.yiranpay.member.request.ContactQuery; 8 | import com.yiranpay.member.request.QueryContactRequest; 9 | 10 | /** 11 | *

联系信息领域对象工具类

12 | */ 13 | public class ContactDomainUtil { 14 | 15 | /** 16 | * 联系查询查询请求对象转换成查询对象 17 | * @param request 18 | * @return 19 | */ 20 | public static ContactQuery convertReqToQuery(QueryContactRequest request){ 21 | ContactQuery query = new ContactQuery(); 22 | query.setObjectId(request.getTargetId()); 23 | if(null != request.getContactType()){ 24 | query.setContactType(ContactTypeEnum.getByCode(request.getContactType())); 25 | } 26 | return query; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/utils/SQLExceptionUtil.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package com.yiranpay.member.utils; 5 | 6 | import java.sql.SQLException; 7 | 8 | /** 9 | *

异常处理工具

10 | */ 11 | public class SQLExceptionUtil { 12 | 13 | /** 14 | * 主键冲突或唯一约束异常 15 | * @param ex 16 | * @return 17 | */ 18 | public static boolean isUniqueException(Exception ex) { 19 | //ORACLE主键冲突异常代码,ORA-00001 20 | Throwable throwable = ex.getCause(); 21 | if (throwable != null && throwable.getCause() instanceof SQLException) { 22 | SQLException sqlE = (SQLException) throwable.getCause(); 23 | return sqlE.getErrorCode() == 1; 24 | } 25 | return false; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/utils/Utils.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.member.utils; 2 | 3 | import java.io.UnsupportedEncodingException; 4 | 5 | import org.apache.commons.lang3.builder.ToStringBuilder; 6 | import org.apache.commons.lang3.builder.ToStringStyle; 7 | 8 | 9 | /** 10 | * 11 | *

公用小方法/p> 12 | */ 13 | public class Utils { 14 | 15 | private Utils() { 16 | 17 | } 18 | 19 | public static int getByteLen(String s) { 20 | if (s == null) { 21 | return 0; 22 | } 23 | try { 24 | return s.getBytes("GBK").length; 25 | } catch (UnsupportedEncodingException e) { 26 | return s.getBytes().length; 27 | } 28 | } 29 | 30 | /** 31 | * 打印java 对象 32 | * @param obj 33 | * @return 34 | */ 35 | public static String toString(Object obj) { 36 | return ToStringBuilder.reflectionToString(obj, ToStringStyle.SHORT_PREFIX_STYLE); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/java/com/yiranpay/member/validator/AccountValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package com.yiranpay.member.validator; 5 | 6 | import java.util.List; 7 | 8 | import com.yiranpay.member.domain.AccountDomain; 9 | import com.yiranpay.member.enums.AccountCategoryEnum; 10 | import com.yiranpay.member.exception.MaBizException; 11 | 12 | 13 | /** 14 | *

账户验证器

15 | */ 16 | public interface AccountValidator { 17 | /** 18 | * 验证会员账户关系是否存在 19 | * @param accountId 20 | * @throws MaBizException 21 | */ 22 | AccountDomain validateAccountRelationExists(String accountId,AccountCategoryEnum cat)throws MaBizException; 23 | 24 | 25 | /** 26 | * 根据会员号,账户类型验证账户是否存在 27 | * @param memberId 28 | * @param accountType 29 | * @param cat 30 | * @throws MaBizException 31 | */ 32 | List validateAccountRelationExists(String memberId,String accountType, AccountCategoryEnum cat)throws MaBizException; 33 | } 34 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-member/src/main/resources/mapper/member/MemberSequenceMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-message/src/main/java/com/yiranpay/message/constants/EmailType.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.message.constants; 2 | 3 | /** 4 | * 邮件类型枚举类. 5 | * PLAIN: 简单类型邮件,即邮件正文只包含有文本信息(可带附件) 6 | * IMPLE: HTML类型邮件,即邮件正文由HTML信息构成(可带附件) 7 | */ 8 | public enum EmailType { 9 | 10 | /** 11 | * 邮件类型. 12 | */ 13 | PLAIN, HTML; 14 | } 15 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-message/src/main/java/com/yiranpay/message/constants/MsgSmsConfigConstants.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.message.constants; 2 | 3 | /** 4 | * 短息配置对象 msg_sms_config 5 | * 6 | * @author glb 7 | * @date 2020-04-06 8 | */ 9 | public class MsgSmsConfigConstants 10 | { 11 | //短信appID 12 | public static String KEY_SMS_APPID = "SMS.APPID"; 13 | //短信秘钥 14 | public static String KEY_SMS_APPSECRET = "SMS.APPSECRET"; 15 | //短信API_URL 16 | public static String KEY_SMS_API_URL = "SMS.API.URL"; 17 | //短信有效时间 单位分钟 18 | public static String KEY_SMS_EFFECTIVE_TIME = "SMS.EFFECTIVE.TIME"; 19 | //短信限制次数 20 | public static String KEY_SMS_LIMIT_TIMES = "SMS.LIMIT.TIMES"; 21 | //短信签名 22 | public static String KEY_SMS_SHORT_SIGNATURE = "SMS.SHORT.SIGNATURE"; 23 | } 24 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-message/src/main/java/com/yiranpay/message/service/IMsgSmsSendService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.message.service; 2 | 3 | import com.yiranpay.common.core.domain.AjaxResult; 4 | import com.yiranpay.message.vo.SendAuthCodeRequest; 5 | 6 | /** 7 | * 短息发送和验证服务 8 | * 9 | * @author glb 10 | * @date 2020-04-06 11 | */ 12 | public interface IMsgSmsSendService { 13 | /** 14 | * 发送验证码 15 | * @param request 16 | * @return 17 | */ 18 | public AjaxResult sendAuthCode(SendAuthCodeRequest request); 19 | 20 | /** 21 | * 验证手机号和验证码 22 | * @param request 23 | * @return 24 | */ 25 | public AjaxResult verifyMobileAuthCode(SendAuthCodeRequest request); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-message/src/main/java/com/yiranpay/message/util/EmailTemplates.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.message.util; 2 | 3 | public class EmailTemplates { 4 | 5 | /** 6 | * 普通文本邮件模版 7 | * @param subject 8 | * @param msg 9 | * @return 10 | */ 11 | public static String getTemplate(String subject,String msg) { 12 | StringBuffer sbf = new StringBuffer(""); 13 | sbf.append(""); 14 | sbf.append("
管理平台邮件
"); 15 | sbf.append("
"); 16 | sbf.append("

"+msg+"

"); 17 | return sbf.toString(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-quartz/src/main/java/com/yiranpay/quartz/task/InsetOrderQueryTask.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.quartz.task; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.stereotype.Component; 5 | 6 | import com.yiranpay.payorder.task.InstOrderQueryTask; 7 | 8 | @Component("insetOrderQueryTask") 9 | public class InsetOrderQueryTask { 10 | @Autowired 11 | private InstOrderQueryTask instOrderQueryTask; 12 | 13 | public void queryTask(){ 14 | instOrderQueryTask.run(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-quartz/src/main/java/com/yiranpay/quartz/util/QuartzDisallowConcurrentExecution.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.quartz.util; 2 | 3 | import org.quartz.DisallowConcurrentExecution; 4 | import org.quartz.JobExecutionContext; 5 | import com.yiranpay.quartz.domain.SysJob; 6 | 7 | /** 8 | * 定时任务处理(禁止并发执行) 9 | * 10 | * @author yiranpay 11 | * 12 | */ 13 | @DisallowConcurrentExecution 14 | public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob 15 | { 16 | @Override 17 | protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception 18 | { 19 | JobInvokeUtil.invokeMethod(sysJob); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-quartz/src/main/java/com/yiranpay/quartz/util/QuartzJobExecution.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.quartz.util; 2 | 3 | import org.quartz.JobExecutionContext; 4 | import com.yiranpay.quartz.domain.SysJob; 5 | 6 | /** 7 | * 定时任务处理(允许并发执行) 8 | * 9 | * @author yiranpay 10 | * 11 | */ 12 | public class QuartzJobExecution extends AbstractQuartzJob 13 | { 14 | @Override 15 | protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception 16 | { 17 | JobInvokeUtil.invokeMethod(sysJob); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-reconciliation/src/main/java/com/yiranpay/reconciliation/mapper/BuildNoMap.java: -------------------------------------------------------------------------------- 1 | 2 | package com.yiranpay.reconciliation.mapper; 3 | 4 | 5 | 6 | public interface BuildNoMap { 7 | 8 | public String getSeqNextValue(String seqName); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-reconciliation/src/main/java/com/yiranpay/reconciliation/parser/ParserInterface.java: -------------------------------------------------------------------------------- 1 | 2 | package com.yiranpay.reconciliation.parser; 3 | 4 | import java.io.File; 5 | import java.io.IOException; 6 | import java.util.Date; 7 | import java.util.List; 8 | 9 | import com.yiranpay.reconciliation.domain.ReconciliationAccountCheckBatch; 10 | import com.yiranpay.reconciliation.vo.ReconciliationEntityVo; 11 | 12 | 13 | /** 14 | * 定义一个解析的接口,实现着必须override接口中的parser方法. 15 | * 16 | */ 17 | public interface ParserInterface { 18 | 19 | /** 20 | * 21 | * @param file 22 | * @param billDate 23 | * @param batch 24 | * @return 25 | * @throws IOException 26 | */ 27 | public List parser(File file, Date billDate, ReconciliationAccountCheckBatch batch) throws IOException; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-reconciliation/src/main/java/com/yiranpay/reconciliation/parser/解析器定义规范.txt: -------------------------------------------------------------------------------- 1 | 1.必须实现ParserInterface接口 2 | 3 | 2.类名必须为支付方式后面加上Parser 4 | 5 | 3.@Component("")中名字和类型相同 -------------------------------------------------------------------------------- /yiranpay/yiranpay-reconciliation/src/main/java/com/yiranpay/reconciliation/service/IRecBuildNoService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2102 RonCoo(http://www.roncoo.com) Group. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.yiranpay.reconciliation.service; 17 | 18 | /** 19 | * 生成编号service接口 20 | */ 21 | public interface IRecBuildNoService { 22 | 23 | /** 获取对账批次号 **/ 24 | String buildReconciliationNo(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-reconciliation/src/main/resources/mapper/reconciliation/BuildNoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-system/src/main/java/com/yiranpay/system/mapper/SysLogininforMapper.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.system.mapper; 2 | 3 | import java.util.List; 4 | import com.yiranpay.system.domain.SysLogininfor; 5 | 6 | /** 7 | * 系统访问日志情况信息 数据层 8 | * 9 | * @author yiranpay 10 | */ 11 | public interface SysLogininforMapper 12 | { 13 | /** 14 | * 新增系统登录日志 15 | * 16 | * @param logininfor 访问日志对象 17 | */ 18 | public void insertLogininfor(SysLogininfor logininfor); 19 | 20 | /** 21 | * 查询系统登录日志集合 22 | * 23 | * @param logininfor 访问日志对象 24 | * @return 登录记录集合 25 | */ 26 | public List selectLogininforList(SysLogininfor logininfor); 27 | 28 | /** 29 | * 批量删除系统登录日志 30 | * 31 | * @param ids 需要删除的数据 32 | * @return 结果 33 | */ 34 | public int deleteLogininforByIds(String[] ids); 35 | 36 | /** 37 | * 清空系统登录日志 38 | * 39 | * @return 结果 40 | */ 41 | public int cleanLogininfor(); 42 | } 43 | -------------------------------------------------------------------------------- /yiranpay/yiranpay-system/src/main/java/com/yiranpay/system/service/ISysLogininforService.java: -------------------------------------------------------------------------------- 1 | package com.yiranpay.system.service; 2 | 3 | import java.util.List; 4 | import com.yiranpay.system.domain.SysLogininfor; 5 | 6 | /** 7 | * 系统访问日志情况信息 服务层 8 | * 9 | * @author yiranpay 10 | */ 11 | public interface ISysLogininforService 12 | { 13 | /** 14 | * 新增系统登录日志 15 | * 16 | * @param logininfor 访问日志对象 17 | */ 18 | public void insertLogininfor(SysLogininfor logininfor); 19 | 20 | /** 21 | * 查询系统登录日志集合 22 | * 23 | * @param logininfor 访问日志对象 24 | * @return 登录记录集合 25 | */ 26 | public List selectLogininforList(SysLogininfor logininfor); 27 | 28 | /** 29 | * 批量删除系统登录日志 30 | * 31 | * @param ids 需要删除的数据 32 | * @return 33 | */ 34 | public int deleteLogininforByIds(String ids); 35 | 36 | /** 37 | * 清空系统登录日志 38 | */ 39 | public void cleanLogininfor(); 40 | } 41 | --------------------------------------------------------------------------------